Re: [Faudiostream-users] Stable high pass filter
Hi Julius, I tried to come up with a minimal example, and came to the conclusion that it's not any particular piece of dsp that is at fault, but it's just that the compiler gets slow with elaborate constructions. Since originally the stable filters where suspect, I tested with my classicVocoder.dsp, which has 2 or 3 high passes and many bandpasses. All of them can be switched for unstable ones by setting a variable in lib/constants.lib to 0 and recompiling. In the same file, you can set the number of bands the vocoder has. Note: Changing the nrBands only changes how many of everything we have, it's the same dsp. To duplicate my experiment, do: git clone https://github.com/magnetophon/VoiceOfFaust.git or, if you already have it, git checkout master. cd VoiceOfFaust cp lib/smallConstants.lib lib/constants.lib all testing is done with: faust2jack -t 9 -time -osc -vec classicVocoder.dsp with nrBands = 4 and stableFilters 1, classicVocoder.dsp compiles in 40s so there is no problem with stableFilters or the way it's used here. with nrBands = 32 and stableFilters = 0, it takes 2min40,which makes sense, cause it's doing a lot more work. so a high number of bands is also no problem. with nrBands = 16 and stableFilters = 1, it takes 2min05 so no problem with medium nr of bands and stable filters either but then: with nrBands = 32 and stableFilters = 1, we're looking at 7min50! to show that the problem is also not necessarily in stableFilters or high number of bands: cp lib/bigConstants.lib lib/constants.lib It has nrBands = 16, stableFilters = 0, but lot's of other features turned on, and takes 6min25 To give a bit of context on how big the resulting dsp's are: with bigConstants iit takes 24% cpu at runtime, and with smallConstants with nrBands changed to 32 takes about the same. Unfortunately, the version that I'd like to use, bigConstants with 16 bands and stableFilters, takes 3 hours and 51 minutes to compile, even though it uses no more than 20% of my RAM. It uses 31% CPU at runtime. For my entry in the Faust Awards, I have 9 different of these beasts, so it'd be nice if they could compile quicker! ;) Many thanks, Bart. On Wed, Jun 15, 2016 at 04:14:08PM -0700, Julius Smith wrote: >Hi Bart, > >Actually I am on the master branch. > >6 minutes is still very long for a compile time! If any minimized >example takes more than a few seconds to compile, I would like to >drill down into that. We need that minimized example. > >As I mentioned earlier, there appeared to be a circular dependency in >the Evaluation phase for the compiler. However, something had to have >terminated the evaluation, so maybe infinite recursion is not a >possible explanation? > >- Julius > > >On Wed, Jun 15, 2016 at 1:55 AM, Bart Brounswrote: >> Hi Julius, >> >> Looks like you are using faust 2, right? >> >> I built the latest faust 1 to reproduce your issue, and got 12 min compile >> time for the stable highpass and 6 min for the regular one. >> >> Faust 2.0-a41 gives me a huge RAM usage and endless build time. >> >> I'm unable to build Faust 2 from git because my distro only provides .so >> libs for llvm, while Faust looks for .a libs. >> >> Thanks, >> Bart. >> >> >> On Tue, Jun 14, 2016 at 09:08:40PM -0700, Julius Smith wrote: >>> >>> I tried >>> >>> highpassStable(N,fc) = highpass(N,fc); >>> >>> and it still compiles forever >> >> >> > > > >-- >Julius O. Smith III >Professor of Music and, by courtesy, Electrical Engineering >CCRMA, Stanford University >http://ccrma.stanford.edu/~jos/ -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohomanageengine ___ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users
Re: [Faudiostream-users] Inputs outputs composition
That was it, Thank you ! Pierre > Hi Pierre, > > You're looking for: > interleave(3,2) > > Cheers, > Bart > > On Thu, Jun 16, 2016 at 11:33:50AM -0400, Pierre Lecomte wrote: > >Hello, > > > >I'm wondering if it's possible to do some merge or split composition > >between A and B when the numbers of outputs of A is equal to number of > >inputs of B > > > >For example : A has (2*3 = 6 outputs) and B has (3*2) = 6 inputs > > > >When I do A<:B, or A>:B or A:B I've got this connection diagram > > > >A(0) => B(0) > >A(1) => B(1) > >A(2) => B(2) > >A(3) => B(3) > >A(4) => B(4) > >A(5) => B(5) > > > >I would like to implement an operation like merge or split but with the > >following result : > > > >A(0) => B(0) > >A(1) => B(2) > >A(2) => B(4) > > > >A(3)=> B(1) > >A(4)=> B(3) > >A(5)=> B(5) > > > > > >Any ideas ? > >Pierre > > > > > >--- > >--- What NetFlow Analyzer can do for you? Monitors network bandwidth and > >traffic patterns at an interface-level. Reveals which users, apps, and > >protocols are consuming the most bandwidth. Provides multi-vendor support > >for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using > >capacity planning reports. http://sdm.link/zohomanageengine > >___ > >Faudiostream-users mailing list > >Faudiostream-users@lists.sourceforge.net > >https://lists.sourceforge.net/lists/listinfo/faudiostream-users -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohomanageengine ___ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users
Re: [Faudiostream-users] Inputs outputs composition
Hi Pierre, You're looking for: interleave(3,2) Cheers, Bart On Thu, Jun 16, 2016 at 11:33:50AM -0400, Pierre Lecomte wrote: >Hello, > >I'm wondering if it's possible to do some merge or split composition between A >and B when the numbers of outputs of A is equal to number of inputs of B > >For example : A has (2*3 = 6 outputs) and B has (3*2) = 6 inputs > >When I do A<:B, or A>:B or A:B I've got this connection diagram > >A(0) => B(0) >A(1) => B(1) >A(2) => B(2) >A(3) => B(3) >A(4) => B(4) >A(5) => B(5) > >I would like to implement an operation like merge or split but with the >following result : > >A(0) => B(0) >A(1) => B(2) >A(2) => B(4) > >A(3)=> B(1) >A(4)=> B(3) >A(5)=> B(5) > > >Any ideas ? >Pierre > > >-- >What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic >patterns at an interface-level. Reveals which users, apps, and protocols are >consuming the most bandwidth. Provides multi-vendor support for NetFlow, >J-Flow, sFlow and other flows. Make informed decisions using capacity planning >reports. http://sdm.link/zohomanageengine >___ >Faudiostream-users mailing list >Faudiostream-users@lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/faudiostream-users -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohomanageengine ___ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users
[Faudiostream-users] Inputs outputs composition
Hello, I'm wondering if it's possible to do some merge or split composition between A and B when the numbers of outputs of A is equal to number of inputs of B For example : A has (2*3 = 6 outputs) and B has (3*2) = 6 inputs When I do A<:B, or A>:B or A:B I've got this connection diagram A(0) => B(0) A(1) => B(1) A(2) => B(2) A(3) => B(3) A(4) => B(4) A(5) => B(5) I would like to implement an operation like merge or split but with the following result : A(0) => B(0) A(1) => B(2) A(2) => B(4) A(3)=> B(1) A(4)=> B(3) A(5)=> B(5) Any ideas ? Pierre -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohomanageengine ___ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users
Re: [Faudiostream-users] Staccato: Help
Hi Nycholas, Here is a simple attack-release envelop generator. //--- `ar(a,r,t)` --- // Simple attack-release envelop generator // // Where: // * `a` = attack time in samples (a>0) // * `r` = release time in samples (r>0) // * `t` = trig signal, restart the envelop when not 0 // // Example: // // process = button("play") : ar(100,1) * library("music.lib").osc(440); // ar(a,r,t) = rec~(_,_):!,_ with { // n is the time position in the envelop // v is the value of the envelop rec(n,v) = (n+1)*(t==0), max(0, v*(t==0) + (n=a)/r); }; Cheers Yann 2016-06-16 8:55 GMT+02:00 Albert Graef: > Yes, I see (or rather hear) what you mean. The adsr from the library > doesn't properly deal with zero sustains. Sorry, I don't have a ready-made > solution for this. Any dsp buff here who knows how to do an envelop which > enters the release phase immediately after attack (i.e., like ASR, but > without the S)? This shouldn't be too hard to do, but I can't wrap my head > around it at this time in the morning. ;-) > > On Thu, Jun 16, 2016 at 2:36 AM, Nycholas Maia wrote: > >> Hi Albert, >> >> Thank you for your quick response. >> Now the ADSR envelop start to work, but I can't get the staccato sound *(very >> fast/short sound)...like a percussive musical instrument.* >> If I press and sustain a MIDI keyboard DOWN, the FL play a continuos >> sound. And I don't want it now. >> Could you help me? >> >> Here is my simple code just to test the ADSR envelop and percussive >> sound: >> === >> import("music.lib"); >> import("instrument.lib"); >> >> freq = nentry("freq", 440, 20, 2, 1); >> gain = nentry("gain", 1, 0, 10, 0.01); >> gate = button("gate"); >> >> sine = osc(freq) * gain; >> >> Attack = hslider("Attack (ms)", 100, 0, 200, 1); >> Decay = hslider("Decay (ms)", 100, 0, 200, 1); >> Sustain = hslider("Sustain (percent)", 10, 0, 100, 1); >> Release = hslider("Release (ms)", 100, 0, 200, 1); >> >> // Convert to milliseconds: >> ADSR_env = adsr(Attack/1000, Decay/1000, 90, Release/1000, gate); >> >> process = (sine * ADSR_env) <: _, _; >> == >> >> Thank you for your patience. >> >> Kind regards! >> Nyck >> >> On Wed, Jun 15, 2016 at 3:52 PM, Albert Graef wrote: >> >>> Hi Nycholas, >>> >>> AFAICT from a quick glance, you've got two problems in your code: >>> >>> - gate must be a 0/1 signal if you want to use it to trigger asr/adsr. >>> That doesn't work if you pipe it through the smoothing filter. >>> >>> - you only multiply the signal by the envelop, not by envelop *and* gate >>> >>> On Wed, Jun 15, 2016 at 5:00 AM, Nycholas Maia >>> wrote: >>> gate = button("gate") : smooth(0.999); // 0/1 >>> >>> Remove ' : smooth(0.999)' here. >>> >>> process = (sine * ASR_env) * gate <: _, _; //process = (sine * ADSR_env) * gate <: _, _; >>> >>> Remove ' * gate' here. >>> >>> -- >>> Dr. Albert Gr"af >>> Computer Music Research Group, JGU Mainz, Germany >>> Email: aggr...@gmail.com >>> WWW:https://plus.google.com/+AlbertGraef >>> >> >> > > > -- > Dr. Albert Gr"af > Computer Music Research Group, JGU Mainz, Germany > Email: aggr...@gmail.com > WWW:https://plus.google.com/+AlbertGraef > > > -- > What NetFlow Analyzer can do for you? Monitors network bandwidth and > traffic > patterns at an interface-level. Reveals which users, apps, and protocols > are > consuming the most bandwidth. Provides multi-vendor support for NetFlow, > J-Flow, sFlow and other flows. Make informed decisions using capacity > planning > reports. > http://pubads.g.doubleclick.net/gampad/clk?id=1444514421=/41014381 > ___ > Faudiostream-users mailing list > Faudiostream-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/faudiostream-users > > -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://pubads.g.doubleclick.net/gampad/clk?id=1444514421=/41014381___ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users
Re: [Faudiostream-users] Staccato: Help
Yes, I see (or rather hear) what you mean. The adsr from the library doesn't properly deal with zero sustains. Sorry, I don't have a ready-made solution for this. Any dsp buff here who knows how to do an envelop which enters the release phase immediately after attack (i.e., like ASR, but without the S)? This shouldn't be too hard to do, but I can't wrap my head around it at this time in the morning. ;-) On Thu, Jun 16, 2016 at 2:36 AM, Nycholas Maiawrote: > Hi Albert, > > Thank you for your quick response. > Now the ADSR envelop start to work, but I can't get the staccato sound *(very > fast/short sound)...like a percussive musical instrument.* > If I press and sustain a MIDI keyboard DOWN, the FL play a continuos > sound. And I don't want it now. > Could you help me? > > Here is my simple code just to test the ADSR envelop and percussive sound: > === > import("music.lib"); > import("instrument.lib"); > > freq = nentry("freq", 440, 20, 2, 1); > gain = nentry("gain", 1, 0, 10, 0.01); > gate = button("gate"); > > sine = osc(freq) * gain; > > Attack = hslider("Attack (ms)", 100, 0, 200, 1); > Decay = hslider("Decay (ms)", 100, 0, 200, 1); > Sustain = hslider("Sustain (percent)", 10, 0, 100, 1); > Release = hslider("Release (ms)", 100, 0, 200, 1); > > // Convert to milliseconds: > ADSR_env = adsr(Attack/1000, Decay/1000, 90, Release/1000, gate); > > process = (sine * ADSR_env) <: _, _; > == > > Thank you for your patience. > > Kind regards! > Nyck > > On Wed, Jun 15, 2016 at 3:52 PM, Albert Graef wrote: > >> Hi Nycholas, >> >> AFAICT from a quick glance, you've got two problems in your code: >> >> - gate must be a 0/1 signal if you want to use it to trigger asr/adsr. >> That doesn't work if you pipe it through the smoothing filter. >> >> - you only multiply the signal by the envelop, not by envelop *and* gate >> >> On Wed, Jun 15, 2016 at 5:00 AM, Nycholas Maia >> wrote: >> >>> gate = button("gate") : smooth(0.999); // 0/1 >>> >> >> Remove ' : smooth(0.999)' here. >> >> process = (sine * ASR_env) * gate <: _, _; >>> //process = (sine * ADSR_env) * gate <: _, _; >>> >> >> Remove ' * gate' here. >> >> -- >> Dr. Albert Gr"af >> Computer Music Research Group, JGU Mainz, Germany >> Email: aggr...@gmail.com >> WWW:https://plus.google.com/+AlbertGraef >> > > -- Dr. Albert Gr"af Computer Music Research Group, JGU Mainz, Germany Email: aggr...@gmail.com WWW:https://plus.google.com/+AlbertGraef -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://pubads.g.doubleclick.net/gampad/clk?id=1444514421=/41014381___ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users
Re: [Faudiostream-users] [Faudiostream-devel] SR now a float
Hi Julius, You can. Actually the fSamplingFreq field is still an int and still accessible. In the definition of SR it is converted to float or double according to the floating point size option of the Faust compiler. Is it enough ? Cheers, Yann Yann Orlarey Directeur scientifique www.grame.fr 2016-06-14 23:43 GMT+02:00 Julius Smith: > Hi guys, > > Making SR a float is great, but can we make it double? A 32-bit float can > specify a quartz clock frequency to only about 1% accuracy. > > - Julius > > > On Tue, Jun 14, 2016 at 11:40 AM Albert Graef wrote: > >> Hi Yann, >> >> >> On Tue, Jun 14, 2016 at 7:40 PM, Yann Orlarey wrote: >> >>> But you know that I would not make you such a bad thing, right ? >>> >> >> Really? BTW, talking about high blood pressure, I'm still waiting for >> that LAC17 proposal to show up on lac-team some time... Touché. ;-) >> >> >>> Concerning a test suite, you can use the one in tools/faust2appls/test. >>> It tests all the faust2xxx scripts. >>> >> >> Ah yes, I think I remember that now. Thanks for the reminder! >> >> Cheers, >> Albert >> >> -- >> Dr. Albert Gr"af >> Computer Music Research Group, JGU Mainz, Germany >> Email: aggr...@gmail.com >> WWW:https://plus.google.com/+AlbertGraef >> >> -- >> What NetFlow Analyzer can do for you? Monitors network bandwidth and >> traffic >> patterns at an interface-level. Reveals which users, apps, and protocols >> are >> consuming the most bandwidth. Provides multi-vendor support for NetFlow, >> J-Flow, sFlow and other flows. Make informed decisions using capacity >> planning >> reports. >> http://pubads.g.doubleclick.net/gampad/clk?id=1444514421=/41014381 >> ___ >> Faudiostream-devel mailing list >> faudiostream-de...@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/faudiostream-devel >> > -- What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://pubads.g.doubleclick.net/gampad/clk?id=1444514421=/41014381___ Faudiostream-users mailing list Faudiostream-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-users