grimmdude / MidiWriterJS

♬ A JavaScript library which provides an API for programmatically generating and creating expressive multi-track MIDI files and JSON.
MIT License
547 stars 58 forks source link

Add support for changing middle C #93

Closed grimmdude closed 2 years ago

grimmdude commented 2 years ago

MidiWriterJS assumes middle C to be C4, however it appears there is some debate on what middle C should be. It seems that DAWs commonly default it to C3. This causes MIDI to be one octave too low.

This change allows you to define middle C to be whatever you like.

track.addEvent(new MidiWriter.NoteEvent({pitch: 'E4', duration: '4'});

const write = new MidiWriter.Writer(track, {middleC: 'C3'});

// Can also set after writer instantiation
write.setOption('middleC', 'C3');

Closes #85