Aplicación de Grabación Musical Multipista — Version 0.1.1
2026-04-13
Musician's Canvas es una aplicación de grabación musical multipista para computadoras de escritorio. Soporta grabación de audio desde micrófonos y dispositivos de entrada de línea, grabación MIDI desde teclados y controladores, y mezcla de todas las pistas en un único archivo WAV o FLAC. Una aplicación complementaria, Virtual MIDI Keyboard, proporciona un teclado de piano por software para enviar notas MIDI.
Musician's Canvas está diseñado para ser fácil de usar y al mismo tiempo ofrecer funciones comúnmente encontradas en estaciones de trabajo de audio digital (DAWs):
Ejecute el archivo musicians_canvas desde el directorio de compilación o su ubicación de instalación:
./musicians_canvas
Al iniciar por primera vez, la aplicación se abre con un proyecto vacío. Necesitará establecer un directorio de proyecto antes de grabar.
Al iniciar, la aplicación aplica el tema guardado (oscuro o claro) y, si un directorio de proyecto fue utilizado previamente y contiene un archivo project.json, el proyecto se carga automáticamente.
Establecer el directorio del proyecto: Ingrese o navegue hasta una carpeta en el campo "Project Location" en la parte superior de la ventana. Aquí es donde se almacenarán las grabaciones y el archivo del proyecto.
Agregar una pista: Haga clic en el botón + Add Track. Aparecerá una nueva pista con la configuración predeterminada. Si es la única pista del proyecto y aún no ha sido grabada, se arma automáticamente para grabación.
Nombrar la pista: Escriba un nombre en el campo de texto junto al botón "Options". Este nombre se utiliza como nombre del archivo de audio grabado.

Justo debajo de la barra de menús hay una barra de herramientas con botones de acceso rápido:

El archivo del proyecto (project.json) almacena nombres de pistas, tipos, notas MIDI, referencias a archivos de audio y todos los ajustes específicos del proyecto. Los archivos de audio se almacenan en el mismo directorio que project.json y se nombran según sus pistas (por ejemplo, My_Track.flac).
Si cierra la aplicación con cambios sin guardar, un diálogo de confirmación le preguntará si desea guardar antes de salir.
Mientras un proyecto está abierto, puede arrastrar uno o más archivos de audio compatibles desde su administrador de archivos (Explorador de Windows, Finder de macOS, administrador de archivos de Linux, etc.) directamente a la ventana de Musician's Canvas para agregarlos como nuevas pistas de audio.
.wav y .flac. Los archivos en cualquier otro
formato se omiten silenciosamente, y al final un diálogo enumera qué
archivos se omitieron.Bass Line.wav crea una
pista de audio llamada "Bass Line".Cada pista puede configurarse como Audio (para grabación desde micrófono/entrada de línea) o MIDI (para grabación desde teclado/controlador).
Para cambiar el tipo de pista:
Esto abre el diálogo de Configuración de Pista donde puede seleccionar la fuente de entrada.

Cada fila de pista proporciona los siguientes controles:
Cuando un proyecto tiene exactamente una pista y esa pista aún no ha sido grabada, se arma automáticamente para grabación. Esto aplica tanto al agregar la primera pista a un proyecto nuevo como al abrir un proyecto existente que tiene una única pista vacía.
El audio grabado se guarda como un archivo FLAC en el directorio del proyecto, nombrado según la pista.
Durante la grabación y la reproducción, todos los controles interactivos (botones de pista, ajustes, etc.) se deshabilitan para prevenir cambios accidentales.
Las pistas de audio tienen un botón Efectos justo debajo de Options. Abre el diálogo Efectos de pista, donde puede definir una cadena ordenada de efectos insertados para las grabaciones en esa pista:

Puede usar Reverb, Chorus, Flanger, Overdrive / distorsión, Amp & cabinet (modelado de amplificador y pantalla: tipo de ampli, pantalla, ganancia, graves/medios/agudos, aire y mezcla) y Vibrato (Trémolo).
Vibrato (Trémolo) es el clásico “Vibrato” de Fender (en realidad un trémolo): un cambio oscilante de volumen con el tiempo. Use Speed para ajustar la velocidad del pulso y Intensity (Depth) para ajustar la profundidad (de un movimiento sutil a un “chop” completo).
Capturas del efecto Amp & cabinet:


