JACK Audio Connection Kit
JACK Audio Connection Kit eli tuttavallisemmin JACK on Linux-audiojärjestelmän ydin. Arkikielessä Jackilla tarkoitetaankin useaa eri asiaa: Järjestelmää, jonka avulla on mahdollista reitittää audio- ja midisignaalia ohjelmista toisiinsa ja luoda reitityksiä äänikortteihin, sekä muihin ulkoisiin laitteisiin. Komentoriviltä käynnistettävää ohjelmaa, joka luo edellä mainitun järjestelmän, sekä komentoriviohjelman ympärille kehitettyä graafista QJackCtl-edusohjelmaa, joka pyrkii madaltamaan Jackin käyttökynnystä.
Kun tässä artikkelissa puhutaan Jackista, tarkoitetaan sillä lähinnä koko audiosignaalin reititysjärjestelmää. Komentoriviltä käynnistettävää, edellä mainitun järjestelmän luovaa taustaprosessia kutsutaan jackd:ksi tai jack-prosessiksi, ja QJackCtl:ää luonnollisesti QJackCtl:ksi.
Mikäli haluat saada kattavan kokonaiskuvan Jackin tarjoamista ominaisuuksista, on syytä lukea sekä tämä artikkeli että QJackCtl-artikkeli, koska Jackia koskeva informaatio on tällä hetkellä pirstaloitunut näiden kahden artikkelin välille.
Mikä Jack on?
Jackin lähimmät vastineet muissa käyttöjärjestelmissä ovat varmaankin OS X:n Core Audio -järjestelmä ja Propellerheadsin kehittämä ReWire-teknologia. Jack on yksinkertaisesti järjestelmä, jonka avulla on mahdollista kytkeä ohjelmia, äänikortteja ja midilaitteita toisiinsa, sekä synkronoida eri ohjelmia keskenään.
Jackin ainutlaatuisuus piilee siinä, että se kohtelee kaikkia audio- ja midisignaaleja samalla tavalla riippumatta siitä, ovatko ne peräisin tietokoneeseen kytketyistä oheislaitteista – kuten äänikorteista – vai ohjelmista.
Jack myös toimii välittäjänä Linux-audio-ohjelmien sekä laiteajurien välillä, mikä tarkoittaa käyttäjän näkökulmasta, että Jack-prosessin on oltava aina päällä jotta ohjelmista kuuluisi mitään.
Asennus
JACK Audio Connection Kit löytyy useimpien jakeluiden paketinhallinnasta nimellä jack-audio-connection-kit tai jack. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen. Eri jakelut toimittavat jackista eri versioita, ja kannattaakin olla tarkkana mitä versiota itse käyttää. Jack-projektin kotisivut ovat oiva paikka tarkistaa onko oma versio riittävän tuore ja vakaa.
Kannattaa myös harkita graafisen QJackCtl-ohjelman asentamista. Se on ajantasainen ja laaja liittymä Jack-prosessin hallintaan ja konfigurointiin kaikille niille, jotka eivät syystä tai toisesta halua käyttää jackd:tä komentoriviltä käsin. QJackCtl myös tarjoaa joitain ominaisuuksia, joita jackd:ssä ei ole, kuten mahdollisuuden automatisoida ohjelmien kytkentöjä toisiinsa Patchbayn avulla, sekä tallentaa useita erilaisia asetuskokonaisuuksia.
Asetukset
Oleellisin valinta jackia konfiguroitaessa on ajurikerroksen valinta. Mahdollisia vaihtoehtoja on useita, mutta Linux-käyttäjälle oleellisia ovat lähinnä alsa- ja firewire-ajurit. Firewire-ajureita käytetään firewire-äänikorttien kanssa ja alsa-ajureita kaikkien muiden korttien kanssa. Jos äänikorttisi on alsan tukema, se toimii myös Jackin kanssa. Äänen ulostuloa ja sisäänmenoa varten on mahdollista valita eri äänikortit.
Käyttö
Kun asetukset ovat kunnossa, Jackin käynnistämisen pitäisi olla helppoa. Kytkennät tehdään komennoilla jack_connect ja jack_disconnect. jack_bufsize-komennolla voi muuttaa lennossa puskurin kokoa, eli sen audiopalan suuruutta, jonka Jack kerralla käsittelee.
Transport
Jack voi lähettää ohjelmille Transport-signaalia, jonka avulla useat eri ohjelmat voivat synkronoitua samaan tempoon. Yksi ohjelmista toimii Transport masterina ja muut ovat Transport slaveja, jotka seuraavat master-ohjelmalta tulevaa aikainformaatiota. Transportin avulla ohjelmat saa paitsi soittamaan ja pysäyttämään samaan aikaan, myös jakamaan keskenään tempoinformaatiota. Tällälailla on mahdollista esimerkiksi synkronoida arpeggiaattori ja standalone-efektejä globaaliin tempoon, tai vaikkapa laittaa xjadeo toistamaan videota Ardourin kanssa.
Transportia voi ohjata jack_transport -komennolla. Lisäksi suurin osa transportia hyödyntävistä ohjelmista tarjoaa Transportin ohjaustoiminnot.
Sessionhallinta
Jackin tuorein ominaisuus on tuki sessionhallinnalle. Tämä tarkoittaa, että tulevaisuudessa Jackin avulla pystyy tallentamaan käynnissä olevat ohjelmat asetuksineen ja projektitiedostoineen, sekä ohjelmien välillä olevat kytkennät. Tällälailla monimutkaisten kytkentöjen tallentaminen ja palauttaminen helpottuu huomattavasti. Tätä kirjoitettaessa (Tammikuussa 2012) tuki sessionhallinnalle on jo joissakin ohjelmissa, ja sen tulevaisuus näyttää valoisalta. Lisätietoa sessionhallinnasta Linuxissa on artikkelissa Sessionhallintatyökalut.
QJackCtl
Qjackctl | |
---|---|
Käyttöliittymä | QT |
Lisenssi | GPLv2+ |
Kotisivu | http://qjackctl.sourceforge.net |
Qjackctl on Qt-pohjainen ohjelma Jack-äänipalvelimen hallintaan. Se tarjoaa yksinkertaisen graafisen käyttöliittymän Jackin asetuksille. Mikäli Jack ei ole tuttu, kannattaa tämän artikkelin ymmärtämiseksi lukea ensin Jackista.
Asennus
Qjackctl löytyy useimpien jakeluiden paketinhallinnasta nimellä qjackctl. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen. QJackCtl:stä on olemassa vain yksi versio, joka osaa toimia sekä Jackin ykkös- että kakkosversion kanssa. D-Bus -rajapintaa koskevat asetukset eivät toimi ollenkaan ykkösversion kanssa.
Käynnistys
Moderneissa Linux-jakeluissa QJackCtl katkaisee Pulseaudion toiminnan välittömästi käynnistyttyään. Tämä tarkoittaa, ettei normaaleista ohjelmista kuulu ääntä enää lainkaan. Ääni palautuu, kun QJackCtl suljetaan. QJackCtl:n käynnistäminen ei kuitenkaan vielä käynnistä Jackia, vaan sitä varten on klikattava Start-painiketta. Tämän jälkeen Jack käynnistyy, mikäli asetukset ovat kohdallaan. Mahdolliset käynnistyessä ilmenevät virheet löytyvät Messages-ikkunasta. Status-painikkeesta voi tarkastella käynnissä olevan äänipalvelimen tietoja, kuten näytteenottotaajuutta tai xrunien määrää.
Jackin asetukset
Jackin asetukset. Tärkeimmät on kehystetty.
QJackCtl:ssä Jackin asetukset tehdään Options-ikkunassa.
Äänikortin ajuri valitaan oikean laidan Driver -valikosta. Vaihtoehtoja Linux-käyttäjälle ei ole kuin kaksi, eli alsa ja firewire. Firewire-ajuri on oikealta nimeltään FFADO ja sitä käytetään firewire-äänikorttien kanssa. Kaikkien muiden äänikorttien kanssa käytetään Alsa-ajuria.
Oikeanpuolimmaisesta sarakkeesta säädetään äänikorttiin liittyviä asetuksia. Tärkein on ylinnä oleva Interface, joka valitsee mitä äänikorttia käytetään. Laitteet on nimetty aitoon Unix-tyyliin, ja helpoin keino onkin koettaa vuorotellen kaikkia vaihtoehtoja, kunnes oikea laite löytyy. Varsinkin alsaa käytettäessä on syytä olla tarkkana, sillä valittavien laitteiden listassa näkyvät äänikorttien lisäksi myös esimerkiksi usb-midi-koskettimistot.
Huom! Äänikortti valitaan klikkaamalla oikeanpuolimmaista pikkunuolta, ei siis isoa pudotusvalikkoa heti Interface-tekstin vierellä.
Useamman äänikortin järjestelmä
Jos järjestelmään on asennettuna useampia äänikortteja, voi Jackin kanssa tulla ongelmia, sillä QJackCtl ilmoittaa käytettävän äänikortin Jackille indeksinumeroilla. Esimerkiksi hw:1 voi olla koneeseen liitetty ulkoinen USB-äänikortti. Indeksit kuitenkin annetaan laitteille sitä mukaa kun ne kytketään kiinni koneeseen, joten seuraavalla käynnistyskerralla äänikortti voi saada eri indeksinumeron, esimerkiksi hw:2 -indeksin. Tällöin Jack, etsiessään turhaan korttia hw:1-indeksillä, kieltäytyy käynnistymästä, ja asetuksia on pakko muuttaa.
Ongelmasta pääsee eroon kirjoittamalla Interface-kenttään kortin kutsumanimen indeksinumeron sijaan. Kutsumanimen saa selville komennolla
cat /proc/asound/cards
Komennon tulosteessa jokainen kortti kuvataan tähän tapaan:
0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xfc020000 irq 47
Kortin kutsumanimi on heti indeksinumeron jälkeen. Tässä tapauksessa kyse on ensimmäisestä kortista, eli kortista numero 0, ja sen kutsumanimi on Intel. Kun siis Interface-kenttään kirjoittaa hw:Intel, Jack käyttää joka kerta Intel-nimistä korttia.
Harvinaisempia asetuksia
Joissain tapauksissa voi olla tarpeen myös vaihtaa Duplex-asetuksen tilalle Capture Only tai Playback Only. Tämä säätö vaikuttaa siihen, yrittääkö Jack toimia duplex-modessa, eli sekä nauhoittaa sisääntulevaa ääntä että soittaa ulosmenevää ääntä samaan aikaan, vai tekeekö se vain jompaakumpaa. Lisäksi on säätö, jolla jackin käsittelemään äänisignaaliin voi lisätä Dither-kohinaa.
Näiden alapuolelta löytyvät tarkemmat valinnat, Input device ja Output device, joilla voi halutessaan säätää sisääntulevalle ja ulosmenevälle signaalille eri äänikortit. Lisäksi voi rajoittaa listattujen kanavien määrää Input Channels ja Output Channels -valinnoilla.
Viimeisenä on vielä mahdollisuus lisätä sisään ja ulos menevään ääneen latenssia. Alakulmassa näkyy kokonaislatenssi, joka pienimmillään on muutamia millisekunteja, ja suurimmillaan joitain kymmeniä tai jopa satoja millisekunteja. Latenssi vaihtuu kaikkien asetusikkunassa tehtävien säätöjen mukaan, ja tästä puhutaankin tarkemmin seuraavaksi.
Latenssi kohdalleen
Latenssi on heti äänikortin valinnan jälkeen tärkein yksittäinen asia, jota Jackin asetuksilla säädetään. Suomeksi latenssi tarkoittaa viivettä, eli aikaa, joka äänisignaalilla kuluu koneen läpi kulkiessa.
Ammattimaisessa käytössä hyvänä voi pitää alle kymmenen millisekunnin latenssia, koska tällöin onnistuu softainstrumenttien soittaminen ilman viiveitä, sekä monitoroitavan signaalin reaaliaikainen efektointi. Toisaalta taas usean raidan yhtäaikainen nauhoittaminen voi aiheuttaa xruneja, jolloin latenssia kannattaa nostaa. Useamman kymmenen millisekunnin latenssi tekee reaaliaikaisesta soittamisesta jo lähes mahdotonta, mutta esimerkiksi miksatessa tai editoidessa se ei juuri haittaa.
Latenssin säätämisessä kaikista tärkein asetus on Frames/Period, jolla säädetään puskurin kokoa, eli sitä, minkä mittaisia audiopaloja Jack prosessoi. Mitä pienempi Frames/Period -arvo, sitä alhaisempi latenssi. Alhaisen latenssin saavuttamisessa erittäin merkittävä tekijä on hyvä äänikortti: Jack pystyy korkeintaan niin nopeaan operointiin kuin mitä äänikortti antaa myöten. Mikäli käytössä tulee xruneja, on Frames/Period-arvoa syytä nostaa suuremmaksi. Frames/Period -arvoa voi muuttaa käynnistämättä Jackia uudelleen, mutta QJackCtl ei tarjoa tähän mahdollisuutta. Ainakin Ardourista käsin puskurin kokoa on mahdollista säätää lennossa, ja hommaan löytyy myös komentorivityökalu jack_bufsize.
Periods/Buffer-säätö on myös syytä muistaa, mikäli xruneja ilmenee. Yleensä oletusasetus 2 on hyvä, mutta USB- ja Firewire-äänikorttien kanssa suositellaan sen nostamista kolmeen (Firewire-korteissa asetus onkin oletuksena 3). Muidenkin äänikorttien kanssa arvon muuttaminen voi joskus auttaa. Jackin käyttöohjeissa mainitaan esimerkkinä Yamahan YMF-sirua käyttävät kortit.
Realtime
Asetusikkunan vasemmassa yläkulmassa on yksinkertainen asetusruutu: realtime. Tämä laitetaan päälle aina kun käytössä on realtime-ydin, ja järjestelmän realtime-asetukset ovat kunnossa.
Midi-liitännät
Nimestään huolimatta QJackCtl:n kautta voi kontrolloida myös Alsa midiä. Alsa midi on Jackia vanhempi midistandardi, jota edelleen käytetään monissa ääniohjelmissa. Tietokoneeseen kytkettävät ulkoiset midilaitteet näkyvät etupäässä alsa-liitäntöinä, koska suurin osa midiajureista on rakennettu osaksi Alsaa.
Connections-ikkunan Alsa-välilehdelle ilmestyvät kaikki vanhaa Alsan midirajapintaa käyttävät liitännät. Jack-välilehdelle taas ilmestyvät uutta Jack-midiä käyttävien ohjelmien liitännät. Joskus on tarpeen sillata liitäntöjä, eli peilata vanhaa Alsa midiä käyttävät liitännät uusiksi Jack Midi -porteiksi, tai toisinpäin.
Asetusikkunan vasemman alakulman Midi driver -valikosta säädetään Alsa midi -yhteensopivuus käyttöön. none tarkoittaa, että portit eivät ilmesty näkyviin, raw tarkoittaa, että tietokoneeseen kytketyt laitteet näkyvät, mutta muu ei, ja seq tarkoittaa, että sekä tietokoneeseen kytketyt laitteet että kaikki ohjelmat näkyvät Midi-välilehdellä.
Midi-signaalin siltauksen voi toteuttaa myös muulla tavoin. Yksi suosittu menetelmä on käyttää a2jmidid-apuohjelmaa, joka ajetaan komentoriviltä käsin. a2jmidid ei asennu järjestelmään Jackin mukana, vaan on kokonaan erillinen ohjelmansa.
Patchbay
Patchbay on mainio tapa automatisoida toistuvien kytkentöjen tekeminen. Sen avulla voi luoda kytkennät, jotka QJackCtl tekee automaattisesti aina kun niitä vastaavat inputit ja outputit ilmestyvät näkyviin.
Tee aluksi kaikki tarvittavat kytkennät niin että ääni kuuluu. Klikkaa sitten QJackCtl:n pääikkunassa Patchbay-nappia. Eteen aukeaa periaatteessa melko paljon Connections-ikkunaa muistuttava ruutu, mutta älä anna sen hämätä: Tähän ruutuun luodaan kytkentäkaavio, jonka kytkennät QJackCtl sitten tekee automaattisesti puolestasi, kun asianmukaiset inputit ja outputit ilmestyvät näkyviin.
Oikealla puolella olevaan sarakkeeseen luodaan output socketit. Klikkaa "Add" ja eteen aukeaa uusi ikkuna. Ylimpänä on socketin nimi. Tähän voi laittaa mitä vain, mikä kuvaa sockettia. Client-kohtaan valitaan haluttu client eli ohjelma. Sen jälkeen seuraavasta valikosta valitaan haluttu ulostulo ja klikataan Add Plug. Stereoäänen tapauksessa on syytä lisätä vielä toinenkin plugi, jonka jälkeen klikataan OK. Sama toistetaan toisessa sarakkeessa.
Samalla lailla luodaan myös midi-kytkentä – hieman hämäävästi samoihin sarakkeisiin. Isompien setuppien kanssa kannattaa olla tarkkana, ja luoda vaikkapa tyhjät Socketit, joille antaa nimet "Audio" ja "Midi". Oheisessa kuvassa on tehty juuri näin. Tämän jälkeen toimitaan samoin kuin Connections -ikkunassa: valitaan haluttu output ja input, ja klikataan "Connect" -nappulaa. Vaihtoehtoisesti voit vetää hiirellä piuhan inputista toiseen – kuten Connections -ikkunassakin.
Nyt Patchbay on valmis. Se kannattaa tallentaa yläreunan save-nappulalla johonkin järkevään kansioon. Mikäli patchbay-määritelmiä alkaa kertymään, niille voi olla järkevää tehdä kokonaan oma kansionsa. Tiedostolle kannattaa antaa järkevä nimi, koska se ilmestyy näkyviin myös preset-valikkoon. Viimeiseksi klikataan Activate-nappi pohjaan, ja kaiken pitäisi olla valmista!
Patchbay myös osaa tunnistaa automaattisesti sellaiset liitännät, joiden perässä on vaihtuva numero. Tästä on hyötyä esimerkiksi Portaudiota käyttävien ohjelmien kanssa, sillä oletuksena niiden luomat liitännät ovat joka käynnistyskerralla hieman eri nimisiä. Asetuksista voi Options-välilehdeltä ottaa käyttöön Patchbay Persistense-toiminnon, joka lataa määritellyn patchbayn automaattisesti aina käynnistyksen yhteydessä.
Katso myös
- Digitaalinen äänitystyöasema
- Ohjeet Jackin käyttöön Ubuntussa (englanniksi)
- Jackin kotisivut, joilla paljon hyödyllistä tietoa Jackista. (englanniksi)
- Jack Transport -tutorial (englanniksi)
- Jack-wiki (englanniksi)
Musiikintekoon liittyvät artikkelit | |
Yleiset | Johdanto musiikintekoon Linuxilla | Jakelut | Jack |
---|---|
Sekvensserit, DAW:it, nuotinnus, sävellys | Ardour | Qtractor | Rosegarden | Nuotinnus- ja sävellysohjelmat | Trakkerit | Kaupalliset ohjelmistot |
Syntetisaattorit, samplerit, rumpukoneet | ZynAddSubFX | SetBFree | Hydrogen | LinuxSampler |
Plugin-formaatit | LADSPA | DSSI | LV2 | Linux VST | Windows VST |
Pluginit • Taajuusanalysaattorityökalut • Laaja lista musiikinteko-ohjelmista |