rabidpoobear said:
For procedural midi generation you don't need speed. Write it in a language you are more comfortable with. I personally would do it in Python, as most of the people in #openpandora and at my college are sick of me talking about I'm sure. ruby would also be a good choice. Heck, .mid is such a simple file format, why don't you just write it in PHP?
There's honestly pretty much no advantage to writing it in C++, and a lot of disadvantages. (I'm referring to this specific case, not saying C++ is always useless)
You're probably right about that. This project is more about me learning C++ and brushing up on object oriented programming (not quite visible in the code I've posted here, but I've since rewritten it). I have actually made midis with PHP before. It was a simple script that 'improvised' within a scale for a few notes. That's why I thought this might be a good first project. I'm not sure if it is, it's becoming pretty complicated without actually doing much yet.
I don't think it's the C++ part I'm having trouble with though. Heh, the errors I have to google are getting few and far in between. Although it would definitely be a lot faster in PHP.
Maybe a simple platform game would have been a better first project. I'm notoriously bad at making graphics though. Maybe I should try making a C++ version of this: http://madpaperlantern.com/jplatform/ (and actually turn it in to a game). That way it'd be more easy to get something out on the Pandora too.
rabidpoobear said:
I did a project for procedural music generation for one of my classes last year. I fed my program some MIDI files and it trained a neural network to recognize a scale based upon listening to a solo track of a piece of music.
In order to have lots of music to train my NN I just created a sample set (recorded myself playing some solos in a certain key) and then extrapolated it out with a 2 or 3 order markov chain. The point of the project was using a neural network to learn a scale (in this case it learned the blues scale by listening to some blues soloing I did).
If you want to talk to me about procedural music generation stuff, PM me or something. It's not something I'm that far into but it's a field that interests me a lot!
That sounds really complicated, I wonder if I'm not in over my head a little. I guess I should read up on neural networks, seems interesting. For my program I'm hoping to implement some common composing techniques. I'm not sure how yet though. Whenever I composed music myself it was basically just trial and error, so I'll have to read up on music theory as well.
It is an interesting field though. I have a horrible habit of not finishing anything I start, but so far even when I'm stuck I feel inspired enough to keep trying.
apexsol said:
If you are interested in music soft programming, this programm will help you.
It is a visual editor, based on graph design (like visio, simulink and rational rose), but it also suports c and x86 asm subroutines.
You can easily sketch up your synth or effect before doing it in your code.
http://synthmaker.co.uk/
That's pretty interesting, reminds me of synthedit and buzz machines.
torpor said:
I haven't looked at your code, as I am myself chin-deep in MIDI C/C++ code for a Pandora-specific sequencer project, but I imagine you are on the right path if you're actually making tunes with it.
My project is mostly related to live sequencing, but things like quantization and playback metrics are all realms worthy of a bit of generator-style code.
Oh, it's not making actual tunes yet, still pretty far from. All it does right now is create a very bad chord progression.
I am very interested in your project though. Hopefully the Pandora will be just what I need to get into creating music again.