Thursday, September 2, 2010

Elektronmuusika tarkvara 2 (kuidas teha soundi open source tarkvaraga)

Kirjutasin enne paarist vabavaralisest heliprogrammeerimise keelest. Neile, kellele programmeerimine ei sobi, on see postitus nüüd märksa parem. Samas on sellel ka muu motivatsioon - teha helisid on mugav ainult siis, kui programmeerimise ning muude helitegemise viiside meetodid omavahel siduda; heli on tunnetus+rütm+loogika, nii et lisaks heliloogika loomisele, mille jaoks on perfektne mõni programmeerimiskeel on vaja luua rütm/meloodia, mille jaoks on rütmimasin või noodikiri ilmselt programmeerimisest paremad - ent on vaja lisada ka tunnetus ja taju, mille jaoks on hea kasutada klavereid, mikrofoni ning muid reaalajas tundlikke sisendeid. Silmnähtavalt on vaja vahendeid kombineerida, saamaks parimat tulemust (mõistliku vaevaga).

Kuna ma olen nüüd öö läbi selle uurimisega edasi läinud, siis ka mõningased täiendused siia - mul on installitud kõik, mis Debiani all repodes olemas (sry Windowsi kasutajad - osad nendest programmidest on kindlasti Windowsile olemas, mõni ilmselt mitte; ilmselt täpselt sellist kooslust Windowsis kokku ei saa; siiski võib nii mõnigi osa sellest ka Windowsis huvitav olla) ja seega saan neid ükshaaval uurida - kõik ei ole väga arusaadavad & mida nendega teha saab, aga paljud juba on.

Esiteks - et MIDI töötaks, kasutan Timidityt. Selle käimasaamine on üks tüütumaid asju, aga Linuxi suht vajalik, sest suht iga heliprogramm võib ajuti MIDIt kasutada. Kui MIDI töötab, peaks käsurealt saama seda ka mängida käsuga stiilis "aplaymidi -p128:0 ", millele järgneb failinimi. See "-p128:0" tuleb sellest, et Timidity on klient nr. 128 ja sellel on port 0; kliendile saab viidata ka nime jm. järgi - vt. "man aplaymidi".

Teiseks - kasulik asi on Jackd (või lihtsalt jack). See on taustaprotsess, mis tegeleb sellega, et muudab iga Jacki toetusega programmi eraldi plokiks, millel on sisendid ja väljundid (need võivad olla siis kas MIDI või audio). Jacki sisse-välja lülitamiseks on mitmesuguseid programme, millest mina kasutan hetkel Jack Audio Connection Kitti (qjackctl). Minu konfiguratsioonis tegeleb helindusega Alsa, mille küljes on Jackd. Jackd tuleb peale Alsat käivitada (kasutan qjackctl graafilist liidest, mille konfist on valitud, et see kohe Jackd käivitaks). Selles graafilises liideses näen kõikide programmide sisendeid ja väljundeid, kui klikkan nupule Connections - saan neid siis kokku ja lahti ühendada, kuidas soovin.

