Some ideas for better CPU utilization

had some ideas for better CPU utilization, made a video:

When I say “build the portal effect into the reverbs” I basically mean use background threads on the algorithmic reverbs the same way the reverb convolver does. You get a one frame delay but better parallel processing.

5 Likes

Honestly, my favorite would be to offer a true bypass that has the effect stop taking CPU. On my boards, I never use all of my effects at once, but often I like to have multiple reverbs and use only one at a time.

8 Likes

@looperlative You could always make a plugin that does this, but you’d have to roll up your sleeves and get down and dirty with C++ which I know is not possible for many people. like basicaly just combine all the desired reverbs into one mega reverb effect

It’s been at least (…sits down gingerly…) 20 years since I’ve written C++, which might qualify me in the “not possible” segment haha. I was just wondering recently if anyone has experimented with using ChatGPT and/or Github Copilot to author .lv2 plugins. I’d expect there’s a good amount of open source audio and existing .lv2 code in the corpus. Someone knowledgeable enough in the programming steps and the algorithms needed might be able to prompt their way to a working plugin file.

as a note of warning here, using these tools to generate code produces results that unsuitable for any open-source project due to its unclear licensing.

the code these tools scrapped is under all sorts of licenses, some incompatible with each other, even with just that the results would be a mess to sort out licensing-wise. but there is also the issue of machine-generated output not being copyrightable, thus we can’t put authorship on it and place it under our name under a license of our choosing (because it is not our own work to begin with)

perhaps it is fine to use small snippets of code generated by these AI tools, as far as I know small portions of code are not copyrightable

but I am not a lawyer and this is not legal advice yada yada…

bigger opensource projects already started putting advisories against the use of such tools, for example OBS obs-studio/CONTRIBUTING.rst at master · obsproject/obs-studio · GitHub

4 Likes

I remember discussing this internally more than once. Surely, having this at host level is very desirable, but as far as I understood, it actually needs to be part of the plugin implementation.

I know our pitch shifters and also the two distortion plugins, BigMuff and DS-1, resort to such an implementation.

3 Likes

I am not on my dwarf now and I can’t tell for sure, but I think that using some kind of “switchbox” or “toggle switch” to have your reverbs in parallel could help distributing the load on the threads

@gianfranco That would be my assessment as well. Because it is not just the reverbs, but there are other plugins that use a large amount of CPU and I don’t use them all the time. If I use an external looper, I can switch pedalboards, but with the looper in the Dwarf, I have to live with one pedalboard until the end of my piece.

It is not a lot but if you use only 1 reverb at time using the 4-to-1 toggle switch you can spare a 10% (at 128 frames)


1 Like

@Zavorra

It shouldn’t matter whether you do a toggle switch, or volumes, or do all 4 at once, or whatever, the important part is that they are parallel vs serial. if they all came out from a chorus effect (for example), as soon as the chorus is done with it’s buffer the 4 reverb effects can get started working on 4 different CPU cores. Of course, if they all join together after that, you have to wait on the “weakest link” reverb to finish before the audio can get to its next destination.

Parallel vs serial is making the magic happen, not the toggle switch.

one more random thought for @looperlative, no CPU bypass can be seen as a feature not a bug, because then you know for a fact you have enough CPU to do your entire pedalboard at once and you can’t accidentally turn on too many things at once in a live performance. That might make CPU bypass not as high a priority for the team.

As you can read, this is exactlyy the meaning of the post. It was a reply to @looperlative which uses to have multiple reverbs in the same pedalboard to use only one at once, using a parallel layout can help spare some “CPU” without adding latency like a portal whould do. OTOH you need a switch to mute the unused reverbs dry signal… no magic at all…

1 Like

@Zavorra got it, sorry if I came across as rude

1 Like