Organelle has over 500 Pd patches on patchstorage.
https://patchstorage.com/platform/organelle/

These were especially made for the Organelle and need this special Desktop-Mother patch to run, either on the Organelle or another computer (Linux I think, would this work on Mac too?)
https://patchstorage.com/desktop-mother/

So to use any of these patches on Pepper, would it be as simple as adapting the Organelle Desktop Mother patch and upload the contents of the Organelle patch in the IDE?

I know there's more knobs, less pushbuttons and no OLED on Pepper.

Here's part of an old interview on the Organelle:

Q: How do you prepare Pd patches for this? Anything special? How do the knobs and keys map? (I guess audio just maps as adc~ and dac~ in which means a lot of patches won’t need modification.)

A: We tried to the keep patches isolated from underlying hardware, so a patch receives knobs and key presses as regular Pd messages (e.g. [r knob1], [r notes] … etc), and sends and receive audio out (e.g. [s~ outL, r~inL]). There is a ‘mother.pd’ patch always loaded that is the other end to these sends and receives. It communicates with the actual hardware (using OSC), implements MIDI, and does things like volume control on the output before piping it to dac~

This way, a patch has no dependencies outside of Pd, so a patch can be run on the Organelle, a laptop, or even a libpd environment without any modifications (just needs a mother patch to send and receive with, or the mother program in the case of libpd).

at a quick look:

  • the [pd keyboard-keys] stuff won't work, out of the box. One could however plug in a USB keyboard onto Bela and map them (outside of Pd, then send them into Pd perhaps using pdsend).
  • the CV values can be converted to messages via the [audioToControl] abstraction present in many of the Pepper examples, however simply doing, e.g.:
    [adc~ 3]
    |
    [audioToControl]
    | add whatever scaling needed here?
    [s knob1]
    won't behave quite as expected, because it will be sending to knob1 very often even if the knob doesn't change, which means that e.g.: loading a preset won't be possible because anything that would be loaded would be immediately overridden. I am not familiar with Organelle, but I assume this will conflict with their expected behaviour. So you need something that only sends a value from the CV in when it moves "enough" since the last time it sent a value. The [adcToCtlout~] abstractions in Bela/examples/PureData/midi-cv-midi are a good step in that direction:
    alt text
    However, this abstraction achieves this simply by filtering and quantising, but it may still send too many messages when the pot is too close to a transition point. You'd really need a hysteresis comparator and may not need the quantisation, depending on what is required by the Organelle. Here's an example:

alt text

Note that your hysteresis should be larger than your noise level and that the lop~'s cutoff should match the metro's frequency. You may want to tweak these parameters with the actual hardware.