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