Re: [Faudiostream-users] FOF in faust

2016-05-22 Thread Stéphane Letz

> Le 22 mai 2016 à 16:37, Bart Brouns  a écrit :
> 
> Hi Stéphane,
> 
> Thanks for looking in to it.
> Does the -sch compile use huge amounts of RAM for you too?

 I have a 16 GO MacBook here,  and  I’m using Clang to compile, 

> I only have 4Gb, so probably swapping is my main problem..
> Which Faust version are you using?


Latest GIT.

> If version 2, did you check whether it produces sound when you input sound?

Yes sound is normally working. 
> 
> Sorry for bombarding you with questions like that!
> 
> The simplest dsp to reproduce it with is:
> 
> import ("lib/common.lib");
> import ("lib/FullGUI.lib");
> import ("lib/FOFvocoder.lib");
> process = fofOscs , fofOscs;
> 
> If I use just one fofOscs, it doesn't need swap, and all is fine.
> If I use my old FOF function all is fine too:
> git checkout a7bf8f3d22f6e38f23d9fcb40b1b6cbc5457cc03
> 
> 
> Thanks,
> Bart.
> 

process = fofOscs, fofOscs  ==>

scal mode DSP CPU use : 73 %

sched mode DSP CPU use : 17%

(time to compile 10mins 54 s, I don’t see this « huge RAM consumption » issue : 
going up to 1,5 GO maybe…)

Stéphane
--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] FOF in faust

2016-05-22 Thread Bart Brouns
Hi Stéphane,

Thanks for looking in to it.
Does the -sch compile use huge amounts of RAM for you too?
I only have 4Gb, so probably swapping is my main problem..
Which Faust version are you using?
If version 2, did you check whether it produces sound when you input 
sound?

Sorry for bombarding you with questions like that!

The simplest dsp to reproduce it with is:

import ("lib/common.lib");
import ("lib/FullGUI.lib");
import ("lib/FOFvocoder.lib");
process = fofOscs , fofOscs;

If I use just one fofOscs, it doesn't need swap, and all is fine.
If I use my old FOF function all is fine too:
git checkout a7bf8f3d22f6e38f23d9fcb40b1b6cbc5457cc03


Thanks,
Bart.



On Sun, May 22, 2016 at 12:44:22PM +0200, Stéphane Letz wrote:
>Answering part of your questions:
>
>- compiled onn MacBook Pro 4 cores 2,2 GHz : faust2jaqt scal and vec compile 
>quite fast, sch takes 24 mins. DSP CPU used with JACK 1024 frames:
>
>- scal ==> 98%
>
>- vec  ==> 79%
>
>- sch ==> 30% and is works OK compiled with faust2. I guess you are on Linux, 
>so is the problem with -sch mode reproductible with simpler .dsp ?
>
>Thanks.
>
>Stéphane
>
>> Le 20 mai 2016 à 23:35, Bart Brouns  a écrit :
>>
>> Hi,
>>
>> I'm porting Forme d'Onde Formantique (FOF) to faust. [1] [2]
>>
>> It's based on [3], but can be used with dynamic parameters.
>> [3] creates a single enveloped sine, and feeds it into a delay with full
>> feedback, so it never changes.
>>
>> My version has everything synced to a master lf_rawsaw, so it
>> continuously creates new enveloped sines.
>>
>> It has multiple parallel sine-envelope pairs, so the envelopes can
>> overlap without being cut off, and you get an octaviation coefficient
>> parameter almost 'for free' [4].
>>
>> A demo song: [5].
>>
>> The synth making most of the above sounds has a few problems:
>> - It takes too much CPU when compiled with -scal, -vec or -omp.
>> - When compiling with -sch, cc1plus eats about 13Gb of RAM/swap, and
>>  takes 7 hours. (faust 0.9.73 or faust 1 git)
>> - Faust 2 with -sch produces a silent program.
>>
>> Granted, those are 256 sine-envelope pairs, so it's a miracle it runs at
>> all!
>>
>> Steps to reproduce:
>>
>> git clone https://github.com/magnetophon/VoiceOfFaust
>> cd VoiceOfFaust
>> git checkout a44c5784e55f48ef44b76bac2e628e7a941e2474
>> time /home/bart/.nix-profile/bin/faust2jack -t 9 -time -osc -sch
>> FOFvocoder.dsp
>> ./FOFvocoder & sleep 2 && jack_connect system:capture_1 FOFvocoder:in_0
>> & jack_connect FOFvocoder:out_0 system:playback_1 & jack_connect
>> FOFvocoder:out_1 system:playback_2
>>
>> To use it as intended, you also have to run:
>> pd PureData/OscSendVoc.pd
>>
>>
>> Cheers,
>> Bart.
>>
>>
>> [1]
>> https://github.com/magnetophon/VoiceOfFaust/blob/NewFOF/lib/Foflet.dsp
>> [2]
>> http://anasynth.ircam.fr/home/english/media/singing-synthesis-chant-program
>> [3] https://ccrma.stanford.edu/~mjolsen/220a/fp/Foflet.dsp
>> [4] http://www.csounds.com/tootsother/fof/FOF.html
>> [5] http://magnetophon.nl/sounds/magnetophon/oldCombo-12.wav
>>
>> --
>> Mobile security can be enabling, not merely restricting. Employees who
>> bring their own devices (BYOD) to work are irked by the imposition of MDM
>> restrictions. Mobile Device Manager Plus allows you to control only the
>> apps on BYO-devices by containerizing them, leaving personal data untouched!
>> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>> ___
>> Faudiostream-users mailing list
>> Faudiostream-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
>
>--
>Mobile security can be enabling, not merely restricting. Employees who
>bring their own devices (BYOD) to work are irked by the imposition of MDM
>restrictions. Mobile Device Manager Plus allows you to control only the
>apps on BYO-devices by containerizing them, leaving personal data untouched!
>https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>___
>Faudiostream-users mailing list
>Faudiostream-users@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/faudiostream-users