Los efectos se aplican al detener la grabación, después del flujo normal de captura y
remuestreo. La configuración se guarda en project.json en audioEffectChain.
Project → Project Settings → Mix Effects lets you build the same kind of ordered effect chain as Track effects (Reverb, Chorus, Flanger, Overdrive / distortion, Amp & cabinet, Vibrato (Tremolo)), but applied to the entire mixed program: when you press Play to hear all enabled tracks together, and when you export with Mix tracks to file (toolbar or Tools menu). The chain is saved in project.json under projectSettings → mixEffectChain.
Project → Project Settings → Aux / Send Bus configura una cadena de efectos compartida alimentada por el control de envío Aux de cada pista (en la fila de la pista). Se suma la mezcla seca de todas las pistas; la señal tras Gain y Pan se escala con el nivel Aux y pasa por este bus; la salida húmeda del aux se suma de nuevo a la suma seca antes de Mix Effects. Sirve para un reverb o delay compartido manteniendo los inserts por pista.
To reduce harsh digital clipping when processing pushes peaks toward full scale, the effect engine applies a soft limiter to normalized float samples immediately before conversion to 16-bit PCM. The EffectWidget base class documents guardFloatSampleForInt16Pcm() and softLimitFloatSampleForInt16Pcm() for any new real-time code that writes to 16-bit audio.
Cada fila de pista incluye una franja de mezclador:
Options → Track Configuration ofrece Clip trim (no destructivo): Trim start y Trim end omiten esos segundos al inicio y al final del clip para reproducción, mezcla y exportación sin borrar la grabación subyacente.
Las pistas MIDI pueden llevar automatización CC en el proyecto y en .mid exportados; la reproducción y mezcla offline usan esos eventos al renderizar MIDI a audio.
Edit → Undo / Redo (atajos habituales) aplican a cambios de mezclador y recorte en las pistas.
Junto al visor de tiempo, la casilla Escuchar el audio mientras se graba decide si se envía la entrada en directo a la salida de audio del proyecto durante la grabación:
La opción se guarda en el proyecto (monitorWhileRecording en project.json). Desactívela para evitar retroalimentación por micrófono.
Al grabar una nueva pista mientras otras pistas habilitadas ya contienen datos de audio o MIDI, Musician's Canvas realiza una grabación en overdub: las pistas existentes se mezclan y se reproducen en tiempo real mientras se graba la nueva pista. Esto le permite escuchar las partes previamente grabadas mientras graba una nueva.
La mezcla de las pistas existentes se prepara antes de que comience la captura, de modo que la grabación y la reproducción inician aproximadamente en el mismo instante, manteniendo todas las pistas sincronizadas.
Musician's Canvas soporta dos backends de captura de audio:
El backend de grabación puede configurarse por proyecto en Project > Project Settings > Audio.
Musician's Canvas graba a la frecuencia de muestreo nativa del dispositivo de entrada de audio y luego convierte automáticamente a la frecuencia de muestreo configurada del proyecto utilizando remuestreo de alta calidad. Esto significa que puede establecer cualquier frecuencia de muestreo del proyecto (por ejemplo, 44100 Hz o 48000 Hz) independientemente de la frecuencia nativa del dispositivo. La conversión preserva el tono y la duración exactamente.
Algunos dispositivos de audio (por ejemplo, micrófonos de cámaras web USB) son físicamente mono pero el sistema operativo los presenta como estéreo. Musician's Canvas detecta esto automáticamente y ajusta el número de canales en consecuencia. Si el proyecto está configurado para estéreo, la señal mono se duplica en ambos canales.
Las notas MIDI se muestran en una visualización de piano roll en la pista.
Musician's Canvas incluye un metrónomo integrado que puede usarse durante la grabación para ayudar a mantener el tiempo. Haga clic en el botón del metrónomo en la barra de botones (debajo de la barra de menús) para abrir el diálogo de ajustes del metrónomo:

El diálogo proporciona:
Cuando el metrónomo está habilitado, comienza a sonar una vez que la grabación realmente comienza (después de que termina la cuenta regresiva de 3 segundos) y se detiene cuando finaliza la grabación.
Haga clic en el botón Play para mezclar y reproducir todas las pistas habilitadas. El tooltip del botón cambia para indicar si reproducirá o grabará según si hay una pista armada. Las pistas deshabilitadas (desmarcadas) se excluyen de la reproducción.
Durante la reproducción, las pistas de audio se decodifican desde sus archivos FLAC y las pistas MIDI se renderizan a audio utilizando el sintetizador FluidSynth integrado. Todas las pistas se mezclan y se reproducen a través del dispositivo de salida de audio del sistema.
Haga clic en el botón Stop para detener la reproducción en cualquier momento.
Use Tools > Mix tracks to file (Ctrl+M) para exportar todas las pistas habilitadas a un único archivo de audio. Un diálogo le permite elegir la ruta de salida y el formato:
La mezcla utiliza la frecuencia de muestreo configurada del proyecto. Las pistas MIDI se renderizan usando el SoundFont configurado. Se aplican Gain, Pan, mute/solo, envío Aux y trim por pista igual que en reproducción.
Tools → Export stems to folder escribe un archivo WAV por pista (pistas habilitadas que entren en la mezcla). Cada stem refleja el mezclador y trim de esa pista; los Mix Effects maestros no se aplican a stems individuales.
Use Settings > Configuration (Ctrl+,) para establecer los valores predeterminados globales que se aplican a todos los proyectos:

