Hi all, and sorry for the way I'm diving straight in with a question, I've been away from MaxMSP for 3 years and I've just bought Max 6 with a view to improving a project I did back at university, maybe to release.
I'm looking at the way I used abstractions before. Basically, I had 170 abstractions of an object, all having the same function but interacting with eachother. This meant that each abstraction needed its own ID (patcher argument), and this ID would then be used within the abstraction to calculate the names of 16 different wireless inputs and outputs. It got a bit complicated, and there were a lot of expr, if, sprintf etc objects and set messages being triggered by a loadbang. It took a long time to make this one object, but then when I came to reproduce that object 170 times it was very neat and I was not bogged down with a mass of interconnecting patch cords.
the patch runs slow. It takes around 50 seconds to open on my new i5 laptop, and there are often glitches in the audio. I suppose there's two questions.
1) Do the initial calculations carried out on loadbang have any effect on performance once the patch is running?
2) Do wireless inputs/outputs cause extra CPU load compared to wired ones?
I know that my patch needs a lot of work. But I need to know how to start to improve the performance of my patch. I suppose the answer to the above questions will help. At the moment I can think of a few options:
1) Still use abstractions but with wired inputs and outputs, doing away with the send/receives and removing all calculations from the patch.
2) Still use abstractions, and send/receives, but instead of each patcher calculating the send/receive names, have 16 extra arguments for each of the 170 patches to reduce CPU usage.
3) Don't use abstractions at all, try to combine everything into one patcher (baring in mind there will be 6,000+ objects in one patcher...)
4) Something I'm overlooking...
I'm more inclined towards option 1 at the moment. Anybody any thoughts?