Skip to content

alexeydelgado/VoxSpace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Languages: 🇪🇸 Español | 🇬🇧 English | 🇯🇵 日本語


🇪🇸 Español

VoxSpace

🌏 Disponible ahora en japonés 日本語

Deja de adivinar la reverb. Consíguela en segundos.

👉 Descarga la última versión: https://github.com/alexeydelgado/VoxSpace/releases

Generador de reverb vocal basado en BPM para tomar decisiones rápidas y musicales en mezcla.

VoxSpace Interface


⚠️ Seguridad en macOS (Primer inicio)

VoxSpace no está firmado, por lo que macOS puede bloquearlo la primera vez que lo abras.

Si ocurre:

Opción 1 (recomendada)

  1. Haz clic derecho en VoxSpace.app
  2. Pulsa Abrir
  3. Pulsa Abrir de nuevo en la ventana emergente

Opción 2 (si sigue bloqueada)

  1. Abre Ajustes del sistema
  2. Ve a Privacidad y seguridad
  3. Desplázate hacia abajo y pulsa Abrir igualmente

Después de esto, la app se abrirá con normalidad.


Novedades en 2.6.0

Nuevo: soporte en japonés 日本語

  • VoxSpace ya incluye interfaz en japonés
  • el selector de idioma soporta Automático, Español, English y 日本語

Cambios funcionales

  • selector de idioma ampliado con Automático, Español, English y 日本語
  • modo de idioma automático alineado con el idioma del sistema
  • fallback definido a inglés cuando el sistema use un idioma no soportado
  • localización nativa ampliada y preparada para crecer con más idiomas
  • textos de ayuda del modo corregidos para actualizarse bien al cambiar entre idioma manual y automático
  • sugerencias de EQ ajustadas para mostrar un texto más legible
  • nueva tarjeta informativa accesible desde el badge de versión

Persistencia y estructura

  • el idioma seleccionado sigue guardándose por usuario sin depender del bundle de la app
  • los modos de reverb ya usan valores internos estables (VoiceMode) en lugar de strings visibles
  • emociones y capas vocales ya usan claves internas más estables y preparadas para más idiomas
  • las sugerencias de EQ y los consejos rápidos ya no dependen de texto persistido como identidad interna
  • decayVal dejó de persistirse como string y ahora se reconstruye desde el valor real
  • compatibilidad mantenida con estados persistidos de versiones anteriores

Limpieza interna del sistema

  • refactor de la capa de modelo para separar mejor:
    • lógica interna
    • persistencia
    • texto mostrado en interfaz
  • reducción de dependencias entre localización y estado funcional de la app
  • base más limpia para futuras mejoras inteligentes, más idiomas y exportación de presets
  • simplificación de varios textos derivados para que la UI resuelva la presentación y el modelo conserve intención semántica

Ajustes y correcciones menores

  • corrección de varios refrescos de idioma en caliente, especialmente al pasar entre idioma manual y modo automático
  • corrección de inconsistencias entre archivos de localización
  • corrección del texto de EQ que mostraba un @ poco natural
  • corrección de cadenas del historial y acciones secundarias que no respondían bien a todos los idiomas
  • corrección de la presentación del modal de información para que no rompa el layout principal
  • corrección de artefactos visuales en la tarjeta de información
  • mejora de la interacción del badge de versión y del botón de cierre del modal

Compatibilidad

  • target de despliegue mantenido en macOS 13.5
  • las rutas nuevas de localización y selección de idioma están preparadas para fallback estable entre español, inglés y japonés
  • las APIs visuales más nuevas usadas en la interfaz siguen protegidas con comprobaciones de disponibilidad
  • compatibilidad revisada a nivel de proyecto y compilación, aunque esta versión no ha sido validada manualmente en un equipo real con macOS 13

Novedades en 2.5.1

Cambios funcionales

  • icono de la app modernizado para adaptarse mejor a las versiones actuales de macOS
  • persistencia principal movida a un archivo JSON local
  • historial y selección restaurados desde un único fichero de estado
  • base preparada para resetear el estado persistido borrando ese archivo

