Le 2 mars 2016 à 20:46, Albert Graef <aggr...@gmail.com> a écrit :

> On Wed, Mar 2, 2016 at 2:44 PM, Vincent G. Listes <infopap...@yahoo.com.sg> 
> wrote:
> Is there a document somewhere outside the code that explains polyphony 
> handling in FAUST ?
> 
> That's easy to explain: There is no polyphony handling in Faust. :) This 
> falls outside of Faust's scope, all handling of MIDI and other specific 
> control interfaces is done in the architectures.
> 
> That said, Stéphane has recently added a polyphony implementation to the 
> Faust headers, which was used to implement the polyphony support in 
> FaustLive. He should be able to tell you more about this
> 
> Stéphane will surely correct me if I'm wrong :), but I think that right now 
> the most mature polyphony implementations is in the faust-lv2 and faust-vst 
> architectures, featuring MIDI CC mapping, MIDI master tuning and pitch bend 
> range controls, MTS tunings, and multi-channel voice allocation. (All that 
> baggage might actually get in the way if you want to roll your own 
> implementation, but it might be worth taking a look at.)

Sure, the poly-dsp.h implementation is much simpler than Albert's faust-lv2 and 
faust-vst architectures, and was intended to be "good enough"… But now the 
question is : what is "good enough" ? ((-;  

My initial idea was to possibly share more code with faust-lv2 and faust-vst 
architectures, but since the code is not so easy to follow, and even not 
completely shared between faust-lv2 and faust-vst..., I gradually improved an 
initial implementation of Romain + Yann done for Android.

> 
> Basically, the convention is that a dsp intended to be used as an instrument 
> should provide control parameters labelled "freq" (pitch in Hz), "gain" 
> (velocity normalized to the 0-1 range) and "gate" (0/1 signal indicating 
> whether the voice is playing or not, to be used as a trigger for the envelop) 
> and implement a monophonic synthesizer using these. The rest is up to the 
> architecture. There are also some conventions concerning control meta data 
> indicating CC mappings ("[midi:ctrl n]") and such. Some of those meta tags 
> concerning MIDI and OSC are described in the Faust Quick Reference, IIRC. 
> There's also a recent article from Grame about that here: 
> http://faust.grame.fr/news/2016/01/14/controlling-with-midi.html. This mostly 
> applies to FaustLive, I guess, but [midi:ctrl n] is implemented at least by 
> some of the polyphonic plugin architectures, among them faust-lv2 and 
> faust-vst. Presumably an MPE synth architecture would implement its own voice 
> allocation and interpret some special meta tags in order to assign the MPE 
> controllers to corresponding controls in the Faust program. At least that's 
> how I would go about implementing it.
> 
> You're right, all this really needs to be documented somewhere. ;-) As it 
> stands, the above conventions were first implemented in some early 
> architectures and then became a kind of de facto standard way of doing these 
> things.
> 
> I will be at LAC@Berlin in April, and I've heard rumors that Yann might be 
> there as well. ;-) So if any of you guys attend LAC we could have a 
> discussion about all these things.
> 
> Albert
> 

If you guys think we can at some point create a unique implementation, usable 
by plugins and standalone applications, this would surely be better...

Stéphane




------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Faudiostream-devel mailing list
Faudiostream-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-devel

Reply via email to