Tag Archives: MIDI

MIDI for the Game Music Composer: Wwise 2014.1

MIDI seems to be making a comeback. At least, that was my impression a couple of months ago when I attended the audio track of the Game Developers Conference.  Setting a new record for attendance, GDC hosted over 24,000 game industry pros who flocked to San Francisco’s Moscone Center in March for a full week of presentations, tutorials, panels, […]



via scalable minds.

As an enthusiastic developer and piano player, I like to connect my interests. Since my sheet reading skills have always been rather moderate, I saw an opportunity to improve them with the new Web MIDI API. It allows the browser to communicate with a MIDI-enabled device (especially receiving MIDI notes from it).

Using this API, I built a side project called Piano-Trainer (Github link) which is a web app that renders random music sheets. The user has to play the notes on a real piano (provided that it supports MIDI) and gets feedback when played correctly. In theory it should also work with other MIDI-enabled instruments.

Piano-Trainer will measure the time it took you to play the displayed chords and display statistics to keep track of your progress. Think of it as Guitar Hero for the piano. Currently, the rhythm is not checked (so it does not matter if you need some seconds to play a chord). But being able to train the rhythm, is certainly a feature I want to work on in the future.

Collaborative Programmable Music.

via overtone/overtone.

Overtone is an Open Source toolkit for designing synthesizers and collaborating with music. It provides:

  • A Clojure API to the SuperCollider synthesis engine
  • A growing library of musical functions (scales, chords, rhythms, arpeggiators, etc.)
  • Metronome and timing system to support live-programming and sequencing
  • Plug and play MIDI device I/O
  • A full Open Sound Control (OSC) client and server implementation.
  • Pre-cache – a system for locally caching external assets such as .wav files
  • An API for querying and fetching sounds from http://freesound.org
  • A global concurrent event stream

Swift 2 AVAudioSequencer

via Swift 2 AVAudioSequencer | Gene De Lisa.

Swift 2 AVAudioSequencer

There’s a brand new MIDI sequencer class in Swift 2 beta! It’s the AVAudioSequencer.

Swift 2 and CoreMIDI

via Swift 2 and CoreMIDI | Gene De Lisa.

Swift 1.2 is notorious regarding its lack of function pointers to deal with C APIs such as Core MIDI. I’ve complained^H^H^H^H^H written about this several times.

MIDI Client
Input Port
Virtual Destination

Making Music in the Browser – Web MIDI API

via Making Music in the Browser – Web MIDI API | Keith McMillen Instruments.

MIDI has officially hit the web browser! Well, at least in Google Chrome. With the latest version of Google Chrome, MIDI is enabled by default, whereas previously it needed to be enabled by setting a special flag in your browser. This opens up a huge variety of possibilities for not only art and music in the browser, but also allows any hardware that uses MIDI as its communication platform to control and be controlled by your browser. MIDI.org itself says “the Web-MIDI API is the most significant advancement of MIDI since… MIDI itself!”

Swift MIDI Trampoline

via Swift MIDI Trampoline | Gene De Lisa.

Swift does not support C Function pointers. I’ve written about that a few times.

So, what do you do if you need to use a C API that relies on C callbacks? Core MIDI is just one example of C APIs that rely on function pointers.