Downloads

jMusic Home Page

Tutorial

Applications

(Programs written using jMusic)

CodeSounding

CodeSounding is a Java sonification library built using jMusic. With it you can produce computer-generated music from your source code. The sonification process consists of a post-processing operation on source files, which adds callback methods on "if", "for", and other statements, in a process that is called token stream rewriting. Callbacks are structured around the Template design pattern so the real sonification algorithm is interchangeable and configured at runtime. Sonification is therefore based not on the static source code structure but on the dynamic behaviour during code execution.

Code parsing in CodeSounding has been developed using the ANTLR parser, and music is generated using the ABC language/notation (see Guido Gonzato's and Chris Walshaw's sites) with either the jMusic library or the JACK audio server for audio rendering. There is a YouTube video deomstration availible here.



Red Wine Music

Red Wine Music is a Web-based music composition environment for people who want to create music through computer interaction and learn the basics of enology (winemaking).

It is intended for all computer users regardless of age and professional background. It is a software program that promotes deterministic, algorithmic music composition and is an alternative to proprietary software tools in the same domain.

RWM is a project initiated by Malisa Santigul with programming help from Somkiat Puisungnoen and Praween Kuvanonda of Infomania Thailand. It is written in Java with the integration of jMusic. RWM is free and does not require any download or installation. It is compliant with most Web browsers.

A musical exmaple generated by RWM.


Perfect Ear: the aural training companion

This program was developed for by Suzanne Morton for her final year of Computing at Imperial College London. It aims to provide music students with a tool to practise aural skills without the help of a teacher. It covers simple interval, cadence, time signature and chord position recognition. It has rhythm exercises where the user plays the rhythm back on the keyboard and an incorrect note test where a user listens to a phrase and corrects the score. A terminology quiz is included to test knowledge of Italian musical terms. The program can randomly generate an 8 chord musical phrase each time it is needed.

Perfect ear screen shot


jm-Etude

jm-etude-logo
jMusic has a wrapper for the Processing environment called jm-Etude written by Daniel Dihardja. This allows some of the jMusic functionality to be used within Processing which is an environment designed for generative visual art.

Here are some news items about jm-Etude.

http://workshop.evolutionzone.com/    (13 june 2006)
http://createdigitalmusic.com/2006/06/13/composer-friendly-library-for-java-free-processing-environment/

Melody Generation using genetic algorithms

Participate in the aesthetic selection of melodies to help the research of Mr. Lo Man Yat at the Univerity of Essex in the UK, or simply listen back to the melodies generated with his application using jMusic. Here is the site.

MIDI to Text converter

The Midi2Text program creates a text file from the data in a MIDI file. Each note's start time, pitch, duration and dynamics are stored in atab-delimited text file. The text file can then be read into other applications, such as a spreadsheet, for data analysis or further processing.

The Midi2Text program was written to assist statistical analysis of music by Andrew R. Brown.

screen shot

Download the application and get the source code here.

Music Histogram

A program by Andrew R. Brown that shows graphical views of the data from a MIDI file. The program will show pitch, duaration, dynamic, and pan statististcs.
Pitch Histogram View

Download a copy now, or see the source code.


Automatous Monk

This application is a collection of Java programs by Paul Reiners that convert cellular automata into melodies.

CA monk     CA visual example
Vist the application's  web site to download and read the article at IBM on the software.


MIDI Messer

This application messes with MIDI files. Open a file, choose the type of process to apply and an input value, listen to the change, then save the modified MIDI file. Created by Andrew Brown, this application exposes some of jMusic's Mod class methods with an easy to use interface.

MIDI Messer screen shot
Download the application and/or the source.


JScore

Jscore is a program that uses JMusic and JLex (lexical analyzer generator) to convert a XML-based score into a MIDI file. Source code and instructions (in Italian) are at the site. JScore was written by Roberto Bertaccini.

 


NIAM

This application, written by Andrew R. Brown, allows the user to composer music made up of cyclic patterns. Musical attributes can be treated separately and cycled in or out of phase. A number of parts can be overlaid to form a complex texture.

NIAM is an acronym for N Is After M, in homage the the conceptual debt that this program owes to David Zicarelli's M software on the Macintosh.

NAIM
Download the application or the source code. Here is an older version that uses QuickTime rather than JavaSound for playback.


Phrase Analysis

This application, written by Adam Kirby, does statistical analysis on a jMusic phrase. It reads phrases as saved in MIDI files or jm score files. The appropriate key and mode can be selected so that stats on melodies in different keys can be compared. The results for individual files can be viewed in the application, or all currently analysed melodies can be exported to a tab delimited text file for viewing in a spreadsheets or other stats package.

Details of the feature analysis can be found in the jMusic documentation for this class (and supporting classes) or in published papers on the research which used this application.

The supporting classes (in the jm/tools/) directory may be useful for the construction of other analysis applications built in jMusic. Thanks Adam!


Music Theory Environment

This program, written by Jerry K, provides a computer environment which facilitates the finding of musical patterns and relationships between chords, scales, intervals, keys.

Check it out at: http://mte.sourceforge.net/


Melodic Extension

This application, written by Andrew Brown and Adam Kirby, allows a user to write a melody on the top stave and for the computer to suggest a possible extension to the melody on the lower stave. This is designed to provide support and inspiration to those learning the art of melody writing. The application provides suggestions based on statistical analysis of many 'classical' melodies and various genetic algorithm (GA) processes to select 'good' suggestions. Significant conceptual assistance was provided by Michael Towsey. Read about the research surrounding this in our published papers.


LEMu (Live Electronic Music)




(50% size)

This application, written by Rene Wooller, Nick Coleman and Andrew Brown, generates music which is played back via MIDI in real time. LEMu is designed for live performance where the operator makes changes to the intensity and mix of drum, bass, chordal, and lead parts. It has been common in LEMu performances for other live players to play along as well.

LEMu is based on generating short (1 - 4 beat) scores which are looped for playback and updated each time the 'compose' button is clicked. The generative processes by which the music is created were designed by Rene and Nick who are undergraduate music students at QUT and created this application after just 8 months of jMusic/Java study.

Hear examples of LEMu performances on the music page. Vist Rene's LEMu web site for the latest developments.


Band Machine

A automatic music generator - not unlike Band-In-A-Box - written by Andrew Troedson. See the scource code and explanation in the Band Machine tutorial.


Supported by the following organisations:

QUT, Brisbane, Australia

SourceForge Logo