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.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
v. 0.50 (11/1/2002) -- Maintenance Release
v. 0.48 (9/15/2002) -- Major Release
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 and pthread auido-related application!
6.2 Future
v0.8
Make main window resizable and add resizable splitters on the main widget.
Make Console a separate thread to remove the problem of timer slowing down (or even stopping!) under the heavily verbose output.
Enable filtering of MIDI events so that they can happen less than every 100th of a second (down to every 10 100th's of a second).
Add more MIDI ports (8 max) and a separate thread that contains RT array data to serve MIDI threads.
Add additional external windows: secondary absolute timer and notification interface (for Xinerama).
Let the user choose between "allowable" events and "restricted" events by listing them in settings menu. Both will affect the outcome.
v0.9
Make sure that accelerators work throughout the application.
Make process monitoring better by using QProcess, rather than a syscall.
Add File menu toolbar.
Add right-click menu to the editor for faster event-inserting.
Add variable monitoring widget (separate thread?).
Enable saving window sizes and positions.
v1.0
Clean-up bugs.
Clean-up code.
v1.x
Embed the RTCmix?
v2.x
Trackview?
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 theauthor and be sure to include all pertinent information in order to expedite its resolution and/or implementation.
<< | table of contents | >>