Music Miner

Music Miner: About

The best definition for Music Miner is that it's an "expirimental sound generating library".

I was thinking about different and cool ways to make sound with a computer. I came up with the simple idea of using data from within software programs as if it was audio. Because, on computers, all audio files are series of numbers, just like any other data you see, hear or feel on computers. The numbers only mean something by convention. Nobody says that a text can't be seen as a program, and that a program can't be seen as sound.

So all that was really needed was to write data used by a program to a wav file (could be any other file actually). I also figured that programs do a lot of repetitive things (in loops). So this is ideal to make sound. Maybe some loop increments a number each run. We could write these numbers to a sound file, getting a sound that will have a specific structure.

Of course to use the data inside a program in strange ways you need to get access to it. The easiest way to do this is to add some function calls into the source code and recompile the program. You could do that by writing some functions dumping data into wav files. But since wav files have a format, you'd have to do some data formatting. So I wrote a little library to make it easy to write any data you want to a wav file.

That's music miner.

To use it you need some open source software. The most convenient is an open source C program. You need to compile in the music miner library, which is a static library. If you put #include <music_miner/music_miner.h> at the top of the C file you're editing you can call the API functions.

Still don't get it? Let me give a small example:
Say you have a chat program. Every time a user joins or leaves a chat channel the program calls some functions and it keeps some data about the user close at hand. You can find out how many bytes of data there are, and then write those to a wav file with the music miner by calling the function mm_write(the_data, length_of_data); in one of the functions. You do have to initialize the music miner once with mm_load_music_miner();.

This has no furthur influence on the program. In the tutorials section you will find a simple example showing exactly how it works.

Now you are wondering what the point is. Most of all fun. Say you program something in such a way that several actions cause distinctive sounds. In this way you could make you're own "software instruments", master them and play them! I hope, by the way, a live version will be made one day.