AudioLinux
HomeNovinkySeznam článkůDownloadOdkazyKontakt

Zprovoznění přehrávání MIDI

25.5.2008 (aktualizace 3.1.2009)

Jedním z problémů, které jsem z Windows neznal, byla nutnost manuálního zprovoznění přehrávání MIDI hudebních souborů. MIDI se mi jakoby přehrávaly v programu KMid, ale zvuk nebyl slyšel. Nastavení hlasitosti kanálu Synth samozřejmě vůbec nepomohlo. Po nějaké době jsem na internetu našel, že MIDI lze v Linuxu softwarově přehrávat pomocí programu TiMidity. Tento program jsem zprovoznil, nicméně s kvalitou vzorků zvuku jsem spokojen vůbec nebyl. Hledal jsem tedy dále a našel jsem způsob jak zprovoznit přehrávání MIDI souborů hardwarově v programu KMid. Oba návody dávám k dispozici.

Softwarové přehrávání MIDI

Nejdříve musíme nainstalovat program TiMidity (zobrazený na následujícím obrázku). Chybí-li po instalaci v nabídce KDE zástupce na TiMidity nebo chci-li s TiMidity asociovat soubory *.mid, je nutno zástupce na TiMidity vytvořit následujícím příkazem s parametry:

/usr/bin/timidity -iat

TiMidity

Přehrávání pomocí programu TiMidity je jednoduché, bezproblémové, nenáročné, nicméně kvalita zvuku bez dalších nastavení je nevalná. Pro zlepšení zvuku je nutno upravit konfigurační soubor: /usr/share/timidity/timidity.cfg, kde si vyhledáme následující dva řádky:

source piano+guitar.cfg
source drums.cfg

a za ně jako root (su) doplníme řádek s odkazem na soundfont (instalací soundfontu se zabývá následující kapitola):

soundfont /usr/share/sfbank/creative/CT4MGM.SF2 (případně jinou cestu k jinému soundfontu *.sf2)

Dále doporučuji zapsat další řádek, který defaultně vypne nepřirozený reverb:

opt EFreverb=d #disable reverb

Případně lze vypnout i další efekty, což je chorus a delay těmito volbami:

opt EFchorus=d #disable chorus
opt EFdelay=d #disable delay

Text za znakem # není nutné psát, znak # uvozuje jen komentář.

Upravený soubor bude vypadat nějak takto:

TiMidity.cfg

Hardwarové přehrávání MIDI

Tento návod se týká zvukové karty SoundBlaster od společnosti Creative používané v distribuci openSUSE. Ovšem předpokládám, že u zvukových karet ostatních výrobců a u dalších distribucí jistě existuje analogie.

Základní zprovoznění provedeme dle následujícího postupu:

  1. V řídícím středisku YaST2 v sekci Hardware / Zvuk označit příslušnou zvukovou kartu.
  2. Rozbalit tlačítko Ostatní a zvolit položku Instalovat soundfont...
  3. Vložit do mechaniky a následně vybrat z roletky CD s ovladači od zvukové karty (nejlépe originál CD od Creativu, přičemž soubory s fonty *.sf2 budou nahrány do /usr/share/sfbank/creative/).
  4. Opět rozbalit tlačítko Ostatní a zvolit položku Spustit sekvencer a potvrdit.
  5. Dále je nutno kromě aplikace KMid nainstalovat Fluidsynth, a pro možnost jeho pohodlného ovládání i příslušné grafické rozhraní QSynth (QSynth je pro Fluidsynth něco jako QJackCtl pro Jack).

Program KMid můžeme používat dvojím způsobem. A to s realtimeovým serverem Jack nebo teoreticky i bez něj. To záleží na nastavení aplikace QSynth. To jak zprovoznit Jack popisuji zde. Aplikace QSynth je zobrazena na následujícím obrázku.

QSynth

Ve výchozím nastavení aplikace QSynth používá jako zvukový systém Jack. Musíme tedy nejdříve spustit QJackCtl a poté teprve spustit QSynth. Grafické rozhraní QJackCtl slouží, jak bylo řečeno, k ovládání realtimeového (nízkolatenčního) serveru Jack a ten zas slouží k synchronnímu propojování vstupů a výstupů zvukové karty a jednotlivých audio aplikací. Chceme-li MIDI pouze přehrávat a nic víc, je možno rozhraní QSynth používat s Alsou. Klikneme v levém dolním rohu okna aplikace na tlačítko Setup a v nově otevřeném konfiguračním dialogu přejdeme na kartu Audio, kde přenastavíme volbu AudioDriver z Jack na Alsa.

