Monday, May 12, 2008

Java MIDI frustration on MAC OS-X

I was trying to get a new MIDI hardware device to work on a MacBook Pro yesterday and have it recognized in a Java Program. Searches of google pointed me to the MIDI Setup tool in Applications/Utilities. It recognized my Midi USB Uno device, but I still couldn't get it into the dropdown list in my Midi Test applet. I tried creating a new device and mapping the midi in/out to it, but still no luck.

Today I found this post:

http://lists.apple.com/archives/coreaudio-api/2004/Apr/msg00214.html

Pure Java Midi I/O on Mac OS/X

--------------------------------------------------------------------------------

Subject: Pure Java Midi I/O on Mac OS/X
From: "Bob Lang"
Date: Mon, 26 Apr 2004 17:04:43 +0100

--------------------------------------------------------------------------------
Hi All

Until now, Java programmers have had a problem with Midi I/O
on OS/X. Although the pure Java standard classes (javax.sound.midi.*)
were implemented on the Mac, Apple had neglected to write the
necessary midi service provider class(es). This meant that Pure Java
programs could not actually "see" and interface to any Midi I/O devices.

Plum Stone is a midi service provider which fills in this gap and
enables pure Java programs to run on the Mac. Download it from
http://www.cems.uwe.ac.uk/~lrlang/plumstone/

The download is around 60K

Installation is a doddle - just drag and drop the supplied jar file
to /Library/Java/Extensions and that's it! When you run your
pure Java programs, they'll see all your midi devices (including
MidiKeys) and be able to talk to them. You probably won't
even need to re-compile.

Plum Stone is open source (the source files are included in the
download), licence free, cost free, tax free and warranty free.

Regards

Bob Lang

NOTE: The link above has moved to:
http://www.mandolane.co.uk/index.html


I'll let y'all know how it goes.

Monday, February 11, 2008

Music Visualization for the Deaf and Hearing Impaired

Here is a link that demonstrates my vision for music visualization. MIDI technology enables granular access to note, volume, and controller information, which enables rich displays that supersede current visualization technologies in today's media players.

Please forward this link to any deaf or hearing impaired people you know and send me feedback. I want to eventually upgrade this program to take advantage of Windows Vista graphics capabilities.

http://erangell.com/midivisualizationdemo


Also check out this one on YouTube:

http://www.youtube.com/watch?v=s0yQ8cKAXeU


This project can also become a Music Visualization Toolkit. I am thinking that Java might be a good test platform for it. The holy grail is to be able to recognize pitches and chords from WAV sounds and display them as MIDI sequences would be rendered. Wavelet research may pave the way towards that goal (it has already resulted in major advances in speech recognition).

Here are links to similar products:

  • MidiJam
    This amazing program displays instruments playing midi songs in real time. It generates animation frames in near real-time, so you need a very fast computer to run it.

  • Animusic

    Animusic produces professional computer animations for music on DVD. This company has invested in developing algorithms for generating musical instruments that pre-process midi sequences and generate graphics to look like the instruments are playing the notes, rather than reacting to them. In their videos, you can get a sense of the relative distances between notes. Most other media player plugins use a reactive algorithm which is triggered shortly after the MIDI events. While my program is reactive, I feel it gives a good sense of song structure, relationships between what each instrument is playing, and spatial layout of the channels.

  • Music Animation Machine by Steve Malinowski

    Steve has done fascinating work with music animation. His website contains many valuable links for learning about the theories and technologies. Steve helped me as I was developing my program by giving me the suggestion about adding history trails which stay on the screen and gradually fade away. I would like to continue developing this concept into a Piano Velocity view which would use a vertical line above each piano key to represent how hard the key was struck, and have it gradually thin out analogous to the vibrating string being damped.

  • Carl Franklin's MIDI Router

    Carl recently posted this demo of a program that enables MIDI data to be transmitted between computers over the Internet using a peer-to-peer connection. Some possibile applications of this technology are online music collaboration, online music lessons, and online performance broadcasting. Carl has also posted source code which enables .NET programmers to write applications using this technology.

  • Carl Franklin's Bubbles demo

    Bubbles.zip is a game for toddlers that demonstrates combining colors and MIDI data. It draws filled shapes on the screen and plays notes via MIDI when you move the mouse or tap the keyboard. Source included. Requires .NET Framework 1.1 Uses Carl Franklin's MIDI component for .NET, which is a useful starting point for writing your own applications.

    There's plenty more ideas on YouTube for those who want to research this technology.
  • Wednesday, February 6, 2008

    Links

    Most of my websites can be found on http://erangell.com/

    Current project: http://mccainsjewishcoalition.org

    My old blog can be found at: http://ericbrain.blogspot.com/