Linking Music Students and Music Instructors Via The Internet (work in progress)


Abstract

There are two established methods by which one can learn to play a musical instrument: through self–study or a personal instructor. Employing the former is convenient, but more challenging. One studies at home, but forfeits the personal attention that an instructor provides. Conversely, the latter approach, while less convenient, makes the pedagogical experience more rewarding: by working closely with the instructor, the student is given the important personal attention he or she needs. I propose a third alternative, encompassing the advantages of each of the previously mentioned methods in a near–real time didactic method: teaching and learning to play a musical instrument via the Internet using MIDI, Musical Instrument Digital Interface. By combining MIDI–equipped instruments, specially–designed software, and a computer connected to the Internet, a student and an instructor can simulate a typical student–teacher environment, regardless of distance. This new approach to musical instruction, which is a vast departure from commonplace educational techniques, is perhaps the next logical progression in musical pedagogy.

Entire Research Paper, as of 6 August 2005 (pdf)
Screenshots
Presentation (ppt)

Interface of Research Project


CODE

project

Working progress of Java project
Basic idea of what the program's interface might look like, and how it might behave.

midi

Basic MIDI Player
A very, very basic MIDI file player without error-checking or comments.
Display Installed Synthesizer and Sequencer Objects
Print to the screen the available Sequencer and Synthesizer objects.
Display MIDI Tracks, Events, and Ticks
Given a .mid file as an argument, this program will provide the amount of tracks, number of events, and the number of ticks in a MIDI file.
Show All Instruments for the Default Soundbank
Print all the instruments available to the default soundbank.
Examples of a Few of the Many Synthesizer Methods
Examples of Synthesizer methods getSynthesizer, getChannels, getLatency, and getMaxPolyphony.
Play Entire Range of MIDI Notes
Play all the notes in the MIDI range within all available MIDI channels on the system, printing note-channel combination information to the screen for every note.
Primitive MIDI Player
Given a MIDI file as an argument, PlayMIDIFile plays a .mid file from the command line.
Display the MIDI-Note-To-Music-Note Mapping
Within the MIDI 1.0 specification, each note within ten–plus ranges is given a numerical value from 0 – 127. This simple program will print each MIDI note's musical equivalent within range.
Query Installed MIDI Devices
Provides information about the kinds of MIDI devices that are installed on your system.

client–server

Display the host name and IP address of your local machine.
The two lines of code in this program provide the information needed by the client for connection purposes.

graphics

Display a Guitar Neck Image
Display an image of a guitar neck inside a swing box.

Published Papers By Other Academics Related To My Research

Buscotti, P., and D. Giuli, F. Pirri
Orchestra!: A Distributed Platform For Virtual Musical Groups And Music Distance Learning Over The Internet in Java Technology (pdf)

Synopsis of paper here.

Chew, Elaine, and Alexander Sawchuk
Distributed Immersive Performance (pdf)

Keywords: Remote Musical Collaboration, MIDI, Latency, Multichannel.

The authors discuss a research project titled Distributed Immersive Performance, or DIP, whose goal is to allow "musicians to collaborate synchronously over distance." The authors made their first attempt at remote musical collaboration in 2002 with the aide of a software package capable of "multichannel audio streaming" and "low–latency." Their experiments yielded delays on the order of "0ms to over 300ms." In another experiment, in which two musicians each played MIDI pianos that were miked for audio in the same room, a 50ms delay forced the musicians to be "conscious" of latency, and anything beyond 50ms was intolerable in performance situations.

In addition to software that was specially–designed for this project, high–end equipment was also needed.

Costa, Màrcio O, and Jônatas Manzolli, Dan Sharoni
A Distributed Interactive Composition Tool (pdf)

Keywords: Java, Remote Application, Computational Music, Algorithmic Composition.

The authors discuss the implementation of an online Java–based, MIDI–driven application titled Rabisco, whose GUI is based on a two–dimensional tablet upon which, with a mouse, a user may "draw" sound. The authors chose Java in both the network and MIDI components of their programs, because of Java's seamless Internet integration and its MIDI Sound Framework, which has capabilities for the use of MIDI on a hardware platform that may not have a MIDI–compatible sound card installed.

Cooperstock, Jeremy R., and Stephen P. Spackman
The Recording Studio That Spanned A Continent (pdf)

Keywords: Internet2, Networked Audio, High–bandwidth Data Distribution, Congestion Control, Layered Coding...

The authors discuss a recording session in which the musicians were located in California while the engineers were in Canada. The authors used high–end audio equipment and the specialized, high–speed Internet2 network. "Special thread scheduling techniques" were incorporated into the software in order to reduce latency over the network, and uncompressed Pulse Code Modulation (PCM) audio pushed the authors's software structure to its limit.

The authors also discuss the problems inherent in the TCP protocol for their purposes, making a compelling case for why they chose to use UDP as the transport protocol for MIDI data instead.

Foss, Richard, and Thabo Mosala
Routing MIDI Message Over Ethernet

Keywords:MIDI, Ethernet, Network...

The authors discuss the implementation of a hardware device known as MIDINet that enables computers fitted with said device to transmit MIDI data over an Ethernet connection. (ELABORATE MORE.)

