Welcome to SoundHelix!
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.
- produces enjoyable non-esoteric algorithmic random music
- uses randomness as a source of surprise
- platform independent - runs on any platform that supports Java
- can generate full songs within a couple of milliseconds
- fully configurable using XML
- supports function expansion, e.g., Euclidean rhythms
- can be used
- as a standalone Java application
- as a JNLP-based applet
- as an applet embedded into a webpage
- within third-party Java software (e.g., as in-game music) via the SoundHelix API
- includes an integrated custom MIDI player, which
- can remote-control any number of MIDI devices in parallel with up to 16 MIDI channels each
- supports any number of synchronized LFOs for slowly changing MIDI parameters (modulation wheel, pitch bend, etc.)
- supports sending MIDI timing ticks to selected MIDI devices (for time-critical effects like echo)
- supports configurable non-uniform timing (groove patterns)
- supports milli-BPM playing speed resolution
- allows saving generated songs in MIDI (.mid) format
- can be extended easily by providing additional implementations for the defined interfaces
SoundHelix has left its experimental state. It already produces fancy tunes and can be used for quite complex music. Be aware, however, that things like the XML format and parts of the API might change drastically in the future. If you like SoundHelix, don't forget to click on the "I like" button in the "Resources" block on the left and consider making a donation. Feel free to comment on all documentation pages and FAQs!
Questions? Bugs? Feature requests? Visit the SoundHelix Support Forum!
Project development statistics provided by Open HUB: