| Hawkins, Jason | |
JRing, A Java Sound Performance ToolJason HawkinsMay 2003 Advisor: Dr. Joe Daugherty Project Description JRing is a Java application used as a performance tool for sound-manipulating computer musicians. The program allows a user to load a selected soundfile, which plays in an indefinite loop once a play button is pressed (a stop button is also provided). The user interface contains two sections for manipulating the audio: one section to add amplitude modulation, which includes slider controls for frequency and amplitude of the modulator wave, as well as a selector for a sine or square waveform, and one section to do grain-gapping; the user selects through slider controls the length of 'grains' into which the audio file should be spliced, and the amount of silence or "gap" to be inserted between the grains. A volume control and bypass controls for each manipulation section are provided, as well as a control for the buffer size the application will use, to allow for the varied hardware on which a Java application might run. Implementation and Development The project was implemented using the javax.sound.sampled package and the Java SDK version 1.3, since that version remains most predominant among users at this time. The user interface was realized through the Swing GUI Toolkit. The project was developed on an x86 Windows machine using the NetBeans IDE. Development involved learning a language with which I had only a passing familiarity, and getting used to a new design strategy. In the course of development, I focused mainly on performance issues, since a sound performance tool means little without decent responsiveness to changes by the user (this was the primary motivation behind including a buffer control). Conclusion: In developing this application I learned quite a bit about working with the Java language, more perhaps than I had expected. I plan to continue development of JRing; the next stage will be to add MIDI support. |
|