CodeSounding library: from source code to computer generated music sounds (sonification)

SourceForge.net Logo

Demo

Guestbook

News

Wiki Home   Trasformare codici sorgenti in computer generated music sounds (sonification) Download   Esempi di sonification Documentation   Creare computer generated music sounds: uso della libreria e configurazione

CodeSounding: computer generated music sounds from a source code structure

CodeSounding is a Java sonification library: the sound produced running a .class (or .jar) is a function of how was structured its source code before compilation. You can therefore produce computer-generated music.
The primary goal of CodeSounding was to make it possible hear the sound of execution of a software, assigning instruments and notes to Java programming statements (if, for, etc), so that the flowing of execution could be played as a flow of music. Quickly (different ideas of algorithms, huge data generated, design issues) the project shifted to a more implementation-indipendent framework, so that a junior Java programmer could write, insert and hear its own algorithm (you can think of it as a CodeSounding plugin) using complex classes or as simple as the following: Now it is possible to add a "patch" (= custom filter / elaboration) at every level of CodeSounding; futhermore if you use a Jack Linux Audio server you can add, in a pipe, third-party realt-time filters and visualizators.

Source code Musical score

Post-process your java files with codesounding.cl.ApplyTemplate class and compile them. When running their compiled version, you can choose which sound generation algorithm apply. Post-processing step can also be done through an ANT task. As said you can also write your own algorithm - I'll be very happy to hear your creations! We could also add it as an official plugin, let me know. But - ehi, don't expect to become a millionaire: sure, this is a totally useless feature and, besides "AS IS", it is above all "just for fun": you pragmatical people are warned! :)

Examples
  • Trying CodeSounding with JSyn: every thousandth Java istruction triggers an enveloped oscillation (of 50 ms), with each instruction having a different frequency. They are finally added and reverberated. Faders enable you to change the oscillators's frequencies, how many instructions are skipped and the grains's envelope. Furthermore the skipped instructions scale the amplitude of each oscillator.

  • CodeSounding data can be pulled by a JACK audio server:



News
~ Copyright © 2006 1010 - Roberto Mannai (robermann@gmail.com) ~