Just wanted to say I just spent an hour noodling with this. I really like it!
Iām skimming the sourcecode of Nisp, and wondering how meaningful would it be to extend it to have MIDI output? It would surely be fun tracker experience with notes, but I am not sure where would the parameters like strtch
, ctf
, m-sus
etc. go. To an arbitrary array of MIDI cc, in which case the semantics would be super confusing, to some MIDI standard cc values based on a judgement call whatās what. Or nowhere and just focus on triggering notes? Also I am not sure when to release a note
I guess I would start from NISP/tracker.lua at 463acbb1ab6a9f7cfddb0cc0f1e0b455a497335f Ā· itsyourbedtime/NISP Ā· GitHub to push some note_on
s to a MIDI device, and build some norns parameters to select MIDI device and map to Nisp tracks to MIDI channels.
PS. messing with Nisp as it is is loads of fun!
What I would personally do is at the beginning just add separate inbuilt fns to output midi and then based on that users could easily develop their own.
So for me basic functionality would be:
- note on
- note off
- midi cc
About releasing note I would personally allow users to both send note offs explicitly and alternatively allow optional duration argument to note on which could then reuse inbuilt Norns clock (or NISP one - donāt know if NISP uses something custom) to send note off n
steps later.
hmm getting a load fail error when i try to run nisp. iām in the latest update for both norns and the script
You might want to look at this post and the thread itās in (if youāve not already seen it) as there were some issues with the latest update that have got a hotfix available in the short term:
thanks, just tried that and restarted. still getting the error unfortunately
from matron:
### SCRIPT ERROR: load fail
/home/we/dust/code/nisp/lib/utils.lua:28: <eof> expected near 'end'
stack traceback:
/home/we/norns/lua/core/norns.lua:147: in function </home/we/norns/lua/core/norns.lua:147>
[C]: in function 'dofile'
/home/we/norns/lua/core/startup.lua:42: in function 'include'
/home/we/dust/code/nisp/lib/_stdlib.lua:7: in main chunk
[C]: in function 'dofile'
/home/we/norns/lua/core/startup.lua:42: in function 'include'
/home/we/dust/code/nisp/lib/lisp.lua:7: in main chunk
[C]: in function 'dofile'
/home/we/norns/lua/core/startup.lua:42: in function 'include'
/home/we/dust/code/nisp/NISP.lua:11: in main chunk
[C]: in function 'dofile'
/home/we/norns/lua/core/script.lua:192: in function </home/we/norns/lua/core/script.lua:192>
[C]: in function 'xpcall'
/home/we/norns/lua/core/norns.lua:148: in field 'try'
/home/we/norns/lua/core/script.lua:192: in function 'core/script.load'
/home/we/norns/lua/core/menu/preview.lua:23: in function 'core/menu/preview.key'
/home/we/norns/lua/core/menu.lua:143: in function </home/we/norns/lua/core/menu.lua:120>
# script clear
lua:
/home/we/norns/lua/core/clock.lua:59: bad argument #1 to 'resume' (thread expected)
stack traceback:
[C]: in function 'coroutine.resume'
/home/we/norns/lua/core/clock.lua:59: in function 'core/clock.resume'
indeed those 2 functions in nisp/lib/utils.lua
seem to be missing the function
keyword in their definitions.