RTMix
<< | table of contents
| >>
6. Development
This chapter covers the current
development status including the ChangeLog of past fixes and improvements, TODO
list for the future versions, and the information about bug reporting and other
feedback.
6.1
ChangeLog
v.0.76 (5/21/2007) -- qt and gcc fixes, change to a 100% GPL license
- Thanks to generous efforts of Robin Gareus rtmix compiles fine with latest gcc.
- Couple of cosmetic fixes.
- Perhaps most importantly, now comes in 100% GPL flavor ;-).
v.0.75 (2004-ish) -- Honestly can't remember
v.0.72 rev.a (3/14/2003) -- Maintenance
Release
- Fixed install error message that was
caused by two of the Powertools tutorial scriptfiles having "&" in their
name.
v.0.72 (3/13/2003) -- Maintenance
Release
- Fixed bug where parsing 'change'
values would cause segfault when targeting non-existing real-time
event.
- Corrected 'change' value assigning and
error reporting.
- Made transport controls visible even
when verbose control is off.
- Included 'verbose' option which
toggles verbose run-time output.
- Annotated verbose and midi logging
options as 'capable of hindering factors to real-time performance'.
- Made verbose option automatically be
enabled when midi logging is activated.
- Added more scriptfile examples.
- First release including Powertools
tutorials.
- Removed dependency on "pthreads" and
ported main timer to Qthread.
- Added filtering to the sys-calls
triggered by the continuous MIDI controllers, they can now happen max 20 times
per second (this is to minimize CPU overload due to external sys call
volume).
v.0.7 (3/10/2003) -- Major
Release
There is simply a huge number of fixes
and improvements. I'll do my best to list them all. Here they are, in no
specific or organized order:
- Internal error widget has been
removed.
- External Error Log now became a
general purpose Console.
- Added visuals for monitoring of data
flow at the bottom of the external Console.
- Sped-up the start-up time by 300-400%
(literally :-)
- Fixed bug where global transport
events did not execute on a local client causing many scripts to fail.
- Reordered Tabs on the main
widget.
- Made External resizable widgets
resizable only when performance was not in session (in order to minimize
cpu-utilization by RTMix during the performance settings).
- Fixed Metronome weird resizing bug.
Now when the meter is changed, the widget resizes appropriately.
- Fixed color coding errors for the
notification interface.
- Re-arranged the settings saving
routines.
- Added new parameters to the config
file.
- Added networking authentication code
and made it configurable in the settings tab.
- Added filter for events in order to
disable potentially malicious sys-calls to be executed.
- Fixed gazillion (literally :-) bugs in
the parsing engine.
- Standardized error and logging output
messages.
- Color-coded Console messages.
- Added "go-to-error" feature.
- Implemented MIDI protocol as a
separate thread. Users can now use MIDI for real-time events, as well as MIDI
routing.
- Provided new tabs in the settings menu
that enable user to specify the appropriate MIDI port.
- Implemented OSC (Open Sound Control)
for inter-app communication.
- Implemented generic OSC network
communication.
- Implemented OSC routing for the
purpose of sharing the MIDI port.
- Enabled variables to be included in
notification interface messages.
- Enabled multiple instance of variables
and MIDI parameters to be included in functions, assigns, and events (sys
calls and others).
- Fixed metronome's inconsistent
resizing.
- Fixed bug where BPM's on the
metronomes 2-4 were corrupt.
- Jump events now interpret events they
jump to in a proper fashion.
- Added this full-fledged HTML
documentation (Yay!)
- Included more tutorials and provided
better annotations for the older ones.
- Made apply button disabled in the
settings menu, unless something was changed.
- Made MIDI monitoring and MIDI logging
buttons disabled by default, unless the real-time monitoring is
enabled.
- Added color-coding and more verbose
descriptions of the real-time events in the table.
- Enabled differentiation between
keyboard presses and releases and their mappings to the real-time
events.
- Added line-number tool for the
editor.
- Fixed behavior of the probability
parameters.
- Annotated more parser's
warnings.
- Implemented protection against
infinite recursion scripts.
- Other stuff that I cannot think of at
this moment.
v. 0.52 rev.b (12/16/2002) --
Maintenance Release
- Yet another fix for the KDE-less build
(thanks to Richard Green for the bug report)
v. 0.52 rev.a (12/1/2002) -- Maintenance
Release
- Fixed networking seg-faults in Qt3
- Finished network code
- Removed all kde-libs dependencies (I overlooked
a couple in the configure script itself, sorry about this)
- Several minor bug-fixes
- Fixed all other known seg-faulting bugs
- Added a couple networking tutorials
v. 0.50 (11/1/2002) -- Maintenance
Release
- Ported to Qt3.x
- Several minor bug-fixes
- Metro window retains its geometry after
reinitializing metro parameters
v. 0.48 (9/15/2002) -- Major
Release
- Completely revamped parser
- Double-buffered images
- Decreased Cpu usage
- Number of events rises to 20 (from 7)
- Preliminary networking features
- Fully implemented Real-time capabilities
- Completely configurable interface
- Ability to save settings
- Metronome, Warning, External Timer, and LED
window implementations
- Customizable Lights
- Expanded "WhatsThis" documentation
- Improved installer
- Completely transferred to Qt (no KDE
dependencies)
- 30-ish tutorials and demo scripts
- Included source code :-)
- Requires Qt 2.3 and up (Sorry, not checked
whether it works with Qt 3.0 and up just yet)
v. 0.16 (1/29/2002) -- Major bug
fixes
The previous "bug-fix" was actually more
of a bug-maker than a fixing release, rendering
v.0.15 useless. Parser had
problems parsing data correctly thus failing to time events
correctly. Thus
fixes included in this version are:
- Parser now WORKS and has been tested
thoroughly
- Error checking is now vastly
improved
- When user put "&" at the end of
their [do] parameter in the event, it caused the program to fail to execute
the syscall, due to fact that "&" was hardwired and automatically added by
the app, resulting in a <syscall> &&, which then opened-up a
sub-shell that did not understand any subsequent commands resulting in errors
like this one:
sh: -c: line 1: unexpected EOF while looking for
matching `"'
Now the app detects whether you have a "&" or not and
adds them appropriately.
- Most of the "WhatsThis" docs have been
added and extended making the documentation
more complete
v. 0.15 (1/7/2002) -- bug fixes
- The only fix was to improve the parser
error recognition. Now you have to bracket-off
the values with both curly
brackets and quotation marks, for example:
text ( [at]= {"0.4"}
[say]={"Hello!"} );;
- There are other cosmetic changes but
nothing major.
v. 0.1 (12/10/2001) -- Initial
Release
- Welcome to my first GUI
audio-related application!
6.2
Future
v0.8
- Add additional external windows:
secondary absolute timer and notification interface (for Xinerama).
- Add right-click menu to the editor for
faster event-inserting.
- Add variable monitoring widget.
- Add more MIDI ports (4 max).
- Let the user choose between
"allowable" events and "restricted" events by listing them in settings
menu.
- Make process monitoring better by
using QProcess, rather than a syscall.
- Make main window resizable.
- Add resizable splitters on the main
widget.
v0.9
- Make sure that accelerators work
throughout the application.
- Add File menu toolbar.
- Enable saving window sizes and
positions.
v1.0
- Clean-up bugs.
- Clean-up code.
v1.x
v2.x
6.3 Bugs,
Comments, and Suggestions
RTMix is continuously being improved.
However, often it is not the development of new features, but rather the
bug-hunting that steals a lot of time. Therefore any comments, suggestions, and
ESPECIALLY BUG-REPORTS are greatly appreciated. Together we can make RTMix
better -- if you encounter a bug or desire a particular feature, simply e-mail
the author and be sure to include all
pertinent information in order to expedite its resolution and/or
implementation.
<< | table of contents
| >>