FFTease & Lyon Potpourri Instrument



I will be rolling out a patches that incorporates FFT next and i have fingers crossed on a few ideas.
Back in end of undergrad i was doing an outside concentration on digital music and at that point 199ish
i got mystified by linux. RedHat5 i think was the number and the two programs you HAD to run on Linux then were Jean Piche’s “Cecilia” which in the past few years got a snazzy python re-write and miller puckette’s free Max, Pd. I first ran pd on SGI with an 8 channel soundcard and it was heavenly. Before Kyma studies and before microsound SuperCollider insanity.

Anyway, i was a devoted fan of Dave Phillips who ran this awesome Linux Audio Page and i basically tried to build everything on the page to learn about languages [Csound, C, C++, compilers, then alot of PERL, then python and of course trying to run the Cmusic PhaseVocoder code as well which worked back then like a dream. So eventually i ran into this interesting programmer Christopher Penrose who came to our Electro-acoustic music festivals and was a fun dude that authored this software called PVNation. It had an elaborate rendering system that strung together interesting algo pairings with Perl and had awesome names and crazy ideas about phase locking vocoders and related insanity. Then we had Eric Lyon come to show work and over the years when i get into something i usually try to emulate the interesting sounds i learned from people like Eric& Christopher the authors of FFTease and I have used the overlapping audio player in Lyon Potpourri successfully several times.

So i wanted to share and also ask for peoples ideas regarding an FFTish instrument. [From FFT i am going to see which ones are suited for organelle]

bthresher~ similar to thresher~ but with more control
burrow~ a cross-referenced filtering object
cavoc~ an 8-rule cellular automata that generates spectra
cavoc27~ a 27-rule cellular automata object
centerring~ a spectral modulation object
codepend~ a classic block convolution object
crossx~ a cross synthesis object with gating
dentist~ a partial knockout object
disarrain~ an interpolating version of disarray~
disarray~ a spectral redistribution object
drown~ a noise reduction (or increase) object
ether~ another spectral compositing object
leaker~ a sieve-based cross fader
mindwarp~ a spectral formant warping object
morphine~ a morphing object
multyq~ a four band filter
presidency~ a spectral sampler with pitch control
pvcompand~ a spectral compressor/expander object
pvgrain~ a spectrum analyzer for granular resynthesis
pvharm~ a harmonizer
pvoc~ an additive synthesis phase vocoder
pvtuner~ a spectrum quantizer for tuning to arbitrary scales
pvwarp~ a non-linear frequency warper
reanimator~ an audio texture mapper
resent~ similar to residency~ but with independent bin control
residency~ a spectral sampler useful for time scaling
residency_buffer~ a spectral sampler that writes to an MSP buffer
scrape~ a noise reduction (or increase) object with frequency control
shapee~ a frequency shaping object
swinger~ a phase swapping object
taint~ a cross synthesis object
thresher~ an amplitude/frequency sensitive gating object
vacancy~ a spectral compositing object
xsyn~ a cross synthesis with compression object

And i am also going to compile and check

adsr~ a simple ADSR envelope that can be click triggered
arrayfilt~ fft-based filtering by drawing into an array
bashfest~ a click driven buffer player with randomized DSP
buffet~ provides operations on a stored buffer
bvplay~ selective playback from a stored buffer with enveloping and increment control
cartopol~ convert a spectral frame from cartesian to polar form
channel~ access to a precise address in the signal vector
chopper~ munging loop playback from a buffer
clean_selector~ like selector~ but crossfades when switching channels
click~ converts a bang to a click
click2float~ translates a signal click to a float message
clickhold~ sample and hold a click
convolver~ non-real-time convolution with impulses of arbitrary size
distortion~ lookup function distortion
dmach~ pattern based sample accurate drum machine prototype
expflam~ converts a click to an exponential flam click pattern
flanjah~ simple flanger
granola~ granular pitch scaling
granulesf~ granular synthesis module reading from a soundfile in a buffer
granule~ granular synthesis module reading from a stored waveform in a buffer
greater~ compares two signals on a per-sample basis
kbuffer~ low sampling rate buffer to capture gestures
killdc~ DC block filter
latch~ sustain an incoming click with sample-accurate timing
magfreq_analysis~ transforms a time domain signal to a magnitude/frequency spectrum
markov~ implements a first order Markov chain
mask~ a click driven pattern sequencer
npan~ power-panning to an arbitrary number of output channels
oscil~ oscillator with flexible waveform specification
phasemod~ phase modulated waveform
player~ click driven buffer player that can sustain multiple iterations
poltocar~ convert spectral frames from polar to complex representation
pulser~ pulse wave generated by additive synthesis
quadpan~ pan an incoming sound within a quadraphonic plane
rotapan~ rotate an array of input channels to the same number of output channels
rtrig~ generates random click triggers
samm~ sample accurate multiple metronomes, with click signal articulation
sarec~ sample accurate recording
sel~ sample accurate implementation of the sel algorithm
shoehorn~ collapse from a larger number to a smaller number of audio channels
sigseq~ signal level numerical sequencer
splitbank~ split an incoming sound into complementary, independently tunable spectra
splitspec~ split an incoming sound into complementary spectra
squash~ implementation of a compression algorithm by Chris Penrose
stutter~ a basic buffer stuttering player
vdb~ a delay line using an array for storage (no vector limit on feedback delaytime)
vdp~ a delay line with feedback
vecdex~ outputs the sample index within the current signal vector
waveshape~ a Chebychev function lookup waveshaper
windowvec~ apply a Hann window to the input signal vector

SO i urge you to open some help patches make some things check out how stuff sounds. And we can see what shakes
I am going to see which ones compile properly tonight then i may have a reduced list we’ll see


okay after first pass it looks like there may be some really useful externals i can use.

Rather rapidly i was able to make a Spectral Morphing Wavetable sampler
One input is the live input into the Organelle and the other is a Wavetable oscillator that can be played with the playing keys. The Sampler has delay and flanger and it sounds kind of nice so far


I made Bashfest as a first test, check it out and let me know if you like how it sounds


It sounds absolutely fantastic. Crazy - scrambling surprising rhythms and warped sounds. Not something i ever expected from the organelle when i bought it. There is a bleeping artefact, constant no matter what changes i make by pressing keys though is this something that can be removed or just part of the patch? Also - like some of your other incredible rhythmic patches i’m yearning for midi sync - in a dream world with a sync multiplier settings like 1/2, 1/4, 1/1, 2 like on volcas and stuff (but thats just getting greedy). Lots of your patches have very strong sense of rhythm to them, but I find it difficult to use them with other gear because of the lack of midi sync. This is a bit of a silly quibble though - as you have been more or less giving us new instruments every few days for a while now - and it’s ace.


I agree, this is waaaay cool. :open_mouth:
Such a surprising and exciting patch. Appreciae all the thought and digital music heritage going on behind the scenes. Great to see these concepts grafted into a usable form for the Organelle.


Great to see these getting a home on the Organelle. I was lucky enough to have Eric Lyon introduce many of them to me in a computer music class he was teaching years ago! We were running them on MAX/MSP at the time, and I remember the computers could barely process the spectral objects. They are still pretty processor intensive I imagine, but it is really cool to think about using them on the Organelle.


There you have it, it was meant to be!


Wannop they are all going to get midi eventually in my plan :footprints: we’re still kinda just getting going in a way.
i’ll try to get the midiclock on bashfest


Couldn’t agree more. All the patches @shreeswifty has been rolling out lately are simply fantastic. If they get better with MIDI sync and whatnot, this sonic heaven will be even more inspiring, and it is very much so already.


Finally tried your Poisson patch today and was blown away…cool sounding evolving rhythms , noise, chaos,beautiful. Reading your background I don’t feel as shabby about my little simple patches next to your epics!


i am so glad you are enjoying them seriously that’s awesome.
here is an experimental one with midi i am not sure it will work just yet but i think it should
i don;t have an external midi clock to test with, will someone try this?

i don’t want to start another instrument but i told Wannop i would try to get MIDI on this one


i think this version works
i tested it with the midi clock coming from Novation Circuit
You can haz MIDI. I think i can say that lets see if it works for others first

You can try to Haz midi


wowowow, will try this tonight! bashfest with midi? holy cr*p…


I confirm that it works! Awesome work @shreeswifty!


:raised_hands: Big up shreeswifty! Sync timed and aligned perfectly to my midi sequencer. Ace. Need to send you an audio sample of my output from this patch as it didn’t sound like others are getting this bleep from the samples as they play like I am.


Yes, it works indeed! :slight_smile: Tested it with the OP-1 sending clock to the Organelle, all is dandy. Will make some clones of this patch with different soundsets. Because what can be better than weird? Weirder, of course. :slight_smile: Thanks Swifty for yet another awesome patch!


Thanks a lot!
I’ve made my own wish compilation of your list.

So nice posibilities…
Thanks a lot again for all your efforts and the pleasure!


Forgot to include the list, hahahah:

presidency~ a spectral sampler with pitch control
residency~ a spectral sampler useful for time scaling
quadpan~ pan an incoming sound within a quadraphonic plane
sarec~ sample accurate recording
splitbank~ split an incoming sound into complementary, independently tunable spectra
pvoc~ an additive synthesis phase vocoder


anuttumad, unfortunately the FFTease objects are ALL a no go they want too much resource.

i will try splitbank~ though that looks good


Can FFTease can be compiled to use the FFTW library, or maybe it uses this by default? I saw a compile option for Pd to use FFTW for its internal FFT objects, which I was curious about because FFTW has support for the neon extensions (vector floating point unit present on the Organelle’s processor). This should greatly improve performance for FFT related stuff, but might be a pain to get working…