Re: [Faudiostream-users] Faust HTTP speed

2023-01-03 Thread Dominique Fober
In fact there can be multiple reasons for latency. I have some doubts about
the first hypothesis. To check, you should test with a matrix twice (or
three or more) time smaller and see if the latency is indeed proportional
to the matrix size (i.e. proportional to the number of parameters updated
seen from the Faust side).
In fact, the causes of latency are multiple: there is the latency of the
network, of the software layers to distribute the messages, of the message
processing time (which should be negligible for Faust) and of the
propagation time to the audio layers...  Testing with OSC can be useful to
discriminate (partially).
Dom

Le mar. 3 janv. 2023 à 19:46, Stéphane Letz  a écrit :

> Maybe using OSC control would be faster in this case ?
>
> Stéphane
>
> > Le 3 janv. 2023 à 19:25, Aaron Heller  a écrit :
> >
> > Hi Stephane,
> > Sorry, it's 10ms to update a parameter... math error on my part.
> >
> > As I said, it takes about 30 seconds to update a Faust jack client with
> 3136 (=49*64) parameters, which is roughly 10 ms per parameter.  This was
> with jack, the jack client written in Faust, and the Python script
> performing the update, all running on my MacBook Pro.  There are two
> versions of the Python, one that opens a new connection for each update and
> one that keeps the connection open; the timing for both is the same.  I
> also tried it with jack and the Faust jaxk client running on a RPi4 and the
> Python running on my MBP, with the same ~10ms/update result.
> >
> > The 49x64 parameter matrix corresponds to playing sixth-order ambisonics
> over a 64 speaker array, which is the situation at the Stage at CCRMA.  The
> decoder has two matrices, high and low frequencies, so about a minute to
> update.  I'm looking for a solution that would be at least 10x faster.
> >
> > Thanks...
> >
> > Aaron
> >
> > On Tue, Jan 3, 2023 at 12:44 AM Stéphane Letz  wrote:
> > How do you measure this « 100 ms to update » delay?
> >
> > Stéphane
> >
> > > Le 3 janv. 2023 à 02:12, Aaron Heller  a écrit :
> > >
> > > As a warmup exercise for the next version of my ambisonic decoder
> engine, I made a matrix mixer in Faust and compiled it with httpd support.
> You can see the code and the Python program I wrote to control it in the
> repo --- mmd.dsp and mmd_control.py, respectively:
> > >
> https://bitbucket.org/ambidecodertoolbox/adt_evaluation/src/AES153/faust/
> > >
> > > It looks like it takes ~100 ms to update a single entry, so I assume
> it's processing one request per slow-time loop.  In my application, these
> matrices could have thousands of entries, so, for example, a 49x64 matrix
> takes over 30 seconds to update.  Is there a way to speed this up?  Are
> there better ways to update the coefficients of an array?  Over the network
> is convenient, but loading from a local file would be fine too.
> > >
> > > Thanks...
> > >
> > > Aaron Heller
> > > Menlo Park, CA  US
> > >
> > > ___
> > > Faudiostream-users mailing list
> > > Faudiostream-users@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/faudiostream-users
> >
>
>
>
> ___
> Faudiostream-users mailing list
> Faudiostream-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Faust HTTP speed

2023-01-03 Thread Stéphane Letz
Maybe using OSC control would be faster in this case ?

Stéphane 

> Le 3 janv. 2023 à 19:25, Aaron Heller  a écrit :
> 
> Hi Stephane,
> Sorry, it's 10ms to update a parameter... math error on my part.  
> 
> As I said, it takes about 30 seconds to update a Faust jack client with 3136 
> (=49*64) parameters, which is roughly 10 ms per parameter.  This was with 
> jack, the jack client written in Faust, and the Python script performing the 
> update, all running on my MacBook Pro.  There are two versions of the Python, 
> one that opens a new connection for each update and one that keeps the 
> connection open; the timing for both is the same.  I also tried it with jack 
> and the Faust jaxk client running on a RPi4 and the Python running on my MBP, 
> with the same ~10ms/update result. 
> 
> The 49x64 parameter matrix corresponds to playing sixth-order ambisonics over 
> a 64 speaker array, which is the situation at the Stage at CCRMA.  The 
> decoder has two matrices, high and low frequencies, so about a minute to 
> update.  I'm looking for a solution that would be at least 10x faster. 
> 
> Thanks...
> 
> Aaron
> 
> On Tue, Jan 3, 2023 at 12:44 AM Stéphane Letz  wrote:
> How do you measure this « 100 ms to update » delay?
> 
> Stéphane 
> 
> > Le 3 janv. 2023 à 02:12, Aaron Heller  a écrit :
> > 
> > As a warmup exercise for the next version of my ambisonic decoder engine, I 
> > made a matrix mixer in Faust and compiled it with httpd support. You can 
> > see the code and the Python program I wrote to control it in the repo --- 
> > mmd.dsp and mmd_control.py, respectively:
> >   https://bitbucket.org/ambidecodertoolbox/adt_evaluation/src/AES153/faust/
> > 
> > It looks like it takes ~100 ms to update a single entry, so I assume it's 
> > processing one request per slow-time loop.  In my application, these 
> > matrices could have thousands of entries, so, for example, a 49x64 matrix 
> > takes over 30 seconds to update.  Is there a way to speed this up?  Are 
> > there better ways to update the coefficients of an array?  Over the network 
> > is convenient, but loading from a local file would be fine too. 
> > 
> > Thanks... 
> > 
> > Aaron Heller
> > Menlo Park, CA  US
> > 
> > ___
> > Faudiostream-users mailing list
> > Faudiostream-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/faudiostream-users
> 



