Home
audio MIDI Music Algorithms Interfaces Programming Acoustics Context
> Programming    
 
Programming   TUTORIALS:

Programming

Creating a digital instrument requires the writing of software in one
environment or another.
In this section we outline the details of working in the environments
covered by the available tutorials.

Java>> read more.
The Java programming language is
widely used for many applications
and runs on all widely available
personal computers and many other
devices besides. (mobile phones for
example).

This section looks at some
Java programming issues, but does not
intend to replace the many good texts
on Java programming.

Also covered in this section are some
language-specific issues of the jMusic
application programming interface (API).
jMusic is an library of music and sound
classes that extends the capabilities
of the Java language for music and audio.

Max/MSP>> read more.
Max/MSP is a visual programming
environment dedicated to music
and sound making. In the future we
hope to add tutorials for Max/MSP
to this site.

















Programming - By Andrew R. Brown

A critical aspect of digital instrument building is the skill of computer programming. It is the equivalent of wood working for the violin maker, or bronze casting for the bell builder. Leaning to program a computer for instrument building is a serious endeavour which, like other worthwhile activities, rewards persistence and regular practice.

Programming for musical applications introduces a number of issues beyond those of interface design and data structure which are common for many programming tasks. These issues include connection with hardware devices and scheduling.

To connect with an audio or MIDI device, or a gestural controller of some sort, the digital instrument builder will need to manage the communications to and from the computer to these interfaces and devices. The protocols for such input/output are often different on each platform, although some attempts to provide standards are available – for example the Port Audio and Port MIDI projects. When working in Java or Max/MSP these environments provide a programming layer to shield the developer from the operating system differences, however the downside of this approach is that at times this layer may not provide all the features the developer requires.

Having music play in time is a critical requirement for digital instruments, but not many computing platforms are designed to meet time critical (real time) processes. Because the appropriate scheduling of music and sound events is related to sending or receiving them to external devices many of the systems mentioned above handle both scheduling and communication. The programming issues relate to how much processing can be achieved in-between events and how fine and reliable the event resolution can be. The instrument builder needs to be aware that these issues will arise and investigate strategies designed to cope with these situations.

This web site provides many examples of simple and intermediate level digital instrument programs from which you can learn useful tips and techniques. However, the site does not focus on programming in Java Max/MSP or any other environment in depth. There are many good resources for learning this, both in book form and online. Here are a few links as examples.

Java

http://java.sun.com/docs/books/tutorial/
http://www.dickbaldwin.com/toc.htm
http://developer.apple.com/java/javatutorial/

Max/MSP

http://www.cycling74.com/products/dldoc.html
http://www.arts.rpi.edu/crb/iap/maxmidi.html

 
 
 
 
 
 
 
 
 
 
 
 
 
 
     

jMusic Australia Council Queensland University of Technology Sitemap Contact Home Home http://www.qut.com http://explodingart.com/jmusic http://www.ozco.gov.au

Digital Instrument making Contact