jmon-studio
jmon-studio (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.
Getting started
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-studio@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-studio.
Installation
If you are used to coding with npm packages locally, you can install jmon-studio with
npm install jmon-studio
Features
Algorithmic Composition
- 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
JMON Format Conversion
- 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
Analysis & Utilities
- Musical analysis tools (usefull for genetic algorithms)
- Format conversion utilities
- Mathematical utilities for music
Examples
To be developped...
License
GPL-3