--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Central bug tracker?

2016-05-22 Thread Bart Brouns
I would like that too. Maybe a github?

On 22 mei 2016, at 12:42, jimbo1qaz  wrote:

> Does Faust currently have a bug tracker system? This mailing list seems a bit 
> disorganized.
> --
> Mobile security can be enabling, not merely restricting. Employees who
> bring their own devices (BYOD) to work are irked by the imposition of MDM
> restrictions. Mobile Device Manager Plus allows you to control only the
> apps on BYO-devices by containerizing them, leaving personal data untouched!
> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
> ___
> Faudiostream-users mailing list
> Faudiostream-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/faudiostream-users

--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] FOF in faust

2016-05-22 Thread Stéphane Letz
Answering part of your questions:

- compiled onn MacBook Pro 4 cores 2,2 GHz : faust2jaqt scal and vec compile 
quite fast, sch takes 24 mins. DSP CPU used with JACK 1024 frames:

- scal ==> 98% 

- vec  ==> 79%

- sch ==> 30% and is works OK compiled with faust2. I guess you are on Linux, 
so is the problem with -sch mode reproductible with simpler .dsp ?

Thanks.

Stéphane

> Le 20 mai 2016 à 23:35, Bart Brouns  a écrit :
> 
> Hi,
> 
> I'm porting Forme d'Onde Formantique (FOF) to faust. [1] [2]
> 
> It's based on [3], but can be used with dynamic parameters.
> [3] creates a single enveloped sine, and feeds it into a delay with full 
> feedback, so it never changes.
> 
> My version has everything synced to a master lf_rawsaw, so it 
> continuously creates new enveloped sines.
> 
> It has multiple parallel sine-envelope pairs, so the envelopes can 
> overlap without being cut off, and you get an octaviation coefficient 
> parameter almost 'for free' [4].
> 
> A demo song: [5].
> 
> The synth making most of the above sounds has a few problems:
> - It takes too much CPU when compiled with -scal, -vec or -omp.
> - When compiling with -sch, cc1plus eats about 13Gb of RAM/swap, and 
>  takes 7 hours. (faust 0.9.73 or faust 1 git)
> - Faust 2 with -sch produces a silent program.
> 
> Granted, those are 256 sine-envelope pairs, so it's a miracle it runs at
> all!
> 
> Steps to reproduce:
> 
> git clone https://github.com/magnetophon/VoiceOfFaust
> cd VoiceOfFaust
> git checkout a44c5784e55f48ef44b76bac2e628e7a941e2474
> time /home/bart/.nix-profile/bin/faust2jack -t 9 -time -osc -sch 
> FOFvocoder.dsp
> ./FOFvocoder & sleep 2 && jack_connect system:capture_1 FOFvocoder:in_0 
> & jack_connect FOFvocoder:out_0 system:playback_1 & jack_connect 
> FOFvocoder:out_1 system:playback_2
> 
> To use it as intended, you also have to run:
> pd PureData/OscSendVoc.pd
> 
> 
> Cheers,
> Bart.
> 
> 
> [1] 
> https://github.com/magnetophon/VoiceOfFaust/blob/NewFOF/lib/Foflet.dsp
> [2] 
> http://anasynth.ircam.fr/home/english/media/singing-synthesis-chant-program
> [3] https://ccrma.stanford.edu/~mjolsen/220a/fp/Foflet.dsp
> [4] http://www.csounds.com/tootsother/fof/FOF.html
> [5] http://magnetophon.nl/sounds/magnetophon/oldCombo-12.wav
> 
> --
> Mobile security can be enabling, not merely restricting. Employees who
> bring their own devices (BYOD) to work are irked by the imposition of MDM
> restrictions. Mobile Device Manager Plus allows you to control only the
> apps on BYO-devices by containerizing them, leaving personal data untouched!
> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
> ___
> Faudiostream-users mailing list
> Faudiostream-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/faudiostream-users


