ircam-ismm / catart-mubu

MuBu based version of CataRT
29 stars 3 forks source link

make multi-channel spatialised synth modules #56

Open diemoschwarz opened 2 years ago

diemoschwarz commented 2 years ago
einbond commented 2 years ago

Okay, tell me more. We have approached this in the past with VBAP to calculate coefficients for outputgains, virtual sources for Spat, or HOA. Make separate modules for each, time permitting?

diemoschwarz commented 2 years ago

Hi Aaron, this issue is meant for a (sub)module to be put into poly voices for multi-touch use or load-balancing. Unfortunately my first solution hits these problems:

  1. spat is inflexible re. #speakers, will this need scripting?
  2. is a typical stereo panning law the same as vbap on 2 loudspeakers? maybe there should still be a dedicated stereo synth module.
  3. I have the impression that simply having 20 inactive but unmuted 8ch poly voices in the DSP graph uses a lot of CPU. Any experiences on your side on this? I will need to check this, and judiciously set the busy and mute flags.
einbond commented 2 years ago
  1. is a typical stereo panning law the same as vbap on 2 loudspeakers? maybe there should still be a dedicated stereo synth module.

Yes I think it is the same algorithm.

  1. I have the impression that simply having 20 inactive but unmuted 8ch poly voices in the DSP graph uses a lot of CPU. Any experiences on your side on this? I will need to check this, and judiciously set the busy and mute flags.

I have not found an issue if the unused poly~ voices are muted. Incidentally I have some similar design needs for my spatial filter example, which also requires poly~. For example I also need a module to send parameters to all mubu.concat~ objects at once since attrui doesn't work. So maybe we can compare / combine ideas.

diemoschwarz commented 2 years ago

have a look at the catart-mubu-poly top-level patch, using a proxy approach (imperfect with the @play attr...). However, just sending messages from a nice UI works. That said, I think we should rethink the inlets to camu.select and camu.synth (with or without poly) some time, it is quite confusing.

christophertrapani commented 2 years ago

It would be cool if we can use the azimuth value in the key-mixer and have that sent to a multichannel spatialization patch which takes speaker number/step as an argument and positions the grain

diemoschwarz commented 2 years ago

I have not found an issue if the unused poly~ voices are muted.

Thanks. Trying to mute unused voices, I've awakened the devil of the details:

christophertrapani commented 2 years ago

I would think option 3, using the busy state to pilot muting, would be the best option to pursue...

On Thu, Jun 2, 2022 at 11:19 AM diemo @.***> wrote:

I have not found an issue if the unused poly~ voices are muted.

Thanks. Trying to mute unused voices, I've awakened the devil of the details:

  • when is an instance no longer needed and can be muted? for this we'd need to know how long the last triggered grain will sound.
  • And what about periodic play?
  • Or is it possible to use the busy detection of thispoly to drive mute ?

— Reply to this email directly, view it on GitHub https://github.com/Ircam-RnD/catart-mubu/issues/56#issuecomment-1144640430, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIRYDC5NQJMNUHA6P4XWYGDVNB4CZANCNFSM5WEW7OZQ . You are receiving this because you commented.Message ID: @.***>