frizzwah wrote:sounds decent!
used max msp for a module in my 3rd year of uni to create generative music, albeit nowhere near the scale of what you're doing.
doing a masters in audio programming next year, any chance you could point me in the direction of some learning resources op?
want to get a bit of a head start on the course, already got a bit of knowledge on c++ and general programming principals (and obviously max).
looking forward to seeing how yr project turns out.

Max MSP, I have never heard of it so I decided to search it up. It is a very powerful program, that is simple to use in audio synthesis. I'm guessing when you say audio programming you mean audio synthesis? Okay I don't know much about audio synthesis. But I know a few things, if you developing .wav files, that format was created by Microsoft. Although it cannot run on mac, I believe the easiest way to program it is using a language called c#. You cannot program with c# on mac, so if your looking to make Mac audio programming, use c++ or maybe objective-c, or java.
Since many different languages can do what you want to learn, I would probably look into all of them.
I'm not sure if you have seen example code of next year's course, but this is what c# would look like.
Code: Select all
public WaveGenerator(WaveExampleType type)
{
// Init chunks
header = new WaveHeader();
format = new WaveFormatChunk();
data = new WaveDataChunk();
// Fill the data array with sample data
switch (type)
{
case WaveExampleType.ExampleSineWave:
// Number of samples = sample rate * channels * bytes per sample
uint numSamples = format.dwSamplesPerSec * format.wChannels;
// Initialize the 16-bit array
data.shortArray = new short[numSamples];
int amplitude = 32760; // Max amplitude for 16-bit audio
double freq = 440.0f; // Concert A: 440Hz
// The "angle" used in the function, adjusted for the number of channels and sample rate.
// This value is like the period of the wave.
double t = (Math.PI * 2 * freq) / (format.dwSamplesPerSec * format.wChannels);
for (uint i = 0; i < numSamples - 1; i++)
{
// Fill with a simple sine wave at max amplitude
for (int channel = 0; channel < format.wChannels; channel++)
{
data.shortArray[i + channel] = Convert.ToInt16(amplitude * Math.Sin(t * i));
}
}
// Calculate data chunk size in bytes
data.dwChunkSize = (uint)(data.shortArray.Length * (format.wBitsPerSample / 8));
break;
}
}
That actually won't do anything without the other source files, but it's just an example. I would definitally take a look into that language. I actually got that snippet of code from
http://blogs.msdn.com/b/dawate/archive/ ... ing-c.aspx
but also look into java, which is what i'm using to program the ai i'm building. By the way for anyone that is interested, so far my ai is 216 lines long. Once I finish it, I am going to translate it to objective-c and start using audio synthesis to build the songs, so I can put it on my iphone.
