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, e.g., for using or post-processing them in third-party MIDI software.

SoundHelix is open-source software and is licensed under the GNU General Public License v3. The project is hosted on SourceForge.

New Have you tried the Amazon Alexa skill for SoundHelix? The Alexa skill is available in English (UK and US) and German. Just search for the skill "SoundHelix" in your Alexa app. "Alexa, start SoundHelix and play a song." or "Alexa, play songs by SoundHelix.".

Features:

produces enjoyable non-esoteric algorithmic random music

supports instant remixing by using a different random seed

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 conditional note patterns and conditional LFO actions 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!

Check out the audio examples for example results generated with SoundHelix. You can also play around with SoundHelix in real-time by using the SoundHelix applet.

You can follow SoundHelix on Facebook, Twitter and SoundCloud.

Questions? Bugs? Feature requests? Visit the SoundHelix Support Forum!





Development statistics