(I’m testing out Markdown Here extension on Firefox, to write emails in
Markdown. I type Markdown in a text editor, paste it into Gmail, and it
renders. But Gmail edits are not translated back into Markdown. The
formatting seems different, does it look good?)
Your workaround works for calling fir_delay using par(_). However, the
function no longer works when called with a named parameter.
------------------------------
Also, I don’t understand how the split operator works on named
parameters: func(x,y)
= _ <: something(y,x,y)
Specifically, the function uses named arguments, you pass _ to split
composition, and you continue using named arguments afterwards. What does
that mean?
------------------------------
Note: While investigating, I found out there’s faust -d . I think this
translates expressions into “stack-based” underscore-only form.
process(x,y) = y,x; becomes \(x1).(\(x2).(x2,x1));
What exactly are backslashes and dots, and how do they reorder arguments?
Do I need to understand this to write working Faust programs?
------------------------------
Am I correct that functions are substituted literally into the function
call?
- f(a)=_; f(1) becomes _ (inner-scope underscore ignores named arguments
and becomes outer-scope underscore)?
- f(x)=x+x; f(_) becomes _+_ (passing underscore as a named parameter,
becomes outer-scope underscore?)
Both of these are unintuitive but consistent behaviors.
One trick I discovered is to define f(x,y) = x,y: whatever to preserve
argument mapping.
------------------------------
EDIT: I rebuilt Faust from Git. *I’m pleasantly surprised that someone has
fixed bugs related to split composition or argument passing.*
import("music.lib");
fir_delay(i, val) = delay(32, i, val);
process(x) = fir_delay(48000, x);
Used to produce an error:
Connection error in : _<:x1,((48000 : int),(32,1 : -) : &) : @
The second expression : x1,((48000 : int),(32,1 : -) : &) : @ has no inputs
But now works just fine.
fir_delay(i, val) = fdelay(32, i, val); seems to work better. Each
fir_delay() pulls two arguments from _, which is consistent with the
previous section. The constant values are correctly passed into i.
Similarly, my original program seems to work properly now. I can only
assume that someone fixed a Faust bug related to parallel composition.
On Sun, May 29, 2016 at 12:56 AM, jimbo1qaz <[email protected]> wrote:
> (I’m testing out Markdown Here extension on Firefox, to write emails in
> Markdown. I type Markdown in a text editor, paste it into Gmail, and it
> renders. But Gmail edits are not translated back into Markdown. The
> formatting seems different, does it look good?)
>
> Your workaround works for calling fir_delay using par(_). However, the
> function no longer works when called with a named parameter.
> ------------------------------
>
> Also, I don’t understand how the split operator works on named parameters:
> “func(x,y) =
> * <: something(y,x,y)”Specifically, the function uses named arguments, you
> pass “*“ to split composition, and you continue using named arguments
> afterwards. What does that mean?
> ------------------------------
>
> Note: While investigating, I found out there’s faust -d . I think this
> translates expressions into “stack-based” underscore-only form.
>
> process(x,y) = y,x; becomes \(x1).(\(x2).(x2,x1));
>
> What exactly are backslashes and dots, and how do they reorder arguments?
> Do I need to understand this to write working Faust programs?
> ------------------------------
>
> Am I correct that functions are substituted literally into the function
> call?
>
> - f(a)=_; f(1) becomes _ (inner-scope underscore ignores named
> arguments and becomes outer-scope underscore)?
> - f(x)=x+x; f(_) becomes _+_ (passing underscore as a named parameter,
> becomes outer-scope underscore?)
>
> Both of these are unintuitive but consistent behaviors.
>
> One trick I discovered is to define f(x,y) = x,y: whatever to preserve
> argument mapping.
> ------------------------------
>
> EDIT: I rebuilt Faust from Git. *I’m pleasantly surprised that someone
> has fixed bugs related to split composition or argument passing.*
>
> import("music.lib");
> fir_delay(i, val) = delay(32, i, val);
> process(x) = fir_delay(48000, x);
>
> Used to produce an error:
>
> Connection error in : _<:x1,((48000 : int),(32,1 : -) : &) : @
> The second expression : x1,((48000 : int),(32,1 : -) : &) : @ has no inputs
>
> But now works just fine.
>
> fir_delay(i, val) = fdelay(32, i, val); seems to work better. Each
> fir_delay() pulls two arguments from _, which is consistent with the
> previous section. The constant values are correctly passed into i.
>
> Similarly, my original program seems to work properly now. I can only
> assume that someone fixed a Faust bug related to parallel composition.
>
>
------------------------------------------------------------------------------
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. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users