Wielościeżkowa aplikacja do nagrywania muzyki — Version 0.1.1
2026-04-13
Musician's Canvas to wielościeżkowa aplikacja do nagrywania muzyki na komputery stacjonarne. Obsługuje nagrywanie dźwięku z mikrofonów i urządzeń line-in, nagrywanie MIDI z klawiatur i kontrolerów oraz miksowanie wszystkich ścieżek do jednego pliku WAV lub FLAC. Aplikacja towarzysząca, Virtual MIDI Keyboard, udostępnia programową klawiaturę fortepianową do wysyłania nut MIDI.
Musician's Canvas został zaprojektowany z myślą o łatwości użytkowania, oferując jednocześnie funkcje powszechnie spotykane w cyfrowych stacjach roboczych audio (DAW):
Uruchom plik wykonywalny musicians_canvas z katalogu kompilacji lub lokalizacji instalacji:
./musicians_canvas
Przy pierwszym uruchomieniu aplikacja otwiera się z pustym projektem. Przed nagrywaniem należy ustawić katalog projektu.
Przy uruchomieniu aplikacja stosuje zapisany motyw (ciemny lub jasny), a jeśli katalog projektu był wcześniej używany i zawiera plik project.json, projekt jest automatycznie ładowany.
Ustaw katalog projektu: Wpisz lub przejdź do folderu w polu "Project Location" u góry okna. Tutaj będą przechowywane nagrania i plik projektu.
Dodaj ścieżkę: Kliknij przycisk + Add Track. Pojawi się nowa ścieżka z domyślnymi ustawieniami. Jeśli jest jedyną ścieżką w projekcie i nie została jeszcze nagrana, zostaje automatycznie uzbrojona do nagrywania.
Nazwij ścieżkę: Wpisz nazwę w polu tekstowym obok przycisku "Options". Ta nazwa jest używana jako nazwa pliku nagrywanego pliku audio.

Tuż pod paskiem menu znajduje się pasek narzędzi z przyciskami szybkiego dostępu:

Plik projektu (project.json) przechowuje nazwy ścieżek, typy, nuty MIDI, odniesienia do plików audio oraz wszystkie ustawienia specyficzne dla projektu. Pliki audio są przechowywane w tym samym katalogu co project.json i noszą nazwy odpowiadające ścieżkom (np. My_Track.flac).
Jeśli zamkniesz aplikację z niezapisanymi zmianami, dialog potwierdzenia zapyta, czy chcesz zapisać przed wyjściem.
Gdy projekt jest otwarty, możesz przeciągnąć jeden lub więcej obsługiwanych plików audio z menedżera plików (Eksplorator Windows, Finder macOS, menedżer plików Linux itp.) bezpośrednio na okno Musician's Canvas, aby dodać je jako nowe ścieżki audio.
.wav i .flac. Pliki w dowolnym innym formacie
są po cichu pomijane, a na końcu okno dialogowe wyświetla listę pominiętych
plików.Bass Line.wav tworzy
ścieżkę audio o nazwie "Bass Line".Każda ścieżka może być skonfigurowana jako Audio (do nagrywania z mikrofonu/line-in) lub MIDI (do nagrywania z klawiatury/kontrolera).
Aby zmienić typ ścieżki:
Otworzy się dialog Konfiguracja ścieżki, w którym można wybrać źródło wejściowe.

Każdy wiersz ścieżki udostępnia następujące kontrolki:
Gdy projekt ma dokładnie jedną ścieżkę i ta ścieżka nie została jeszcze nagrana, jest automatycznie uzbrajana do nagrywania. Dotyczy to zarówno dodawania pierwszej ścieżki do nowego projektu, jak i otwierania istniejącego projektu z jedną pustą ścieżką.
Nagrany dźwięk jest zapisywany jako plik FLAC w katalogu projektu, nazwany po ścieżce.
Podczas nagrywania i odtwarzania wszystkie interaktywne kontrolki (przyciski ścieżek, ustawienia itp.) są wyłączone, aby zapobiec przypadkowym zmianom.
Ścieżki audio mają przycisk Efekty tuż pod Options. Otwiera on okno Efekty ścieżki, gdzie budujesz uporządkowany łańcuch efektów insert dla nagrań na tej ścieżce:

