Passthrough

deprecated - head to passthrough v2

passthrough

A library to pass midi between devices connected to Norns.

params1
params2

passthrough is intended as a simple solution for routing midi between external devices connected to norns. it may be considered midi thru for norns, defined at a script level, with a few extra functionalities added.

introduction

with passthrough, norns can be used as a midi routing hub. the internal nomenclature of the library defines two midi ports as either device or interface.

a device is conventionally dedicated to controlling, for example, a midi keyboard, sending note or control change data. an interface, often a device that generates sound, receives this incoming data and does something with it such as play incoming notes.

it is possible to send midi clock messages to the device from the interface. one peculiar feature of passthrough, that extends a typical midi thru functionality is that incoming notes from the device can be quantized to a scale if desired.

use cases

  • send notes through norns from a usb midi controller to a midi-compatible synthesizer.
  • scale quantization of incoming midi note data from controllers
  • by leveraging callbacks at a script level, incoming midi events can be shared between norns engines/parameters and external hardware

requirements

norns + midi compatible hardware.

if your hardware does not offer midi via usb, an interface such as an iConnectivity mio helps to connect with 5-pin midi ports.

installation + documentation

passthrough is extensively documented on Github and is mirrored on norns.community

tldr:

;install https://github.com/nattog/passthrough 

then add to any script:

if util.file_exists(_path.code.."passthrough") then
  local passthru = include 'passthrough/lib/passthrough'
  passthru.init()
end
44 Likes

This is great! I used it with MIDI USB-USB to share my 16n controller between my Norns and my iPad running AUM.

2 Likes

Could this be used to pass a 16n through from one norns to another norns?

Say I have one 16n and wish to have it control the global params of 2 norns. Would I be able to plug the 16n to norns A that is running passthrough and then connect norns B to Norns A to program PSETS there?

3 Likes

Thank you for this. Works great.

2 Likes

This is so great, thank you!

1 Like

Not certain on the specifics of connecting one norns to another - i saw the discussion on another thread which suggested OSC or separate wired connections from 16n to your Norns, both would make sense. You could make some changes to Passthrough - check the function Passthrough.device_event, line 51 filters for Midi CC messages. This would be a good place to add some OSC code for sending messages coming from 16n.

Anyone tried this with a Sensel Morph yet?

1 Like

I haven’t, but I’ve been quite curious to try out a Sensel Morph someday. Do you have one?

Not yet! But this would help influence my decision.

Given that I don’t have any devices that do MPE, I don’t know what those specific MIDI messages would look like. It may well require some changes to the script but I would be motivated to get that working.

Okie doke. Well, the fact that it has a Premiere Pro overlay as well sold me. Should be here this week. I’ll test it out and report back!

1 Like

If I added this to Timber Keys, could I sequence samples with Timber + OP-Z while also running midi through to Ansible?

I’m reading the Timber code now and still a little confused where each Passthrough thing goes.

Yeah you should be able to just import it like in the example - and then it appears as a menu item in Timber Keys script. It should only be two lines of code. How are you connecting to Ansible from Norns?

I hadn’t seen this script! I will try it because I was just searching for something to control the Hydrasynth with the Morph! Thank you!

1 Like

Report back if any issues encountered and I’ll try to get them sorted :slight_smile:

1 Like

So the process would be

and that’s it?

(thank you for your patience, this is the first script i have ever modified :sweat_smile:)

Yep - that should do it. I would take only this file and put it in timber/lib as I guess it could get messy having a repo with its own lib cloned within another script’s directory. Let me know if that doesn’t work and I’ll have a look!

it worked!!! thank you :slight_smile:

1 Like

well, the code worked, but for some reason norns doesn’t seem to recognize ansible as a midi device? edit: I see, both expect to be host and I’ll need something to mediate between them.

Since Norns are hosts, regardless of the passthrough script you’ll need an intermediate device to allow Norns to Norns midi communication. With that in place, I would assume that you could achieve what you’re looking to do.

For connecting host to host check out @okyeron 2Host or my own Prost or look across the interwebs for non-DIY solutions.

1 Like