Gang, Dan, and Gregory V. Chockler, Tal Anker, Alex Kremer
TransMIDI: A System for MIDI Sessions Over The Network Using Transis (ps)

Keywords: Transis, TransMIDI, MusicWeb...

The authors discuss the problems associated with the transmission of audio files over the Internet. To capture musical expression, they opt for MIDI because it is "compact and sufficiently powerful for a wide variety of musical applciations". (More elaboration pending.)

Godwin, Paul (Organizer), and Eythor Arnolds (Panelist), William L. Martens (Panelist), Tim Cole (Panelist), James Grunke (Panelist)
Sounding Off On Audio: The Future Of Internet Sound (pdf)

Keywords:...

Synposis here.

Hajdu, Georg
Quintet.net: An Environment for Composing and Performing Music on the Internet (pdf)

Keywords: Max, MSP, Jitter.

The author discusses the development of a Web site, Quintet.net, that creates an online virtual space for "intermedial composition and performance on local networks as well as the Internet." The five main components, hence the title, to Mr Hajdu's Quintet.net are Client (players), Conductor (performance director), Listener (audience), Server (central hub), and Viewer (as an extra "visual later").

The Client component of the program converts audio via a "pitch tracker" into MIDI messages (presumably because of its small size in comparison to audio data), and these are the data that flow across the netowork, local or remote. In dealing with network delays, the author incorporates a [constant] buffer with relation to network congestion into Quintet.net that keeps events at a constant delay.

Sergi Jordà
Faust Music On Line: An Approach to Real-Time Collective Composition On The Internet (pdf)

Keywords:...

Synopsis here.

Wright, Matthew, and Adrian Freed, Ali Momeni
OpenSound Control: State of the Art 2003 (pdf)

Keywords: OpenSound Control, OSC, Networking, Client/Server Communication...

The authors discuss in detail the implementation of OpenSound Control, a protocol used in the transmission of multimedia data across the Internet. Packets comprise the basic data unit of the protocol, which is "transport–independent", i.e., irrespective of protocol type, e.g., TCP, UDP, etc. As of 2003, OSC was "tied" primarily to the UDP protocol, having been used in its inaugural implementation with MAX/MSP.

(In future implementations of this research project, OSC will replace TCP or UDP as the data transmission protocol.)

Young, John P.
Using the Web for Live Interactive Music (pdf)

Keywords: Max, MSP, ECMAScript, Javascript, Java, OpenSound Control, OSC, Cycling '74.

The author discusses a mixed–media artistic work titled Telemusic #1 in which members of the Internet community visited a Web site, Telemusic, whose interface allowed users to participate blindly alongside others on a Web–based musical composition. From the outset, the author was conscious of adhering to "open" and "established standards" for this project, which led him to use Java, JavaScript (ECMAScript), and UC Berkeley CNMAT's OpenSoundControl (OSC) for Cycling '74's MAX. In 2000, the fruition of Mr. Young's labor was put into practice at the Telemusic Web site where visitors were capable of triggering samples and other audio processing effects from their computers. A stereo audio feed was looped back to the user for monitoring purposes.

Young, John P., and Ichiro Fujinaga
Piano Master Classes Via The Internet (pdf)

Keywords: Ethernet, MIDI, TCP (Transmission Control Protocol), UDP (User Datagram Protocol) , IP (Internet Protocol), OTUDP (Open Transport UDP), OSC (OpenSound Control), CNMAT (Center for New Music and Audio Technologies), UC, Berkeley.

The authors discuss their intent to enable "remote instruction of Master Classes," using MIDI grand pianos, in which capturing musical gesture was crucial. They discuss the choice of employing UDP instead of TCP for their research, because of the former's "nominal" overhead and the latter's edemic nature to re-tranmit data, causing "music to stop" along the Internet path. Messrs Young and Fujinaga also discuss the inadequacies of Java for their project, opting instead to use Opcode's Max environment. (Note: the authors published their findings in 1999, a time when Java's Media Framework and audio API's were not as advanced as today's JavaSound API. Further, in May 2000, Cycling '74 acquired the exlusive publishing rights to Max.) At the time of publication, Young and Fujinaga were still in the process of testing, refining, and optimizing their system.

Fober, Dominique, Yann Orlarey, and Stephane Letz
Real Time Musical Events Streaming Over Internet (pdf)

Keywords:RTCP, RTP, Internet Stream Protocol, Resrource Reservation Protocol, Clock Drift, UDP, MIDI...

Synopsis here.




Journals

Audio Engineering Society


Java Links

Java Sound Resources.org
The Java Sound Programmer Guide
Java Music Projects


MIDI Links

Understanding and Using Java MIDI audio
Understanding and Using Java MIDI Audio (pdf)
javax.sound.midi Examples from The Java Developers Almanac 1.4


E-mail: rvanegas .:at:. hunter .:dot:. cuny .:dot:. edu
Fingerprint: 9899 C32A 4E19 2E61 F4C8 B17D C500 5E91 0E46 549C
Public Key

Summer Support: Summer Research Institute, Graduate College, University of Arizona.

Perennial Support: McNair Special Programs, Hunter College

Summer Mentor: Dr John Hartman,
Department of Computer Science,
University of Arizona

Valid HTML 4.01!

Valid CSS!