Skip to content

Releases: DYCI2/Somax2

Somax v2.6.1

29 May 13:13
Compare
Choose a tag to compare

This release contains a number of small but important fixes related to real-time corpus recording:

  • Recording Latency Correction: The somax.audiorecord object will now automatically adjust the recorded slices based on the latency of the associated audioinfluencer in order to achieve better segmentation. This parameter can be controlled in the corpus recording settings
  • Audiorecord Sample Rate Mismatch: The somax.audiorecord object now provides explicit warnings when the user tries to record into an existing corpus based on an audio file with a different sample rate than Max's. This release also fixes a number of bugs related to issues with underlying buffer sample rates. See the "sample rate mismatch" tab of the somax.audiorecord maxhelp.
  • Real-time Corpus Reloading: When using multiple record-enabled players, it's now possible to load a corpus into either of the players without causing audio glitches or interrupts to the other players while loading.
  • "Script your Environment" Tutorial: A new tutorial on preparing your Somax2 environment and controlling the parameters of any .app-object using scripting messages has been added.
  • Various Bug Fixes: A number of bug fixes and clarifications have been added, as well as documentation updates.

Somax v2.6.0

18 Mar 10:24
Compare
Choose a tag to compare

New Features

  • Real-time Corpus Recording: A new object somax.audiorecord (and corresponding GUI object somax.audiorecord.ui) has been added, which allows recording new audio corpora directly (and in real-time) into a somax.player. This module also allows extending existing audio corpora by recording new material. The module is by default integrated in the somax.player.app. In addition, there's a new tutorial on real-time corpus recording. See the somax.audiorecord maxhelp for more details.
  • Corpus Region Filter: A new object somax.regions has been added, which gives more detailed control over the different regions of the corpus. It's now possible to inidividually control up to 6 regions of the corpus, and the regions can be set exactly by time, in addition to relative proportion of the corpus. See the somax.regions maxhelp for more details.
  • Beat Alignment: The somax.player's algorithm for beat (phase) alignment has been rewritten to be able to more strictly adapt to an external or internal beat, and a number of new parameters for more precise control of the beat alignment have been added.
  • Windows Compatibility: Somax is now available on Windows! Download the Somax-2.6.0-win64.zip file below and follow the installation procedure in the readme.
  • Apple Silicon Compatibility: For Mac users, all externals have been updated to universal binaries, running on both Intel and ARM-based machines. Therefore, it's no longer necessary to run Somax under rosetta on ARM-based machines.
  • Various Bug Fixes: A number of bug fixes and clarifications have been added, as well as documentation updates.

Breaking Changes

  • The message tabooenabled has been removed. Setting taboo to a nonzero value will automatically enable it and 0 will disable it (the corresponding message for this is tabooduration, which has not changed).
  • The old region mask (corresponding to messages regionmask and regionmaskenable) has been extracted from the player into a separate object somax.regions. See the maxhelp of somax.regions on how to adapt old messages to existing patches.

Somax v2.5.0

29 Mar 11:35
Compare
Choose a tag to compare

Object Redesign & Modularization

All of the main objects have been completely redesigned. There are now three different versions of the main objects:

  • somax.<object>, the base object designed for Max programmers who want to create their own interface or strategy of interaction
  • somax.<object>.ui, which has the same API as the somax.<object> but comes with a pre-designed UI
  • somax.<object>.app, "application style" objects for users who want to use Somax without having to do any Max programming

This change applies to the following objects: somax.player, somax.server, somax.audioinfluencer and somax.midiinfluencer.

In addition, a number of features that previously were encapsulated inside the main objects has now been modularized into separate objects, for example somax.audiorenderer, somax.midirenderer, somax.audiocorpusbuilder, somax.midicorpusbuilder, etc.

New & Updated Documentation

The documentation has been updated for the entire package. This includes:

  • A new, comprehensive user's guide for the Somax package
  • New maxhelps and reference pages for all of the base objects
  • Updated maxhelps for all of the app objects
  • 7 new step-by-step tutorials for Max programmers
  • 3 performance strategies for different ways of using Somax
  • 4 templates to quickly start using Somax
  • A package overview for easy access in Max

Somax v2.4.1

25 Jan 14:07
Compare
Choose a tag to compare

