Applikation för flerspårsinspelning av musik — Version 0.1.1
2026-04-13
Musician's Canvas är en applikation för flerspårsinspelning av musik för stationära datorer. Den stöder ljudinspelning från mikrofoner och linjeinenheter, MIDI-inspelning från klaviaturer och kontroller, samt mixning av alla spår till en enda WAV- eller FLAC-fil. En kompletterande applikation, Virtual MIDI Keyboard, tillhandahåller ett mjukvarupianoklaviatur för att skicka MIDI-noter.
Musician's Canvas är utformad för att vara enkel att använda och erbjuder samtidigt funktioner som vanligen finns i digitala ljudarbetsstationer (DAW):
Kör den körbara filen musicians_canvas från byggkatalogen eller din installationsplats:
./musicians_canvas
Vid första start öppnas applikationen med ett tomt projekt. Du behöver ange en projektkatalog innan inspelning.
Vid start tillämpar applikationen det sparade temat (mörkt eller ljust) och, om en projektkatalog tidigare
har använts och innehåller en project.json-fil, laddas projektet automatiskt.
Ange projektkatalogen: Skriv in eller bläddra till en mapp i fältet "Project Location" högst upp i fönstret. Det är här inspelningar och projektfilen kommer att lagras.
Lägg till ett spår: Klicka på knappen + Add Track. Ett nytt spår visas med standardinställningar. Om det är det enda spåret i projektet och det inte har spelats in ännu, förbereds det automatiskt för inspelning.
Namnge spåret: Skriv ett namn i textfältet bredvid knappen "Options". Detta namn används som filnamn för den inspelade ljudfilen.

Direkt under menyraden finns ett verktygsfält med snabbåtkomstknappar:

Projektfilen (project.json) lagrar spårnamn, typer, MIDI-noter, ljudfilreferenser och alla
projektspecifika inställningar. Ljudfiler lagras i samma katalog som project.json och namnges efter
sina spår (t.ex. My_Track.flac).
Om du stänger applikationen med osparade ändringar visas en bekräftelsedialog som frågar om du vill spara innan du avslutar.
När ett projekt är öppet kan du dra en eller flera filer med stödda ljudformat från din filhanterare (Windows Utforskaren, macOS Finder, Linux-filhanterare osv.) direkt till Musician's Canvas-fönstret för att lägga till dem som nya ljudspår.
.wav och .flac. Filer i andra format hoppas över
tyst, och en dialogruta i slutet listar vilka filer som hoppades över.Bass Line.wav skapar till exempel ett ljudspår
som heter "Bass Line".Varje spår kan konfigureras som antingen Audio (för mikrofon-/linjeinspelning) eller MIDI (för klaviatur-/kontrollerinspelning).
Så här ändrar du spårtyp:
Detta öppnar dialogen för spårkonfiguration där du kan välja ingångskälla.

Varje spårrad innehåller följande kontroller:
När ett projekt har exakt ett spår och det spåret inte har spelats in ännu, förbereds det automatiskt för inspelning. Detta gäller både när man lägger till det första spåret i ett nytt projekt och när man öppnar ett befintligt projekt som har ett enda tomt spår.
Det inspelade ljudet sparas som en FLAC-fil i projektkatalogen, namngiven efter spåret.
Under inspelning och uppspelning inaktiveras alla interaktiva kontroller (spårknappar, inställningar etc.) för att förhindra oavsiktliga ändringar.
Ljudspår har en knapp Effekter direkt under Options. Den öppnar dialogen Spår-effekter, där du bygger en ordnad kedja av insert-effekter för inspelning på detta spår:

Effekttyper inkluderar Reverb, Chorus, Flanger, Overdrive / distortion, Amp & cabinet (modellering av förstärkare och högtalarlåda: amptyp, kabinett, förstärkning, bas/mellan/discant, luft och blandning) och Vibrato (Tremolo).
Vibrato (Tremolo) är klassiska Fender‑”Vibrato” (tremolo): en periodisk volymmodulation. Använd Speed för pulshastighet och Intensity (Depth) för djup (från subtilt skimmer till full “chop”).
Skärmbilder av Amp & cabinet:


