Showcase: Enabling MIDI thru for any plugin in BM3

I've been pretty annoyed with not being able to make any sound on BM's pads while MIDI effect plugins are enabled (and don't feature MIDI thru themselves). So instead of waiting for Intua to add this feature, I'm building a thing to make that possible for any plugin myself.

This fixes https://intua.net/forums/index.php?p=/discussion/7116/when-inserting-rozeta-in-a-bank-i-get-no-sound-3-0-11#latest and addresses some comments in https://intua.net/forums/index.php?p=/discussion/7122/au-midi-feature-requests#latest . It should even work across banks (therefore solving the removal of internal MIDI routing in the latest versions).

The plugin acts like a virtual "fork", copying over MIDI input and pasting it over later. I'm planning to add more functionality like "cut" and "replace", allowing any kinds of interaction with other MIDI hosts (overwrite their MIDI, combine with their MIDI, alter their output MIDI based on user's original input etc.).

Here's a video showcasing how it works:
1. Rozeta enabled: pads make no sound
2. Added an entry and exit point for the MIDI thru plugin
3. Rozeta enabled: pads now make sound

Is there any other features you'd like with this?

Comments

  • edited November 26

    Awesome stuff !!

  • Really great work @blueveek

    So glad to have you and your coding skills as part of our team :)

    Now... where can I get this cool plugin?

  • @tk32 said:

    Now... where can I get this cool plugin?

    Gonna release it as soon as I figure out how this app store thing works. Or how the beta testing thing works. New to all of this. Help welcome :)

  • Skillz! Very cool!

  • edited November 27

    I think this is ready.

    Besides being able to enable midi thru, this plugin re-enables internal midi routing between multiple banks. This isn't done with virtual MIDI cables: everything is done in the same internal render block, and MIDI memory is shared, since the plugin instances aren't process-isolated. In laymen's terms, I don't think this introduces latency at all.

    Here's a demo showcasing the UI and internal midi routing:

  • Looks very promising!
    Will it handle both MIDI note events and MIDI CC?

  • No latency, well would you believe it!!!
    Excellent stuff.

  • @5pinlink said:
    No latency, well would you believe it!!!
    Excellent stuff.

    I think so, because everything happens in the same render cycle (so before the next interruption).

    All the outgoing/synthesised MIDI events have the same timing as the incoming/memorised ones, so I suspect that if there was any latency involved, this approach (no virtual MIDI cables, just shared memory) wouldn't have worked at all. There is a slight chance BM is doing some magic behind the scenes that can invalidate my hypothesis, but so far everything seems to work well.

  • @bleep said:
    Looks very promising!
    Will it handle both MIDI note events and MIDI CC?

    It should, I don't make any distinction in the code, but should test.

  • Hey,

    That's really cool @blueveek, kudo's !

    Cheers,
    Mathieu.

  • edited December 9

    Hello blueveek,
    Have you make any progress packaging your plugin?

  • edited December 9

    @jeezs Yup! D'ya want to beta test? Send me a DM.

  • @blueveek said:
    ...no virtual MIDI cables, just shared memory...

    Incidentally this also enables MIDI routing between tracks in Cubasis, if you're into that.

    (Until Apple decides to process isolate plugin instances, then it's back to pad 1, and that's going to be the least of everyone's problems.)

Sign In or Register to comment.