QSynth - Audio

Od této chvíle nemusíme před spuštěním QSynth spouštět QJackCtl. Ovšem v tomto režimu dochází k chybám přehrávání, proces není stabilní a ve zvuku praská  (praskání můžeme omezit zvýšením hodnoty Buffer Count na 64). Takže z těchto všech důvodů doporučuji používat Jack. A jelikož Jack používá vzorkovací frekvenci 48 kHz, a zde je ve výchozím nastavení tato hodnota nastavena 44,1 kHz, nastavte dále hodnotu Sample Rate na 48000 (případně v nastavení QJackCtl nastavte tuto hodnotu na 44100), aby se vzorkovací frekvence nehádaly.

Ať už Jack používáme nebo ne, musíme dále v konfiguračním dialogu QSynthu přejít na kartu Soundfonts a nahrát požadovanou banku *.sf2. Připomínám, že banky se nacházejí v umístění /usr/share/sfbank/creative/.

QSynth - Soundfonts

Tím jsme provedli základní nutná nastavení, ale dále je vhodné provést i další volby:

Kvůli možnosti využití všech kanálů (a tedy reálnějšímu zvuku) je dobré na kartě MIDI zvýšit hodnotu MIDI Channels na 128.

QSynth - MIDI

Kanály lze dokonce editovat. Zobrazení okna kanálů provedeme kliknutím na tlačítko Channels v hlavním okně aplikace QSynth. Nejzajímavější je asi kanál 10, což jsou bicí.

QSynth - Channels

Po dvojkliku na tento kanál lze zvolit typ bicí sady dle následujícího obrázku.

QSynth - Channels - Drums

Nyní již by mělo fungovat relativně bezproblémové hardwarové přehrávání MIDI souborů např. v programu KMid (musí zároveň běžet QJackCtl a QSynth). Aplikace KMid včetně jejího okna kanálů je zobrazena na následujícím obrázku.

KMid

V programu KMid se musí nastavit MIDI zařízení na FLUID Synth. To provedeme použitím nabídky Nastavení a dále zvolením položky Nastavení MIDI. Dále je potřeba nastavit požadovanou MIDI mapu. Soubory *.map jsou pro aplikaci KMid uloženy v /opt/kde3/share/apps/kmid/maps/.

KMid - nastavení zařízení

Poznámky:

  • Po instalaci openSUSE jsou MIDI soubory defaultně asociovány s programem KMid.
  • Kvůli chrčení (limitaci) zvuku je třeba v hlavním okně aplikace QSynth snížit Gain
  • Občas se zvuk v KMid přehrává divně - pomůže restartovat přehrávací engine tlačítkem Restart v QSynth.
  • Volně stažitelné soundfonty naleznete např. na stránkách HamerSound. Velmi vám mohu doporučit skvělý soundfont s názvem Air Font GM-GS free. Dostanete se k němu na zmíněných stránkách pomocí nabídky Sounds, dále přes odkaz SoundFont Library, tam zvolíte skupinu Collections a vyhledáte. Soundfont stáhnete jako archív ZIP. Ten je potřeba rozbalit, což v Linuxu není problém, ale problém nastane vzápětí. Rozbalením zmiňovaného archívu získáte jen další archív tentokrát s příponou sfArk. Na jeho rozbalení navštivte stránky MelodyMachine, kde stáhnete příslušný software (rozbalovač) s překvapivým názvem sfArk. Varianty jsou dvě. Jedna čistě linuxová (jedná se přímo o binární balíček, nemusíte tedy nic kompilovat), ovšem bez grafického rozhraní a tedy rozbalení budete muset provést v příkazové řádce (konzoli), a druhou variantou je stažení programu sfArk pro Windows a ta již bezproblémově pracuje pod rozhraním Wine.

Příloha:

Zde si můžete poslechnout rozdíl ve zvuku mezi softwarovým a hardwarovým přehráváním. Nahrávky byly pořízeny za použití zvukové karty Creative SoundBlaster Audigy ES, přičemž soubor z TiMidity je nahrán před výše popisovanou úpravou konfiguračního souboru.

Softwarové přehrávání v programu TiMidity

Hardwarové přehrávání v programu KMid

NAHORU

Made with Nvu

Valid HTML 4.01 Transitional

Počet přístupů na AudioLinux od 1.5.2008:

wz.cz

WebZdarma.cz