diff options
| author | dvs1 | 2024-10-19 15:37:35 +1000 |
|---|---|---|
| committer | dvs1 | 2024-10-19 15:37:35 +1000 |
| commit | a5895a0696855c946025e156a392fba5898b8778 (patch) | |
| tree | 340bb36c1ad7a74f0ca5c97a549f528d9cb9b824 | |
| parent | If it doesn't want to TERM, wait an ever increasing time before escelating. (diff) | |
| download | JackOnAllDevices-a5895a0696855c946025e156a392fba5898b8778.zip JackOnAllDevices-a5895a0696855c946025e156a392fba5898b8778.tar.gz JackOnAllDevices-a5895a0696855c946025e156a392fba5898b8778.tar.bz2 JackOnAllDevices-a5895a0696855c946025e156a392fba5898b8778.tar.xz | |
Use the new exists function to decide what to do, and how.
| -rwxr-xr-x | aataaj.lua | 71 |
1 files changed, 41 insertions, 30 deletions
| @@ -265,11 +265,13 @@ end | |||
| 265 | local asoundrcPath = '/var/lib/aataaj' | 265 | local asoundrcPath = '/var/lib/aataaj' |
| 266 | local asoundrc = 'asoundrc' | 266 | local asoundrc = 'asoundrc' |
| 267 | local GUI = 'qjackctl' | 267 | local GUI = 'qjackctl' |
| 268 | --local GUI = 'catia' | 268 | if APT.exists('catia') then GUI = 'catia' end |
| 269 | local alias = { | 269 | local alias = { |
| 270 | -- {name='Screen', dev='HDMI9'}, | 270 | -- {name='Screen', dev='HDMI9'}, |
| 271 | } | 271 | } |
| 272 | 272 | ||
| 273 | local speaker = 'espeak' | ||
| 274 | if APT.exists('espeak-ng') then speaker = 'espeak-ng' end | ||
| 273 | 275 | ||
| 274 | local Cards = {} | 276 | local Cards = {} |
| 275 | 277 | ||
| @@ -294,8 +296,8 @@ for i,l in ipairs(cards.lines) do | |||
| 294 | Cards[l]['devs'][n] = n | 296 | Cards[l]['devs'][n] = n |
| 295 | print("\tFound playback device " .. i - 1 .. " : " .. Cards[l]['name'] .. "\tDEVICE: " .. Cards[l]['playbackDevs'][j] .. ' ' .. n) | 297 | print("\tFound playback device " .. i - 1 .. " : " .. Cards[l]['name'] .. "\tDEVICE: " .. Cards[l]['playbackDevs'][j] .. ' ' .. n) |
| 296 | if 'JACK' ~= args[1] then | 298 | if 'JACK' ~= args[1] then |
| 297 | -- print('\t\tALSA_CARD=' .. i - 1 .. ' espeak "Found playback device ' .. i - 1 .. ' : ' .. Cards[l]['name'] .. ' DEVICE: ' .. Cards[l]['playbackDevs'][j] .. ' ' .. n .. '"') | 299 | print('\t\tALSA_CARD=' .. i - 1 .. ' ' .. speaker .. ' "Found playback device ' .. i - 1 .. ' : ' .. Cards[l]['name'] .. ' DEVICE: ' .. Cards[l]['playbackDevs'][j] .. ' ' .. n .. '"') |
| 298 | APT.exe('ALSA_CARD=' .. i - 1 .. ' espeak "Found playback device ' .. i - 1 .. ' : ' .. Cards[l]['name'] .. ' DEVICE: ' .. Cards[l]['playbackDevs'][j] .. ' ' .. n .. '"'):noErr():Do() | 300 | APT.exe('ALSA_CARD=' .. i - 1 .. ' ' .. speaker .. ' "Found playback device ' .. i - 1 .. ' : ' .. Cards[l]['name'] .. ' DEVICE: ' .. Cards[l]['playbackDevs'][j] .. ' ' .. n .. '"'):noErr():Do() |
| 299 | APT.exe('sleep 1') | 301 | APT.exe('sleep 1') |
| 300 | end | 302 | end |
| 301 | end | 303 | end |
| @@ -492,24 +494,28 @@ elseif 'JACK' == args[1] then | |||
| 492 | print(GUI) | 494 | print(GUI) |
| 493 | APT.exe(GUI):fork() | 495 | APT.exe(GUI):fork() |
| 494 | end | 496 | end |
| 495 | print("jack-plumbing") | 497 | if APT.exists('jack-plumbing') then |
| 496 | APT.exe('jack-plumbing -o /var/lib/aataaj/jack-plumbing 2>/dev/null'):fork() | 498 | print("jack-plumbing") |
| 497 | -- Bridge ALSA ports to JACK ports. Only handles MIDI. | 499 | APT.exe('jack-plumbing -o /var/lib/aataaj/jack-plumbing 2>/dev/null'):fork() |
| 498 | -- MIDI via a2jmidid. The --ehw enables hardware ports as well, equal to using the seq MIDI drivare according to https://freeshell.de/~murks/posts/ALSA_and_JACK_MIDI_explained_(by_a_dummy_for_dummies)/ | 500 | end |
| 499 | --a2j_control actually starts a2jmidid. | 501 | if APT.exists('a2j_control') then |
| 500 | ----a2jmidid -e -u & | 502 | -- Bridge ALSA ports to JACK ports. Only handles MIDI. |
| 501 | -- I think the jack_control start and my current alsa config means a2jmidid gets started anyway. But seem to need this bit to get the joystick covered. | 503 | -- MIDI via a2jmidid. The --ehw enables hardware ports as well, equal to using the seq MIDI drivare according to https://freeshell.de/~murks/posts/ALSA_and_JACK_MIDI_explained_(by_a_dummy_for_dummies)/ |
| 502 | print("a2j_control") | 504 | --a2j_control actually starts a2jmidid. |
| 503 | APT.exe('a2j_control --ehw && a2j_control --start'):Do() | 505 | ----a2jmidid -e -u & |
| 504 | print("sleep 2") | 506 | -- I think the jack_control start and my current alsa config means a2jmidid gets started anyway. But seem to need this bit to get the joystick covered. |
| 505 | APT.exe('sleep 2'):Do() | 507 | print("a2j_control") |
| 506 | print("") | 508 | APT.exe('a2j_control --ehw && a2j_control --start'):Do() |
| 509 | -- print("sleep 2") | ||
| 510 | -- APT.exe('sleep 2'):Do() | ||
| 511 | print("") | ||
| 512 | end | ||
| 507 | 513 | ||
| 508 | 514 | ||
| 509 | --local AIN = "alsa_in" | 515 | local AIN = "alsa_in" |
| 510 | local AIN = "zita-a2j" | 516 | if APT.exists('zita-a2j') then AIN = 'zita-a2j' end |
| 511 | --local AOUT = "alsa_out" | 517 | local AOUT = "alsa_out" |
| 512 | local AOUT = "zita-j2a" | 518 | if APT.exists('zita-j2a') then AOUT = 'zita-j2a' end |
| 513 | 519 | ||
| 514 | print("Basic ALSA sound devices converted to JACK.") | 520 | print("Basic ALSA sound devices converted to JACK.") |
| 515 | for i,C in pairs(alias) do | 521 | for i,C in pairs(alias) do |
| @@ -547,14 +553,17 @@ elseif 'JACK' == args[1] then | |||
| 547 | end | 553 | end |
| 548 | print("") | 554 | print("") |
| 549 | 555 | ||
| 550 | print("Scanning for joysticks.") | 556 | if APT.exists('aseqjoy') then |
| 551 | local sticks = APT.exe('ls -1 /dev/input/js[0-9]*'):noErr():Do() | 557 | print("Scanning for joysticks.") |
| 552 | for i,l in ipairs(sticks.lines) do | 558 | local sticks = APT.exe('ls -1 /dev/input/js[0-9]*'):noErr():Do() |
| 553 | print("aseqjoy " .. l) | 559 | for i,l in ipairs(sticks.lines) do |
| 554 | -- Buttons switch to that numbered MIDI channel, defaults to 1. | 560 | print("aseqjoy " .. l) |
| 555 | -- Axis are mapped to MIDI controllers 10 - 15 | 561 | -- Buttons switch to that numbered MIDI channel, defaults to 1. |
| 556 | -- -r means to use high resolution MIDI values. | 562 | -- Axis are mapped to MIDI controllers 10 - 15 |
| 557 | APT.exe('aseqjoy -d ' .. l:sub(-1,-1) .. ' -r'):fork() | 563 | -- -r means to use high resolution MIDI values. |
| 564 | APT.exe('aseqjoy -d ' .. l:sub(-1,-1) .. ' -r'):fork() | ||
| 565 | end | ||
| 566 | print("") | ||
| 558 | end | 567 | end |
| 559 | 568 | ||
| 560 | print('qsynth') | 569 | print('qsynth') |
| @@ -562,7 +571,9 @@ elseif 'JACK' == args[1] then | |||
| 562 | 571 | ||
| 563 | print("") | 572 | print("") |
| 564 | 573 | ||
| 565 | print('Stop our jack-plumbing, eventually.') | 574 | if APT.exists('jack-plumbing') then |
| 566 | APT.exe('sleep 4'):Do() | 575 | print('Stop our jack-plumbing, eventually.') |
| 567 | APT.killEmAll("jack-plumbing"):Do() | 576 | APT.exe('sleep 4'):Do() |
| 577 | APT.killEmAll{"jack-plumbing"} | ||
| 578 | end | ||
| 568 | end | 579 | end |
