yes, I am also wondering whether the stream bundle  could carry an update flag 
which could be looked up to trigger computation.

This way we could have a stream produced at the audio sr, which is only updated 
every hopsize samples. The flag is set at the update time then cleared. 
Functions could take this flag to control when they need to compute a value. 
Otherwise they could either pass on their input or send out zeros.

At the other end, when resynthesising, the inverse STFT would also only look at 
values every hopsize samples.

I reckon this could be done with pure functions, since no state needs to be 
kept (except in the ffunctions doing the conversion at either end).

Thinking about it, stream bundles could be really useful for multichannel work, 
high-order ambisonics, massive audio rigs etc.

Prof. Victor Lazzarini
Maynooth University
Ireland

On May 7, 2021, at 8:23 PM, Julius Smith <julius.sm...@gmail.com> wrote:


Hi Victor,

Yes, I was thinking of time-domain in, time-domain out, but amp and freq 
streams would be more interesting to work with in Faust.  We can do that now 
using a filter-bank approach, but of course that's more CPU load without an FFT 
and without downsampling of the channels.

"Stream bundles" would be a major addition to the language!

Cheers,
Julius

On Thu, May 6, 2021 at 11:24 PM Victor Lazzarini 
<victor.lazzar...@mu.ie<mailto:victor.lazzar...@mu.ie>> wrote:
Thanks, Julius.

So that I understand what you mean: what form does the out stream take? Are you 
suggesting that the ffunction does all frequency-domain processing and returns
a time-domain signal, or that it puts out the STFT frames back-to-back (not 
sure how it would work)?

 I guess a pv analysis in an ffunction could produce amp and freq streams (for 
each bin). Just how to manage so many streams may be a challenge. If there was 
some sort of a container format that bundled several streams together, I think 
it would work. Then functions to pack/unpack. A ffunction pair for 
analysis/synthesis, a library function for additive synthesis. Library 
functions for common processes, and there you go, a spectral processing system 
within Faust.

Prof. Victor Lazzarini
Maynooth University
Ireland

On May 6, 2021, at 9:26 PM, Julius Smith 
<julius.sm...@gmail.com<mailto:julius.sm...@gmail.com>> wrote:


Hi Victor and Dario,

In the current Faust, I would put the FFT in a ffunction which hops internally. 
 From the Faust perspective, it would accept a signal stream and return an 
FFT-processed stream.

Cheers,
Julius

On Thu, May 6, 2021 at 9:30 AM Victor Lazzarini 
<victor.lazzar...@mu.ie<mailto:victor.lazzar...@mu.ie>> wrote:
yes, I wonder. The Hann window would of course be a raised scaled cosine (it 
could reside in a library of course).

Hopping and overlapp-add may be important beyond the STFT, for other types of 
processing. As I said, maybe it just can't be done within the constraints set 
by the language. It's been quite a while since I remember chatting about this 
with Yann.

best

Prof. Victor Lazzarini
Maynooth University
Ireland

On May 6, 2021, at 2:41 PM, Dario Sanfilippo 
<sanfilippo.da...@gmail.com<mailto:sanfilippo.da...@gmail.com>> wrote:


*Warning*

This email originated from outside of Maynooth University's Mail System. Do not 
reply, click links or open attachments unless you recognise the sender and know 
the content is safe.

Hi, Victor.

I literally never work with FFT and all I know dates back to a decade or so ago 
when I studied it for my master: I don't remember much. Sorry in advance for 
clueless questions.

If we had primitives performing FFT and IFFT, would it be possible to do the 
overlapping stages in Faust with delayed signals?

Something like this, for example?

import("stdfaust.lib");
hann(size) = sin((ba.period(size) / size) * ma.PI) ^ 2.0;
hann_overlap(size, factor) = sum(i, factor, hann(size) @ ((size * i) / factor)) 
/ (factor / 2);
process = hann_overlap(1024, 8);

Ciao,
Dario

On Sun, 2 May 2021 at 14:52, Victor Lazzarini 
<victor.lazzar...@mu.ie<mailto:victor.lazzar...@mu.ie>> wrote:
Because it's been so many years since I remember discussing this, and because 
there's so many clever and knowledgeable people working on the Faust sources, I 
am supposing the hopping issue has no solution.

Is that right?

I was reminded of it by an user asking about the question here last week. My 
answer, which went directly to him, is that as far as I knew hopping was out of 
question, but that Julius had written an FFT, but to apply it to a stream, it 
had to be done on sample-by-sample basis. Julius then confirmed it here.

Just curious to know the status of this.

Prof. Victor Lazzarini
Maynooth University
Ireland

_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net<mailto:Faudiostream-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/faudiostream-users<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Ffaudiostream-users&data=04%7C01%7CVictor.Lazzarini%40mu.ie%7Cd277d16155fa464d6b2608d9118d8ee1%7C1454f5ccbb354685bbd98621fd8055c9%7C1%7C0%7C637560121961051520%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Ct6JuVz%2FrSY2n0Id2%2B9IXgCyDIEPDYw%2FlF00nxHkJNo%3D&reserved=0>
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net<mailto:Faudiostream-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/faudiostream-users<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Ffaudiostream-users&data=04%7C01%7CVictor.Lazzarini%40mu.ie%7Cd277d16155fa464d6b2608d9118d8ee1%7C1454f5ccbb354685bbd98621fd8055c9%7C1%7C0%7C637560121961051520%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Ct6JuVz%2FrSY2n0Id2%2B9IXgCyDIEPDYw%2FlF00nxHkJNo%3D&reserved=0>


--
"Anybody who knows all about nothing knows everything" -- Leonard Susskind
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net<mailto:Faudiostream-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/faudiostream-users<https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Ffaudiostream-users&data=04%7C01%7CVictor.Lazzarini%40mu.ie%7Cd277d16155fa464d6b2608d9118d8ee1%7C1454f5ccbb354685bbd98621fd8055c9%7C1%7C0%7C637560121961061511%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=F%2BQxzj2S9QfNUNDK3eIsH6%2Bv%2FQXaOXrlwbK%2BBp5WA6I%3D&reserved=0>


--
"Anybody who knows all about nothing knows everything" -- Leonard Susskind
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to