Effekter tillämpas när du stoppar inspelningen, efter normal capture och omsampling. Konfigurationen lagras
i project.json under 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.
Bredvid tidsdisplayen styr Övervaka ljud under inspelning om live-ingång skickas till projektets ljudutgång under inspelning:
Inställningen sparas i projektet (monitorWhileRecording i project.json). Stäng av för att minska mikrofonåterkoppling.
När du spelar in ett nytt spår medan andra aktiverade spår redan innehåller ljud- eller MIDI-data utför Musician's Canvas överdubinspelning: de befintliga spåren mixas ihop och spelas upp i realtid medan det nya spåret spelas in. Detta gör att du kan höra tidigare inspelade delar medan du spelar in en ny.
Mixen av befintliga spår förbereds innan inspelningen börjar, så inspelning och uppspelning startar ungefär samtidigt, vilket håller alla spår synkroniserade.
Musician's Canvas stöder två backend för ljudinspelning:
Inspelningsbackend kan konfigureras per projekt i Project > Project Settings > Audio.
Musician's Canvas spelar in med ljudingångsenhetens nativa samplingsfrekvens och konverterar sedan automatiskt till projektets konfigurerade samplingsfrekvens med högkvalitativ omsampling. Det innebär att du kan ställa in valfri projektsamplingsfrekvens (t.ex. 44100 Hz eller 48000 Hz) oavsett enhetens nativa frekvens. Konverteringen bevarar tonhöjd och varaktighet exakt.
Vissa ljudenheter (t.ex. USB-webbkameramikrofoner) är fysiskt mono men annonseras som stereo av operativsystemet. Musician's Canvas detekterar detta automatiskt och justerar kanalantalet därefter. Om projektet är konfigurerat för stereo dupliceras monosignalen till båda kanalerna.
MIDI-noter visas i en pianorulle-visualisering på spåret.
Musician's Canvas innehåller en inbyggd metronom som kan användas under inspelning för att hjälpa till att hålla takten. Klicka på metronomknappen i knappraden (under menyraden) för att öppna dialogrutan för metronominställningar:

Dialogrutan erbjuder:
När metronomen är aktiverad börjar den ticka när inspelningen faktiskt startar (efter att 3-sekunders nedräkningen är klar) och stoppar när inspelningen avslutas.
Klicka på knappen Play för att mixa och spela upp alla aktiverade spår. Knappens verktygstips ändras för att indikera om den kommer att spela upp eller spela in beroende på om ett spår är förberett. Inaktiverade spår (omarkerade) exkluderas från uppspelning.
Under uppspelning avkodas ljudspår från sina FLAC-filer och MIDI-spår renderas till ljud med den inbyggda synthesizern FluidSynth. Alla spår mixas ihop och spelas upp genom systemets ljudutgångsenhet.
Klicka på knappen Stop för att avsluta uppspelningen när som helst.
Använd Tools > Mix tracks to file (Ctrl+M) för att exportera alla aktiverade spår till en enda ljudfil. En dialog låter dig välja utmatningsväg och format:
Mixen använder projektets konfigurerade samplingsfrekvens. MIDI-spår renderas med den konfigurerade SoundFont.
Använd Settings > Configuration (Ctrl+,) för att ställa in globala standardvärden som gäller för alla projekt:



.sf2 SoundFont-fil för MIDI-syntes. I Linux kan en system-SoundFont
detekteras automatiskt om paketet fluid-soundfont-gm är installerat. I Windows och macOS måste du
konfigurera SoundFont-sökvägen manuellt.

Använd Project > Project Settings (Ctrl+P) för att åsidosätta globala standardvärden enbart för det
aktuella projektet. Detta är användbart för projekt som behöver en specifik samplingsfrekvens, SoundFont
eller ljudenhet. Projektspecifika inställningar sparas i filen 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.
| Menypost | Genväg | Beskrivning |
|---|---|---|
| Save Project | Ctrl+S | Spara aktuellt projekt till disk |
| Open Project | Ctrl+O | Öppna en befintlig projektfil |
| Close | Ctrl+Q | Avsluta applikationen |
| Menypost | Genväg | Beskrivning |
|---|---|---|
| Project Settings | Ctrl+P | Projektinställningar (inkl. Aux / Send Bus) |
| Tempo map | Tempoväxlingar (s vs BPM) för metronom och MIDI-kvantisering | |
| Add Demo Data to Selected Track | Lägg till demo-MIDI-noter för demonstration |
| Menypost | Genväg | Beskrivning |
|---|---|---|
| Undo | Ctrl+Z | Ångra mixer-/trimändringar |
| Redo | Ctrl+Shift+Z | Gör om |
| Menypost | Genväg | Beskrivning |
|---|---|---|
| Configuration | Ctrl+, | Öppna globala applikationsinställningar |
| Menypost | Genväg | Beskrivning |
|---|---|---|
| Mix tracks to file | Ctrl+M | Exportera alla aktiverade spår till en fil |
| Export stems to folder | En WAV per spår (gain/pan/trim; inga master Mix Effects) | |
| Recording options | Punch-in för audio; loop-uppspelning för hela projektet | |
| Quantize MIDI | MIDI-notstarter mot rutnät (alla MIDI eller endast armerat spår) | |
| Add drum track | D | MIDI-trumspår och .mid (se nedan) |
| Virtual MIDI Keyboard | Starta den kompletterande klaviaturappen |
| Menypost | Genväg | Beskrivning |
|---|---|---|
| Manual | Alt+M | Öppna PDF-manualen på det språk som är valt i appen |
| About | Visa versions- och programinformation |
| Genväg | Åtgärd |
|---|---|
| Ctrl+S | Spara projekt |
| Ctrl+Z | Ångra (mixer/trim) |
| Ctrl+Shift+Z | Gör om |
| Ctrl+O | Öppna projekt |
| Ctrl+M | Mixa spår till fil |
| D | Lägg till trumspår (Tools-menyn) |
| Ctrl+P | Projektinställningar |
| Ctrl+, | Inställningar / Konfiguration |
| Alt+M | Öppna PDF-manual (Help) |
| Ctrl+Q / Alt+F4 | Avsluta |
Tools → Add drum track (kortkommando D) lägger till MIDI-trumspår på kanal 10 General MIDI (index 9). Standardnamn Drums.
En .mid skrivs i projektmappen: två takter 4/4. Tempo:
Länkar: Audient, MDrummer, Reddit, CS229 PDF.
Virtual MIDI Keyboard är en kompletterande applikation (virtual_midi_keyboard) som tillhandahåller
ett pianoklaviatur på skärmen för att skicka MIDI-noter. Den kan startas från menyn
Tools > Virtual MIDI Keyboard i huvudapplikationen, eller köras fristående.

