jmon-algo (jam on studio) is the JavaScript version of the JMON (JSON Music Object Notation) studio for algorithmic music composition (djalgojs), format conversion (jmon-format) and music visualization (viz). This version has been converted from TypeScript to pure JavaScript for easier management and broader compatibility.
The recommanded way of starting jamming is heading to Observable, a beautiful platform to interact with JavaScript code. Sign up, sign in, create a new notebook, add a JavaScript cell and paste jm = require("jmon-algo@latest")
. The jm
object will include everything you need to compose jmon files, play them, show the score and export them to midi files, abc scores, Tone.js generators, etc. Since you'll probably need some guidance, read the free online, interactive book at observablehq.com/collection/@essi/jmon-algo.
If you are used to coding with npm packages locally, you can install jmon-algo with
npm install jmon-algo
- Music theory: Scales, progressions, harmony, rhythm
- Minimalism: Process-based composition techniques
- Generative algorithms: no deep learning, just you, your imagination and math: random walks, Fractals, cellular automata, genetic algorithms, Gaussian processes
- Tone: Core format validation and Tone.js integration
- ABC notation: Convert JMON to ABC notation
- MIDI: MIDI file conversion utilities
- Display: Score visualization and playback functions
- SuperCollider: JMON format to SuperCollider code
- Musical analysis tools (usefull for genetic algorithms)
- Format conversion utilities
- Mathematical utilities for music
To be developped...
GPL-3