Polychain two, 4 voice synths

Trying to figure out the best way to get a second synth to take over extra voices from a 4 voice synth, like playing 4 notes on a minilouge xd and have the 5-8 notes register on a microfreak. Also would like to get an uno synth pro to take over extra voices on the microfreak and /or the xd , etc

I have the note dispatcher on two virtual channels and then a channel filter going out to two different midi outs but this isn’t exactly what I want, because I can’t really control the dispatcher the way i want. ANY IDEAS ?

29 PM
  • State: Help Needed
  • Platform:
  • Category: Utility
  • Revision: 1.0
  • License: Do What The F*ck You Want To Public License
  • Views: 2933
  • Modified: 7 months ago
Chat about this patch on Discord! Download (71)
6 comments on “Polychain two, 4 voice synths
  • resonotter on said:

    5 months on…
    … you still interested in this?
    If so can you clarify “playing 4 notes on [X] … have the 5-8 notes register on a [Y] .. [Z] to take over extra voices “?
    You’re talking about notes while held? ie. You want Midihub to keep effectively a tally of existing notes and act accordingly? And when note2 is off, then it is to know that the next note should go to xd?
    In a sense a Polyphony Manager?

  • resonotter on said:

    I couldn’t help but mull this over a bit more:
    Midihub *could* be coerced to do much of what you want (eg. keep a count in various pipelines and use them to turn entry pipes on and off ) – it would be painfully complicated!
    Where it falls down is remembering *which* note was assigned *where*: eg. you played C3 and it was assigned to device Y; when C3 stops playing Midihub has to recall this assignment.

    I do think, however, that a Polyphony Dispatcher pipe would be worth posting at https://community.blokas.io/c/midihub/midihub-requests/14
    As we know that Dispatcher keeps a track of which channels have which notes to be able to send Note_off’s, we can assume that it has this capability *internally*
    In its simplest form, this could just be the addition of “Polyphony per Channel” property, which would default to 1 – “traditional” use. When selected >1, it would be like Repeater in that it would remember max 16 notes. So Polyphony = 4 means “sent to Ch1, when it has <4 notes active, then Ch2, etc". note 17 switches off note1 etc.

    In the meantime, if you can hook Midihub up a computer (Raspberry Pi?) you can do this with python.mido amongst other things.

  • joeybutters on said:

    The strum patch I posted would accomplish this as it is basically taking each note and running it through its own pipeline. From there someone can do whatever processing needed. The first 4 notes would be routed to synth 1 and any notes past 4 would be routed to a different output going to another synth. I’m going to clean it up and make another more barebones patch so it’ll be easier to build off of.

  • joeybutters on said:

    For reference the dispatcher splits the incoming notes and then cycles the next incoming notes to the next channel. IF you turn a channel off and on before the next batch of notes hit the dispatcher then you’ll get the desired behavior of notes always being where you expect them to be. Actually, your patch can work perfectly, but you need to trigger a on/off to the dispatchers.

    You’ll need a physical loopback to make this work. Attach a midi cable to DIN C out and Din C in

    Create a new pipeline

    From Din A>Transform>Din C

    Use transform pipe to transform 0-127 note on/off to 1 note (C-2) and then map (C-2) to ch 2 on both dispatchers. Every note you trigger will be transformed to a C-2, go out DIN C and when it hits input C it will turn on a channel in both dispatchers. When the notes are released the channel will turn off, resetting the cycle.

    It should work perfectly.

  • resonotter on said:

    Hey, Joey,
    I thought of your MegaStrum work when I first read this.
    Isn’t this different, though? The key phrase is ‘ take over *extra* voices’, which I took to mean giving the first synth first dibs on new notes; if it’s full, then pass note off to the 2nd, etc.
    So like this:

    Do your techniques work for this, or is it distinct in your view?

  • joeybutters on said:

    The first synth is always going to get every note up to 4, lowest to highest. ALL notes coming in 1-4 will go to channels 1-4 always. If more than 4 notes are pressed, all notes higher than the 4th note will always go to 5, 6, 7, 8 so on and so on. You could set the split up anyway desired though. As in having 1st or single note always going to 1 and second note always going to 2 and 3rd note going to channel 1. That’s the beauty of having the dispatcher not cycle, opening up many options.

    The only thing I’m not 100 percent sure about is what happens when 4 notes are pressed and held, then another 4 notes are pressed and held. I know that they’ll sound but through what channels. Im certain they’ll just go through 5-8 as while you are pressing a note you are holding the dispatcher on so it hasn’t yet reset. In all my recent tests I’ve never had unexpected channel switching so I surmise that new notes are being added to the next open channel. I’ll have to tinker with it to confirm.

  • Leave a Reply