Hi Philip,

Thanks for sharing your Emacs Faust IDE. I am not an Emacs user (shame on
me ;-)), but it will be of interest for many people! I know that Juan
Romero did an Emacs mode some years ago:
https://github.com/rukano/emacs-faust-mode. How does it compare with your
work ?

Concerning FaustWorks, it can be tricky to install, and you can spend the
whole duration of a workshop solving installation problems with the
participants. This is why FaustLive and online tools are better
alternatives for workshops. But once correctly installed FaustWorks is
pleasant to use. A nice feature is the realtime diagram of your code. I
know people using FaustWorks and FaustLive together (using FaustWorks as an
editor for a dsp file also opened and running in FaustLive).

Cheers

Yann

2017-07-18 22:34 GMT+02:00 Yassin Philip <[email protected]>:

> On 18/07/17 10:20, Yann Orlarey wrote:
>
> Hi Philip,
>
> Hi Yann!
>
> Let's say that you want to control the frequency of an oscillator using
> the signal delivered by the amplitude follower. You can write:
>
> import("stdfaust.lib");
> process = an.amp_follower(0.1) : *(440) : +(440) : os.osc;
>
>
> The amplitude follower delivers an amplitude signal between 0 and 1. This
> signal is then mapped between 440 and 880 Hz to control the frequency of
> the oscillator.
>
> So far, so good. And thank you for this mapping trick, it's pretty neat.
>
> This example can be refined to use the amplitude follower also to control
> the level of the oscillator:
>
> import("stdfaust.lib");
> process = an.amp_follower(0.1) <: (*(440) : +(440) : os.osc), _ : *;
>
> Wow, neater and neater :) But wait, how are the frequency, and now the
> input level, identified/implied? I mean how do you look at the above
> expression and intuitively say "Oh, this is the frequency, and this must be
> the level"?
>
> In order to understand these examples, please note that Faust expressions
> can combine different types of notations:
>
>    - core notation: 2,3:foo,
>    - applicative notation: foo(2,3),
>    - partial application notation: 3:foo(2).
>    - as well as infix notation: 10*(2+3).
>
> Aaah, yes! Light! Thanks for that, really. I'm sure It's written
> everywhere, explained in so many ways, but I guess it needed to be hammered
> in my brain (the colouring, surely) :/ Thank you and sorry for being so
> wooden.
>
> The expression an.amp_follower(0.1) is an example of partial application
> notation. The amplitude follower has two inputs: the first one is the
> release time and the second one is the signal to analyze.
>
> But those two inputs are not mentioned in the amp_follower documentation
> <http://faust.grame.fr/library.html#amp_follower>! Well, I guess the
> "signal to analyse" is implied by the "_ :" part..?
>
> This is equivalent to:
>
> 0.1, _ : an.amp_follower
>
> So now, the amp_follower takes two.. inputs..?
>
> Using only core notation the first example could be rewritten as:
>
> import("stdfaust.lib");
> process = 0.1, _ : an.amp_follower, 440 : *, 440 : + : os.osc;
>
> While using only infix and applicative notation, it could be rewritten as:
>
> import("stdfaust.lib");
> process(x) = os.osc(440 + 440*an.amp_follower(0.1,x));
>
> I'm going to have to print this mail and put it above my monitor, I guess.
>
> How do you choose between core, infix and partial application notations?
> It is largely a matter of taste. Personnaly, I like to combine core
> notation (for the overall structure) with partial application notation (for
> the slowly varying "parameters") as in the first two examples, and infix
> notation for mathematical expressions.
>
> Ah, yes, a lot of Faust source code syntax I read make sense, now.
>
> Cheers
>
> Yann
>
> Thank you very much, Yann. I'm going to study and practice your example,
> which look like a solid foundation for understanding the core of Faust
> object connexions and parameters. Wow, I find Faust incredible.
>
>
> Philippe Coatmeur
>
> PS - BTW I put together (it's still WIP, specifically in the domain of
> indenting (grammar, rules, that sort of things, it's like C syntax
> basically, right?)) an emacs major mode for editing Faust code
> <https://bitbucket.org/yassinphilip/emacs-faust-ide>  after hearing
> Romain Michon in the intro/presentation/install
> <https://ccrma.stanford.edu/%7Ermichon/faustWorkshops/course2015/#intro>
> of his (quite superb, generous, clever, insightful, please thank him)
> wokshop repeating about FaustWorks "don't don't don't install, don't use
> it... just don't" which is I think a poor eulogy for what is at least a
> great proof of concept ; I was - as with basically all the pieces of the
> Faust ecosystem - quite baffled with it. For starters it works, and while
> the editor is very crude (no line # and no search was it for me) I think
> it's very neat and friendly.
>
> For now, My Emacs IDE is doing everything FaustWorks does, and it's a
> thing, at least for me :) I want to interface it with Faust Live, I cloned
> the branch but I don't want to mess my install (can Faust and Faust 2 live
> together?) for now, but eventually I want to integrate it too.
>
> -------------------------
>
> Yann Orlarey
> Directeur scientifique
> www.grame.fr
>
>
>
> 2017-07-17 16:30 GMT+02:00 Yassin Philip <[email protected]>:
>
>> An amplitude follower is just a detection/analysis tool, right?
>> So you pass a signal through it, and it "follows the amplitude" of said
>> signal, correct?
>>
>> How do I retrieve the information gathered by this amplitude follower to
>> use it elsewhere? I think once I get this logic, I'll really be on my way.
>>
>> Phil
>>
>> --
>> Yassin Philip      New album NOW
>> http://yassinphilip.bitbucket.io
>>
>>
>> ------------------------------------------------------------
>> ------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Faudiostream-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>
>
>
> --
> Yassin Philip      New album NOWhttp://yassinphilip.bitbucket.io
>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Faudiostream-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to