Application d'enregistrement musical multipiste — Version 0.1.1
2026-04-13
Musician's Canvas est une application d'enregistrement musical multipiste pour ordinateurs de bureau. Elle prend en charge l'enregistrement audio depuis des microphones et des entrées ligne, l'enregistrement MIDI depuis des claviers et des contrôleurs, ainsi que le mixage de toutes les pistes dans un seul fichier WAV ou FLAC. Une application compagnon, Virtual MIDI Keyboard, fournit un clavier de piano logiciel pour envoyer des notes MIDI.
Musician's Canvas est conçue pour être facile à utiliser tout en offrant des fonctionnalités couramment présentes dans les stations de travail audio numériques (DAW) :
Exécutez le programme musicians_canvas depuis le répertoire de compilation ou votre
emplacement d'installation :
./musicians_canvas
Au premier lancement, l'application s'ouvre avec un projet vide. Vous devrez définir un répertoire de projet avant d'enregistrer.
Au démarrage, l'application applique le thème enregistré (sombre ou clair) et, si un
répertoire de projet a été utilisé précédemment et contient un fichier project.json,
le projet est automatiquement chargé.
Définir le répertoire du projet : Saisissez ou naviguez vers un dossier dans le champ "Project Location" en haut de la fenêtre. C'est là que les enregistrements et le fichier de projet seront stockés.
Ajouter une piste : Cliquez sur le bouton + Add Track. Une nouvelle piste apparaît avec les paramètres par défaut. S'il s'agit de la seule piste du projet et qu'elle n'a pas encore été enregistrée, elle est automatiquement armée pour l'enregistrement.
Nommer la piste : Saisissez un nom dans le champ texte à côté du bouton "Options". Ce nom est utilisé comme nom de fichier pour le fichier audio enregistré.

Juste en dessous de la barre de menus se trouve une barre d'outils avec des boutons d'accès rapide :

Le fichier de projet (project.json) stocke les noms des pistes, les types, les notes
MIDI, les références aux fichiers audio et tous les paramètres spécifiques au projet. Les
fichiers audio sont stockés dans le même répertoire que project.json et sont nommés
d'après leurs pistes (par ex., My_Track.flac).
Si vous fermez l'application avec des modifications non sauvegardées, une boîte de dialogue de confirmation vous demande si vous souhaitez sauvegarder avant de quitter.
Lorsqu'un projet est ouvert, vous pouvez faire glisser un ou plusieurs fichiers audio pris en charge depuis votre gestionnaire de fichiers (Explorateur Windows, Finder macOS, gestionnaire de fichiers Linux, etc.) directement sur la fenêtre de Musician's Canvas pour les ajouter en tant que nouvelles pistes audio.
.wav et .flac. Les fichiers dans tout autre
format sont ignorés silencieusement, et une boîte de dialogue à la fin
répertorie les fichiers qui ont été ignorés.Bass Line.wav crée une
piste audio nommée « Bass Line ».Chaque piste peut être configurée en tant que Audio (pour l'enregistrement depuis un microphone ou une entrée ligne) ou MIDI (pour l'enregistrement depuis un clavier ou un contrôleur).
Pour changer le type de piste :
Cela ouvre la boîte de dialogue de configuration de la piste où vous pouvez sélectionner la source d'entrée.

Chaque ligne de piste fournit les contrôles suivants :
Lorsqu'un projet contient exactement une piste et que cette piste n'a pas encore été enregistrée, elle est automatiquement armée pour l'enregistrement. Cela s'applique aussi bien lors de l'ajout de la première piste à un nouveau projet que lors de l'ouverture d'un projet existant comportant une seule piste vide.
L'audio enregistré est sauvegardé sous forme de fichier FLAC dans le répertoire du projet, nommé d'après la piste.
Pendant l'enregistrement et la lecture, tous les contrôles interactifs (boutons de piste, paramètres, etc.) sont désactivés pour éviter les modifications accidentelles.
Les pistes audio ont un bouton Effets juste sous Options. Il ouvre la boîte de dialogue Effets de piste, où vous configurez une chaîne ordonnée d'effets d'insertion pour les enregistrements sur cette piste :

Parmi les types proposés : Réverb, Chorus, Flanger, Overdrive / distorsion, Amp & cab (modélisation ampli et baffle : type d’ampli, baffle, gain, grave/médium/aigu, présence/air et mixage) et Vibrato (trémolo).
Vibrato (trémolo) correspond au “Vibrato” typique des amplis Fender : une modulation périodique du volume. Le réglage Speed définit la vitesse de pulsation, et Intensity (Depth) la profondeur (d’un léger frémissement à un hachage complet).
Captures du module Amp & cab :


