On Thu, Feb 11, 2016 at 8:40 PM, Stéphane Letz <l...@grame.fr> wrote:
> We recently added polyphonic and MIDI support in FaustLive
Great news. :) As you asked for feedback...
Linux compilation:
We're almost there. :) I have Faust2 installed with `make world` from the
latest git, so all the needed addon libraries are there. A plain `make` of
FaustLive now goes through right up to linking without any hitches, then I
get:
../../src/objectsFolder/FLWindow.o: In function
`FLWindow::allocateHttpInterface()':
FLWindow.cpp:(.text+0x7bf6): undefined reference to `http_fetch(char
const*, char**)'
../../src/objectsFolder/FLWindow.o: In function
`httpdClientUI::UpdateUI(void*)':
FLWindow.cpp:(.text._ZN13httpdClientUI8UpdateUIEPv[_ZN13httpdClientUI8UpdateUIEPv]+0xb7):
undefined reference to `http_fetch(char const*, char**)'
../../src/objectsFolder/FLWindow.o: In function
`httpdClientUI::uiUrlValue::reflectZone()':
FLWindow.cpp:(.text._ZN13httpdClientUI10uiUrlValue11reflectZoneEv[_ZN13httpdClientUI10uiUrlValue11reflectZoneEv]+0x23d):
undefined reference to `http_fetch(char const*, char**)'
collect2: error: ld returned 1 exit status
It seems that for some reason libHTTPFaust.so contains http_fetch() without
external linkage (note the lowercase t):
$ nm /usr/local/lib/libHTTPDFaust.so|grep http_fetch
00000000000469b0 t _Z10http_fetchPKcPPc
In contrast, the static libHTTPFaust.a library *does* have http_fetch() as
an external symbol (note the uppercase T):
$ nm /usr/local/lib/libHTTPDFaust.a|grep http_fetch
0000000000000756 T _Z10http_fetchPKcPPc
Funny. And in fact the static build (`make STATIC=1`) works ok, the binary
links and runs all right. I haven't looked into why this happens yet. Do
others (non-Arch users) see the same issue?
Polyphony implementation:
Very nice, but not *quite* there yet IMHO. The Jack MIDI implementation is
looking good AFAICT right now, but I have the following pet peeves with the
voice allocation:
- No voice stealing. Try playing a fifth note with 4 voice polyphony when
all the voices are playing already. :) IMHO voice stealing should be the
default or at least selectable as an option.
- Voices seem to be shut down immediately when the corresponding note-off
is received. Consequently, note-offs produce audible clicks because the
voice doesn't have time to go through its release phase. To fix this,
voices should be managed in a round-robin (LIFO) fashion instead of FIFO
(which seems to be the case right now), and shouldn't be shut down before
their signal drops below a certain threshold (-60 dB maybe). A simple way
to deal with this is to just let all voices run all the time.
- Also, please implement the "all notes off" (123) and "all sounds off"
(120) controllers. This really needs to be done at the voice allocation
level. Otherwise you invariably end up with hanging notes galore, which is
especially annoying if there's no voice stealing. :) I found that some MIDI
players (like Drumstick on Linux) are just lazy and will send CC 120/123
instead of proper note-offs when some notes are still on when the user
presses the stop button. The usual "Panic" button to do the all
notes/sounds off action manually in FaustLive would also be helpful.
Finally, it's nice to be able to see all the parameters for each voice in
FaustLive and manipulate them separately. But there should be a "Lock"
button which binds together all the "global" synth parameters (i.e., all
parameters except freq, gain and gate) so that you can change stuff like
filter resonances or ADSR params for all voices simultaneously (which is
the usual way to operate a synth, so "Lock" should probably be checked by
default).
I hope that my nitpicking above doesn't sound too negative. In any case
being able to run FaustLive as an instrument is just awesome! A big thank
you for that! :)
Cheers,
Albert
--
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany
Email: aggr...@gmail.com
WWW: https://plus.google.com/+AlbertGraef
------------------------------------------------------------------------------
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