Megathread for keyboard controlled patches

Well modules to facilitate split keyboards is what came to mind, but I’ll get brainstorming.

That sounds awesome! Enjoy your travels :slight_smile:


Nothing super special here, but it’s a pipe organ based on a design I learned in a sound design and synthesis class for Berklee College of Music. I was gonna do the nine different oscillators, but I thought that might be a little CPU heavy, as it has only four currently, and the usage sits at ~17-20% when idle. I think it still sounds good, and it really hits heavy with the bass if you’re not being careful. The neighbors will love it if you’re in an apartment like I am lol! Check it out if you’re into the deep rumbling sound of a nice, old classic organ.

:arrow_down: [see below for the new version] :arrow_down:


About split keyboard, this is something I’m struggling a few days ago.

It’s possible split one midi keyboard in two channels just by note?

I don’t know why, but if assign two midi modules, with different channel, the gate is always changing, no matter what channel I configured.

1 Like

If you upload the patch, it might be possible to make a quick and dirty fix. But I would probably set a threshold frequency, above which keyboard info would be sent one way or another.

Keyboard Splitter Proto.audulus (319.5 KB)

Here is a rudimentary switch for the upper and lower portions of the keyboard. I’m pretty sure you could even cascade these to make several zones on the keyboard.


Uo! Amazing!

I’m trying to do my “own” method, inspired A LOT by Alessandro Cortini.

I have a mix of different patches, but to keep simple right now I’m playing with this patch.

I need to investigate more about your keyboard splitter, because I have problems with the split point. When I play any note on the upper split, the lower note up one octave.

duo_midi_split.audulus (885.5 KB)

1 Like

Here are couple of utility modules for keyboards. The first is a modified poly keyboard module that provides a velocity signal. The standard keyboard node outputs a fixed gate of 1 when switched to polyphonic mode. This restores the MIDI velocity information.
Polyphonic MIDI interface with Velocity.audulus (2.3 KB)
The second module is a 4 note keyboard latch I built for an arpeggiator. Its outputs a quad polyphonic signal for the note and gate and the number of notes latched. There is a toggle for latch and velocity. A gate on the input below each toggle will invert the state of the toggle. The pitch output is a 1 per octave signal.
Quad Keyboard Latch V1.audulus (184.2 KB)

1 Like

That’s a pretty good workaround!

1 Like

I’m trying to understand how the switch and linear pan of your splitter works, and I think there is something wrong at the switch.

How works exactly? Because I have some strange behaviour at the outside of the octave linear pan

1 Like

The linear pan is being used as a demux switch (I probably should have used the demux node) which you can think of as a railway switch:

If the note is above the split gets sent out of one outlet and is it is below the split it gets sent out of the other.

The little meter display thing should show you the note where the switch to the upper split begins and the little number indicates the octave in relation to A 440.


Great way to demonstrate your concept @robertsyrett! :smiley: Also, great patches everyone! Kinda makes me feel like my pipe organ v1.1 is not very awesome after all, but I figured if anyone wants it, I should fix it so it doesn’t growl at anything below middle C lol (sorry to anyone that downloaded the first one). This one has been tuned with more oscillators edit: (I tested, and it doesn’t seem to add that much processor load to double the oscillators to 8 total) playing the same notes, added a filter for the square sub-osc, and raised the transposition level of all of the other sub sine waves. I think it sounds better now. :slight_smile:
Pipe Organ v1.1.audulus (90.2 KB)


Got it!

The thing is, in your splitter, when you play notes on the lower part of split and then play one note on the upper part of split, the lower output change to a (0, 0) instead to mantain the previous note. I put a pair of value meters at the outside of the linear pan and only happens on the lower split.

I try to understand why this change…I guess that is the normal behaviour of the switch, [value when a signal incomes, 0 when no signal] instead of [value when a signal incomes, maintain same value when no signal]

As you mentioned, each output from the switch (linear pan) goes to zero when the other output is active. Ordinarily this doesn’t present a problem since the gate value is also zero. In your patch the gate is not being used to control the note volume so you hear the change in pitch. More commonly the note volume would also be zero so you wouldn’t hear the change.
To get the splitter to behave the way you would like, you would need to save the split outputs in a set of sample and hold nodes because the keyboard node will reuse each voice as needed. It would be fairly simple for a legato (monophonic) split, but a polyphonic split would be more complex.

1 Like

Here’s a keyboard splitter that latches the notes using a sample and hold node. It turned out to be simpler than I first thought. You input the split note as a MIDI note value. (60=middle C). Notes below the split are delivered to the lower output section and notes from the split up are sent to the upper. I’ve included two versions. One takes raw Hz values for pitch and the other uses the 1 per octave (o) standard.
keyboard split.audulus (17.3 KB)


This is amazing!!!

I tried to make the splitter in “pseudo-code” but after see your design…

I’ve been playing a few hours with your keyboard splitter, I’ll post the patch later.

Every day Audulus seems to me more powerful

Thank you so much!


First of all sorry for not posting here for so long.

@stevo3985 your pipe organ patch sounds great :grinning: Thanks for posting this!

@stschoen & @robertsyrett the keyboard splitters are really handy. Do you think there is a way to make the lower split mono? I think this would be better if you want to play a base patch with the lower part of the keyboard and it would also save some cpu.

I have some patches to share too :
Dreamy flux cap. Pad.audulus (430.5 KB)
modweel resonace.audulus (458.0 KB)
ruined bass.audulus (583.5 KB)

I also found this keyboard splitter I made some time ago:
Key Splitter .audulus (946.3 KB)

1 Like

The approach I used normally uses a single instance of the keyboard node. Set to legato it will still split the keyboard but of course you can only play one note at a time. If you use two keyboard nodes and two splitters, with the splitters set to the same split and one keyboard node set to legato and the other set to poly you can take the upper split from the splitter attached to the keyboard node set to poly and the lower split from the splitter attached to the legato keyboard node. (At least I think it’ll work, I suppose I should test it :cowboy_hat_face:)

1 Like

Well it turns out that it almost works. I use the note gate to trigger the S&H node. Since the gate doesn’t drop to zero when the keyboard is in legato mode and two notes are played legato, the note frequency output from the S&H node doesn’t change. Similar problems occur if you exceed the number of poly notes and cause voice-stealing to occur. I guess I never tested it completely in Legato mode. Nice idea but no cigar. I suppose it will need so additional logic to isolate a single low range note. I don’t see any easy fix if the number of voices is exceeded.

Thanks for your quick answers.
I guess it isn’t as easy as I thought :thinking:

It seemed like it would be simple but I guess not. The big issue is that there is currently no way to split a poly signal with a channel count greater than 4. It would probably be possible to implement a split with no more than 4 poly channels since you can split them and process the individual signals but since you would have at least 1 note in the bass you would be limited to a maximum of 3 in the upper split. Handling legato notes would be a challenge. I built a 4 note keyboard latch for an arpeggiator and discovered that it was tricky to get all the timing right. Because of the way polyphony is implemented in Audulus it’s not simple to determine when a new note has been played. You have to monitor each channel for changes to either the note value or gate value since either could indicate a new note.