Kirjoittaja Aihe: Millä komennolla jack sinkin saisi asetettua valituksi viiveellä?  (Luettu 2361 kertaa)

Arello

  • Käyttäjä
  • Viestejä: 215
    • Profiili
Perusongelmani on saada alsa/pulseaudio ja jack kuulumaan automaattisesti rinnakkain. Manuaalisesti pystyn ne asettamaan setupeissani, kun valitsen jack sinkin. (Katso kuvat!) Oletuksena eivät siis ole valittuina. Joskus aiemmin sain homman hoitumaan QJackCtl:n skripteissä, mutta ne eivät ole toimineet enää vuosikausiin, oletettavasti jonkin päivityksen rikkomana, mutten tiedä miksi. Pahimmillaan softan GUI jäätyy ja se pitää käynnistää uudestaan.

Pidemmällä tähtäimellä tavoitteenani olisi tehdä itse suoritettava skripti, joka hoitaisi automaattisesti mainitun reitityksen, käynnistäisi a2j MIDI-liitännän ja mahdollisesti muitakin musantekosoftiani samalla. Toisin kuin QJackCtl:ssä mahdollisten bugien ja rikkinäisyyksien debugaaminenkin olisi helpompaa, kun kaatuva GUI ei jätä oikein paljoa käteen.

Yksinkertaisimmillani käyttämäni skripti oli seuraavanlainen:
Koodia: [Valitse]
pactl set-default-sink jack_out
Monimutkaisempi, jonka myös jostain netistä aikoinaan copypastesin joskus edellisen vaihtoehdoksi siitä paljoa ymmärtämättä oli:
Koodia: [Valitse]
pactl load-module module-jack-sink client_name=pulse_sink_2 connect=yes pactl load-module module-jack-source client_name=pulse_source_2 connect=yes
Näiden perään lisäsin vielä:
Koodia: [Valitse]
&& a2jmidid -e Päätteestä suoritettuna se toimii edelleen, kunhan Jack on jo päällä.

Jackin käynnistyksen jälkeinen reititys tuottaa kuitenkin edelleen ongelmia eikä tuo MIDI-skriptikään sen kautta toimivasti suoritu, joten ajattelin väsätä ihan oman skriptin, joka nämä asiat toivottavasti hoitaisi. Haluaisin kuitenkin tietää, millä komennolla tämän äänilaitevalinnan/reitityksen tekisin, että pääsisin alkuun.

EDIT: Nyt kun kokeilin, niin tuo ensimmäinen komento kyllä toimii jonkin ajan päästä erikseen komennettuna, kunhan Jack-käyttöliittymä on päässyt jo käyntiin. Tein oman skriptin, jossa haluamani asiat onnistuisivat, mutta haasteena on vielä toteuttaa jälkimmäiset komennot viiveellä sen jälkeen, kun Jack jo pyörii käynnistämisensä jälkeen.

Toisin sanoen, skriptin pitäisi jollain loopilla tms. tarkistaa, onko Jackin prosessi päällä ja suorittaa koko skripti loppuun, sitten kun se on päällä.
« Viimeksi muokattu: 26.05.18 - klo:18.53 kirjoittanut Arello »
Läppäri Acer Swift 5 OS: Ubuntu Studio (xfce4) 18.04 LTS & Win10
Pöytis OS: Debian 10 & WinXP

Heikki Ketoharju

  • Käyttäjä
  • Viestejä: 716
  • Tee enemmän, harmittaa vähemmän!
    • Profiili
    • heikki.ketoharju.info
Moikka!

Hauskaa, että audio-skriptien kirjoittelu kiinnostaa!

Yksinkertaisin tapa hoitaa useamman ohjelman käynnistäminen on pistää komentojen väliin sleep- käsky, joka odottaa annetun sekuntimäärän ja vasta sitten siirtyy seuraavaan komentoon.

Koodia: [Valitse]
qjackctl;
sleep 10;
pactl set-default-sink jack_out

Mutta jos haasteena on Jack-käyttöliittymän käynnistyminen, miksi et käynnistäisi Jackia suoraan komentoriviltä? QJackCtl:n Messages -ikkunassa löytyy suora jack-komento, jonka QJackCtl ajaa käynnistääkseen Jackin. Komento on jokin tämäntyyppinen:
Koodia: [Valitse]
jackd -d alsa -d hw:Aanikortti
Tuli joskus itsekin kirjoiteltua tällaisia skriptejä session hallitsemiseen. Ohessa pari kivaa linkkiä aiheesta:
http://heikki.ketoharju.info/2012/11/session-management-in-linux/
https://digitaldub.wordpress.com/2009/12/16/linux-audio-session-scripting/



Tottakai helpommalla pääset, jos vaan vaihdat KXStudioon. Siinä on paremmat hallintatyökalut, Cadence ja Claudia, joista löytyy suorat graafiset napit noiden sinkkien käynnistelyyn. Niin minäkin tein jo vuosikausia sitten.
« Viimeksi muokattu: 30.06.18 - klo:23.18 kirjoittanut Heikki Ketoharju »
-
Minä kirjoittelen suomenkielisiä ohjeita Linux-musiikintekoon:
http://linux.fi/wiki/Musiikinteko_Linuxilla
-
Kansainvälinen Linux-audio -wiki, sovellusluettelo ja äänikorttitietokanta:
http://wiki.linuxaudio.org