Dostępne są m.in. Pogłos, Chorus, Flanger, Overdrive / distortion, Amp & cabinet (modelowanie wzmacniacza i kolumny: typ wzm., kolumna, przester, bas/średnie/wysokie, „powietrze” i mieszanie) oraz Vibrato (Tremolo).
Vibrato (Tremolo) to klasyczne fenderowskie „Vibrato” (w praktyce tremolo): okresowa modulacja głośności. Speed ustawia szybkość pulsowania, a Intensity (Depth) jego głębokość (od subtelnego „shimmer” do pełnego „chop”).
Zrzuty ekranu efektu Amp & cabinet:


Efekty stosuje się po zatrzymaniu nagrywania, po zwykłym przechwyceniu i resamplingu. Konfiguracja jest
w project.json w 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.
Obok wyświetlacza czasu pole Monitoruj dźwięk podczas nagrywania włącza lub wyłącza wysyłanie żywego wejścia do wyjścia audio projektu w trakcie nagrywania:
Ustawienie jest zapisywane w projekcie (monitorWhileRecording w project.json). Wyłącz, aby ograniczyć sprzężenie mikrofonowe.
Podczas nagrywania nowej ścieżki, gdy inne włączone ścieżki zawierają już dane audio lub MIDI, Musician's Canvas wykonuje nagrywanie overdub: istniejące ścieżki są miksowane i odtwarzane w czasie rzeczywistym podczas nagrywania nowej ścieżki. Pozwala to słyszeć wcześniej nagrane partie podczas nagrywania nowej.
Miks istniejących ścieżek jest przygotowywany przed rozpoczęciem przechwytywania, dzięki czemu nagrywanie i odtwarzanie rozpoczynają się w przybliżeniu w tym samym momencie, utrzymując wszystkie ścieżki zsynchronizowane.
Musician's Canvas obsługuje dwa backendy przechwytywania dźwięku:
Backend nagrywania można skonfigurować osobno dla każdego projektu w Project > Project Settings > Audio.
Musician's Canvas nagrywa z natywną częstotliwością próbkowania urządzenia wejściowego audio, a następnie automatycznie konwertuje do skonfigurowanej częstotliwości próbkowania projektu przy użyciu wysokiej jakości resamplingu. Oznacza to, że można ustawić dowolną częstotliwość próbkowania projektu (np. 44100 Hz lub 48000 Hz) niezależnie od natywnej częstotliwości urządzenia. Konwersja zachowuje wysokość dźwięku i czas trwania dokładnie.
Niektóre urządzenia audio (np. mikrofony kamer internetowych USB) są fizycznie mono, ale są zgłaszane jako stereo przez system operacyjny. Musician's Canvas automatycznie to wykrywa i odpowiednio dostosowuje liczbę kanałów. Jeśli projekt jest skonfigurowany na stereo, sygnał mono jest duplikowany do obu kanałów.
Nuty MIDI są wyświetlane w wizualizacji piano roll na ścieżce.
Musician's Canvas zawiera wbudowany metronom, którego można używać podczas nagrywania, aby pomóc utrzymać rytm. Kliknij przycisk metronomu na pasku przycisków (pod paskiem menu), aby otworzyć okno dialogowe ustawień metronomu:

Okno dialogowe udostępnia:
Gdy metronom jest włączony, zaczyna tykać, gdy nagrywanie faktycznie się rozpocznie (po zakończeniu 3-sekundowego odliczania), i zatrzymuje się po zakończeniu nagrywania.
Kliknij przycisk Play, aby zmiksować i odtworzyć wszystkie włączone ścieżki. Podpowiedź przycisku zmienia się, wskazując, czy będzie odtwarzać, czy nagrywać, w zależności od tego, czy ścieżka jest uzbrojona. Wyłączone ścieżki (niezaznaczone) są pomijane podczas odtwarzania.
Podczas odtwarzania ścieżki audio są dekodowane z plików FLAC, a ścieżki MIDI są renderowane do audio przy użyciu wbudowanego syntezatora FluidSynth. Wszystkie ścieżki są miksowane razem i odtwarzane przez urządzenie wyjściowe audio systemu.
Kliknij przycisk Stop, aby zakończyć odtwarzanie w dowolnym momencie.
Użyj Tools > Mix tracks to file (Ctrl+M), aby wyeksportować wszystkie włączone ścieżki do pojedynczego pliku audio. Dialog pozwala wybrać ścieżkę wyjściową i format:
Miks używa skonfigurowanej częstotliwości próbkowania projektu. Ścieżki MIDI są renderowane przy użyciu skonfigurowanego SoundFont.
Użyj Settings > Configuration (Ctrl+,), aby ustawić globalne wartości domyślne, które mają zastosowanie do wszystkich projektów:



.sf2 SoundFont do syntezy MIDI. W systemie Linux systemowy SoundFont może zostać automatycznie wykryty, jeśli jest zainstalowany pakiet fluid-soundfont-gm. W systemach Windows i macOS należy ręcznie skonfigurować ścieżkę SoundFont.

Użyj Project > Project Settings (Ctrl+P), aby nadpisać globalne wartości domyślne tylko dla bieżącego projektu. Jest to przydatne w przypadku projektów wymagających określonej częstotliwości próbkowania, SoundFont lub urządzenia audio. Ustawienia specyficzne dla projektu są zapisywane w pliku 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.
| Element menu | Skrót | Opis |
|---|---|---|
| Save Project | Ctrl+S | Zapisz bieżący projekt na dysk |
| Open Project | Ctrl+O | Otwórz istniejący plik projektu |
| Close | Ctrl+Q | Zamknij aplikację |
| Element menu | Skrót | Opis |
|---|---|---|
| Project Settings | Ctrl+P | Skonfiguruj ustawienia projektu (w tym Aux / Send Bus) |
| Tempo map | Zmiany tempa (s vs BPM): metronom i kwantyzacja MIDI | |
| Add Demo Data to Selected Track | Dodaj przykładowe nuty MIDI do demonstracji |
| Element menu | Skrót | Opis |
|---|---|---|
| Undo | Ctrl+Z | Cofnij zmiany miksera/przycięcia na ścieżkach |
| Redo | Ctrl+Shift+Z | Ponów |
| Element menu | Skrót | Opis |
|---|---|---|
| Configuration | Ctrl+, | Otwórz globalne ustawienia aplikacji |
| Element menu | Skrót | Opis |
|---|---|---|
| Mix tracks to file | Ctrl+M | Eksportuj wszystkie włączone ścieżki do pliku |
| Export stems to folder | Jeden plik WAV na ścieżkę (gain/pan/trim; bez master Mix Effects) | |
| Recording options | Punch-in dla audio; loop odtwarzania całego projektu | |
| Quantize MIDI | Przyciąganie początków nut MIDI do siatki (wszystkie lub tylko uzbrojona ścieżka) | |
| Add drum track | D | Ścieżka MIDI perkusji i plik .mid (patrz niżej) |
| Virtual MIDI Keyboard | Uruchom aplikację towarzyszącą klawiatury |
| Element menu | Skrót | Opis |
|---|---|---|
| Manual | Alt+M | Otwórz podręcznik PDF w aktualnie wybranym języku |
| About | Pokaż informacje o wersji i aplikacji |
| Skrót | Działanie |
|---|---|
| Ctrl+S | Zapisz projekt |
| Ctrl+Z | Cofnij (mikser/trim) |
| Ctrl+Shift+Z | Ponów |
| Ctrl+O | Otwórz projekt |
| Ctrl+M | Miksuj ścieżki do pliku |
| D | Dodaj ścieżkę perkusji (menu Tools) |
| Ctrl+P | Ustawienia projektu |
| Ctrl+, | Ustawienia / Konfiguracja |
| Alt+M | Podręcznik PDF (Help) |
| Ctrl+Q / Alt+F4 | Zamknij |
Tools → Add drum track (skrót D) dodaje MIDI na kanale 10 General MIDI (indeks 9). Domyślna nazwa Drums.
Od razu zapisywany jest .mid w folderze projektu: dwa takty 4/4. Tempo:
Linki: Audient, MDrummer, Reddit, CS229 PDF.
Virtual MIDI Keyboard to aplikacja towarzysząca (virtual_midi_keyboard), która udostępnia klawiaturę ekranową do wysyłania nut MIDI. Można ją uruchomić z menu Tools > Virtual MIDI Keyboard w głównej aplikacji lub uruchomić niezależnie.