Les effets sont appliqués à l’arrêt de l’enregistrement, après la capture et le
rééchantillonnage habituels. La configuration est stockée dans project.json sous
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 configures a shared effect chain fed by each track’s Aux send slider (on the track row). The dry mix of all tracks is summed, each track’s post-gain/post-pan signal is scaled by its Aux level and sent through this bus, then the wet aux output is added back to the dry sum before Mix Effects run. Use it for a single shared reverb/delay while keeping per-track insert effects independent.
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.
Each track row includes a compact mixer strip:
Options → Track Configuration also offers Clip trim (non-destructive): Trim start and Trim end skip that many seconds from the beginning and end of the clip for playback, mix, and export without deleting the underlying recording.
MIDI tracks can carry control change (CC) automation stored in the project and in exported .mid files; offline playback and mix use these events when rendering MIDI to audio.
Edit → Undo / Redo (standard shortcuts) apply to mixer and trim changes made on tracks.
À côté de l’affichage du temps, la case Écouter l’audio pendant l’enregistrement active ou non l’envoi de l’entrée en direct vers la sortie audio du projet pendant l’enregistrement :
Le réglage est enregistré dans le projet (monitorWhileRecording dans project.json). Décochez pour limiter l’acoustique vers le micro (retour).
Lors de l'enregistrement d'une nouvelle piste alors que d'autres pistes activées contiennent déjà des données audio ou MIDI, Musician's Canvas effectue un enregistrement en overdub : les pistes existantes sont mixées ensemble et lues en temps réel pendant que la nouvelle piste est enregistrée. Cela vous permet d'écouter les parties précédemment enregistrées tout en en enregistrant une nouvelle.
Le mixage des pistes existantes est préparé avant le début de la capture, de sorte que l'enregistrement et la lecture démarrent approximativement au même instant, maintenant toutes les pistes synchronisées.
Musician's Canvas prend en charge deux moteurs de capture audio :
Le moteur d'enregistrement peut être configuré par projet dans Project > Project Settings > Audio.
Musician's Canvas enregistre à la fréquence d'échantillonnage native du périphérique d'entrée audio, puis convertit automatiquement à la fréquence d'échantillonnage configurée du projet en utilisant un rééchantillonnage de haute qualité. Cela signifie que vous pouvez définir n'importe quelle fréquence d'échantillonnage pour le projet (par ex., 44100 Hz ou 48000 Hz) indépendamment de la fréquence native du périphérique. La conversion préserve exactement la hauteur et la durée.
Certains périphériques audio (par ex., les microphones de webcams USB) sont physiquement mono mais sont annoncés comme stéréo par le système d'exploitation. Musician's Canvas détecte automatiquement cette situation et ajuste le nombre de canaux en conséquence. Si le projet est configuré en stéréo, le signal mono est dupliqué sur les deux canaux.
Les notes MIDI sont affichées dans une visualisation en piano roll sur la piste.
Musician's Canvas inclut un métronome intégré qui peut être utilisé pendant l'enregistrement pour aider à garder le tempo. Cliquez sur le bouton du métronome dans la barre de boutons (sous la barre de menus) pour ouvrir la boîte de dialogue des paramètres du métronome :

La boîte de dialogue fournit :
When Project → Tempo map defines tempo changes, the metronome follows those markers during recording (the BPM field still sets the initial tempo until a marker applies). Lorsque le métronome est activé, il commence à tictaquer une fois que l'enregistrement démarre réellement (après la fin du compte à rebours de 3 secondes) et s'arrête lorsque l'enregistrement se termine.
Cliquez sur le bouton Play pour mixer et lire toutes les pistes activées. L'info-bulle du bouton change pour indiquer s'il va lire ou enregistrer selon qu'une piste est armée ou non. Les pistes désactivées (décochées) sont exclues de la lecture.
Pendant la lecture, les pistes audio sont décodées depuis leurs fichiers FLAC et les pistes MIDI sont rendues en audio à l'aide du synthétiseur FluidSynth intégré. Toutes les pistes sont mixées ensemble et jouées via le périphérique de sortie audio du système.
Cliquez sur le bouton Stop pour arrêter la lecture à tout moment.
Utilisez Tools > Mix tracks to file (Ctrl+M) pour exporter toutes les pistes activées dans un seul fichier audio. Une boîte de dialogue vous permet de choisir le chemin de sortie et le format :
Le mixage utilise la fréquence d'échantillonnage configurée du projet. Les pistes MIDI sont rendues en utilisant le SoundFont configuré.
Utilisez Settings > Configuration (Ctrl+,) pour définir les valeurs par défaut globales qui s'appliquent à tous les projets :