Cambios estructurales

  • estado funcional centralizado en VoxSpaceStore
  • motor de cálculo separado en ReverbEngine.swift
  • persistencia desacoplada en VoxSpacePersistence.swift
  • historial extraído a HistorySectionView.swift
  • modelos y utilidades separados para reducir la carga de ContentView.swift
  • reorganización interna para mejorar mantenimiento, legibilidad y escalabilidad del proyecto
  • simplificación de expresiones complejas en la interfaz para reducir fricción del compilador en Xcode

Estabilidad y seguridad

  • revisión básica de seguridad del código para reducir superficie innecesaria
  • persistencia local aislada en un único fichero controlado, más fácil de mantener y resetear
  • mantenimiento del sandbox de la app y de una superficie de ataque reducida, sin red ni ejecución externa
  • base preparada para seguir separando estado, lógica y vista con menos acoplamiento interno

Uso rápido

  1. Introduce el BPM de tu track
  2. Selecciona modo, emoción y capa vocal
  3. Aplica los valores sugeridos
  4. Ajusta a oído en tu plugin

VoxSpace proporciona un punto de partida, no una mezcla final.

Pensado para integrarse directamente en tu flujo de mezcla.


VoxSpace es una app de macOS creada con SwiftUI para generar rápidamente ajustes de reverb vocal basados en tres ideas simples:

  • Modo: define el tamaño y la sensación espacial de la reverb
  • Emoción: define el color o carácter del efecto
  • Capa vocal: define cuánto protagonismo tiene la voz en la mezcla

El objetivo de la app no es sustituir el oído ni mezclar por ti, sino ofrecer un punto de partida rápido, coherente y musical. Está diseñada para evitar decisiones a ciegas al usar reverb y acelerar el flujo de trabajo en mezcla.


Qué hace la app

El usuario introduce un BPM y selecciona:

  • un modo espacial
  • una emoción
  • una capa vocal

VoxSpace calcula en tiempo real:

  • Pre-delay
  • Duración (decay de la reverb)
  • Nivel (cantidad de reverb en dB)
  • una sugerencia de EQ
  • una recomendación rápida de uso

También permite guardar presets en un historial interno.


Diseño del sistema

La app sigue una jerarquía clara:

  1. Modo Define la estructura espacial (distancia y tamaño)
  2. Capa vocal Controla cuánto se percibe la reverb
  3. Emoción Añade color y matiz sin redefinir el espacio

Esto implica que:

  • Íntima siempre se percibe más cercana
  • Grande siempre se percibe más amplia
  • la emoción debe matizar, no romper el espacio

Modos

Modos actuales:

  • Modo clásico
  • Íntima
  • Natural
  • Grande

Cada modo cambia la relación entre tempo, pre-delay y duración para generar una percepción espacial distinta. Modo clásico funciona como referencia base: calcula valores únicamente a partir del BPM, sin aplicar modificaciones contextuales o de carácter.


Emociones

Emociones actuales:

  • Frío
  • Cálido
  • Tenso
  • Vacío

No representan espacios distintos, sino diferentes colores dentro del mismo espacio. Influyen principalmente en cómo se percibe la cola de la reverb (más corta, más difusa, más controlada) y en la EQ sugerida.


Capas vocales

  • Principal
  • Coros
  • Adlibs
  • Textura

Ajustan la cantidad de reverb en función del rol de la voz dentro de la mezcla.


Filosofía

VoxSpace está diseñada para trabajar rápido.

  1. Elegir un contexto musical
  2. Obtener un punto de partida inmediato
  3. Ajustar a oído en el plugin o cadena real

Es una herramienta de toma de decisiones, no un sustituto de la mezcla final.


Interfaz

La app está estructurada como una ventana compacta con:

  • cabecera
  • bloque principal de entrada
  • bloque de resultados
  • guardado de presets
  • historial

Persistencia

La app recuerda:

  • el idioma seleccionado
  • el último BPM
  • el modo, emoción y capa activos
  • el estado del historial

Desde la versión 2.5.1, la persistencia principal de la app se guarda en un archivo JSON local dentro de Application Support. Esto facilita el mantenimiento, simplifica la arquitectura y permite resetear esa parte del estado borrando el archivo correspondiente.