Klawiatura komputera jest zmapowana na klawisze fortepianowe w dwóch oktawach:
Dolna oktawa (zaczynając od bieżącej oktawy):
| Klawisz | Nuta |
|---|---|
| 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 |
Górna oktawa (jedna oktawa wyżej):
| Klawisz | Nuta |
|---|---|
| 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 (następna oktawa) |
| 9 | C#/Db |
| O | D |
| 0 | D#/Eb |
| P | E |
Klawisze podświetlają się wizualnie po naciśnięciu (białe klawisze stają się jasnoniebieskie, czarne klawisze ciemnieją).
Otwórz dialog konfiguracji (Settings > Configuration, Ctrl+,), aby skonfigurować urządzenia MIDI i audio:

.sf2 SoundFont dla wbudowanego syntezatora.| Skrót | Działanie |
|---|---|
| Ctrl+, | Dialog konfiguracji |
| Ctrl+U | Pomoc / Informacje o użyciu |
| Ctrl+Q | Zamknij |
.sf2) do późniejszego odtwarzania.Nuty widać w piano roll. File > Save Project zapisuje plik .mid oraz project.json w folderze projektu.
Odtwarzanie używa FluidSynth z SoundFont z ustawień. Sprawdź Settings > Configuration > MIDI (lub Project > Project Settings przy nadpisaniach projektu): potrzebna jest poprawna ścieżka .sf2. W Linuksie systemowy SoundFont bywa wykrywany automatycznie; w Windows i macOS zwykle trzeba wskazać plik ręcznie.
To dwa osobne programy. Uruchom Virtual MIDI Keyboard z Tools > Virtual MIDI Keyboard (lub samodzielnie). Aby klawiatura na ekranie trafiała do Musician's Canvas podczas nagrywania MIDI, system musi skierować wyjście MIDI klawiatury na wejście używane przez Musician's Canvas — często przez wirtualny kabel MIDI lub zgodne porty w obu aplikacjach. Nie łączą się automatycznie.
Settings > Configuration ustawia globalne domyślne (motyw, język, urządzenia MIDI/audio, SoundFont itd.). Project > Project Settings nadpisuje część tego tylko dla bieżącego projektu i zapisuje się w project.json. Jeśli pole pozostaje przy domyślnym ustawieniu projektu, obowiązuje wartość globalna z Configuration.
Pliki są przyjmowane tylko przy ustawionym katalogu projektu i gdy Musician's Canvas nie odtwarza ani nie nagrywa. Obsługiwane są .wav i .flac; inne rozszerzenia są pomijane i wymienione w oknie. Każdy plik staje się nową ścieżką audio o nazwie z podstawowej nazwy pliku.
Audio trafia do katalogu projektu jako <nazwa_ścieżki>.flac (znaki takie jak / \ : * ? " < > | zamieniane są na podkreślenie). Plik projektu to project.json w tym samym folderze. Ścieżki MIDI zapisują się jako <nazwa_ścieżki>.mid przy zapisie projektu (nuty także w project.json).
Przy miksowaniu lub odtwarzaniu MIDI jest najpierw renderowane do tymczasowego WAV. Jeśli znana jest ścieżka projektu, Musician's Canvas zapisuje też pamięć podręczną FLAC w folderze projektu: <oczyszczona_nazwa_ścieżki>.flac (te same zasady co dla innych plików ścieżek). Nazwa wynika z nazwy ścieżki, nie z wewnętrznego ID.
Nie. Tylko jedna ścieżka może być uzbrojona; ona dostaje następne nagranie. Buduj utwór, nagrywając kolejno (overdub odtwarza istniejące ścieżki podczas nowej).
Nie. Po włączeniu metronom brzmi przez audio systemowe tylko dla Ciebie. Nie jest miksowany do pliku nagrania.
W Windows główna aplikacja oczekuje sterownika ASIO dla stabilnego audio z niskim opóźnieniem. Przy błędach zainstaluj ASIO4ALL lub sterownik producenta interfejsu.
W pakiecie .app plik wykonywalny Virtual MIDI Keyboard jest kopiowany do środka Musician's Canvas.app (Contents/MacOS/), aby dystrybuować jeden folder aplikacji. Nadal uruchomisz go z Tools > Virtual MIDI Keyboard.
amixer lub ustawień dźwięku pulpitu, aby sprawdzić poziomy głośności..sf2) jest skonfigurowany w Settings > Configuration > MIDI.fluid-soundfont-gm.libpipewire-0.3-dev (wymagany do integracji PipeWire z syntezatorem FluidSynth).Zobacz README, aby uzyskać kompletne instrukcje kompilacji dla systemów Linux, macOS i Windows, w tym wszystkie wymagane zależności.