recording_debug.txt dans le répertoire du projet. Cela inclut
le moteur de capture, le nom du périphérique, la fréquence d'échantillonnage, le nombre
de canaux et les données de chronométrage. Cette option est désactivée par défaut et est
principalement utile pour le dépannage des problèmes d'enregistrement.

.sf2 pour la synthèse MIDI. Sous
Linux, un SoundFont système peut être détecté automatiquement si le paquet
fluid-soundfont-gm est installé. Sous Windows et macOS, vous devez configurer le
chemin du SoundFont manuellement.

Utilisez Project > Project Settings (Ctrl+P) pour remplacer les valeurs par défaut
globales pour le projet en cours uniquement. Ceci est utile pour les projets nécessitant
une fréquence d'échantillonnage, un SoundFont ou un périphérique audio spécifique. Les
paramètres spécifiques au projet sont sauvegardés dans le fichier 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.
Configure the shared aux effect chain (same effect types as track inserts). Each track’s Aux slider on the track row controls how much of that track’s signal is sent through this bus; the wet aux return is summed with the dry mix before Mix Effects are applied.
| Élément du menu | Raccourci | Description |
|---|---|---|
| Save Project | Ctrl+S | Sauvegarder le projet en cours |
| Open Project | Ctrl+O | Ouvrir un fichier de projet existant |
| Close | Ctrl+Q | Quitter l'application |
| Élément du menu | Raccourci | Description |
|---|---|---|
| Project Settings | Ctrl+P | Configure project-specific settings (includes Aux / Send Bus) |
| Tempo map | Edit tempo changes (seconds vs BPM) for metronome and MIDI quantization | |
| Add Demo Data to Selected Track | Ajouter des notes MIDI de démonstration |
| Menu Item | Shortcut | Description |
|---|---|---|
| Undo | Ctrl+Z | Undo recent mixer/trim edits on tracks |
| Redo | Ctrl+Shift+Z | Redo |
| Élément du menu | Raccourci | Description |
|---|---|---|
| Configuration | Ctrl+, | Ouvrir les paramètres globaux de l'application |
| Élément du menu | Raccourci | Description |
|---|---|---|
| Mix tracks to file | Ctrl+M | Exporter toutes les pistes activées vers un fichier |
| Export stems to folder | One WAV stem per track (gain/pan/trim; no master Mix Effects) | |
| Recording options | Punch-in region for audio; loop playback for the whole project | |
| Quantize MIDI | Snap MIDI note starts to a grid (all MIDI tracks or armed track only) | |
| Add drum track | D | Piste MIDI batterie et groove .mid (voir ci-dessous) |
| Virtual MIDI Keyboard | Lancer l'application clavier compagnon |
| Élément du menu | Raccourci | Description |
|---|---|---|
| Manual | Alt+M | Ouvre le manuel PDF dans la langue actuellement sélectionnée |
| About | Affiche les informations de version et de l’application |
| Raccourci | Action |
|---|---|
| Ctrl+S | Sauvegarder le projet |
| Ctrl+Z | Undo (mixer/trim) |
| Ctrl+Shift+Z | Redo |
| Ctrl+O | Ouvrir un projet |
| Ctrl+M | Mixer les pistes vers un fichier |
| D | Ajouter une piste de batterie (menu Tools) |
| Ctrl+P | Paramètres du projet |
| Ctrl+, | Paramètres / Configuration |
| Alt+M | Open PDF manual (Help) |
| Ctrl+Q / Alt+F4 | Quitter |
Tools → Add drum track (raccourci D) ajoute une piste MIDI percussions sur le canal 10 General MIDI (index 9). Nom par défaut Drums (suffixe numérique si besoin).
Un fichier .mid est écrit tout de suite dans le dossier du projet : deux mesures 4/4 (grosse caisse, caisse claire, charleston fermé). Tempo :
Note : estimation simple ; risque de demi/double temps.
Liens : Audient, MDrummer, Reddit, CS229 PDF.
Virtual MIDI Keyboard est une application compagnon (virtual_midi_keyboard) qui fournit
un clavier de piano à l'écran pour envoyer des notes MIDI. Elle peut être lancée depuis
le menu Tools > Virtual MIDI Keyboard dans l'application principale, ou exécutée
indépendamment.

