[Mustajuuri homepage]

Mustajuuri status

Current features

This list summarizes the functionality that currently works. There are likely to be many bugs and problems yet, but we are quite far. The only thing needed is to debug the stuff, add a few features and make the stuff truly user friendly and reliable + write zillion plugins.
  1. Graphical user interface
  2. Read/write setups to/from file
  3. Plugin-based system
  4. Control for GUIs' level of detail
  5. Audio and MIDI IO on Linux and IRIX
  6. Selective hiearchical multilevel undo/redo in GUI (altough not for all operations)
  7. Threading (DSP and GUI in different threads)
  8. Real-time priority stuff (Not yet fully used tough)
  9. Automagical GUI generation for plugins (when needed)
  10. Setups can be saved to a file
  11. Audio can be transferred between modules (module = plugin instance)
  12. Events (MIDI etc.) can be transferred between modules
  13. Internationalization (language translation)

Version 0.2.3 (released 23/2/2004)

This was a bug-fix release.
  1. Fixed ALSA-0.9 and OSS support, now they seem to compile
  2. Fixed some other minor compilation problems (for gcc 3.2.3)

Version 0.2.2 (released 9/2/2004)

  1. Support for ALSA 1.0
  2. New plugins
  3. QAWL - Qt Audio Widget library
  4. Simple audio file editor program (to be integrated to Mustajuuri)

Version 0.2.1 (released 12/3/2002)

  1. Installation does not try to autofind the Qt libraries any more. Instead we rely on the user setting QTDIR properly.
  2. Added new IIR filter plugin by Benoit Gauduin. This is useful for loudspeker correction etc.
  3. It is now possible to store own message types in the project files.
  4. MMC (MIDI Machine Control) in works.
  5. User interface improvements, use knobs in place of sliders when applicable.
  6. Parameter changes in the DSP-thread are now visible in the UI thread as well.
  7. Made the FPU -management code more compact. The old version had unnecessarily many functions. Less options, less hassle. Floating point calculus and C/C++ do not fit together too well...
  8. Several new compressor and limiter plugins (also wrapped to LADSPA).
  9. Bug fixes as usual. Mustajuuri seldom crashes any more.

Version 0.2.0 (released 22/8/2001)

  1. New framework for real-time capability management -- givertcap -application now in use.
  2. Removed a few template classes from the plugin API -> Faster compilations and smaller binaries.
  3. A series of new dynamics plugins: limiters and compressors. Various versions for different levels of speed and sound quality.
  4. New framework to deliver commands to the MJ_kernel object. This helps greatly in making dynamic non-local user interfaces possible (controlled over a socket). It also enables easier intra-application action management.
  5. Several rather important bug fixes all over the place.
  6. Licensing somewhat modified. Now some parts licensed under the GPL rather than LGPL.

Version 0.1.0 (released 7/2001)

  1. Auralization plugin for an array of loudspeakers (multiple channels in, many channels out).
  2. New multichannel sample-playback synth.
  3. Networked auralization control system.
  4. New message type MJ_MSG_BOOL and corresponding GUIs.
  5. Important API changes. We should be close to final Mustajuuri 1.0 API here...

Version 0.0.6 (released 5/2001)

  1. A system to make Mustajuuri plugins appear as LADSPA plugins (works on both Linux and IRIX)
  2. Fixed a few usability problems of the mixer. Many remain...
  3. Added an nth order FIR and IIR filters to the low-level DSP library.
  4. Made the second order IIR class template-based.
  5. Additions to low-level DSP classes.
  6. ALSA 0.9beta3 support.

Version 0.0.4 -> 0.0.5 (released 3/2001)

  1. Bug fixes as usual
  2. LADSPA support - plugins work, their GUIs work and saving to a file works as usual.
  3. Added a pitch detector plugin and a tuning meter plugin (based on the pitch detector)
  4. New delay plugin
  5. Support for Linux 2.4 (affects rtc)
  6. Linux capability support - now Mustajuuri drops root priviliges after getting the necessary capabilities. BTW: On IRIX there should be no need for this kind of stuff as the xfs filesystem has capability entries etc.
  7. Improvements to latency. Now Mustajuuri can get down to about 5 milliseconds latency on tuned Linux systems.
  8. The level-meter plugin is now exact. Also added peak-hold behaviour.
  9. Finally got Alsa 0.5.x code working somewhat. The new Alsa 0.9.x code is in works...
  10. New utility app cdtrunc to truncate audio files to a length acceptable for CD-writing (src/utils/cdtrunc). Useful if you need to burn the audio files to a CD.
  11. Added threaded audio file read and write plugins (need debugging and refinement)
  12. Added plugin info display
  13. Implemented a very basic tooltip help for plugins
  14. CTRL+S now saves as expected
  15. Implemented sampling rate and frame size changes - these have been included in the API since the beginning, but now there is a user interface for them. All usual sampling rates in range 8-96 kHz are now supported.
  16. Minor API tweaks to make life with highly variable module I/O configuration possible.
  17. Added a "watchdog" thread to minimize probability of system hang
  18. Infra for setuid operation: 1) POSIX capabilities 2) Drop root uid. This needs checking and refinement.
  19. Minor tweaks to EQ guis

