#11 split Master::mutex into initMutex and processMutex

closed-out-of-date
nobody
None
5
2009-09-02
2007-02-04
Karsten
No

Master::initMutex is used when we expect longer timeouts during Instruments loading or bankswitching.
jackprocess() uses pthread_mutex_trylock() on it and
outputs silence, if initMutex isn't available

Master::processMutex is used to protect note/parameter events from actual soundgeneration.
jackprocess() unconditionally requests it, so there are far less crackles.

Patch is against cvs head of yesterday.
It contains a Makefile.inc change switching zyn to jackd + alsa - midi mode.

jackd-midi is commented out as it didn't compile here.

PADnoteParameters::applyparameters()'s "bool lockmutex" argument is deleted as its always called with true.

Discussion

  • Karsten
    Karsten
    2007-02-04

    patch lit Master::mutex into initMutex and processMutex

     
  • evermind
    evermind
    2007-02-04

    Logged In: YES
    user_id=1352895
    Originator: NO

    same patch but with jackmidi
    2 additonal patches:
    - optional jackmidi
    - fix jackmidi breakage
    http://evermind.ev.funpic.de/zyn-patches/

     
  • Gerald Folcher
    Gerald Folcher
    2007-02-04

    Logged In: YES
    user_id=1626570
    Originator: NO

    Hello,

    Compilation fails if LINUX_AUDIOOUT=OSS_AND_JACK in the Makefile.inc, giving the following errors:
    main.C: In function ‘void* thread2(void*)’:
    main.C:149: error: ‘class Master’ has no member named ‘mutex’
    main.C:151: error: ‘class Master’ has no member named ‘mutex’

    After replacing 'mutex' with 'processMutex' on these two lines it seems to compile and run ok.

     
  • Mark McCurry
    Mark McCurry
    2009-09-02

    • status: open --> closed-out-of-date