Downloads

jMusic Home Page

Documentation

jMusic: Music Composition in Java

jMusic Tutorials and Lessons

These tutorials will guide you through some of the compositional possibilities of jMusic and, along the way, provide an insight into the Java language, computer music composition, and digital audio. There are individual tutorials and tours. The individual tutorials are generally arranged from simple to complex. If you are new to jMusic then we suggest you take a tour. Guided tours are pathways through the tutorials selected by experienced jMusic users.

Enjoy.

Andrew Sorensen and Andrew Brown.

Tutorial Index

Guided Tours
Background
Getting Started
Getting Fancy
Getting Sound
Getting Algorithmic


Guided Tours

  • Quickstart Tour - Just the highlights.
  • Dots and Dashes - A step by step introduction to jMusic data and representations.
  • Building Apreggiators - From the simple to the complex in small steps.
  • Extended Drums - Abstracting and extending classes to reduce repetition of code.
  • Music By Number - Building blocks for algorithmic composition.
  • Basic Game - Introduction to music for Java computer games.
  • The First Few Steps - The process from compiling to composing.
  • Pop Music Tour - Implementing Contemporary Music.
  • Compositional Philosophy Tour - Confront the big ideas.


Individual Tutorials

Background


Introduction


jMusic basics

1.

What is jMusic?

6.

Constants - The JMC

2.

Some jMusic basics

7.

Basic Methods for manipulating data

3.

Music Composition and the computer

8.

Compositional Tools and Utilities

4.

Make it go Bing!

9.

Using jMusic in Win 95/98

5.

jMusic Setup

10.


6.

The data structure

11.


Getting Started


Making Melodies


Making Rhythms


Musical Structure

1.

Chromatic Scale

21.

Random Rhythm

41.

Repeating

2.

Round / Cannon

22.

Random Rhythm Patterns

42.

Up - Down, Left - Right

3.

Phasing

23.

Multiple Random Patterns

43.

Motif Textures

4.

Sketch display

24.

Windchimes

44.

Modifcations

5.

ShowScore

25.

Generate and Test

45.

Sequences

6.

Chorale

26.

Meter

46.

Chord Progression

7.

Stochastic Melody

27.

Drum Machine

47.

Form & Arrangements

8.

Modal Pitch Constraints

28.

Dynamic Compressor

48.

Reading and using MIDI files

9.

Random Walk

29.


49.

CloudX

10.

Gamelan

30.


50.

Dynamic Mix

11.

Sinewave melodic contour

31.

Utilities

51.

Intervalic Modifications

12.

Showing Parts and Phrases

32.

The Helper GUI

52.

Scatter Phrases

13.

Directions

33.

MidiTest - Setting up MIDI I/O

53.

Following Phrases

14.

Common Practice Notation

34.


54.

Journey

15.

Inputting music as CPN

35.


55.

Ordering Phrases Around

16.

A melody from lyrics

36.


56.

Diatonic Transposition

17.

Updated CPN display features

37.


57.


18.


38.


58.


19.


39.


59.


20.


40.


60.


Getting Fancy


Multiple Methods & Classes


Graphical User Interfaces


Analysis

1.

Extended Drum Kit

16.

Java Window Frames

31.

Simple MIDI Analysis

2.

Static Drum Kit

17.

Simple GUI_1

32.

Read and reuse MIDI files

3.

Object Drum Kit

18.

Simple GUI 2

33.

Phrase Analysis App.

4.

Build a Library of Methods

19.

Simple GUI 3

34.

Histograms

5.

Jazz Combo

20.

Simple GUI 4

35.

Phrase Chord Analysis

6.

Abstract Drums

21.

Simple GUI 5 - Swing

36.


7.

Trio

22.

GUI with file dialog

37.


8.

Working with jm files

23.

GUI & ShowScore

38.


9.

Pieces of Wood - Reich

24.

jMusical Applets

39.


10.

MIDI Remixer

25.

jm-808

40.


11.


26.

Menus and Key commands

41.


12.


27.

jm-550 no GUI

42.


13.


28.

jm-550 awt

43.


14.


29.

jm-550 awt 2

44.


15.


30.

jm-550 awt 3

45.


Getting Sound


Audio


Synthesis


Signal Processing


Real Time

1.

Rendering a note

10.

Additive Synthesis

19.

Read and write data

28.

Getting sound in Real Time

2.

jMusic Audio 101

11.

Amplitude Modulation

20.

Compression

29.

Real-time architecture

3.

Pitch in hertz

12.

Subtractive Synthesis

21.

FFT

30.

Controlling note and synthesis parameters

4.

Audio Drum Kit

13.

FM Synthesis

22.


31.

JavaSound MIDI playback.

5.

Melody and Accompaniment

14.

Plucked String

23.

Spectral Analysis

32.

Creating realtime instruments

6.

Chorale Audio

15.

UPIC-like sine arcs

24.

Pitch Tracking

33.

MIDI output with MidiShare

7.

Spray

16.

Ring Modulation

25.

Beat Tracking

34.

MIDI input with MidiShare

8.

Creating a new instrument

17.

Granular Synthesis

26.


35.


9.

Inside Audio Objects

18.

Spring-mass physical modelling

27.


36.


10.

Rendering mutiple parts

19.

Parallel oscillators

28.


37.


11.

Tuning Systems

20.

Oscillator detuning

29.


38.


Getting Algorithmic


Mathematical Functions


Recombination


Generative Processes


Rule-based

1.

Stochastic

11.


21.

Cellular Automata

31.

Species Counterpoint

2.

Chaos Theory Melody

12.

Mozart Dice Game

22.

Bass Mutation

32.

Arvoish, Pärt-like

3.

Multi-part Chaos

13.

Band Machine

23.

Genetic Algorithms

33.

Melodic Extension

4.

Fractal Melody

14.

Associative Transition Networks

24.

Phrase Crossover

34.

Guido Word Music

5.

Probability

15.

Stochastic Matrix

25.

Neural Nets

35.

Constraint Satisfaction

6.

Spiral Music

16.

Markov 1

26.

Rhythmic Automata

36.

ATNs

7.

Fuzzy Logic

17.

Markov 2

27.


37.


8.


18.


28.


38.


9.


19.


29.


39.


10.


20.


30.


40.




jMusic Home Page



 
Supported by the following organisations:
exploding art
SourceForge                                                                                                                                                                                                                                                                                                                                                                                                                                              Logo