|
Author |
Topic: Sound stretching (Read 891 times) |
|
flight404
|
Sound stretching
« on: Jan 6th, 2004, 5:55pm » |
|
I saw this a couple days ago and I became quite enamored. http://www.involving-systems.com/hrr.html Watch the video and for the goods, scrub through 33% of it to get to the demo. Great stuff. So I started playing around with Sonia to see how close I could get to reproducing the audio effect. http://www.flight404.com/p5/soundStretch/ Not that good in the long run. My math is probably really off. My code is uncommented. And there are lots of static pops. But fun for annoying coworkers! I plan on playing with this more but need to get headphones. -robert UPDATE------------------------- Oh, in case you are wondering, here is what is happening. I have a sound sample, in this case a snipet from a Bjork song. That sound is 2 seconds long. The two moving dots represent the start and end of the sound sample with the line between the two representing the entirety of the sound. The line down the middle can be thought of as a playhead. As the line between the two dots 'moves' across the playhead, the applet plays a bit of the sound file at a determined rate. And voila!!! Annoying noise!!!
|
« Last Edit: Jan 6th, 2004, 5:57pm by flight404 » |
|
|
|
|
pitaru
|
Re: Sound stretching
« Reply #1 on: Jan 6th, 2004, 8:04pm » |
|
wow - how did you find that project? amazing - thanks for sharing! however, i'm not sure that they are changing the audio-rate. i think the vectors simply indicate which region ofthe sample should be played. In any case, i think you should look into Sonia's LiveOutput: http://www.pitaru.com/sonia/examples/LiveOutput/index.html -amit
|
|
|
|
TomC
|
Re: Sound stretching
« Reply #3 on: Jan 6th, 2004, 11:23pm » |
|
Funny, I was just having a look at vvvv today... a meso project with a visual programming metaphor for graphics production. Has anyone used it before? How does it compare to processing (apart from being windows only)? Did you guys happen to find this via http://www.bootleg-objects.com/ that's been floating around various weblogs this week?
|
|
|
|
flight404
|
Re: Sound stretching
« Reply #4 on: Jan 7th, 2004, 2:44am » |
|
Made a noisier but more code-friendly version. NOTE!!! PLEASE LOWER YOUR VOLUME BEFORE LAUNCHING THIS APPLET! STARTS WITH A BIT OF A BANG AND IT WILL ANNOY YOUR COWORKERS AND COHABITATORS!!! www.flight404.com/p5/soundStretch1 The playhead divisor is draggable (but doesn't make the experience any better). Pitaru: I found the link off of a link on k10k. I was impressed. Wish I could have seen/heard it in person. Thought you would like it as much as I. Secondly, what were you directing me to liveOutput for? Would that be what I use if I did not want to deal with samples but rather sine-based tones? TomC: Saw that bootleg objects link. Very beautifully made objects. Would be nice conversation pieces to own. Koenie: Unfortunately, it seems that most of the MESO stuff would definitely benefit from a live experience. Some of that stuff looks amazing, but unfortunately requires a presence to fully appreciate. Maybe if I find myself in Germany.... To all, are the static pops of this version of soundStretch unavoidable? Or is it simply some bad math on my part... r UPDATE------------------------------ www.flight404.com/p5/soundStretch2 This one uses a 10 second OutKast sample to test longer samples. This gives me an indication that my math is really off. When you drag the playhead divisor, the samples stop moving so that you can get a fairly clean scrub of the sound. Sometimes it seems that each line represents only a portion of the entire sound sample.
|
« Last Edit: Jan 7th, 2004, 3:36am by flight404 » |
|
|
|
|
pitaru
|
Re: Sound stretching
« Reply #5 on: Jan 7th, 2004, 2:27pm » |
|
on Jan 7th, 2004, 2:44am, flight404 wrote:... what were you directing me to liveOutput for Would that be what I use if I did not want to deal with samples but rather sine-based tones |
| Well, you can populate the liveOutput.data array with sine wave data, or Bjork data, or even better - Outkast data! use the sample.read() command to grab data from an existing sample and drop it into the liveOutput.data array. I haven't thought it through for your program (so i may be wrong), but a benefit of working this way is that the liveOutput 'knows' when to grab the next chunk of data; it calls the liveOutputEvent(){} every time it needs to more data. This may prevent your 'pop' sounds. checkitout.
|
« Last Edit: Jan 7th, 2004, 2:28pm by pitaru » |
|
|
|
|
kevinP
|
Re: Sound stretching
« Reply #6 on: Jan 16th, 2004, 12:44pm » |
|
on Jan 6th, 2004, 8:04pm, pitaru wrote:wow - how did you find that project amazing - thanks for sharing! however, i'm not sure that they are changing the audio-rate. i think the vectors simply indicate which region ofthe sample should be played. -amit |
| If you sweep one of the vectors that is at 90 degrees to the "sweep line", it plays through much more slowly than one that is almost parallel. So if you are not changing playback rate then you would have to have banding (jumps or gaps). I assumed the sweep arm scrubs the tracks at the varying rates as visually indicated, but that pitch compensation is then done, so the time scale (duration) changes, but pitch remains true. -K
|
Kevin Pfeiffer
|
|
|
|