Järgmine põnev tööriist on Virtual MIDI Keyboard. Jacki connectoris võib selle kohe Timidity külge ühendada (mis on software MIDI mootor, millest siin alguses rääkisin), mispuhul saab sellega helisid mängida nii, et neid on kohe kuulda. Samas võib selle sealt ära ühendada, ChucK'iga probe teha ja vaadata, mis number kanali pealt selle konkreetse keyboardi kätte saab (neid võib ka mitu avada, et erinevate asjadega ühendust saada - ja loomulikult võib nende asemel olla riistvaraline MIDI kontroller); ChucKiga on kaasas näited selle info lugemise kohta ning samuti on sellest veebis manuaalis juttu. MIDI keyboard on lihtsalt klaver, mida võib hiire või klaviatuuri abil mängida - kahjuks ei saa see aru, kui tugevalt mingit klahvi all hoitakse, nii et MIDI kontrolleril on tugev ja selge eelis. View menüüst saab lahti valikuid, millega saab näiteks klaviatuuri oktaavide võrra üles-alla nihutada, erinevaid pille valida (või siis kanaleid, kui see on mõne sündi külge ühendatud, mis välist pillide valimist ei tunnista, aga pakub mitut kanalit). Jacki connectori kaudu võib selle keyboardi ühendada kas otse MIDI väljundisse (või tarkvaralisse sünti, nagu Timidity), ChucK'i või millegi analoogse külge (et seda ChucK'i helisünteesis kasutada) või siis sellise asja külge, nagu ZynAddSubFX.

ZynAddSubFX on süntesaator, mille abil saab koostada graafilisest liidesest erinevaid effekte. Peale mõningast harjumist saab selgeks, et esiteks on üleval valik "Part", mille kõrval on linnuke "Enabled". Need "Partid" on sisuliselt kanalid. Võib valida Part ühe ning valida sinna pilli, tehes plõksu "Click here to select instrument" nupule. Näiteks võib esimesse kanalisse valida trummi, teise kanalisse mõne muu pilli. Kanaleid vahetades saab mõlemat pilli proovida.

Nüüd võib avada kaks Virtual Keyboardi - kaks korda käivitada virtual keyboardi nii, et mõlemad töötaks. Jacki Connectorist tuleks mõlema MIDI out lülitada ZynAddSubFX'i MIDI in'i külge - nüüd on mõlemad klaverid ZynAddSubFX sündi külge ühendatud. Viewst peaks valima, et oleks näha "Key/Velocity" ja "Controls" (võib olla vajalik keyboardi akent vastavalt kõrgemaks venitada, et need näha oleks). Channel valikust tuleb esimesele valida 0 (mis vastab Part 1-le süntis) ning teisele 1 (mis vastab Part 2-le). Trummidele vastavas klaveris tuleb Keyd võib-olla mõne oktaavi võrra muuta - vastasel korral ei jää trummide helid klaviatuuril nähtavasse alasse ning seega on tulemuseks lihtsalt vaikus, kui püüda trumme mängida.

Mis teeb nüüd Jacki eriti kasulikuks ChucKi kasutajale - ChucKi programm võib olla MIDI väljundiks, juhtides ZynAddSubFX'i sama moodi, nagu seda sai tehtud nende keyboardidega (ja keyboardid võib samuti sisse jätta, et asju testida ja katsetada). ChucK võib juhtida erinevaid valitud pille ning talle võib teha ka preseti - kõik ZynAddSubFX'i seaded saab talletada. ZynAddSubFX võimaldab ka ise palju effekte, ent võib eeldada, et enamuse teeme ChucK'is - sellisel juhul jääb see lihtsalt üheks ChucK'i külge ühendatud sündiks. Teiseks (samuti Jackis) saab ZynAddSubFX'i audio outi omakorda ChucK'i sisendi külge ühendada - nii tekib olukord, kus ChucKis saab algoritmilise kompositsiooni luua, mida ChucK sündi peal mängib, aga tulemus tuleb ChucK'i tagasi ning sellele võib ChucKi sees uuesti kõikvõimalikke effekte lisada. Sündi näol, samas, on tegu mugava graafilise liidesega, mis teeb ilmselt üksjagu tööd ette ära.

MIDI out on olemas ka MIDI playeritel - seega saab kas lindistada või koostada eraldi lugusid, mida võib siis kas ChucK'ile sisendiks anda MIDI formaadis, ChucKile sisendiks anda läbi sündi (ehk siis juba audio kujul). Selle viimase jaoks on olemas kaks mugavat programmi - Hydrogen ning Rosegarden.

Hydrogen on lihtne ja mugav trummimasin, millel on muuhulgas olemas ka MIDI talletamise võimalus.

Roosiaed on suuremat sorti helitegemise tööriist, millega saab avada Hüdrogeeni poolt genereeritud MIDI ning lisada sinna tracke. Rosegardenis saab muuhulgas kirjutada noodikirjas lugu ning talletada tulemust MIDI faili. Rosegarden võimaldab ka lindistada (nii et MIDI Keyboardi võib ka siia külge ühendada). Võib, muidugi, ka mõne muu MIDI editori valida - mõni on kiirem, mõni ehk lihtsam, mõni on vähemate võimalustega [järelikult lihtsam] näiteks puhtalt noodikirja redaktor. Kui need toetavad jacki (ja mõne programmi puhul tuleb installeerides/kompileerides vaadata, et satuks just jacki toetusega variant), siis saab neid ühendada muude programmidega ning luua kooslust, mis toimiks.

Lõpuks saab ChucK-is wav faili talletada ning seda veel mõne wave editoriga masterdada (ja viimaseid on päris korralik valik - tuleb valida mõni, mis ilma suurema konfimiseta olemasolevas masinas hästi töötaks või siis piisavalt hea ja konfimist väärt oleks).

No comments:

Post a Comment