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.
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.
To say it in a few words, the aim is adding to a software the capability of... sounding! You can feel its "inner breath". Yes, this is a totally useless feature and, besides "AS IS", it is above all "just for fun": you pragmatical people are warned. But... what if you could hear that Software Quality Grail? Consider CodeSounding as a humble proof of concept.
The sonification process consists of a post-processing operation on source files, which adds callbacks methods on "if", "for", etc. statements, in what is called token stream rewriting. Callbacks are structured around the Template design pattern, so the real sonification algorithm is interchangeable and configured at runtime. Properly sonification is therefore not on static source code structure but on dynamic behaviour during the execution.
Code parsing is made by an ANTLR parser, music generation by an ABC language/notation (see Guido Gonzato's and Chris Walshaw's sites), jMusic library or the JACK audio server.
· Java 2 Standard Edition Runtime Environment