Datorns tangentbord är mappat till pianotangenter över två oktaver:
Nedre oktaven (börjar vid aktuell oktav):
| Tangent | Not |
|---|---|
| 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 |
Övre oktaven (en oktav högre):
| Tangent | Not |
|---|---|
| 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 (nästa oktav) |
| 9 | C#/Db |
| O | D |
| 0 | D#/Eb |
| P | E |
Tangenter lyser upp visuellt när de trycks ned (vita tangenter blir ljusblå, svarta tangenter mörknar).
Öppna konfigurationsdialogen (Settings > Configuration, Ctrl+,) för att konfigurera MIDI- och ljudenheter:

.sf2 SoundFont-fil för den inbyggda synthesizern.| Genväg | Åtgärd |
|---|---|
| Ctrl+, | Konfigurationsdialog |
| Ctrl+U | Hjälp / Användningsinfo |
| Ctrl+Q | Stäng |
.sf2) för senare uppspelning.Noterna visas i piano roll. File > Save Project skriver en .mid-fil och project.json i projektmappen.
Uppspelning använder FluidSynth med SoundFont från inställningarna. Kontrollera Settings > Configuration > MIDI (eller Project > Project Settings vid projektöverskridningar): en giltig .sf2-sökväg måste anges. Under Linux kan ett system-SoundFont hittas automatiskt; under Windows och macOS måste du oftast välja filen manuellt.
Det är två separata program. Starta Virtual MIDI Keyboard från Tools > Virtual MIDI Keyboard (eller fristående). För att skärmtangentbordet ska nå Musician's Canvas under MIDI-inspelning måste operativsystemet dirigera tangentbordets MIDI-utgång till en ingång som Musician's Canvas använder — ofta via virtuell MIDI-kabel eller matchande portar i båda apparna. De kopplar inte ihop sig automatiskt.
Settings > Configuration anger globala standardvärden (tema, språk, MIDI/ljudenheter, SoundFont m.m.). Project > Project Settings åsidosätter vissa värden endast för det aktuella projektet och sparas i project.json. Om ett fält lämnas på projektstandard gäller det globala värdet från Configuration.
Filer accepteras bara när en projektkatalog är angiven och Musician's Canvas inte spelar eller spelar in. Format som stöds är .wav och .flac; andra filändelser hoppas över och listas i en dialogruta. Varje fil blir ett nytt ljudspår med namn från filnamnet utan ändelse.
Ljud sparas i projektkatalogen som <spårnamn>.flac (tecken som / \ : * ? " < > | ersätts med understreck). Projektfilen är project.json i samma mapp. MIDI-spår sparas som <spårnamn>.mid när du sparar projektet (tillsammans med noter i project.json).
Vid mixning eller uppspelning renderas MIDI först till en temporär WAV internt. Om projektsökvägen är känd skriver Musician's Canvas också en FLAC-cache i projektmappen: <sanerat_spårnamn>.flac (samma saneringsregler som för andra spårfiler). Namnet följer spårnamnet, inte ett internt ID.
Nej. Endast ett spår kan vara armat åt gången; det får nästa inspelning. Bygg låten genom att spela in ett i taget (overdub spelar befintliga spår medan du spelar in ett nytt).
Nej. När den är på spelas metronomen via systemljud bara som referens för dig. Den blandas inte in i inspelningsfilen.
På Windows förväntar sig huvudprogrammet en ASIO-drivrutin för pålitligt ljud med låg latens. Installera ASIO4ALL eller tillverkarens drivrutin vid fel.
I .app-paketet kopieras Virtual MIDI Keyboard-exekverbar fil in i Musician's Canvas.app (Contents/MacOS/) så att en appmapp kan distribueras. Starta den fortfarande via Tools > Virtual MIDI Keyboard.
amixer
eller skrivbordets ljudinställningar för att kontrollera volymnivåer..sf2-fil) är konfigurerad i Settings > Configuration > MIDI.fluid-soundfont-gm är installerat.libpipewire-0.3-dev är installerat (behövs för
PipeWire-integration med synthesizern FluidSynth).Se README för fullständiga bygginstruktioner för Linux, macOS och Windows, inklusive alla nödvändiga beroenden.