...that deal with pure data
You are not logged in.
here is the updated version of my DIY library. it is a collection of various useful audio modules for music production.
unfortunately my pd computer packed it in last week, so it is in a bit of a 90% completed state, but there should be enough stuff to play with until i get a chance to get in and get it all 100% done.
open 000-introduction.pd to get started.
http://www.m-pi.com/DIY2.zip
Offline
by the way, the '303' stuff in the help file is probably still the slightly buggy old version.
open 'module-acidtest8-rebirth.pd' for the fairly debugged versions.
Offline
What can one say. Again an absolute brilliant collection of modules. Btw, it reminds me of VAZ modular.
Offline
Hey hardoff,
i guess my first answer was a bit too hastey. I've been tyoing around (a little bit) with your DIY set and now i must say i'm really amazed. Those fx are incredibly classy (some of them are certainly going to make it into my setup, if you don't mind). And then the concept of that preset window and and empty canvas to start creating your own instruments: fantastic!!!
Now some patches on top to do audio routing (from within each instrument/fx to a logical channel which can be connected to physical outputs in the audiomaster) and time distribution and i believe your work could become the poor mans reaktor :) with endless possibilities.
Amazed, simply amazed.
D.
Offline
This is excellent! I think it would be nice to have more comments explaining how each module works... but then again, maybe that would take away the fun of figuring it out.
The pre-assembled 303 option didn't work for me -- it only seemed to work when I assembled it from the individual components listed. Is that what you mean when you say it's slightly buggy?
Offline
waaahh nice work and very nice 303 patch !
thanks for sharing this!
Offline
wow, I can only imagine how hard you must have worked on this. Great job.
Offline
very nice set of objects, used some of the effects in a looping patch i've been making, gave you credit on my website and linked to this post.
Offline
hey Hardoff, nice work, im a noob to pd but am very interested in using it, probably for the rest of my life, i was just wondering if and how i could control some of this patches with a midi i owne, i have a small m-audio o2 and havent really used it with pd, i am starting to look it up now see and in my search i saw your interesting patch cause it sounds like something fun to experiment with, i havent really been able to make your patches work im probably not doing something right, but the print window tells me: error: $2: argument number out of range
error: Bad arguments for message 'open' to object 'pd'
... you might be able to track this down from the Find menu.
well if you have any ideas on what im doing wrong id appretiate it, im not giving up yet though ill keep experimenting with the DIY2 im sure ill figure it ou eventually.
Offline
hey seor, it sounds like you need to add the diy library to your 'paths' preferences in pd's preferences menu.
as far as midi, you will need to select your midi device, also in the preferences menu, and then you can use [ctlin] to get midi data ranging 0-127 from your controller...so you would scale that [/ 127] to get a 0-1 range and then plug it into the relative inlet of the diy patch.
ie;
[ctlin 7]
|
[/ 127]
|
[2 $1(
\
\
\
[mono-pitchshifter key]
and that would take midi control from controller number 7, and send it to the slider number 2 on the pitchshifter effect.
Offline
hi, i'm trying to use some parts of your awesome work for a DIY reactable.
Is it possible to use the 303 synth without the 303 seq? and how?
Offline
>>Is it possible to use the 303 synth without the 303 seq?
yes of course. but remember that a vital part of the 303 soudn is the way the sequencer triggers accents and slides and things. without that it's just a fairly boring monosynth.
>>and how?
you could open the abstraction containing the synth and sequencer. then take a look at what inputs the synth is receiving from the sequencer. then add your own inputs to the abstraction for these values. then delete the sequencer, resize the 'graph on parent' window, and save the abstraction under a new name.
Offline
Hi Hardoff,
I'm surprised to find that I have not earlier recorded my amazement and appreciation for this incredible piece of work.
CeC 2009 is due up next weekend, and I was just looking it over again for my performance,... but I just can't play guitar with the latency of computer-processing~:o/ http://www.theaea.org/cec_cac/cec09/index.htm
Will however, be using Marco's very interesting C::NTR::L (http://puredata.hurleur.com/sujet-2382- … -computing), to sort of demonstrate live video-processing,...... with an environmental theme of course.
Wish you were here with us again to turn it all on properly.
Keep well buddy ~ Shankar
Offline
Hi Hardoff,
About your 303 seq, is it possible to set the sequencer without using the Gui ? (with a message or inlet).?
Thanks for this amazing work.
Offline
hi shankar, hope it all goes well for you on the weekend. onwards and upwards.
xray:
>>About your 303 seq, is it possible to set the sequencer without using the Gui ?<<
yeah, you could make it do that. the sequencer has state saving (those 808_state patches), so you'd just have to look at what messages are being sent from the state saver to the sequencer and add them in yourself.
this is not an 'out of the box' function. it's something you'd need to add by yourself, but it shouldn't be too hard.
Offline
Thanks Hardoff...
Will try that ... (i want to integrate a 303 in my reactable under dev)
Offline
cool. if you get stuck or have questions, feel free to email me: hard.off@gmail.com
Offline
hardoff, this fucking great! I've been playing around and studying these, and I'm learning a ton.
I was looking at your bit crusher to see how you handled sampling rate ([samphold~], duh...for some reason I thought it would require some weird [block~] thing), and I noticed something about the bit depth that didn't look right. You have it multiplying up and dividing back down, but it's not actually quantizing to the lowered bit depths. An [expr~ int(v$1)] does the trick. I don't know why the sound is still being affected, though. I'm guessing floating-point error, but who knows.
Anyway, thanks so much for this library. It's one of the most helpful--if not the most helpful--things I've come across for learning DSP in Pd.
Offline
cheers, that bitcrusher always bothered me too.
Offline
unbelievable !!! Greatest thing I've ever seen !!!
Offline
This seems interesting, but I can't get it going. When I open 000-introduction.pd, I get this message:
getdir
... couldn't create
Then when I click to start, I get this:
error: inlet: expected '' but got 'bang'
I'm assuming that's because [getdir] was never created. Where can I find [getdir]? Is it an external? Do I need to download it from somewhere? I'm running Pd 0.39.3-extended.
Thanks!
Offline
[getdir] is part of the ggee library. Try [import ggee] or adding ggee to Startup... and then typing a [getdir] to see if it works.
Offline
I've come back to this library in the past few days, because the effects are really great as seasoning for that point when you're almost done with a composition but then decide that it needs something more. The "wetfilter" is a particular favorite.
But I've been wondering, how exactly does "specdelay" work? I think it sounds amazing, but I don't know enough about Pd's FFT objects to know what's going on.
Offline
i'm actually not entirely sure on that one myself, it was originally based on a patch made by Frank Barknecht i think.
bascially, as far as i can figure, it's like this:
FFT gives the amplitude (and phase, i think) of a gradient of frequency bands, and then reconstructs the signal from that information. So, a signal goes in as a normal block, and that is transformed into the FFT realm, which means that your block now has the amplitude information for each frequency in the gradient.
then, we can do things to the block of audio to modify it. the simplest example is making a graphic EQ. if the FFT block is multiplied by another table of equal length to the block size, then the values of each point in that table will scale the output of each frequency in the FFT block.
in a similar way, if the FFT data is sent into a delayline, the amount of delay can be set seperately for each frequency in the block. the original patch i based my spectral delay on had the delay times being written from a table. however, i found that an acceptable substitute for the table was to use a sine function to define the delay at for each point in the FFT.
there is also feedback and stuff, and that works just like it does on normal signals, except it acts on individual frequencies.
Offline
Hey I got a question. in the compression patches I can kind of get my head around the amp factor section. But I don't get any of the att/rel section. Can anyone explain what that sgn~ (signum) is/does ? Secondly I can see the table is effected by the release but not really on the attack. I can hear the attack. The block size is 2. I'm guessing if the default block size is 64 samples then 2 means 128?? Or is it actually 2 ? This outputs a frequency between 0.019 and 57 into a VCF along withe the original amp factor. Any advice ?
Offline