aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xPolygLua.lua38
-rwxr-xr-xaataaj.lua92
-rwxr-xr-xtest_.lua12
3 files changed, 71 insertions, 71 deletions
diff --git a/PolygLua.lua b/PolygLua.lua
index ed14fc5..ee775eb 100755
--- a/PolygLua.lua
+++ b/PolygLua.lua
@@ -2,7 +2,7 @@
2 2
3--[[ PolygLua. Gluing things onto Lua, making it a polyglot language. 3--[[ PolygLua. Gluing things onto Lua, making it a polyglot language.
4 4
5TODO - Make the parsing recursive. So the command "--fancy" could have it's own options table. 5TODO - Make the parsing recursive. So the command '--fancy' could have it's own options table.
6 --fancy option0 opt1=foo 'Random string!' --somethingElse 6 --fancy option0 opt1=foo 'Random string!' --somethingElse
7 When to stop and hand back? First time we see a ' -bar' or ' --foo'? 7 When to stop and hand back? First time we see a ' -bar' or ' --foo'?
8 8
@@ -23,8 +23,8 @@ _.version = '0.0 crap'
23_.verbosity = 2 23_.verbosity = 2
24local log = function(v, t, s) 24local log = function(v, t, s)
25 if v <= _.verbosity then 25 if v <= _.verbosity then
26 if 3 <= _.verbosity then t = os.date('!%F %T') .. " " .. t end 26 if 3 <= _.verbosity then t = os.date('!%F %T') .. ' ' .. t end
27 print(t .. ": " .. s) 27 print(t .. ': ' .. s)
28 end 28 end
29 io.flush() 29 io.flush()
30end 30end
@@ -106,7 +106,7 @@ _.parse = function(args, options, confFile)
106 if nil ~= confFile then 106 if nil ~= confFile then
107 for i,v in ipairs{'/etc/', '~/.', './.'} do 107 for i,v in ipairs{'/etc/', '~/.', './.'} do
108 local p = v .. confFile .. '.conf.lua' 108 local p = v .. confFile .. '.conf.lua'
109 local h, e = io.open(p, "r") 109 local h, e = io.open(p, 'r')
110 if nil ~= h then 110 if nil ~= h then
111 D('Found configuration file '.. p) 111 D('Found configuration file '.. p)
112 h:close() 112 h:close()
@@ -124,7 +124,7 @@ _.parse = function(args, options, confFile)
124 local ds = 0 124 local ds = 0
125 if ('-' == a:sub(1, 1)) and ('-' ~= a:sub(2, 2)) then ds = 1 end 125 if ('-' == a:sub(1, 1)) and ('-' ~= a:sub(2, 2)) then ds = 1 end
126 if '--' == a:sub(1, 2) then ds = 2; a = a:sub(3, -1) end 126 if '--' == a:sub(1, 2) then ds = 2; a = a:sub(3, -1) end
127 local s, e = a:find("=") 127 local s, e = a:find('=')
128 local k , v 128 local k , v
129 if nil == s then 129 if nil == s then
130 e = 0 130 e = 0
@@ -154,11 +154,11 @@ _.runnable = function(c)
154end 154end
155 155
156_.running = function(c) 156_.running = function(c)
157 return ( 1 ~= tonumber(__("pgrep -u $USER -cf " .. c):Do().lines[1]) ) 157 return ( 1 ~= tonumber(__('pgrep -u $USER -cf ' .. c):Do().lines[1]) )
158end 158end
159 159
160_.exists = function(f) 160_.exists = function(f)
161 local h, e = io.open(f, "r") 161 local h, e = io.open(f, 'r')
162 if nil == h then return false else h:close(); return true end 162 if nil == h then return false else h:close(); return true end
163end 163end
164 164
@@ -166,10 +166,10 @@ end
166_.killEmAll = function(all) 166_.killEmAll = function(all)
167 for i,l in ipairs(all) do 167 for i,l in ipairs(all) do
168 local c = 0 168 local c = 0
169 while 0 ~= tonumber(__("pgrep -u $USER -xc " .. l):Do().lines[1]) do 169 while 0 ~= tonumber(__('pgrep -u $USER -xc ' .. l):Do().lines[1]) do
170 local s = 'TERM' 170 local s = 'TERM'
171 if c > 1 then s = 'KILL'; __("sleep " .. c):Do() end 171 if c > 1 then s = 'KILL'; __('sleep ' .. c):Do() end
172 __("pkill -" .. s .. " -u $USER -x " .. l):log():Do() 172 __('pkill -' .. s .. ' -u $USER -x ' .. l):log():Do()
173 c = c + 1 173 c = c + 1
174 end 174 end
175 end 175 end
@@ -202,7 +202,7 @@ __ = function(c)
202 end 202 end
203 elseif 'string' == type(c) then 203 elseif 'string' == type(c) then
204 exe.isScript = ('#!' == c:sub(1,2)) and (n == 0) 204 exe.isScript = ('#!' == c:sub(1,2)) and (n == 0)
205 for l in string.gmatch(c, "\n*([^\n]+)\n*") do 205 for l in string.gmatch(c, '\n*([^\n]+)\n*') do
206 if '' ~= l then 206 if '' ~= l then
207 if exe.isScript then 207 if exe.isScript then
208 if '' == exe.script then 208 if '' == exe.script then
@@ -219,8 +219,8 @@ __ = function(c)
219 end 219 end
220 end 220 end
221 if exe.isScript then 221 if exe.isScript then
222 local a, e = io.open(exe.scriptFile, "w") 222 local a, e = io.open(exe.scriptFile, 'w')
223 if nil == a then E("Could not open " .. exe.scriptFile) else 223 if nil == a then E('Could not open ' .. exe.scriptFile) else
224 a:write(exe.script) 224 a:write(exe.script)
225 a:close() 225 a:close()
226 end 226 end
@@ -241,7 +241,7 @@ __ = function(c)
241 241
242 function exe:timeout(c) 242 function exe:timeout(c)
243 -- timeout returns a status of - command status if --preserve-status; "128+9" (actually 137) if --kill-after ends up being done; 124 if it had to TERM; command status if all went well. 243 -- timeout returns a status of - command status if --preserve-status; "128+9" (actually 137) if --kill-after ends up being done; 124 if it had to TERM; command status if all went well.
244 -- --kill-after means "send KILL after TERM fails. 244 -- --kill-after means "send KILL after TERM fails".
245 if nil == c then 245 if nil == c then
246 self.cmd = 'timeout --kill-after=10.0 --foreground 42.0s ' .. self.cmd 246 self.cmd = 'timeout --kill-after=10.0 --foreground 42.0s ' .. self.cmd
247 else 247 else
@@ -266,7 +266,7 @@ __ = function(c)
266 from nil and false are considered true (in particular, the number 0 266 from nil and false are considered true (in particular, the number 0
267 and the empty string are also true)." 267 and the empty string are also true)."
268 says the docs, I beg to differ.]] 268 says the docs, I beg to differ.]]
269 if true == self.logging then D(" executing - " .. self.cmd) end 269 if true == self.logging then D(' executing - ' .. self.cmd) end
270 --[[ Damn os.execute() 270 --[[ Damn os.execute()
271 Lua 5.1 says it returns "a status code, which is system-dependent" 271 Lua 5.1 says it returns "a status code, which is system-dependent"
272 Lua 5.2 says it returns true/nil, "exit"/"signal", the status code. 272 Lua 5.2 says it returns true/nil, "exit"/"signal", the status code.
@@ -279,9 +279,9 @@ __ = function(c)
279 self.lines[#self.lines] = nil 279 self.lines[#self.lines] = nil
280 if true == self.showing then for i, l in ipairs(self.lines) do I(l) end end 280 if true == self.showing then for i, l in ipairs(self.lines) do I(l) end end
281 281
282 if (nil == self.status) then D("STATUS |" .. "NIL" .. '| ' .. self.command) 282 if (nil == self.status) then D('STATUS |' .. 'NIL' .. '| ' .. self.command)
283 elseif (137 == self.status) or (124 == self.status) then T("timeout killed " .. self.status .. ' ' .. self.command) 283 elseif (137 == self.status) or (124 == self.status) then T('timeout killed ' .. self.status .. ' ' .. self.command)
284 elseif (0 ~= self.status) then D("STATUS |" .. self.status .. '| ' .. self.command) 284 elseif (0 ~= self.status) then D('STATUS |' .. self.status .. '| ' .. self.command)
285 end 285 end
286 286
287 return self 287 return self
@@ -293,7 +293,7 @@ __ = function(c)
293 if nil == after then after = '' end 293 if nil == after then after = '' end
294 if '' ~= after then after = ' ; ' .. after end 294 if '' ~= after then after = ' ; ' .. after end
295 self.cmd = '{ ' .. self.cmd .. after .. ' ; } & ' 295 self.cmd = '{ ' .. self.cmd .. after .. ' ; } & '
296 if true == self.logging then D(" forking - " .. self.cmd) end 296 if true == self.logging then D(' forking - ' .. self.cmd) end
297 os.execute(self.cmd) 297 os.execute(self.cmd)
298 return self 298 return self
299 end 299 end
diff --git a/aataaj.lua b/aataaj.lua
index 88eb346..5656427 100755
--- a/aataaj.lua
+++ b/aataaj.lua
@@ -116,8 +116,8 @@ local options =
116 _.killEmAll{'jmcore', 'qjackctl'} 116 _.killEmAll{'jmcore', 'qjackctl'}
117 -- Catia is python, and no easy way to kill it. 117 -- Catia is python, and no easy way to kill it.
118 -- Also it keeps jackdbus alive, no matter how hard you kill it. 118 -- Also it keeps jackdbus alive, no matter how hard you kill it.
119 __"pkill -TERM -u $USER -f catia":Do() 119 __'pkill -TERM -u $USER -f catia':Do()
120 __"sleep 2":Do() 120 __'sleep 2':Do()
121 _.killEmAll{'jackdbus', 'a2jmidid'} 121 _.killEmAll{'jackdbus', 'a2jmidid'}
122 os.exit(0) 122 os.exit(0)
123 end 123 end
@@ -145,24 +145,24 @@ local Cards = {}
145print('Scanning for audio devices.') 145print('Scanning for audio devices.')
146local cards = __'ls -d1 /proc/asound/card[0-9]*':noErr():Do() 146local cards = __'ls -d1 /proc/asound/card[0-9]*':noErr():Do()
147for i,l in ipairs(cards.lines) do 147for i,l in ipairs(cards.lines) do
148 local f, e = io.open(l .. '/id', "r") 148 local f, e = io.open(l .. '/id', 'r')
149 if nil == f then print("Could not open " .. l .. '/id') else 149 if nil == f then print('Could not open ' .. l .. '/id') else
150 Cards[l] = {path = l, name = f:read("*a"):sub(1, -2), devs = {}, captureDevs = {}, playbackDevs = {}, card=i} 150 Cards[l] = {path = l, name = f:read('*a'):sub(1, -2), devs = {}, captureDevs = {}, playbackDevs = {}, card=i}
151 if "Loopback" ~= Cards[l]['name'] then 151 if 'Loopback' ~= Cards[l]['name'] then
152 Cards[l]['capture'] = __('ls -d1 ' .. l .. '/pcm[0-9]*c*'):noErr():Do() 152 Cards[l]['capture'] = __('ls -d1 ' .. l .. '/pcm[0-9]*c*'):noErr():Do()
153 for j,c in ipairs(Cards[l]['capture'].lines) do 153 for j,c in ipairs(Cards[l]['capture'].lines) do
154 local n = c:match(".*pcm(%d+).*") 154 local n = c:match('.*pcm(%d+).*')
155 Cards[l]['captureDevs'][j] = n 155 Cards[l]['captureDevs'][j] = n
156 Cards[l]['devs'][n] = n 156 Cards[l]['devs'][n] = n
157 print("\tFound capture device: " .. Cards[l]['name'] .. "\tDEVICE: " .. Cards[l]['captureDevs'][j] .. ' ' .. n) 157 print('\tFound capture device: ' .. Cards[l]['name'] .. '\tDEVICE: ' .. Cards[l]['captureDevs'][j] .. ' ' .. n)
158 io.flush() 158 io.flush()
159 end 159 end
160 Cards[l]['playback'] = __('ls -d1 ' .. l .. '/pcm[0-9]*p*'):noErr():Do() 160 Cards[l]['playback'] = __('ls -d1 ' .. l .. '/pcm[0-9]*p*'):noErr():Do()
161 for j,p in ipairs(Cards[l]['playback'].lines) do 161 for j,p in ipairs(Cards[l]['playback'].lines) do
162 local n = p:match(".*pcm(%d+).*") 162 local n = p:match('.*pcm(%d+).*')
163 Cards[l]['playbackDevs'][j] = n 163 Cards[l]['playbackDevs'][j] = n
164 Cards[l]['devs'][n] = n 164 Cards[l]['devs'][n] = n
165 print("\tFound playback device " .. Cards[l].card - 1 .. " : " .. Cards[l]['name'] .. "\tDEVICE: " .. Cards[l]['playbackDevs'][j] .. ' ' .. n) 165 print('\tFound playback device ' .. Cards[l].card - 1 .. ' : ' .. Cards[l]['name'] .. '\tDEVICE: ' .. Cards[l]['playbackDevs'][j] .. ' ' .. n)
166 io.flush() 166 io.flush()
167 if 'JACK' ~= arg[1] then 167 if 'JACK' ~= arg[1] then
168 print('\t\tALSA_CARD=' .. Cards[l].card - 1 .. ' ' .. speaker .. ' "Found playback device ' .. Cards[l].card - 1 .. ' : ' .. Cards[l]['name'] .. ' DEVICE: ' .. Cards[l]['playbackDevs'][j] .. ' ' .. n .. '"') 168 print('\t\tALSA_CARD=' .. Cards[l].card - 1 .. ' ' .. speaker .. ' "Found playback device ' .. Cards[l].card - 1 .. ' : ' .. Cards[l]['name'] .. ' DEVICE: ' .. Cards[l]['playbackDevs'][j] .. ' ' .. n .. '"')
@@ -203,8 +203,8 @@ io.flush()
203 203
204if 'start' == arg[1] then 204if 'start' == arg[1] then
205 __('mkdir -p ' .. options.asoundrcPath.value):Do() 205 __('mkdir -p ' .. options.asoundrcPath.value):Do()
206 local a, e = io.open(options.asoundrcPath.value .. '/jack-plumbing', "w") 206 local a, e = io.open(options.asoundrcPath.value .. '/jack-plumbing', 'w')
207 if nil == a then print("Could not open " .. options.asoundrcPath.value .. '/jack-plumbing') else 207 if nil == a then print('Could not open ' .. options.asoundrcPath.value .. '/jack-plumbing') else
208 a:write([[ 208 a:write([[
209(connect "system:capture_1" "ploop:playback_1") 209(connect "system:capture_1" "ploop:playback_1")
210(connect "system:capture_2" "ploop:playback_2") 210(connect "system:capture_2" "ploop:playback_2")
@@ -218,20 +218,20 @@ if 'start' == arg[1] then
218 ]]) 218 ]])
219 a:close() 219 a:close()
220 end 220 end
221 local a, e = io.open(options.asoundrcPath.value .. '/' .. options.asoundrc.value, "w") 221 local a, e = io.open(options.asoundrcPath.value .. '/' .. options.asoundrc.value, 'w')
222 if nil == a then print("Could not open " .. options.asoundrcPath.value .. '/' .. options.asoundrc.value) else 222 if nil == a then print('Could not open ' .. options.asoundrcPath.value .. '/' .. options.asoundrc.value) else
223 for i,C in pairs(Cards) do 223 for i,C in pairs(Cards) do
224 for j,c in pairs(C['devs']) do 224 for j,c in pairs(C['devs']) do
225 a:write("pcm." .. C['name'] .. j .. " {\n") 225 a:write('pcm.' .. C['name'] .. j .. ' {\n')
226 a:write(" type hw\n") 226 a:write(' type hw\n')
227 a:write(" card " .. C['name'] .. "\n") 227 a:write(' card ' .. C['name'] .. '\n')
228 a:write(" device " .. C['devs'][j] .. "\n") 228 a:write(' device ' .. C['devs'][j] .. '\n')
229 a:write("}\n") 229 a:write('}\n')
230 a:write("ctl." .. C['name'] .. j .. " {\n") 230 a:write('ctl.' .. C['name'] .. j .. ' {\n')
231 a:write(" type hw\n") 231 a:write(' type hw\n')
232 a:write(" card " .. C['name'] .. "\n") 232 a:write(' card ' .. C['name'] .. '\n')
233 a:write(" device " .. C['devs'][j] .. "\n") 233 a:write(' device ' .. C['devs'][j] .. '\n')
234 a:write("}\n\n") 234 a:write('}\n\n')
235 end 235 end
236 end 236 end
237 a:write([[ 237 a:write([[
@@ -373,13 +373,13 @@ pcm.!default {
373 end 373 end
374elseif 'JACK' == arg[1] then 374elseif 'JACK' == arg[1] then
375 print('') 375 print('')
376 print("Start up JACK and friends.") 376 print('Start up JACK and friends.')
377 print("jack_control") 377 print('jack_control')
378 __[[jack_control start 378 __[[jack_control start
379 jack_control ds alsa]]:Do() 379 jack_control ds alsa]]:Do()
380 --jack_control dps device hw:RIG,0 380 --jack_control dps device hw:RIG,0
381 while 0 ~= __'jack_control status':Do().status do 381 while 0 ~= __'jack_control status':Do().status do
382 print("Waiting for JACK") 382 print('Waiting for JACK')
383 __'sleep 1':Do() 383 __'sleep 1':Do()
384 end 384 end
385 if nil ~= GUI then 385 if nil ~= GUI then
@@ -387,7 +387,7 @@ elseif 'JACK' == arg[1] then
387 __(GUI):forkOnce() 387 __(GUI):forkOnce()
388 end 388 end
389 if _.runnable'jack-plumbing' then 389 if _.runnable'jack-plumbing' then
390 print("jack-plumbing") 390 print('jack-plumbing')
391 __'jack-plumbing -o /var/lib/aataaj/jack-plumbing 2>/dev/null':fork() 391 __'jack-plumbing -o /var/lib/aataaj/jack-plumbing 2>/dev/null':fork()
392 end 392 end
393 if _.runnable'a2j_control' then 393 if _.runnable'a2j_control' then
@@ -396,72 +396,72 @@ elseif 'JACK' == arg[1] then
396 --a2j_control actually starts a2jmidid. 396 --a2j_control actually starts a2jmidid.
397 ----a2jmidid -e -u & 397 ----a2jmidid -e -u &
398 -- 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. 398 -- 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.
399 print("a2j_control") 399 print('a2j_control')
400 __'a2j_control --ehw && a2j_control --start':Do() 400 __'a2j_control --ehw && a2j_control --start':Do()
401-- print("sleep 2") 401-- print('sleep 2')
402-- __('sleep 2'):Do() 402-- __('sleep 2'):Do()
403 print("") 403 print("")
404 end 404 end
405 405
406 406
407 local AIN = "alsa_in" 407 local AIN = 'alsa_in'
408 if _.runnable'zita-a2j' then AIN = 'zita-a2j' end 408 if _.runnable'zita-a2j' then AIN = 'zita-a2j' end
409 local AOUT = "alsa_out" 409 local AOUT = 'alsa_out'
410 if _.runnable'zita-j2a' then AOUT = 'zita-j2a' end 410 if _.runnable'zita-j2a' then AOUT = 'zita-j2a' end
411 411
412 print("Basic ALSA sound devices converted to JACK.") 412 print('Basic ALSA sound devices converted to JACK.')
413 for i,C in pairs(options.aliases.value) do 413 for i,C in pairs(options.aliases.value) do
414 print('HW playback: ' .. C['name'] .. '\tDEVICE: ' .. C['dev']) 414 print('HW playback: ' .. C['name'] .. '\tDEVICE: ' .. C['dev'])
415 __(AOUT .. ' -j ' .. C['name'] .. ' -d ' .. C['dev']):fork() 415 __(AOUT .. ' -j ' .. C['name'] .. ' -d ' .. C['dev']):fork()
416 end 416 end
417 print("HW playback: cloop\tDEVICE: cloop") 417 print('HW playback: cloop\tDEVICE: cloop')
418 -- No idea why, cloop wont work with zita-a2j. 418 -- No idea why, cloop wont work with zita-a2j.
419 __'alsa_in -j cloop -d cloop':fork() 419 __'alsa_in -j cloop -d cloop':fork()
420 --__[[sleep 1 420 --__[[sleep 1
421 -- jack_connect cloop:capture_1 system:playback_1o() 421 -- jack_connect cloop:capture_1 system:playback_1o()
422 -- jack_connect cloop:capture_2 system:playback_2]]:Do() 422 -- jack_connect cloop:capture_2 system:playback_2]]:Do()
423 print("HW playback: ploop\tDEVICE: ploop") 423 print('HW playback: ploop\tDEVICE: ploop')
424 __'alsa_out -j ploop -d ploop':fork() 424 __'alsa_out -j ploop -d ploop':fork()
425 --__[[sleep 1 425 --__[[sleep 1
426 -- jack_connect system:capture_1 ploop:playback_1 426 -- jack_connect system:capture_1 ploop:playback_1
427 -- jack_connect system:capture_2 ploop:playback_2]]:Do() 427 -- jack_connect system:capture_2 ploop:playback_2]]:Do()
428 428
429 429
430 print("") 430 print('')
431 431
432 print("Rest of ALSA sound devices converted to JACK.") 432 print('Rest of ALSA sound devices converted to JACK.')
433 for i,C in pairs(Cards) do 433 for i,C in pairs(Cards) do
434 for j,c in ipairs(C['playbackDevs']) do 434 for j,c in ipairs(C['playbackDevs']) do
435 print("HW playback: " .. C['name'] .. "\tDEVICE: " .. C['playbackDevs'][j]) 435 print('HW playback: ' .. C['name'] .. '\tDEVICE: ' .. C['playbackDevs'][j])
436 __(AOUT .. ' -j ' .. C['name'] .. "_" .. C['playbackDevs'][j] .. '-in -d ' .. C['name'] .. C['playbackDevs'][j]):fork() 436 __(AOUT .. ' -j ' .. C['name'] .. '_' .. C['playbackDevs'][j] .. '-in -d ' .. C['name'] .. C['playbackDevs'][j]):fork()
437 -- __'sleep 1':Do() 437 -- __'sleep 1':Do()
438 -- __('jack_connect cloop:capture_1 ' .. C['name'] .. '_' .. C['playbackDevs'][j] .. '-in' .. ':playback_1'):Do() 438 -- __('jack_connect cloop:capture_1 ' .. C['name'] .. '_' .. C['playbackDevs'][j] .. '-in' .. ':playback_1'):Do()
439 -- __('jack_connect cloop:capture_2 ' .. C['name'] .. '_' .. C['playbackDevs'][j] .. '-in' .. ':playback_2'):Do() 439 -- __('jack_connect cloop:capture_2 ' .. C['name'] .. '_' .. C['playbackDevs'][j] .. '-in' .. ':playback_2'):Do()
440 end 440 end
441 for j,c in ipairs(C['captureDevs']) do 441 for j,c in ipairs(C['captureDevs']) do
442 print("HW capture: " .. C['name'] .. "\tDEVICE: " .. C['captureDevs'][j]) 442 print('HW capture: ' .. C['name'] .. '\tDEVICE: ' .. C['captureDevs'][j])
443 __(AIN .. ' -j ' .. C['name'] .. "_" .. C['captureDevs'][j] .. '-out -d ' .. C['name'] .. C['captureDevs'][j]):fork() 443 __(AIN .. ' -j ' .. C['name'] .. '_' .. C['captureDevs'][j] .. '-out -d ' .. C['name'] .. C['captureDevs'][j]):fork()
444 end 444 end
445 end 445 end
446 print("") 446 print('')
447 447
448 if _.runnable('aseqjoy') then 448 if _.runnable('aseqjoy') then
449 print("Scanning for joysticks.") 449 print('Scanning for joysticks.')
450 local sticks = __'ls -1 /dev/input/js[0-9]*':noErr():Do() 450 local sticks = __'ls -1 /dev/input/js[0-9]*':noErr():Do()
451 for i,l in ipairs(sticks.lines) do 451 for i,l in ipairs(sticks.lines) do
452 print("aseqjoy " .. l) 452 print('aseqjoy ' .. l)
453 -- Buttons switch to that numbered MIDI channel, defaults to 1. 453 -- Buttons switch to that numbered MIDI channel, defaults to 1.
454 -- Axis are mapped to MIDI controllers 10 - 15 454 -- Axis are mapped to MIDI controllers 10 - 15
455 -- -r means to use high resolution MIDI values. 455 -- -r means to use high resolution MIDI values.
456 __('aseqjoy -d ' .. l:sub(-1,-1) .. ' -r'):fork() 456 __('aseqjoy -d ' .. l:sub(-1,-1) .. ' -r'):fork()
457 end 457 end
458 print("") 458 print('')
459 end 459 end
460 460
461 if _.runnable('jack-plumbing') then 461 if _.runnable('jack-plumbing') then
462 print('Stop our jack-plumbing, eventually.') 462 print('Stop our jack-plumbing, eventually.')
463 __'sleep 4':Do() 463 __'sleep 4':Do()
464 _.killEmAll{"jack-plumbing"} 464 _.killEmAll{'jack-plumbing'}
465 end 465 end
466 466
467 if _.runnable('~/.aataaj_JACK.lua') then 467 if _.runnable('~/.aataaj_JACK.lua') then
diff --git a/test_.lua b/test_.lua
index 452f4c9..a589a00 100755
--- a/test_.lua
+++ b/test_.lua
@@ -41,8 +41,8 @@ local options =
41 _.killEmAll{'jmcore', 'qjackctl'} 41 _.killEmAll{'jmcore', 'qjackctl'}
42 -- Catia is python, and no easy way to kill it. 42 -- Catia is python, and no easy way to kill it.
43 -- Also it keeps jackdbus alive, no matter how hard you kill it. 43 -- Also it keeps jackdbus alive, no matter how hard you kill it.
44 __"pkill -TERM -u $USER -f catia":Do() 44 __'pkill -TERM -u $USER -f catia':Do()
45 __"sleep 2":Do() 45 __'sleep 2':Do()
46 _.killEmAll{'jackdbus', 'a2jmidid'} 46 _.killEmAll{'jackdbus', 'a2jmidid'}
47]=] 47]=]
48 end 48 end
@@ -51,10 +51,10 @@ local options =
51options['restart'] = options['start'] 51options['restart'] = options['start']
52options['force-reload'] = options['start'] 52options['force-reload'] = options['start']
53 53
54print("start = " .. options.start.value) 54print('start = ' .. options.start.value)
55_.parse(arg, options, 'test_') 55_.parse(arg, options, 'test_')
56print("start = " .. options.start.value) 56print('start = ' .. options.start.value)
57print("stop = " .. options.stop.value) 57print('stop = ' .. options.stop.value)
58 58
59 59
60 60
@@ -112,7 +112,7 @@ print(__[[#!/usr/bin/tcc -run
112print('') 112print('')
113 113
114__[[#!/usr/bin/env luajit 114__[[#!/usr/bin/env luajit
115 print('Hello ' .. "world " .. [=[from]=] .. " Lua.") 115 print('Hello ' .. "world " .. [=[from]=] .. ' Lua.')
116]]:log():show():Do() 116]]:log():show():Do()
117print('') 117print('')
118 118