[LAU] ableton live in vmware

Robbert Latumahina lists at sensoryoverload.nl
Mon Aug 31 04:38:53 EDT 2009

Josh Lawrence wrote:
> On Thu, Aug 27, 2009 at 12:45 PM, Paul Davis<paul at linuxaudiosystems.com> wrote:
>> i suggest you try it under wine instead if interaction with native
>> linux apps matters, though you will still have no shared transport via
>> JACK.
> I'm convinced that, if anyone on the face of the planet can pull off
> writing an AL-alike application, it would be you, Paul.  :)
> hint, hint
> (as if you don't have enough to do already!)

I'm developing an Ableton-like midi/audio -sequencer.

It's a pet project of me for upgrading my liveset which uses my old 
MSDOS midi sequencer. That sequencer is much like an Ableton Live 
without the audio, loading patterns/songs to the background from disk is 
done while already playing a song. And switching between songs is done 
on a 'track by track' or 'all tracks at once'. This works just like the 
sessiongrid in ableton only dynamically from disk.

I needed to get rid of my old, big and slow dinosaur Yamaha A3000 
sampler and wanted to put sampling inside the sequencer but staying on 
the MSDOS playform was just impossible...

The application is developed in FreePascal/Lazarus-IDE with api bindings 
to Jack/Ladspa/libSndFile/libSoundTouch. As developing with Lazarus is 
multi -platform/toolkit, it would be quite easy just to crosscompile for 
Linux/Mac OSX/Windows (even across gui toolkits like Gtk1, Gtk2, Qt, Win32).

The reason for developing in FreePascal instead of C++ is my background 
in Pascal programming going back about 18 years. Using Lazarus as RAD 
tool is also both easy and fast.

The only big question for me is what licence to use:

GPL and maybe acquire eternal fame in the opensource community. :)


Release it closedsource for about 50 euro just like Renoise and Energy-XT.

I do not want to release it (except maybe some beta 
versions/screenshots) until it does most of the things I want it to do 
(which will take about a year). That would be v1.0

About the application itself:

a very early alpha screenshot:


It is different to Live in that instruments and drumkits are not hosted 
inside a track but globally managed by the application as one big 
processing bank.

A pattern can contain a sample (drumloops etc) and MIDI data. Midi is 
sent to the global sampler or external instrument and returned to the 
sending track. This would for example preserve memory when you just want 
to use a few drumsounds instead of loading complete drumkits. MIDI data 
can also be used to trigger at transients of drumloop in the same pattern.

Also when you want to play the same drumkit at the same time in two or 
more tracks, there is almost no extra memory footprint. This makes 
dragging patterns across tracks and combining different drumloops, 
instruments and plugins far easier to manage than Live.

Loading and combining livesets/songs/patterns from disk while already 
playing would be possible, even staying in sync. Making the audio-thread 
non-blocking from begin-to-end is a high priority (also the most difficult).

There are dozens of other ideas to implement os this is not a complete 
description of the thing.

Roadmap (main features)

PRE v1.0

- Sample Warping with WarpMarkers (just like Live 8 with visually 
stretching sampledata) using libSoundTouch

100%, done (needs some gui-love though)

- Session grid
50% dragging tracks works, dragging(moving form track to track) patterns 
inside the grid and dragging livesets/patterns/samples from disk needs 
to be done.

- Midi pattern editor

30%, creating, destroying, moving notes and scrolling, zooming 
implemented. Maybe layer on top of sampledata

- Global sampler
25%, Framework is in place playing dry unprocessed samples, "just" needs 
the dsp part for filters,
envelopes, fx and such.

- Midi controller mapping
10%, started on framework

- Ladspa track plugins
30%, api bindings completed, basic framework started

- Persistent unlimited undo/redo framework
75%, only 'recovery from crash' needs to be implemented

- Loading/Saving of patterns/livesets

POST v1.0

- Integrate controls (LASH) to connect to Ardour as main DAW
- LV2 support
- Develop a multiband WSOLA timestretching algorithm with transient 
handling for higher quality.
- Mac OSX version

Robbert Latumahina

More information about the Linux-audio-user mailing list