go-midi

module
v0.0.0-...-4770266 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2022 License: MIT

README

Go MIDI

Go implementation of a library to represent MIDI data.

This began as a passion project to learn and implement a workable amount of the MIDI 1.0 specification from scratch so I could have complete control over certain specific digital instruments and DAW controls.

I had been trying to solve a very specific problem I was having with a hardware MIDI controller and its percussion pads too. The library then began growing into a general representation of the specification(s) from there.

Table of Contents

Installation

go get github.com/matthewfritz/go-midi

Roadmap

MIDI 1.0 Roadmap
Channel Voice Messages
Channel Voice Message Modifiers
System Common Messages
  • MTC Quarter Frame
  • Song Position Pointer
  • Song Select
  • Tune Request
  • End of Exclusive Messages (EOX)
System Timing Clock Messages
  • MIDI Start
  • MIDI Stop
  • MIDI Continue
  • Active Sensing
  • System Reset
System Exclusive Messages
  • Universal Non-Real-Time
  • Universal Real-Time
MIDI 2.0 Roadmap

Once the MIDI 1.0 Roadmap is at least halfway done I will start planning out the roadmap for implementing the current MIDI 2.0 specification.

Resources

Official Specifications

Official MIDI Specifications - the official MIDI 1.0 and 2.0 specifications from the MIDI Alliance.

Books

The Midi Manual by David Miles Huber. Reading this book was the catalyst for breaking into MIDI programming and gave me enough of a technical foundation to begin this project.

Assorted MIDI and Digital Music Information
Assorted MIDI 1.0 Information

Summary of MIDI 1.0 Messages - ten-thousand foot view of MIDI 1.0 messages from the MIDI Association.

GM 1 Sound Set - general list of the sounds available in General MIDI Level 1 from the MIDI Association.

MIDI Tutorial for Programmers (Carnegie-Mellon University) | MIDI Tutorial for Programmers (Music-Software-Development.com) - tutorial about MIDI 1.0 from a software development perspective.

David's MIDI Spec - distilled version of the MIDI 1.0 specification from 1995 written by David Van Brink.

General MIDI Instrument Patch Map - general MIDI instruments and their family groups.

General MIDI Percussion Key Map - general MIDI note numbers within channel 10 (percussion channel).

Digital Music Information

An Introduction to Music Concepts - an introduction to music concepts, geared toward software developers, with examples in Java and written by Roger B. Dannenberg.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL