Ah, that makes more sense. First thing first, nMax should be a fixed number
and you're lucky that your code actually works ;). As for the tuning,
that's one of the things with waveguide models: their tuning often has to
be adjusted "by hand." This is due to the fact that extra delay is added by
the various filters in the algorithm. So your best bet here is to adjust
the tuning using an external oscillator and comparing the produced pitch to
it.

Cheers,

Romain

On Tue, Oct 13, 2020 at 11:44 PM Rich Cochrane <rich.cochr...@bigi.org.uk>
wrote:

> Thanks to both of you for replying -- it was probably unhelpful of me not
> to post the whole code, which I'm attaching here. The whole thing does
> produce a note, but the pitch is off (octaves are very flat).
> However, asking you to pick my altered version of someone else's code isn't
> very reasonable.
>
> Romain -- I'll look at the example you suggested, I imagine that's a
> better starting-point anyway.
>
> Cheers,
>
> Rich
>
> On Tue, Oct 13, 2020 at 3:10 PM Romain Michon <rmnmic...@gmail.com> wrote:
>
>> Hi Rich,
>>
>> This indeed won't make any sound. The waveguide object of the physical
>> modeling library in Faust is just 2 delay lines in parallel : it's just a
>> simple waveguide without terminations. For a simple string example, have a
>> look at the openString function:
>> https://github.com/grame-cncm/faustlibraries/blob/master/physmodels.lib#L471
>>
>> Cheers,
>>
>> Romain
>>
>> On Sat, Oct 10, 2020 at 4:05 AM Julius Smith <julius.sm...@gmail.com>
>> wrote:
>>
>>> Hi Rich,
>>>
>>> I am not familiar with this code, but thanks for the pointers.
>>>
>>> You have the right idea.  ma.SR/freq needs to equal the round-trip delay
>>> up and down the waveguide, adding up all delay line lengths, all filter
>>> delays, and the feedback delay from the Faust compiler (there's always at
>>> least one sample of that in any closed loop).
>>>
>>> Cheers,
>>> Julius
>>>
>>> On Fri, Oct 9, 2020 at 6:55 AM Rich Cochrane <rich.cochr...@bigi.org.uk>
>>> wrote:
>>>
>>>> Hello,
>>>>
>>>> I'm trying to learn Faust's physical modeling features "by
>>>> experimentation" so am blundering around a bit.
>>>>
>>>> I found the last example on this page comprehensible:
>>>> "Waveguide-Strings in Faust":
>>>> https://hvc.berlin/Sound_Synthesis/Physical_Modeling/physical-modeling-faust-examples/
>>>>
>>>> I wanted to be able to play it with a keyboard. I thought this might
>>>> work:
>>>>
>>>> segment(pos) = waveguide(nMax,n)
>>>>   with{
>>>>   nMax = ma.SR/freq;
>>>>   n = pos * nMax;
>>>>   };
>>>>
>>>> Where freq is the usual frequency value triggered by a MIDI keyboard.
>>>> But the result is a long way out of tune.
>>>>
>>>> I tried "nMax = freq : pm.f2l : pm.l2s;" instead but this appears to
>>>> have the same net effect -- at least, it's also out of tune.
>>>>
>>>> What's the proper way to do this? Or is this base code not the right
>>>> starting point for this?
>>>>
>>>> Cheers,
>>>>
>>>> Rich
>>>>
>>>>
>>>> _______________________________________________
>>>> Faudiostream-users mailing list
>>>> Faudiostream-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/faudiostream-users
>>>>
>>>
>>>
>>> --
>>> "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
>>>
>>
>>
>> --
>>
>> Romain Michon
>> +33 (0)7 67 39 72 40http://grame.fr/~michon
>>
>>

-- 

Romain Michon
+33 (0)7 67 39 72 40http://grame.fr/~michon
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to