Home | ER-101 | ER-102 | ER-301 | Wiki | Contact

Techniques for Real-time Data-driven Synthesis

Thanks for splitting this topic - it was starting to feel very misplaced to me too. :slight_smile:

That’s a very nice compliment. Thank you, @anon83620728! I tend to think of myself more as “even a blind squirrel gets a nut once in a while” and I am a lucky squirrel. :stuck_out_tongue:

This whole idea sounds amazing. I think I sort of loosely get what you’re talking about with total ordering applied to a field sample. It sounds very mathy. But I believe in you, Brian-san! Will be interested to watch this unfold and hopefully be part of it.

Do you mean the gate signal from, in this case, my keyboard?

When I tried using the pitch shifting delay before, I was definitely hearing something strange, so I thought I’d explore it a little further and shot another video. It seems to be affecting the amplitude of the input. This may be user error, but if not then it the pitch shifting delay might need a few more tweaks before it could be used for this purpose. As I think about it though, if it had a V/O control and didn’t have the behavior shown below, it actually is probably more ideal for the live cloning idea.

EDIT: Geesh, wherever I say “variable delay” in the video, just mentally replace that with “pitch shifting delay”. I’m off to the coffee pot now.

Sure, why not?

I suppose it will depend on how your oscillator implements sync, but a gate should work, if not a gate to trigger before the sync?

That would be phase cancellation where two grains are overlapping but with different phases. It’s especially obvious with simple waveforms. One possibility is to phase lock the grain onsets but then you will probably hear some amplitude modulation from the grain envelopes that are no longer exactly lined up. Actually, I’m not aware of a granular method that has no artifacts.

I can tell a difference in the quality with the pitch shifting delay in 0.2.11. Geesh, I am so close to cloning an external oscillator for my evil purposes, I can taste it. :speak_no_evil:


Here’s how I feel: I purchased an ER-301, and in addition to a new module I’ve been given a key to a room full of geniuses.


ok i have a weird issue with a click i hear and i have absolutely no idea why it is there…
simple setup, some phase modulated sine wave drones go to main monitor and a copy of it into erbeverb and back into the 301 where it gets recorded into a looper with full dub and full wet and a 20ms fade, next to the looper i have a sample player with the same buffer as the looper so i don’t hear the looper but the pitched down sample player, again with a rather large fade. still, i hear a click and i don’t know why, i watched both the looper and the sample players scope to see if it’s only at the end of the recording but it doesn’t match. do i misunderstand this concept of looper/sample player? the waveform on the player’s scope does not update the recording but the buffer clearly does update, i wonder if it’s somehow connected to this shared buffer…?

Change the fade on the looper to 0ms.

Scratch that. I thought you were listening to the output of the looper. The click is the looper’s record head impacting with sample player’s play head (which is going slower).

I have to say I have noticed the same “click” at the end of the loop and thought it might have been something I was doing. You can visually see the spike at the end of the waveform. I’m also using a trigger to control the reset on the looper to keep it in sync.

hm, i don’t fully understand. the click is the sample player updating? is there any way to avoid this or is this normal when the sample player isn’t at normal speed?

i don’t see a spike, and it’s not at the end of the waveform, at least not at the end of the sample players waveform…
and i don’t use synced loops, it’s just drones so the record head and playback head are completely unsynced.

@bc3 Clicks at the end of a loop are caused by having the fade parameter set to something other than zero.

@kilchhofer Imagine a tape player where the record head is moving twice as fast the play head. At some point they will collide. That is causing the click. It is expected behavior but I consider it unwanted behavior and I am thinking of ways to get around it.

ok i understand, that means the sample player is also updating it’s buffer in real time, it isn’t visible so i thought maybe it’s only updating at the start of the loop and within the recording there shouldn’t be a click. but i think i got it now, thanks!

why is it, that a fade other than zero is causing a click? isn’t the fade parameter there to avoid sudden waveform changes eg clicks?

Sharing Buffers
The sample player is not “updating its buffer in real-time”. The looper and the sample player are sharing the same buffer in memory. Whatever the looper does to that buffer, the player sees right away.

Clicking Looper
If you recorded into the looper buffer then there are no discontinuities. So you do not need the fade. Also, I think part of the problem is that the term “click” is being used too broadly. I predict that what @bc3 is calling a click is actually not a “sample discontinuity” click but rather he was looping a very pure sound (like a sine wave) and the fade was messing with the phase briefly everytime the buffer looped. Perfect looping would be obtained by reducing the fade parameter to 0 in this case. If you are resetting the looper playback at random times (i.e. not related to the recorded loop length) then you will want the fade to be non-zero to avoid the discontinuities.

I will double check the fade parameter this evening and report back the results. Thanks as always!

Would be possible or is it already possible to change the pitch of a sample without slowing it down? I’ve been trying to make a lofi pitch warbler thing, but encounter the same thing with short buffers.

I’ve tried to make a “lo-fi junky” type custom unit and got mixed results. I will send it your way later this evening and maybe we can compare notes?

1 Like

I think it can be done with the manual grains. Have a look at this post starting with O|D’s comment and on down. I started experimenting with this, got interrupted, and haven’t circled back yet. But essentially I think you can control the timing of the sample by sweeping the start parameter while also re-pitching the individual grains.

1 Like

It would be great to try out your custom unit and compare it to what I’ve been doing. Please do send it my way. I imagine ours are pretty similar, though I was going for a recreation of the vinyl effect on the SP-404.

The thing is I get a “zipper” sound as soon as I start modulating the pitch. This is with a very tiny buffer. 10ms or less.