Jamoma 0.4.5
Jamoma 0.4.5 has been released. This includes numerous bug fixes done in the last 6 months or so after the transition from 0.300 to 0.400 as well as lots of new stuff added during a very productive developer workshop at IMAL in Brussels last week.
Below is a collected change log from version 0.4.2 to Version 0.4.5 (17 December 2007 – rev 2772).
- FunctionLib: a new library of mathematical functions that are accessible throughout the Jamoma system. A new jcom.map object uses this functionality to create a sort-of “super scale object” swiss-army-knife for patching. The functions are also used by jcom.ramp and jcom.message/jcom.parameter’s ramping.
- RampLib: the ramp library has been re-written so that the shape of the ramp is function from the FunctionLib as defined by the user. The RampUnit then defines the mechanism for driving ramps. In addition to scheduler-based and queue-based RampUnits we also created an async unit which is particularly well-suited to Jitter modules.
- DataspaceLib: A new library that will eventually be integrated into the rest of Jamoma (currently only used by the new jcom.dataspace external). This is not yet implemented in parameters and messages but we have a working prototype. It allows to say that a parameter or message belongs to a dataspace such as ‘gain’ and then that parameter or message will be able to handle input values in various formats (e.g. decibels midi linear etc.).
- Refining the OpenSoundControl namespace. In general we are making the namespace more consistent and rational. We also discussed a variety of issues in terms of OSC syntax and began preparing some papers on the subject. Of particular focus is the use in Jamoma of the ‘:’ character to denote that we are addressing the metadata of a node instead of the node value itself.
- Interpolation between presets in each module. Also a variety of other features and improvements to the preset system.
- Implemented setting and getting parameters of attributes of parameters (for example: the power parameter of the ramp/function attribute of the bitdepth module-parameter).
- Lots of bug fixes (and probably the introduction of some new bugs too -)
- New ‘Oblique Strategies’ component to help with decision making when working on patches.
- New Modules:
- jmod.vst~: a module for VST effects / instruments
- jmod.tremolo~: stereo tremolo module with phase offset between channels
- jmod.condition: module for signal conditioning
- jmod.bcf2000: module for interfacing with the Behringer BCF2000 MIDI fader
- jmod.continuum: module for interfacing with the Haken Continuum fingerboard
- jmod.cue_trigger: an interface for triggering cues from jmod.cuescript
- jmod.uc-33: module for interfacing with Edirol UC-33 MIDI fader
- jmod.wi-microdig: module for working with the wi-microdig
- jmod.background%: background subtraction video module
- jmod.gl.alphamixer%: OpenGL module using a slab to mix four video streams with alpha channels
- jmod.gl.edgeblend%: OpenGL module using a slab to perform edge blending with alpha channel
- jmod.gl.text2d%: OpenGL module for 2D text
- jmod.gl.td.rota%: OpenGL slab based rotation and repositioning
- jmod.movie_player%: QuickTime movie player with additional control parameters and external clocking
- jmod.vst~: a module for VST effects / instruments
- Module Bug Fixes and Updates:
- surround modules such as jmod.sur.ambi.decode~ now accept up to 32 channels
- jmod.oscnet no longer causes a stack overflow and reliability has been enhanced
- jmod.file_browser now lets you change the folder displayed with a /folder message
- jmod.cont_mapper has been updated for the new core and now works
- jmod.mapper update button now works correctly
- jmod.fluoride% allows you to control the saturation now
- jmod.gl.videoplane% now works again
- jmod.motion%.mxt now draws a windowed contraction box around the motion image
- surround modules such as jmod.sur.ambi.decode~ now accept up to 32 channels
- New Components:
- jcom.send~: send audio to a named module without patch cords
- jcom.receive~: receive audio from a named module without patch cords
- jcom.metro: a metro that doesn’t drift
- jcom.phasor~: a phasor that doesn’t drift
- jcom.aed2xyz and jcom.xyz2aed convert between Cartesian and spherical coordinates according to SpatDIF
conventions
- jcom.map: component for mapping x to y using various different functions (linear tanh cos)
- jcom.mkdir: component for making directories on the hard disk
- jcom.stats: calculates running statistical values: minimum maximum mean standard deviation similar to lp.stacey
from the Litter power package. Statistics can be windowed or run ad infinitum.
- jcom.send~: send audio to a named module without patch cords
- Core Bug Fixes and improvements:
- reorganized folder structure all modules are self contained in their own folder including help file preset file etc.
- common code moved to it’s own library
- Windows externals are now built using GCC under cygwin
- modules are now maintained and looked up by storing their OSC name in a hash table (faster!)
- /preset/store with no arguments now resaves the current settings as the last selected preset
- added a /preset/copy
- fixed memory leak in jcom.hub
- optional arguments to inc and dec methods /degrade~/bitdepth:+ 4 will no increment by 4
- jcom.parameter performance enhancements particularly when working with lists
- ramping with lists now works
- reorganized folder structure all modules are self contained in their own folder including help file preset file etc.
- Other Improvements:
- jmod.autosize%: adding argument to specify height or width
- fixed multiple video modules so that they can work with any matrix size
- jmod.autosize%: adding argument to specify height or width