You are here

Freecycle integration

Hi again,
Another thing i have been hoping to see for a long time is a sequencer working with freecycle project files.

Basically it's a beat slicer, that saves its project data in tar.gzipped folder format.
The folder has the following files in it ::
orig-wav.wav (the original wav file)
env-wav.wav (the wav file with the envelopes applied at the slice points)
project.xml (the project settings)

An example project xml file looks like so

8<-----------------------------------------------

<freecycle bpm-modifier="1/2" release="0.6.1.1alpha" >
<loop right="29721" left="29721" />
<envelope mode="2" release="0.1" decay="0.252941" releaseCx="0.95" releaseCy="0.5" active="1" attack="0.224599" decayCx="0.406404" decayCy="0.458333" sustain="1" duration="1389" attackCx="0.0712143" resolution="100" attackCy="0.8125" hold="0.101604" />
<beatlines>
<beatline position="29721" locked="1" />
<beatline position="45567" locked="1" />
<beatline position="85155" locked="1" />
<beatline position="113931" locked="1" />
<beatline position="140919" locked="1" />
<beatline position="158586" locked="1" />
<beatline position="187646" locked="1" />
<beatline position="199778" locked="1" />
<beatline position="216307" locked="1" />
</beatlines>
<stacks/>
</freecycle>

----------------------------------------------->8

Loop, envelope and stacks tags are all ignorable really,
as you can just use the env-wav.wav file if it exists for the envelopes,
and loop and stacks are for internal sequencing in freecycle.

On import i guess you'd have to
1.) get the part size from the bpm-modifier
2.) split the wav into parts on the beatlines,
3.) calculate their qtractor positions
4.) make a meta part holding the seperate clips in their qtractor positions

I guess it'll ony ever work in a worthwhile way if the parts in qtractor can be kind of meta-containers for a number of child audio clips, though, and if these can be edited and shifted in that part.

phew, that's a really big feature request then, sorry :)

I read in the other wish lists somewhere that a future feature is to add volume and pan curves to tracks, so you can draw in a volume fade etc.
This would be really really useful, and i was wondering if, with jack, this would allow qtractors mixer to unify other apps.
As an example, if i was running hydrogen or similar in a simple pattern,
could you have a special type of track in qtractor that is simply a jack input.
then you could pipe hydrogen into qtractors mixer and fade it,pan it, mute it etc from there.
I know you'd have to reconnect everything everytime you came back to a project,
but if you could give these tracks names then it'd be pretty clear what went where,
and the whole mix should come back pretty much as you left it.
Basically a jack track would have all the same functionalty as an audio track, but with the input coming via jack.
This could be a stupid/impossible/redundant idea, i need to read some more about what jack can and can't do, and i know there's LASH for session management, but having jack tracks just seems quick and dirty but a really really useful way of unifying things down to one mixer.

cheers,
mat

Forums: 
rncbc's picture

Working with freecycle project files
That could be done, but I tend to see freecycle more like an offline processing tool. That is, you do your beat slicing and then export the product as a sampler articulation file (eg. SF2, for example, which you load into qsynth/fluidsynth), and then trigger the slices from qtractor as a MIDI sequencer. Have you tried this route? I believe this is the original intention of the freecycle program, but we really never know in advance how creative all you folks can be :)

IMO importing the audio file beat-slices into qtractor should be fun, but I think you'll end up with something that is not quite equivalent; yeah, you can have the sliced clips alright, but then you loose the DSP that freecycle offers and is hard to mimic or map in current qtractor signal processing path.

volume and pan curves to tracks
That's right, it's a planned feature. Not only for volume and panning, but also for any plug-in control parameter. Automation: record, playback and editing of any control parameter as an envelope curve.

The mixer idea doesn't hold very well though. There's one single reason: qtractor mixer is just a monitoring an control tool that assists in recording and playback within the qtractor session context. It is not intended to function as a generic mixer, that you might use to process external material. The pass-through feature of duplex buses might help in emulating what you're asking, though.

Regarding connection setup, qtractor already does its deeds and saves all bus ports connections on a session basis, all of which should be automatically restored later on.

Hope that answers all your questions, for now ;)
--
rncbc aka Rui Nuno Capela