recording_debug.txt en el directorio del proyecto. Esto incluye el backend de captura,
el nombre del dispositivo, la frecuencia de muestreo, el número de canales y datos de
temporización. Esta opción está deshabilitada por defecto y es principalmente útil para
solucionar problemas de grabación.

.sf2 para la síntesis MIDI. En Linux, un SoundFont del sistema puede ser detectado automáticamente si el paquete fluid-soundfont-gm está instalado. En Windows y macOS, debe configurar la ruta del SoundFont manualmente.

Use Project > Project Settings (Ctrl+P) para anular los valores predeterminados globales solo para el proyecto actual. Esto es útil para proyectos que necesitan una frecuencia de muestreo, SoundFont o dispositivo de audio específico. Los ajustes específicos del proyecto se guardan dentro del archivo project.json.


The Mix Effects tab is a scrollable list with the same controls as Track effects (Add effect…, drag ≡ to reorder, ✕ to remove). Processing order is top to bottom on the combined mix of all enabled tracks. These effects run during whole-project playback and when mixing to a single WAV or FLAC file; they are not baked into individual track files on disk. An empty list leaves the mixed signal unchanged aside from the mixer's own level handling.
Configura la cadena de efectos aux compartida (mismos tipos que inserts de pista). El deslizador Aux de cada pista controla cuánta señal entra en este bus; la vuelta húmeda se suma a la mezcla seca antes de Mix Effects.
| Elemento del Menú | Atajo | Descripción |
|---|---|---|
| Save Project | Ctrl+S | Guardar el proyecto actual en disco |
| Open Project | Ctrl+O | Abrir un archivo de proyecto existente |
| Close | Ctrl+Q | Cerrar la aplicación |
| Elemento del Menú | Atajo | Descripción |
|---|---|---|
| Project Settings | Ctrl+P | Configurar ajustes del proyecto (incl. Aux / Send Bus) |
| Tempo map | Editar cambios de tempo (s vs BPM) para metrónomo y cuantización MIDI | |
| Add Demo Data to Selected Track | Agregar notas MIDI de ejemplo para demostración |
| Elemento del Menú | Atajo | Descripción |
|---|---|---|
| Undo | Ctrl+Z | Deshacer cambios de mezclador/trim en pistas |
| Redo | Ctrl+Shift+Z | Rehacer |
| Elemento del Menú | Atajo | Descripción |
|---|---|---|
| Configuration | Ctrl+, | Abrir ajustes globales de la aplicación |
| Elemento del Menú | Atajo | Descripción |
|---|---|---|
| Mix tracks to file | Ctrl+M | Exportar todas las pistas habilitadas a un archivo |
| Export stems to folder | Un WAV por pista (gain/pan/trim; sin Mix Effects maestros) | |
| Recording options | Región punch-in; loop de reproducción del proyecto | |
| Quantize MIDI | Alinear inicios de notas MIDI a rejilla (todas o pista armada) | |
| Add drum track | D | Añadir pista MIDI de batería y escribir un .mid (ver abajo) |
| Virtual MIDI Keyboard | Iniciar la aplicación complementaria de teclado |
| Elemento del Menú | Atajo | Descripción |
|---|---|---|
| Manual | Alt+M | Abre el manual PDF en el idioma seleccionado actualmente |
| About | Muestra información de versión y de la aplicación |
| Atajo | Acción |
|---|---|
| Ctrl+S | Guardar proyecto |
| Ctrl+O | Abrir proyecto |
| Ctrl+Z | Deshacer (mezclador/trim) |
| Ctrl+Shift+Z | Rehacer |
| Ctrl+M | Mezclar pistas a archivo |
| D | Añadir pista de batería (menú Tools) |
| Ctrl+P | Ajustes del Proyecto |
| Ctrl+, | Ajustes / Configuración |
| Alt+M | Abrir manual PDF (Help) |
| Ctrl+Q / Alt+F4 | Salir |
Tools → Add drum track (atajo D) crea una pista MIDI de percusión en el canal 10 General MIDI (índice de canal 9). El nombre predeterminado suele ser Drums (con sufijo numérico si hace falta).
Se escribe de inmediato un .mid en la carpeta del proyecto: dos compases 4/4 con bombo, caja y charleston cerrado. El tempo:
Nota: la detección es sencilla; puede confundir tiempos relacionados por 2.
Referencias: Audient — batería MIDI realista, Melda MDrummer, Reddit, PDF Stanford CS229.
Virtual MIDI Keyboard es una aplicación complementaria (virtual_midi_keyboard) que proporciona un teclado de piano en pantalla para enviar notas MIDI. Puede iniciarse desde el menú Tools > Virtual MIDI Keyboard en la aplicación principal, o ejecutarse de forma independiente.