--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


[Faudiostream-users] Central bug tracker?

2016-05-22 Thread jimbo1qaz
Does Faust currently have a bug tracker system? This mailing list seems a
bit disorganized.
--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Incorrect argument order with recursive composition and named parameters

2016-05-22 Thread jimbo1qaz
I found another problem, this time with split composition. The problem here
is that I don't have a clean workaround. Make sure to uncomment one line
only. Then run "faust -svg" to view the results.

Why does it seem like function calls and named arguments are horribly
buggy? Are those mostly untested, and not considered "idiomatic" Faust?...
Does Faust even have idioms, given how obscure the language is?

import("music.lib");

// WORKS
// fir_delay(i, val) = i+val;

// WORKS
// fir_delay(i, val) = delay(32, i, val);

// DOESN'T
// fir_delay(i, val) = fdelay(32, i, val);


process = _ <: par(i, 2,
fir_delay(3-i, _)
);

On Sun, May 22, 2016 at 3:08 AM, jimbo1qaz  wrote:

>
> -- Forwarded message --
> From: jimbo1qaz 
> Date: Sat, May 21, 2016 at 4:54 PM
> Subject: Re: [Faudiostream-users] Incorrect argument order with recursive
> composition and named parameters
> To: Bart Brouns 
>
>
> I solved Bug 1 by referencing "_" before "x".
> Anyway, I had to rewrite that section of the program due to a logic bug.
>
> I suspect the problem is that Faust translates named parameters into Block
> Diagram Normal Form, but fails to preserve the mapping between named
> parameters and underscores. In other words, it forgets which variable is
> which.
>
> Bug 2: Both of your suggested solutions.
>
>
>
> On Sat, May 21, 2016 at 3:19 PM, Bart Brouns  wrote:
>
>> On Fri, May 20, 2016 at 10:25:54PM -0700, jimbo1qaz wrote:
>>
>>> Another bug related to handling named parameters:
>>>
>>> func(x) = x^2 + x + 1;
>>> process = func(_); // I didn't test "process=func"
>>>
>>
>> I suggest you test that! ;)
>>
>> or:
>>
>> process(y) = func(y);
>>
>> I used y here, but I could just as well have called it x.
>> It doesn't matter what the parameter is called, only what it's value is
>> in the context that you use it in.
>>
>> Does that clear up your previous question as well?
>>
>>
>> Cheers,
>> Bart.
>>
>
>
>
--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Possible bug - "vslider(step=1) : int" vs. "rint"

2016-05-22 Thread jimbo1qaz
FaustLive on Linux.

x = vslider("Integer?", 5, 1, 64, 1):int;
// Replace 64 with 65 for "partially" incorrect values.
// Replace :int with :rint to workaround.

y = vbargraph("Not!", 0, 65);
process = attach(_, y(x));

On Sun, May 22, 2016 at 12:40 AM, Albert Graef  wrote:

> On Sun, May 22, 2016 at 1:44 AM, jimbo1qaz  wrote:
>
>> I spent hours trying to find why my plugin didn't sound right.
>> Eventually, I discovered that even integer sliders have roundoff errors. I
>> didn't realize earlier because the GUI displays them as integers, which
>> advanced without skipping numbers when I used the mousewheel on the "text
>> box" field.
>
>
> This sounds like an architecture or host-side issue to me. Which
> architecture and/or host application do you use? And can you please post a
> minimal Faust program which exhibits this behavior?
>
> --
> Dr. Albert Gr"af
> Computer Music Research Group, JGU Mainz, Germany
> Email:  aggr...@gmail.com
> WWW:https://plus.google.com/+AlbertGraef
>
--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Calling functions using arguments taken from lists?

