auto CPU saving

Issue #40 wontfix
st kr created an issue

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)

  1. Alex Harker repo owner

    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.

  2. st kr 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.

  3. Alex Harker 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.

  4. Log in to comment