helio-fm / helio-sequencer

Libre music sequencer for desktop and mobile platforms
https://helio.fm
GNU General Public License v3.0
3.09k stars 115 forks source link

Cannot send Midi Out #291

Closed fantonhike closed 8 months ago

fantonhike commented 8 months ago

I love Helio and I would like to use it as a midi sequencer for other synths. However I cannot figure out how to send midi to any virtual midi routers (I have tried loopMidi and LoopBe1). I have set up a proxy instrument as described here but no midi is detected by the router.

Windows 10 Helio 3.12

Thanks

fantonhike commented 8 months ago

I have since tried Springbeats VirtualMIDI (another virtual midi router) and that too does not detect midi from Helio. All the routers work just fine in other DAWs, but none of them work with Helio. Specifying the channel on individual tracks, both input and output, does not change anything either.

It would be great to know if anybody else is having this issue or if anyone managed to solve it.

Thanks again

peterrudenko commented 8 months ago

Thanks for bringing it up! After some testing, I've figured out that I've been handling MIDI output incorrectly all this time ¯_(ツ)_/¯, will hopefully fix that in the development build on the weekend

peterrudenko commented 8 months ago

Please check the development build, MIDI routing should have been fixed there (at least, it worked for me on Windows with loopMIDI). The app will now also automatically create the 'MIDI Output' instrument, if you haven't set it up already. If any problems persist, please shout.

fantonhike commented 8 months ago

Many, many thanks!! I'm so happy that I can properly integrate Helio in my workflow now.

I've been testing it out and overall it works great, although I have noticed one thing: The midi output when placing a note only sends to channel 1, even if the track is set to another channel.

peterrudenko commented 8 months ago

Please check if the development build now fixes those note previews as well: they should work properly when inserting/editing notes, in the chord palette and in the chord constructor from the command palette. But not sure if there are any more channel-related issues.

fantonhike commented 8 months ago

Yup, it all works flawlessly now; massive thanks!

runiq commented 8 months ago

Oh god, this is so great, thanks a lot to both of you! I've been wanting to use Helio with an external instrument for so long, the workflow is just great. :pray:

fantonhike commented 8 months ago

I'm running into some issues with tempo automation whilst routing midi. I can't figure out why, but the automation track seems to 'distort' the outgoing midi, sending notes with seemingly random pitch and velocity in the same channel as the 'true' notes (regardless of the automation track's channel). This happens every time that heavy tempo automation is applied to a track with many notes.

peterrudenko commented 8 months ago

Indeed, I was able to reproduce it with Pianoteq. Which is weird, because the tempo track only sends tempo meta-events, never notes, but for whatever reason they show up as random controller events and random notes on the receiving side (does the instrument misinterpret meta-events?)

Not sure how to fix this properly, because all messages seem ok on the sequencer side. I ended up just filtering out all meta-events before sending everything to the MIDI output, so your instruments won't receive tempo info, text events, key signatures, etc. In the future this filtering should probably be made configurable. Please let me know if it works for you now.

fantonhike commented 8 months ago

Works great now, thanks!

In case this helps for the future: I noticed that the random midi inputs only occured when the 'real' midi notes were playing - if the midi track was empty then the automation track would not send any input to the instrument. It also seemed to send different values depending on the pitch of the 'real' midi notes.

marcin-koziol commented 8 months ago

Should I see any MIDI output from helio in Carla patchbay (linux)?

peterrudenko commented 7 months ago

Probably not, it would require building Helio as a plugin, which is not implemented yet (but that's just a guess off the top of my head, I've never worked with Carla)

marcin-koziol commented 7 months ago

it would require building Helio as a plugin

Are you sure? Patroneo, for example (https://www.laborejo.org/documentation/patroneo/english.html) has multiple MIDI outs (each instrument has separate output)