New Features

  • Time Stretch: The playback speed of the player can now be controlled individually for each player, either in relation to the global tempo controlled by the server or in relation to the player's internal tempo determined by the corpus. This applies to both MIDI and audio corpora
  • Manual segmentation & Corpus Management: A number of new modules have been added to improve the workflow when building an audio corpus. It's now possible to build a corpus from a custom segmentation defined by the user. A number of tools to export the segmentation of an already existing corpus as well as re-locate missing or moved audio files have also been added
  • Time Control: Several new settings have been introduced to give a higher degree of control over how events are played over time. Among these are:
    • Cut mid-event: This option determines whether the player should interrupt an ongoing event if a new trigger arrives before the previous one was completed
    • Timeout: Controls for how long the player should continue playing if no new triggers arrive
    • Timeout behaviour: Controls whether the player should jump or play linearly during the timeout phase
    • MIDI Reactive Mode: Determines whether the player should sustain the note until the next trigger (i.e. play "note by note") or continue playing when a MIDI corpus is loaded
    • A number of new options were added for controlling how MIDI onsets and durations should be handled. These are available in the MIDI Settings window of the player
  • Region Mask: It's now possible to select only a portion of the corpus to generate output from
  • Output Probability: This option conditions the output of each event with a probability so that not all events are rendered
  • Sparse & Quality: A new option «Sparse» has been added, which controls whether the player will generate output if it doesn't find any matches. This was previously controlled by the «Quality» parameter, where a non-zero value filter all peaks below the threshold and prevent any output if no peaks were above the threshold. The new «Quality» parameter will only filter peaks below the given threshold, so in order to achieve the old «Quality» behaviour, make sure to enable «Sparse» too! But the new «Sparse» can also be used without using the «Quality» parameter
  • Taboo: A new concept, «taboo», has been introduced, which will block out any event fulfilling certain conditions, placing them in a category of last resort options that only will be output if there really are no other events are available. A number of parameters uses this concept, for example the «Region Mask» (where any event outside the defined region will be considered taboo). The option «Enforce Taboo» can be used to ensure that taboo events are never played, even as a last resort.
  • UI Updates: A number of minor changes have been to the user interface:
    • The «Server» module has been redesigned to clarify the relationship between tempo sources and the beat tracker
    • The MIDI-specific and audio-specific settings of the player have been moved to separate windows available from the full player interface
    • The main/compact player interface now contains clearer state indicators for the timeout and output generation
  • Various Bug Fixes: A number of bug fixes and clarifications have been added, as well as documentation updates

Somax v2.4.1-beta.6

20 Dec 15:30
Compare
Choose a tag to compare
Somax v2.4.1-beta.6 Pre-release
Pre-release

THIS IS A BETA RELEASE! This release contains a number of new features and improvements, but the new features are experimental to some extent. The latest stable (non-beta) release can be found here!

New Features

  • Time Stretch: The playback speed of the player can now be controlled individually for each player, either in relation to the global tempo controlled by the server or in relation to the player's internal tempo determined by the corpus. This applies to both MIDI and audio corpora
  • Manual segmentation & Corpus Management: A number of new modules have been added to improve the workflow when building an audio corpus. It's now possible to build a corpus from a custom segmentation defined by the user. A number of tools to export the segmentation of an already existing corpus as well as re-locate missing or moved audio files have also been added
  • Time Control: Several new settings have been introduced to give a higher degree of control over how events are played over time. Among these are:
    • Cut mid-event: This option determines whether the player should interrupt an ongoing event if a new trigger arrives before the previous one was completed
    • Timeout: Controls for how long the player should continue playing if no new triggers arrive
    • Timeout behaviour: Controls whether the player should jump or play linearly during the timeout phase
    • MIDI Reactive Mode: Determines whether the player should sustain the note until the next trigger (i.e. play "note by note") or continue playing when a MIDI corpus is loaded
    • A number of new options were added for controlling how MIDI onsets and durations should be handled. These are available in the MIDI Settings window of the player
  • Region Mask: It's now possible to select only a portion of the corpus to generate output from
  • Output Probability: This option conditions the output of each event with a probability so that not all events are rendered
  • Sparse & Quality: A new option «Sparse» has been added, which controls whether the player will generate output if it doesn't find any matches. This was previously controlled by the «Quality» parameter, where a non-zero value filter all peaks below the threshold and prevent any output if no peaks were above the threshold. The new «Quality» parameter will only filter peaks below the given threshold, so in order to achieve the old «Quality» behaviour, make sure to enable «Sparse» too! But the new «Sparse» can also be used without using the «Quality» parameter
  • Taboo: A new concept, «taboo», has been introduced, which will block out any event fulfilling certain conditions, placing them in a category of last resort options that only will be output if there really are no other events are available. A number of parameters uses this concept, for example the «Region Mask» (where any event outside the defined region will be considered taboo). The option «Enforce Taboo» can be used to ensure that taboo events are never played, even as a last resort.
  • UI Updates: A number of minor changes have been to the user interface:
    • The «Server» module has been redesigned to clarify the relationship between tempo sources and the beat tracker
    • The MIDI-specific and audio-specific settings of the player have been moved to separate windows available from the full player interface
    • The main/compact player interface now contains clearer state indicators for the timeout and output generation
  • Various Bug Fixes: A number of bug fixes and clarifications have been added, as well as documentation updates