2016-05-22 Thread jimbo1qaz
EDIT: Use par(), not seq().

The problem in my case was that par(i...) has zero-indexed "i", but
take(i...) has one-indexed i. Additionally, the error message was very
confusing and didn't which line of code, and which variable access was bad.
Instead, it spit out a long and confusing template match error. That's
because take and subseq are implemented using template match
(a,(a,(a,...))).

Is FaustLive truncating my errors?

On Sat, May 21, 2016 at 2:50 PM, Bart Brouns  wrote:

> Hi Jimbo,
>
> I think you are looking for subseq in math.lib.
>
> Usage example:
>
> process = seq(i, 2, f(subseq((val1,val2),i,1)));
>
> Hope that helps,
> Bart.
>
>
> On Fri, May 20, 2016 at 09:45:30PM -0700, jimbo1qaz wrote:
>
>> New user of Faust here. I'm trying to call a function using arguments
>> taken
>> from a list.
>>
>> So far, I've tried:
>>
>> val1 = 0; val2 = 0;
>> geti = take(_, (val1, val2));
>>
>> seq(i, 2, f(val%i));
>> seq(i, 2, f(geti(i));
>> seq(i, 2, f(geti(%i));
>>
>> None of these work. Is list/array looping implemented in FAUST?
>>
>>  PROPOSED SOLUTION 
>>
>> Python has a "zip" function to pick the first element out of each
>> argument,
>> then the second For example, zip((1,2), (a,b)) == ((1,a), (2,b)).
>>
>> In Python, I'd implement such a thing as:
>> for value, vol, pan in zip(stereo, vols, pans): func(value, vol, pan)
>>
>> This would "almost" works with the "<:" operator, but it doesn't really
>> work well when passing the same value into all function calls.
>>
>> Workaround for this issue: You can declare this unchanging value in a with
>> statement, then use the variable name.
>>
>
>
>> --
>> Mobile security can be enabling, not merely restricting. Employees who
>> bring their own devices (BYOD) to work are irked by the imposition of MDM
>> restrictions. Mobile Device Manager Plus allows you to control only the
>> apps on BYO-devices by containerizing them, leaving personal data
>> untouched!
>> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>>
>
> ___
>> Faudiostream-users mailing list
>> Faudiostream-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>
>
>
--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


[Faudiostream-users] Fwd: Incorrect argument order with recursive composition and named parameters

2016-05-22 Thread jimbo1qaz
-- Forwarded message --
From: jimbo1qaz 
Date: Sat, May 21, 2016 at 4:54 PM
Subject: Re: [Faudiostream-users] Incorrect argument order with recursive
composition and named parameters
To: Bart Brouns 


I solved Bug 1 by referencing "_" before "x".
Anyway, I had to rewrite that section of the program due to a logic bug.

I suspect the problem is that Faust translates named parameters into Block
Diagram Normal Form, but fails to preserve the mapping between named
parameters and underscores. In other words, it forgets which variable is
which.

Bug 2: Both of your suggested solutions.



On Sat, May 21, 2016 at 3:19 PM, Bart Brouns  wrote:

> On Fri, May 20, 2016 at 10:25:54PM -0700, jimbo1qaz wrote:
>
>> Another bug related to handling named parameters:
>>
>> func(x) = x^2 + x + 1;
>> process = func(_); // I didn't test "process=func"
>>
>
> I suggest you test that! ;)
>
> or:
>
> process(y) = func(y);
>
> I used y here, but I could just as well have called it x.
> It doesn't matter what the parameter is called, only what it's value is in
> the context that you use it in.
>
> Does that clear up your previous question as well?
>
>
> Cheers,
> Bart.
>
--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users


Re: [Faudiostream-users] Possible bug - "vslider(step=1) : int" vs. "rint"

2016-05-22 Thread Albert Graef
On Sun, May 22, 2016 at 1:44 AM, jimbo1qaz  wrote:

> I spent hours trying to find why my plugin didn't sound right. Eventually,
> I discovered that even integer sliders have roundoff errors. I didn't
> realize earlier because the GUI displays them as integers, which advanced
> without skipping numbers when I used the mousewheel on the "text box" field.


This sounds like an architecture or host-side issue to me. Which
architecture and/or host application do you use? And can you please post a
minimal Faust program which exhibits this behavior?

-- 
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany
Email:  aggr...@gmail.com
WWW:https://plus.google.com/+AlbertGraef
--
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users