( BehringerZoltan | 2020. 12. 18., p – 17:15 )

> Hogyan rögzítetted minden egyes billentyű 64-féle leütési sebességénél külön-külön a kijövő analóg hangot? 
> ezt kifejtenéd?

Persze, örömmel - bár ennek a problémámhoz nincs köze! 
Előállítottam egy midi fájlt amiben egymástól 30 másodpercekre 16 különböző erősségű leütés jelét szimuláltam egy hangon. 30 másodperc elég a leghosszabb lecsengéshez is. Ezt a midi fájlt játszottam le a sz.gépen különböző hangokra transzponálva. A sz.gép persze össze van kötve midi kábellel a digitális zongorával. Így ezek a jelek bejutottak zongorába ami lejátszotta a midi jelnek megfelelő hangot. De nem csak lejátszotta, hanem rögzítette is 44,1kHz 16 bit wav formában , konkrétan egy USB pendrivera - mert szerencsére van benne ilyen funkcióra lehetőség (mivel nincs jó minőségű hangkártyám ezért csináltam így, nem akartam a hangot visszavezetni az alaplapi hangkártyára) . Így minden billentyűhöz tartozik egy nagy wav fájl egymástól kb 30 másodpercre lévő, egyre erősödő 16 hanggal. Ez a legnyersebb forrás amivel dolgoznom kell. A hangok közt  változó méretű szünetek vannak. A következő lépésben SoX -szal automatizáltan feldarabolom ezt a nagy fájlt a 16 hangnak megfelelő kis fájlokra. Itt még úgy néz ki, h a fájl kis csenddel kezdődik (kb 1-2 másodperc) utána jön a hang és a végén változó hosszúságú csend van ismét. Ami a mostani problémát jelenti az az, hogy ezt kezdő csendet miként tudom úgy levágni, h pontosan a hanggal kezdődjön a fájl. 

>  amikor az analóg kimeneten megjelenik egy hang (amit ugye végső soron A/D konverter fogad), akkor a MIDI kimeneten megjelenik az adott billentyűvel kapcsolatos digitális jel.

Pontosítsunk! A normál scenárió az az, hogy a midi jel jön a midibillentyűzetről, ami bemegy a számítógépbe. A számítógép pedig előállítja a virtuális zongora hangját a jelnek megfelelően és azt kiküldi a hangkártyára. Na most a midi jel beérkezése és a hangkártyán a hang megjelenése közt idő telik el. Ezt hívjuk latencynek v. késleltetésnek. 30 ms körüli késés már totál zavaró tud lenni a zongorázásban.  Erre a késére tenne még rá az, hogyha a hangfájl nem egyből a hanggal kezdődne, hanem lenne még az elején pár ezredmásodpercnyi szünet. Ezért lenne fontos most nagyon precízen levágni a felvett mintákról a csendet. Tulképp nem is muszáj levágni, mert rémlik mintha lenne arra lehetőség, hogy virtuális zongora programban meghatározzam a pozíciót, h honnan kezdve kell játszania a hangot a fájlból. Tehát így elég lenne csak meghatározni a hang kezdetének pozícióját. De már akkor éppen le is tudom vágni, szóval az mégiscsak tisztább ügy. 

A "note on" midi jeleket egy egyszerű grep paranccsal is ki tudod nyerni. pl jack_midi_dump | grep "note on" - ha Jacket használsz. Persze jack_midi_dump bemenetére rá kell kötni a system_capture_midi -t v. minek hívják!