Version 0.0.3 -> 0.0.4 (released 2/8/2000)

  1. Bug fixes as usual
  2. DSP API modifications - less virtual methods ( -> smaller binaries). Added a custom memory allocator - hopefully it helps.
  3. Undo API enhancements - single-object multiparameter undo now works (this means that a single undo-action can undo many parameter changes at once)
  4. Duplex audio starts to work properly
  5. Made a GUI for controlling latency requirements
  6. Important GUI fixes to the mixer plugin - more features, less complexity, slightly better looks, less chances to accidentally mess up the mixer, new geometry manager
  7. Created a multi-band parametric and a graphical EQs. The GUIs and algorithms needs more tuning tough.
  8. Created a simple compressor plugin
  9. The single-band parameteric EQ now has a lot better UI - one can drag the graph directly rather than using the clumsy sliders
  10. Changed the remaining integer ids to string ids
  11. DSP and GUI API cleanups - less methods, less code, lower memory footprint (hopefully), same functionality - now ready for version 0.1
  12. New auxiliary library mjutils - contains classes for quick 2D visualizations.
  13. Minor usability tweaks (most of the GUI is still horrible)
  14. Non-linear sliders now exist and work
  15. Added load meter and audio buffer meter to play-control window
  16. Minor additions to low-level DSP library (more filter design methods)
  17. Removed all remaining references to "iostream.h" in libmj*

Version 0.0.2 -> 0.0.3 (released 20/6/2000)

Still plagued by the desire to add features and improve APIs. Should really polish and stabilize code and plugins.
  1. Native ALSA support via improvevements to divaio library
  2. A bit better performance via "Vector Mathematics Library" (VML) on x86/3dnow platforms
  3. Custom widgets (level display etc) and gui utilities moved to separate nearly-standalone library "mjwidgets". Still relies on MJ_Array (found under mj) in one case...
  4. Works with both Qt2.0 and Qt2.1 (NOT with Qt 1.xx)
  5. Number of bug fixes
  6. Some clicks removed (volume, pan)
  7. Autodetect audio system configuration on IRIX in src/plugins/divaio/mj_divaio_irix_support.C
  8. Fixed a naming typo in MJ_ParameterNuneric
  9. Improved documentation, both in WWW and in the API docs. Also some FAQs
  10. New GUI feature: Now the module header labels are clickable. They used to be underlined and I always wanted to click on them (like web browsing). Now the result is what one expects. Relies on the parent-gui - only works currently within the mixer plugin.
  11. Minor development environment improvements

Version 0.0.1 -> 0.0.2 (released 5/2000)

Fair amount of progress. API and ABI changes and additions. No new fundamental features tough.
  1. Number of bug fixes
  2. Changed number of identifiers (messages, modules) from "int" to "char *". This should make things much more flexible and eventually enable OSC-like message addressing (if it already does not). Probably created lots of new bugs. Also caused new virtual methods to appear....
  3. Basic support for text-mode user interface (may be broken again tough)
  4. Added memory debugging facilities for the most problematic classes (MJ_Message, MJ_MessageId, MJ_Parameter)
  5. Switched documentation system from Doc++ to Doxygen. Now the html documents tell whether function is inline, virtual, protected or what
  6. New plugins: parametric EQ, oscillator.
  7. The home-page now has link to "Virtual Reality Assembler"
  8. Fixed some plugins so changing parameter values in real time does not cause clicks in the output (=interpolate everything). This should be done to all plugins...
  9. Restructured the code tree. Now low-level DSP classes have their own library

Version 0.0.1 (released 3/2000)

The first release
  1. Plugin system
  2. Internationalization
  3. Real-time operation
  4. Threading
  5. Signal and event processing (audio, MIDI etc)
  6. Automatical GUI generation
  7. Collection of plugins

Tommi Ilmonen.at.hut.fi