Applications
(Programs written using
jMusic)
ChordATune –
Ia an Emotion Based Melody Harmonizer for Piano
Music, developed by Amani Soysa. The main
objective of my project was to create a system
that would automatically harmonize (accompany) a
tune based on user emotions as well as a desired
genre of music (swing, rock, disco, march etc.).
Therefore, the harmony would vary depending on the
selected genre and the level of happiness or
sadness of the user. The system is very useful
especially to young music learners (as explained
by many young music enthusiastic who reviewed the
system) to learn how a single tune could be
harmonized in many ways. The system not only
harmonized music, but provided users with
generated manuscript notations of the harmonized
piece as well as guitar fret sheet notations.
Additionally the system has the capability to add
drum beats to the harmonized piece based on the
selected genre. The user has the option to provide
input simply as a MIDI file, or create his/her own
music using the virtual piano function or the
manuscript editor.

ChordATune
is a huge success and was awarded with one of the
three Merit awards presented at the Asia
Pacific ICT Alliance Awards (APICTA) 2009 held
in Melbourne, Australia. ChordATune was selected
to represent Sri Lanka at APICTA after winning 3rd place
in the Tertiary category at the National
Best Quality Software Awards (NBSQA) 2009
held in Colombo, Sri Lanka. NBSQA is an annual
competition organized by the British Computer
Society of Sri Lanka (BCSSL) that is held with the
aim of recognizing outstanding achievements of
individuals and organizations. Further, ChordATune
was awarded 3rd place at the
Cutting Edge exhibition held at the Informatics
Institute of Technology. Cutting Edge is an annual
exhibition held at IIT to
assess and recognize academic projects completed
during the course of the year; the projects are
judged and awarded by experts from the IT
industry.
ChordATune
is an interactive AI system developed using
Hidden Markov Model and Dynamic Programming and
used JMusic for
musical composition and Musical
analysis . Further there are two IEEE papers
publish under ChordATune.
-
Interactive
Machine Learning for Incorporating User
Emotions in Automatic Music Harmonization.
Proceeding of the 5th International
Conference on Information and Automation for
Sustainability (ICIAfS'10).
- ChordATune
- An Emotion based Melody Harmonizer for
Piano Music. Proceedings of the The Second
International Conference on Technology for
Education (T4E'10) IIT Bombay, Mumbai.
The
developer is very thankful to the jMusic
research group for thier wonderful piece of
work.
AI
Bass Mutations
This series of software and music albums by Frank
Ni and available on iTunes and elsewhere, were
written with jMusic.
The
Elevated
Pitch project started by John Reddin at
Trinity College and also worked on by James
McDermott, uses genetic algorithms with aesthetic
selection to
modify generative grammars that
produce
simple meody and accompaniment music suitable as
Elevator Music. They have an applications that can
can be downloaded for you to generate music and then
select the one you prefer. The project uses jMusic
as a music engine.
Impro-visor
The
Impro-visor
program by Bob
Keller and his students, generates jazz solo's
over a provided chord progression. The solos and
displayed on a stave and can be played back with
appropriate swing feel and a "built-in" rhythm
section. The program is quite fully featured and
there is a Yahoo! group
set up for discussion and dissemination of the
program.
It is great to see research efforts like jMusic
assisting other research efforts.
Here
is an example page and a tutorial
and below is a screen shot.

Download
the application and get the source code here.
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 demonstration
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, duration, dynamic, and pan statistics.
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.
|