JMSL Tutorial Table of Contents
Hierarchies
-
The song form as
a sequential hierarchy
-
The string quartet
as a parallel hierarchy
-
Hierarchies within
hierarchies
MusicJob
-
What a MusicJob is,
and how it is scheduled
-
Two ways you can customize
a MusicJob
-
Overriding repeat()
to print a "hardwired" message
-
A more flexible approach:
PrintingJob
-
Launching two PrintingJobs
in an applet
-
Using JMSL.out to
re-route printed output
-
Launching two printing
jobs with JMSL.out redirected to a TextArea
-
Using Playable instead
of overriding methods
-
Two MusicJobs with
custom start, repeat, and stop Playables
-
Choosing a Playable
randomly at runtime
-
Using a MusicJob's Instrument to perform data
Collections
-
Hierarchies as collections
of Composables
-
Sequential Collections
-
Sequential Collections
acting "behaviorally" (choosing which child to launch)
-
Parallel Collections
-
Collections, like
MusicJobs, have start, repeat, and stop PlayListeners
MusicShape
-
A MusicShape has
Elements and Dimensions
-
Adding data to
a MusicShape by hand
-
Creating data using
chance operations, and displaying MusicShapes in the ShapeEditor
-
DimensionNameSpace
maps dimension numbers to dimension names
-
Creating data using
an algorithm
-
Creating data using
Interpolators
Instruments and Interpreters
-
Instruments interpret
abstract data
-
Overriding play()
to customize Instrument
-
Playing a MusicShape
with a custom Instrument
-
Doing the same with
Interpreters
-
Interpreting MusicShape
data as color
-
MIDI
JSyn and JMSL
-
JSyn and JMSL: using
a common clock
-
JSyn and JMSL:
playing a SynthNote
-
JSyn and JMSL:
playing a SynthNote designed in Wire
-
JSyn and JMSL: control
all input ports of a JSyn SynthNote, using our Wire SynthNote
-
JSyn and JMSL: control
all input ports of a JSyn SynthNote, using complex SynthNote
-
JSyn and JMSL: Signal
Processing Instruments
-
JSyn and JMSL: creating
a SynthCircuit from scratch
-
JSyn and JMSL: creating
a JSyn Instrument from scratch
-
JSyn and JMSL: an
Applet with homemade circuit and instrument
Players
-
Players hold a number
of MusicShapes and one Instrument
-
Using a Player to
perform a sequence of MusicShapes
-
Using two Players
to perform the same MusicShape differently
JMSL's score package
-
JMSL's score package
-
Add measures using
the api
-
Add algorithmically
generated notes using the api
-
Transforming notes
algorithmically: Unary and Binary Copy Buffer Transforms
-
Implementing your
own Unary Copy Buffer Transform, part 1
-
Implementing your
own Unary Copy Buffer Transform, part 2
-
Binary Copy Buffer
Transforms
-
Implementing your
own Binary Copy Buffer Transform, part 1
-
Implementing your
own Binary Copy Buffer Transform, part 2
-
Building your
own JScore instrument, part 1: JMSL Score instrument design
-
Building your
own JScore instrument, part 2: Midi Instruments
-
Building your
own JScore instrument, part 3: JSynInstrument
Importing a preexisting SynthNote and
playing it immediately.
-
Building your
own JScore instrument, part 4: A simple SynthNote class
Designing a SynthNote by hand
-
Building your
own JScore instrument, part 5: Hear it in JMSL Score
Loading your SynthNote using JScore's
API
-
Building your
own JScore instrument, part 7: Sample Playing Instrument
JMSL's Transcriber: notating algorithmically generated music
- Introduction
- Customizing the transcriber
- Generating data for the transcriber
- Specifying time signatures and tempos
- Edit a MusicShape and notate it (Applet)
- TranscriberListener, The Big Picture, and a Live Performance Example
JMSL Plugin Tutorial
- How to deploy a JMSL Plug-in
- How the plug-in scanner works
- Building hierarchical menus
MISC
-
Tuning Tutorial 1: Equal tempered tuning
-
Tuning Tutorial 2: Using a tuning table
-
Using WeightedIntegerSequence to generate melody
-
Using WeightedObjectChooser as a Behavior
-
PlayLurker Tutorial
-
Calculate
& plot spectra of simple FM pair
JMSL Tutorial Index
JMSL Tutorial by Nick Didkovsky, didkovn@mail.rockefeller.edu
(C) 1997-2003 Nick Didkovsky and Phil Burk, All Rights Reserved
JMSL is based upon HMSL (C) Phil Burk, Larry Polansky and David Rosenboom.