node based WFS rendering

17 views
Skip to first unread message

Thomas Grill

unread,
Jan 30, 2024, 6:21:03 PM1/30/24
to SoundScape Renderer
Hi everyone,
i am looking into rendering WFS scenes in a node-computing manner.
This means that there are several single board computers where each one renders only a subset of output channels.

Let's say there are 256 channels in total, with 16 computing modules.
The naïve idea would be that each device gets all the live inputs and renders 256/16=16 output channels.
The next device renders the next 16 output channels etc.

Does it make a difference for an output channel whether it is rendered through an all-in-one reproduction_setup in comparison to a superposition of several node-based setups?

many thanks,
Thomas

Matthias Geier

unread,
Jan 31, 2024, 7:16:50 AM1/31/24
to Thomas Grill, SoundScape Renderer
Hi Thomas.

On Wed, Jan 31, 2024 at 12:21 AM Thomas Grill <grrr...@gmail.com> wrote:
>
> i am looking into rendering WFS scenes in a node-computing manner.
> This means that there are several single board computers where each one renders only a subset of output channels.
>
> Let's say there are 256 channels in total, with 16 computing modules.
> The naïve idea would be that each device gets all the live inputs and renders 256/16=16 output channels.
> The next device renders the next 16 output channels etc.

This was the topic of the Master's thesis of David Runge in 2017
(https://www.static.tu.berlin/fileadmin/www/10002020/Dokumente/Abschlussarbeiten/Runge_MasA.pdf),
so you might be interested in having a look at that.

There is a related (unmerged) PR:
https://github.com/SoundScapeRenderer/ssr/pull/122

Some time later, and after some discussions with David, I have started
to re-design the internal API of the SSR, with the goal to allow
multiple SSR instances to run on different computers.

I have described the current implementation and future ideas at this
PR: https://github.com/SoundScapeRenderer/ssr/pull/127

As mentioned in the PR, the leader/follower concept is available in
the API but a lot of the implementation is still missing.

> Does it make a difference for an output channel whether it is rendered through an all-in-one reproduction_setup in comparison to a superposition of several node-based setups?

Yes, currently there is one thing that makes a difference: before
calculating the signals of each loudspeaker separately, there is a
loop over all loudspeakers to find out whether a source is focused or
not. This only works correctly if the complete loudspeaker setup is
available.

cheers,
Matthias

Thomas Grill

unread,
Jan 31, 2024, 10:13:01 AM1/31/24
to SoundScape Renderer
Hi all,
thanks for the clarification and the hint to literature!
The PRs look like a lot of intricate work….
I am not familiar with the code base yet, but i wonder if it might be possible to just restrict the computation of output channels to a selected set of the whole setup, leaving everything else untouched.
If you think this is doable, i would fork and inquire more deeply.
best, Thomas

Matthias Geier

unread,
Jan 31, 2024, 12:20:36 PM1/31/24
to Thomas Grill, SoundScape Renderer
Hi Thomas.

On Wed, Jan 31, 2024 at 4:12 PM Thomas Grill <g...@grrrr.org> wrote:
>
> Hi all,
> thanks for the clarification and the hint to literature!
> The PRs look like a lot of intricate work….
> I am not familiar with the code base yet, but i wonder if it might be possible to just restrict the computation of output channels to a selected set of the whole setup, leaving everything else untouched.

Yes, sure, I guess that was the idea at the time.

One possibility would be to have a completely separate reproduction
setup with active/inactive loudspeakers for each instance.
But that seems cumbersome to me.

I think it would be better to use the same setup for all instances
and, as you say, provide a subset of active loudspeakers for each
instance.

It could be just a list of active loudspeakers numbers per instance.

But I think this could even be combined with a channel-mapping feature
for more flexibility.

So for example, with a setup of 8 loudspeakers you could have 2 SSR
instances with 4 loudspeakers each:
instance 1: "0 0 0 0 1 2 3 4"
instance 2: "1 2 3 4 0 0 0 0"

This could be a single string that's given to each SSR instance as a
command line parameter (or via the config file).

We were also talking about changing the format of the reproduction
setup file (which I still think would be a good idea), but this would
be completely orthogonal.

> If you think this is doable, i would fork and inquire more deeply.

Yes, go ahead, I'm looking forward to what you can come up with.

cheers,
Matthias

> best, Thomas
>
> --
> Thomas Grill
> http://grrrr.org
Reply all
Reply to author
Forward
0 new messages