Idiomas

  • Español
  • Inglés
  • Japonés 日本語

Estructura del proyecto

  • ContentView.swift → composición principal de la interfaz
  • Models/ → modelos compartidos
  • Stores/VoxSpaceStore.swift → estado funcional central de la app
  • Support/ReverbEngine.swift → motor de cálculo de reverb
  • Support/VoxSpacePersistence.swift → persistencia local en archivo
  • Views/HistorySectionView.swift → vista del historial
  • VoxSpaceApp.swift → punto de entrada
  • Assets.xcassets → recursos
  • VoxSpace.icon → icono principal de la app

Estado

VoxSpace ya es utilizable en flujos de trabajo reales, pero sigue en desarrollo activo.

  • cálculo en tiempo real
  • historial persistente
  • interfaz en evolución y ajuste continuo

Algunos comportamientos (especialmente interacciones de UI y ciertos casos límite) siguen en proceso de mejora.


Feedback

VoxSpace sigue en desarrollo.

El feedback es clave para mejorar tanto la lógica musical como la experiencia de uso. Si detectas comportamientos inconsistentes, confusos o mejorables, ese input es especialmente valioso.


Futuro

  • más idiomas
  • presets favoritos
  • funciones de exportación
  • ajuste musical más profundo

Autor

Alexey Delgado

🇬🇧 English

VoxSpace

🌏 Now available in Japanese 日本語

Stop guessing reverb. Get it right in seconds.

👉 Download the latest version: https://github.com/alexeydelgado/VoxSpace/releases

BPM-based vocal reverb generator for fast, musically coherent mixing decisions.

VoxSpace Interface


⚠️ macOS Security (First Launch)

VoxSpace is not signed, so macOS may block it the first time you open it.

If that happens:

Option 1 (recommended)

  1. Right-click on VoxSpace.app
  2. Click Open
  3. Click Open again in the popup

Option 2 (if the app is still blocked)

  1. Open System Settings
  2. Go to Privacy & Security
  3. Scroll down and click Open Anyway

After this, the app will open normally


What’s new in 2.6.0

New: Japanese support 日本語

  • VoxSpace now includes a Japanese interface
  • the language selector supports Automatic, Español, English, and 日本語

Functional changes

  • language selector expanded with Automatic, Español, English, and 日本語
  • automatic language mode aligned with the system language
  • fallback to English when the system uses an unsupported language
  • native localization expanded and ready to scale with more languages
  • mode help text updated to refresh correctly when switching between manual language and automatic mode
  • EQ suggestions adjusted for clearer wording
  • new informational card accessible from the version badge

Persistence and structure

  • selected language persists per user without relying on the app bundle
  • reverb modes now use stable internal values (VoiceMode) instead of visible strings
  • emotions and vocal layers now use stable internal keys, prepared for additional languages
  • EQ suggestions and tips no longer depend on persisted UI strings as identity
  • decayVal is no longer persisted as a string and is reconstructed from the real value
  • compatibility maintained with persisted states from previous versions

Internal system cleanup

  • model layer refactored to better separate:
    • internal logic
    • persistence
    • UI text
  • reduced coupling between localization and functional state
  • cleaner base for future intelligent features, more languages, and preset export
  • simplification of derived text so the UI handles presentation while the model preserves semantic intent

Minor fixes and adjustments

  • fixes to live language refresh, especially when switching between manual and automatic modes
  • fixes for inconsistencies between localization files
  • fix for EQ text formatting (@ symbol)
  • fixes for history strings and secondary actions not updating across all languages
  • fix for information modal presentation not breaking the main layout
  • fixes for visual artifacts in the information card
  • improved interaction for version badge and modal close button

Compatibility

  • deployment target remains set to macOS 13.5
  • the new localization flow and language selection are configured for stable fallback between Spanish and English
  • newer visual APIs used by the interface remain guarded by availability checks
  • compatibility was reviewed at project and build level, although this version hasn't been manually validated on a real macOS 13 machine

What’s new in 2.5.1