El teclado de la computadora está asignado a teclas de piano a lo largo de dos octavas:
Octava inferior (comenzando en la octava actual):
| Tecla | Nota |
|---|---|
| Z | C |
| S | C#/Db |
| X | D |
| D | D#/Eb |
| C | E |
| V | F |
| G | F#/Gb |
| B | G |
| H | G#/Ab |
| N | A |
| J | A#/Bb |
| M | B |
Octava superior (una octava más alta):
| Tecla | Nota |
|---|---|
| Q | C |
| 2 | C#/Db |
| W | D |
| 3 | D#/Eb |
| E | E |
| R | F |
| 5 | F#/Gb |
| T | G |
| 6 | G#/Ab |
| Y | A |
| 7 | A#/Bb |
| U | B |
| I | C (siguiente octava) |
| 9 | C#/Db |
| O | D |
| 0 | D#/Eb |
| P | E |
Las teclas se iluminan visualmente al presionarlas (las teclas blancas se vuelven celestes, las teclas negras se oscurecen).
Abra el diálogo de Configuración (Settings > Configuration, Ctrl+,) para configurar los dispositivos MIDI y de audio:

.sf2 para el sintetizador integrado.| Atajo | Acción |
|---|---|
| Ctrl+, | Diálogo de configuración |
| Ctrl+U | Ayuda / Información de uso |
| Ctrl+Q | Cerrar |
.sf2) para la reproducción posterior.Las notas aparecen en el piano roll. File > Save Project escribe un archivo .mid (y project.json) en la carpeta del proyecto.
La reproducción usa FluidSynth con el SoundFont de la configuración. Revise Settings > Configuration > MIDI (o Project > Project Settings si hay anulaciones por proyecto): debe haber una ruta .sf2 válida. En Linux a veces se detecta un SoundFont del sistema; en Windows y macOS suele ser necesario elegir manualmente un archivo SoundFont.
Son programas independientes. Inicie Virtual MIDI Keyboard desde Tools > Virtual MIDI Keyboard (o por separado). Para que el teclado en pantalla entre en Musician's Canvas mientras graba una pista MIDI, el sistema debe enrutar la salida MIDI del teclado a una entrada que use Musician's Canvas — a menudo con un cable MIDI virtual o eligiendo puertos coherentes en ambas aplicaciones. No se conectan solas.
Settings > Configuration define los valores predeterminados globales (tema, idioma, dispositivos MIDI/audio, SoundFont, etc.) de la aplicación. Project > Project Settings sobrescribe parte de eso solo para el proyecto actual y se guarda en project.json. Si un campo queda en el predeterminado del proyecto, se usa el valor global de Configuration.
Solo se aceptan archivos si hay directorio de proyecto y Musician's Canvas no está reproduciendo ni grabando. Los formatos admitidos son .wav y .flac; otros se omiten y se listan en un diálogo. Cada archivo crea una nueva pista audio con el nombre del archivo sin extensión.
El audio se guarda en el directorio del proyecto como <nombre_pista>.flac (caracteres como / \ : * ? " < > | se sustituyen por guiones bajos). El archivo de proyecto es project.json en la misma carpeta. Las pistas MIDI se guardan como <nombre_pista>.mid al guardar el proyecto (junto con las notas en project.json).
Al mezclar o reproducir, el MIDI se renderiza primero a un WAV temporal. Si se conoce la ruta del proyecto, Musician's Canvas también escribe un FLAC en caché en la carpeta del proyecto: <nombre_pista_sanitizado>.flac (misma regla de saneamiento que otros archivos de pista). El nombre sigue el nombre de pista, no un ID interno.
No. Solo una pista puede estar armada; recibe la siguiente grabación. Compone grabando una tras otra (el overdub reproduce las pistas existentes mientras graba una nueva).
No. Si está activado, el metrónomo suena por el audio del sistema solo como referencia. No se mezcla en el archivo grabado.
En Windows la aplicación principal espera un controlador ASIO para audio fiable y de baja latencia. Instale ASIO4ALL o el controlador del fabricante de su interfaz si aparecen errores.
En el bundle .app, el ejecutable de Virtual MIDI Keyboard se copia dentro de Musician's Canvas.app (Contents/MacOS/) para poder distribuir una sola carpeta de aplicación. Sígalo abriendo Tools > Virtual MIDI Keyboard.
amixer o los ajustes de sonido de su escritorio para verificar los niveles de volumen..sf2) esté configurado en Settings > Configuration > MIDI.fluid-soundfont-gm está instalado.libpipewire-0.3-dev esté instalado (necesario para la integración de PipeWire con el sintetizador FluidSynth).Consulte el README para obtener instrucciones completas de compilación para Linux, macOS y Windows, incluyendo todas las dependencias requeridas.