Hi Rui,
thanks for replying,
i think i'm just having a mental block on something.
I get the idea of exporting from freecycle into fluidsynth
and triggering via midi keyspans etc like the old atari/akai days, but then we were using mixing desks :).
Using this approach now still leaves me wanting to be able to ride the fluidsynth volume in qtractor's mixer ideally....
so, am i not getting the way buses work?
in qtractor there is the option to create new audio buses,
which would appear i take it in the connections and so allow me to ride the volume in qtractor,
but it's permanantly greyed out.
this is on a laptop, by the way, so is this a hardware limitation specific to me and my soundcard maybe?
Are you expecting pro audio cards going out to hardware mixers?
That makes complete sense,
i'm just trying to figure out a way to work as compactly as possible,
with as many components controllable thru one place.

sorry if i'm being dozy :)
mat

rncbc's picture

No sweat. I think you got it almost there. Maybe there's a misconception about what its called a "bus" in Qtractor parlance :) Let me try to explain...

The way to create more inputs/outputs than the default stereo "Master" ones, is in deed by creating more buses, either Input, Output or Duplex. Duplex buses are just a special input and output gang, that you may connect internally via a pass-through feature (cf. the small "thru" button on the respective mixer strip).

Now, take note, that buses in Qtractor are not quite the same concept as in all other DAWs (another misconception: Qtractor is not a DAW; I take it more as an Audio/MIDI sequencer:). I've now realized that this might be one root of many troubled assumptions. Qtractor buses are just a logical aggregation of input and/or output channel ports. That answers your question about the JACK/ALSA connections. Buses are just groups of ports, which are in turn connectible to and from outside applications or devices.

So, to have a multi-channel setup, you must dedicate one bus to each set of inputs/outputs you need. If you have, for instance, a microphone input (mono) and a guitar input (mono) for recording, you'll need two audio input buses with one channel each. Example:

  1. Name="Mic", Mode=Input, Channels=1
  2. Name="Guitar", Mode=Input, Channels=1

You create new buses in the View/Buses... dialog. Just select an existing bus (eg. "Master"), change its settings and press the "Create" button, simple as that. The new bus(es) should appear immediately on the Mixer
and Connections tool windows.

Following the example above, you then should assign the newly created buses to some audio tracks. Look in the tracks properties dialog (Track/Add Track... or Track/Track Properties...)

Are things a bit clearer to you now? or am I missing the point?

Cheers
--
rncbc aka Rui Nuno Capela

You are right Rui.
I have used the same I/O audio configuration also for forward the 8 audio outs of the linuxsampler in to qtractor.
main sampler L+R
Sampler Reverb send L+R
Sampler Chorus send L+R
Sampler Echo send L+R
then in the 3 stero inputs I have inserted the lapsda plugins effects for each stereo sends.
Under this way I can save the whole session song including teh all effects sends for the linux sampler!
Amazing... believe me.

I have another idea for you....
why you dont value for develope one Qmixer??
Just one application that can create how many audio Inputs and outputs, with the full effects plugins.
one nice Qmixer ( like used on Qtractor) is really missing under Linux.
To many application to connect to jack, but then NO the possibility to insert effects.
the only way right now is to use Qtractor or Ardour for open one virtual mixer, BUT one DAW in this case wil be not used...
think well about.. can be one interesting application too
Cheers Rui and compliments again for your amazing work!!
Domenik

rncbc's picture

Nice and overwhelming article indeed ;)

What about that thing called rhythm ferret in Ardour?

I guess if one could split audio clips automagically on power transient onsets and then resize the resulting split-clips while applying some time-stretching here and there, we could have the same, theoretically speaking.

Well, qtractor already has it all there but the markers and onset detection user interface. It's clicky-de-click galore, but there, nevertheless :)

Cheers

I never managed to get rhythm ferret to sniff out onsets reliably :-/ Maybe I'm missing background theory.

rncbc's picture

that's the magic in said automagically ;)

Ahah :) Well, it looks like Freecycle doesn't work reliably for most everybody else, and latest Smasher doesn't build, so we are down to just Ardour right now, and that's no MIDI yet. So if you are serious about trying to do that sometime, you can rely on me to do extensive testing.

rncbc's picture

Has Freecycle gone, uh... , unmaintained? anymore? do'h! 3 years in the limbo already?

And what about that thing called "smasher"... hmm, never hear about it. Now I get it... it's wxWidget based alright,... do'h. Can't get it build it here either.

Someone should, I mean, must do something about this ;) do'h 8-)

SVN tree of Freecycle contains initial Qt4 port. The developer said recently in the list that the app does all he needs. In that very sense JAMin could be called unmaintained as well ;-)

Add new comment