Functional changes

  • app icon modernized for better compatibility with current macOS versions
  • main persistence moved to a local JSON file
  • history and selection restored from a single state file
  • groundwork added to let users reset persisted state by deleting that file

Structural changes

  • functional app state centralized in VoxSpaceStore
  • reverb engine separated into ReverbEngine.swift
  • persistence decoupled into VoxSpacePersistence.swift
  • history extracted into HistorySectionView.swift
  • models and helpers separated to reduce the size of ContentView.swift
  • internal reorganization to improve maintainability, readability, and long-term scalability
  • simplification of complex UI expressions to reduce Xcode compiler friction

Stability and security

  • basic security review applied to keep the code surface lean
  • local persistence isolated in a single controlled file, easier to maintain and reset
  • app sandbox preserved with a reduced attack surface, without network access or external process execution
  • groundwork added to keep state, logic, and view responsibilities more clearly separated

Quick Use

  1. Enter your track BPM
  2. Select mode, emotion, and vocal layer
  3. Apply the suggested values
  4. Refine by ear in your plugin

VoxSpace provides a starting point, not a final mix.

Designed to integrate directly into your mixing workflow.


VoxSpace is a macOS app built with SwiftUI to quickly generate vocal reverb settings based on three simple ideas:

  • Mode: defines the size and spatial feeling of the reverb
  • Emotion: defines the color or character of the effect
  • Vocal layer: defines how prominent the voice is in the mix

The goal of the app is not to replace your ear or mix for you, but to provide a fast, coherent and musical starting point. It is designed to avoid blind decisions when using reverb and to speed up the mixing workflow.


What the app does

The user enters a BPM and selects:

  • a spatial mode
  • an emotion
  • a vocal layer

VoxSpace then calculates in real time:

  • Pre-delay
  • Duration (reverb decay)
  • Level (reverb amount in dB)
  • a suggested EQ
  • a quick usage tip

It also allows saving presets in an internal history.


System design

The app follows a clear hierarchy:

  1. Mode Defines the spatial structure (distance and size)
  2. Vocal layer Controls how much of the reverb is perceived
  3. Emotion Adds color and nuance without redefining the space

This means:

  • Intimate always feels closer
  • Large always feels wider
  • emotion should refine, not break the space

Modes

Current modes:

  • Classic mode
  • Intimate
  • Natural
  • Large

Each mode changes the relationship between tempo, pre-delay and decay to create a different spatial perception. Classic mode works as a base reference: it calculates values only from BPM, without applying contextual or character-based modifications.


Emotions

Current emotions:

  • Cold
  • Warm
  • Tense
  • Hollow

They do not represent different spaces, but different tonal characters within the same space. They mainly affect how the decay is perceived (shorter, more diffuse, more controlled) and the suggested EQ.


Vocal layers

  • Lead
  • Choir
  • Adlibs
  • Texture

They adjust how much reverb is applied depending on the role of the voice in the mix.


Philosophy

VoxSpace is designed for speed.

  1. Choose a musical context
  2. Get an immediate starting point
  3. Refine by ear in your plugin or chain

It is a decision-making tool, not a final mix solution.


Interface

The app is structured as a compact window with:

  • header
  • main input section
  • results section
  • preset saving
  • history

Persistence

The app remembers:

  • selected language
  • last BPM
  • current mode, emotion and layer
  • history state

Starting with version 2.5.1, the app’s main persisted state is stored in a local JSON file inside Application Support. This makes maintenance easier, simplifies the architecture, and allows that part of the app state to be reset by deleting the file.


Languages

  • Spanish
  • English
  • Japanese 日本語

Project structure

  • ContentView.swift → main UI composition
  • Models/ → shared models
  • Stores/VoxSpaceStore.swift → central functional app state
  • Support/ReverbEngine.swift → reverb calculation engine
  • Support/VoxSpacePersistence.swift → local file persistence
  • Views/HistorySectionView.swift → history view
  • VoxSpaceApp.swift → entry point
  • Assets.xcassets → resources
  • VoxSpace.icon → primary app icon

Status

VoxSpace is usable in real workflows, but is still actively in development.

  • real-time calculation
  • persistent history
  • evolving UI and interaction design