___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Faust HTTP speed

2023-01-03 Thread Aaron Heller
Hi Stephane,
Sorry, it's 10ms to update a parameter... math error on my part.

As I said, it takes about 30 seconds to update a Faust jack client with
3136 (=49*64) parameters, which is roughly 10 ms per parameter.  This was
with jack, the jack client written in Faust, and the Python script
performing the update, all running on my MacBook Pro.  There are two
versions of the Python, one that opens a new connection for each update and
one that keeps the connection open; the timing for both is the same.  I
also tried it with jack and the Faust jaxk client running on a RPi4 and the
Python running on my MBP, with the same ~10ms/update result.

The 49x64 parameter matrix corresponds to playing sixth-order ambisonics
over a 64 speaker array, which is the situation at the Stage at CCRMA.  The
decoder has two matrices, high and low frequencies, so about a minute to
update.  I'm looking for a solution that would be at least 10x faster.

Thanks...

Aaron

On Tue, Jan 3, 2023 at 12:44 AM Stéphane Letz  wrote:

> How do you measure this « 100 ms to update » delay?
>
> Stéphane
>
> > Le 3 janv. 2023 à 02:12, Aaron Heller  a écrit :
> >
> > As a warmup exercise for the next version of my ambisonic decoder
> engine, I made a matrix mixer in Faust and compiled it with httpd support.
> You can see the code and the Python program I wrote to control it in the
> repo --- mmd.dsp and mmd_control.py, respectively:
> >
> https://bitbucket.org/ambidecodertoolbox/adt_evaluation/src/AES153/faust/
> >
> > It looks like it takes ~100 ms to update a single entry, so I assume
> it's processing one request per slow-time loop.  In my application, these
> matrices could have thousands of entries, so, for example, a 49x64 matrix
> takes over 30 seconds to update.  Is there a way to speed this up?  Are
> there better ways to update the coefficients of an array?  Over the network
> is convenient, but loading from a local file would be fine too.
> >
> > Thanks...
> >
> > Aaron Heller
> > Menlo Park, CA  US
> >
> > ___
> > Faudiostream-users mailing list
> > Faudiostream-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
>
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Faust HTTP speed

2023-01-03 Thread Stéphane Letz
How do you measure this « 100 ms to update » delay?

Stéphane 

> Le 3 janv. 2023 à 02:12, Aaron Heller  a écrit :
> 
> As a warmup exercise for the next version of my ambisonic decoder engine, I 
> made a matrix mixer in Faust and compiled it with httpd support. You can see 
> the code and the Python program I wrote to control it in the repo --- mmd.dsp 
> and mmd_control.py, respectively:
>   https://bitbucket.org/ambidecodertoolbox/adt_evaluation/src/AES153/faust/
> 
> It looks like it takes ~100 ms to update a single entry, so I assume it's 
> processing one request per slow-time loop.  In my application, these matrices 
> could have thousands of entries, so, for example, a 49x64 matrix takes over 
> 30 seconds to update.  Is there a way to speed this up?  Are there better 
> ways to update the coefficients of an array?  Over the network is convenient, 
> but loading from a local file would be fine too. 
> 
> Thanks... 
> 
> Aaron Heller
> Menlo Park, CA  US
> 
> ___
> Faudiostream-users mailing list
> Faudiostream-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/faudiostream-users



___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


[Faudiostream-users] Faust HTTP speed

2023-01-02 Thread Aaron Heller
As a warmup exercise for the next version of my ambisonic decoder engine, I
made a matrix mixer in Faust and compiled it with httpd support. You can
see the code and the Python program I wrote to control it in the repo ---
mmd.dsp and mmd_control.py, respectively:
  https://bitbucket.org/ambidecodertoolbox/adt_evaluation/src/AES153/faust/

It looks like it takes ~100 ms to update a single entry, so I assume it's
processing one request per slow-time loop.  In my application, these
matrices could have thousands of entries, so, for example, a 49x64 matrix
takes over 30 seconds to update.  Is there a way to speed this up?  Are
there better ways to update the coefficients of an array?  Over the network
is convenient, but loading from a local file would be fine too.

Thanks...

Aaron Heller
Menlo Park, CA  US
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users