hi,
i've done this for video but my friend wants one for audio... i mostly do visual related stuff with pd so i would need some suggestions for this...
what i want to do is very simple
1.load a sample (drumloop) [in array?] 2.divide starting points in that loop (like 2,4,8,16 or 32) 3.randomly play from those start points
so what it does is just randomly make new arranged beats from a drumloop (like what recyle does in offline)
are there any externals that would easy this task ?
in video (gem; pix_film) i just used [for++] to start from desired point...
thnx -andre ps. that pd/max compatibility issue is uninteresting for me, because i dont have the bucks for max (nor for a mac) :) [but compatibility is allways a +]
Andre Schmidt hat gesagt: // Andre Schmidt wrote:
i've done this for video but my friend wants one for audio... i mostly do visual related stuff with pd so i would need some suggestions for this...
what i want to do is very simple
1.load a sample (drumloop) [in array?] 2.divide starting points in that loop (like 2,4,8,16 or 32) 3.randomly play from those start points
so what it does is just randomly make new arranged beats from a drumloop (like what recyle does in offline)
A very similar thing is my new pecycle from footils.radio-worldwi.de, but there you cannot specify slice points by hand, they are searched automatically by the bonk~ object, but that is quite intelligent for this task.
Frank Barknecht _ _______footils__
hi,
i tested pecycle and it's VERY cool, i love it !!! (but too high for my newbie brain to modify/understand it :)... didn't quite understand if you played the audio-slices from one array/table or was every slice played from its own array/table... as i am now seriously planning this project, here are some questions that i need as corner stones before i start my journey...
or jumping to slicepoints in 1 array/table ??? (i would prefer jumping in 1 table)
i managed to get my idea 2 work with 1table and xgroove~. but when i jump with "pos" in xgroove~ from point Y to point X i hear clicks. i think i know why the clicks come (the position of the sample in the end of Y is not same as in start of X), but i'm too newbie to know how to eliminate them...
thnx -andre ps. any info on playing audio from tables is welcome
----- Original Message ----- From: "Frank Barknecht" barknech@ph-cip.uni-koeln.de To: "PD-LiST" pd-list@iem.kug.ac.at Sent: Saturday, May 11, 2002 9:12 AM Subject: Re: [PD] help on random samplePlayer
Andre Schmidt hat gesagt: // Andre Schmidt wrote:
i've done this for video but my friend wants one for audio... i mostly do visual related stuff with pd so i would need some
suggestions for this...
what i want to do is very simple
1.load a sample (drumloop) [in array?] 2.divide starting points in that loop (like 2,4,8,16 or 32) 3.randomly play from those start points
so what it does is just randomly make new arranged beats from a drumloop (like what recyle does in offline)
A very similar thing is my new pecycle from footils.radio-worldwi.de, but there you cannot specify slice points by hand, they are searched automatically by the bonk~ object, but that is quite intelligent for this task.
ciao,
Frank Barknecht _ _______footils__
Hi,
Andre Schmidt hat gesagt: // Andre Schmidt wrote:
i tested pecycle and it's VERY cool, i love it !!!
Thank you VERY much. Glad to hear, you like it. But of course there's room to improve it.
(but too high for my newbie brain to modify/understand it :)...
Uhm, it's a bit confusing - but my desk looks worse ;)
didn't quite understand if you played the audio-slices from one array/table or was every slice played from its own array/table...
There are four main parts organiszed in subpatches which do different jobs. The flow is as follows:
a) [pd readfile] This is just a souped up openpanel->soundfiler->xgroove and is used to fill the global array "loop" with the loop file. the readfile xgroove then plays the loop and generates a position value that's read by a snapshot~ for later use.
b) [pd analysis] Here's where the search for percussion points with bonk~ happens. If you remove all the control stuff, routing of learn and other messages, it is basically just the bonk~ that sends out numbers for each percussion part it finds in the signal coming in from [pd readfile]
c) [pd writer] The snapshot~ values then get written into an array, the table "$0-writer", at the positions that are given by the numbers sent by bonk~. This happens in [pd writer].
We now have pairs in the array $0-writer, that describe which instrument (y-axis) occurs at which loop file position (x-axis). $0-writer has the same length as the loop file. Where there is no percussion instrument found, the table will have a value of 0.
d) [pd player] This is the ugliest part in pecycle and desparatly needs refacturing. It has 9 arrays that take 9 splits of the same configurable length.
The subpatch fullfills two tasks: First it fills the 9 arrays with split parts from the main "loop". I use a tabwrite~ object for this. The tabwrite~ reads what another xgroove~ is playing. This other xgroove~ also has a position outlet that is watched by the [tabread~ $0-writer]. You remeber, that $0-writer holds the positions at which instrument boundaries were found. tabread~ will then send zeros most of the time, but at boundaries it will send 1, 2, 5, ...
These values get read by a snapshot~ and with a [select 1 2 3 ...] they are used to change the name of the array, that the tabwrite~ from above writes to accordingly.
Now we have short splits of the main loop in the 9 arrays that all start with a percussive sound.
The rest is ugly but easy: A metro bangs regularily on a [random] object. The resulting number is used to set the array used of a final tabplay~ that plays what comes out of your speakers.
as i am now seriously planning this project, here are some questions that i need as corner stones before i start my journey...
- table/array is THE way to store audiosamples for playback ???
You can also play files directly from disk with readsf~, but this might give short breaks at the looppoints, so I used tables.
- what object to use for playback (tableplay~, xgroove~...) ???
Normally I prefer xgroove~.
- performance difference between playing audioslices from their own tables
or jumping to slicepoints in 1 array/table ??? (i would prefer jumping in 1 table)
Although I normally prefer xgroove~, I didn't use it here ...
i managed to get my idea 2 work with 1table and xgroove~. but when i jump with "pos" in xgroove~ from point Y to point X i hear clicks.
... because I also got this behaviour.
i think i know why the clicks come (the position of the sample in the end of Y is not same as in start of X), but i'm too newbie to know how to eliminate them...
You can try to declick it with a line~ object. In fact, I also needed to declick the last tabplay~ in my pecycle mini-app, so maybe I could have used xgroove~ here as well.
Frank Barknecht _ ______footils.org__
Hi Frank, hi Andre
Although I normally prefer xgroove~, I didn't use it here ...
i managed to get my idea 2 work with 1table and xgroove~. but when i jump with "pos" in xgroove~ from point Y to point X i hear clicks.
... because I also got this behaviour.
i think i know why the clicks come (the position of the sample in the end of Y is not same as in start of X), but i'm too newbie to know how to eliminate them...
You can try to declick it with a line~ object. In fact, I also needed to declick the last tabplay~ in my pecycle mini-app, so maybe I could have used xgroove~ here as well.
I see there is some need for an xgroove~ improvement. I will see what i can do to achieve an interpolated position change. This is not too easy, but i'll try to tackle it.
The other thing i'm working on is a crossfade zone from the end of a loop to its beginning.
And of course, i'll have to spot some irregularities.
greetings, Thomas