Hi Guys, I'm proud to announce my first project on gitorious:
TerminatorX. I took the code from the old project site, and have done
some heavy recoding:
The entire audio part: -Now tX relies exclusively on JACK, and I intend
to keep it so.
-New mixer behind the scene: All
Turntables are stereo, you can still load mono files and the stream will
be copied to the left and right. This is intentional, since it allows to
use stereo Plugins on mono files (some sweet LADSPA plugins are only i
stereo).
-Mono plugins are also usable, their output is simply doubled
-Extra stereo outputs per Turntable
-Support for Rubberband, tempo of
client turntables can be autosynced to the master turntable.
- Exclusive use of sndfile
-Rewriting of the sequencer part,
not all is functional
There is lots to do: -profiling, since tX crashes sometimes (actually
many times:))
- throw out old C code, where its
possible: tX relies on C-style Gtk, which is a pain in the neck for a C
++ programmer like me.
- there are many C-extern functions. To
hell with them, they are bad coding style.
- the gui still displays one channel,
also for stereo files.
- the sequencer has to be checked,
fixed. I actually would like to redesign it, but more later.
- the save and load routines have to be
checked, since I added some parameters which are not yet saved/loaded
All in all tX needs a redesign in 3 integral parts,ordered by priority:
-The sequencer (tX_seqpar) is a mess. I even didn't really bother to
look that deep into the code. As I understand it, it just records
changes of the parameters, then replays them. I think this could be done
easier, and in strict C++ style. I need some ideas on how to construct a
good model.
-The Load and Save routines: I would like to convert all classes to
serializable ones!! This is more transparent, and would allow for nice
things like network sessions (Imagine tX on multiple PCs running with
netjack, and saving the session to one instance on one PC!)
-Last but by far not least: The GUI. If you look at the code, you see
that Alexander did not make a clear line between the GUI and the engine.
I think this is important, for stability reasons. Second, its C-Style
Gtk and not portable.
So the plan is to open another branch, in order to rework the GUI so
that a) It is at least codewise seperated from the engine (e.g extra
namespaces).
b) It's pure C++ and c) its portable. I think the only choice there is,
is to switch to Qt, but I'll leave that open for discussion.
So hope you get in and grab the code at
http://gitorious.org/terminatorx . Theres no configscript, you have to
change the makefile to you needs.
Lets revive this wonderfull program.
Gerald
P.S Sorry for the poor documentation !!