stm.modular

stm.modular is a real-time algorithmic composition instrument with a modular architecture that emphasizes the generation of multiple layers of data structure as controllers for all possible parameters of DSP or data-engines. It allows for a sophisticated and precise control of all the levels of sound production and compositional structure.
The different modules are loaded through the server, which is based on a modified ver sion of the open-source lloopp server by Klaus Filip that has been redesigned with an algorithmic approach in order to support list and matrix operations. The modularity of the design extends from the use of a server/client paradigm to the utilization of the same abstractions and Graphical User Interface blocks within the different modules. Such blocks are used for controlling and randomizing parameters, defining distributions (for modules with multiple processors), setting audio inputs and outputs, crossfading lists and storing and retrieving presets.
stm.modular is a program under continuous development. This current version of the software is designed for personal use by its author. A new optimized version for Max/MSP/Jitter 4.6 is underway, taking full advantage of the improvements in the latest version of the programming language. This includes the refinement of the overall architecture, the use of JAVA for data manipulation, the addition of new features and of several new data, audio and video modules and OSC and networking support.
The last fully functional version of stm.modular 0.9 ran on Max/MSP/Jitter 4.3. on PowerPC Apple Macintosh Computers (osx 10.2 or higher). The following, updated and enhanced version for Max/MSP/Jitter 4.5 was never finished, as I stopped using Max for my projects in 2008.

1. Hosts
  • stm.host:     Main server; central module responsible for all communication within the environment
  • buffer_host:     Main server for loading soundfiles
2. Data generation
  • stm.FuncGen:    Algorithmic function generation and manipulation for lists
  • stm.Linden:    Implements Lindenmayer systems and cellular automata
  • stm.GA:     Implements evolutionary computation for lists, matrices and symbols
  • stm.ipeek:     Translation of lists to buffers with interpolation
3. Data streaming
  • stm.LSE:     List generation, manipulation and sequencing; works with stm.LSP
  • stm.LSP:    Sequencing module and list manipulation; works autonomously and with stm.LSE
  • stm.interp:     Micro-sequencer; interpolates algorithmically between two successive incoming values
  • stm.Lmap:     Multiple macro-sequencer for synchronizing long sequences
4. Data mapping
  • stm.tune:     Linear, non-linear and stochastic mapping of values
  • slave.stm:     Scales and links any parameter to a number of other parameters
5. MIDI
  • ctlin.stm:     Controls any parameter in the environment via MIDI
  • stm.ctlout:     Sends controller values through MIDI
  • stm.WaldorfPulse:     Control interface for the Waldorf Pulse analog synthesizer
6. Control signals
  • stm.Clock:     Synchronization module for data and control signals within the environment and
  • externally through MIDI
  • stm.ClockLight:     Simpler version of the stm.Clock module
  • stm.adsr:     Simple ADSR module with trigger and gate inputs
7. Audio Utilities
  • stm.bp:     Buffer patch bay or sound bank; buffers loaded in the buffer_host are distributed through different instances of this module
  • stm.buffub:     Records incoming audio
8. Audio analysis
  • stm.analyzer:     Feature extraction of incoming audio for pitch, loudness, timing, noisiness and brightness in the micro-, note, and meso- level
  • stm.pfollow:     Envelope follower and audio triggering module
  • stm.noisiness:     Analyzes the noisiness of an incoming audio signal
9. Audio generation
  • stm.LGran:     Controlled granular synthesis with different modes; allows global and individual controls for each granulator
  • stm.Bufosc:     Two-dimensional wavetable oscillator with control-rate waveshaping
  • stm.Groover:     Simple soundfile playback module
  • stm.mp3:     Simple mp3 playback module with a playlist
10. Audio filtering
  • stm.FFT:     FFT module with several modes; implements algorithmic FFT resynthesis, de-noising, vocoding, convolution and cross-synthesis
  • stm.comb:     Comb filtering module; allows global and individual controls for each filter
  • stm.harm:     Harmonizer module; allows global and individual controls for each filter
  • stm.Delay:     Multitap delay module; central and individual control for each delay
  • stm.rm:     Ring modulator, with dynamic waveforms
  • stm.FIR:     Equalizer based on a Finite Impulse Response filter
  • stm.svf:     State Variable Filter

Apart from these modules, patches from the original lloopp distribution can also be used in the environment.