The tool is still being refined, and some behaviors (especially UI interactions and edge cases) may continue to improve over time.


Feedback

VoxSpace is still in the works.

Feedback is essential to improve both the musical logic and the user experience. If you use the app and notice anything unclear, inconsistent, or improvable, that input is extremely valuable.


Future

  • more languages
  • favorite presets
  • export features
  • deeper musical tuning

Author

Alexey Delgado

🇯🇵 日本語

VoxSpace

🌏 日本語に対応しました

リバーブを感覚で決めるのはやめましょう。数秒で最適な設定を。

👉 最新版のダウンロード: https://github.com/alexeydelgado/VoxSpace/releases

BPMに基づいて、素早く音楽的に一貫したボーカルリバーブ設定を生成するツールです。

VoxSpace Interface


⚠️ macOS セキュリティ(初回起動時)

VoxSpace は署名されていないため、初回起動時に macOS によってブロックされる場合があります。

その場合は以下の手順を試してください:

方法 1(推奨)

  1. VoxSpace.app を右クリック
  2. 「開く」 をクリック
  3. 表示されるポップアップでもう一度 「開く」 をクリック

方法 2(それでも開けない場合)

  1. システム設定 を開く
  2. 「プライバシーとセキュリティ」 に移動
  3. 下にスクロールして 「このまま開く」 をクリック

これでアプリは通常どおり起動するようになります。


2.6.0 の新機能

新機能: 日本語対応 日本語

  • VoxSpace は日本語インターフェースに対応しました
  • 言語セレクターは 自動, Español, English, 日本語 をサポート

機能の変更

  • 言語セレクターを 自動, Español, English, 日本語 に拡張
  • 自動言語モードがシステム言語に連動
  • 未対応言語の場合は英語にフォールバック
  • ローカライズ基盤を拡張し、今後の言語追加に対応
  • モード説明テキストが言語変更時に正しく更新されるよう改善
  • EQ提案の表現をより分かりやすく調整
  • バージョンバッジからアクセスできる情報カードを追加

永続化と構造

  • 選択した言語はアプリバンドルに依存せずユーザーごとに保存
  • リバーブモードは表示用文字列ではなく安定した内部値(VoiceMode)を使用
  • 感情とボーカルレイヤーも安定した内部キーを使用し、多言語対応に備えた設計
  • EQ提案とヒントは内部識別にUI文字列を使用しない設計へ変更
  • decayVal は文字列として保存されず、実際の値から再構築
  • 旧バージョンの保存状態との互換性を維持

内部構造の整理

  • モデル層をリファクタリングし以下を明確に分離:
    • 内部ロジック
    • 永続化
    • UIテキスト
  • ローカライズと機能状態の結合を削減
  • 将来の機能拡張や多言語対応のための基盤を整理
  • 表示テキストの簡素化によりUIは表示、モデルは意味を保持

軽微な修正と調整

  • 言語切り替え時のリアルタイム更新の不具合を修正
  • ローカライズファイル間の不整合を修正
  • EQテキストの @ 表記を改善
  • 履歴やサブ操作の多言語対応の不具合を修正
  • 情報モーダルがレイアウトを崩す問題を修正
  • 情報カードの視覚的な不具合を修正
  • バージョンバッジとモーダル閉じるボタンの操作性を改善

互換性

  • デプロイターゲットは macOS 13.5 を維持
  • ローカライズと言語選択はスペイン語・英語・日本語間で安定したフォールバックを実現
  • 新しいUI APIは可用性チェックで保護
  • macOS 13 実機での手動検証は未実施

クイックスタート

  1. トラックのBPMを入力
  2. モード、エモーション、ボーカルレイヤーを選択
  3. 提案された値を適用
  4. プラグイン内で耳を使って微調整

VoxSpace は最終的なミックスではなく、出発点を提供するツールです。

ミキシングワークフローに自然に組み込めるよう設計されています。


VoxSpace は、3つのシンプルな要素に基づいてボーカルリバーブ設定を素早く生成する、SwiftUIで開発された macOS アプリです:

  • モード: リバーブの空間的な広がりやサイズを定義
  • エモーション: エフェクトの色やキャラクターを定義
  • ボーカルレイヤー: ミックス内での声の存在感を定義

