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.
jm-Etude
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/
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.
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.
Download
a copy now, or see the source
code.
This
application is a collection of Java programs by Paul Reiners
that
convert cellular automata into melodies.

Vist
the application's web
site to download and read the article
at IBM on the software.
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.
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.

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.
|