What is MusicString?

MusicString is a programming language for writing simple tones and music using just a few ASCII characters, allowing easy sharing of such tunes via text-based media like webpages, forums, micro blogging services (e.g. Twitter), IRC chats or Instant Messaging. The goal is to provide a simple way to write music and tunes with as few characters as possible, while keeping the syntax simple and straightforward.

What can it do?

Tunes and music are written as series of tones that are played in a sequence. Each tone is expressed with a single letter from the English alphabet, where each letter produces different frequency (pitch). MusicString is capable of playing theoretically unlimited number of channels at the same time, allowing creating chords or using several instruments at once.

Composer can choose from several instruments, where default set is composed from several basic soundwaves (sine, square, triangle, sawtooth, pluck and noise), however with use of soundfonts, it’s possible to extend MusicString with any instrument/sound and combine them thanks to the ability to use virtually unlimited number of soundfonts at once.

Apart from pitch and instruments, it’s also possible to change duration, volume and volume envelope (constant, fade in, fade out) of each tone. Language also provides constructs for reusing and repeating parts of the sequence and more advanced features like conditional execution.

Available software – how to use it?

There are several ways to create tunes with MusicString, although not all of them are currently implemented. Just head to the downloads section and get the software as well as documentation. Currently, you can use following software:

MusicString CLI compiler

Writing a MusicString program with this compiler is as simple as typing it in a plaintext file and then feeing it to the commandline compiler, which will produce a soundfile that can be played in regular audio players. The MusicString CLI compiler is always the most up-to-date version that supports the latest MusicString specification.

Visual MusicString

An official MusicString IDE! This tools is designed to aid you with the development of MusicString tunes as well as playing them. Check out the alpha preview version in the Downloads section!

Alpha warning

MusicString is currently in alpha stage, which means that new features are rapidly implemented and existing ones can be removed or changed significantly, which means that songs you create now might stop working correctly and are going to need changes in order to work properly again. However, any testing, feedback and creations are highly appreciated and will help the project to get to more stable phase, were no such changes will be done, that would break compatibility.

Upcoming features

Following list contains yet-to-be implemented or documented features, planned for the MusicString projects. • SoundFont support • Vibrato • Conditional execution • Volume and instrument normalization • MusicString visual player • Web browser support • Compiler settings • Setting note length by ratio