Random MIDI patch generator.

Currently ready to use with:
– Novation Peak
– Elektron Analog Four Mk2

Warning: some patches might get wild! Please watch your ears and speakers.

This tool comes without warranty of any kind. Use it at your own risk.

[///] Updates

– Revision 2: added a MIDI channel selector and parameter sheets for the A4 Mk2.

[A] Get started

1- Download and install vanilla Pd
2- Download MIDIRand
3- Open “main.pd”
4- Assign a MIDI output device and make sure your synth is connected
5- Click on the big button, the process will start and the “S” (for status) light will turn pink
6- Once the “S” light turns green, your patch is ready
7- If you like the patch, save it on your synth the usual way
8- If not, try again until something nice happens

I advise enabling pickup mode on your Peak (Settings – Pickup “On”) to keep an eye on the parameter values.

[B] Auto

When enabled, you will get a new random patch for each pulse based on the defined tempo (whole note).

It will definitely work better with a really low latency value but feel free to experiment.

[C] Modes and configuration

You can operate this tool in two modes:

– Tuned (default): only a carefully picked selection of parameters will receive a scaled random value. This is the most musical mode.

– Random: most parameters will receive a full-range random value. This is the most unpredictable and experimental mode.

To do so, click on the “pd core” subpatch and edit the content of the “read” message as follow:

read “peak-tuned.txt” -> the tuned file will be used
read “peak-random.txt” -> the random file will be used

Once you have changed this line, go back to the main window and click on the “Refresh” button to load the file.

Before running the generator again, initialise the patch on your synth to reset all settings.

If you want to go a bit further, you can open those files and edit the values for each parameter based on the specs below:

Name: concatenated – will be trimmed, it’s just there for readability purposes
Status: on / off – each line with value “off” will be ignored
Type: cc / nrpn – leave this untouched
Range: A B – the range in which the random value will be picked
ID: X Y (for nrpn) or Z (for cc) – the actual MIDI parameter number(s)

Oscillator1Vsync on cc A B Z;
Oscillator1SawDensity on nrpn A B X Y;

Please make sure you leave a single space between each value.
Each line should end with a semicolon.

[D] Latency

A very short delay is added in between each MIDI message as there are about 230 messages to send for each patch and we want to make sure that nothing overlaps. It seems to work fine with low latency values but I’m not sure what the actual lower limit is.

You can use this creatively by using fairly high latency values. That way, the patch will slowly build up and you might get interesting results.

[E] Notes

Technically speaking, this tool should actually work with any MIDI-based synth. As long as you prepare the configuration file based on the specs above, the flow should be the same.

You will see that I chose to ignore CC pairs and replaced them with simple CC messages instead as smooth value transition is not needed here. Keep that in mind if you want to put together a configuration file for another synth.

Finally, I’m fairly new to Pd so please feel free to reach out if you find something that could be improved and/or if you have some feedback.

2 comments on “MIDIRand
  • audioums on said:

    Excellent! Could you port this to a esp32/ raspberry pi pico, zero 2w or similar? would be amazing to make a standalone midi patch random controller for the Peak! 😀😃

  • Leave a Reply

    • Platform:
    • Category: Utility
    • Revision: 2
    • License: Creative Commons Attribution 4.0
    • Modified: 3 years ago
    • Views: 372
      Likes: 10
      Downloads: 168