Avatrin said:
Hi
What approach should I take if I want to try
this with music?
I know the mathematics that are needed to learn neural networks (from what I have read on websites like Coursera). Also, I know basic scientific programming with Python.
I am willing to spend time to learn how to make the musical equivalent to the art above. What skills do I need?
I know SuperCollider is a programming language made specifically for music, but is it useful for this? The impression I get is that it will be hard to import music to it to make new music.
Yeah, I know it will probably take more than a year, maybe several years, to learn it all, but I am willing to spend the time to do it.
By the way, sorry to mention my personal feelings. I do not mean to be negative. I lost interest in some uses of AI. Also I have mixed feelings about music in general. But this is not relevant to your question.
I can definitely see some value in algorithmic music in certain contexts. For example, some people have created dance music using algorithms. I believe there have even been events where they play algorithmic dance music. If people enjoy this, then more power to them.
Also some video games have algorithmic music. You might look into this and try to find out how the algorithmic music in these games was coded. I would bet it was in C/C++, assuming the game was in C/C++.
My approach was to generate notes, as opposed to sounds, and then encode the notes in MIDI. Then I could play the MIDI file on a synthesizer of my choice. I only used software synths. I wrote some code in C and some in Lisp.
I could also generate a score from the note events. The language I used for this is available at lilypond.org.
One program I found useful was SynthFont because I could load a sound font of my choice into SynthFont and play the music that way.
I never wrote my own synthesizer for public release. However, I did develop a synthesizer for learning purposes, using techniques from Petzold's additive synth, from his book Programming Windows 5th edition. That is a good reference if you want to understand how to generate sound on a computer. He used C.
Petzold recreated some complex instrument sounds from old experiments on additive synthesis. I just made a simple organ synth by combining sine waves. This is the basic principle of the Hammond organs.
You will also learn from Petzold how to format a WAV file. Once you have a WAV file it's easy to convert it to MP3 using VLC for example.
If you want to work at the level of raw sound, as opposed to musical notation, then I suggest looking at CMusic. You could generate a score and even instrument specifications using your AI code. You are not restricted to what you can do with traditional music notation. I think this would be the most flexible approach. You can generate just about any sound you want. It may be helpful to search for CMusic and Max Matthews. I believe you can find open source in Lisp and perhaps C from this project. Or you can study the Matthews book and write your own implementation of his concepts.
As far as neural nets vs another approach, I have never used neural nets. I understand they are useful for pattern recognition. Obviously painting and music are quite different art forms. In addition to looking into neural networks, I would read the CPU Bach patent for another approach, and also some of the writings of Cope. Also to see another approach to algorithmic painting check out
http://www.kurzweilcyberart.com/aaron/message.html. The Aaron developer used Lisp.
Another interesting site is http://www.music-cog.ohio-state.edu/Humdrum/representations/kern.html. This describes the **kern language they use to represent music for analysis purposes.