- changed status to wontfix
auto CPU saving
hi. this is controversial, but i believe really important for framelib. at the moment, because the max implementation is objects based, there is no way to do dynamic cpu management. what i mean is, if i have a [fl.select~ 5] selecting between 5 different audio chain routines, all of them are getting computed all the time. in genexpr and reaktor-core i can deal with this (sort of), in gen and msp i cannot. my dream is that frame lib could analyse if a chain is being used or not (reaching a completion point) and automatically turn it off if not used. i am fully aware of the magnitude of the problem my wish entails. but it is worthy of consideration i feel, especially as, as i understand it, frame lib by its very push-pull nature is always aware of 'chain completion' already. cheers, pete .
Comments (3)
-
repo owner -
reporter in fairness to me, i had ZERO idea you were going live with this "in about a week". i genuinely thought it would be “about a year”, so i was still in the ‘discussing interesting ideas’ mode of using this issues list.
sorry.
-
repo owner I need the code to be publicly accessible for ICMC, but the answer would be the same even if this were not the case.
- Log in to comment
1 - It's not super helpful (given that this goes public in a week or so) to request major overhaul changes.
2 - this is really on you, you have the power to schedule processing whenever you want (or don't want). When you get fl.route~ in your hands this will be somewhat easier, as you could use fl.route~ at the top of a chain and fl.select~ at the bottom. Whilst time must always be updated across the whole network, the actual processing can be controlled by not sending frames to a particular chain.
What you will not ever have is "auto" CPU saving, because the level of graph analysis and knowledge of what the graph is doing is too high - for instance, you may have a chain that writes to shared memory, but doesn't get sent to the output. Furthermore, parts of a framelib network cannot be switched off because time must remain sync'ed. Designs have consequences and this is the consequence of the design here.