Le clavier de l'ordinateur est mappé sur les touches de piano sur deux octaves :
Octave inférieure (commençant à l'octave actuelle) :
| Touche | Note |
|---|---|
| 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 |
Octave supérieure (une octave plus haut) :
| Touche | Note |
|---|---|
| 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 (octave suivante) |
| 9 | C#/Db |
| O | D |
| 0 | D#/Eb |
| P | E |
Les touches s'illuminent visuellement lorsqu'elles sont pressées (les touches blanches deviennent bleu clair, les touches noires s'assombrissent).
Ouvrez la boîte de dialogue de configuration (Settings > Configuration, Ctrl+,) pour configurer les périphériques MIDI et audio :

.sf2 pour le synthétiseur intégré.| Raccourci | Action |
|---|---|
| Ctrl+, | Boîte de dialogue Configuration |
| Ctrl+U | Aide / Informations d'utilisation |
| Ctrl+Q | Fermer |
.sf2) pour la lecture ultérieure.Les notes s’affichent dans le piano roll. File > Save Project écrit un fichier .mid (et project.json) dans le dossier du projet.
La lecture utilise FluidSynth avec le SoundFont défini dans les réglages. Vérifiez Settings > Configuration > MIDI (ou Project > Project Settings si vous surchargez par projet) : un chemin .sf2 valide doit être défini. Sous Linux, un SoundFont système peut être détecté automatiquement ; sous Windows et macOS, il faut en général choisir manuellement un fichier SoundFont.
Ce sont deux applications distinctes. Lancez Virtual MIDI Keyboard via Tools > Virtual MIDI Keyboard (ou seul). Pour envoyer les notes du clavier à l’écran vers Musician's Canvas pendant l’enregistrement d’une piste MIDI, le système doit router la sortie MIDI du clavier vers une entrée utilisée par Musician's Canvas — souvent via un câble MIDI virtuel ou des ports cohérents dans les deux apps. Elles ne se connectent pas automatiquement.
Settings > Configuration définit les valeurs par défaut globales (thème, langue, périphériques MIDI/audio, SoundFont, etc.) dans les paramètres de l’application. Project > Project Settings remplace certaines valeurs pour le projet courant uniquement et est enregistré dans project.json. Si un champ reste au défaut projet, la valeur globale de Configuration s’applique.
Le dépôt n’est accepté que si un répertoire de projet est défini et que Musician's Canvas ne lit ni n’enregistre pas. Les types pris en charge sont .wav et .flac ; les autres extensions sont ignorées et listées dans une boîte de dialogue. Chaque fichier devient une nouvelle piste audio nommée d’après le nom de fichier sans extension.
Les enregistrements audio sont dans le répertoire du projet sous <nom_de_piste>.flac (caractères tels que / \ : * ? " < > | sont remplacés par des tirets bas). Le fichier projet est project.json dans le même dossier. Les pistes MIDI sont enregistrées en <nom_de_piste>.mid lorsque vous sauvegardez le projet (en plus des notes dans project.json).
Lors du mixage ou de la lecture, le MIDI est d’abord rendu en WAV temporaire en interne. Si le chemin du projet est connu, Musician's Canvas écrit aussi un FLAC de cache dans le dossier du projet : <nom_de_piste_assaini>.flac (même règle d’assainissement que les autres fichiers de piste). Le nom suit le nom de piste, pas un identifiant interne.
Non. Une seule piste peut être armée à la fois ; elle reçoit l’enregistrement suivant. Vous construisez le morceau en enregistrant l’une après l’autre (l’overdub lit les pistes existantes pendant une nouvelle prise).
Non. S’il est activé, le métronome passe par l’audio système pour vous guider. Il n’est pas inclus dans le fichier enregistré.
Sous Windows, l’application principale attend un pilote ASIO pour une latence faible et fiable. Installez par exemple ASIO4ALL ou le pilote du fabricant de votre interface en cas d’erreur au démarrage ou audio.
Dans le bundle .app, l’exécutable Virtual MIDI Keyboard est copié dans Musician's Canvas.app (Contents/MacOS/) pour ne distribuer qu’un seul dossier d’application. Vous pouvez toujours le lancer via Tools > Virtual MIDI Keyboard.
amixer ou les paramètres sonores de votre bureau
pour vérifier les niveaux de volume..sf2) est configuré dans Settings >
Configuration > MIDI.fluid-soundfont-gm est installé.libpipewire-0.3-dev est installé
(nécessaire pour l'intégration de PipeWire avec le synthétiseur FluidSynth).Consultez le README pour les instructions complètes de compilation pour Linux, macOS et Windows, y compris toutes les dépendances requises.