Somax v2.4.1-beta.3

08 Jul 08:42
Compare
Choose a tag to compare
Somax v2.4.1-beta.3 Pre-release
Pre-release

THIS IS A BETA RELEASE! This release contains a number of new features and improvements, but the new features are experimental to some extent and may not be fully documented. The latest stable (non-beta) release can be found here

New Features

  • Relocate Audio Corpus: A new module was added to relocate the audio file of a previously constructed audio corpus, when the source audio file has been moved. This module can be found inside the Audio Corpus Builder
  • MIDI Onsets/Durations: A number of options were added to provide the user with further control over how slices are performed in relation to the original onsets and durations of notes in MIDI corpora, as well as how notes are sustained over several slices
  • Timeout: A timeout was added to Reactive mode so that notes won't be sustained indefinitely if no further notes are played
  • Cut: A new option «Cut» was added to the Reactive mode of the player. When Cut is on, the player will jump while in the middle of playing a slice when a new influence is received. If cut is disabled, it won't react to the influence until the slice has finished playing.
  • Time Stretch: It's now possible to manually change the tempo / time stretch factor of individual players for both MIDI and audio.

Misc Changes

  • When loading an audio corpus, the player will now look for the source audio file inside the corpus folder, if it's not able to find it in its original location
  • Fixed a bug where «Minimum Segment Duration» was not taken into account when building an audio corpus
  • Fixed a rare crash where building audio corpora
  • Fixed an extremely rare crash

Somax v2.4.0

22 Mar 08:27
Compare
Choose a tag to compare

Main Features

  • Audio corpus support: It's now possible to build corpora from audio files and thereby to use audio content as output from the Somax players. This includes a number of new modules:
    • An audio corpus builder, located in the «Server» module, for building audio corpora
    • New interfaces in the «Player» module to control rendering and playback of audio corpora. The same patches can be used for either MIDI or audio, the interface will adapt accordingly
    • A new documentation (maxhelp) explaining all the aspects of audio corpus building in the «Server» and audio playback in the «Player»
    • A new tutorial explaining how to work with audio in Somax step by step

Minor Improvements

  • It's now possible to build a MIDI corpus from a folder of MIDI files
  • Spaces in filenames (and filepaths) when building a corpus is once again supported
  • It's now possible to set the corpus path to a custom location, to be able to separate different projects from each other
  • Significantly reduced the file size of MIDI corpora
  • Updated documentation for building MIDI corpora
  • Added visual indicators when building and loading corpora
  • Improved visualization of state (number of peaks and their corresponding score) in the «Player»
  • Added an onset limiter to the «Audio Influencer» module
  • Slightly remodelled the «Player» interface to fit screens with lower resolution (down to 1280 x 800)

Somax v2.3.2

02 Jun 15:42
Compare
Choose a tag to compare

Changelog:

  • Fixed compatibility issues for High Sierra and Mojave
  • Greatly improved server startup time
  • Removed dependency: CNMAT Externals
  • Minor bug fixes

Somax v2.3.1

30 Apr 14:43
Compare
Choose a tag to compare

Changelog:

  • This version includes a compiled version of the Somax python application so that no python installation will be required
  • Provided code signature for standalone and relevant externals
  • Minor bug fixes

Somax v2.3.0

24 Mar 13:41
Compare
Choose a tag to compare

Changelog:

Main Features:

  • Multiple players: This version incorporates a number of improvements to facilitate working with multiple players in somax. For example:
    • Wireless receiving and sending influences between influencers and players to allow dynamic creation of players
    • Improved interface for dynamically routing influences during runtime
    • Multithreaded implementation where each player exists in its own thread to increase performance when using multiple players
  • Recording performances: A number of new features for recording and exporting the output from players have been added
  • Saving parameters: It is now possible to save the settings/parameters in all players between sessions

Minor Improvements:

  • It is now possible to bypass the "echoic memory" behaviour when constructing the corpus (new default behaviour)
  • Parametric control of chroma decay/filtering parameter has been added
  • All players and influencers now properly flush affected MIDI channels when altering settings
  • The scheduler can now operate in 'slave mode' to allow the user to select its own transport (max internal transport, daw, rewire, etc.)
  • The user can now select which python interpreter to use when launching the server (default, standalone, conda environements)
  • A number of experimental features have been added for controlling the output of the player
  • Improved documentation
  • Various UI improvements
  • A number of minor bugfixes