I am reasonably new to Pure Data. I am doing my final year project in it. My question at the moment is this. I have an electronic drum kit rigged up to pd. There are 8 input channels. Six of the input pads register the velocity of the hit, the other two pads are pedals with just an on/off state. I want to use one of the pedals to start recording the output and when it is kicked again to stop recording and play it back in order to create layered polyrhythms. What is the best means to achieve this affect?
Thanks in advance,
The drum kit generates MIDI data.
You want to play sounds by MIDI from an external sampler/drum-box
You want to learn more about Pd and not have someone hand you your project on a plate
Decode the midi - you need to create a [midiin] object and use [select] and [route] to catch the events when the pedal is pressed.
Create a step sequencer that inserts events in a cyclic buffer/storage system (in overwrite mode) *hard part
Use a toggle to switch the recording on and off with alternate pedal events.
Connect output of the step sequencer to a [midiout] object or to some drum synthesisers you make in Pd.
Add a metronome bleep so you can keep time.
Pick up your drum sticks...
(Note - you haven't thought about (or told us about) some still unsolved problems. A sequencer capable of making polyrythmns needs more than one concurrently running sequence, same timebase but unrelated bar lengths. Work on that first because it defines an important software engineeing decision which effects how your sequencer must work (hint: is it track based or layer based or something else? That effects how you delete events (unless you plan on playing everything right first time))
Use the Source.
Hey there Obiwannabe,
The drumkit is not midi. Its signal is being picked up by a pico device using a netrecieve object. In terms of making a decision about the sequencer. There is no right or wrong way to play this drumset. It is part of an art piece that explores the connection between audio and visual representations of rhythm.
Basically, when I strike the drumpad, the signal is converted to a number. This number is used to inform the amplitude of its assigned sounds and also sent over to director to be processed by Lingo where it will be used to trigger and inform a particle system projected on the wall. It is a closed system. All of the drumpads except the left pedal have been assigned a particlar sound and particle system. The order in which I play the drums will affect the panning in the sonic realm and the wind force in the visual realm. I am very anxious to inject a random element into the system. Also, I am much concerned with making the system interaction two way. At the moment information is only travelling from pd to director. I want it to travel back from director to pd. So this is what I was thinking. I thought the left pedal could trigger a record device that would record and store some of the output from the drums. I then thought that each of the particle systems in the lingo file could be assigned numbers 1-8. These number could be sent back to pd as they are triggered. They will be compared to a random 8 object , using select and when they matched the recorded sample would be played back . Does this sound like a bad idea? The drums are to be engaged with in a playful manner. The drummer/ interactor will get a surprise the first time but will soon learn to incorporate these random playback samples into their end piece. This would be my hope at any rate. What I do have to plan for is the fact that the left pedal may be hit only once thus the recording will not be stopped or they will double kick it turning it on/off to no avail. Perhaps kicking the left pedal will make a 30 second recording of output only. Any thoughts you have would be greatly appreciated. Ailbhe
Having things interact just for the sake of it is great dev experimentation, but it doesn't make good art unless there's a meaningful relationship behind it. For a person, interacting with a system that is too random isn't engaging, it's frustrating. You have a lot of good partial ideas
but I think you need to roll them into a more coherent whole picture now.
"It is part of an art piece that explores the connection between audio and visual representations of rhythm."
So I would emphasise that connection. Have you played with Puredatas data-structures? I am just beginning to explore and have fun with those - they present several ways to visualise data as shapes, positions and colour.
If you are playing back 8 preset particle animations all you can really do is have each drum trigger a coresponding video clip. Unless you can control the particle animation behaviour there's not much point in exchanging information between these two parts.
Have you looked at GEM? See the "fountain" examples in the help files. That might give you ideas like how to control the height, colour and number of particles on each hit depending on how the drum is hit.
Use the Source.
The random element is given meaning by the conceptual framework in place for the piece. it is too detailed to go into here.
I am not working with preset article animations. Rather, the input received from each drumpad is sent over into Lingo's Director to directly influence each particle system.
I am have researched GEM and Data structures and have opted to use Director instead. This is already in place.
Thanks anyway for all your help.
YVW,.Maybe you can give us a link when it's finished to see what visuals and rythmns are generated. Good luck and lots of fun with the project.
PS. Check out the Angriff, Claudius' tr808 and the drum boxes on my "toys" page for some sequencing ideas - although they may not be exactly what you want.
Use the Source.