{"repo":"grimmdude/MidiWriterJS","free":true,"listed":false,"github":"https://github.com/grimmdude/MidiWriterJS","clone":"git clone https://github.com/grimmdude/MidiWriterJS.git","description":"♬ A JavaScript library which provides an API for programmatically generating and creating expressive multi-track MIDI files and JSON.","language":"JavaScript","stars":605,"topics":["music","midi","vexflow","javascript-library","audio","es6","node"],"license":"MIT","category":"media-processing","readme_excerpt":"MidiWriterJS A JavaScript library for generating expressive multi-track MIDI files. - Multi-track MIDI file generation - Written in TypeScript with full type definitions - Works in Node.js (CJS & ESM) and the browser - Note names ( C#4 , Eb5 ) or raw MIDI numbers - Chords, arpeggios, grace notes, pitch bends, and more - Experimental VexFlow integration Full API Documentation Install Quick Start ESM (recommended) CommonJS TypeScript Examples Melody (Hot Cross Buns) Chords vs. Sequential Notes When pitch is an array, the notes play as a chord by default. Set sequential: true to play them one after another instead. Multi-Track Pass an array of tracks to Writer to create a multi-track MIDI file. Controller Changes & Pitch Bend API Summary Track Method Description --- --- addEvent(event, mapFunction?) Add one or more events. Supports method chaining. setTempo(bpm, tick?) Set tempo in beats per minute. setTimeSignature(numerator, denominator) Set time signature. setKeySignature(sf, mi?) Set key signature (e.g., 'C' , 'Dm' , 'F#' ). setPitchBend(bend) Set pitch bend ( -1.0 to 1.0 ). controllerChange(number, value, channel?, delta?) Add a controller change event. addTrackName(text) Set the track name. addText(text) Add a text event. addCopyright(text) Add a copyright notice. addInstrumentName(text) Set the instrument name. addMarker(text) Add a marker event. addCuePoint(text) Add a cue point event. addLyric(text) Add a lyric event. mergeTrack(track) Merge another track's events into ","default_branch":null,"files":null,"tree":[],"storefront":"/r/grimmdude","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/grimmdude/MidiWriterJS/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}