Josh Lawrence wrote:
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
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)
- 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
- 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
Linux-audio-user mailing list