MIDI Host vs MIDI device?


#1

Hello,

I just scored an Axoloti on the used market (whooo !) And I have a question regarding MIDI.

I'd like to use the Axoloti as a MIDI step sequencer with my Linnstrument as the front-end.
The Linnstrument would be connected via USB to the host port, the Axoloti would then control lights of the Linnstrument. I was then wondering if I could connect the Axoloti using the normal device port to a computer (or another usb midi host) to send the MIDI too ?
Basically, is it possible to use Host MIDI and device MIDI independently ?

Thanks !


#2

congrats and well scored :smile:

yes, you can use host, device and din all at the same time without worry.

btw: Im sure you know, but I also added native MPE support, look at the demo/synth/mpe for a couple of examples.
I love using axoloti with my soundplane and eigenharp so many ways you can shape sound when you can send the x/y/z anywhere... also been done a couple of patches where i just treat it as a big multitouch x/y/z surface which is fun too .


#3

MPE mode is one of the reasons I wanted the device so much, thanks alot for that ! :smile:

If I understand correctly, an object like midi/in/keyb will accept data from all the usb ports (HOST, DEVICE, DIN) without a way of knowing where the data comes from ?

If this is true, I assume it would be possible to do custom scripts using MIDI_DEVICE_DIN, MIDI_DEVICE_USB_HOST and MIDI_DEVICE_USB_DEVICE ?

The reason for this is that I don't want to send back to the Linnstrument the note data from the sequencer output, only specific messages to control the lights on it.

(I would test this but my device is not here yet and I was curious as to how this could work)


#4

Oh, I was just checking the input objects, I just saw that there is a dropdown for the output objects to target specific ports, awesome !

I assume that if one wanted to filter the input by device type a script could also work.


#5

yeah, input and output can be targeted specifically to a DEVICE/HOST/DIN and also channel number.
(and also port on USB HOST, if usb device exposes multiple ports)

I assume you mean when using USB HOST, determine the manufacturer string etc from usb descriptor?
currently we don't send the usb manufacture/device id anywhere, I guess we could if we needed.
though it gets more complicated when you support hubs (we don't currently) as obviously then you need to know which port its connected to.

(bare in mind midi messages only contains channel number and message type , and of course 2 data bytes)

anyway for you purposes it should be fine...

Id be interested to hear what you are planning to do with the Linnstrument / step sequencer...
as essentially Im wanting to do the same thing with the Push, so there is very likely an opportunity for collaboration there.

note sure if you've seen but my general (axocube) project is described here : https://sebiik.github.io/community.axoloti.com.backup/t/axocube-project/425, and more specifically the work I'm doing with the push here : https://sebiik.github.io/community.axoloti.com.backup/t/ableton-push-controlling-axoloti/248

whilst the push video is not entirely applicable to your ideas... it covers an important point, which is how to control 'arbitrary' parameters from a controller, rather than having to patch the controller directly in to the patch.
(this is going to be support in a new feature called 'controller objects' which I've just added to axoloti, not yet in main repo)

what I want to do is to have something similar with a really elaborate step sequencer. something between what the Spectralis and Elektron has. (obviously will 'evolve to this') ... my current idea is to build a new sequencer object, and then that could be 'rendered' differently to different controllers (which obviously have different capabilities)

anyway... may be can work together on making this a reality, as its alot of work for one... and I tend to be working on many things simultaneously :smile:


#6

I meant that the input objects don't seem to have a dropdown to select a specific input so I assume they receive data from all inputs ? (As opposed to the output objects that have the dropdown menu)

My goal is to use the Linnstrument as a UI for a step sequencer inside Axoloti that could either target an internal synth or an external one via MIDI. Your idea of a sequencer object seems to correspond to this, with different mappings/plugins for different hardware.

Would be fun to work on this together indeed ! Let's keep in touch !


#7

yes... but the idea is that usually you put these input objects in a sub-patch (or patch/patcher) and the sub-patch code has the filtering on it. (so all midi input objects in that sub-patch will only receive from the specific device)
Ive just noticed however, that this option is not available on monophonic patches, but I'll add it, as its potentially useful there too. (for now you can just use a polyphonic patch, and specify one voice)


#8

Ahh, all clear now ! Thanks for the explanation !