このアプリの目的は、耳の代わりにミックスを行うことではなく、
素早く、一貫性があり、音楽的な出発点を提供することです。
リバーブ使用時の手探りの判断を避け、ミキシング作業を効率化するために設計されています。


アプリの機能概要

ユーザーはBPMを入力し、以下を選択します:

  • 空間モード
  • エモーション
  • ボーカルレイヤー

その後、VoxSpace はリアルタイムで以下を計算します:

  • プリディレイ
  • ディケイ(リバーブの長さ)
  • レベル(リバーブ量 / dB)
  • 推奨EQ
  • 簡単な使用アドバイス

また、プリセットを内部履歴に保存することも可能です。


システム設計

アプリは明確な階層構造に従っています:

  1. モード
    空間構造(距離やサイズ)を定義
  2. ボーカルレイヤー
    リバーブの知覚量を調整
  3. エモーション
    空間を変えずに色やニュアンスを追加

つまり:

  • Intimate は常に近く感じられる
  • Large は常に広く感じられる
  • エモーションは空間を壊さず、補完する役割を持つ

モード

現在のモード:

  • Classic mode
  • Intimate
  • Natural
  • Large

各モードはテンポ、プリディレイ、ディケイの関係を変化させ、異なる空間感を生み出します。
Classic mode は基準として機能し、BPM のみから値を算出し、文脈やキャラクターによる補正は行いません。


エモーション

現在のエモーション:

  • Cold
  • Warm
  • Tense
  • Hollow

これらは異なる空間を表すのではなく、同じ空間内での音色的キャラクターを定義します。
主にディケイの感じ方(短さ、拡散感、コントロール感)や推奨EQに影響します。


ボーカルレイヤー

  • Lead
  • Choir
  • Adlibs
  • Texture

ミックス内での役割に応じて、リバーブの適用量を調整します。


設計思想

VoxSpace はスピード重視で設計されています。

  1. 音楽的コンテキストを選択
  2. 即座に出発点を取得
  3. プラグインやチェーン内で耳で調整

これは意思決定のためのツールであり、最終的なミックスを行うものではありません。


UI構成

アプリはコンパクトなウィンドウで構成されています:

  • ヘッダー
  • メイン入力セクション
  • 結果セクション
  • プリセット保存
  • 履歴

永続化

アプリは以下を記憶します:

  • 選択された言語
  • 最後に入力したBPM
  • 現在のモード、エモーション、レイヤー
  • 履歴状態

バージョン 2.5.1 以降、主要な状態は Application Support 内のローカルJSONファイルに保存されます。
これにより保守性が向上し、構造が簡素化され、ファイルを削除することで状態のリセットも可能になります。


言語

  • スペイン語
  • 英語
  • 日本語 日本語

プロジェクト構成

  • ContentView.swift → メインUI構成
  • Models/ → 共通モデル
  • Stores/VoxSpaceStore.swift → アプリの中核状態管理
  • Support/ReverbEngine.swift → リバーブ計算エンジン
  • Support/VoxSpacePersistence.swift → ローカル保存処理
  • Views/HistorySectionView.swift → 履歴ビュー
  • VoxSpaceApp.swift → エントリーポイント
  • Assets.xcassets → リソース
  • VoxSpace.icon → アプリアイコン

ステータス

VoxSpace は実際のワークフローで使用可能ですが、現在も開発中です。

  • リアルタイム計算
  • 履歴の永続化
  • UIおよび操作性の継続的改善

ツールは引き続き改良中であり、特にUI挙動やエッジケースは今後も改善される可能性があります。


フィードバック

VoxSpace はまだ進行中のプロジェクトです。

音楽的ロジックとユーザー体験の両方を改善するために、フィードバックは非常に重要です。
使用していて不明点や違和感、改善点があれば、その意見は大きな価値があります。


今後の予定

  • さらなる言語対応
  • お気に入りプリセット
  • エクスポート機能
  • 音楽的チューニングの強化

作者

Alexey Delgado

About

BPM-based vocal reverb generator for macOS

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages