Ukulele - Sample-based Instrument Patch

Hey everyone, I’ve just released a new patch that turns your Organelle into a ukulele. :slight_smile:

This is a summary of the interface:

Download from Patchstorage. More info in the readme on GitHub.

Please try it out and let me know what you think!


This is great, thanks for posting. The sounds are really pleasant and satisfying. The tuning is a nice touch, tweaking them a little adds a humanness to the sound. I like the chord identification, a helpful educational component!

Also, how does the tuning work? looks like delay based… how does it do with other types of sounds? might be a good standalone effect, or part of a multi effect


Thanks for the feedback! Very glad that you like the patch! :slight_smile:

The chord identification was adapted from maxlib/chord. I changed it enough so that it no longer did the same thing as the original, so lacking creativity, I named my version notchord.

The original object can definitely be used in more ways for educational purposes. There is a slight bug with its inputs though. It doesn’t actually respect the lower note limit argument from what I can tell. I fixed this for my version since I also added an upper limit to constrain the inputs to one octave. I can submit a fix for the original version too, but I’m not sure if the current maintainer accepts pull requests. The repo seems pretty quiet.

The tuning was adapted from the pitchshift object in the official Pure Data examples.

I admit that I don’t fully understand this one yet, but it is delay based, like you thought. Here’s a description by Maelstrom from the forum:

It is a granular pitch shifter that works by sending the signal into a short delay, and then reading it back with two delay taps (the two grains). The [phasor~]s adjust the delay times, thus reading them back at different speeds, depending on the transposition, which is what causes the pitch change. They also control the grain envelope (window) and are 180 degrees out of phase with each other, causing them to fade in and out of each other. Since each grain always starts off reading at the same delay time, they’re essentially able to read them at different speeds without “falling behind” or “getting ahead” because they end up wrapping back when their envelopes are silent. It’s kind of a difficult thing to describe while trying to keep it simple, but hopefully that helps.

And some more technical info from Miller Puckette’s The Theory and Technique of Electronic Music. This provides the transposition factor formula, which explains where some of the magic numbers come from.

Hope that helps! :slight_smile:


This is a great idea. Can you post a video of it being played, here or on github?

Has anyone done the same thing to turn the Organelle M into an electric guitar?

I imagine the code / samples could be modified to achieve that simulation, correct?

(That is really what I would love to use the Organelle M for.)

1 Like

I’ve asked a far more musically talented friend to create a short demo for it. Will hopefully post something soon! :slight_smile:

1 Like

Thanks for that info! The (not)chord object looks interesting. It might be fun for generating bass lines (or melodies) automatically…


My friend recorded a short demo of the patch. :slight_smile:


Nice - Thanks!

1 Like

This ukulele patch looks fantastic. I have the original organelle and am getting a blank screen after following the instal instructions - blank screen when i select the ukulele patch. Running 3.1 - anyone else able to instal this on the original organelle?

keep up the brilliant patching.


Same for me on the good old organelle…

it works for me on my organelle-1

thinking about my organelle-1 and what might be different to yours (and differences to organelle-m)

I suspect the issue is it uses Pure Data 0.49 features
in which case install PD 49 using my PD49Update patch.
(if you have orac2 running, then you will have already done this :wink: )

(I cannot confirm this is the issue, as all my organelles have pd49 on them now)

the other possibility, is its only working off the SD Card, not USB sticks

this is often a problem the other way around i.e. a patch that will work fine on a USB stick, but when transferred to the SD card will not work… this is because the sd card uses ext3 which is case sensitive, and the usb stick uses fat32 which is insensitive.

or it could hard code the sdcard name, but I cannot see this in the patch.

a) upgrade to using the SD card - various posts about this… you’ll need a larger sdcard, and a wifi usb stick, but its well worth it… you’ll wonder why you hadn’t done it sooner :wink:
b) run up patch, check for errors, and fix … possibly to do with externals or sub-patch names.

1 Like

Thanks! i’ll give all this a try

This did the trick! And loving orac so far.

Thank you Technobear!