Making a song?
I'm running out of ideas right now and I'd like some insight right away. A colleague of mine saw my code and told me that I could do this really quickly, in 10 minutes, but I can't get a hold of him right now.
I'm fooling around in a patcher and I've created an instrument with delay, pitch, and feedback control. How would I go about making a sound composition with this? I've read up on stuff like the "detonate" and "table" options but nothing is helping.
All I want is something that takes maybe 6 copies of this instrument (in subpatches) to play a song 30 seconds long or so. Hell, it doesn't even need to be a song. It can be something that layers each differently pitched instrument quickly. What objects do I need to accomplish this? I have no idea whether to use metro or what.
Code can be available upon request. Thanks in advance.
Use [poly] to easily make copies of a subpatch (requires learning enough about the poly object to do so, but this will save tons of time in the long run). In the short term, just copy your subpatch and route sequencer (most probably MIDI) info to the separate instances by using [route] or something similar.
If you want a truly effective sequencer, then either program one (if your needs go beyond the offers of normal MIDI sequencers on the market and you have lots of time) or use your favorite brand name sequencer and connect it to your Max patch with MIDIYoke or any other virtual port device. This will give you a nice user-interface which would take months to develop on your own. If it is only necessary to have a track-storage object, the either mtr or seq will do the job. I've not needed detonate until now, so I can't give opinions on it.
If you want to use [poly], then this tutorial will really help:
https://cycling74.com/story/2005/5/3/135756/4001
You might also want to have a look at some of the Max tutorials to give you some idea of how to automate your patch by creating and using arbitrary numbers, (using some of the Max objects available).
Hope that helps,
John
Not seeing the patch I can only guess. Poly is a great idea and should be learned at some point. However, there's another great object (mtr) that might be of help.
Check mtr out and see if there's something you can do with that. You could sequence a bunch of notes and use that in all 6 patches (with different layerings and effect settings), or record separate sequences for each, etc. Maybe use a notein and/or a kslider to play notes in from a keyboard (no need for much in the way of keyboard skill, even a couple well-placed notes can be interesting with enough effects).
Note that each track in the mtr object can hook up to nearly any other object. Any object that takes single numbers as input could have those numbers (as boxes) recorded too, one per track. I particularly like the sight of a swooping filtergraph~ applying cool effects to my sounds... without having to touch a thing, as mtr already recorded all my actions! Delay lengths may give you weird results if you automate them (for DSP reasons)... however, feedback, pitch, notes, volume, pan, etc... are all great for mtr.
If you don't have a filtergraph~ in there I highly recommend that too. Run the result out of the biquad~ (see the extensive help file), send it through its own gain fader, and add it to the "clean" mix for a wet/dry control. Also mtr-recordable, of course.
Speaking of recording (in this case, AUDIO recording as opposed to controller recording), don't forget the simple-as-heck sfrecord~ you can stick at the end of your audio chain. To save your efforts for posterity... or perhaps to record layers that will then be played back in the very same patch with sfplay~!
--CJ
You could try creating a simple algorithm. you could do it by having a metro driving a counter that counts (in seconds for example, but anything would work). Then you can use select to pick out some time points from the counter and trigger events to occur at that point. I had to create a 3 minute song in this way for a uni project and it worked fine. It takes some time tweaking the select object to chose numbers that are timed correctly, but the end result was fine. Another option is a timeline to sync events to.
Through doing this you can start the song simply by clicking a checkbox and have it stop itself when it's been playing long enough. It's easily possible to have the song write itself by using bounded randomness to create melodies, or control effects. A break point editor would also be a possible solution.