SoundHelix 0.8

SoundHelix is a free, versatile and flexible Java framework for composing and playing algorithmic random music based on constrained random generation (CRG). SoundHelix is an algorithmic random music generator (including a built-in MIDI sequencer) which can play generated songs on MIDI devices in real-time. It can also write the generated songs as MIDI files.

Tags java music midi
License GNU GPLv3
State stable

Recent Releases

0.829 Apr 2015 10:47 major feature: 0.8: 2015-04-28 - Added support for conditional LFOs in the DrumSequenceEngine and the MidiPlayer. Similar to conditional patterns, a condition can now trigger the usage of an LFO for creating an LFO sequence, which can be used in the MidiPlayer for remote-controlling MIDI controllers. In the DrumSequenceEngine, a conditional LFO can be configured via the "conditionalLFO" tag, which can be mapped to a MIDI controller in the MidiPlayer via the "instrumentControllerLFO" tag. - Added support for velocity scaling in each track in the SimpleArrangementEngine via the new tag "velocity". Each track's note velocity is scaled by a factor of the given velocity divided by the song's maximum velocity. For example, if the song's maximum velocity is 1000 and you specify 500 in this tag, all velocities of all the track's sequences are halved. - Added support for providing a ticks-per-beat value per pattern. If the actual ticks per beat of the song is different (but compatible) all note/pause lengths of the pattern are scaled accordingly. For example, you can have a song with a ticks-per-beat value of 12 and provide some patterns with a ticks-per-beat value of 4, which will then be scaled length-wise by a factor of 3. The ticks per beat can be specified per pattern in the StringPatternEngine and in the CrescendoPatternEngine (using the attribute "ticksPerBeat") and per pattern engine in the RandomPatternEngine and RandomFragmentPatternEngine using the tag "ticksPerBeat". These new attributes/tags are optional. If they are not provided, no length scaling is performed. - Added support for soloing and muting individual tracks via the track tag's attributes "solo" and "mute". If at least one track uses solo="true", the song is generated only with the soloed tracks. Otherwise, all tracks which do not have mute="true" are used. In any case, all unused ActivityVectors are ignored when the song's ac