A Musical Instrument Digital Interface (röviden MIDI) egy szintetizátorok és stúdióeszközök összekötésére alkalmas szabvány. 1980-ban a szintetizátorgyártók szövetsége által létrehozott ajánlásként született, később vált szabvánnyá (Wikipedia). A Windowszal ellentétben a blackPanther OS-ben a hangrendszereket is szabadon változtathatjuk. A Midi hang lejátszása nem bonyolult, ha ismerjük a feltételeket és a rendszert. Bár az alapértelmezett hangmotor a PulseAudio, mostanában bontogatja a szárnyait a PipeWire-is, és természetesen ott van még a többi mellett a JACK ami professzionális hangrendszer.
Ne állj neki mindenféle program, csomag telepítésének! Először tájékozódj arról, hogy az adott program milyen hangrendszereket támogat.
Mivel elég sok megoldás létezik a hangrendszerek kezelésére, ezért ezt a programok is kihasználják. A legtöbb olyan szoftver amely hangok feldolgozására készült, biztosít egyedi, külön beállítási lehetőséget a hangrendszer kiválasztására.
A SoundFont név együttesen utal egy fájlformátumra és egy olyan technológiára, amely mintalapú szintetizálást használ a MIDI fájlok lejátszásához. Először a Sound Blaster AWE32 hangkártyán használták általános MIDI támogatásához. A „soundfont”-ok útvonala általában:
/usr/share/soundfonts
és/vagy/usr/share/sounds/(?mappa)
Fájlok esetében a MIDI-fájl kitejesztése *.midi, erről könnyen felismerhetjük. A midi-fájlok lejátszásához vagy egy MIDI-hardver kell, vagy egy szoftveres ‘synthesizer‘ (hang-leképző szintetizátor) és úgynevezett „SoundFont”-ok. A program leírásában tájékozódhatsz arról, hogy a program milyen hangrendszereket támogat. Lépj az adott program beállításaiba és keresd meg a „Hangkimeneti eszközt” (Output) vagy a Midi beállításokat azon belül. Egyes programoknál csak akkor jelenik meg a „midi-kimenet”, ha már telepítettük a megfelelő leképzőprogramot.
Miért?! A MIDI-fájlok nem tartalmaznak hangokat, csak a lejátszásukra vonatkozó utasításokat. Az ilyen fájlok lejátszásához a mintalapú MIDI szintetizátorok fájlokban vagy ROM chipekben tárolt eszközök és hangok felvételeit használják . A SoundFont-kompatibilis szintetizátorok lehetővé teszik a felhasználók számára, hogy egyedi mintákkal rendelkező SoundFont bankokat használjanak zenéjük lejátszásához.
Két szoftveres eszköz áll rendelkezésre:
Fluidsynth – szükséges csomagok és telepítésük
012telepites fluidsynth fluid-soundfont-gmMIDI lejátszás tesztelése fluidsynth-el
012fluidsynth -a alsa FluidR3_GM.sf2 egy_midi_fájl.midFuttatás „szerver” módban (háttérprogramként)
012fluidsynth -s -a alsa -m alsa_seq FluidR3_GM.sf2Timidity++ – szükséges csomagok és telepítésük
012telepites timidity++ timidity-patch-freepats timidity-patch-fluidMidi lejátszás tesztelése
01234timidity egy_midi_fájl.midi# ez egy grafikus lejátszótimidity -igSzerver mód futtatása
01234timidity -iA# libao használatávaltimidity -iA -OOAmennyiben a Timidity program tartalmaz szerviz szolgáltatást, így futtathatjuk
012systemctl --user enable timidity.service
Hardver tesztelése
0 1 2 3 4 | amidi -l Dir Device Name IO hw:1,0,0 WTF-MIDI-Keyboard |
A megtalált eszközhöz futtathatjuk szerver módban a fluidsynth -et így:
0 1 2 | fluidsynth -s -a alsa -m alsa_raw -o midi.alsa.device=hw:1,0,0 FluidR3_GM.sf2 |
Programbeállítások
Alkalmazások plug-in (beépülőmodul) móddal
Egyes programok a synthesizer eléréséhez külön plugint is igényelnek a midi-fájlok lejátszásához, például:
- VLC lejátszónak szüksége van a :
vlc-plugin-fluidsynth
csomagra012telepites vlc vlc-plugin-fluidsynth - GStreamer-nek szüksége van a
gstreamer1.0-fluidsynth
csomagra012telepites gstreamer1.0-fluidsynth
A fluidsynth fluid-soundfont-gm
csomagok telepítés után a Midi-fájlok automatikusan lejátszhatóak a Dolphin előnézetében vagy akár a DragonPlayer-ben is, mivel a „plugin” feladata az, hogy meghívja a háttérprogramot amikor a főprogram elindul.
Alkalmazások külön igényekkel
Egyes programokat külön be kell állítani ahhoz, hogy „tudják” melyik MIDI-motort használhatják. Ezek az alkalmazások több Midi-leképző használatára is elő vannak készítve. Ahhoz, hogy az alkalmazás használni tudja a megfelelő Midi-kimenetet, a Midi-motort futtatni kell hagyományos „szerveren” (háttérszolgáltatásként), vagy egy frontenden (grafikus program) keresztül (képen) külön szolgáltatásként. A grafikus szintetizátorokat be kell állítani használat előtt, ezekre úgy gondoljunk mint a program és a hangkártya közötti hídra. Tehát ha a leképző-szintetizátor nincs beállítva megfelelően, nem lesz hang. Ha rossz soundfont-ot adunk meg, akkor esetleg más hangokat kapunk mint amit elvártunk volna.
Ilyen program
MIDI leképzők háttérprogramként
A Timidity és Fluidsynth is képes háttérprogramként szerver módban funkcionálni. Ebben az esetben a Qsynth grafikus programra nincs szükség, viszont ehhez előre fel kell konfigurálni a szolgáltatást, mert nem lesz hatással rá a grafikus felület. Alapból a szerver-mód nincs engedélyezve, mert a PulseAudio hangrendszer működésébe zavart okozhat, erre figyeljünk, ha aktiváljuk.
0 1 2 3 4 | systemctl --user start timidity # VirtMidi-re van szükgség? Az snd-virtmidi modul betöltése szükséges (/etc/modules-load.d/virtmidi.conf) systemctl --user start virtmidi |
Amennyiben a programcsomag nem tartalmazza a szolgáltatás elindításához szükséges service-fájlt, létrehozhatjuk az alábbi példa alapján, és helyezzük el a felhasználói fiókunkban az alábbi útvonalon, és az alábbi szolgáltatás névvel, például a Timidity esetén:
0 1 2 3 4 5 | # útvonal létrehozása ha nem létezik mmkdir -p ~/.config/systemd/user # a fájl neve az útvonalon ~/.config/systemd/user/timidity.service |
A szolgáltatás neve ne egyezzen a rendszerben található szolgáltatással!
A szolgáltatás-fájl (a példában: timidity.service) tartalma az alábbi legyen:
0 1 2 3 4 5 6 7 8 9 10 | [Unit] Description=TiMidity++ MIDI playback server system After=pulseaudio.socket [Service] ExecStart=/usr/bin/timidity -iA -OO [Install] WantedBy=default.target |
Így indíthatjuk a szolgáltatást ha elkészültünk
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # töltsük újra a szolgáltatásokat systemctl --user daemon-reload # indítsuk a szolgáltatást systemctl --user start timidity.service # igény szerint kapcsoljuk be systemctl --user enable timidity.sevice # kérjük le az állapotot systemctl --user status timidity.service ● timidity.service - TiMidity++ MIDI playback server system Loaded: loaded (/home/build/.config/systemd/user/timidity.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2021-01-16 13:01:18 CET; 2s ago Main PID: 23431 (timidity) CGroup: /user.slice/user-1000.slice/user@1000.service/timidity.service └─23431 /usr/bin/timidity -iA -OO |
Hozzászólások lezárva