Here you will find details and downloads of software created by Edward Kelly, primarily for Pure Data
I was responsible for creating the audio engine of the Ninja Jamm remix app for iOS and Android, in association with Ninja Tune Records.
Over the past 15 years I have been generating a set of abstractions for working with Pd, often augmented with various third-party libraries. This has gradually exploded into a large library of objects for synthesis, audio processing, sequencing, live sampling and audio file manipulation.
NOTE: I am currently migrating the Metastudio abstractions to the Vanilla + Deken package architecture. I will publish a list of libraries needed for each abstraction soon, and adapt the abstractions to keep compatibility with the Pd + Deken architecture. Thank for your patience...
What's new in
version 5 version 6?
There are a whole host of track2* objects for interfacing between tracker64 and other objects.
tracker64.pd and quadtracker.pd objects are now working with iemguts library, and should run OK...this is new so ping me on the list if you have a problem
rechunk~ takes live audio input and chops it into individual chunks, which are sorted according to their hasc~ score, a measure of their maximum "brightness." These chunks are individual tables, and may be played back from anywhere within a Pd patch and manipulated just as with any other sample table in Pd.
Note: an error in a recent distribution of the maxlib library arraycopy object meant that this stopped working. I have a fixed version of this library here: arraycopy.tar.gz. OSX users will have to recompile, and all users will have to replace the lib in /usr/lib/pd/extra/maxlib (Linux) or the corresponding location on a MAC.
wavebank~ allows you to load a whole folder of .wav files, which may be used anywhere in a Pd-patch. These are created as individual tables named wave-0001, wave-0002, wave-0003 etc. Folders may be added to the wavebank also, as can individual files. On OS X and Linux you can save the bank in a new folder. Other objects that can use wavebank~ waves are shown - wavevoice~ is a sample player with transpose, reverse. stwang~ is a sample player with FM from a damped impulse. phasevocoder~ is an interface to the pvoc~ object for timestretch, time freeze, time scrub and pitchshift effects.
quadtracker is a tracker-style sequencer like Jeskola Buzz. Its four note channels have pitch, instrument, volume and retrigger values, all of which may be directly input from the computer keyboard. It also has 16 parameter channels for sequencing of FX etc.
This is now upgraded to use the iemguts objects for keyboard control!
When I discover a need for something I can't seem to do in Pd, I write either an abstraction or an external. My externals are packaged here as the ekext library.
You can download them here: ekext-0.1.8.tar.gz
Gemnotes is a live notation system (as in music notation) for Pure Data. It uses the GEM graphics engine for Pure Data.
You can download it here: gemnotes_0.2.4.tar.gz
19 September 2019 - Note: this is an interim release and 64bit Windows and Mac users will have to recompile the objects in src/ folder. I am working on some extensions to the system including dedicated percussion staves. Watch this space!
I am presently working on a system of sequential polyrhythm for Pure Data, together with an app for using it to re-organise audio material in real time, with complex sequence information preserved.
The eventSeg~ object which is a combined sequence / remix / audio playback phase generator that can handle complex polyrhythmic sequences such as 4/20 + 4/24 + 6/28 + 8/24 + 6/20 + 8/28 + 12/24. Only power-of-two divisions are shown here, but this is a proof of GUI concept. The underlying rhythmic structural elements are capable of almost infinite temporal complexity.