Turns out this was nothing to do with Passthrough. It is the particular scripts I am using (mx.synths, and mx.samples) and how they prioritize MIDI input devices that is causing my woes and nothing to do with the recent implementation of Passthrough. My bad.
Feel free to delete these once you see to tidy up the thread.
Hmm⦠thatās really bizarre! Passthrough device detection pools from the midi.devices table, so Iām not sure why a wifi hotspot would show up hereā¦
Hey there! Just checking in for some setup help. Iām trying to pass midi CCs from 16n through norns through 2host into ableton. Iām using
2host is indicating that itās definitely passing the CCs (blinkenlights blink when I move a fader), but Iām not able to use abletonās midi map to apply them to anything.
My settings in passthrough are as follows:
Yes
All
No change
Device src.
no
no
c
major
lmk if thereās anything I can do to get this rolling!
Running latest update on stock Norns and getting the same errors when 1) no MIDI device is attached and 2) the mod is enabled and 3) you press K3. Norns freezes and requires a restart:
lua: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/menu.lua:190: in field 'set_page'
/home/we/norns/lua/core/menu/mods.lua:24: in function 'core/menu/mods.key'
/home/we/norns/lua/core/menu.lua:143: in function </home/we/norns/lua/core/menu.lua:120>
When you turn an encoder, more errors:
Summary
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua: /home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
lua: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
/home/we/dust/code/passthrough/lib/mod.lua:353: in field 'redraw'
/home/we/norns/lua/core/mods.lua:112: in field 'redraw'
/home/we/dust/code/passthrough/lib/mod.lua:331: in field 'penc'
/home/we/norns/lua/core/menu.lua:116: in function 'core/encoders.callback'
/home/we/norns/lua/core/encoders.lua:60: in function 'core/encoders.process'
lua:
/home/we/norns/lua/core/clock.lua:65: /home/we/dust/code/passthrough/lib/mod.lua:353: attempt to index a nil value (field '?')
stack traceback:
[C]: in function 'error'
/home/we/norns/lua/core/clock.lua:65: in function 'core/clock.resume'
Would be super cool if this included pattern rec (unquantized midi looping) maybe like earthsea.
Not sure if norns could handle this in parallel to another app sequencer tho.
[SOLVED] User infront of Norns error. Forgot to activate Mod before restart
Hi @nattog , just tried to use passthrough on the latest norns version 220321.
It shows up under SYSTEM>MODS>
but I can not enter.
Restart did not help.
Reset did not help.
Powercycle norns shield did not help.
any ideas? Am I the only one running into this issue?
Thanks in advance and thanks for this really cool tool!
The bulk of the logic for passthrough is in lib/core.lua
To start, youād want to add crow related functionalities to pt.device_event in that file. Following this, you may want to consider how it will work with the UI and config for each port.
Happy to explain the codebase a bit further, Iām aware there is some optimisation to doā¦
Hello there ! thank you very much for the script , I can now send midi data from a launchpad to a blofeld and trigger it! I have a question that is probably very simple to resolve but im not so sure: I know I can select which channel to send midi to in param but what If I want to send midi to multiple channels simultaneously from the launchpad, can I map each row to be sent to a different midi channel ? Thanks
I havenāt used launchpads so forgive me if my very brief research into them has led me astray here. But would you be able to use a custom mode for your launchpad using this tool? https://components.novationmusic.com/
It appears possible to create and send a custom mode to your launchpad where buttons/rows have been setup to send to specific midi channels? This would be the easiest solution. I quickly put together a version where you have two keyboards sending over different MIDI channels.
Passthrough doesnāt handle this use-case independently, where you have MIDI data coming on on one channel and sending to various different channels. It would require some code changes + new UI to handle this.
CC limit sets the limit of midi CC messages to be sent for every channel per 25ms timeframe. if more messages than this limit are received, then the last messages (per channel) will be sent automatically on next timeframe. this is useful when a midi controller is generating too many messages too fast (eg. moving all the faders at once on a novation launchcontrol xl). the Pass all option allows all CC messages to passthrough, without any kind of limiting. the Pass none option doesnāt allow any midi CC messages to passthrough, effectively removing all of them
@nattog I noticed that @zbs asked above RE the addition of Crow as an output destination from a Midi Device.
Been searching and couldnāt find a mod that did this, and thought Passthrough was a great candidate, stumbling across it here.
I have VERY LITTLE technical ability to be able to do this, but was wondering if youād consider adding it to the script/mod as Iād love to use a midi keyboard to play my Eurorack via Crow and free up Norns for some of the great effects scripts.
I know that Gridkeys support this, but would prefer to use a Midi Keyboad rather that Grid in this use case.