Here is the list of the most frequently asked questions:

How do I compile Freecycle in a mixed Qt3/Qt4 environment ?!

The easiest way to compile Freecycle (which is a Qt3 app) in an environment which contains both qt3 and qt4 (OpenSuSE 10.2 comes to mind as an example..) you should:

  • export PATH=/usr/lib/qt3/bin/:$PATH
  • export QTDIR=/usr/lib/qt3/
  • make clean
  • rm src/Makefile
  • rm Makefile
  • qmake
  • make

Is there a Windows or MacOSX version of Freecycle?

No, we are not currently able to provide a Windows or MacOSX version of Freecycle. If you want to help us, feel free to get the source from CVS and hack away. All the main dependencies of Freecycle are available on Windows and MacOS X, so in theory a build should be possible…

We have managed to build a mac version. yes it is possible. No, we didn’t document it. Yes it works (but is pretty ugly).

File format support

Freecycle supports all the formats handled by the libsndfile library: libsndfile Website

What those little yellow round dials do ?

They control the envelope.
Controls the duration, in milliseconds of the envelope (A+H+D+S+R) from the locked beatline on.
Controls the resolution of the envelope, in frames. It’s fixed for now, the Bézier is evaluated every 100 frames.
After Dur time, the envelope stops and the samples continue as before.
After Dur time, the envelope stays at the same level. if (R) ==0 then stays at (S) level, else stays at 0
The envelope goes trough (A+H+D), then stays at (S) until before the next locked beatline and then goes trough (R)

What is the fft configuration and configure amplitude domain menus for and how to set it for the best (depending on cpu and memory) program performance?

Generaly speaking slower->better and faster->less precise. Experiment! The default values are ok on a 2Ghz CPU and 1Gb RAM. But this depends on the size of your soundfile, so if you keep those relatively small it should be ok even on less recent computers.

You can see the effect of fft configuration parameters in the spectrogram view (View->Spectrum). Spectrogram FFT parameters are used for drawing the spectrum. If you link those parameters to the Beatmnatching FFT, you cans see what the Frequency domain analysis algorithm “sees”.

What are the different analysis methods best for?

The first (default) algorithm (time domain) detects beats by comparing the instant energy (nb of samples configured as instant energy buffer size in Configuration->Configure Amplitude Domain) with the average energy (nb of samples configured as avergage energy buffer size in Configuration->Configure Amplitude Domain). If the difference exceeds some treshold computed internaly and based on the variance of the signal, then the beatline is put at that position (well it’s a little bit more complicated because Freecycle then does zero-crossing, but you should have got the point..)

The second algorithm (frequency domain) does the same thing but the signal is splitted in multiple bands and the algorithms compare the instant energy of each frequency band with the average energy of that band. That gives you the positibility to beatmatch the signal with continuous amplitude but varying frequency (flute playing legato notes). Configuration->Configure FFT-> Beatmatching FFT gives you the parameters for this algorithm. Window is equivalent to the [instant energy buffer size]. Average energy is hardcoded as 44032 frames.

If you want to know more about the above two algorithms please read the following [http://www.yov408.com/beat/BeatDetectionAlgorithms.pdf] as it served as the basis for these two algorithms.

The aubio algorithms are well known among DSP experts, which I’m not. Please search on the web if you want some precisions about those. Feel free to post your findings on freecycle-users :)

Is it possible to stretch one beat in a whole loop?

For now, time stretching works on the whole sound file.

How does the “time signature” pop up menu affect the bpm?

The detected bpm value is multiplied by the value in the combo. i.e. 150BPM x 1/2 =75BPM

Does the beatlines and loop markers affect the bpm?

Beatlines are the basis for the BPM computation. Loop markers doesn’t affect the BPM.

I guess that the time stretch amount is in percent, but why is the initial value 30 and not 100?

it is the BPM and not the percent.

I would like to know what is the purpose of the clock button and why and when it becomes “active”?

This icon gets enabled when there is at least one locked beatline. It draws what I call the bpmlines, i.e. the measures based on the BPM and synchronised with the first locked beatline.

Could You tell me what is this popup menu with this kind of time signatures for? How to use it?

When the sound signal gets analysed, the bpm computation starts based on beatline positions. If there are at least 4 locked beatlines, only the locked beatlines serve as the basis for the bpm computation, If there are less than 4 beatlines locked, the unlocked (green) beatlines are used. The value obtained is then multiplied by the values in the combo. That gives you the possibilitiy to change the detected 75BPM to i.e. 150 BPM. The computed value is then used for:

  1. Time stretching
  2. measure marker computation (the bar between two loop points, when dragged)
  3. bpm lines computation (activated by the clock icon and at least one locked beatline)
  4. midi file generation



  1. March 13th, 2006 | 10:25

    Hello! Question con par excellence: aucune version prévue pour PC? Merci Prood…

  2. April 3rd, 2006 | 12:59

    J’attends que quelqu’un le fasse :)


  3. homer
    September 2nd, 2006 | 06:42

    Great news about the Mac OSX version. I am a Recycle user, but I’ve been watching your progress and I love it. I teach kids and run an after school, arts program for teens, so I’m always looking out for new free software. I am excited about your progress and would love to try out your Mac version.