Re: [ecasound] Ecasound for Beatmatching

From: linux media 4 <linuxmedia4@email-addr-hidden>
Date: Mon Oct 05 2009 - 00:35:14 EEST

> Hello list!
> I am a first time poster trying to get help using
> ecasound for beatmatching (
> When I am finished I would like to be able to control how fast a track
> is playing in real time by the frequency of a key press. Basically, I
> want to sync a key press to the downbeat of a song: the faster I press
> the key the faster the song plays. Then I will be able to fade into a
> different song. I know that time stretching in real time is very
> difficult computationally. What I plan to do is pre-generate many
> files at different speeds using
> rubberband( When I "speed
> the song up" I will just switch to a faster version of the track and
> set the position to the same place in the song. I currently have a
> mock up of the program which only has two speeds which you can toggle
> by pressing enter. It is working however there is a slight pause after
> the switch. Reading the list makes me think that I need
> "sample-accurate looping"
> (, however the file
> type is wav which i think has this.
> My questions for the list:
> 1. Is beatmatching going to be possible?
> 2. Is there a better approach?
> 3. Any ideas about how to remove this small pause.
> 4. Suggestions on my code are appreciated.
> Thanks for your time!
> -Mason Fischer


I somewhat know what you're asking, but not completely. But I just
wanted to point something out about the link you included
( This talks about
using 'EWF' files. They are external files that are used to control
certain sequencing types of things. But all that functioning is now been
written into the internals of Ecasound. So you can do all this internally.

Here's the section of the Ecasound Man Page that explains it's usage...

Audio file sequencing - 'audioloop', 'select', 'playat'
  Ecasound provides a set of special audio object types that can be used
for temporal sequencing of audio files - i.e. looping, playing only a
select portion of a file, playing file at a spefific time, and other
such operation.
  Looping is possible with -i:audioloop,file.ext,params. The file name
(or any object type understood by Ecasound) given as the second
parameter is played back continuously looping back to the beginning when
the end of file is reached. Any additional parameters given are passed
unaltered to the file object. Parameters 3...N are passed as is to the
child object (i.e. "-i audioloop,foo.wav,bar1,bar2" will pass parameters
"bar1,bar2" to the "foo.wav" object.
  To select and use only a specific segment of an audio object, the
-i:select,start-time,duration,file.ext,params can be used. This will
play "duration" of "file.ext", starting at "start-time". The time values
should be given as seconds (e.g. "2.25", or as samples (e.g. "25000sa").
Parameters 4...N are passed as is to the child object.
  To play an audio object at a given moment in time, the
-i:playat,play-at-time,file.ext,params can be used. This will play
"file.ext" after position reaches "play-at-time". The time values should
be given as seconds (e.g. "2.25", or as samples (e.g. "25000sa").
Parameters 2...N are passed as is to the child object.

Hope this helps...

Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
Ecasound-list mailing list
Received on Mon Oct 5 04:15:02 2009

This archive was generated by hypermail 2.1.8 : Mon Oct 05 2009 - 04:15:02 EEST