From 40017887e9afb4e369522923bcd5c549742353e9 Mon Sep 17 00:00:00 2001 From: Danny McRae Date: Sat, 2 Feb 2008 05:42:03 +0000 Subject: [PATCH] Started work on a STK based multitimbral instrument. git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms-mv@689 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 198 ++++++++++ configure.in | 17 + include/basic_filters.h | 27 +- plugins/stk/Makefile.am | 3 +- plugins/stk/voices/Makefile.am | 16 + plugins/stk/voices/b3/Makefile.am | 46 +++ plugins/stk/voices/b3/artwork.png | Bin 0 -> 70825 bytes plugins/stk/voices/b3/b3_instrument.cpp | 103 +++++ plugins/stk/voices/b3/b3_instrument.h | 46 +++ plugins/stk/voices/b3/b3_instrument_view.cpp | 110 ++++++ plugins/stk/voices/b3/b3_instrument_view.h | 51 +++ plugins/stk/voices/b3/b3_model.cpp | 88 +++++ plugins/stk/voices/b3/b3_model.h | 86 ++++ plugins/stk/voices/b3/b3_processor.cpp | 51 +++ plugins/stk/voices/b3/b3_processor.h | 42 ++ plugins/stk/voices/b3/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/bandedwg/Makefile.am | 46 +++ plugins/stk/voices/bandedwg/artwork.png | Bin 0 -> 73241 bytes .../voices/bandedwg/bandedwg_instrument.cpp | 105 +++++ .../stk/voices/bandedwg/bandedwg_instrument.h | 46 +++ .../bandedwg/bandedwg_instrument_view.cpp | 121 ++++++ .../bandedwg/bandedwg_instrument_view.h | 53 +++ .../stk/voices/bandedwg/bandedwg_model.cpp | 98 +++++ plugins/stk/voices/bandedwg/bandedwg_model.h | 100 +++++ .../voices/bandedwg/bandedwg_processor.cpp | 53 +++ .../stk/voices/bandedwg/bandedwg_processor.h | 42 ++ plugins/stk/voices/bandedwg/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/blow_bottle/Makefile.am | 46 +++ plugins/stk/voices/blow_bottle/artwork.png | Bin 0 -> 71988 bytes .../blow_bottle/blow_bottle_instrument.cpp | 102 +++++ .../blow_bottle/blow_bottle_instrument.h | 47 +++ .../blow_bottle_instrument_view.cpp | 89 +++++ .../blow_bottle/blow_bottle_instrument_view.h | 50 +++ .../voices/blow_bottle/blow_bottle_model.cpp | 79 ++++ .../voices/blow_bottle/blow_bottle_model.h | 63 +++ .../blow_bottle/blow_bottle_processor.cpp | 53 +++ .../blow_bottle/blow_bottle_processor.h | 43 ++ plugins/stk/voices/blow_bottle/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/blow_hole/Makefile.am | 46 +++ plugins/stk/voices/blow_hole/artwork.png | Bin 0 -> 71623 bytes .../voices/blow_hole/blow_hole_instrument.cpp | 103 +++++ .../voices/blow_hole/blow_hole_instrument.h | 46 +++ .../blow_hole/blow_hole_instrument_view.cpp | 110 ++++++ .../blow_hole/blow_hole_instrument_view.h | 51 +++ .../stk/voices/blow_hole/blow_hole_model.cpp | 88 +++++ .../stk/voices/blow_hole/blow_hole_model.h | 67 ++++ .../voices/blow_hole/blow_hole_processor.cpp | 51 +++ .../voices/blow_hole/blow_hole_processor.h | 42 ++ plugins/stk/voices/blow_hole/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/bowed/Makefile.am | 46 +++ plugins/stk/voices/bowed/artwork.png | Bin 0 -> 71559 bytes plugins/stk/voices/bowed/bowed_instrument.cpp | 102 +++++ plugins/stk/voices/bowed/bowed_instrument.h | 46 +++ .../voices/bowed/bowed_instrument_view.cpp | 100 +++++ .../stk/voices/bowed/bowed_instrument_view.h | 50 +++ plugins/stk/voices/bowed/bowed_model.cpp | 83 ++++ plugins/stk/voices/bowed/bowed_model.h | 79 ++++ plugins/stk/voices/bowed/bowed_processor.cpp | 50 +++ plugins/stk/voices/bowed/bowed_processor.h | 42 ++ plugins/stk/voices/bowed/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/brass/Makefile.am | 46 +++ plugins/stk/voices/brass/artwork.png | Bin 0 -> 71358 bytes plugins/stk/voices/brass/brass_instrument.cpp | 102 +++++ plugins/stk/voices/brass/brass_instrument.h | 46 +++ .../voices/brass/brass_instrument_view.cpp | 100 +++++ .../stk/voices/brass/brass_instrument_view.h | 50 +++ plugins/stk/voices/brass/brass_model.cpp | 83 ++++ plugins/stk/voices/brass/brass_model.h | 79 ++++ plugins/stk/voices/brass/brass_processor.cpp | 50 +++ plugins/stk/voices/brass/brass_processor.h | 42 ++ plugins/stk/voices/brass/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/clarinet/Makefile.am | 46 +++ plugins/stk/voices/clarinet/artwork.png | Bin 0 -> 71622 bytes .../voices/clarinet/clarinet_instrument.cpp | 103 +++++ .../stk/voices/clarinet/clarinet_instrument.h | 46 +++ .../clarinet/clarinet_instrument_view.cpp | 110 ++++++ .../clarinet/clarinet_instrument_view.h | 51 +++ .../stk/voices/clarinet/clarinet_model.cpp | 88 +++++ plugins/stk/voices/clarinet/clarinet_model.h | 86 ++++ .../voices/clarinet/clarinet_processor.cpp | 51 +++ .../stk/voices/clarinet/clarinet_processor.h | 42 ++ plugins/stk/voices/clarinet/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/flute/Makefile.am | 46 +++ plugins/stk/voices/flute/artwork.png | Bin 0 -> 71134 bytes plugins/stk/voices/flute/flute_instrument.cpp | 103 +++++ plugins/stk/voices/flute/flute_instrument.h | 46 +++ .../voices/flute/flute_instrument_view.cpp | 110 ++++++ .../stk/voices/flute/flute_instrument_view.h | 51 +++ plugins/stk/voices/flute/flute_model.cpp | 88 +++++ plugins/stk/voices/flute/flute_model.h | 86 ++++ plugins/stk/voices/flute/flute_processor.cpp | 51 +++ plugins/stk/voices/flute/flute_processor.h | 42 ++ plugins/stk/voices/flute/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/fmvoices/Makefile.am | 46 +++ plugins/stk/voices/fmvoices/artwork.png | Bin 0 -> 71849 bytes .../voices/fmvoices/fmvoices_instrument.cpp | 103 +++++ .../stk/voices/fmvoices/fmvoices_instrument.h | 46 +++ .../fmvoices/fmvoices_instrument_view.cpp | 110 ++++++ .../fmvoices/fmvoices_instrument_view.h | 51 +++ .../stk/voices/fmvoices/fmvoices_model.cpp | 88 +++++ plugins/stk/voices/fmvoices/fmvoices_model.h | 86 ++++ .../voices/fmvoices/fmvoices_processor.cpp | 51 +++ .../stk/voices/fmvoices/fmvoices_processor.h | 42 ++ plugins/stk/voices/fmvoices/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/include/stk_instrument.h | 168 ++++++++ .../stk/voices/include/stk_instrument_view.h | 181 +++++++++ plugins/stk/voices/include/stk_model.h | 184 +++++++++ plugins/stk/voices/include/stk_processor.h | 363 +++++++++++++++++ plugins/stk/voices/include/stk_voice.h | 369 ++++++++++++++++++ plugins/stk/voices/metal/Makefile.am | 46 +++ plugins/stk/voices/metal/artwork.png | Bin 0 -> 71394 bytes plugins/stk/voices/metal/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/metal/metal_instrument.cpp | 103 +++++ plugins/stk/voices/metal/metal_instrument.h | 46 +++ .../voices/metal/metal_instrument_view.cpp | 110 ++++++ .../stk/voices/metal/metal_instrument_view.h | 51 +++ plugins/stk/voices/metal/metal_model.cpp | 88 +++++ plugins/stk/voices/metal/metal_model.h | 86 ++++ plugins/stk/voices/metal/metal_processor.cpp | 51 +++ plugins/stk/voices/metal/metal_processor.h | 42 ++ plugins/stk/voices/moog/Makefile.am | 46 +++ plugins/stk/voices/moog/artwork.png | Bin 0 -> 71518 bytes plugins/stk/voices/moog/logo.png | Bin 0 -> 890 bytes plugins/stk/voices/moog/moog_instrument.cpp | 102 +++++ plugins/stk/voices/moog/moog_instrument.h | 46 +++ .../stk/voices/moog/moog_instrument_view.cpp | 100 +++++ .../stk/voices/moog/moog_instrument_view.h | 50 +++ plugins/stk/voices/moog/moog_model.cpp | 83 ++++ plugins/stk/voices/moog/moog_model.h | 79 ++++ plugins/stk/voices/moog/moog_processor.cpp | 50 +++ plugins/stk/voices/moog/moog_processor.h | 42 ++ plugins/stk/voices/percflute/Makefile.am | 46 +++ plugins/stk/voices/percflute/artwork.png | Bin 0 -> 71599 bytes plugins/stk/voices/percflute/logo.png | Bin 0 -> 890 bytes .../voices/percflute/percflute_instrument.cpp | 103 +++++ .../voices/percflute/percflute_instrument.h | 46 +++ .../percflute/percflute_instrument_view.cpp | 110 ++++++ .../percflute/percflute_instrument_view.h | 51 +++ .../stk/voices/percflute/percflute_model.cpp | 88 +++++ .../stk/voices/percflute/percflute_model.h | 86 ++++ .../voices/percflute/percflute_processor.cpp | 51 +++ .../voices/percflute/percflute_processor.h | 42 ++ plugins/stk/voices/resonate/Makefile.am | 46 +++ plugins/stk/voices/resonate/artwork.png | Bin 0 -> 71786 bytes plugins/stk/voices/resonate/logo.png | Bin 0 -> 890 bytes .../voices/resonate/resonate_instrument.cpp | 102 +++++ .../stk/voices/resonate/resonate_instrument.h | 46 +++ .../resonate/resonate_instrument_view.cpp | 100 +++++ .../resonate/resonate_instrument_view.h | 50 +++ .../stk/voices/resonate/resonate_model.cpp | 83 ++++ plugins/stk/voices/resonate/resonate_model.h | 79 ++++ .../voices/resonate/resonate_processor.cpp | 50 +++ .../stk/voices/resonate/resonate_processor.h | 42 ++ plugins/stk/voices/rhodey/Makefile.am | 46 +++ plugins/stk/voices/rhodey/artwork.png | Bin 0 -> 71756 bytes plugins/stk/voices/rhodey/logo.png | Bin 0 -> 890 bytes .../stk/voices/rhodey/rhodey_instrument.cpp | 103 +++++ plugins/stk/voices/rhodey/rhodey_instrument.h | 46 +++ .../voices/rhodey/rhodey_instrument_view.cpp | 110 ++++++ .../voices/rhodey/rhodey_instrument_view.h | 51 +++ plugins/stk/voices/rhodey/rhodey_model.cpp | 88 +++++ plugins/stk/voices/rhodey/rhodey_model.h | 86 ++++ .../stk/voices/rhodey/rhodey_processor.cpp | 51 +++ plugins/stk/voices/rhodey/rhodey_processor.h | 42 ++ plugins/stk/voices/src/stk_model.cpp | 122 ++++++ plugins/stk/voices/tubebell/Makefile.am | 46 +++ plugins/stk/voices/tubebell/artwork.png | Bin 0 -> 71446 bytes plugins/stk/voices/tubebell/logo.png | Bin 0 -> 890 bytes .../voices/tubebell/tubebell_instrument.cpp | 103 +++++ .../stk/voices/tubebell/tubebell_instrument.h | 46 +++ .../tubebell/tubebell_instrument_view.cpp | 110 ++++++ .../tubebell/tubebell_instrument_view.h | 51 +++ .../stk/voices/tubebell/tubebell_model.cpp | 88 +++++ plugins/stk/voices/tubebell/tubebell_model.h | 86 ++++ .../voices/tubebell/tubebell_processor.cpp | 51 +++ .../stk/voices/tubebell/tubebell_processor.h | 42 ++ plugins/stk/voices/wurley/Makefile.am | 46 +++ plugins/stk/voices/wurley/artwork.png | Bin 0 -> 71568 bytes plugins/stk/voices/wurley/logo.png | Bin 0 -> 890 bytes .../stk/voices/wurley/wurley_instrument.cpp | 103 +++++ plugins/stk/voices/wurley/wurley_instrument.h | 46 +++ .../voices/wurley/wurley_instrument_view.cpp | 110 ++++++ .../voices/wurley/wurley_instrument_view.h | 51 +++ plugins/stk/voices/wurley/wurley_model.cpp | 88 +++++ plugins/stk/voices/wurley/wurley_model.h | 86 ++++ .../stk/voices/wurley/wurley_processor.cpp | 51 +++ plugins/stk/voices/wurley/wurley_processor.h | 42 ++ 187 files changed, 11475 insertions(+), 12 deletions(-) create mode 100644 plugins/stk/voices/Makefile.am create mode 100644 plugins/stk/voices/b3/Makefile.am create mode 100644 plugins/stk/voices/b3/artwork.png create mode 100644 plugins/stk/voices/b3/b3_instrument.cpp create mode 100644 plugins/stk/voices/b3/b3_instrument.h create mode 100644 plugins/stk/voices/b3/b3_instrument_view.cpp create mode 100644 plugins/stk/voices/b3/b3_instrument_view.h create mode 100644 plugins/stk/voices/b3/b3_model.cpp create mode 100644 plugins/stk/voices/b3/b3_model.h create mode 100644 plugins/stk/voices/b3/b3_processor.cpp create mode 100644 plugins/stk/voices/b3/b3_processor.h create mode 100644 plugins/stk/voices/b3/logo.png create mode 100644 plugins/stk/voices/bandedwg/Makefile.am create mode 100644 plugins/stk/voices/bandedwg/artwork.png create mode 100644 plugins/stk/voices/bandedwg/bandedwg_instrument.cpp create mode 100644 plugins/stk/voices/bandedwg/bandedwg_instrument.h create mode 100644 plugins/stk/voices/bandedwg/bandedwg_instrument_view.cpp create mode 100644 plugins/stk/voices/bandedwg/bandedwg_instrument_view.h create mode 100644 plugins/stk/voices/bandedwg/bandedwg_model.cpp create mode 100644 plugins/stk/voices/bandedwg/bandedwg_model.h create mode 100644 plugins/stk/voices/bandedwg/bandedwg_processor.cpp create mode 100644 plugins/stk/voices/bandedwg/bandedwg_processor.h create mode 100644 plugins/stk/voices/bandedwg/logo.png create mode 100644 plugins/stk/voices/blow_bottle/Makefile.am create mode 100644 plugins/stk/voices/blow_bottle/artwork.png create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_instrument.cpp create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_instrument.h create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.cpp create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.h create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_model.cpp create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_model.h create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_processor.cpp create mode 100644 plugins/stk/voices/blow_bottle/blow_bottle_processor.h create mode 100644 plugins/stk/voices/blow_bottle/logo.png create mode 100644 plugins/stk/voices/blow_hole/Makefile.am create mode 100644 plugins/stk/voices/blow_hole/artwork.png create mode 100644 plugins/stk/voices/blow_hole/blow_hole_instrument.cpp create mode 100644 plugins/stk/voices/blow_hole/blow_hole_instrument.h create mode 100644 plugins/stk/voices/blow_hole/blow_hole_instrument_view.cpp create mode 100644 plugins/stk/voices/blow_hole/blow_hole_instrument_view.h create mode 100644 plugins/stk/voices/blow_hole/blow_hole_model.cpp create mode 100644 plugins/stk/voices/blow_hole/blow_hole_model.h create mode 100644 plugins/stk/voices/blow_hole/blow_hole_processor.cpp create mode 100644 plugins/stk/voices/blow_hole/blow_hole_processor.h create mode 100644 plugins/stk/voices/blow_hole/logo.png create mode 100644 plugins/stk/voices/bowed/Makefile.am create mode 100644 plugins/stk/voices/bowed/artwork.png create mode 100644 plugins/stk/voices/bowed/bowed_instrument.cpp create mode 100644 plugins/stk/voices/bowed/bowed_instrument.h create mode 100644 plugins/stk/voices/bowed/bowed_instrument_view.cpp create mode 100644 plugins/stk/voices/bowed/bowed_instrument_view.h create mode 100644 plugins/stk/voices/bowed/bowed_model.cpp create mode 100644 plugins/stk/voices/bowed/bowed_model.h create mode 100644 plugins/stk/voices/bowed/bowed_processor.cpp create mode 100644 plugins/stk/voices/bowed/bowed_processor.h create mode 100644 plugins/stk/voices/bowed/logo.png create mode 100644 plugins/stk/voices/brass/Makefile.am create mode 100644 plugins/stk/voices/brass/artwork.png create mode 100644 plugins/stk/voices/brass/brass_instrument.cpp create mode 100644 plugins/stk/voices/brass/brass_instrument.h create mode 100644 plugins/stk/voices/brass/brass_instrument_view.cpp create mode 100644 plugins/stk/voices/brass/brass_instrument_view.h create mode 100644 plugins/stk/voices/brass/brass_model.cpp create mode 100644 plugins/stk/voices/brass/brass_model.h create mode 100644 plugins/stk/voices/brass/brass_processor.cpp create mode 100644 plugins/stk/voices/brass/brass_processor.h create mode 100644 plugins/stk/voices/brass/logo.png create mode 100644 plugins/stk/voices/clarinet/Makefile.am create mode 100644 plugins/stk/voices/clarinet/artwork.png create mode 100644 plugins/stk/voices/clarinet/clarinet_instrument.cpp create mode 100644 plugins/stk/voices/clarinet/clarinet_instrument.h create mode 100644 plugins/stk/voices/clarinet/clarinet_instrument_view.cpp create mode 100644 plugins/stk/voices/clarinet/clarinet_instrument_view.h create mode 100644 plugins/stk/voices/clarinet/clarinet_model.cpp create mode 100644 plugins/stk/voices/clarinet/clarinet_model.h create mode 100644 plugins/stk/voices/clarinet/clarinet_processor.cpp create mode 100644 plugins/stk/voices/clarinet/clarinet_processor.h create mode 100644 plugins/stk/voices/clarinet/logo.png create mode 100644 plugins/stk/voices/flute/Makefile.am create mode 100644 plugins/stk/voices/flute/artwork.png create mode 100644 plugins/stk/voices/flute/flute_instrument.cpp create mode 100644 plugins/stk/voices/flute/flute_instrument.h create mode 100644 plugins/stk/voices/flute/flute_instrument_view.cpp create mode 100644 plugins/stk/voices/flute/flute_instrument_view.h create mode 100644 plugins/stk/voices/flute/flute_model.cpp create mode 100644 plugins/stk/voices/flute/flute_model.h create mode 100644 plugins/stk/voices/flute/flute_processor.cpp create mode 100644 plugins/stk/voices/flute/flute_processor.h create mode 100644 plugins/stk/voices/flute/logo.png create mode 100644 plugins/stk/voices/fmvoices/Makefile.am create mode 100644 plugins/stk/voices/fmvoices/artwork.png create mode 100644 plugins/stk/voices/fmvoices/fmvoices_instrument.cpp create mode 100644 plugins/stk/voices/fmvoices/fmvoices_instrument.h create mode 100644 plugins/stk/voices/fmvoices/fmvoices_instrument_view.cpp create mode 100644 plugins/stk/voices/fmvoices/fmvoices_instrument_view.h create mode 100644 plugins/stk/voices/fmvoices/fmvoices_model.cpp create mode 100644 plugins/stk/voices/fmvoices/fmvoices_model.h create mode 100644 plugins/stk/voices/fmvoices/fmvoices_processor.cpp create mode 100644 plugins/stk/voices/fmvoices/fmvoices_processor.h create mode 100644 plugins/stk/voices/fmvoices/logo.png create mode 100644 plugins/stk/voices/include/stk_instrument.h create mode 100644 plugins/stk/voices/include/stk_instrument_view.h create mode 100644 plugins/stk/voices/include/stk_model.h create mode 100644 plugins/stk/voices/include/stk_processor.h create mode 100644 plugins/stk/voices/include/stk_voice.h create mode 100644 plugins/stk/voices/metal/Makefile.am create mode 100644 plugins/stk/voices/metal/artwork.png create mode 100644 plugins/stk/voices/metal/logo.png create mode 100644 plugins/stk/voices/metal/metal_instrument.cpp create mode 100644 plugins/stk/voices/metal/metal_instrument.h create mode 100644 plugins/stk/voices/metal/metal_instrument_view.cpp create mode 100644 plugins/stk/voices/metal/metal_instrument_view.h create mode 100644 plugins/stk/voices/metal/metal_model.cpp create mode 100644 plugins/stk/voices/metal/metal_model.h create mode 100644 plugins/stk/voices/metal/metal_processor.cpp create mode 100644 plugins/stk/voices/metal/metal_processor.h create mode 100644 plugins/stk/voices/moog/Makefile.am create mode 100644 plugins/stk/voices/moog/artwork.png create mode 100644 plugins/stk/voices/moog/logo.png create mode 100644 plugins/stk/voices/moog/moog_instrument.cpp create mode 100644 plugins/stk/voices/moog/moog_instrument.h create mode 100644 plugins/stk/voices/moog/moog_instrument_view.cpp create mode 100644 plugins/stk/voices/moog/moog_instrument_view.h create mode 100644 plugins/stk/voices/moog/moog_model.cpp create mode 100644 plugins/stk/voices/moog/moog_model.h create mode 100644 plugins/stk/voices/moog/moog_processor.cpp create mode 100644 plugins/stk/voices/moog/moog_processor.h create mode 100644 plugins/stk/voices/percflute/Makefile.am create mode 100644 plugins/stk/voices/percflute/artwork.png create mode 100644 plugins/stk/voices/percflute/logo.png create mode 100644 plugins/stk/voices/percflute/percflute_instrument.cpp create mode 100644 plugins/stk/voices/percflute/percflute_instrument.h create mode 100644 plugins/stk/voices/percflute/percflute_instrument_view.cpp create mode 100644 plugins/stk/voices/percflute/percflute_instrument_view.h create mode 100644 plugins/stk/voices/percflute/percflute_model.cpp create mode 100644 plugins/stk/voices/percflute/percflute_model.h create mode 100644 plugins/stk/voices/percflute/percflute_processor.cpp create mode 100644 plugins/stk/voices/percflute/percflute_processor.h create mode 100644 plugins/stk/voices/resonate/Makefile.am create mode 100644 plugins/stk/voices/resonate/artwork.png create mode 100644 plugins/stk/voices/resonate/logo.png create mode 100644 plugins/stk/voices/resonate/resonate_instrument.cpp create mode 100644 plugins/stk/voices/resonate/resonate_instrument.h create mode 100644 plugins/stk/voices/resonate/resonate_instrument_view.cpp create mode 100644 plugins/stk/voices/resonate/resonate_instrument_view.h create mode 100644 plugins/stk/voices/resonate/resonate_model.cpp create mode 100644 plugins/stk/voices/resonate/resonate_model.h create mode 100644 plugins/stk/voices/resonate/resonate_processor.cpp create mode 100644 plugins/stk/voices/resonate/resonate_processor.h create mode 100644 plugins/stk/voices/rhodey/Makefile.am create mode 100644 plugins/stk/voices/rhodey/artwork.png create mode 100644 plugins/stk/voices/rhodey/logo.png create mode 100644 plugins/stk/voices/rhodey/rhodey_instrument.cpp create mode 100644 plugins/stk/voices/rhodey/rhodey_instrument.h create mode 100644 plugins/stk/voices/rhodey/rhodey_instrument_view.cpp create mode 100644 plugins/stk/voices/rhodey/rhodey_instrument_view.h create mode 100644 plugins/stk/voices/rhodey/rhodey_model.cpp create mode 100644 plugins/stk/voices/rhodey/rhodey_model.h create mode 100644 plugins/stk/voices/rhodey/rhodey_processor.cpp create mode 100644 plugins/stk/voices/rhodey/rhodey_processor.h create mode 100644 plugins/stk/voices/src/stk_model.cpp create mode 100644 plugins/stk/voices/tubebell/Makefile.am create mode 100644 plugins/stk/voices/tubebell/artwork.png create mode 100644 plugins/stk/voices/tubebell/logo.png create mode 100644 plugins/stk/voices/tubebell/tubebell_instrument.cpp create mode 100644 plugins/stk/voices/tubebell/tubebell_instrument.h create mode 100644 plugins/stk/voices/tubebell/tubebell_instrument_view.cpp create mode 100644 plugins/stk/voices/tubebell/tubebell_instrument_view.h create mode 100644 plugins/stk/voices/tubebell/tubebell_model.cpp create mode 100644 plugins/stk/voices/tubebell/tubebell_model.h create mode 100644 plugins/stk/voices/tubebell/tubebell_processor.cpp create mode 100644 plugins/stk/voices/tubebell/tubebell_processor.h create mode 100644 plugins/stk/voices/wurley/Makefile.am create mode 100644 plugins/stk/voices/wurley/artwork.png create mode 100644 plugins/stk/voices/wurley/logo.png create mode 100644 plugins/stk/voices/wurley/wurley_instrument.cpp create mode 100644 plugins/stk/voices/wurley/wurley_instrument.h create mode 100644 plugins/stk/voices/wurley/wurley_instrument_view.cpp create mode 100644 plugins/stk/voices/wurley/wurley_instrument_view.h create mode 100644 plugins/stk/voices/wurley/wurley_model.cpp create mode 100644 plugins/stk/voices/wurley/wurley_model.h create mode 100644 plugins/stk/voices/wurley/wurley_processor.cpp create mode 100644 plugins/stk/voices/wurley/wurley_processor.h diff --git a/ChangeLog b/ChangeLog index 37c6e031c..dad6c29e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,204 @@ * src/core/song_editor.cpp: Some of the files have been renamed, so I updated the include references to get the build to work again. + + * include/basic_filters.h: + Added the ability to clear the filter taps to support + a LPF where the threshold is set by the velocity of + the note. + + * configure.in: + * plugins/stk/voices/resonate/resonate_processor.h: + * plugins/stk/voices/voices/resonate/resonate_instrument.h: + * plugins/stk/voices/voices/resonate/resonate_model.cpp: + * plugins/stk/voices/voices/resonate/resonate_instrument_view.cpp: + * plugins/stk/voices/voices/resonate/artwork.png: + * plugins/stk/voices/voices/resonate/resonate_processor.cpp: + * plugins/stk/voices/voices/resonate/resonate_instrument_view.h: + * plugins/stk/voices/voices/resonate/resonate_instrument.cpp: + * plugins/stk/voices/voices/resonate/logo.png: + * plugins/stk/voices/voices/resonate/resonate_model.h: + * plugins/stk/voices/voices/resonate/Makefile.am: + * plugins/stk/voices/voices/flute/artwork.png: + * plugins/stk/voices/voices/flute/flute_processor.cpp: + * plugins/stk/voices/voices/flute/flute_instrument_view.h: + * plugins/stk/voices/voices/flute/flute_model.h: + * plugins/stk/voices/voices/flute/flute_processor.h: + * plugins/stk/voices/voices/flute/flute_model.cpp: + * plugins/stk/voices/voices/flute/logo.png: + * plugins/stk/voices/voices/flute/flute_instrument.h: + * plugins/stk/voices/voices/flute/Makefile.am: + * plugins/stk/voices/voices/flute/flute_instrument_view.cpp: + * plugins/stk/voices/voices/flute/flute_instrument.cpp: + * plugins/stk/voices/voices/metal/metal_processor.h: + * plugins/stk/voices/voices/metal/metal_instrument.cpp: + * plugins/stk/voices/voices/metal/metal_processor.cpp: + * plugins/stk/voices/voices/metal/artwork.png: + * plugins/stk/voices/voices/metal/metal_instrument_view.cpp: + * plugins/stk/voices/voices/metal/metal_instrument.h: + * plugins/stk/voices/voices/metal/logo.png: + * plugins/stk/voices/voices/metal/metal_instrument_view.h: + * plugins/stk/voices/voices/metal/metal_model.cpp: + * plugins/stk/voices/voices/metal/Makefile.am: + * plugins/stk/voices/voices/metal/metal_model.h: + * plugins/stk/voices/voices/fmvoices/fmvoices_instrument.cpp: + * plugins/stk/voices/voices/fmvoices/fmvoices_processor.h: + * plugins/stk/voices/voices/fmvoices/fmvoices_instrument.h: + * plugins/stk/voices/voices/fmvoices/artwork.png: + * plugins/stk/voices/voices/fmvoices/fmvoices_instrument_view.h: + * plugins/stk/voices/voices/fmvoices/fmvoices_instrument_view.cpp: + * plugins/stk/voices/voices/fmvoices/logo.png: + * plugins/stk/voices/voices/fmvoices/fmvoices_processor.cpp: + * plugins/stk/voices/voices/fmvoices/fmvoices_model.cpp: + * plugins/stk/voices/voices/fmvoices/fmvoices_model.h: + * plugins/stk/voices/voices/fmvoices/Makefile.am: + * plugins/stk/voices/voices/moog/moog_instrument_view.h: + * plugins/stk/voices/voices/moog/moog_instrument_view.cpp: + * plugins/stk/voices/voices/moog/moog_model.cpp: + * plugins/stk/voices/voices/moog/moog_processor.h: + * plugins/stk/voices/voices/moog/artwork.png: + * plugins/stk/voices/voices/moog/logo.png: + * plugins/stk/voices/voices/moog/moog_model.h: + * plugins/stk/voices/voices/moog/moog_instrument.h: + * plugins/stk/voices/voices/moog/moog_instrument.cpp: + * plugins/stk/voices/voices/moog/moog_processor.cpp: + * plugins/stk/voices/voices/moog/Makefile.am: + * plugins/stk/voices/voices/include/stk_instrument_view.h: + * plugins/stk/voices/voices/include/stk_voice.h: + * plugins/stk/voices/voices/include/stk_instrument.h: + * plugins/stk/voices/voices/include/stk_model.h: + * plugins/stk/voices/voices/include/stk_processor.h: + * plugins/stk/voices/voices/wurley/wurley_instrument.h: + * plugins/stk/voices/voices/wurley/wurley_instrument_view.cpp: + * plugins/stk/voices/voices/wurley/wurley_model.cpp: + * plugins/stk/voices/voices/wurley/wurley_instrument_view.h: + * plugins/stk/voices/voices/wurley/wurley_model.h: + * plugins/stk/voices/voices/wurley/artwork.png: + * plugins/stk/voices/voices/wurley/wurley_processor.h: + * plugins/stk/voices/voices/wurley/logo.png: + * plugins/stk/voices/voices/wurley/Makefile.am: + * plugins/stk/voices/voices/wurley/wurley_processor.cpp: + * plugins/stk/voices/voices/wurley/wurley_instrument.cpp: + * plugins/stk/voices/voices/bowed/bowed_instrument.cpp: + * plugins/stk/voices/voices/bowed/bowed_model.cpp: + * plugins/stk/voices/voices/bowed/bowed_instrument_view.cpp: + * plugins/stk/voices/voices/bowed/bowed_model.h: + * plugins/stk/voices/voices/bowed/bowed_processor.h: + * plugins/stk/voices/voices/bowed/artwork.png: + * plugins/stk/voices/voices/bowed/bowed_processor.cpp: + * plugins/stk/voices/voices/bowed/logo.png: + * plugins/stk/voices/voices/bowed/bowed_instrument_view.h: + * plugins/stk/voices/voices/bowed/Makefile.am: + * plugins/stk/voices/voices/bowed/bowed_instrument.h: + * plugins/stk/voices/voices/blow_hole/blow_hole_instrument.cpp: + * plugins/stk/voices/voices/blow_hole/blow_hole_instrument_view.cpp: + * plugins/stk/voices/voices/blow_hole/artwork.png: + * plugins/stk/voices/voices/blow_hole/blow_hole_model.h: + * plugins/stk/voices/voices/blow_hole/blow_hole_processor.h: + * plugins/stk/voices/voices/blow_hole/logo.png: + * plugins/stk/voices/voices/blow_hole/blow_hole_processor.cpp: + * plugins/stk/voices/voices/blow_hole/blow_hole_instrument_view.h: + * plugins/stk/voices/voices/blow_hole/blow_hole_model.cpp: + * plugins/stk/voices/voices/blow_hole/Makefile.am: + * plugins/stk/voices/voices/blow_hole/blow_hole_instrument.h: + * plugins/stk/voices/voices/rhodey/rhodey_instrument_view.h: + * plugins/stk/voices/voices/rhodey/rhodey_processor.h: + * plugins/stk/voices/voices/rhodey/rhodey_processor.cpp: + * plugins/stk/voices/voices/rhodey/rhodey_instrument_view.cpp: + * plugins/stk/voices/voices/rhodey/artwork.png: + * plugins/stk/voices/voices/rhodey/rhodey_model.cpp: + * plugins/stk/voices/voices/rhodey/rhodey_model.h: + * plugins/stk/voices/voices/rhodey/rhodey_instrument.h: + * plugins/stk/voices/voices/rhodey/logo.png: + * plugins/stk/voices/voices/rhodey/rhodey_instrument.cpp: + * plugins/stk/voices/voices/rhodey/Makefile.am: + * plugins/stk/voices/voices/tubebell/tubebell_processor.cpp: + * plugins/stk/voices/voices/tubebell/tubebell_instrument_view.h: + * plugins/stk/voices/voices/tubebell/artwork.png: + * plugins/stk/voices/voices/tubebell/tubebell_instrument.h: + * plugins/stk/voices/voices/tubebell/tubebell_instrument.cpp: + * plugins/stk/voices/voices/tubebell/tubebell_model.h: + * plugins/stk/voices/voices/tubebell/logo.png: + * plugins/stk/voices/voices/tubebell/tubebell_model.cpp: + * plugins/stk/voices/voices/tubebell/tubebell_instrument_view.cpp: + * plugins/stk/voices/voices/tubebell/Makefile.am: + * plugins/stk/voices/voices/tubebell/tubebell_processor.h: + * plugins/stk/voices/voices/clarinet/clarinet_instrument.cpp: + * plugins/stk/voices/voices/clarinet/artwork.png: + * plugins/stk/voices/voices/clarinet/clarinet_processor.h: + * plugins/stk/voices/voices/clarinet/clarinet_processor.cpp: + * plugins/stk/voices/voices/clarinet/clarinet_instrument.h: + * plugins/stk/voices/voices/clarinet/clarinet_model.cpp: + * plugins/stk/voices/voices/clarinet/logo.png: + * plugins/stk/voices/voices/clarinet/clarinet_instrument_view.cpp: + * plugins/stk/voices/voices/clarinet/clarinet_model.h: + * plugins/stk/voices/voices/clarinet/Makefile.am: + * plugins/stk/voices/voices/clarinet/clarinet_instrument_view.h: + * plugins/stk/voices/voices/b3/b3_instrument.cpp: + * plugins/stk/voices/voices/b3/b3_model.h: + * plugins/stk/voices/voices/b3/b3_model.cpp: + * plugins/stk/voices/voices/b3/artwork.png: + * plugins/stk/voices/voices/b3/b3_instrument_view.h: + * plugins/stk/voices/voices/b3/logo.png: + * plugins/stk/voices/voices/b3/b3_processor.h: + * plugins/stk/voices/voices/b3/b3_instrument_view.cpp: + * plugins/stk/voices/voices/b3/b3_instrument.h: + * plugins/stk/voices/voices/b3/b3_processor.cpp: + * plugins/stk/voices/voices/b3/Makefile.am: + * plugins/stk/voices/voices/src/stk_model.cpp: + * plugins/stk/voices/voices/percflute/percflute_instrument.h: + * plugins/stk/voices/voices/percflute/percflute_model.h: + * plugins/stk/voices/voices/percflute/percflute_instrument_view.h: + * plugins/stk/voices/voices/percflute/percflute_processor.cpp: + * plugins/stk/voices/voices/percflute/percflute_processor.h: + * plugins/stk/voices/voices/percflute/artwork.png: + * plugins/stk/voices/voices/percflute/percflute_instrument_view.cpp: + * plugins/stk/voices/voices/percflute/percflute_instrument.cpp: + * plugins/stk/voices/voices/percflute/logo.png: + * plugins/stk/voices/voices/percflute/percflute_model.cpp: + * plugins/stk/voices/voices/percflute/Makefile.am: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_processor.cpp: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_model.h: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_model.cpp: + * plugins/stk/voices/voices/blow_bottle/artwork.png: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_processor.h: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_instrument.h: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_instrument_view.cpp: + * plugins/stk/voices/voices/blow_bottle/logo.png: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_instrument_view.h: + * plugins/stk/voices/voices/blow_bottle/blow_bottle_instrument.cpp: + * plugins/stk/voices/voices/blow_bottle/Makefile.am: + * plugins/stk/voices/voices/Makefile.am: + * plugins/stk/voices/voices/brass/brass_instrument_view.h: + * plugins/stk/voices/voices/brass/brass_instrument.cpp: + * plugins/stk/voices/voices/brass/brass_processor.h: + * plugins/stk/voices/voices/brass/brass_processor.cpp: + * plugins/stk/voices/voices/brass/brass_instrument_view.cpp: + * plugins/stk/voices/voices/brass/artwork.png: + * plugins/stk/voices/voices/brass/brass_instrument.h: + * plugins/stk/voices/voices/brass/logo.png: + * plugins/stk/voices/voices/brass/brass_model.cpp: + * plugins/stk/voices/voices/brass/brass_model.h: + * plugins/stk/voices/voices/brass/Makefile.am: + * plugins/stk/voices/voices/bandedwg/bandedwg_processor.h: + * plugins/stk/voices/voices/bandedwg/bandedwg_instrument_view.h: + * plugins/stk/voices/voices/bandedwg/bandedwg_processor.cpp: + * plugins/stk/voices/voices/bandedwg/artwork.png: + * plugins/stk/voices/voices/bandedwg/bandedwg_model.h: + * plugins/stk/voices/voices/bandedwg/bandedwg_instrument.h: + * plugins/stk/voices/voices/bandedwg/bandedwg_instrument.cpp: + * plugins/stk/voices/voices/bandedwg/bandedwg_instrument_view.cpp: + * plugins/stk/voices/voices/bandedwg/logo.png: + * plugins/stk/voices/voices/bandedwg/bandedwg_model.cpp: + * plugins/stk/voices/voices/bandedwg/Makefile.am: + Started working on a multitimbral instrument that uses all of the + voices available in STK. Need to work out the differences in + level among the voices and figure out what the controls actually + do. Simplist way to do that was to build them as individual + instruments first. The models, views, and processors should be + reusable for the larger instrument. Except for bandedwg and + flute they all work, so if you're curious, add "voices" to the + Makefile.am in plugins/stk to get them to build. 2007-01-30 Paul Giblock * plugins/organic/organic.cpp: diff --git a/configure.in b/configure.in index ec73a9e28..0c8b1edc7 100644 --- a/configure.in +++ b/configure.in @@ -658,6 +658,23 @@ AC_CONFIG_FILES([Makefile plugins/singerbot/Makefile plugins/stk/Makefile plugins/stk/mallets/Makefile + plugins/stk/voices/Makefile + plugins/stk/voices/b3/Makefile + plugins/stk/voices/bandedwg/Makefile + plugins/stk/voices/blow_bottle/Makefile + plugins/stk/voices/blow_hole/Makefile + plugins/stk/voices/bowed/Makefile + plugins/stk/voices/brass/Makefile + plugins/stk/voices/clarinet/Makefile + plugins/stk/voices/flute/Makefile + plugins/stk/voices/fmvoices/Makefile + plugins/stk/voices/metal/Makefile + plugins/stk/voices/moog/Makefile + plugins/stk/voices/percflute/Makefile + plugins/stk/voices/resonate/Makefile + plugins/stk/voices/rhodey/Makefile + plugins/stk/voices/tubebell/Makefile + plugins/stk/voices/wurley/Makefile plugins/triple_oscillator/Makefile plugins/vestige/Makefile plugins/vibed/Makefile diff --git a/include/basic_filters.h b/include/basic_filters.h index 1f4856446..6dc697519 100644 --- a/include/basic_filters.h +++ b/include/basic_filters.h @@ -92,17 +92,7 @@ public: m_sampleRate( _sample_rate ), m_subFilter( NULL ) { - // reset in/out history - for( ch_cnt_t _chnl = 0; _chnl < CHANNELS; ++_chnl ) - { - // reset in/out history for simple filters - m_ou1[_chnl] = m_ou2[_chnl] = m_in1[_chnl] = - m_in2[_chnl] = 0.0f; - // reset in/out historey for moog-filter - m_y1[_chnl] = m_y2[_chnl] = m_y3[_chnl] = m_y4[_chnl] = - m_oldx[_chnl] = m_oldy1[_chnl] = - m_oldy2[_chnl] = m_oldy3[_chnl] = 0.0f; - } + clearHistory(); } inline ~basicFilters() @@ -110,6 +100,21 @@ public: delete m_subFilter; } + inline void clearHistory( void ) + { + // reset in/out history + for( ch_cnt_t _chnl = 0; _chnl < CHANNELS; ++_chnl ) + { + // reset in/out history for simple filters + m_ou1[_chnl] = m_ou2[_chnl] = m_in1[_chnl] = + m_in2[_chnl] = 0.0f; + // reset in/out historey for moog-filter + m_y1[_chnl] = m_y2[_chnl] = m_y3[_chnl] = m_y4[_chnl] = + m_oldx[_chnl] = m_oldy1[_chnl] = + m_oldy2[_chnl] = m_oldy3[_chnl] = 0.0f; + } + } + inline sample_t update( sample_t _in0, ch_cnt_t _chnl ) { sample_t out; diff --git a/plugins/stk/Makefile.am b/plugins/stk/Makefile.am index 243a8fd79..4eb93be39 100644 --- a/plugins/stk/Makefile.am +++ b/plugins/stk/Makefile.am @@ -1 +1,2 @@ -SUBDIRS = mallets +SUBDIRS = mallets +# voices \ No newline at end of file diff --git a/plugins/stk/voices/Makefile.am b/plugins/stk/voices/Makefile.am new file mode 100644 index 000000000..1e547a463 --- /dev/null +++ b/plugins/stk/voices/Makefile.am @@ -0,0 +1,16 @@ +SUBDIRS = b3 \ + bandedwg \ + blow_bottle \ + blow_hole \ + bowed \ + brass \ + clarinet \ + flute \ + fmvoices \ + metal \ + moog \ + percflute \ + resonate \ + rhodey \ + tubebell \ + wurley diff --git a/plugins/stk/voices/b3/Makefile.am b/plugins/stk/voices/b3/Makefile.am new file mode 100644 index 000000000..14cf364ed --- /dev/null +++ b/plugins/stk/voices/b3/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="b3" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./b3_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libb3.la + +libb3_la_SOURCES = b3_model.cpp \ + b3_model.h \ + b3_processor.cpp \ + b3_processor.h \ + b3_instrument.cpp \ + b3_instrument.h \ + b3_instrument_view.cpp \ + b3_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libb3_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libb3_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/b3/artwork.png b/plugins/stk/voices/b3/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..b843c16ecc8db62f68b610e1a339be6cccf43ae5 GIT binary patch literal 70825 zcmXt9WmHsM+a9{RhEC~jknU~}5b2aI>F)0CMp8-v=@_~ZkS-lcQl#NKJl}d3YnV0X z&+OT8-&gGz4K;ZTR1#DW2!x@iAfpAm-@m?)5rO~FCx)WH8;rY_ycDQmn(PqxfM~8P zF9Ujc{VVRSN&}vtxF{I7gFt9_uP+!-Zax@zh~%NDDvPuN3k$+#EI=YC1s;)m$m)AY zJ3BgBIeCDj-K@+!tSqU#>^y9#bZo7t)JFWNR@WKIsnstM9xDfb#r#dRnosZ`sNV{cW|So*FbQbl1bG%&Qv4s|o{BT>ydV+88Hr4ec2#`b<1OO!$E< zOzUNJbrlxyr-i)F%;H115Do2p60}ea?Y+-Z=wkex>t!|Z6;k09Q~UgqIvajbg3_%} zEaLse8dH{+crj{fq&_TP_FRy_P$}Yeh}H9rH-~GX`V_)}npvfLx5Rnuca{sE-#>TJ zDQ@S7Es@yemfDfr`3GWpei$@lIo46?_v0uUDVmze+2WYswyoF1M*vaHxcgw7z3HJ; zV$#t?uxHDyl>D%KzB!RgpB7_8w1u{b2LX4?TomrS%rv8WekiM923zb40mH&7F16Xo zm)6y_%@4CD>FAvnD!1!A&+!*;TdJ;63Pb`yvR$@v5hDZ7y0ad}8WU#VgJzBsgCH+6 zXH&=fH~Y{Tn{h+5v+hT7@tc~O*+Y;0>&HOowmEv5cpN$$}q-j!u3!w z0!%+FyYbXE%P3*Jmn?DhzrqJ4@lJq*%axcsgvmQx?Ah|&n{A=w<1`MHbgBb`H3QbR zx%6c5ouPV$=n}vnbLE_zGOe$M8zK z{ohx)$DLxpR6dM}L#3y0beSSb8Tb3Iq@iKcq=^Cqq?Tgmk3zb-V<8CmsY9WG!IAL< zl<`A`lhCU#F=H#|Jv$FJ@gaPK3HIB$h=rKm{%roYE6ARgn5+Tpq*`Jk{sI1=*i!7W zL8M+rR6(d^!O76=>fNS&g%yTRp>*Dt-n%#qFexuoq{|C=dS1%@%}rg+M{wD%^NXw8 zY3rS{wn%{y%tnVZAux-sLSLlFU~ z#?>E_Oe4i1WBFjbUt(4Mbp?Z9j}bqop)?3ixXbTWlG`lHoHD{kIO-%k)6>lmaj-xa zE+B*G*1=yFYs5Ztcj2#I8OMf0e|%ZwE+{{Hc4 zX?R?z{+y)CqjLL2aKT=f#e>tD19lvri?`=|#l`9zsPf&>=CmJ0)a2!xntm6#%ixj9 zJqKa+$r$G+lvPys(G#B6Um!0p6}z&72j~U2zfh1aIe55WpSzvi3U}R%Hlv62gKBGQ z!RYs#kllj=Y+QS&63?3I-_s6;1b4i6eW zlDT!@H3cY{aDkeA#?J7_7rX+IfU;9^heTs(!jcp)z&s9-Qp2jaT71?O?i-xwA_Kt8SdWb zrKCN6TN;EgJ#TXOCq^zE#l;(uB@7q!c6G(uFE{LbND`%oJpRfuiTpJ<(t%0Y9ziw$ zw`#k%UvN}ujC{2M9ug3pNR_QsA=F@ss9{Zkc7)sbqpv)1ko#XQ~k9`!meBYP1T6No2&OP;sLvxAQLF5dYoyod&Q-JchUoxH3w!0!EJA8>iea)ZJ0~Q%>Jlwk_HdNmR9!k-M9l-K>{VZ92#xcmC`+ zvSebAywn7os7|)*tWoQ+W|h(q)95e;6GM`|RT+MP#%@K(~2K)NH4s}U3IX}UcfD1me?N)8^0y|%Z+&I#*Y0SY|<3wGfSQHf`JHU z)ZvDZBzDg@T_g_FfTX9VC+rM14vvY4^N>2^CWoV3eydTws6lG$7UIB5hM>!k%*L&= zoj=aKAyq|zB=+{TApFV&rmh?Bod}}ynU}|z*LC}SCDggWP7!!()^(G&8TZG1EwtfE zvhkS2AQOk|=Vp3xix3!58d-*y*}Jf^VeahujqqpMV%Dj*_=tWmy}PKea6(J)Ne2gk z9>PL3&7t#bBz}ZT1BC?wPNR3k@nQR0hDg!_Tg#picOt>s8WQGswgghn{Il^MEERKy z9x#lPPBkVn-~0RUZ{NPXU5AQAWf}XTICo!X*0D@**VWaTT3Emx zA0O+JpeK6?A9x4@ecz{WkR&V|Q)CY#a#=$!_+wfB!VemLNA0W(z9z3-+34zGKuOvmD2TYs%s?4da0qQ?rVZQdd&{AD5eg&y-MU(q zHROf3ETuB1F6|;I*Codt`gQIMYo8Sj`+ILM2N8K$%46{^X<7O}o^#J#VMbfLj4H*5^9a#g) zHhfg_;}01s`AjRANp~}g%LhSd@~@8d@|p&XsnzDpbc*!U`64aU=}3)lC9M{6jCLQj z$S5cZbJ{qQ_w&)@em(?$WoE#Eql?1C0f2+xpV{N<{XQ-bQ5O8qW1i3{Q*!xWqfm?O zSV=j4eFzvmN_xG+9jWN)#O9)7CIEBqLQsae0F(dQSC^du1P3Q4b9Z+<;7A^P`hMWi z3G?G7ShWrugkr|DYZ*2aY^|$1D~EKRwKRQ$2Os;x6JyXD|BtGeil;6dD(7k+{U>Tm zr(8sz!U-EU;m@GOzX2z6dvFe|gu!`@ZxHE!j$QhV1exgmkRnb#gL{X)ds*y``4mVQ z)=#BFf6zfrPHrY#Fwjh-u%N;oEd8y0bE5Fzdf5aCB=UT_ce{-w&KSo$fjc95LssbX zn|Qs`6RqWt7xZa*=imU_7V1{=GhZPVq&7@73A6ghQ2hP z4fE}uuT4BbtKMvJLoLDtWVw$b7>i*KzBwxw+yGPE?tMWsUGO$4BZC0g!^K<2W)JH^4$jVHYk$W5kiN9w82Y>I7A{CMRqDC0HKMKdabWe{;L6m@AQ-P1 z@)yHG`rcsndH>*u1cQ9NeVW}0I@;f{NVqLpsqdgv%dTLP9s}n`CM$wf|_eL#Suf&WSef}#5epXc|SPS}y{^>EqT5#73DVbxJ7OVO3b3mKD6g*lK5#CwmJ;&%9!H zW9qx-=h#Y2z~Fawq9`F5EbqQ_ceA}LEiX5H{Tf+c&xVc&$3?dA6MfhrauuPg>~n1} zscdk0$&qT|ubtT+s^{ZMlCqn)AjBt0d!xBaa>Kp_SX&l?roo&UXmt&9`h0q5*?3s) zH>;*nMzcxt#Hl%hLMU)PMlZ=C14jgvKP>AT8;35nQu>Fnj%{ymllFo@GuAxRO4kpf zI=TrDH>W$m0K1K`*4Eba4GjAI`LS+cGpODcs7Y*C$YfpN{$u1?{aBwd8vqx9{R~naD{Q~q$6lt{$*>6W1Uc%nzZAM36vfaQYUQkAT(Cs)?WNl^P%lTX zjJo)fcQ>cId0H~FxA6;0G9I-^yRo$(B@Xew-A4tBW~{XR#0gDfCo1f6&5b9^xIatf zTDKOeU~XMpaGh@TCJ`BX!$d_z0St?X-Kb9*OEjD%tI;&Tf*gQ+Pk|)C3e;-M8bXzni<>66Bvb6vN*rM_IbFI?2VH4M{Wmooz3{>mQ9}R>K!{D$nOPYst zAIeQXUe5%GfLWs!Mh2F<>5UNM50aTX|3uz4PWqBX!S+StMuv=x*RHMmVVOF#);@c& z_!HkzCroh)lsq_p^7KhGp20%oA^ZU-)!VznaVx8_p~k&L@l8Am+8lx?QFpQi zrZ!Nv#|7~xJh7Y0iG!Pm)FgM*NpP?`=D+>h@S`PEa;ebzrto_^MuKr$5NClJ5$i@+ z&;64aKR-X=?GMm-nD}kjtf57aGv&*b^9zI6zow)epoHR@7k=$RXZ2~#TzQ++l_pQB zKj_1d*OMTV-FQZ%Brq9ejmas`=93w*+M=hyjA4ckvZ(jwmyNGn^E%DXX=4=bt8)MK zMGT3uso!V;S^PVzGT8ik)6E{Ai;t??awUq2z}XvKYgArJje2~CLJJ!kB#y3g*jE^5 zTkm?YE8F$Q(RuK-kN^e5>08`H7RTPvkJ^=$6^Rc~Ixb>G6O!afBfCGLR~`G={xgo| zM4-ubLs~253NwcZvuIJ9^I1YeTL?xCf|_K@`6d@z7Djw%XkvB!hLcxF1L;EAaSb67 zf6>gagn>m#0wH>7gH(BD`52L_miY;*B5t1_y1aDP{SjN&_0s$7X={LB0J;azD0Ows z`17dMwPTVUf@T@eD5N0CX;EYmb5fO6n?3HNAeZYS-N#w1r(`1uuA)7Y!T>_b=kqAn zhkuUvvXTNT3lCp?{*8}wZ@xU=>{(DgWK&gEF(o{9-(bd~Bl@v_g>0zV%$fg$pGHcu zN+Tq*u)s+^q<6{s?DQuW(GY2NVCHxAky2Ow+z?fZ9y%pY!t}VI)Mp6Jf(G@(pl@AM zYMHC(nh&KfZgs2{5dz62FBgcfXok_maYC=86`uy@A3pVqN;tJ3Mbh~ZOXD_A(H%Nu zkLwlA9xpfUUH+QDE%Xv52ljR8)|mx&PCp4O3yg|2kJ+dyJ)R0ZOc*CUS*OU1CjOf` zzR+iP1S&9G1G=OZF27UNLVEV@Dv5e=%~3?IXDZ!gT?aZzR$9kCf8La7bPI)8uOluh zs6cw56@3W8m#s#xrRXYy-LeFmra_I2V}AQq@lCcx34W{(%rftQ>sSj}ftpRp&oOYA zabpy#s@dCu#Bjm}S2Pv=GCq-I>NZG!KMZJlz5>8VogpNOq|XyTt-jd73KHBuBPAV3 zzr;`Frd<6k^y%gk42YD}3{JcqyBn*n7P+e?&oJA{%7DEb(aIp)O%Fbl({aI% zgKw^xH5>-A!{nYl7^XVx?fNI@bHS26%KMpd!%LB@FCsD$J2_Kv9Ud-C%T|#0Cp+f% zbkH;im{TH;F2*50JCE|?HwoPg#@OwYP2Xcx|9`_ou0Rv%Hx2&t$MJ9H2f@qo0yU)f z@87#j?`&^NV4jVQp#W?kl7S%`8wv|T4C^UJqLNxZ8gG{2Liq8Q#ffvy&;?P=*?(UI zc=SP+F}jDv6ztjRYN`7!qg;qg6>O2L&ys=>wE<`+%u#{C%Wt51_z2c5Ut7M^u+S|b zCNEj;HXYZ5CU_&SpTkmS-}4{kvP|G6*lVP}VUD37|9wRqDgCA`pq_Vg^=JRw1VG7qmz*Y;FN#=ypRFBlLo=#r~yw=a*I^%5e48eJ3)Lq?c+~=VZ#kV%RM|(Uq9$>gx+~+VEv@>Vjl;O$XFDf? zol3wk>hL9a*JvC8%gKQXD49=B0c4bv79u1T{6%aoGcZnsrE+AuI}G_}T5rNwND^sC z#n8K|vJo8;WFf)CO`|oQ~Tbl3v817<$uv7649=<23vaWC0-hTp;L5z~t}hx8A2e zx4DgXB%e!c42m@&e11K|uHs+gYGC~>_6S$o*~gdZO2~-Or>6w}eq9>hiMbL+iDOc^ zYIOyw#Y!4aG+xx2mF9rgbUix z7NJf5D^);f`0Fcb^!*dY>&)K!N~~}gcST=8rxh)Cj!4oD(}jOjGL8#fii|)Y!gX($ z9jf4@eUW%jkCT#;xPXphs1Xs?hZL273lqIWfAHz8{s)8M@k>;P+<^`k384&<1UcY` z4v_Aw=Z*28;X52LhkY!Y0=XbIgeS~X+p_`m`2ML!!~~-_akU4a*J_FCbcV`x7#SQ@ zb7!6dIg6+$P2}D7<*T^zIh%ebXJ^U{n4khR`O~b8wYB#L8B))z}?}VTu#PNn33*UE-onTJVv0kyWMdw3GkOQb5Totw<2FH$jwG4WU4x{ALlrQ6-$@KQsp)Fe|Ms_cGzZT`EqcyFb!9%pw;xuRh_+Wkx`14X7259q8NAJ#LgHK;J7O`r6B*P;nI zW?BaX-3@d;6SclFSi?2)LqRL3t?u1a>P)fnu`gD5N2SJ9*9I)CpqTIgpbR&&4g#kz zVm_Ci3E(LR)%zNrVtIQ9x8RYH5n$p6XtBg$tOw|NZXqZVQlM5@?29<)BT6E|_{QiA=@2Q6ZvL%0u)1W_crM!fij7Rl2mHkc%O0 zOtPDI5?xTmsM7cd_-)@-gi1k3GvK~0nR(2T0(Tq`!bhM3E> z?3vAK#GGk5!|n9#(}K6&hrhD8a#UPS*M%g1bl)6YcY=ZexppuNPVmeXkh(WEKD1X# zep?$pI%1Bk3HGc%ne!JLaS=o}diaUHYIyO*b76b?9NWIOcJwNL*5_Mtl6}RO)>e4X z%GMSUtw@fFM&=v9#aUe5gOFhcbSPnaJ#m?AYAZ}y$s>f@$YslaTOM3m((9uwUH@Lg z3`oR>D|rBe9On*BX(3JoiV;b|m*(bB$zF~JIT%<$NO(~*D^sVPYr1hG(W#9ll`5{K zPa>V--0?qCq%g_%p*Yx~B~Ovq5@9tB;VDCeV*3(oA%pp)3~n5LxfO1=cgYM(rIkjE zO(w*I+EWzzfEV!vCc! zC?@vW-7C}VijQ%3!nHF>8C|@+gS)#$yPp0yqZJsjr`NfCB-#Bm#i|I4qF_%(L1_Ve z#b6p&SXi`+o9h0X@-3qp;Q}}5}XIPa1M#T0;paTDs zmzS%X8%>mf78TZh0hv%pJZpPXbMyQW4(BICs<_Tu^GHf}wa_R5iCihoMY2^#KGrP6 z0eX}-oS0a7l{lq{HxVsFi~&re&dJ&HGy!mwbsB@EF|AE4B3Q*(H=Su-vGvxY?-J6} z%s=7bX|{I_nzL$1Y%DTXMtr$%U7Ane<@g=4U(A>8rB##|gEOxqv82f=%=HkOnFnzY zd&^_rWEZOTZJ|#<9IUuon$89}f0?Og~DN)se^kWYxhvLS&hkNUhxWNo;hk{O#$2@7@O`Q3~I%Y2FTZhxo5SA$(SZ3=Dk6_nl7)004Tp*YPdTg6&%U3}L4Hs8)O&PwH@&Utn-ij`C^q+`DL3(J06CJ>AJp)^P* zSDl*ahN3xCE|4@#wzn?q{iKl!L$xiDC_61&*6AO{yo5u$DB!df_k(9|y0r82n*n49 z^?7h!W#rADTyqRg1gZ&Nw9r_x%|nIl0TNoK&@$Cu`O*f<8Z~rX1EzL%hm&=(b_s6A zN=0AeHd!*wmC|%Zg-WBfmlaS@3RSCIhW0Rnq)Xl^O1rjZ(Mv`TzzGV80f4bP^4q2_ z8UXtMh1t$7W#BZ`k^sx;8Z;_0o91;%Jjw1 ztB>@_uW(L~taSO<%)%l}sW5qzK`_~6D=|quoMOCvl32#lRA83HMCdG250y7?_ei=v6Q_x<1h>HxsFwQE@8;$qxSX)o zMPRVMh|9}gJIFEfeGG}6P~oY6FTuCC$hMt};D%3X!vLY7rhmtIiWG&^?s-foSC%qc znDtK2cJE_~lwLnM%(hZ^1Vfdphd;VKI=xTg!}ssmY7C`s4(4L%C!suy6?2Px&8)-0 zbl-0N{d2jyw0bo}tPGH89OL_Kd8IO~Mw?Z}<3ftI6{1^cyI`c(uZqiC!fP6uzWY&T zH5&B~Vu{Cxd`Lxw-yik9Gl5M^?cXkZQmYCB;Ae?)(Tpgbr*1^@^JX{sZY#&XH$2eSR0CNUnu5~C6Z`4r#>gXLVjfaNqO|sQq&!m6XrvB= zH43Ta1X?b!$$_%F$@Ok=^QbY#@V6idJeTnl6z9uBkJ#5;?c8;N*mVQQlaLN~DA3Eo zC3};Uv)Ik-d<;ta#wy*eR&R0salATp2h(QuuR!l z*v1CdH=X12Wef>8hcDH0mWa8E*^>=7|J&|j1dL~ZFo^=v7NBQHNt!u19^|^SXG=i2 za@4pel12|&nZ@Iae)+J^H7}9y9H za_2xTJZo6?nH1*QQgm}~{}%ksc?;qqh|d)h*h_iz;z{nNiZjK@7%Smxm#2iwMa6S? z%}(TdZ9!iIt5C2MAuU6f`_qB`jX?vMw|eTjUA5gis~Er+m^VaLYR`A(IV@*IGYCuU zYZIAi>S$uRN#?>tq={<|u0)ltOAsf+tib1|NFvJ3H!PX-l@vk*VPay2OiD`f9=CueQJtMnpTG;xj459RXvmdL8p{ZL{=76T_}apJu6@MowKPeTQc^^% z1GJJe-qq6URQ>CJmw_n*czsD5cpwyvN$Z53#@E?9ej5?467L1&8T$($N+lT1^D6N0qrIYDdEeU$OpOo z&ESFpa&&bysqP@Lk^Y_j(0?RbD*&(|xnSMb*Su4^{Wr%qOa@<})91s8TU(>Fn7QB9 zGc23^=}$f_HTsd&`J^pIV%75Tmr9`$@lp1V^$7rcVaW)?Lcm)oa7D(bk=A>jKy9PLdCFW;NB7Kg7sTlU~Z*qX%Hy_ z%+BR{Oe-#Z@i*lYmGfV~VFzTvS^!hYRW08Hd>?>wf#!3%-T`QovQs0IZ)Q;duv z!BoKSc%^=c>T2*jW>7)_SjFBRG|-3S@1LajcL&E!xvQADrpVC3GzS9MCiL7s+S#FW z8;gTJYsOBbuSwWV(_JepXyh0#&1x?#YRua&g27%b;uG&sa-Fgj7KJoqj^(*11W8}mO^^8P z<1D9bqovJJeR%$Rd$CNmTiU>Zzi9BFZ(hj(meDjI;0d6)YnlmMbUz{xevwjrX=`0d z%^jACrrv)rH^YK?idL#Qz%B%EQQP}(E)Umh^XndeR{4xNJy4)C1%vkxL<-*nYCtG6 zY=mrXQZRF$NL1g1V(z;L4gu~(Dm*>Cmt)&eotX)tY>1(Kxnd|F>|3YQx9PWn-`T@d<$FA_ggkSTBc>Y*Wh zY@SMo+npcLrsJ7>X`VE?;bdf=HB-{cq=>6H9QsJ$x<1E!V6HyYXP~PK#*l9hfbxso zeOBK&KfnfXhyMHbcuPM$_y==uvQ@1wJCMq7==ZqBOL3EvxkAmw7*6kGZV_u)YD@f~ zU6UeLI{i8GbXi1VSH!R4NA+>;s89hyfVXm^sF)BW8hs3q4gigT%#9G1DP~U`Ab0?m zdyNJFri|nQFYmlH&|3b^l8 z;!k$3vU<7|(}|RIJ#+o+;lA0YJ|=o*6R+HIZo*nRdiz!0>?tU4j=mHCQoSG!uK&mR zs(CP$J~Gl$j9Qzu=pjAt^oYNYr26Lt28Ucijcp(E=m9l0NWXEOJVeUWkQH#L|r`Z8tT;x|3K>{Eqnyl zD#Mexbg9%gCcHmo>5JxXLPWC=3xv%5FVYF*`5q(vn)46`=diubHirQL8W0eG`U%)5 zv($4K#(D2x>g-9PN|E#b)zp-qeV1Jr46xW9%TC5@sIM33?IJd-txX=PRL%az$M+BYJ-L+tC>sEd zl5yaj70$`4rZJT#;0hQNv70p05g0a24a}433EeezCqzZPogYEz^{A|6$0s5AH?|6l zl4%UczBVKPZr1%!7FD<(`&6Bf`Z=P`Ys$S-&AycQV|9_5jTBvzB29e5g0E|S)S*Jv zx?!B!W=UKvp>ID_R#J&BhL@&qAsCLbOR+z9KcD^}vul^elo_+E17^RjZrE^*A6+(0 zW>1S@4>_I)ScovNer&ETfcqLak^1J_tIGhmeR8r5C>n4d1Vg8@PV4qcMV38y1Iajk!3TgDogg15Gj3#WGdn2<3l_#F;Pldl|JCY ziyG`Y$S9N`uN9ql@)@TTm6F@Ngn*-vs=u6wk##Xfc1TKsQK8X=_3tw3bBLQ11EI5- z2xr92qkw}@PI3QdP@0+)c@V{b#78*|L+Wpm^VKv6@2$&S!(yq+AfcG-x$MVXSZ2G# z25~a)buw((x)>TOt0RwPXSu+-EJyrSx|$o}i=)y83*!{oQ)_fK%zDiv5*hwL&1`Si&?J*a%hA!%!G!n`Fz|pJP9=JRX$Paz@qTZ>ZVbb@ zr^!QGyT_f|+MH~_9(o_KJ<1h|V~2D19X+sB)!AxFrl-!P0E0*Szj(=b}wJ`<-Abo7qJ1hk`SIhF5{Mu8wuW zMVWrj`>ePdNB373X$^P2oV7vZoGl|5Hq3Y3!n|W(Aj+`BGoBnB*A@?YuWo zcX@FC9LfD2_sQk0!I%=_cu$}iLDe-UV-dJ3boNrUJTFsX__!|U{2Tw|@BWV=L?s7S zQw_a0h;VFFWIDE0-PcDrVlQ{^T+TK{E$w1i-Ziv_CIJN-NF_wX5jCm66Zh@idWSxB z2QbNw=YQ&yXT2*=m&&YccX{qw>^Jc}e6#-D%Q*yf;D8V~ zRmdk2=2eE!KO>=K_?}&ivos>3{FXd>TCqslnIjeW($f^Ow`UQ<{D!aeZ?yf>AJ+S1 zFFX$}4Jfe?}tIt`f~eJ;bsz)>21nuv}D=ZkT! z4D9(ev%(F%U!VuLSBhIscv3Qs1Por&0ki6fC_|+D!YbZJzDTWuf5J4>zoLg)T3W(p zy0H5=D)3*CtvrPfJm3LvH@Uw?ejFWBDt%ng<)fki2NG~~|A@vKdioSs(USFn!+>f5 zL_OdD?Xf-ZsWbeM3eCd@7z7}FY zBn7+*3lWNmKp+S*B=q&$*QT#MOKNg8a0#AjhCyQ1=&^$GYo@xB(9wB(Vnr)1sjcH1 zIIzA}nlL_Xs-dBbRk3mT(s&(nj)D}qmSkJGEL?4kRHpU(BqhIxhO8rae=j+m|C@VB zCB?)AXR?l_vTd%_=%om+Rr%-e?<&`p$`e%J#sd37hxAoBTzPUWy0yBspSzPDZ!w1Q zGuqD2m1PFuBXky82eHU7LM;pU7I?GYA_-8SMK7buBF=gMA|d6=?a0OB)eO*jEdm0_ zv)D}_fV6wbiskqfguCl8V*?{1N*sxp`m_-cUu6MkzqwX4c+>c1g(385(w~E#R%w&A zA!PzG`ehAk0f4v>{uI=6_HbT;6%f7RsPv_5h)!VvzVLonnnxilBf|>Z9T`W&t|231 zHL8CShQ;mIU){iQ?V|Q3A(A>jd_?-H@LE%CYRY&GI=utfJIzS#QDw}^F`3<1sWW0V z7YueZUDxff*JRFG9}~LEd-YgjfXTEaJqS+gX^_8QLbryMyKSGv*bvJ{Cq_ zJ~cDK`z(gLO|*_zXJw10^^3D7{VGUg+~F>B;I`|rmHTG^L{Sdc2?%B^;{4EBmw-_3 z-lum&5eH45zVjiz7P*UIqW`8STu^3RENtD^Z-qAA#x^=&X~`JxD0p&$Syh51gbR1!`(Y6i z={8jYjIb66jp9P^WEr{Lgq~)nGh}3}%X(1_>zsJseoN6!BU!T={Ayp7R0#fX< z+$`f%Zbvvl!k|dfI;Wst#O9j(tDr4)l(mDDxQu&TU}nHD6kCoxLEIs@nU`ScJrIDb zG3&!xFPB2N?QDpybp~V)7eGJhdYo4V92qIV(tZ`I?3XE0?w!opG7;fC6p<~|3{L=Q z5L}qQy}w^xfFcn9vyR^)F;>C->+RN^+J7;pn#Ox(@3V^wb$>Der*#Q~$ihIm%RAu? z@lD$>n$m~M_A@}b`pF6k5r1eAkNfU*y50NIPr2QccNV&&REo0c?7xzumj@NnI-RTH zNw)GiIR1(f_%cWdK@z`}eC?92?$y>~(o0BHq3_3?lP{Be6E#B1(_UyKrzL07@bsQ> zNxb9K)cF%}gBK7;e!PX^Vna(~FAF>EiboZ~`!PbqNbW1cJUwxc-v4$>k=zOE z->KC?b)P>?tTJ}VGd;k}iyQuAx&DzE!8LJ&T*5B3c*fF*#pPj|-2X_sXyDIVui`ccU}OTDYHrNkLqVr>;g7kU5AirSpNt$~ zMpCH;n0J`1lFs&6M0KFA*RXPd(Fgjgx-S;}Hp6V5PiD?Bw$3qv|36t>zjevxy~D$? zO&j!A9u$1`e0m1KQx~C*EUH4f5anOeI`ivea-%V-uWvBtC6i)`_?2M=^C$4WDu`ss zuX+WdM;M}(I67YrU2Iw1U9|l zpkKdTbZ=dWrt&`l*&pme|4T*x-#kVAUV%`r-7$tD8SUlU6v`(}k?Te6+uITG#G;3e zqCu$mi_ha>(KFL{^U$}TZMgQk6^oq?`>3MZn4;h|LiOI4r`t;4h{@Ue@8T8pMTtL} ziChffnef8T%cs7}Z$Ub8spT>i5D>7ka0P2lLPJc9@wF;<*m?eaSKZ^xiLX%46}m9A z!?(izn$%B$DT&wooBLyAWiID0evfv(dUP$`0`5%9*a*@~R$4BQe9)faFux3St`;hy z9&U{|Qb<%}oz;7OmCtnGI4(ExTR?@JtV7UHs1Kp#k|wnu{r)uU5CgbM>s4S?W!&YD> zB^sJ?&2!G!$_TtodPN{WPXVkA$^G+lWM{v%wR0ZeoZJ?k-BIv*h5=PuydNM=6_cO5 zy~86p3%-hK$GM@udmFfo6olLc9W&z080>!Ruv;CKW?l}=X3t1wWdHh+l^K!5Lg0iIVe^T^94CL$q3xsf%+ZxHu158)+ zow^`bwW=EVvt_!#w0wt+(DYrXV6kB`Q^T>|ac(!VI<~GM8~WFz&wizGY6t!zMEN$6 zpR297Mw#B0_|m7G@=q93!?w2v8Li@#X{FN_xSk%NTBRkcyIxaIX>l$~*pVAj%#0f1 zLpR7oHDz$-qd%eZ-;m_%<+Sm8WG67-t#|to&4|8`83$bJ>gYxQ4X0~wPTuwD-qQh> zxN`Z=?)VQD{SU^}qFtz0J|RE-6L)OG0h)$`YbBkbPh#VMA+mh0xW|T_6dK|;@^&-C z=H-_OsKRA$j#Q8sv#GZ?DT=}udD91QuG?rzL3+!2if*X5s5}Ml=vQHHXPqArQ_>7E zB6{y@dk5sj?=@jMVyg!)|2X^Q6|WA?A)~Y{xp5#LkMy49^%4U~4}ctc1>JaEd_8s! zd(+VdWCRDnVStffP8N9s;Ib`MRc2HG$KKX&-Lv@+K1ou7&Y?li(A%h>TO_-~4N%}*z@|P*kPN6alb0|jk(YT5rQ%nl} zmp2GFiLjQecu`572aD#u_DWO)%8Os=lK5?sY~n^J3P)Cksu?HFArd-u)#G(vV+H%k zP_wLT;A-d&3^fOE-4Uy)6f6My8wck<{~ zt|UE!t*?j!@3Ml30ecIXYr|Om-`eG+8>uKx zaZMZK?B)4v@35*!u6KFRTci@PNOcUlbvr;*+=k+@>68VbKuVOEwf6!tvI9tB=P>JC zKH9unaizdv+t}K9=zV#S{UC7LX7a$NQmJiQ@tW8IbR`4yd0Spce(RY}H^3DMy)$We z_@f5Rij}bBX$``;Dk8io;Sfc%qS^Q<9bimI7~DkJg^P`pOpQJ8_%xy=#6B0t z`fKvy3SyeeO$`XTA4Dh`$FXq;A}48#<4Nq5Dd-guquEzAUw6g@67G_|zA)$_3%wFk=s zk*FWF@4|AiV|+0Y;ec!mj(}-J4qywbJngjnR4E0rJ~i(-tN(adVj0NOkSsTdvMvNQ z1dU~Zly>rZ@A58ElKkO8=fEbd&z4K`zxm`9p+DeZhWHCTfzjNqwX?=lMWaG74ga+f zJs)#Czayp@=sp%9%)y$zm`gdpI1fOC^}am@O3|wb0f8X)9Dna&NmsUWEb`ew5V=`* zzdb#Bc4GSA{&PZmdELu@#A`e0`5@{1^~*s6li{qY7nDW*xV``EdlLavfeM;E{-pVX z@4t*H*7G*j`Ked$+ev}-^&v|U%nu*w-uyVeDIbfR(d$3FX?#9v^rg7L{U*TOK3Jk( zr#)Sm*UcU#H#s#uuY`Xg%EF-L#5`{|mvw?knDfoMbn^gYSv#rE0h(e*ot(hI4cZD|3L zq>69|bAw8BN8pn%yK#GPLPGEttW3mLyWQp2B|%Bfl5PTEu5|b_GlCY$xX}*%8}egU`{Gq>g@m z=2RfV;zj@UB{-93icc-%s76ZnNA(eEFF?G*Deq=pgpy11(`@Q!n~Bo~ZXY?H@|C^g zJ%=}vnof&uFw+#1ukNc}u6tcvyrUam?i)uI)Ws9jHYIf==XtzK;Qc>mA!Cu|78Tq8RAg8 zZEl~^-^2#WY{67}qg6jp z*TOonzwI`Nl~ibbXj{m{Q8&jJu~&lv9R&fTr*rn4=IRg42w}Qk8{=l5UtL2(NnI$} zS1o1*-8sQ4s!|dfu4kjAato_Uz}aNQK+K*&`^Z`A0^}?9$}Cm@lk2O|r2-9u9tn!@ zpG87q)t&vg?fHa~^9O+Wg>0UiQB&x8t4)~$wGr^;~%|jmX zvv50JO*(E#x;7|&)pmn#SPSJ%2^nwFQ@&d^A@EQUuIK2ZIsVQzgHSioZ-3;@+1|eu z^oRy#^?hScEJxQxpmVHr}M zF-=7r_1WL_XD!6=Z{k9J-cQy4WdWp8-QDIiuo6{P=F07G;b{(BngsTlVZ63c?wF5q z(WR0NZx7M-dciuCMOWbqdLPCVjmfVRZj)m#abZTA1doy)N0Uqyeu*Rw?Z$BWJLM`= zvNUiH8)fS6ODTO_jox*Mx?itv1Fi~d)hhx^{P%#KJU$iPhXG5PFz0x>z?#h0H6Y`= zgJ61+JE1Yy3+E!TjlU$vfFjKtm$xZrRf#apCcs@W7zw2_as(>no1OD%LLi&XUIjH8 zf#5cnj;?K}@S7l?5AScRE0T_qK3U;oqho8I6QCL9luJXh1-84g%UG3EY_!QJ$#=xa zC&R+vJ|ExsiUOhZ-OCDP!Jr*jJw3fIz-?UsepmE^^4`A(!i_{5;-`5%*GFt*WE7?% zBy7AZoZh5Wq+Dz~PAbCn{1a_23qg3j@7A$q)t+?G^c9s^|DqKU9YZd#Rj_(ZtM>vi zdnl%FenulRG0*3{4MI|n|Zq-I%;i$2| zqzt%K)QH!<-Nl>>haMV}X#P8=L@q%$VnDDW*|1zWjz&^I@W zv2o?U5>~i9b{F=0u6?k2>f(^bMXKaBX!bnq^GGcF^1<44!q{` zD^fgq`7LN^^$D>7I!eEu2FzKp?(2~L5P2T;T;5n202v!e(lE*Y1Li;(zrRo9G9RL$ z$RXIqITWK2_7C>)sekztUVQOIX+U_;h-BGZr!=(wJzp_$dHTl33Y$=P;DZoKC?0f^ z9NP;yNbb~YVm^Sp#{&*yEHNB=9p^pn-Me>Y)^d7-$CF36;fSS-dfhITS5~mGv4QpV zb*!zeVQp;=W^}wI`)_k4z zzOlgw*Q4;So%IJD*!Z(fS4U2->t8b>4_d#7c{I(xX>=a+dH)_`6{lnWyK9OKSem9d zckUe4*VaN*o~NPtiO5$x!rAgX<-PqqQM~MQI_=byf8!=B4Bvae&5VB*Yjww=o{IjR zz9CX`rh^hoH!U#IL?j;z5doL49uz8aEkAz0xW;|@@bJ%$4iC@FTH>GcFo<|$7E4C= zx?P&AnTVVb|AY4;&}fYzq0cbMWpir_ib`%$3vXK8GD8twtW3)xavTD?$cQmz*hgx$ z@!xT+oIxlR>6FKmVm278EZg?&g9uDc`X=HOlSdK9wS9gLjMle%71DsyhV?9-+C*MG zjCJOejk)eF_WV2>u4!OxBGT$IrPTw@x7}!b_C%P48L8aqN$;5?30BwEu)MsC@pux1 zHJE{z=V4MzQNSLPrq_5JdeONz_u|EiQkHO0c_Y@C7D5NVhAglnN!|G7^Pqq*@E`yl zpxI@{hB@rQYKrE)NzXQ++M<;m0VQ$sJ$oiiLlr;=i3R-G%dxh1P*e%p;V}@|oD$#& zA{%u({P7H|h3z6M@G>V`F&Ew%q=ZZ}iN_EDid$is&BdLIh(tirG{w~`SA^Zi>Oy=F zilUIoyPA0yoRZMwl+a8Q6n_(IMP(>UQz@IpVLn$8S{7kjh83wZ0z?_yjO+DWx#2uK zR7U9UNjX=H4b_`XY>-6&#I)Zt=ogJ+YMojrUot2cle=ULHRCIE|3o%g)OMUW0WL?n zsFWR##&QvW$x1cMe4NgvSW1=zOJF5fqcv=nW$1RhSYBQxamXB-8yk4^#tp2kuM2?0 zl+Q5wx03v?p+N#+>`%KmE&*_xtMiUjEIqO`6XhDFjWVFbL?%=tD%elpP}FR4RMD}^))2f0hmIfuk%(E)daQnzx`-gx*r znpp;5GM!4p6D!2>h+{rz+$+JgWlunw%2HBN)uOx`r!t{kwY@IpZ^Wo}m_ujU!I6BB z=zaJ-YSvny+?thnS^*COo7r~ABDW+*`Fj)1QWs;U1Br>9fHAs_G_*#CXyhPX$$TE9 z$kH?n-2g(bLYk&1i;~DtIhFwNMJSh)4=rE2?jY&ZC4>O*l+YQZLNHCXVw< z0ph|l4+g?ZxKoq%dzgmVdg;1u!e>&QRghO&B#&}t3n@bmqh|jwfkR=5hYX6)emjDQ zJK{Rsu7q_Ani-mTR`*&m40HFH0_7GzpUD=B;aq9~=hQdOmpgM^o$wP?CCt4_Rj zmXexmAyFV7R<3u)6wnx5=fNO6IfwZhOkN44IwvF`=_sWA$oH(SEBQXuwG|m0*Ghde zhNQG`MmSpK*>P#4N5Fr_YiwK_CFda&iKt1jrg08%0BAM?cUanj zIM&6SCu?{LyR>kx6}=HRrEu7g5Su6_53qs<_dR>(QPrhPVBuP4Tsq;FRz&l^`F*)m z$D?X_aG@c-w$kl5BbMReDKRxM$G9fXmR4qA@rYexkR)AM1JAgLTT0nt&&kuCg|)Es zuOWSTmdobv+YQ)aC@M;`m?O_dhUuwZ!eP};eGzq9C*%@-ZZf}IYh*f=$vUh_;JruX zTS}~tn3pc12y-hl=iH;=NW$|O$&d5e7zaqH*3UfyY|y01hcORj(8*INP1z(7S#CBC zj8E|WVF|3zSX6}+gqn^*g(5gLM|JkbH)6=S=5J|oOF_!J!kDDz%J;-XQ7i8aCOa8x zLkFZaQdOzQ(3uFcIk&xy<&_o8CZU|I$k2tzj}EIQb{t!0zIm}KYZp_C4qGksfGS4@h!XaiOm1UrGvNx;iFbRg0OF5)sCZ9Ip24`7{ zUbic$1~>17&N35C>Ifr>JcZsIb;R{sZ446f0F&wD%&dhsy;2%EaT@}iGzJb$wV457_k#_%zPe7FGQYkL^o`lgNZ~Jlv2nkS7d&#XOasG_DgOO9vp|29P(Og zVG{<5sIx6i1%+k?R+@#8O$<`W^ijI8%&PJZaN5H~Vv0-&ja6`nIv)O>thlD`FKaDI z=b)-e#zJwG;w-Es2zrp1X4GiJYaz}>(3K;JqBKh-&$iYGfn-tOux_=|cw97f=q*%K zcz#;bKxG*eb=EP%4J!23>#Svvahed;UJ0!=^v2hM%kdocs;;6T33WT5(%3NXjM_0n z#i5odw#;Trl7zzG#Q`HM@5GTMx1jQ5Qa%%$66t8KR>bh+zqd9C#-naR?#%-uBla6N zg2}X7!WZKCZ&e+zEJHHuhN8sAHex{Iwp3>QarmEQnM4!Z?9%H88E)I}_oa=IQDA9a zCutf*wP8b3HyNC9(SQbHG^(Fq2$`VrCT60C?n8L>7P?zhdym7n( zDp!dNQbii+Dx#9I1)j}j!Ltzn6$?bfo~MpROUVc-La5ED0fnrwb{5tW>*%w=NYgBo zg}5uwd*m4w`WHBtEsIhBG?1byPgdnxc}xz8I}F)-WF*X>BG2i42=haqy_WfTNM()#27tS@pXOEo~ zEBbP@V5r< zb55-nX1&Ff(x4r0XnJf5R&fu%Iz^^B-Sf|rWm*DIhpwlFN=UzuOIH+)#=RKv;bRR2 zmY$B)a+zMr(|C9!nKUg$6(t#(X@XO1JK(&Oml<%3dqZOUM1(?El*D@|@8MXEj9$-G zl{%W|7vo}Vh*P?ka~dBVCP#&J*h5n87!qfe_1%ZVp=gxFqJ~OAM!E8vbB7QgTto~X zM<~0oHpuoG{Y6}D*6~6l49R&CZ>Exr2>^IO^23x7F7wRGvTY0z$tHtb8&p+EB9%d` z(2z)B%)Ms*IpP`N^e~#bMxzwg*VoU?T58(Jd7e{$yOw$@4}j#ZD%tQ2<=qq|Ny{-A zam(}DDXnlt5&GaMvdF0)BG$c2Xu_vfx+Q|pAVDU3G?7#p9}E_LWUV)r$CucmT<2_;{Wg-##l5>jVw)3Qo|DS0QmEH z?3UIVby2{p7Ckrg-Yj_?uf=lR-WZrpXJIX@V#KYd@mjcloY%r>2Cs!voF-D|;mD>W zO+91&fA-!bR=X@c3wzdO@BLlQ`LESg-PM-cHr)fvMefKlq&vbQ5|#+cz?p@)LonD5 z7>S6C2*I8h<4aJG15;)JDR^Rq0a!su%-Y1kv1tUx9lNXQznycw%f76&GFb2Pu6KWb z8H^*lk4vYdR(1XVIp^DF@3q%@-{*ZU9`GK$?^k;F%SvT`b)~0mmWc$Na}{W&uOH1G zL2{ZK+fF@kBG%2~L6*FJNS-y;>kk(j$c1VMm6;?Dfx6?i6m3d^}_t@>Wn&cVD zE|MF(*>1HgWgZ#(y3_fr(LNk!@p?F$wvIQIvIx;KZ?rV4KVMvEOLJf4H4{@{+p(l1 z`u+MKrg1{f?R%2>ej?<~L4EW#GOI0uiig;U7}lgeul&Wc7)#`phaP)v-V+;W=?z0H zc3n--@j*50lkttCe>@|N^gbK6A7?Vh=-hico!~{`2)1A{VPVGG?ME-}&9zjs4jI8o zHRH_4QOkJQJgX*N4y-O}uAUmRoKD&vsMn#4%{&cN#Fjb4wkgpplW8wrl8tocEwlY* zw_d9?R%QJ#C?_HtbBl4BaP#J-ZLZ?_dpsTyU%h^foHGu0ck2ChmP}>d>}dSY+OBIU zuoXn>48>2m+J-OOb$z9ImRb_c%Y?f_!aOg^d}4}*6?~A+$CEa8Q4=yk47$6MS+}C! z8e3&|v1w#O7J~S-Clev;y~iw|4PR(Dhtat4oKGh>G2G|ws|!&8#;WU{g`*(MF|j8` zDb<`X)y5=I;G&U8d&DV&^I%dxq?huqKknD zN{furQ&;@@we4~aC;I{k@N{3Uh2bKL%)yB(SoR#tXvM7n^h1vQDqQrZhDp}-QvCXO&o6L$MOuCK0e zdv~YiBZs@1mJ>hv=%d=B-`wDIJhm9t@r>7R-snQwnlT$+A_fjRnU$AZ1W8{S*EgqD zTBfYKEopm1L#c817bkZX#ZVUdWzGqGYP3!QFJ&rPp68TRZ=6$JfrQJlXh>u*FFa3p z8zIf`1m0Yfg0An(Y1=@PbXas+(Mg}KK5$YsM9DwbxMQh2dO>ebrxQ|I(8c<4Y(;d^ znHM!Op3s$UMMi;)fmnTTR(q+dwg@?U=p>B0p7ux1)j+?lL)1C5 z)AocxicyFj_vKm`R;Z3QDJjjCJc#N%Q>y{Z7nEsBTIyQf3B1+ZF5jFpgHeaGyUh!9)cL;Erj(fG=D@8k{thVF3{T}iC z&wNI0e)d;a$hqM9`Wm15)Vp~0>{%tR$Z1Q<8}>AGz@#{#mp;%+EA7Z3(@eqh1PmgA z$ruG(U{4;zTh5y(VA5-+dD0hL5yyUja}^Mx!idBaJHO=om+C1Wyts)_WA60?xKut_ z#F$xfA&_a-bmCmF$HPIZq98Nttd!TRl?dHIv*-zuvcDYWX;HgkCcjM5Rxw8%vUoJ2 z*)Y-|8wnhc@}lG@jz+D?1EY#U@RdesS_vz`^uc4h-84p-alPS5M1YNo#fCF)5fL8PiTNix1`{ud{CxnXU7B=I>=) zSI5Ia1X5*X(pn5_l1W1J2TZl+4_eODlPj-SP*t%7ElH@jfhisNQnL)=yqIjEd73aU zGn@boL8z?+4LYIfS=}#bh8&ypGFGzWo5`^6>}g@0Ysp4q*~_sOshuE=n4_dpNh&s= za4|v=o)-K$B&s-$kS>&BGzV~tZw80*!uk*}j}uPmq`;GHDXe*9l5)Ms&_3scoJx!B zk?$d4f^8VfRco%u6O_LnF65eh-($1cG*2>C4y4!`(utKBlLB4GL3MKr_vl(Q_f3?O z9PM(XNS``xn54>*WmwGkSB+GxgxY&#?-32oWf_giKai?|%0dU=cs#1cgX`RRQ-QLz zm1<*N+8CN4Agr9VT@m0e<&3!B?@<6;y?Ch{WA2#6NC0Vo*U6%zTjnTZAty|uN}+XF z<^{*ovHHNtFF=J?kcZoK9lSj7*mamBD1PXB>BC!m)A4vzzd9O6lDR~1tkO8EY|v6E zZM-ncxttR`fN30?;|m#CV!%K|nZKW-L#=QODlO5ia_ZRXP#m(8_J%ucFa0Rn0;Yg; zT}!SV#}Q6?^O_*K$mnTlqooiKKpu8#nO>b3B!+TXEjNPIqNLI0Qt#yWo6J+FYSW-e+7VNg$ z%C@8bfdqdB9}tOLpU-EdL#C8)xVytf*mAurUWdl7Rn-vZ<~%`-_j@TtXW*QTcQImS zpOP~++pU(+1XiYL)cD}du+fppS!TA}#b7L=`O?JLp^M!r+0=V_$)^<=1E^9<$S%*_ zd=cNe5bMGjWu!x^<8vNWUdTnZq@nOOr5o24)aM#jxAOLa<<%bYWAZf@X19q+MSA?_33+}sE>KVp{Ml0Sg8{y2`+ z#gzmLIYC*bsZw!0wO6u}F;;SReC zCmem@4ano9yt3i)^O6vm0HSmJtai=pgMtqjhF;K4s3?QZrdESYazo91Z!V(HotR_E zNjD(t0&B-oG-MQTUS5k6ggG-!Ah2Hd~un&>ZMf~M4P?cZn4aZSQb^?wM$JZnQY`!2yi*W`G93! zr01{CX47~2(oiN$!AH#^Go~g*B zV1`uSSZC@hk(B%{=hI0mxwEu9Y(r2Ao;-bu-ENDn?^=iofMGKrvSfAg!YUXxO*kG7 z&DL2#_oA}OlcQ{qP)$8O5POq{$!>pD~UEir!STbS&a<2QXH>G5hm$vnGUi!zO@8S3R zrf;^ky{470o7o_3MlyYuGj`cgNJP~}+adUFr6RL#FY*DyKw<1+vy&PcZ+w*(XEfogIJ&;8I&^t9WE9?)YbgRCvl1AF zUS7UBAz~`4aySejr3iQ5Y2ZQw%y7ZM&&cRw-|V~OcdY$)kczNbdU0LPntNC`qM`5f zJ-h1m(&{E$Nf4x^(|YIe>eVZpPA41>2W?|MdQm<2qauS+I`GsxpU*g*&q5fei--92 zk{3Op$mu2zyX!jif_#@!YJw#V3#2#UgD1&`Sy&D&36j!6YhO$u09jBrbDO85)g9Zh zMiC%wkx|oKLJ$=G>Ekw;V8CHwSBFWlETK5teO=@VODeFkD zj2D&3vMe?8TAmlN5<2oQ`_4PBZGaU8ag!oraGXYU;O)BDPGs3gtt~Tc!GjogcGL#Q z_4IwOGxA?oAN+6pwJaBOShir31W;yb?xhsw+&&q4F_TxwrHDpEL*UHXb{8qjXL%;p zI?Cc*%d%AW87emAzqww>o=eMuBx~XB_O^XZDcEhd7={6(Y^=nFcDo%S*=-8d%S$)O zSS%8)Hk$Q<%7UY+Y+)oWe{ta|b6ht~;|h3b^Thf-c<<2ngQD>oLu}GQQ%dmi?_Ok) zG-O8pk?kH0We0MK>IhTnK=WoMS^7=(fp+NKlY8S0b_&gyaiIfQ0>a5DO&8 zxWhSzOaTgW=%j_{I%6#?RS7AzQA9pulaXcB5Zvkxo25b{-$2DUW;RU{N+;ls{l1(t zuCA_BTTl9FF{BK&Cf3czSCw99t~K*KU$uZF zcahN5i@dg&v0i613dtn2j?<|2*J(*A^WDlz%887|o0-E_~1R zovY2D1ONaa07*naRFtMDp*32fS{mW1M>c|fFTCiSGq&3uN~x4yD-NM)VCef5l1^k^ z$22J^;6jp)RWt>I)@tI4m^X08ws?hFD4XDd=A4_wGRWh+oUtrHP}4z9J8{+RqJ~ha z7r5}REC0UDo-069M>Q#DoQ_AmZ_83gn#W@W?#KgADI@2k9Dc?MI|=sV-#KBBIg{1n z1URDa9Rb@A0-im4dT*{JrA6B%;!();0PwVHrsEM?4XIRVhfSY4vNzd^I>XJ-sgq6I zCFWuPHpB*Mmjo=w1C}KzH^g~Yt1})PhF!;s(E_$tyM1NJ8ToLAn4Ua(^avqDJbU)6 zo`QFGYAUBAF972>p%bKfNsFF}oYz$?>{e&a<5+EgDnqE#kOGoZXok;V12yW;MfvaC z1gw6VJ0*dR)-Sg?cHNaXE3UnIVT6auqS!C)rDVQI-a;GCB=E}!?n<;^n5;7Vu>6s zU5uFKsfw;l>Z+1ff){VVdf-+*$7*d5Q4y^WNbIvw-R6hhoS3N z_Se~Z4;TVY6h`Q7yH!UUb!y6WN)c~vZctEgdv}LXdKH$noyb9R&NaSA#T?C2N)tQe z)MJh`M+<%5OCGh8mwOhHe!c)PDhhhpx2Uqrn&IFA|$ zj$4W)jLun0bz}Rp8HUz3%K}=Jeo|c!>E+*BL&RXBerxnm)QJKum!m1q`~@@2`m=L0 zw0U3CG_3$CcM*FiK|$76MYWn({26Xtos;dsQ07a!@^ zhNmritd3$6!(>yCO3De^1x?ax1nZk^5aOaNaNWd7+=ei(DK{0?* zkqv}$MqcOPeAYi_U#ec=7x{EiO(E-xv6s<{&Xdnp*f}5%Wl*Ry&iwppg zvAl}nZW2R)@46MunM9K%CG57_dvh(FG7hOph^jbrZY@~h2(WS=B0}KWXfCxHmgyUF zkDCZvT3Z>kNG`WBnk3hPtUa!=t*m>RkJgQS7Khv#4|X^ll%r4`XDW4<2OwL57r6R+K9rde>~fS>ZjMC z>o!VzW}p80^=r&xj>$>K?cHs~KByXE^G<|)7zXUNJALh@X~u%2W2@>F4jiqx#Q1g9Q}mRb_FP*Cvf z>9c!tEzWtJRy3}C&~YZmVV!X)BB^VUoHPFaRa+6-6loHUK3Q<2C-bEY-lKSrUfzji zUR3A7>Y3w5&y-aG_9_qv6@)oCSXuFW(`P@6?RKZ$bW~Sf?e{e{IT?Zhdx$oUsJqlO zO}aq&^00IvHIz4qb6xI!PBiJxc+y#WX9dtSkg>Fc5%I)=5%tqkED3MDk_M8xf^Y}q zcn+ndsMu(Fov#aRv6@gUdU~=YP(YCO*Mg)Ib?v+ZT+q}NXPHtVAcUP7COYFWrb#u@ z6E-qO!gyXV(?kG`Hd)Llk1xd}$SkjYv)!PJ-Ks*$24p1Zr0Y5*v+&v3Smaz}T{z(& z^qm5<%UrL|(|_DZFsZeEB)aTG(MMaf(qypC zRewb15Z}CcQ%g>B!nG96psb$#ey2OjG)>rTx4PhYQt}k9i?<^0MIKP?Aq%=#m2$w^ z#lu~c&{-Ta-%|t9i6>h2a{V6-`{e#$bwQxkCi^`}_UwkEhI9*V@ZgLQK zs*dBRzIEy~zSPpVNOho_W3HG3(?mDhtr~A^w>vpioyIp?H6YDG)Yj=9T#LnI7-hvZ z$Z?r-4!gd`)xO4mFA|~UoC7vcyDnB~R4%eI$U?m0LBY#E&!c!A7NxjaR%0$%=P28*m0jH^3dH9w1O(bng`nDv_|7};Ab5{gFJDy+t{CNWoWar9lp4z1 zcb)d!_8*%F>BZ;Dxi&9%&fz>RYUoID%OzjgibaZ%wDP4O(4dMq*#zp6=*ZpPTLZ@a4hehr*g^(E;($r+d6((<7S%Ats95Q1oINWmzG&I z>YSnLNk7Xx_D~l_jGa~%B%A2ZBj`huf7uwBz{(_(-ez{2@B!zrI$a4e%{gH?9JHk( zSG;m3LMyKYEw1jY_v2bfwxMaMcmA!w2$uCWwX~Cpv2G4ntus~%OPW<&WLrS}JYz}D zK*zrC1jr_TMAB?Z!8q3G$*>vf*w0rT`#eu#X)cwk=qBJCZf|cj(9;W!b@S#1$I}V% zH-6*m2*KlUIH(VI74COxq7RW$TK_b=SS``S`g!T7fLUB5O3aH&JPBOcw!v!28^Z1M z1P&Sq85(g!dS9DLVvIoa>+bIElq22p%d*-xv7}^rCNT>VA7+z^+KJT@{pe{pIgVqc z568w4=;HbXXaB^QA;L2Bmb;uL=(x?q7T4IHsJ*AEpxA>NqXkWEWiqZTdgk2Q5gvp5 z0O0O$XrFzVd@?UB8760>>~(`HrC=j$ulsT>^~Kq&Gz*--sC%sF9PG=^p{4)aTlSP+iQcgN`$In*Sk)Fg{VSxr_YW=B-sIk;-FUQzUZs9x+g+L)SZn_y|?`x;LL;PtCl z8gP(}L5Iq2jk3woZ~fvMS%@5G`ERT+qw8o%7H!}6xZ3YgS#xWP=Yk?cfm-JJ3r+PX_Qs3E{!H_PA}=?@ipus+ z92wM?A!yG`=8>fi+CJBwY;=}Uw;9RJzND$v-Wc${f*jSgw!Fo`S5(zh7S@@RE*}KJ z2&Mr=Pu=V5Yc(Hmf(-NYpoKL#)Mt~^ZBu9azLQeTDM*w>Nk=PdmTonZo}r618Km#} z=EP$ZVk?@b*m{K+Yr=?J|Et%pm6YNo8i;6q-!-nkmykfu_@m(E-iO9XzbDrcV~72I zziK(796s#5`Lk;(YFc?A*aIxD)-ZI87J?TxpqcW>Cd?6@4Njz%gR_2qAEzywVL%qO zCO0uwsk_}e9*ZMu_WJdduN!UL?e|({TVg}Xb;nCNVLr@~j9JG(=kvHq0p)3_Bp0L5 z*>yXaSuQB0ncR~OTU%YPFMCo?^`_(@I;yC=NJ7b+)48GZ$c|pvzD?w1GaC9{cgq+8 zI*HC{i5TgvkU~wNk(qn2>L{j$2p8MlV736gd?vw0f}VZX>uz6UlVi%L71GpRwW{6v zVXKpcQVO!m0tiYUnnXp2g6(#vvs*6cY>Y72Cns}qQAGzOw{%i<)ER#;$T?YzYIQ7t z#yE2rG*Bz4G$|8ZW!=JH2;GG0jeU{$vtxFKL~Y z+fYdNEd@nDN6%_aoKkK3!pbQKGc6gDjO**`dvh&C*luixEZy2}5_BC>op_8jRKw(+ zYdn%fK=D}(VOV9UXYr%s@6AlM8sw0g1l7=~%LOpa7LXBTwvylpe>$D;>h)_(G8XS* zr}&72L!6fdX<2YM9`%dnY0}=t_Swv4=0#~A6Fj`@)K5CfO)0qmE~D#ugrS+=6WC)V zU`uS<+h0b+a@=7{DV`88xo40PTTK9EL!ql@+n^SG0CsY~DFJUX7bSOIyEuyp@$35@ z+wD&I(rhKNA>h!`x1zUM|L#1FYCoJ(R-pnZ#zf-DsADT)rvU9fWMf+CRQ+Z-@Yd9m zqGwU$%f3L+JSRl)zrj;ulH3 zrQH>O-r2i+#t@mijpPA7eUc4MOeqMAhR)HtyyW6rG@SVZWpTFWku<^|t?Np4&u zm~1wil}Tc-W}b#@k(LFM06^@6=|fh>P0f_V0+JP{sf+RI>gwKH3s4V{Q`Ki{+sPK8 zwg+_`z&UI;n+iS)>Rw;Q9<|6UqMaCO>n1F{^LZ4!q*e+WlVYn1HB)i5){&CdHj+!m zO^2IFGMW=^HkS6BlSzOfJ1}R&A{k*sp6d=$rIMSCXrkeCBs7a1)3VHf1CGa0EpEM0 zU^xS*IkEJurFcZw^)>QX#3P+<1|FMD)UrMrfr=(j$f6$lVZ}5DlERx%S?u-8{uP6fs#& zh@=WLAF$Y@7n1?#<*-=tglstZ1kQn?_tl4h$B!Rlv)N#pCTuqKK8)uP`~4o#o1ntB z0P8F__@Lfz&N(d8qN*dFW*P@9y}lhg&^DKJKwH9aG{X6Hmc^0j9 zSLvs?nWkpJ#ft0Eqeu7VTCCXTQlMhLhFpd<$kuQub)S{C&>PvUqVQ4~c9Is8js5d1 zTn8Qud`B#`*{)gjQ8d6YThWvf247o+S1(_xVvcel41GCz$Y zZY8P3o;ESoAo*opFiMGOrG2d|>sF_nb%n9zCdX3Tt*M8%q4Z3OQKJfeuasT%uY=^g z!^AsJ^NcJ>G%8~?JFo4VsGj2kp}dvVL5x8aVl3B_0ybVpbhJ&{Y&Hr;S`kE)*xhJ0 zmTV%Lyg9*XSCn$XGKq(N$yicWPJn)&aqgi)ileG18-_D;>|`j<@@6olas+|~h&RsX@LB_gi<m8i za6BBEqEl3HtSGEe1*;xzL?p%V-f(>`#-98gm{y`#rQ0S~ougpR#UFH^C*MtgkDi4)%NI+~- zgNbG`Nw5WQ3JxZ-L+^IG6~CHjJo`&$#5{I(ZgB(6@9KJNHiP~w?*pPR?!2q=$!g|N zq)q8%^jKepahx=$kEx|BiM{&iHUF|Y$pE^(Q}&sfBE(Ly8YY15#EI1Uo6Xat%&+Zs zdvC6VJ+8`sWoko5V&W=9%u~u3r%`RGudc6Kw3NK$MO}UC^SryegDVAz)#$PSnOGBq zE7El5I-(WDs6EY3$KxuYl_xd%86{^-MpyB=e~t6$gn5~;9kxg%;pNMhINTi&nIUDz z3)!4<6d%+@Sv1u}$7Vu$;ft+kpx85o7?6>T&2d_tSXP70lDKXx4Vs$XSd7a>DtXR!IFY3~;HLHdJGW)DlZUKC@eucUG)&Ivy)HmYQ0Rx@DH# zXJIc{MEB!faC@@XQZJ}2a7r~`($auA9<%}xqQcZK6BMNGyNeNFv%z+|)n3nL=uK`i z7Ej%(>}3>G6{&dGHA9>ugn)6Hw9Vpp=zKokn`@!0l`jh2fK()9oQ-OVYsA&nzWL2x z7&4}m;Jbds?tA?Bu{j)ynyRvwAE#L-O?FdpdPe8^qbn#cgI;*L4^+8+GNd9^8CkTQ)dWDzt27mliRmA%z_)*{`d##Iz!= z=p?`ZQ&u5Hl)NKqTFNRSiq*p+*1{a=amJ_-KfPCh3Qt$d$DR$SLMB^Uk|3?k>BJSU zyRO}!_);@mf!8+-gZ^xdYzl1=aPC@5{!vTUW|r6(g4{IO$9r)><$ZPXIhGGl%(#v` zZ)?68V#HqV6*uu&KqihZ`AmZMC@~_aJwZ`=>3z7C^ZAUEjFYp;;>+Sw$SRHHyv1xt zjpg;(4Z^#V-{nK zqY;y+fr#mS`C|1#MP5?V^gn+5_}*O0_4Rcl&zPAus{n#><1`w|wb##UW~FW8wjeVn zR_XwJL7QDo3>a4?Mk{O~Anjv}5qmK_rSE|^vCW+U9=WFX`#rXsO{E;i4)6~9{T~1N zt6!}d0G5?xLjpN=v+=btc1j4brz`)PQbKzoCKDNCckvk8Jeg&*RqRaDgb*VRhl4Ki zB`n5($0T>iJerh61*fD8w%1bu!$E0?JhAygSEim5y>edhnr-yXss!gKEu}iP@vd>v zO>P_~1%=kYF|1CPcB+R}N$CZ+Bqf$CEh4`Ph>|@fvsqdx*@fMx&RIz~tm0_0p_W%D zViekmzZnTC&9K1&o!o30M}0h-u-f4*{$Pz5`9EC5E!S3|M)cSjC?kC6M`tt6 zt<_Zw5&h5`gMi9z;^d;9>KQ35YPQLjpG-NeoKk`lR}wF_(v2^WT8IIAJ>>{ghakrI zI_GgdleiO=Yfto<)g1!~H1N?l|5gH0Q)@XB#YO3C*L7;*@bvNHdvh&3uxwk%&#_cg zR#2AZMoY128np`K=dvno)mSGX60?{`G!@${GkTux*@&dP_c)60Jx^$6yu%)X87o7{ z0^o2w;>qL3n$PAOlYe`3u|qr@k64xkw|BRi34K1DaXcKb6<#?@-jtHs*|6O0y57vs z(SQXw&7QW4lCCJ0%2z=@$PVjN#kSk+>et#)mi+&-jLkONZB08xr7L>p1XxQZeY0g= z2U$Fqlvi3bt6Wsd>nhVNVyX|3#Y#kyIM-MWelxc$)uB@sX0ve?8zE!($V!9>oGVbq z%$PNTdYP59VMm56;jLXZ?>EgDcDt>{T2%s(1CTLIB8N1tKNdio4H;-P<7Me8pJ8*> zXyJ5Uu7&r8qg>_y*osu=+@g;l35;vlGA?IhfKs1XG=2^BWqkJRx&F*x;+0j~VSEh9 zHDI+tP?sh!+~g+V!z(}y=;j~k8Y`2RS@5ZtC3{(o;bj5O^Q=7FdKxz-SafX%H3hVoMeU@l@g*Qnvk5?~%=Vlr?kT|Wc+?nU?>#1i z-5d^wdvh&hHWL4^To1m?F?OhOiGbcza;vq?c1f(uNE#z?%T}y4HX4$m+S;~K>gYHK z-V;JV^b!5G*U!AZzFxmuOI;^hwKgjnD$4u0-|f^qvWpq}-45IB7STC}-ELP+BV-{l zHhI6_>*&bxbG>))!u__KZS_3AIN`0LsL@!HLGC3_Iu(?h#A`dR6g?qu%#~JT0y}rK z03mNQsel$WznltOYKx1cvvBjXyEz3cme6Bafn2QC0OI!UPGfqsAI)vST0xG@a9aUA zIy!SJGea+EbW$C1)>$o;aBx^{E}gj2INE(lN)0!p=^~uMMoZb}LhK-ffK&>+F$Qh9 zYTJ8rEvhy%8t|3UOeDTsr#5e|PCw?Rrkur%DP{G0TX`BfkJv>FLp3k4m_xUT%_*6m zueyt>DPP7>uqo&%Pcsr&-+mJeu`CPj?(XzZ@vhs`FhQccxjn3aJ+V@Yh8bIYAW0j6mdS!u6ccJ2N^HiN7)-<%SP%W$r4 za;z*;N=RbD*~XB~-z*q!fVwF7oLj6k!Aq;6T4NP$jAW^pcFow0$}%KRr_;T;7K)BI zQ&;iGg$-IZ5?P*B8VOZ0^1_J?)P<>e)y35sa}HuWvM4ExaZ#ldWEAAoGS-f#qx#$1 zs*NEPc5=Z=sh4t{5r}G)-^I7J7)dawnJWFUJChKu#XT+9Z zV*8xS9o1U%Qk!l!pvxGam8*wV8(wd0X2^r8ro8mEUIYAWKh4n|)pp5PGxPdsD`jo2 zEFH2{HCPdgaxUsUPYrpkWSZ`p3p;UPz-d%(=NuL@65_q7dG!T8NmS8XR_epk`J@vE zZiJNQ2JvBI##?=v(9m&txyZhvpvQY(Q%{W@6c?|00mzJB)mkatn`>#ZkOV`+c#TbGS|<+ zDTWq8Kp!Jsjp7+sT{?r>JbST|jfTwPN?lmqd2BWtWhVvMfo)>tcDvQn%;tkJ%~F$A z%?+`;DTNF6gtj0V>6EtA=FOm)W!FU+U3CVq@=C?E5?QM;R|{gnDHD~Q#sB~y07*na zRJyL$GO3_#XvLzxh97TR2%9y=Xsc>s&dlT9R?c z<#ptoYh;#bLt7QnCP~G#6}ZF7096e{ji(@S8we$uEeAz1mSx8_mUxZjMQ|)f9|O{# zEt!j)`>yZcV*nC#%)QxcDmUcu=q;a#^=uB}*i$^5}#z9S}ZbOgc8eBmm>-YFj6VL^UBHA&PPir zI4`Fa#;_u&<#9JxJVk71nfyRQwrIc!KEmH+j$Ah>Er?lpmSe^t_+*4onx(RsAMIdX>`q0xD zgVTd&&z@-;l9r5=7p=*+( znDU*@C-nVLshqONZO>%OaZ8@zhNC?<{k#pZM&ORWy!vH{>A=US=&ZESViEQvWe9@5 zpgFQ+zqF{f^Y|uZot2Z!Fh5(ZSa%xhc+$Y1bsn9~UL)QR=sr5n)i0m!EGF-a_vAOr zI~!zTz)I$~ns+vc04RGe^Oa)4I`X}{7OQ;o68!O7$zI!RHos~1S_7UdP|ExOl4RJv zblrduK0bSmi8Ri84Bc-nd(CU`L(5(}91iG*0V!u3P6v4J#55%!z80D4;qFk;zGcDr zJgS#=-!(JG;Dg4cY`0q-4cK0H6*MP1Z}p=ajCuXMBCKq;+m%_QCEGC4iRBEHVYbw+ zFJ(|mol84mWf#qpSQIq_Mk@2TfEx9*`n1Ef6Ubh(?cX^vIUbMd)M_^_?IC6S!rq+( zn3NLwp-12KDsCX-js5?2w|mH5d&pkI#w&Z!6>Vnc`9hIU0Un) z^PQ`-xw=Y1ofzJIVaP&HTO?lRKxs+pd;pBb9cF~~2#@=~iq0DV&N0bNnwVU=<iKW?uoKRPc3<;%~ov!+be_O8#RGY+RKAx5t# z2)LI)HZO*ugT}(U*v>mH;cjQd|Ps?Wd|7{ky{%e`0B=oH5zeUmWVMQqB`v3kZ&b#;j_Azj!67XV3x%t0U z%Z>ieZJ_i2G?aJxKMlDJ?*8AZsxI6A|AxIEv|;||yN>uk2lz6X)o78z1`Es1N#n?A zI}lEyIjYJ{2h-Dw+0^^mLPB=<7Mw@Nhekrq@GG9U*-L4Q1h5@Zn_dd+x9@TT;Mp>^ zdz>EleiugCz~-vB^WgL1zJz33VeNjCJOMeX0IV`&O#&pbD%wFyReX^Wy84iiyx9~V zEwm7$3gH6R-MV=)p;sWmrQ^Ig+6i)zcWvFMW0~Ky=3ReSzX3ix(^n1JGiC-9uX}!4 zK^8Wvbvy{$C2+rZ&b6~yB}Lmu4K*L6dd8CkuXTli?}$E!qB1EFZIA3BP23c@E>>n*1@sSHt6yd?^GwX9pcN)_f%InzM+;WVjg zr3~ZC?q#D4=AwJHtdcM^rSo@Kd9U1qN0-b3y?dE-#=!`7KDj4udIU<~B-2UpBmUcf zcdD9}g}{xCH~QxUu4e2vMD~pqC&)e|Ed$Xsbj_-kbnA@-Ya{Kis^@+c6Wo+l^XhX^ z3$n7-&sm9OhZ55s-1zg_<*ZB*DjC)p4l{^9@st{lkm%AHPDosKt%MC0UEw0_IakXG zF@*ZY%>#kdDMLCWHjW-DV2hZGIsm5AqvQi13JAwe-@SZurzQGBtmM|)y3w)?!Nw20 zm5mCI>yUz>T^W_8xxuz;sIt{_d8+jp8V7bg#oGT`u15Pg>SIjnFP7{uch*-rHv@`Z z`Un)a05nbP_}cF)NQIu2+Am8I3f@J#tc$4r(w#yomMZ8A3vMNEiPOYS{8rL7UXSZ; zb;r<=w}sZ*0P7h?JZu0qt?aRmbO0n?r9I~OlPJPfQQm~S=k`tqyK?QFe1^VCnb*Ca zIF+S96-Bv-NR{uiQ}#-PU}{Df)N44tnwKN!V|iMU)Wp}(0~NUBOqXOUp6leY;#n}w zT}igb(0&j~AI;3u6)kVGT?_(OZF>(W+8=r)*Xq1ql23tu(O!1NrkSNlrKe-A?b51C zKC{H{yg`@kzQ?7zV&WJi-M=Wwx%+RTkWc+U3pT5olVodYCZ}BW^@y3joW5VTf)keC zIysT`t5zGE-)uVKc1vFvNb?qY(x)E{aQt0Mr?U^+xB%GgNM@V(R&q2}jkvQa1iI`F zQ%7dUZt4c4R6gQ5TjJC*Ti798H#6g{!aVz|qIvr1@Age{<@(mU+@!e0@n#arv=wI@ zk_+^(yYA|!f)+b!AE|TJ3KrJ^Ls+>JWgSSfs;WZOx7vcla8eNOW5<7)|MDSZz-<7K zzlZ!$QaUsuHSt?{$yA@G6!SO;bK-s8SEcrIm0BY;&Ez9fE)6-=dZ_S}J_<=OtrB%U zp#w=Ni2}%67<{L1BgJ|hot>Rriz<64bUXN?bp$TW$OygWW@_dJzvsE-WM5)BI8U9% z)Dx{ELSwr@f~a7nOe2iTRxoQ?Gnc>Jt4DgW;J(mPiN{$n6;a0acofZxu1P(rP_DwBB z!`<{z?f8<7k9$+5y2zU!>nW-zX6G(zoF7r7(W!a45PE9dCw2GmJDO4o)QQHXcLKMX zY(hXqKa0jKnDD!{{oB-OHNh^Y;$8Re(@NI==nHp; zp*9esWWAknL63mQi8US#^jCwBS|is$d{^>!S|)anBI2B{{TFd$0`>fj zeYFsCMRs)5_X_35!t6t^yuj0}Pxp|LN<*fHk551JGk4h-|NwN}4 zj{Q1*06T~DQEPl~{nOXQr|PuFj&YZr1ORN$;cOol_CWr)>(vkY8Kw~5$W&M?KT;g0 z@^=H|`z$-otbdD~O1zM?dage9cS*RE^vh8^i&0y?gd&&u=lh(RnzEi6I;B2lUcimuMox*8oWO+9MpO=?;%`x zJp-LbCb7j+?8>GnEcycSLvFNCM8L4M5bmX6_w3|Ey0TtFQ055=%=Dng4I9d{DZ8YP zA}g#}a+H-`sjR7Gx|?g^+r64;$xe^|j08m%>{u1MXDhgaE1-xn&_RnRo{qIFI(W(H zTmI^haa%Ua-mFI{2D60}_NZw$J-L%%v3vL%H7R&|IC8k`Sm2rJxM4RV$$;#qmF|B? z(JEGyfW@`hb;*K&5uTl*C8slW-ALY~OG)%Mxig(jaY|i3|JuBZYY}i$C|gE+%w}YT zAbR^-E_O1POmab)Um0;gkso=c?OVKqE=^23eh-ctz8tigF@O-#q%!-^LlB`jh#?eE zsTLt38>q95zCPY9fnhPkEs@R1u+TLy*d3lN0oDX(1|E-e54M$h7$&w}_5FBq=hm%- z5I9G}sYF$W?8);G8T;gk$XbSxF`ZBrbB57~K03DhdXi38wzOi8{o3J? zelY!r9t!&IOn8eUUXJ6Ip$f<^;n9*jSten!=cY13Ofm)Kj0(7wyRgb`0g@-U>1eW` z$*gp6lh^TIxnBq~jL3Md704WRD1G9Xt)vPHwy+myTC!E6x?`ifVikrukr$n4NDhAU zc2VRYzT8xV7}FeeAh9jVO;GzH{vzG2x;OIYirPy)tvao z9X)_av#Sgwn^ii1j7r$&nm|IG2a*~Nply<#C+BF1zFi5W;>0^UPOEiZk5 zIqB-u11)N{RNt~0LNAgFkBS_jZVnxd$A?MJCmgZ1X^InUA3zx_5*ToMO-5XCF}^?W zH6)iY3`!6e60)<#ll_w#txO6~*!r^7Cku0aGt)&7CH?Wj_;(kF@IRD(7@2wGQ9Z`gGPmnPMl z35_!|-f8Kur*$ZPcMP#GubnUhk^OKzU8ni7AjxrVrY>9pGppb0FiFci%WY!@J#{i) zKm!K!-EJ|}ZD(Ge2i{&0#A$fwmiP9xOBcSNTVu#0Y$T3&x2~#$GpCuhwZ*JhPUkV6 z{#zSSM73?Ait}A$Q-iBmy{0;wj}80HD1unDBaX4k*44pyhT0f5tc{$2YL-Y;UbY?( z@Csuw45O5hkljvkt+vD?UZU#1KZ<%TbR zNY2Uy#T{viiDf!iYIUV{fAgslJv#DNsCSm;1k8pnkaF7Smv(|&r2$#`F7F&6vOJf! zk);&=-b>7PO9(!Yzl?2$azx7AI&jIn1+(rc@5Pvk9Ez$!wrc4a$n#|0XiL^tNb=AN zt9$EJ?YWc96YD)dmX%;TZ%4R({3Yv7tn|E0s>$XU!C?TCj3?UU+4xn7w~E9c9!&C3gXIlX@w|A)xZ zo`6T*@G{iuL()Y8lKNbIzWYtSG888q-nI$q@LX37c2NjK?G`fCR_OzIQQC6!$rjDx zn-@Q>KEl;O(T{aioSp^md}1=u9$p0kkh%Brz29e_b*0uJKwqkRZx1I?#s0MTtX}s1 zQ~pW{;%u2NJZip0(s-piFK`zl{+S*s7Lw;#j6fuYkqTp(mwW7=67iHpY64S3lK?tA z1^29C(|?ss%`r%lCX5)4JyTJN0stM737GmciL@Q5OW}8cQ>BNDG=(*HUp+m5qJ+#s zhG8U5DiqKkfycM1m~thMrIn`O(AjddDa+U>I0aLog%fpx5JQPp=3|l6%cR|vhZN+l z0ytt4(%M)bBU=N_V&foKha&o4h4Bj$5^64?T=ah4f>N|>_8UCi=uoLuOnANA9RqH0 zYZ1;n0YV|qLV*^u$vUuaS)r8@e5?)lzV8CE%5(=w2tUf8@v|&#{RoZwp1rI2VQvLj z#7#{ZwqKV>f`4w2W!m39SDz;GcC6db$+6F2KI~U${Ms5k{}HJ2)Bb(IzW@H7!#MJv z^jC!2h6i+pLX4&MR)#(ja|ho09yaoq%+L~0Erj~T*zH66`atf4p^iy-vIl@j_!g{o2U=HwH^I-Ksba$NpjYx>oZaB{*= zZjDW9Cz&EnQoSw520sw;DjPAYz&GwZ{*}zlU;{bIBpw0G?&65I@5s^1Edn4V*mxY= zRbKf*Oo$}4?gPxuA02uO<8nRx5vGh0X#^+63bzO_LlWwW$@PWspjuiMrBt~P1INc5 z^c?5n^EUG`uDDbpjC3OcvN3!J1hUm7IwPaM^tcqi$tlnXW9t85pY*hCadYEUm)S9~ z$FVCkGtVP^@G+ohuP0763z0hA{B;A7@Ax|jr%HG7*hO1`Jic@rDYP6}e}34eGZX+KxvkH-}JZxDM88eJiJdO6-QqW<|x<@90OdNteRTk1!OQj9N(eeb?8F@kSb8@dq<)1#D*$-bb<+Lc{I;+w<+ zrG)`Z@BX{2Cmwktp3>%trX_S_cj zmiX#2@y0HX#WIX6Uz9G#pWR+S2gXAt^$?av19Ws;fs>J>Y0U_oVN`W|#hm7A&|D)X zK>V@%{X~?m;XHGZg4b6C;27SUU|Vk>f~vbHS6cv5vll3}5;caTeIiq5BPE1?-*V?AI-2E4^d)11 z=@2TAqasK|;Y1k~l)#2J8YpH90!QM%hd5$NtnqG0T3>AmK_Qd9fc(q0}s)FN`3Tj#w*cEPV#yVtI9@5gr=AuLYIQtXZtv zs?fOA0rhQ+fqMVb-)X+@my%FBI%8$CYX)W<2+j~SOZ)uff$y)?&WiQ4Y8q`!9tS(i z53Bfl3ky*10SGwUuQh6<@ABC`n(D;WPmg&qMy;;@q+GFHZtQ?9um_&op(;f&?6PY# z8w`*048U~-fF8D9Jh>HqOPID4vfp0_%&+d4;OPS*8pnvg+uC{-yB;`xyI+fjQ$*pm zcEwFV38fyd=A;z94Wn~e7BN6!8xzkfO&?OgQ8SIoJF zXrWt^gGOU_3TNYz=#t<`(Ss%zK|KKtXTRs=ileiLsorL&NdI1eHcSeGGJne{thmR_ zN#TNou|vmBec8OuErn*q#mSj_1Fq=%Ti15GJ3}YCredS7wt5}LSU+e^NQYi8N(6%+ zH+--Za|DvyrsoSWyTlDXx4_?WKJRjN0+9v(^a>$=^1t1B-RAt$85#ITt#8<|PNT&j z=y@lt*aJYvGBWTaaBah1IG>5^Jv5GCJ+BY<0~DZ5s=MJV0d13buF1=3g6n);of6B` zthKi`Hq=2n?c+gj2H%9!s{`v_&jhv-PS0%W^Rdre#<5Fs1KWe|X*!=ht3s>Ul5flW zMS>S;db+pWmy<#dgnnZ}4}u2zt6VSIr9!pVw0>iceBWq%b#)ALo^=*27UK1Eh&rnM z65NhW7B~G2*OmCL-j>~&Jsz$;d6E(fKXi1Z{_u?)Y@3qY1wW6&+R=@#~T`hCjUVD(-=@b*}7_nGf<>o|eR{cR7n`r(z={03BO zz=-3fv@|~ytKO;nPFVY9rJ2WqzWLGRD=hfJhUI==Iw+O^r)YL=^1o(zVy~5c^r-NWA8`bMKY~%;i zF}Oraj%ZP9U3J#M>Im)}DTSd(y}nzE$+~sBankrFvo@k0ub}FRX6?HcHa1Nr^^r!! zdQD+jnJ_U(xrvu|K}q>p&7$IsVRz;#ZipY%_+rAbZJ(rx3$G3gJQRB^F_Rb{CbI^{ zFu>9*m;dRliY!zw5@`C-!yhUe9~UTG(b}GUJUsPR7Vi&k&<#8fio1_8b})V~+GJ|~ zF5v3fIyit5l;rolD|G@LK<)ieu%Lbo_<|Xb1|wI>VMRk9H@uK9J0A%_wp@7URdO#; zJM<4@^`Pl_Xh`;^@0+xDVvkVIBJ2W>GH0RF$1HS6KiSo9{`?+mR~qW7=))r+=Y}@G zPflb}fDfR{pR9%;h{vl>y;i6(ue&Le=YdIWShnd~wW}Pm`F>WFe7i7TmtXTYOg!Q= zv2G872>d4gq?%!s$>$WlK3ysoM5BX%*m*r2<8pd5^PyjgXxqUplq!a3*E#1Ef5Yoh zuWxDl{#4`F4I|IuY&P$MS=ljJUHPBiMn4?K)O6X-$I4F9-BzojkDZ2DB}z*c&A(yA zrleS=Q?h{RHNM?%7-4fVDDbUw>&?4l87pOqqv)k1os0-o}mH)MCSJS2}a~laNk`nU+~Fn!TI%HsMRSA_j2h6#CQQAm;Vn7 zz|>DFPk_cReNQf1N{QS|WM-)b*Sty_xn!uckOI9GWYN8D*U#EMkqXeHRae)jgFZC# z7kUifHrsa@epPz%Wve{6o>TqCz!7cn&NHF5`)QWV!USJ@i_>OZO(uUvPeD=?&>D`& z!%4%eTCpBQHnAJ_d8pwFY4CocajgJ|ExF%4v8YV6cD0vVwv;4<7}XjBfaoP8F$#8; zh7A-Un^a1Vby}}NaSd6u;-f2%Yw?A8UW!(f6XWD=Ij4A1i_DU`_-G(2Tt1#&J5t3? zD_NUCRY($D9eRVzvj(9l6Ah_893Xm1us@ZgxI4AkD=8%X<}K=7bjf>{5v6XB#oywM z3a{q`Re0iJvl;0${jwZ$$mV;T;tSh-L)RT(|D0^!gVl8vjF}$K_RpgyHal~_)G^f< zi%f?1FG){F&dtwj6ZC9KCx& z(XflTX1*$oZ(}<`@QAK4G?2-2SP25P2GP1hs8(mS4{ADd@VGD6WT`9z+36edeZl$FNHfq$`>^h+H}*aS#dN?&}0TT^4;gbEMbb$X}W}MGELUg)^LS;IAmD(3G(~!+!sD{;Z zE0|xg{agOkc#ToI2RI_+O(fzh#9HiC!O%VItbvTX4!jz6{?1SL2A{5Po1ZrZI~soX z8rR2<8@(kP&*)oLr>*NY^I6o|$r+F_rK>*oFRtt3NYH)Q002-`7)`Y46}D@Gnb)hd zt#is~6O4lU@sw0{M0>%Yy%$ZFjIXSytdYA!YX~~h_Q%e(X&aUFcHl2Aq>WiL}@)txoY^Mn$M%OR!B*ZZu`?;f5`Cl^go|`Gu9+yvD zOKs8V+C1CYC)=TDlad7LqI?dZta>R;B2!JtS_ZNrdB0j(8mclbox5#bSp%GXX-kR> z=OFQ?jsv1=>18KuX@kEE!kZE)LYA$qK9D;5LM&XrzWDjQFJ4cF679I~ZqH|MJ-t91 zELz}-PDKgX^(m3!kivt1DJ2pbXUpf`1E?o?3Hldk;GA@^tPjf-9GS}!dbs_UQZ#7t z^hds|P&k6(VywCgj)oI%D>0WO3y#c=)z>7ODeru3o1#9{tKkYRNIG>4sIsgD{q;TD#@JP>2^EnS8RKi z)YqRee;c@FW-DzKlor)H@~}+y=Unv^^pkXds^q%t(X$K!R51=n5@e;_b&C$F)%?@f z^my$Y^lg#p+T`C8x9}EC1m<#~5lOP!8G}g`w3%3-1I8#rYt4rdxd}sP5AtEj2{^c` z!|MxbBXiNK+nf^BTx`DLd`mAsY!gXryQ;Jd8fUfWo)0hPl$I@K@LDdJwvancEczpp z8}Jf8EC)G^rf~~>99+(ZsG5RrJcpN3R5R^}P(IJ>_Ysd-*l6hG8vJe-npd+sh{d!~ znlVToU8nUzB@v|1oJv4)ERg7xi!sk{f;rar%b-3|IrA}f;;{SzO~@fS+onPo3zMTN z(GjD9$d2@uoyIFB6?Rt4b%f-C*@bw7hbF9)ssNEHQT>;?ZsRxY1DuH<4HXk%Keh}` z>m18SJvC_rSsK7}+>7&cFej@7jU6ej& zJ2W2iiy1WUK9l=Rq;yc2{-~S%DZ&w^+b1PYz=20S&axHL44Cp{tPPM7 z3I_N4m!=Vl*Dj51uvrO)noV3P`g~0K0LjD5IQl1(0Y3=l7Wu@yFqtm9T`tcmS8!>2 zRGp{W6V+mAbpze$n5w=d&(A8-ly)Q*b?edJm1~wZMO=i+*H`PTDhwO za$ENEI<0!^U=%(ZE}gy_zjyHUI)hG+D35GMw7{Wv-_RI+n^r6)7kjKgsc_c|9-*5TkaU#8qihay!#(PjM0GUCJ}2Pl!W zaT)Fwe>F8W7qDOAXAAj7+rOMy)OEC5#ZOV}_K(KkPHKg*#1IJ$a7Vje-%xxl`O=&b zWfi=P%W~Fp{gNm{AyAT-yJw6_P7ngx(=x`lH=>bB^)Xgo9~Xk6K>b!$E)rwJca%Rb zjy8Kb3uTp5paCMj_3)s6-qO+41ry0MbBMyneQ9cgji^=KEU~7%{sq5Zq56z$Om%42vCLA*VjpA7AWC|@@=@3 zW$#&bn8&Tq`~-7U8He=)Epgc$f0Mr_45>tJdQ!kkkA0Obf6BjS>S@dYL@Ea!KbM6n z@Z@M&p}GEg)2RvMOoox{4EpWZ?=ZbzA=6pgw;@z<*^x7oakb~o@w9~-U3l7X%_F_` zM__T-e7O9TVlvnP2ruiPxD?DQJ3Vf3iF~g}yaDgl>t%%mTUGngr+teK4vQ?3TZ)FD zv2N>GZvYB!rcx5Dx|2nVC20|QW=X>@y5Fd9ETp|&B|kRkS&%~m*W7A^G6v>>&nYaL}esa{>bWGP=e8}$9qX?pWnG-5-*9z@MB`qR@&rPk3r0C8qbJC&cQ zYvt9+{42yrcoF%?6d!YpNf<8+ZfD3nm;1aX#ZojG`I_Xn#6#R$~dZq%bikUCNP(lvqUrhQe z)2&&nYzBT`9PFLCoQbJ~1Z3WjzGZd4x;3dh?_hO@30<9UR%cW^5|+%$6eZm9Cf=Fv*C9?RhRZ1=nv8 zJIvIb_i)PI4M++2Jl%Ze1NkX*>$4duI+LtB%dX)1Lc#?8{!v+VV}Fbb!S|e1jnCbg zc8D|jdy9PGtOdx~`;&hf5(OI{m3*R-?hipm zl$3HtPJ=tagC8U1ec_zb%k=h_X$$$iM+oLppz9{7X3H56h;8lctN<~9Nj26?O6XXx zcJws61^M}TUGt$fjz7w?>-S>qXWMU;Z+bQ8dp39_CUga^ITdhU3g6sO9es}w^V?S+ zau_fjkI1(QVg&!5uV;~V^Nak3P^G-h|DhK;`yBbt`T)kr{c_#y`c~-k*8SrQ=cD5C zUH@&@??&-z@?%-3_tAUuF&8oQO?Gd?W6Bd;;J6I0uApKX0GNHt+SW zCbl;L;lLfC&s{%!CjG8IpC8DdB*m70AK$`-{3rcBZrgv_ZLFo5CUR!K9u>r>(=Z7= z>;scg?h;@wwjJJNdpgX{3+o{pjY$)phkeX>#QC zwx{^X-u2Yav_og`4CnjA^cIXEX5X?*ykBV}bO{cu(4I{gM$X6iDQ&dpk#_cWS3o?| zhSSyYqoT$aWAn9hGr~;k>bx81{L9Zkzn@G#$8swVKnSUKTS?%Q-0El^$Oz1y5H4E_ z{b}WF$7!>4l zKj-D!)7zmC@}KRR&!d>Fh|Oz)r(mEHu5x^yN1wKOk*`O)-$tJlKaYs|iJq%3!7^Vz zm%MHbJF0KK-n9&}<#^SY9$RJGjyIT%-b9`ULBtCaFQvv}e>V}OA}=hTEu8iHeW8(c zl2W}mFN1|1%ic3Z63NLq00uC)B~y8TAlFl@#&ak>WKiYuo17&Q32S6X-=`rKgx97sgmKlv_ye{sa$ zZ9lEe zw8_C8*Nn-2q(!#g63esH^9P58!)&4SG+kdLXP{l*5Vx*K1=ZJh-D)RHG~aXG4!TM` z4u)PZQ!}EYJTinje~Cyu2vt)0PMc=#)Ri3#qIR2WH^TDyr1zR~DZao7*)XtA4#DAMf2M^xHk5gn#)q zu91R_!uT#)dkd>oTPCtO;E6h)%^Qaowei34BX{Z}7a60K3HAnaSkQf?dw4zsd(}y z(|jp`aG}q+5{H93OYi*(gZ^kaM*qX- z*3*v7{t!gGTE||fXL{=>tNMdR)EQ@Sh2XrR zaEaYLor!{r`(OK`j!#!cAb*|@b7G9kf{rD@Th@JFm2jWTf17%Ne-2Z9EInoDl#-b@ z$uMN^tII*McIKp~|6T09jv`qmu@kpjsuj^S;2ydulj5c8g=STWXQ zTtx;`mHx^0i&S1-K6m+hu6l*?$$9v#oH?JHN^-0zj_Bgi1&&fM4U6Qd9O9qt>CE6E zW73&Wp*th~hb23FK_`eNZN%u^t#GQGzJ^Iby3gWytKpYJ`3Vse2uh5?1LcP0zLh5H z?RLhCjka%p3*T}c!1XTBWR$q z$Uv){j$OqBi6#=VTj1mjAzJfddf;+qC@KWwMYea+R(5Oz5l6~zx%`R zr!RWi+`4!oe%By}c+H|z$2z4Jc|$8R{hvHhAs4+keRGmdc{4E-^+R37%}zT?Ls$vjx?k*5Ux6wRHMmds6=GoI-I%U%) zPN`8!96cLYU@>9U_DMy}z+%^jYo&e@TrhLrKj~S#>TW`iD`a3ZJh^WVD!aa}BLR)4 zA7uvm*yr_Ozr2y1j}Q;9H$0&v_h>Wm7loEsmHMa`xg$Mv`MTX9XxtwGsc8J3i}jA{ z4M3QF-fEtmyaJSxlG34nKgHy^-V8$YS7A(U<8+zVqWwFjdbMtNVnBb7SZM9{YvVR@ zcZHj7If}+rTmI|4gr_W^2Cd|6yv;XC?-Pf~OcwCh$IHQx`%~qLg%IL(;8Dcr0^r7g zdiR?GFO@I}jD+YKH>S}LO29aZ*vT%n6Zu4txlPg(Pm)Sl0nEDoN6lsGdSyXT|v)|+2+SAX6gcULz*n&-|lFMbtgsVD^*&S>L3>!BT$s#TPt z5yT$G(W{ivQ`^hp`+qGlQL$rzo@#X&L|W@~rV@Mw442_}iq^OK(LzjT>A`F{3_^m3 z7oT3i6{k`;{s!wb@2tA5`J0U~9{hP|b5MQhi)ERUm?dypjLOiSgpBj`aC@lxPgEOdftvZS+_?A zraWBq?@&aTDcl~60jdygyEmhZy&?B_SIa<12^ioQp=;PmgBGNm_qD@VGaSJmqYRpD zP89#yNbbwkJQ5VFb=}UJS^=W&>)ueJEpLR8&(1hM7i+Wz?VN)TFLCOoN z5e-;^zcV|RvagXq2gseLY9UC+`J(e->NsR}1o0FxBfI!$=s%CCgvvbT?h1%Lu@wdH z(Shk%>pF@#mcfPWd^jeO6a3T!zz9(AM_0^M$CIp4l@s!!u%Ei>u!8e&>?Y;?$0bHWEDfb~xqJx_@m`x<%_IZ93X$a4o_PJ1vHotJ`Z4)6Dr!NpOVF{GK?j$iWO# zV#FU5X;YctJ7up=$muWb=4xABVefHgJElk7X|zeOZBgku<~@%#lPon=#2m&tuc|Ja zJ^sDV;lOYn&O+)`VJ$fxCH)lOS+5*u?nH2hGqZqo)uL^IB8>u$>M zaJvN`p5s`hj~Bo7D<8(9xP&Ew{`ba7`oqO~1O}aYSO)@^rq&1lw`HY++&&RCx$!LR z4e)4i2odfepTl-t`i!<}Hz#O~B6QY4k%1qwUC@i;JUIC1`8^;MtbSYY<0U>s5TL(| z!v5SMxc*+Y89ARny?64`I(g_<4q_iwV$=v?*yTln3+C#c=6QK~Wj&KT&ewS$usMH-A)~ z*w+qV7N<^}Z0RcYxIMsuw~jZcmkTEm0$H72XjXR;a4&=%%34VUt0SP6;=9b`8R`qE z!_Pnbs=7u#Y;hC`Q54;=_EsGss4(DeV4;h~nLL5u&`4WD(*^Ox3_4x-Sh^0NR`=~|D%rIO=upb0)Fndul3bQ< z#H2y;ESQ2_r@sccV?J!Gt!!glSp`(VWU|J}C~WuW*+QTSj$PA>ckW&q)@;_~cuK7E zrqSF!H&4<5NF)`#&=1>bkY9VH8RW1$hX>N^lee$~KAhdXt^}4!D=%-&l6n`2xrpP* zgKN>?6krUJ8O#V^uwd1PM#5Myn@5qITOUeW(Dgaq+2PIvWcU7u+esSwfNc#gU#?#L zx1d;9(uSmVkYjR!p@2Ka-gDGb(t8{yXM$DzE*@a+2zu!g%a1zP{%$Huc6={ykqJRs zwrn|n6OI3qT?S>a%{>PymdElUN}@-sFKoD7lMYb5>1%FQsW$ZX#s}=%*(j*5UycGh zyNpFEVY7u`{+&~F8*T9@si(G1K)by^Lrd>=EfLheCY+Xyssrl7xa{}M6NtT$7XKO+ zsy95dRSmOqeL;_)_(|QHSrru%Q=rNi@eK|k$n?F@(6}R)A&Dtf0h@U)X)% z$1*zFe{r(=I;GS%wR1sfy~49!4?z%p;~haI1IC09JUR{?Xpzw@3e!+vb&q?}#Jjw(AX!KPBX2~G}^Y2fK8b)Rt;L_B%hu3|`@56Uu$HFM5spf1j_ z!F-a?O43OS*k8vOjJI3TZiz7Azyo7d06~e{S%h*(3vgFQ6!{ymagDRz3h6O z2u_61BP51fm%>9H%PtScrjae@g8 zm*rl*<{wuliKZ8ZL4nIFC>U8;!FBoyQ3X#S4!7%ZY9pwR9KAu{QA#w*l7+=CzFHi2 z>KqBwm7-ShQFUK0R}b=nh*83OFNH&ZLMvHPa_^9sKqrH9(od1d^Xxv+?XwJjx-aQt1S_HR*?Y(TJ0 z-d=08;g|X~0I2WDPWuI^P3&t=cgacHR8{Q0Y*bV% zZWp?9v=}5$eeC;TJJ|2~$X$ndam54D%HZ>|J?sjzW9*mTCs~&*gx_If(CrB7?SJS( zr+6J*)iaI30|}wi61JmTodUY85Vt`6 z51jQV-khsRoOi-g3)TzGOtrH^L%+?V6`MAyQyxSp@WfFwGAbLA-S+kBKZYb^5((vO z;ZvKe?f(x8U_3NAdcBRo5BMzT_3Hadm%k&XfW72yN~Nblnfo#SgidEN?gURyyH;ni({Mn^#g&p+^6a`6z%QQ!Bk z&4$qlrbC6jFx8$%E*(cM?fI8>+^9a5`hU47AQFMFqYl>?$-R8FqIMPLKdS>A8hHm; z*1Or8U$CBNF(N2!n_?aP4@t<9zrbJ~dl9;rv&M*YGwEq7Wb|I8ie(Z{I!PR_8=~Z` z9vcdO=U;R!YAbCTV0Zq)kL-Lf#-bohDpVKhEsYaw*j|=1dwS1&^mr`x2wgDo8D{rEN zgam5L2+4v!EGh;_alQD;iX+3~BTi>VkgK9SLm98+U$@(n3+QC>G2qO>z9@z2gCDte zB=X>ZDlfW5aTmg@I$G^wPx&vv&0Aqq0J}h69|UmnMd}&Q;fOaen*9c^x~<)UH%bJb zD@;Q@Lds7!UZT6eUHJ!fw8+~fQ6@C)RNGdII|`13RajD-Xj#&-k8kvYr`qDI1p6C( z6uL1I06N<|NNX-ti^qQBC<%?{RB2EVXH5zbt^P>wt8=$(2&g)2Pqky;hWtQbWxVpC z<{ew>8y-3f<&v4lJuap1JsXzE0! zzzehM0dTIj0O*vVv%fuahX3*KadmyZi|tFb=>l8G)6)}^DFbcvwilt`?eZjC+Hw5( zYMtHrN?ucI^6wVn8*yzOENZhckIZ7~>A5l?>@fb++_#tayxZ6*izChq=~?u{EVpcB z(2=p1j|+GM<~8?p^0sW~93O@i83|w7Z59zCZiY0c%aA474#pQAm zTe5fKWo?i%8_3F?JvO|~m%t_>8r<6>SJ!nAjHhOGMc_CR=3qYU2-MX;i=SkH55|F2 zZr@Q67$h*s*0P$3Z|HeXTR1?Oeq^Q{bN1mToL|*q{7aR-bmvp~#o}t0Fki%gI!%5s z34QnmrhyC0x^Z7n!@Mz0ylze2Sl=iPdGBXjgseHuCRCR_SpI%SF>CXQ4C3X_0huWC zFHHQO{IW&yWi7`zwdGM_Ju_p9udLICtdP>v;xxgeY0y8J5u=VR*|izUZf)Dk(Re6t zaRzs=Ly?FE!oN@fPjIcxGAq8o4+K0;8{uTLr55{~NMu_cih+-aGB6K_%+aREsHow` zw`-~on89d*K?1jp@G6~_k;=6ub_AcvFNav17FR>|{0L&eax%S)H`Us>dP;(e5b}Fk zU=oW(b{zuR-`|yz%t^#1hDTGPh^V37i+fIq^-$o#pkLpX4H|)+fTtk%IbMc zj6h^D!xY})^|Js5u#m#EO;aCL3>$L{>zC}Wwb9&kla1O8Ko4)fVbImS)(zJBzI%SJ zx*qBBS#lhvaJRgad+I^HkVr3XJ+QU!z1bf%vj-MTl2~9|0DqmP=8H6h1o!t$eh)Nc z{wt6Pc?A*cD8JY182H<>kJrn=(VE`@3K^V6vmuC*h+#0&Mq7Xll(%_F7EbyH^my4T zQ6b$IX|i6&t$?=~<+Q})NQb<YN z+qP}n>2z$H9oy4T&13W%obfX1-hNF#YjGKq+q>hIpU`s%b^@Jj`7!ie6)iis*70}diH zO;Z(BjLj4igMtEJy?8T28&tn*V+=!ljG20--sgKPm;c!Hh_jJ!^EVVgsBFC*z*`Yr zzKZtDtDZKT{5NTfpYTG03x%~s&J+a<7P|M(DveboXOpRVJ@TTcWku?626g z5-Aj=gULi{K`k%X#3qER*lVBSO{M*q3=h! zKHdJ(D}e_{rF!kiKi9L6;{sax8&zucy_(Lek&%Zp(<|ro92c&Whkqs5`+ZL_H{~}3 z4kqyCk0tbGKY`~Qn0EEH&O>h=-f+}O0I}L^jp283VIO|=`h2-qf-5{3ny~gdzd+hPCs+RStm`+w`esUn4v%-O47`Unwq*?5UFT7CptW(EJ-Wo z^e1RWF>wA4lcMfC&0Re?{&ygm!|4p^fSbeRi|u?oC7eb@8WCILo>U-Cg1_QUR#!)m zv7d1sp*)aK(mNnzI5wHoh;zx+7-d)Htly@$Gg(I>bX{s0MkbxM3y9<5^(q5^Se{tX z*#2R_Nd}T?^@FttKL4zl0p#>chZ?3yVGgONpsdnsXWFTCQ3UC0D3vahbZynC=yTRp zsr+&8^^OZaa_8P+*AhZzLx?%^#N2?Vtc9vK#Dq~M6R_}kdTQx&*0OOcooJg2s;C*Y zzls?{rT%hWvtliqfal~t6D)uYUbbHi*y?mAk^FA6)$k3^$#=`~6mc@2 zognZEDN?SkPgsgK)VUpp70{P8fFCIn{u;sbWwhHHsr_n#R6%@i!V`U-B}*Fz3XT4A&10Y% zA9QS@C}{}eobiwzE(*Yb*P7mZ9hMU9cw84+#(ILM%~l_J)3n*SnnlmocijFhFrT;D{Plq=<>p34|NSHA~s8Kx!&ntPXKjRH4 zwnNrhk2k&{MvR?MGHjDeD{(2_{|HnPk`P#|D z>vvUz1N#2wAr3${EkT6_qcX_}qg1vA0#wXwf8%~8Dy{~GR-0f}521?;)ReY?8tR*+G+D^8zz&xj`{QI~Ae~)9}@1XegX1rgBT4Q7^4*TBi1U-gD z%|6G7a;&Dbu#-gwlXat2ou^!sCp zBoygVs~xV?UuRzNSmX`NLI|0ZwHRoMX@U4*${s1-vGrdp7v!*zdE6t^>%i&YLUK(r zaW8P5Zs;J8Zaa)_KZ0Q+MV`^A*Lw@4WQnJ2L*SOsoId6mzUW~4u0W@X5L)e4qthfZ z;e1`;=$U}Y#mt3E&jUZSF^PFMm>*-Bw?i~$7VulKm~ z@qWEens}4QYi*W$D^(2}KK3SMN&!!-GHxm}oyn{+Xd+c8&$41yD-JgU!988qPYAD2 zt@aIc$b!JsQ|c_l%4#Qc{5~Pg$80MjXPs+oi9KYzd@7nIE$WwA<;Yfu5}Up?hsvvn zV-QPZm<$qRFlZ5nSht#RsnQ<=l8OTd+WWlfkN#D^nw7Qg_IL>-RonT^a)HHoMcCW4K4O;*?TWuETl;4UuVP=>3_L6ElA^xVa5t%3Busppq)Z> zZAW};zHZZ%O0=DDK@!6{fK#z*GL0&;jF-nmlgWtoc_a7tXh$;BiHl0w3n7yO^wHE*iDbB=r81*|aO#-qEhb3~9$;DX%40IT z$zg~yhu-geSyPaE9E@ETv*P6o!Ae-ba|j`9m!~`}EY~1{Cd~YwDyd}@u+?76<%!g* z0Ot^!vzOOQmuGplEH0l5bZz$s*ZKw9?b%j1z4&>0^g}&Ri(&S zU``y5Cb576$sW3SB)TQ=4cE}t@LO3gI$Rlg^uCCO?HkkQ$FjEL#1#7%cLB7@Iy1t% zuMwj7EBA!B;aj3UbDU5tzYm!@fRm&fU+aSHXgZhLf}_)HPr{Zo&DW_l#ACv_<*#P3 zzza_eoOlB&l;6qmKH17JAQ;HTl9_qPPUo>?S=U4h5sB2ViuSIs=MTHaAO;whf#mHI zQ#=drVM$S@R3Kh7X=P;Pg-PQiH{x5wQbaPk{)0!v;|ww$jU$RP_Na*_i^ebp+DwyQ zf+Rpne78`@W&k)?5op<)8gfD~{eIIF%5LC7%qox;{o#NS=8!}gMaim0U#|uRr;9eL z30G^8{i;5d1R8}ed;X_f4uc5Z&eu^|@ABvS;&0WPbbn@4iG>KZ%vxi`p(%*49OGY4 zd#`+6TY7ZeN8V;KYXlN&T$u0$E+M$P8X|CFiJ_s$ z$5TA=#6W#3P`oC z4Kq9GQn!rYx3$@*TbeDs=?I1%jU8l>W?`XNv4+*e%NCE{%5+nggO77Zh_C zV87mmQmIxwNt;1?3||^6o@U%{Z|f|9(q5-wJ=wT|twwt!F|x~n2w*G4bA1NLMDRZM z-gzaBj^CrjGR?QNh|l}8^RbJiC?Qyuv$FEgEtsvrfro)3s)S#W0mSnE7KtJt5Fe6 zQn^Zn$`IJdH9AaScveu+andcyL>x?5%(H{3s&~ElVCpkyYBgvS#^q&?6%ahJv7g(r zo#zIT0hudE2NR;q5~lB1yG(hatCEN~0d|JG^S!6S6Hk0oXn!c+ z2{n_ftVqVnIEA|#pX;LKB*TAqVR$*PMfSk^ zSUcv`2!`jm4R#Y3FY~AiDkrmMHrzDV*I#S)3IBTvr|HmHp%5aogw5ZgNG3%m_}LkU zckgwQybi;kA=hf%2d#y3iY?vEN*ayV*gnO^}TNaan1n`g? zKKB&(zW0hHmQi>ct;UR&PM`19tww|wgYXR}!cinClBe(dS-lB!;JHYZ+ha%0s0 zYoUh8m_GWIwjz5Ugbzl_1Pjd;UxWCi+fUylGLy{YdX@}S!RK$Ze#o(B+jCKLo!=H$ z@a(^h-r@h2DsRTAYYl)tvd!U4jiR*fb4mTn)gDP2j;{au{cpBi&{+qE+ZzYI&$S@1 zc&X`n;iEBV(a)$yn6J&2LsHHjJ0c(xW85({N2OSErYNKx0(tLrRs?rFg~!X8oJ*C2 zX|i~cj;C^9Msys=ZyRBGB6bfrb)*9u!04WA1XT5$ux8A)R|FaasSr@5xi(yNVph)f zs2R2_#$@@Z`q9IPj%4JF0L$r@GSY;jQ?FNE$aVEJF9hV`YBEge4;>ET%YhjFOWFE9 zsjL!V1nqd&$BZ`7X0P4XYvH_^b~;!?LE>6#PUrE62)!J@9T5FVSuqG97Wc>bjwKtE zfMw9M55C;=P0*ff%5KHcVav4_Z01gZ2EG2cqTJzvb*1mg_icCEyWZ=;YE8iTczPIU z_innqFZ(;1tpSW8&+`aN$MY~1_%dJheSb(M6)^JJy8L%i2VW$C>|Hm)E?n?^)FaZp zb3}j<8@|Nz_NjF{%BndEz{$X19G~6^`@-!yV5-ef-Tkk;0X(C0H|rSqf4?kZfI}h$ z;b}IH*LXVje^8w_mA}3wi8pv1#sCDBy>R|FB64&2D2T)syS{!xA+a)K{#s~g@I15W z982u7;6O{0BsV?GFp7EHkApwS9IpQ@YNLZ1hO7em_>1N@Ne)%~%9Y{dJZ70on{?_Q zKuN<~F24`F^0wV0YshVh?~hNTPKvC}Kgl3cpS;yIHZf2nyzc~dMtVAsQl=3`e;hPYO(jyq&=4SG`mBDF zyY`|OBJZx&8?Qc`&`tWzco#H@0R}#R%}MJ)!%2hny-=%R1_>rbj2V<~40mxlm+W7@ z@agP`7pgG*vkLjKi&bWPI;aj)U@%jxIW0Ma4f^&0#UD}rcrIAGGTi0qT$nnN?EPqP zwcS0hxD@n-m@re7`co<4 zz#Nqn3pRpZFsDR;!T>;o022ozN2)?c40jYLQQK2e`Yx&nj!+DR=VH@K>Y?{a)1LW@ z|DLb+=ed?g)^BHK<%#86)hae+8*jBq;uh=G?ibl^)H(En339FRcwFkGL$_#DE=wJVpmygY38{)|1T7jgKT5FM ziQ4?<;gCYJM#_p#$}6ujF?$wl;uT!+`hX+j|0t~BPLJB?xT?{$4v@cx5J?S#opxc6 zg({I;CW2Sb#={>rteh1B4k*S$`sdSUTHN7dG(CB>E0nsfC)wAQ@bzr`DLO6w{>YR{ z6wM^4NLl@bubjVqJk^KT&B=Af`t{nQX-Z@i2=Ic8Iwl}O&Uf8bl}VtDTCiqwcpX5m zU$p#{T?mYZKBzYuhUIxVP;N7Mb)(U5fp_;i<_?;^{lgQ`2#YAeGqTxbiHg6~jdOQA zH4%%_G%}2#8#0RTEhA=i^?tF#wrXYd4`@Q}YLy^DMjLw3NMF`~Rh})eM=Guw7m=JI zW%?!g>>C@K45y55yMl7~J511K$u8#m|Mlc~pJe{Ea<*FM#|s#M!FOiUBKgoyIbJQ$ z&wD6>JrYo3cf85d+7v~LNfSbg&QAtg1StQM z$KC>h6OciA%AC`uPEh=a0*)sK{C zF@!fnF4%}g8D<1%43b|&aZ%D~H2p=QaEcWvq1|P)9!7;40)dG3d}oXEWQOIEFC@9i zKl_XuXo8Qzg>)Z)ievenrL4SMu|h?mS_PgigZRm%I1so(V}G$i*(u_9COiDkTI1gZ zlL1HF=eMGXLn1|fxeJ|@;45!PQWMT92eBjo!}Ixk4aZSd8=1Fj4P6}Ag)e1|3f=3K zLP@9)+fNT7GzK2My| zhyOPPU+uT*WF6w`>4G_F>8{0C03syM*VA+c@SqyLlfMk2=$q0}^({*7ol7s-786dI zn9Zj}a)5pnhxkW|R^rA;akybbsdSpbR2FLnuXWmF#b?Fh)^qDmg-?TfgMzf3Wb~g!@0kX+}5vXM;c+Cq&~laK+e2 z(MyON?Fcun`pi4QoBpJgLwa2m{EL>_3K2pviSXhuEYVH=&n4~ZWiwl43VmY+=`UM- zSBju{ugos>70@@gPFh_zHVbKJzqJduF9=PN{mZJ(<%{Kr8zP1Y+0JA%1`9P3{EzgK zDl9Zeu*)(O5PNnHB2k5z=M;A=yE!JR@RrAOBe-?mXf5(%gp~=PS222O;yVqHIPlzlI zyV2BtO8|q<@Au*Pb|TI{08rsXe`TEqBaq?)i_7K*|L&qgerW5#fv{-PW-^+q%y6Y) z1;*Kc*R!OqHgkkFvveH%rA82c_81nF#eHO?EGZ5_ARssK8&+C*-z4SZ^MihZm2_QY?aW zxM{J?V0NeDSs7OE{cxqx?m)B0Yd=cPZ#@grgFugAfyZ-^nSjxctBAVax7)b{4pW}F+ z=fUbp<8??izGwBU|cQ%;}k_)m<@ zY?2JSAjW^v9Q(j$t|Mc|K28b*RE-JwBprvFKBj9fG#Td8YG8u|d`8+dOAYl1 z;XJY$Mnrdyd905pJhs>FS0`)YU)-7ma6lYR$+)lIy)Quv9D%NBx3t?^ktS`|lP=Ha zR#L|mXpkD<0kj&zuI9o00>#PhvU3%hw)s!GmKxG0CgclOc z8=MZMsiV(*Ug_m1!RR*( z9l|T4m-*7wCPVNZ-{aiX`u(IruFWSNp8M-Tjc%(SY<8OzX{$QMXNg$tim89f`QEly z;pe8Mn#oov_L;rJsg#9};%2d_;?9|NG>BjGQ2YY_fNAt(;WTMIV;lK!GVCjH;=kxjVVrV5&W4t%kCaMM~;W6>Wa@n@Ow(FqZG}DNo2i`_7>+e%7 zBwZU~1I=EIw0(kLm^RyzTteB&UZu-PNl#WYOvBLx=5cw=ONC;h8j!fGb8o86KcLugUXEunV#3Xmv&H-QMy>JGD7LT1Gr)}TrSfwE}b(CDzi+T$4Me%j$* z%+_eLNX&r0HotV?%3!rdXK9*?Y+UBy^kz#@D_>x_VHXw_0A{{a@p*|Ha^*90d8%epDtAja#Nsn?D?6)Y%(Jdpgh1%9kS!f%ptI7(G`#( zn9BBD=JA79w^U6lGO56rJd7$ThmF)tv9kowYRv6&7@+_D!`I+IVe;2;XMOMviTdWRuF5Dy-#G}3!T`WF>Y#&zh!EAaU} z!8FT&!bGxe5Jexjl0pjWda6)3eDbP#1;(V9_6E{7&8aRi>XyOS2+aHGayW~%@{rhw zT+@JPE$p!ZQY8yf*7SLnGieJ{a928b+TCZoVe-nX9QWhZs6W+xQWI_EkO{VgMwR6| zCo^dW6+6W~$Fw61xhbnw;4tw#4Kp1beBPdLCb!oKQ9}59rpENpqL0I=L8nar0#>X` zjDitBEk8ZoA)2oVf~W-!y`@qXYzS~D=Hir*c0z^#XrYd{M; zOQ3Io35z=e8G>2nVn&t}YM?}DBh~qvtQlC8675gme}s=`F_rwSRDl95;koB8NyJNV zw)K@Xo`hzY+O>@m=7ZV!d5o=>Z4RF~4KYcYY1@C})Q&SqejwGXHJwM;5Iyu**!F&Y z>Oh*L0gwB-PZ$Xlq^A1_TcwiqRIc~qA86O(x^>&X|0=@|VqY>>tvxqX)&IWoKZAno zuJ}EuPvtM@8NyP3vb)b`&I7WL`d3~O4LAw5oT5zVm6Fr#T>(Q(BL&ajS|b z#xvswIA_`~=L`tPl`$LF})@58<|bd!BdQ&Jn(q}dnF!P$P| zoAPh-|MWZeeK7^zR+VNqcB5HtxTo{+z>}}BhkbpWhF1DF!pyrV#gOg-4NYT#pf{fh zX051dd!_HfO+Q32>t<>a-gtA?Awu|!(DBMya1~Nm^{0+g%)muLzz!m^oO|#rE$WM^ z{_yFvAtsc;3hok-O}Ue^VCDqE@n4(7#+)<=@&;1`9dj(3gDItAe>!hNkf!F4QtI(v zbA2(#fC=On|R zJ&(N0`i{-r2KGS=@2>D9+4{~$?PqBGw$Ghr_Ri(YoAb(^_G{mr4|sMnvS}RIhUudE zon&bB{GbOya(7men(~e)X(v;vIS#sH*aWM0(>Ph_@rw~vejJ3v`}@n@KPg5bAM_TN>Q;(xeWZbd4o-OM^+8ATmjpw!{^VcmfI=ApKIH zRgDdW{BH}`A!#BtToN@s#7Y)0oZ&z4a=fz2@a@T2N$vV%aq;hN5C+)219cQKq2BLo z{1VciPL7bOdPe!(Y0JV=)$i#?9R~bqN^Q!l(Sq);3+mS9%pnu*w1xn-l zChf(W2Nre_3PesPEqnbkH--{`1X&~DwKe<@C8nNu-_jXn1glzpB9$c8l(dsM735^8 z6tC&oPmdyt)M@!ATB=0UqK?vSw=#PNt-_26A4ZzR+QcI8{J6V5x42AYem6U~q$P|( z5q8rJ1M2>~;~G)Po3ghG27*R}C(Sb8s?(7Yo+`pLp=7Bd=ibD883PTS)j^XC6X>fP zr4*G)e)~NBsM+Y>6S;2Q`8%S5kkzuRtZa^WGw6&1vvOtb3P+yd)iaI_JsgB13p^P+ zC`1Z;j)~T#dT`IPr?22;!BekBb{gmXc?qWG%3SiN{@=22`+K< zl%e=gXN6=-VZo)ju%V>|H(TGqKNx43&y?ozZEN`x^@Zjv)4E!AN1QY1Vf}Wer8%vk zVNwScPIziNV!CJ^drA#XT(X?7aPsQ@bfJu~GDRq7NFg%`JckrUYpQG!R1po!-fBg( zd;_%{ZrR6~_Pd}_;x{1qSTMVq9z$Rz1>GgrN=*_4mN}iR{gYf&jh7U3h%z>o!7-Eh-17RRhQq?|Q_w^uT4!;gBK1RmE19gM7o;1q+(7CY?P zg=R4WxAbig!<@z-5P~C6Nu9N(ZK4@EY2KAIHn|0v2mv3|My*;k&dKB(G{Ass+`?a3 z!#_TDx|3%{Iijr^KFVlxY0u5;)I*eH&BQlnD%(_{!oiNsI?kGFl0eXfbckU}Al?Q? zjW#I}LnZM(Kh%;{(sqPy(yI>t#=Osg-_e9C4JB70vl;*IU^JZ^=ArBMk4A-xP-ufo zzH+Z37Qv|NU#K#+Cm&0liLYIMubOTd3t9L4=V`e~L0U7<5@zwR%h%y9T*y53! z^JpWkKyzg^2pi95D-yYTVEdnOI-=f)Df_Hkds|wz@V;%NmY_uLd6WJ84Whx3x7>qV z$B)*d+u0KDzY=ch#D^xC6(_jhOpBZ=9Ms%+S#BI3$XET-RJt>w62;cq$iY7nqQVhj zj`IwMHPa%iRkF$;vC=ii@VRN1rAWwYSs@ade#(9?5q@wJiYW=a;ld%95qC<7V)hDe z9*bQ#=!3qXWF0ct_pG&!$JO}w^ZgI1LF}O(?1bQw*})oBGn>Of6-$~~Cb1AQgqYd5 zbLbsS6p7mUB?=oM4raAyv0AeALOnzH)r)XAuV@y5Pc+^r7Se<+rPAiblh+>o$T@du z*Jkx#Lk2pTYSeAc?M4W$w@V89fec}Ns`cvl>W7k%w67ie=j!USwqEo*RvX&&+h*&O z-EAzatR4=lUqX#n7LinOVV|+{x@}*K?!1!}-R@6mN{W_OsQXUHX@g() zj7;ld6^R(dX5CMHg zD)Qne+Ssw4;#LJltc{mX_YLj^qf=D}a z84IS1M-C&tFJ1N`%mQ_^#^~WwDII607F=ja*tEU3Np!*W*o94PQB=!FvOBo^$=PP5z+#si zS`e5n^x~#GOk%=YCOI{#NFt3zf&=TGhj0=eeQI~aYgd?!|KrJ3V#@m~hUo6l$npa$ z5FASKJE};05sBjaTc3Ef*02FXz!^4#IvSQWQP^Il#D9d);4ch$$A94|`)IV#tShQC9<#cZq4}&NmtorLc{7icOl(`V`V(dEh*5nwuMEU$yn-N| zVNl%;J5R&Pg$niW!f$r@C!19itYO+)8uNg}l1hfZffQQ^Ff0oMMHl1!5ztu)l}8Zp z)~kgnHt_z(NU&4Zy3Vi_6T%)@&SP;%Q}&_6FrO@M$RAgexGz zxT7NP6pR)9gyXIUIx{v$R;5P7$W!Z@%}o;lNE07RY16Tg;7!`J#+WFg89BV(zvc!A zA+kSh5gUrK61YFTNUL!_o^VYB!hb@8g^-+{IjHY!`mhlSSvjpo>_rJZJC>pe-~{0W zw&0M*-3NtP2sXPq&>I7vCuDrgO_wQAOW?tgB(huZZvy& z%tLtxy(L3NNh+*}p;WdJRuG#hW&5`LJsI;N_ddaV=|yh_hp_6}+VvljW0(LS#S zS*Qr{K_!8J@V{VCsbONP2d*5NL4Lmr>!N=RrVHd%8o<>Y_*~G!`l~|4tUnEuK4Ws! zhof`O?b>S6RMG{g&kv`WpPVX4yFs-phB83NIXQ=aZ+){JX*2zv!ZC4{HE)L#dX&JH zZyh_?K$A?zEq(_iXbK2Ni5p5tNV*fiLP|P9aIR_Y(VsYNrhCWHU;++s!S&>EpG@!k zAI|hgU$q5l6s$=#X!>1E z2Ji0H(tt{JN?JG*doU%KohtD6rO!t%**b&5&J8uvfu;HHD`k6&2o?qi)sLNU63|gP zIyncSh|$!ei6)}GDB5H>yHyV%(G%sD3l#FEfG>1s(OB<_utDR>NEng6H zwt+V`HohI$e%gN81Jvl}zkt8n9~4S~CPXSp)hM>|;Dq0BcKDkZ(cvt;HwJ0PB^d>w zz-zME3ePPO<=Lb@LmFN?$5Zxg+o#3St`^A4V!ozqYIvgh-nDF8XJ7f0SH!>iHU?Jx zQz;3uzQvQB0p) zqBBI1eSs8lpjbJ}$L0t=F%zx5)1fS#vL&r(jsF|;GTP!YEdi%S(~+T_Vsllr@QW9)H$GYSfluH(aqPNQMawbo)(eo?{(kIU6 zg4(qF{Hkpqde*VpVG1{`Uk|2b{kFf-6PAjR6aQY@6E>C2Ryb#|`v49#v@`WKy}v5z z=a8=NhBd9f`%CuTN+E&gUft%UBu~GfLI%TuDQsLx39nn7AVNHoeM=?MP>Y+o5#b74)W~ zjhaV)*oR~?Iq5dT7Mui(kdvG227A526&gqQ2QEBL1S@a1gdV;t@BNl zBE-n|Ow$r|wOMmTjQ8SiGR}CtHxn&RXJkr_|$^c*Q zdS_<2$NPT2@D)Q*kTRTEkT>psducd|jD+d>{D%XGi9K&fp8-gK-8o_Ch=;-M|4fo$ zC1ZU2)DvE<-7@wBIQ?kWD>Z``J0EO7({8KL>qdL|0XWeBG7QqUFV7Pg-D)cgWFrPU z-3*Unux_h>Awo56Z%#b7C&d~aE->47m+t%8z;L7;Pk>8E0ZxcfW$(w`0a|SU^UB+7 zgaWd2o*k4`lmfxy2w}cb1j7ceQzPXSAcmW^JfJ(@nO>KW=j24atc-3)Tgfb;ulqBy zvH-dvtdH`pd~b4Yl6!z7&v zxqbh^19E7qT`wMR@6o7rZFkt0WbnU5i(}sgtiIh{!LNxX8g&Msh`1a9Uw_oH?)tZG z?O`>8Kbg-@0EL7E&I}j? zFv9?&sH|ct1~;4-jAS;6qYOH+Xy=UN)+q4&P`3|vuOdaLd`l1*$OCO5BTKU|MF$@n z$uq<3>~;xP7spn*7n2P6^|lS6OOldE&NexnC$BEt5E4V%|3sq`LBA2zx~R?g{L3`I zzNM~}h;j!eU9>+?E&Yx;`JMVZzymm@a6zioq%|~RFb^;ofIuzUKtjjSpn`S{d*>D% zz@Z|Iy4G7iT@p!^Z1I-ol0=ce9Um&8b?aJyhzwSPo#A<b2fV)Q22cSdsUb+a0g_aXtUXk{|0>kt+SoOV1g@x^A7RW+Tu*$jzq)9;4}!vg;Hm1gJv^_-6(%`hX(v!1rs^)oQ(O z=a}hD#(g`%J2W?4JA`3j00G|{gIZ0O0N-&}yR+k39A232afk3T$jD9SB|}ZWgiq#V ztUr7Fd5Y<3LOpKAgF9O@cQcxiEk5YkXzGM15J9G(s-z-CJ#MdI)I1=-9IoF@eSPO! zzhE1v3t)*v3Hj!cC!M#YMPqm#i-|U{85j1}h47zrB2f{21PfFg{6Fn#^f-L}IJ?$t z>w3n&Ay}4dR8-Q6bm=#cj>*)iQ7*sNIEbT+`W^Ctv`(tj55$14!7a7#|7`#h)3$at zB5!USU)~OtBuCgEb8=MO0QP0MR{P6v4?h~i1U+}an>zQJT0Tp9xOCu)yod zuX%S8kWK>9BoLbQDvgjug;{eW*0fu>cFqBUJeY%AGRFY=o&i?Vq|K^wYa}xH=iG%G z(0fgdCUrFVeof~AMv!H*+YJF(<9@phT_+qr?K%}R*wEP&Qn_tQcRVN{3RZ2V%x5m~eIHN{ z%cpa~#+uKoq1?f3l77XsmUz|nzpo7Z-knCSn{AXuOr-Js{yj#SAPY% z4%=ZSEO|tP`OKkUQ#Ori5Qqp=>BL8-xb#<*c!cU~3|~fA8^!K$8d(TpuL~be74CjT z=}N9$#hk%rV@w*s07eWTaRN~UzqkD+4Mdet(|PpZ^vC==)=$4effKRyixI+_e4o#ZVn4j{_+{} zz25t=N_qfx1K#^#-AkUBohg3R`{Bj-^12IUm(u=8wn0AvOy((x$OFpSZys0npN|gC zb48=;LEk1b_V}sMVSlAfw7Z~X-k55V%eE_GQV6@_wRigx*J{KFr+8tjgMgqGNQwxm z7`jvb_J1#w90TI0Hv`f1Mt4V3s|}vakLPQ_ZpVhkp6?$xCN|^QpL@0&*Q@(L7ByjK z6xc{_c7>4)=LSTDT@E`h*`~&^P*H*CHyhBSe9__Md0tX}kSptPrLP2v^npJjJs`Z( zi0K1dtyh4Zm|zIl8Y9Up5yyb~_ogox$%yX#W$~T`m*Z34du5$u)KOQS*UQUHUuPXC z`kP=zBEYE=&g~oCP*Xr8A;86Ko>#sFeM-McLR*L&{cg=c-rjP z>Wndlh`@+|K?YOr|9NgsJ2l=_($(aSk(?6!_JG}7 zoiHNxtA1ZS(>^IbhNiLX7v1;Vg5^uSLh<*#dp}XFXxQPladiH-etuILh_nPpu`rThN#mGjV36FkJre%z75|HgP>$FA6#Mhr z-OP=9z7H`MxS%p+58UrV86OCElO^=MBRZzdpH-kTvb<4Nf1?Gl!VCfX&KB9UQS7A$ zn%e*6maOM(>&n5;Eewh88HE4e-|*WW@$-x7>;Dd^eQplZBbulB6lxCpH!dL09R&96L&Zuxz8_TS!c>4%J74Ezaz7yJ%tShKm_JCx?}euV$|^JjDT z74GF`Pb~LUcev<|JmaWk$dlnb99~JSgm0_Z9U7MLkEgqFuDfaD&Na3rL@R$u?*V*@ z64-U0SsVS-rfSZ4av>gJ9FZrZn! z97c^QA&USkYH~wGUpYilC2t}qV$Ml)_34OO^d$5JwhA;cTgT<;AGr>6x^Ek;^dB{6 z9|!e|!K{PrdT^>GXK6auYqfr%m?V53H{w>-c*aA$K98F3|HKKJms4#xmI;Keo1g4< z+fB{R4t!@*6m1hquf=kqY7x0Dog}}1)1ZeDgpOJcrcFu8-w6;}TF)sWpH{W-lzZ@g z^@~KF5j|EA9wsdJ6~G{QRP*NG;OOiB_!u$?$hq02E@#ICl{kWXeSLLR=J$(Hul?Vh zrqA)>@n}=bG2ks5TZ?DsAHHu>PrdQ>y1g}qF+Dn}Fj(aCBC{BKKQzTaAcXgRyD6uz z+si9>XUuj+Ba2`8vMQB;M-dsXMsdN>S7$8!E^y{+@ii34q;XK2t2h(G>x8K&1sP;8 z!klJ^_`~aY76WmPpb$erew@d7-ZgCOyt}ICUn?kB5jNpw<=UbN?U%oAH75AM=Y6(O zpU?@?QSd=OI-s3lJU2nHQvY_pAg{`6(Yj?BbvL2^CN$c`OvQU|X6~}Oskjcxg(>yx zkcLpxF?xj9B&2A%62xo4Q}MpQ`J@zqovcZPELTn=hx6DfjOet%8IjK0BfTDvYLzxB z&8R6$(-PO!*@g`#CpXv9)q`x$o5l;lG$W+-4*%`rgU_z}l@2%H)91D%3u&@zS_qnh zk8i~Na(g(JyVddHZpb9>9T;RpfYfqBB9|1fB0>YCRtlSnXvU4j%#E85{_pA7ew zO#h%%nKVckvG!t+|IETsa}q>O6sM@Y{{CSPiJK(71ek+CbKbh z97$B(amB2Nh3XrPusg~UuI42M%|(e0z+P&~l315p(pYZu+4%1~FeMhB zXa!9-0 zbBpluX<#3lhAvLAk(dN$Sx2<<0``Q_+|s>l)W{;^$*UgK?zhCm0E7P~$XIdz;axjr z?8+U~)mdtk$z(7xV7YM@9xTrQtlyGP)0Ouy%1RD2>JQ|E7Og|6pD{S43Q~O5e?3Ko zc6+WIU%Rz2suD5@lA~IgM_?ug8Sl`KOPo>H>niH^8>n)ajwvCN397piTIGID#%_LF zEv7xvoDVFmO)}G(Jm|z~PCWucd&#Hw@v~(=XE=A$i0(H!j8jKeuCYfh?vrSB0$D36 z=|(y7GNC-ic9QN$P!du+(q4L!MpJ;;Eqx!$>LVOybH?k6U4)^LNy$1=H>FV%jT~0T z|2K>rjLBrK+)g(R>`##9eW;hN)#KD?=%Gm$H58cXj0t`jyXyseV5$@>1jLv-rmNqe~ zOkn4TGr$zt!r)qZ++7WOt%wMPRU2i5!G$;)MH;8Labt=|ZTgvOi8Gt; zDvX6nzYNov`?9aiI*l4?8U-W1M?W)qz$~(}^ip;SSh%K$B}CHOy1KRwMRSm~jJY;H z+3@x2L6;;#=wgSiTNnb9ku_T`S5vPtIeC_SujYPSh-WWf;pF)r+AU)8Q7dPwTI$C8 zIjMLA%w`b3G1K7Zi*F|Gd6KtHi&Lc;)~h3Exe)f-^pBGU<5+6FPLr9)scH$DV}^BC zwNggH0L#YplZTmI9De3U-cI#AxrNkDSQca&N1UIZu8V`EMR-{yl%xmv#1{c%v(^-2BeVCg3t_i4tewpZEHhT!Wa+x; zqHRBCmcN^NzE9+)iS80$$YQa;ZW!?F*$JLLdy0n-AL7}`$zN<{{~!GMpSl?GN14he+1t?&3yQ%8&o1NX#2aJ5w~fQiO!gEk zF$>96yprD7yxQHx@zBwe|G#>twfv8V?qadP@wIEX`R==Fiv|33i$Ew1Emd3g-*YL5 z-Xo)^U}7`5a0nzAsSPy{4egQ}B#$DXD5^G0rJ{N7qqJsICCvkpcEzs4oAvt2j0HKv zOD#y1V^UJLAgb+FrC^USWt5aKn!16eUmRDAC}PXi_q}=)*nWJWY*iY84DsZHA`*QF z*uL2ym5S#e2<**f)9O4Hf?I0+NZo~GU6GxLobhHDP=;ECPdQhtJA2K?M@P7O_b%?= zyN5fsZ)<*jczB3g@4SO3ApDfGc#T2XHd%DkN2AIbs1Q3Tn2CYnb_?eM;GrrcR4zfO zUZvRr`>CK|R7+T}Vv$D08BGf-89_)I-m7$zAc|O2BTGv?y$pkm6<6zz?POz7YIht) zDYzAdm^vdWfPy9sWC}aPm3NB;kaK-T14-qEuia@=&+_c)RTu zJJG(Q*SSMmS4CW0y&UYFAVRm|FX)_urzxW;L~eIGwI6Gax^5y#KA0Z=N=z-M{(*S{ z^(HPMm!g`DUDx6D>#FWFj3d5v{TOj?Z%-%xotrmtP_k^eou`PwGwNbBsEf~6+W$WGS|qd`gj%Zv0C0(iPztN-Q z#se63I{;p7pj$)%0mZaJ;2kJcL4`wEE^i07&&?AA|ifShx)7B(FLy`9EU z4^0t8ynC+}#Kj;r zt1wEfaBnvo#4f7%CX3E2F7thIO~n|IgnhQ?dodTO9i)m|k;=O~KS)>2fD3M79LfVl z6_7=Yl|-o3YKirF4d)z=uN}kv(?9-0L9r;YfTN>pST2|1m;s%T7y?4q>8Uh|gzh*D z@N}?r4yhyz+v=8LPx1;j86@$eE$^yXY+1ZsDOI?3SWx^v#QPmMj+n;SX zt+V9d;ex|b(3u%UO+xv*Qci+#j~cOf6LpasmY+Ua>1|tf%*=})m>J?ATHlv+$d+XTNoYktg+Ht%Y73F7i)U^)4 z%_h&!XvWG%lLPI{d$5c@PPm#@ly*5BA0JD^0m0PuwOOimkel z45CHPjcjoPgq;HAk^-KaD6lB~l09^u?w7c++SAw?3^qDt6O7m_Gfi_^Se(#va^$z7+#eNh|_)0F+_S3(h&GR$SS53FaJ> zTMiTj_E^~WypnHe(Qz=)Q>Dt$o<`_%wpc(sJgnb2!wMr#Xqji7RE7D#QItIDgL&Pg z{i2`vp^cK?^Y$Lo*ic3#V;Dw_*w*Wv(lovE6Zt8NV#_J3^m8`uELP>#hD-W&Q=MmF ztq3)ejwx#Y>l|D#Z5&Zgm559a!=}{ZRQ$sSkFDW{H)!wBZgp4ZEtOiuO=5kOQ$=1W z1axL0?M=&P(REt;h#|;fTk-dl>tY-mWU*UxT7w}&L=v6WTC{f?0$#p)b!EoFjWf|| zGqT&GQRN}Kj;gmoeqNb|CWYd<&c?2qztbBEu*I#<=Og7E+~^D|v$Yh1M7Q3Ufy@m> zO0I6ml%>WDLhgS0>8FKxQ((+*_}eT~RHJ(*Cr^cs4g%S9=Jc|DT$Uxq2~KIORz0$T z<`y~0kV)vRZrc^!^cnR~FgGzbk#$D3HqX4l%SMjfT4 zZFrcB;|n3cv|h6E(+#=z=O2qL2RI?A5L3^dIN!lICKa8S%V>LZY1x{IGf`!=fbx^~ zHD@>SMo&f#TH)1x8fnZm1}46AOeIV=BAb1fQo?@$qLIlcJGQQ~00000NkvXXu0mjf Dtgwot literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/b3/b3_instrument.cpp b/plugins/stk/voices/b3/b3_instrument.cpp new file mode 100644 index 000000000..d1e621486 --- /dev/null +++ b/plugins/stk/voices/b3/b3_instrument.cpp @@ -0,0 +1,103 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "b3_instrument.h" +#include "b3_instrument_view.h" +#include "b3_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor b3_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "B3", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Organ noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +b3Instrument::b3Instrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &b3_plugin_descriptor ) +{ + model()->operator4()->setTrack( _channel_track ); + model()->operator3()->setTrack( _channel_track ); + model()->lfoSpeed()->setTrack( _channel_track ); + model()->lfoDepth()->setTrack( _channel_track ); + model()->adsrTarget()->setTrack( _channel_track ); +} + + + + +b3Instrument::~b3Instrument() +{ +} + + + + +QString b3Instrument::nodeName( void ) const +{ + return( b3_plugin_descriptor.name ); +} + + + + +pluginView * b3Instrument::instantiateView( QWidget * _parent ) +{ + return( new b3InstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new b3Instrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/b3/b3_instrument.h b/plugins/stk/voices/b3/b3_instrument.h new file mode 100644 index 000000000..405f699e4 --- /dev/null +++ b/plugins/stk/voices/b3/b3_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _B3_INSTRUMENT_H +#define _B3_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "b3_processor.h" +#include "b3_model.h" + + +class b3Instrument : public stkInstrument +{ +public: + b3Instrument( instrumentTrack * _channel_track ); + virtual ~b3Instrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/b3/b3_instrument_view.cpp b/plugins/stk/voices/b3/b3_instrument_view.cpp new file mode 100644 index 000000000..459bafab4 --- /dev/null +++ b/plugins/stk/voices/b3/b3_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "b3_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +b3InstrumentView::b3InstrumentView( b3Instrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_operator4 = new knob( knobSmall_17, m_topView, tr( "Operator 4" ) ); + m_operator4->setLabel( tr( "Operator 4" ) ); + m_operator4->setHintText( tr( "Operator 4:" ) + " ", "" ); + + m_operator3 = new knob( knobSmall_17, m_topView, tr( "Operator 3" ) ); + m_operator3->setLabel( tr( "Operator 3" ) ); + m_operator3->setHintText( tr( "Operator 3:" ) + " ", "" ); + + m_lfoSpeed = new knob( knobSmall_17, m_topView, tr( "LFO Speed" ) ); + m_lfoSpeed->setLabel( tr( "LFO Speed" ) ); + m_lfoSpeed->setHintText( tr( "LFO Speed:" ) + " ", "" ); + + m_lfoDepth = new knob( knobSmall_17, m_topView, tr( "LFO Depth" ) ); + m_lfoDepth->setLabel( tr( "LFO Depth" ) ); + m_lfoDepth->setHintText( tr( "LFO Depth:" ) + " ", "" ); + + m_adsrTarget = new knob( knobSmall_17, m_topView, tr( "ADSR Target" ) ); + m_adsrTarget->setLabel( tr( "ADSR Target" ) ); + m_adsrTarget->setHintText( tr( "ADSR Target:" ) + " ", "" ); + + h1->addWidget( m_operator4 ); + h1->addWidget( m_operator3 ); + + h2->addWidget( m_lfoSpeed ); + h2->addWidget( m_lfoDepth ); + + h3->addWidget( m_adsrTarget ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +b3InstrumentView::~b3InstrumentView() +{ +} + + + + +void b3InstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + b3Instrument * inst = castModel(); + m_operator4->setModel( inst->model()->operator4() ); + m_operator3->setModel( inst->model()->operator3() ); + m_lfoSpeed->setModel( inst->model()->lfoSpeed() ); + m_lfoDepth->setModel( inst->model()->lfoDepth() ); + m_adsrTarget->setModel( inst->model()->adsrTarget() ); +} + + + diff --git a/plugins/stk/voices/b3/b3_instrument_view.h b/plugins/stk/voices/b3/b3_instrument_view.h new file mode 100644 index 000000000..4757163bc --- /dev/null +++ b/plugins/stk/voices/b3/b3_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _B3_INSTRUMENT_VIEW_H +#define _B3_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "b3_instrument.h" + + +class b3InstrumentView: public stkInstrumentView +{ +public: + b3InstrumentView( b3Instrument * _instrument, QWidget * _parent ); + virtual ~b3InstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_operator4; + knob * m_operator3; + knob * m_lfoSpeed; + knob * m_lfoDepth; + knob * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/b3/b3_model.cpp b/plugins/stk/voices/b3/b3_model.cpp new file mode 100644 index 000000000..a1738546f --- /dev/null +++ b/plugins/stk/voices/b3/b3_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "b3_model.h" + + +b3Model::b3Model( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _operator4, + StkFloat _operator3, + StkFloat _lfo_speed, + StkFloat _lfo_depth, + StkFloat _adsr_target ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_operator4( new floatModel( _operator4, 0.0f, 128.0f, 0.1f, this ) ), + m_operator3( new floatModel( _operator3, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoSpeed( new floatModel( _lfo_speed, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoDepth( new floatModel( _lfo_depth, 0.0f, 128.0f, 0.1f, this ) ), + m_adsrTarget( new floatModel( _adsr_target, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +b3Model::~b3Model() +{ + delete m_operator4; + delete m_operator3; + delete m_lfoSpeed; + delete m_lfoDepth; + delete m_adsrTarget; +} + + + + +void FASTCALL b3Model::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_operator4->saveSettings( _doc, _parent, "operator4" ); + m_operator3->saveSettings( _doc, _parent, "operator3" ); + m_lfoSpeed->saveSettings( _doc, _parent, "lfospeed" ); + m_lfoDepth->saveSettings( _doc, _parent, "lfodepth" ); + m_adsrTarget->saveSettings( _doc, _parent, "adsrtarget" ); +} + + + + +void FASTCALL b3Model::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_operator4->loadSettings( _this, "operator4" ); + m_operator3->loadSettings( _this, "operator3" ); + m_lfoSpeed->loadSettings( _this, "lfospeed" ); + m_lfoDepth->loadSettings( _this, "lfodepth" ); + m_adsrTarget->loadSettings( _this, "adsrtarget" ); +} + diff --git a/plugins/stk/voices/b3/b3_model.h b/plugins/stk/voices/b3/b3_model.h new file mode 100644 index 000000000..d427c1fa8 --- /dev/null +++ b/plugins/stk/voices/b3/b3_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _B3_MODEL_H +#define _B3_MODEL_H + +#include "stk_model.h" + + +class b3Model: public stkModel +{ +public: + b3Model( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _operator4 = 64.0f, + StkFloat _operator3 = 64.0f, + StkFloat _lfo_speed = 64.0f, + StkFloat _lfo_depth = 64.0f, + StkFloat _adsr_target = 64.0f ); + ~b3Model(); + + inline floatModel * operator4( void ) const + { + return( m_operator4 ); + } + + inline floatModel * operator3( void ) const + { + return( m_operator3 ); + } + + inline floatModel * lfoSpeed( void ) + { + return( m_lfoSpeed ); + } + + inline floatModel * lfoDepth( void ) const + { + return( m_lfoDepth ); + } + + inline floatModel * adsrTarget( void ) const + { + return( m_adsrTarget ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_operator4; + floatModel * m_operator3; + floatModel * m_lfoSpeed; + floatModel * m_lfoDepth; + floatModel * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/b3/b3_processor.cpp b/plugins/stk/voices/b3/b3_processor.cpp new file mode 100644 index 000000000..e05ff7eb7 --- /dev/null +++ b/plugins/stk/voices/b3/b3_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "b3_processor.h" +#include "config_mgr.h" + + +b3Processor::b3Processor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +b3Processor::~b3Processor() +{ +} + + + + +void b3Processor::setControls( b3Model * _model ) +{ + voice()->controlChange( 2, _model->operator4()->value() ); + voice()->controlChange( 4, _model->operator3()->value() ); + voice()->controlChange( 11, _model->lfoSpeed()->value() ); + voice()->controlChange( 1, _model->lfoDepth()->value() ); + voice()->controlChange( 128, _model->adsrTarget()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/b3/b3_processor.h b/plugins/stk/voices/b3/b3_processor.h new file mode 100644 index 000000000..df225bc7f --- /dev/null +++ b/plugins/stk/voices/b3/b3_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _B3_PROCESSOR_H +#define _B3_PROCESSOR_H + +#include "BeeThree.h" + +#include "stk_processor.h" + +#include "b3_model.h" + +class b3Processor: public stkProcessor +{ +public: + b3Processor( sample_rate_t _sample_rate ); + ~b3Processor( void ); + + void setControls( b3Model * _model ); +}; + +#endif diff --git a/plugins/stk/voices/b3/logo.png b/plugins/stk/voices/b3/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libbandedwg.la + +libbandedwg_la_SOURCES = bandedwg_model.cpp \ + bandedwg_model.h \ + bandedwg_processor.cpp \ + bandedwg_processor.h \ + bandedwg_instrument.cpp \ + bandedwg_instrument.h \ + bandedwg_instrument_view.cpp \ + bandedwg_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libbandedwg_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libbandedwg_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/bandedwg/artwork.png b/plugins/stk/voices/bandedwg/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..7178e5a769147f32cb2b79947b87c189590262f7 GIT binary patch literal 73241 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 z z?wL28_53zUX3FZEZAwpA+SdpV7Xr%b6lK!1F#nSzxoN1zD^E7w%m@xe8VC`|qz;!x8 zJCFwe@UF6X-Wd=80BjvPGdW<>Knh7#`=KH%6%m0IWzeH~F4(+Edk?Byz>>uqx^xkC zJ+rV#^ZROr?nbENqGk2!p!*5_sVl~!stfxc7S>T=t9s)GL(}zNm2yLD2lrEU0k*6! z9URZwxy^39%SKrJ1ee8*@#*GbV2Isp9VE1tJ|jSc@zkA9rkL(Ywtre+xttIzY8Pb`qDCx8#Spz)7| z+Oi#tQ*(b-Us;uT4B@!Y}uO)kg-5~n`gDRbS}LoJGr4?uQLPJ4@CByY16IU z<~4r+*39Ltmi46Bnq>P3|JupkA;`u6Ejn+G-u4UjQk;x7wEzF>DF-- zL@!dP*h|~IrZ4o_saU`%O_gq7}j4Bz<*ueZ93`Ym%?D)Y!!Pal%Z!;uL6FLb^(W9MB_|v z)9D+5?4OUH(flv{{E5y7pV#C*{{KLiL5gt1WfE`O!1W-d;wwL&4--xAWuvQikY=x& zgr!yo@`=?}CDkBK-to@Yhup=}?KX?*q)$n94jf z+MFRbe+r;}x2JN2L41KP3SOZyxKI|F;C*SBtgojyP0E@5>T=`F{nX~7B-*u1#{N35 zLA@;g_(QHffW?;3d!vzqUdaczbEJsL1Hu!hvx*Wd8t0ug&))5pI0NI+Y@>`6asVN-DkR1)p2X73IKQw_S z3b6Kc`^r{F5Yhhwxg&cY2~Rv?j&Yc8t%@H4J@eH4aYMhq%zyo~tIF9uQ>2?2z19R` zd$z>b-jw>y^I?M9?vuUiyB?>Kk6ad45c4DtYQVHSk?I4>)5&62@aH?bw{Wl=kE;;B zu@;zJ%8}N!$etp{S1paX2cyrn-A20Uutr)~-eUF2V3KHBDTPS>vs;{D#vuuPVHc0Q z#2em;?_&9kFYkPMac4VJNmM+Nchr)w?x}+AL3Cs!6+C4}*kd-EU3l%?H|RjJQ@g=^ zU}BCZ)Al=5wZ)t13Iv2U)YsRu z8E!VDt^mpA>K1cw?MKBaAk3rCNZdy=CAc{HP%%kHX0`?gMJdxr>>{UK|FL1Wq#idS z%BxzyblM)ZE!XP?Z$M1lX=PAbOVw)7W@8nw2js_wIq->P5@x0YM44-PKBeW_BGG~% z5mr1Kf=;X2kqF+VLTao|Rg|gGJ$G?7d#XG4NI`r*AHfL(+Sii}%$=Q$!2}f1AOU@# z1^^7kOGA|l3wu70! zY`NlZ$o!9yT-9|#Wx3K4Cn6p;_obmWqfO_dP^S+tKE%%I)qZXXX0%#oYJTk?d){os z2Ku?ndDH7@Q~OOHP1Nt-q5@OW*Xg;;bhg@z%st7AS!rw`G~>12xVV#${etFwjOi1% zftrJ@0`c7%FM>f2rq?(Wy=>Rio`kL;$;jf6cMQ)O6!Z7;eo_>+YiO`Wznh+gY2!$I zN&w^EXa{|pFHP!0oQ(_O2@w6$BTS>azbh;&rCI3h`&QKF(VEv2e{hB`gbuK;C%*ve zXxbjv`2zyLyRK@xk@P%><_@&IElanKr`O}al{MXVyKOQtF0db?$9;Tx&W_+2UZ~W# z?(%sd2U?P@?M7VH`eMH3wW#&lPx>WEckpF6O9|Z?FM7zJjTPaB zD1RaZex1TEGlNZ;>N|*>5ch-y2N&mM$L&=iy%+2+9WT}%1N{*6&Hzu0#AawoWU9|KkgA)p01}$5ufc>D;D{ z+j%uUJ{@uT?J`bRng|*k8pW)8mqa3#E0d(E-p-`=W<9Lt&BMkuU|VHYc=HA0;`L>b zk)1t63sXCk)nY;SzU(I!bLb`(0<8ZQ=K|X-%dZL1Kr&$*Mg%Ym#yufiO6gQKbH_~4 z=SR6&2}x9bTB{B-<(kv#gSyG}W8x}|_JxrPlO1P;=2g*nk`k42jE}9ST*jb49qDKu z*$fW9%Zudz;vdmDD&^Zd5p;E&)Zggv`8=^)ye}M{8dEw3f~Oj;hb8=XhhujAY`jqc zrg*#ad7smwHuv<`lgHPc-9dqf9<$bKncn2ZHE(@AXt@aqsc0c@yS49x5Wn2M#aTx7 z>M{f#x|Oh>7y+)`&NnW#Czq7gO?*xaS#X)8gtEhI%TCn$>DE&O9L9m_4~8OLrgAPa z0liyh)qW0UI+0%#)V1o(t>HLXzmqs{lTD~n8;ocr5yJ#>&UU!Df(*WtQ!6ahqSs6(*C><*CWf5ce3$pi&B-ITm@`>IWrsXQ8+kF|EYVrwnloq_u_F&Si~H^KYLVU70^@f@dfSOa!p0!1lWoU;xO zx@;86%fBW^AX#7n;t5YZktV;j?l+m`FQW(xyuK@sJL7XMf8?ZB8eV-d3my(GUfAJ7 z?uvc-*1S>)3-K$SL{(M253cUYz0G0;u-~)UY|vaVY3drix#dQLjR-~rl*MImyL3SF zAj9;J1wLfn+SghhbZk)LX*MoU@E}93QbO`2QkgJ4$&2q`u`>B=!PDk=5d?qFlZ4E@ zT%EqQZl-QtG-aVWH!598A%nfi6X@KCHT$;jR-%&qB6c`?8PYawrgxD|4VN-|F7c6i zC{fzL43!olT*A=H?yg`;5k$UzWUT>M^nM6Dm*EikbmL_9uX98*;zs3ARK(=LD4>nz z_MLRd7XO=~Ti1Zz<;o+bT&X|*#)Ey&6*L8vIv!W-)XM$>acx=_Gf~OpvTIJ>$B0yB z(blr-M*2vP02XM7`9~hg&b)911oJU)@CUt-tQGMj@osN%%QA<(y$xG)^o?Z|X@##Vc z#TlKtb9FLV=U#EB#J}gY~&cZW!h>94=ynFN2C$H z4y9hC!|7yW5u3F}F#{@P?A|D@`ivMIoP{X^p7x;|oow~wp7E~wSbZCYIj!CO=W&%8 zV5VT&AFiT>5)g@QQ%jC>ur3w3efKq7lgql4A4>o$96xmV=2Xb;TWip?cJRPs3fiE` zrbmjfk0Rd{^P3K(Yg)~t_db^a#)uzs4fT*m>;`;uI6sCjd{&NsJ=px7%##WZjfEEC zq2*ws)d21AR_0Q5GPIiWboQHps7}1Srd)|E52#fG@^H=+)Uv4|^)5tcfqrqqxW^6H zo?0*q?Y0+`!1jJ2I|d#;7%|zYe*Us=AL{CgSf}6evf7GYpg;zrh8?k(56Fl1%4e7H+OAs#;2D;^R0W2!AqoBaEJ|SGjGm+BF)1 zup4*oVNWqJB@&|x2Uw)GgB7z3e&*-)-PE9l{&`j`IcLZxcAHJ-7F39idG5~ zWgOAxv^z)5ZU^0pmEjQe%ci=^bw(vh?B8V^p5GBxbyI2Uk40idnhmi6Cvcx;+m|&v zZtEK{@*7cNvqsa-Tr??(H7ch~S!z73k(|Dg*9ueWZl-cb#1@ujQs{C0s039CMF|x%y=$J+xOJf{j$NWz{riqTD=(-6*E5=qpnYqjrRNv)Cg?7 zb+`ThMblLVwb8Y0+@0VQ?}NL$dvSLw?(R_BrD(AfrxbU0_u}qe+@aXFyffbnKf+9s zNp{bky)RANl!xFXGK)!VH#0w~Xg9Q*VPw2l?^2L+w+E7&nA#-Y8?aF3%QSV;KHYVM zkcm`iiWf|aq!ll91q!1P^K2ndvuuws@=#qX9hzhTyHu_+3Ya@DRvxRZWl(W7US(ZM z@8TAq>BUIJ&2oY+%q%=`%MK1zY&rVrnty|mzQ)R7kfB2Tea5a9o0j@)Os+@cJ&J8F zh9BNML@I4Fix|8 z99oFhoi_=Pxj4kOo{#ogI8`}B>QoveXWOd>_*d!#PO;Ved#QUXr0*xd*UDavH0j?9 zGv4je%y)!`?AZ;hBvjm?^Z-C)_EftsbF2f~nP7sk@)U;ECZTH&_Mk&5*X>xbDNo0( z@!S+TU2oG8OCf!XG0^BtSRH(DRdaq{OU~8}=w^QS40c-j;o|A605TBfVQ=uTURU7% zdAZ5{YMI@Y>^`(pz9R(xFr`p6F(Al0MH_E6cj6v{?UCXPD8*l^6Vvih=e;9Md#A>b zx3v80SMBYzyEbO*VuSLb1xXUVTQ+{LV3ixPYS85x=YS&_`PmXV za;@&sx*yG^B>3j5jogHUyu7=BKWBxSSeeZas_-Bx)2fmxGIidPO(Q3R)M#352xHwB zg$;txgX<#)rnbxpxJ*EK!9Sm}Q>)L!CJI6?p_o!h{1Y{wZP$}+u^cKJ0bBVGA0+}G zCA`h>`EmIBPeQ#{n1K2G;qZ!h zHl|yD5XU}Dk|bOwy4un(B}qb&oUN7X67K<0e6nRr@g-9{HVQm+f8iidNaj3^AMzQj zaOq#J+c1g?Y5f=_xJM6Ci7d|g%Udvw04ScG?Ke4IcM9CE5{ne@g8Pe({;R83ZQPp- z@ZO@59a04*(ot;&-jy$>6~^UXnq2-}=-RsZ2xjwmpaftT2LzC)fOMpSELDt1P$Rs> zl;|R&>UWp=U{-DBcP5~N)oAv4TCuPybQ?bXNTj=k>$c)493Fv^NL9r}qc!G7vlpP} zW03-&l<7%Y#gDA4z8bS3vK23C>1$$ppYuq%6xTM^H*FYLU2!$gHou9`K<$DFELfW< zwW2_bZajODaH!XsFmxD-AV{b-ZYISu?fHRbb4979SR09!gSY=@dSIsGSiYj1>D?kR ziQJORfLzd58|b*Cx6GnaFKhOm1uZ1`9HtkRAIgJaq7Vwq?0C*dY|q;YGj6(ktu)mx z0VE}idhz;r5Zk#k4B{$#EMP_}XN0Uj3UnPtro&+-k-*Nk6+-$50l>6?pm8PvhCx<` zjyuiv(<0^^8R5TotzU*GCMVyt7xHI8K^MCQ7XeKu>;@jkMN7_;yx6uXXd8MU?_f

GC4p`fbghduCPRA_u=}K-R#%_@ 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 RipJ*ttZDy@0>)Ob2y55UA-|0 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 + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "blow_bottle_instrument.h" +#include "blow_bottle_instrument_view.h" +#include "blow_bottle_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor blowbottle_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Blow Bottle", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Blown bottle noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +blowBottleInstrument::blowBottleInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &blowbottle_plugin_descriptor ) +{ + model()->noiseGain()->setTrack( _channel_track ); + model()->vibratoFrequency()->setTrack( _channel_track ); + model()->vibratoGain()->setTrack( _channel_track ); +} + + + + +blowBottleInstrument::~blowBottleInstrument() +{ +} + + + + +QString blowBottleInstrument::nodeName( void ) const +{ + return( blowbottle_plugin_descriptor.name ); +} + + + + +pluginView * blowBottleInstrument::instantiateView( QWidget * _parent ) +{ + return( new blowBottleInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new blowBottleInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/blow_bottle/blow_bottle_instrument.h b/plugins/stk/voices/blow_bottle/blow_bottle_instrument.h new file mode 100644 index 000000000..66f6cef02 --- /dev/null +++ b/plugins/stk/voices/blow_bottle/blow_bottle_instrument.h @@ -0,0 +1,47 @@ +/* + * blow_bottle_instrument.h - interface to lmms for blown bottle noises + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BLOW_BOTTLE_INSTRUMENT_H +#define _BLOW_BOTTLE_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "blow_bottle_processor.h" +#include "blow_bottle_model.h" + + +class blowBottleInstrument : public stkInstrument +{ +public: + blowBottleInstrument( instrumentTrack * _channel_track ); + virtual ~blowBottleInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.cpp b/plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.cpp new file mode 100644 index 000000000..61fe9a051 --- /dev/null +++ b/plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.cpp @@ -0,0 +1,89 @@ +/* + * blow_bottle_instrument_view.cpp - gui interface to blown bottle noises + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "blow_bottle_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +blowBottleInstrumentView::blowBottleInstrumentView( blowBottleInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + + m_noiseGain = new knob( knobSmall_17, m_topView, tr( "Noise" ) ); + m_noiseGain->setLabel( tr( "Noise Gain" ) ); + m_noiseGain->setHintText( tr( "Noise:" ) + " ", "" ); + + m_vibratoFrequency = new knob( knobSmall_17, m_topView, tr( "Vib Freq" ) ); + m_vibratoFrequency->setLabel( tr( "Vibrato Frequency" ) ); + m_vibratoFrequency->setHintText( tr( "Vib Freq:" ) + " ", "" ); + + m_vibratoGain = new knob( knobSmall_17, m_topView, tr( "Vib Gain" ) ); + m_vibratoGain->setLabel( tr( "Vibrato Gain" ) ); + m_vibratoGain->setHintText( tr( "Vib Gain:" ) + " ", "" ); + + vl->addWidget( m_noiseGain ); + vl->addWidget( m_vibratoFrequency ); + vl->addWidget( m_vibratoGain ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +blowBottleInstrumentView::~blowBottleInstrumentView() +{ +} + + + + +void blowBottleInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + blowBottleInstrument * inst = castModel(); + m_noiseGain->setModel( inst->model()->noiseGain() ); + m_vibratoFrequency->setModel( inst->model()->vibratoFrequency() ); + m_vibratoGain->setModel( inst->model()->vibratoGain() ); +} + + + diff --git a/plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.h b/plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.h new file mode 100644 index 000000000..38e9e8dc3 --- /dev/null +++ b/plugins/stk/voices/blow_bottle/blow_bottle_instrument_view.h @@ -0,0 +1,50 @@ +/* + * blow_bottle_instrument_view.h - gui interface to blown bottle noises + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BLOW_BOTTLE_INSTRUMENT_VIEW_H +#define _BLOW_BOTTLE_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "blow_bottle_instrument.h" + + +class blowBottleInstrumentView: public stkInstrumentView +{ +public: + blowBottleInstrumentView( blowBottleInstrument * _instrument, QWidget * _parent ); + virtual ~blowBottleInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_noiseGain; + knob * m_vibratoFrequency; + knob * m_vibratoGain; +}; + +#endif diff --git a/plugins/stk/voices/blow_bottle/blow_bottle_model.cpp b/plugins/stk/voices/blow_bottle/blow_bottle_model.cpp new file mode 100644 index 000000000..8e304907a --- /dev/null +++ b/plugins/stk/voices/blow_bottle/blow_bottle_model.cpp @@ -0,0 +1,79 @@ +/* + * blow_bottle_model.cpp - data storage for blown bottle noises + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "blow_bottle_model.h" + + +blowBottleModel::blowBottleModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _noise_gain, + StkFloat _vibrato_frequency, + StkFloat _vibrato_gain ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_noiseGain( new floatModel( _noise_gain, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoFrequency( new floatModel( _vibrato_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoGain( new floatModel( _vibrato_gain, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +blowBottleModel::~blowBottleModel() +{ + delete m_noiseGain; + delete m_vibratoFrequency; + delete m_vibratoGain; +} + + + + +void FASTCALL blowBottleModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_noiseGain->saveSettings( _doc, _parent, "noisegain" ); + m_vibratoFrequency->saveSettings( _doc, _parent, "vibratofrequency" ); + m_vibratoGain->saveSettings( _doc, _parent, "vibratogain" ); +} + + + + +void FASTCALL blowBottleModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_noiseGain->loadSettings( _this, "noisegain" ); + m_vibratoFrequency->loadSettings( _this, "vibratofrequency" ); + m_vibratoGain->loadSettings( _this, "vibratogain" ); +} + diff --git a/plugins/stk/voices/blow_bottle/blow_bottle_model.h b/plugins/stk/voices/blow_bottle/blow_bottle_model.h new file mode 100644 index 000000000..52d9dee08 --- /dev/null +++ b/plugins/stk/voices/blow_bottle/blow_bottle_model.h @@ -0,0 +1,63 @@ +/* + * blow_bottle_model.h - data storage for blown bottle noises + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BLOW_BOTTLE_MODEL_H +#define _BLOW_BOTTLE_MODEL_H + +#include "stk_model.h" + + +class blowBottleModel: public stkModel +{ +public: + blowBottleModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _noise_gain = 64.0f, + StkFloat _vibrato_frequency = 64.0f, + StkFloat _vibrato_gain = 64.0f ); + ~blowBottleModel(); + + inline floatModel * noiseGain( void ) { return( m_noiseGain ); } + inline floatModel * vibratoFrequency( void ) { return( m_vibratoFrequency ); } + inline floatModel * vibratoGain( void ) { return( m_vibratoGain ); } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_noiseGain; + floatModel * m_vibratoFrequency; + floatModel * m_vibratoGain; + floatModel * m_volume; +}; + +#endif diff --git a/plugins/stk/voices/blow_bottle/blow_bottle_processor.cpp b/plugins/stk/voices/blow_bottle/blow_bottle_processor.cpp new file mode 100644 index 000000000..f65239356 --- /dev/null +++ b/plugins/stk/voices/blow_bottle/blow_bottle_processor.cpp @@ -0,0 +1,53 @@ +/* + * blow_bottle_processor.cpp - sound generator for blown bottle noises + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "BlowBotl.h" + +#include "blow_bottle_processor.h" +#include "config_mgr.h" + + +blowBottleProcessor::blowBottleProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +blowBottleProcessor::~blowBottleProcessor() +{ +} + + + + +void blowBottleProcessor::setControls( blowBottleModel * _model ) +{ + voice()->controlChange( 1, _model->vibratoGain()->value() ); + voice()->controlChange( 4, _model->noiseGain()->value() ); + voice()->controlChange( 11, _model->vibratoFrequency()->value() ); + voice()->controlChange( 128, _model->volume()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/blow_bottle/blow_bottle_processor.h b/plugins/stk/voices/blow_bottle/blow_bottle_processor.h new file mode 100644 index 000000000..f94f8539a --- /dev/null +++ b/plugins/stk/voices/blow_bottle/blow_bottle_processor.h @@ -0,0 +1,43 @@ +/* + * blow_bottle_processor.h - sound generator for blown bottle noises + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BLOW_BOTTLE_PROCESSOR_H +#define _BLOW_BOTTLE_PROCESSOR_H + +#include "BlowBotl.h" + +#include "stk_processor.h" + +#include "blow_bottle_model.h" + +class blowBottleProcessor: public stkProcessor +{ +public: + blowBottleProcessor( sample_rate_t _sample_rate ); + ~blowBottleProcessor( void ); + + void setControls( blowBottleModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/blow_bottle/logo.png b/plugins/stk/voices/blow_bottle/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libblowhole.la + +libblowhole_la_SOURCES = blow_hole_model.cpp \ + blow_hole_model.h \ + blow_hole_processor.cpp \ + blow_hole_processor.h \ + blow_hole_instrument.cpp \ + blow_hole_instrument.h \ + blow_hole_instrument_view.cpp \ + blow_hole_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libblowhole_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libblowhole_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/blow_hole/artwork.png b/plugins/stk/voices/blow_hole/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..03e1ce0a7b576c94314cb90f247a72102646cb2d GIT binary patch literal 71623 zcmXt91vs7W`#-ul;;W~pr1c0n?%)QJbTKz^Gyg>8VeMu`rDJY4<=rhNDX`@U zTAp_7XSwoh+zr1U%6s~mr`2;hcnLwJzDroldV!gfj5kVw5kY~CtZ*O&rcb)aOm9QM z`E`Yicf6395Os7f7%eKiRSi_@Kj7PauSE5W8B}Vj5-BaMGrzo-+Ej_G(lbBGp3|aA zW&-K{01(v#mnUrGRMob)CCxkvG6N+*>aG1M0|H(xnwN^Fn=XzT#25_%nGhHLv@_(i zEy!Dc`FiEwb1G?z#q>6qN=!HX-}4oDbYY-+^b%93n3mQ*|EphDIfvH+9HFUr)>-hN zLdNa9f+nd)>QFJ*zM4V-t0IAPP-Ug3a!7xmDA6%eF51kcXWlxu8!~6MMb%laT=4WB=6E9eicGdaJ{NGtvOz+cbZ%uTel$N!j zv2OZVaRloORhXFdMm;0?uSv)Rcsb%7m72{81TJ3!93I$REP=XU!~49cz+_e9HQPBi zs_vTcukSq$%lio6YFs&^$<^ifK)@ehRs6Nafr&f9NlA6t13E5RB$d|9pR-6w-G{p= z&@A7SPY9@OMge~3m#>~Hlt5=v&r0<0(QVAyC=4t&pGpZ4cI!NF+dNQ95--J2Jx$pc zF!~_Ycl+Pbdo?{XX`(?Lbot~ANxL|#T(T9>nag}gnEIFR=27E@PPa|p_h@M~V{FuJ z{KgXJ_6lZXiKvt{_ypa~=Xt^wvzFvlVnu|Gy9tt)z|y$ImecS3lHh1VNp99CKe1o-qj(HsE$f7O$`DyzWcsiPx~mR9EA=3_ZX?(1?PV?K)+E;J}0oYj^X`QLM3pgILaRRR@lCPfbKg1O+D z0*UfBk20_?ecFIUH}Qc*=)DWxXDap@|2xq*DWU{Njnv30oikMK7G}}p{H;3dCZdSZ zC-bt>7kgn!GTC$23nHp^}U31N&!!__XPs&R{U73jLAt!$F zFe&(>lJQ0{XgX>Um|8-!({v)kg2}C7iwQ?smuA96@IN(}sbW03-0`;>w{Noh3c45u z66kwlwmeK-%>~@XhE)>Zh?KmdZ#RfP_%s}uaBp#ufN->U6(k#3xluM?_}FDNvP$!A zlOJWEp9bY{%&jr?+g7FPmL$vO#eqlik>%y(zUgV~ZT{b9pI-#1Xm?>4Tm-ctooipR zv*uQ;W)4g*{rP(bAI-4FmTz-g+UwqtGu+24N)C@b`S9L|;HgLFak@D0{O)<#-KC2s z7YNod2oNT_w1jyfN3&7x3A$|!yF{WV!lX>PHK2rMCKMzH9`l3WDci;u;nArRElGgZ za~3Ot7?xJTMja}p6&F#Pwtlqc-SKpfx@Ui7WF&Xsl6qOs5M>Ug1#vyQl1k=OJ=YI%w(l-*OV!emK$qSGe^S~u@*L+cr{)M? zQw1@Qh}z}7!sdcD0(f}Dn8W0qb?OsZr zZ`mfE!tfod#uZ)si_2)jSY?-}`a*ZaN74EOq2S(BP_&5gc9+Mk||b>cWSW&QGoUxxG~drFAR6Sn`R}8GncTst zbP}yRCO;C~-FO56{S`fevRoS&uSM@opja|pSL<4brgc^!Ja}1uiI*c+1?BJGzn(Wg zEzhs!Rd=?(#dOtjU~=;EhIMoZOioXm7XFaXtSZp1qDF<6f+FsDogIfUboCeUeiERP zncaN0!6gZ;tfUI#SeDjxK~;Gqlr9kViDq})d}Mr6_Fwqc2M5*Dw0)#zwgSZ|;>e2f z)H4X0(f#PfBwUh(#ZV9`_J`x>x{2l?GM9kYS55?3;OdI^nEc>m3_6_-l9f z6y=IE?V)%F8Et4^7zUBQ!}9Fk>+@0Cg#6Xx?e$at_sxs^0nZSSv9mL7m|1rrBk+!O z-MD0-yRj$CC16CjWV#?WEPionI=?jRQQYtXxXWgNj4MGs+fe9Gb}Es;g{S7?_FM>9 z{{de@j0OKsI^S{RI|WitICl?^x{MZZVsQ(fOh+Z=3Nw!^<|g@y6lN!DL5WP!>?VdR zDCZ*{U7ac_U(ja)ICZr6Ko)qCF=H=SghN|QljY2IndlP}%d_CsV!CO`ws-0N<;f- zA>*YfZkf?tAjD01oN*m9YFFL#$im2tlsS30{Q3Y7;ZC0*VJ4Ez(wS}el-*B%;fN<({GyScgHAjd8k#XuAvr3{pK-}Xxpc5rn#4+ncwF^@>ZWfsj8F{v-L6Myl&MftU{ed@09yqV2)ys%bC#MUbCQRr9(f}23F&-1 z1bmh0-{H9q-SgkjWwgIbLU+y5<3td=K%F_E@7qPoAm$3jT46No#J26pi|`=%~T1@%k$ z(qFUd06i8Gjfa3Q5#mP9b{x7hEem@AtX*L&cKF=A^^W2TfuXMtt)Rs4#cn3d@IWsa5q4(Gz#Xa_f9uouBcS zOkFgsmuT`8?JKDlHxtFTeX+%|O3t1D;2yuEd%UGSE(s3Rf4MDYO8YiQEQp!3M-ovn zJfAJt2*wLUD{J#;Jx|H|hnN7lKn2Q(I<#+K0KT^K4|8=*jft~!(#vaev9LhKz`(F- z(X-Naa z>N`$B0W|FgF^GJG6Tc*D3i+a|Z@5Hpd3{~FXtr;An+DiNi9=ESM0RM6+EpYA>(Xva z?9>U{g*6IH*z5cI`$>BO%-IY_$H!YSM*nC)o68Mm^u2EW{_YNhgZ&^qTgcsJ$m{A3 zOT1tZv2D)hJ@c#_^VNPm5yU=434t>dyal#uS$#)C6i`%fAnzv%wwk&@9AC&;9|9=w zeeeBLWD2na>Xo-}iih@p7c~36gqk{^$MGz1n5~4-e<(4HRtI(Qfj8$K-rfbxq@i{m z>Dr8n=tp1&axuMVEN$cEOmb`H7%8a6how3&{w=&G;G&lwi0G_*z*K^E@SwueS#PJx zBL!16|3$mMXj!$lv$NYAW5^piIbrkN7y(+7)7_a#bxo}aa76%=oU%w^_a+VpkSj4J zvfTWF4A0w(F7m2`LAWpjr3zNXgJn&dXvltJx~bOVmoZ7&Ms5V$<$ zZ9h$|utr8T?YE5(Ga4)di@}q5u<0jA3Y|EZ(G%vVVYZ`A7Kf~(olLhCS;>fw-~S&{ zSD$1727xr17)`WI;AgIEvX2Ki51#+dN6ya%adytMbhf@2-3p?@9aKtbEeqLWg%u_a z-lnx6&Y_LW<2G7Nm=Z(>0CmxBSKHIo6>IeL!^qs$3&2X3PbKDeJqfSt^89!j0fzV3 z@O$s@^_b5S7UAfBnSHmi)Duqmd=}CEc=C12i-Mk>o`V>(-q)B!QBl!zGYDl^EH&-N ze~`;b?&Y<$p{>CP=RvIZ_2SHm8ZU2V!B`DpA7t6=lNf8l^*Y|p|rs#kF{+)rM4EddzN%Fc9zE5Q3mFOPppNUS|cd%Q1U%%?P zX{j@@wTXK);J4)Epk~l?qto(%QYu~Ot=H|%r^gmbidZzI>SNhTLC9D|1emAI=>M06+T^z zF*rY5S<5jwpKXfkyH4?b`1o;fauO3*E^Qqh=Y#LmlT%X#j7rQIbZABk{=G9WVR^i1 zPV1Spx?zw~o8F)~Gj&JujtgEgT?2)lIM-CWl*lj>odq%y@iZa;1pKc!B>R@`S&L5?U|DcdlOVu zRguG%YP91GwyLdsQw2s!z|}Q zRFNNTKUUSykN!LA3GZbX`=i=#W8YHQT&*of>1`W-{Fd%?r`HQKB@ym`XWV5-jP-NW zmT_Mifjye30+X>ZGa|hNPwz+tqBCo#SXS|O^D*)-jIqGvAI{2!%t#i^iV-8Kwdlo3 zVi^44q|at}%Umg`5S5$z2A`|0I^VF0%%)iQtj_P)_B?aOcX;>I)%CkpSZ=NXs1GRk zDW4C8u}p36ma+aDjUgAk>&F3smh@fY-i|Z!WGSa4+3IE=3~OmC5b4w-Z?)nr22KJZ?>=bYJ5ey zfJkPMCb*q%BmKLoD64O4i_oqL`}R$m=g()Wzw)*%q=bZo`7Of$l{fmOQWmo16zNbF z((g3-*SaMuhoTR!v$Tv}AX?sDS+ooppGg3(_^Q<9?o2nmVAQoZy=THWR35Kr^*{a9FB03^4}v!QcfXyGrM88cGrm#BG>GKqquKx(%$G!nK4<){`?+Cdc2YUpoT4SaK=j1RlV8U)8JIhsYGqSRZV) zrbPRp28eIog~7+M{OIu3BrF4DbiXL%YDicjh6a(9TZLXZkzXPdH-(MhN zQ-NBOS~P&``HJ;`1g8dfq6u@LBDB5bo&&SM*F5MWRt-xJu#2csefiG9+c=mnnKwoT z259tZ7Bhl^!Jg0e^5uJbdkx_r^Z>@#vCG(?(zrM*P#-`~Zn?_^-u!9nxvn|5_C72A zwCQl)2Z!DC>n!~Jrfc3KdC%Q9b}j`~qf_4{q1XQG&riT7{POP-6sXhtKtCT!Z- z`BTQpAjrm(_X9VaL&z3<6M}+c>SY~8i(x=Oj2Y3YVIRq(2nedbe_Ir!mJBS~oK^o4 zw;OzL{~8BO@5SJ8a>P#lPpPbd<*5nY-QkB7)=J7M;z)4KY<8j6>J^4{5r%amUAW`j zQ4nsK{#FBXaFKci96y$hgur2ZJ(K%YB2X-|7(Z>y8Ct86H!z14ydLdKeX2TACKGrR1N}w zd+#E7b-5k@Xy3kl<3!+i|32bx?bm4theUOnsP`wq;o4Py1SK%RG zSbZ^%qKn5xgah#A_tV>-qnDa`D# zqvdYf$nNT9SrDUGCCA3^n=?Tk8WqzufP4Q?B$i2W|yi7hHauof}epQ;m|g55CBFjt=v3dK&4I`YT#tF z9zSIW3v67DCcw+ADSf@C$KOePMK_n|OyUb!lS-HXZq3K{p7Y=~i3mw=@e+rru&JAX zZR$&;ntbvmAb8v@w)KPoyR++1*>T`q+gh-9_jD(U_@PHf!bMHO^lH^fQ^p zS#IliF=dt7=f)fjM0}VOLb-OWg4Bau0V(Ow64r0b(FdpGdjOEAsA=@ z_ZA=|p=^o^e?Kd!s?ttrFbXFND#~gOM!_D07Sqy`}^0y3_Gl+*2KltUX}DjvPOHSu?RHD-IO8QJqvL6;C|YiHK7?- zfSH~wD<&g)rIT=Q#m_pl0b1Ov@}k`|wl4$1q zhO_r>MDvoh_Po=DQLB&FpR;oIYZP@Y>!f?_HV<%ZWPC8WQcIPPPL^pE2sVWrXpRij;s_&0<#dfr7~UuE63OX zP$0$*53jXFV@RzmwvJw3e*;XAt+cwXVK*0RjmBuZd2owuc#or;n7V1(`tZ#SUuSN7 z8a+#_PU|v?v@SqnUc2BQ>|8Cd;0gcN@mU$V9g=W3K=A3z|?0?MiJhK!>9MPBulHDhZLLJ)kyHyllQuN*NaiQg1lBTR+ zF({#21k?Vty26Q!!rV|Id2whtPedmhXK*%p_2*A94*wa%re{m#3;}yqbF)ahu0a}Q zOcm;X`p6iQJpb0Fgm=a!H6i7kqqrhcBn`{ZzvzH*71ptw|u-ZK(M|s$gzB+Ux}0xl^QjSqNQ}v++G> zfKfurx(Z5_$!}ix*HqtEVp&DQ=RRc%d@ZvsxPh*Kjy7|f!CYa-)*qd5^UZ)$R!91q zr=LbLT;HZxDAYbwMivQ07=%*u9 z+BDPaASi)Q2ZuBAX~I0_aNE^jBTT`q5el|()r?e97U$@a6W!{IG{sWspVrE1a+h36 zGT=pxU9efU36S7p5Jv{7oA;cvHyR4QriB+;v7g0(rIGUIPd2|184Z1lAp*p=g#`j& zyx5T%cbysYO94))8eo|eY@8OY{sk~KPx=>Jz4ZJ#f=+Fgcuzw5!ZH4q{H`oix?^`T z03-m2#nsidbr&t(Hx_~OanZpegF>Nwh6g;sf_8TN_w}GFmU;MQsQAw_uHHL?(UGP zTEXBD6l@oKY!-x{Fz*lFp~g~LBDZsjRy?G!))m4Uxhw1IAz3ik?=W~Vyb*Fk!bR>+ z(_zZGnfk-+r$;B73l$mw^i=YJB7Ny=1?k3gy!nq8$i|pM1lsuXJS<(NxFgH zbQ|KB5Yu2vvayr;2e(S(@czc~O!sj}b)!!tLgIV>{uQTJ)pnx4JPNcTEK; zMj$%%cN-o%+XnenK>i@vExM&^7Kt&VbGFL~iYrA95n(e}d6i&+GEjb6yVX63>4(~K zlw0;{SDAQOqkVpSUf_oAcAy=y8|by=+?@A(f?tC$y?Y!E1p~N)To9Ey({E4V>WIO! zeH(6wYJ4tsm8+^!f{=l=S1N*#A|t}+5M7rQrl{^tbW`!9L?}64S;#N)a6K$;ik6LT2_QhX!P$t*|Xp9Os`_ruMU(smb?p4!$w4 zukR*m-k^vvy%{BiNBZk}Kd_Fit*zh@NmNuih0I!kni`m7Sie)Gf3IcSwA^0ASrcP4 zzh1h!L?%twR?}rc11wuYomz&q0(e`mYCdWR=+y7jX9N{mWcejA_G@L~%o-XX`TgXd&X|-^>;hT3xb?p5B*o<`_>Ko10s^l*ny01#dis z`y-@7m(HwT1m3Us@=XSYWp~R&AkABCB2gtoQ9+~32)k+ zotWv#_4Kg!wE=w|s9Law@5^Yi72we)vua^ijw`sJl$PdNk^s_r^_V``??`|wd1ai$HvNW!?yK9F&ovZ`{xiKDM?u>s9(;pA=oKLi@W66=AQ0yXqwxr~CPQ!^hQA3IU&@2DhGPv%m8us#?W$+pdl!}jHp5rw`AnXTA1H3k|!to{{4jP2$70n*m$Fe z5&Z&}0LnV**>fjvxY|<~qYZb`p6QsQYb5Lx0Q6NqjTBmw{>QngWUnoZ}kC!9h zihQgR!HGY9x-LU?vb2Pp&+W35MHY0>h?k*M5v|BQvTRJyRHw_AoRgK2AyzcYBUYKR zjkmX`mL;ho9NedA(MTt${psNPkrfedgp;7cEKz~JB7(TeMuNU*-$4p}X-O8aujSkG zRp%9=AtMz;M$IrU*aWAl$UR-p{gfjxT!;XxH9bB3?6=Ub*d;&-2PEIx<0Cr+(Bk5v zQoA{c#}goaKi{;S@204l`uLD(X_=Uqz_qQpU^sMNYnSGfKC<#m`CJwsD>c4FyHI!I zXS^mZ_*KeE$bbg1F3$JeLx9hC)f^#UiF~KdWy9$fHKEFVFKu;Fv+?(VCbsfS0=%wa zVCB)W5#mUPRc5GsSa&E;jO;MMFz&J$r`^xHqqx=8)yBXaX>xVt_r2pFz3w!q8v;6_ zi|sO;#%Wl0BCs5QOb^5af7-b$Ez0Ho$e92#SaMN)x3Adya({-q%E7^bFwSDWG>>nx zZEg?1$H3eN{;x?0O6<$N{iXhe7&E-xX$u|}@a%PTa^k|AOpm4r)A=%+{6)R+r_K4} zzSs1p}5p`mO92nU9PE2?y`GV0DW@Ym#`|G!o#_;+HFJL)7vniQHsEC zL|ph?`3U1*%n!?L>`rE8F9^X0j(dC9*y$P?ZWEPx4qwJH(~rplzhAiYcMDMS`krn# zM3Jv@L<1=Do&!YVJc)OH)cNy-%qq(h>>!(CK+jbMp06B-A9* zC*XLA7|vs4>$~OV2}d%8ixlE;n&T7?0pTG_YIk|*=h<7octgy)ZRawAN_2lPhvM1Z z2Sr0-CiaWSg=3i(cYn%kzWbh;ij1V*Mskl>Vz*ibnoU-Kk#!2^2>2i;{5z0cUSIuo zb;V<0VUh8fFV<{Q^S^EJ$(AJTf4giAsGG=N`i%ntEvhWf zpA?WurFGNYi=h~q%9iE&zo(U44@ZZWNjC+RHLe~JhJH9zA1|fQk3_slkp8dcH3qZG zAli??o+FWNKFLP6SeXdlqW8%H<;bjXZXf$!;E1Vt`WR{I+if~=yb-k)Z@*Z66FlG5 zVn;sC?x`=z#?y(% z`RfO&#>>;j&VzkTFfUFG=1p!FsLiGW1O${D$HH%^#k8=Hz1K9w+GM72e`VkqNDr~<12yFpw zd7Mm$T*KSQ69&esNE7-6MCD%hf~7^Q zRYfA04;0-*3>58*$Rn%&!+f60+s)E!hk+lm@y0eb<9r0xY)~6X9^&~Tmgt(^|ul%xz7wnqKZ2cK>O;QEOCfBPws84509 zz=|uhXwExu;nLnXsgXD)C({d1|8S8qoWcy-pd*>wmTKv50kBfv*ckkp(NR(1 zcuH&De(IB5IW;3D%Vew-(h#w`90!(;lQRftocel35tg`rfkiB0qeJvwXESWX>;mk4 zXPD1=%hLAU`A$YAj5mar^(0>r;nRb7AV7fEa}BB;YhS~BfQg#{gYmr;_L&_G{BDU5 zh|i$1IrMpngeD%GxDrC(-sz|n8@63sCMWDbrzlK}31&cZcXxN%8bAWH9y61EtKVrQ zB+4y4J@G(MX3-LW+HY2DU+Dxe;eqhfOk!3volwe*}bZ(G-E~;XOfgZDY3RMDKYFv(V zPrE;z*m@yJ75H@ zn%Up*Pq==(eb0NLkiAsQ4PfgWVIRT-kq5^8F2FO%$jod|YDWd=X-yRUL?E<1kM5j! z>PMQ@+@j+2%uG{|9Tk?`Tct6>c*W+b#-mLV5i*%Kb#XxJ(4B_ z@}+a=8wOE*LxagjP37Ed!)!KPFk<`pFxmM;@4tx;AM|(8BUF(o#6F4hZ=pJHS(qKJ z^PHL3xZr&RWSo_iff)9l(YzQnclhIj?m8gtvF5oGmywmVyOl0AT)~W`t1FShfcryP zD|~L019SH8=X*nNxvVgK^n+bm2xgk5n0ltPL z@iS*^s0|cPx3p@Z3vmLM=H4t|_;{Xl?7v1$L&XDIT3V7ecdmGV>TufJ6j#y<##Ad< zr!e-h%~nhrus#l@efKUD@HF|2IWvJ~{F*47D^WDl{Gj&&fL+6w8K%O+BsuUZ*;Jzy3)}UGK9uxu`oP03`rnGxnpC&8Kzo+CHa&>+dr*aIb@U#%g!gxO#n*1ySvA|*x67lt0fhH zMzF23Oo2xLiM*yioF2(GA`QuRB1HdDE6T2W|E)2*z7GqN{=GN@M44=DF^nFziOz>t z9Y=PD5R>_bfsN<%`$!jZd(?F22&5E?T7n};WC2bCSq%J>g1!Ub`bJc`Rn3IbH%YsO#lndC3%}=fQAak|rZ8gJS_-mQCx5dqG z&tHQfQ4CmjZ$tZl+gsc7U<23|XG7Dk5ja*>4kHPsuV9DesBVvEu;=c@xK_B|6RP)hy({z0(G`2)wI(8N#?LD2($YP`^C@btGBxu>GP z0(ZN8E1aypy*_ZNNOra%l%&CRp-tXlaw*KZIwJM2}l2EZl+naD|0o8KSz z^f0h`L%Ed_<$3q4?t)rFsN^lDSQP2>ByS%vx8o4SnD6`pf$M}^eV2R)yiMQ=jFp&MKj^ejI;r@9p!3nfcr3GnsWyQZJF|0ZnmmzIGj14fBNR5*^~! zBzy{N#PAj{zX2r1c(GQlhb#h5JRt)bD3FYx5{?2`3LRu-@byqk18U!&KmVKT8!d0zRwUZ0?AGpTQ_=XXr6_vb#$d3RIb-#<}tj6x7a9%d7`Xsa3pM(fsqpjFqUN_G((RC5PG zHIA6_epL1@#FgD$_Z7SF`~TzjKmlAUo5rtSzbf5p_Bdi{Y8ANfOzC$pZ{Wo8W&O9v zplJ8WYbS}0Oa4UNe$`N>4afLJFBEIusJ4ZeIyRClU=$Q4-dEiQVb9Q%45TcV|3-7Cd^;r;?Pw+po>Ac7<>K8upbcl8ESxo zf7w-iM%x+IpXk zU#I`5p}yvFR~e%ssx4h;Dk{7rC9mK7aHmZ~$dqeGwRk~{_*NAdKI+GbdzoQ7zWzL& zNlZfr_V;kTV+ZNXYLl>q=5b}fvTjU%w=^O5pWlwrm$7x=*QyVHDwC`?&rIN7vlFD zzT6akSI{;0Rr~g*ILA-ST$SU+fM)|R1|Uxls03!#&bTl8Uw?hGp7;56NwMa8Ipw(> z#c-D0d!OBY|2rE>i1h3BYi~>ngX(rc1jRt!^I_h0$3AQjKykgm(Zqib-M0WhSjygK zvJZw51LLIBA)kH9EHywCY42E;zM*)0A6TY%#od1uArCd;C93%}!Ljtzh>`_G%;_oSN%r@t>l$#%R3e-n9qDu0 z!Xd)%iGSpj+_M?|o1_p6=Q3Gj%a?6;=xXa(ybm}xJ6ADf=Lcp9+xPorVYmAby| zYlLlW2XeqahJav??!N|%F?fKm{1OX5O_xl24-cFYHr1-lGDp#Ce6PAG$}+-aGO?Fn}4ht-F(n+>fblANM~0MIHEFxwL$) zr@rmszwdDtR~PW+<=?W|Yl>F*b}a;0ESKV&N}X=>y3S{B-*ZKyfolepdLlyugKxmk z5lRSp{_U~vygBtm0fHLOC#TQY?>GJ#CGN{4Ud)JIQR}yR;^sYHm7QmObO2ia?RtQy z|KHwc9Y)oyjpwD8frke{!DGIVbT*;HLP^?t{r88O5OSI}xwi#f4k8M|6AsgsLvY_R zl$@cl&9!4O-w~nI-LJHp z9OPFCn8N2DCy>*`fDAvZ?2Np^u*r{HN=1f%&CIK$s-i30MJ}IAqk`w=BMfMj4T+2- z%tk+*hsPzQTl}leEh1%y`wV=JTRg8uM3F=L8g@p$AG*IPX@e0sMRWfF2RvkG3PGio zr8T<*`~>uZ?5fR3XJe|q1IZ~er07Nub6?IjLvXl8(^eSaK!#pZysQ9_wM1mGuCp1PV2vk5{%XsL{n1n3v%!jbCj^B7V0xwr?S?7SjN}T^vw)y<3*E zc9|7YMt1{5XUC2K*&n?b^xlb~zRIjCwh7#{8cYdQkWgLE#mph+fzaY|i#ZnQxIc!B z_onz;Fa?@{AgoYf@nTnLbJ`gNIF>3Z2`Gpkj=z9h75@<)(L)nLO0HqVJD8=ljb=Rn8({{q;h^2(;86> z%=8l8U-fP}WbPy9-_eaTB!5ygpHFhnY;FNf;t-(x1W3R4_s;Kig*M;k za{VJCJA0=qIrNRS;203M^SFefOAOFe3(epy{bWq8W_~?lfg^I4Ptx%DZ_Q{ECUEld zl`a9%#)XB24^<4jK8QgHU89M`MTR##%DRveQDTmw1|WXdoD%fwX(^%KIvyr%bOdar;eBxY`#VVhY3mh8Ym zi!A{3H($Xn0J1+^3M*^)?vQQtIlkPygcUNLF9kd;0im))31e?>QdQ9>OtNAiMm%J* zG4IW8*p8Z2A{RU5&}LgcXCSnu=2c2A#XS?2sMO^Fhd|0CMVQUT7s6g*(Lr&nug3fq z%--on%J_k5qcXqIH;Ef>8Ovy0WD_#6x!Uvb4^Lq-9&d!2Uk2F8n~F|X$x!uYR}u{- zDA9)JW|(N;O4W$kwt!F?!H%@YwIrx(l9iLmIQ1)QoRjIhO5I;l@o`gF|8~#wHj^lY zgRieY13_va1gY=0iwbnAPYa>d<(5@HBziY2oe|Wt#^wm@S1Bn*IAw7&)5YQKY71ennQ6Zjm{$=|&FZzTJ+O&7{Aq&TT^0swNiFzwVM6Wj8L>nzf zS~KeE34@lP{R6#@o#zqRXOvfl+C;|#H*@6+m*3qs;*HQe69|VR`h1>XW@(86&?e6j zp14%9Ov zhaM7OB`8M#rh=8$WhiS%@Os4H{O62+=t-Hu|7QUR->*4^kht=RCW!Ysb}m$>Y8L(6 zq$lhA$W*csaQ`Jhceb6Vtvjjj4f;3zT$hWr-Op$|G!E{>h>%UT24&n&dlezk&+EAj z$|1YO`*BlozYUEk7(P0`X>^jgh;2S*{W*W0Q@bqk!#S+TjKMz2=4DfSLnj}O2$9&3 z$+o~-1goC4#oChYq>Fl1Q>iCkap~`EN2m;QtyH9d_Z1^H1%F_NKuCQXz22+Bzo@;G zVWGE+1f-{1Tid?>y-D29oa%jxU%n>rw?t!x$SoeEjY9v^5l_&W%tcN+2Kk-3O6{9- zB__I=ezSCH>(h@{dU(ze%pi^#swO#Mf&bv6)`P-J$t}LS6n1nnsU_`?Uc!4N?XW*@ zv!C_c_ADh9HvhI{J%)k(HwA7Z4)!$%XsaiV{oOvlR4SNpaJU$5y!^VYZ~7YZzWY$Q zeIMqd7GpE&dYM@aUS3`s3c(RUZE0(>#LiCpxn<#-?PKW`-$(iORzbcmKBwR;R$^uD zceW(OCe;U|5KtjxhIsibweellFRKsvymSQPmb$}(H2f0vE&d6ee~TjuSwE1ZX{x9F zF#IBs;XwIFh2eu6w>JTYnr(!kLaD?wezkm=s+3jk6;@qhES7kNZI-h>mOWQX8%skc zAFN15=6U{&=zj+;2f{Eg^WQ)`!F8VBSY8#!uzMt)kIJuyqduD>0UPcNfl^DCW{hjs zI@+PmwqrG%9Yn2``kSUieqb1rs>aJv=_O~LvMe(i!l?`?I0!qV{qqEzmL&*t?@F~; z|7^aW4oxLSgo7t@U?~ao&aEg`&(O6rA-?!l5>81ftUNc%qXE+`QbCv1!XHn9Gq&;e zt_I@ss{-*;jJFEfUE*3M-rmT%4!iYXV42Esl^sr+N_xDa+qcS{m6eI~GOVt^0ny}Q z?XMyufM~noV_y#BS>rX?$)m`1tcMPoS6k&Q(HZJ*d*FN$&$D0_ zZ0^Y;cdf-{%)qkXu86hR!|XE5C?u8^xEc%w=(O9WLu_LMr(SpgFP%Tnx$eZo1Xfm7 zu(q~_#l=O;&CT%)a?*C|TJZv16liz5*xKC0&dv_{Rx6!AG73}a!je~Ywdggag;vf< zJ3~DvG9gD31ilf7u$POxAyo;e1CJDSC_3Olmo(sVpF}zBD}A3PoQ~9$H0RYWkAyBM zD=%39*%e29-}~N&t}W+LB<4p-RA{Sh;l^!b&*KD7=QVOkBldCm; z;G@ba)cqQIzK^IDnIVhBbti=s3caYlN?kS-%DXuWEsVN|=)fxF8-<#(!XOCMp zX)PAb`lgZq4HDEPjn4)5FjK1|Z7^9@mlWU%D$oV-t<(~E-gMvOQI|hVYovw(?dYsi zt()YruY|SmBpqvv=>R5af-KE2jE89N?P0@S%$=PbuIp19@#@M7mJb}j)YKFvCnwQp zG%(R>VSZr&v$L~2OPu4rQk0`NxBoMah%a&kK00~2bhH9p z$u`%R(-2JJufQ31?e;d%L|Rho@su)ZI$4HBz0Sm-Mx$XAW@@z>(j>)8=U&3b<_3Db z9+O(QOUqhZ?p=4nFPD<(&ikT=>T+&Jt*vIWIeM^V652HPXWenY41hs!^ies;_I{)u zjv|M97~MnS3N6qC4foIx-BoKd-~CEi%l`RlMA*r#Y%#IJ+(THe)v>TJk3)wKbGzyE z)HIsbBfuJ|ot+)DcXzS5wT;tfPUF!>AI18`i|F|K=JEmo(-+voVS^GucK_apja!>AXPv>^iE;4B3Q3 zh#518_U~Diq0wkSdLCNMrX`nECK_@af-1E}+UsF^XB$8I@sIG-Q&0U|aS6BXy*%V&rAwEtn6>Ob z;O^uRYB(Y(qei`s$*C#K&COwUb`~=;Gnko~!PL~08TD)H+4O#cejn$~ox`)wJ!b?H z+igQdwIJ!wyO8@Y)n&g|jm+16@9P>2^LYe*-d(@kg>~O+e|2R4x_+J!x!n3$%%d!S zq0zbA`~63Zm79+Jd!NZQU_lUIX=w?wGczVCj{?*DWXV@F!dcNg<*n^4R=lj$YNM$s zzhD!_hVNZwGu`jGTHS7_=Z^Z_zad<6wim^fZW?2xu}D6~A_6L3T`p9lTE6>wZjF2Y z<)QEG?e1PNYjM9%!yw#|StJ?VsMqaeO`qkA=ntxj1sav-S)ore$z^_F0m7EtxE5ZH zbjv&&;knAR6e7DJuy%|XQHCo=t=9cLs+AK6B^;e{mr_gygOp`QefzKkCe3{lZi-2x zh~3&gJqJSTM`sn>fHMl~Nj$Z5ygH1+jg5wg>#kkTPqX355=!|jt!l|pW-I$;oS z*~|^|sfsXS5su2REOll9Q35yJdOcNcC=WN45&QdAIhT!%tv7qFL1qCEZ}fKp{hV=3 zBd2D{mjueWDgjWNtFE+F zv8)gVAuHDqZIl2dB09ioq*F=Dr8N@4gi0;cdYI)o*YFKCP;l*=>eB=$78ax+ATo+V zqq^#u)=5F7ksvS^(M~OCwOUuqT1Xj)21-ybH62jT;XMoHe;ZX%YOYD*oacOdmi**7 zhdi?#dQu1kPB=(ia$0NnDs(QmwkY*TZo2X+RE0CM48UMG(FZyq_tpkYf|PJ33zx=p&AWY zq?TkSe=nU`>TJxUAu*8?@H{z+G^9k02A^17Ns<^TvLG-+HvrSC5Cj3TG_z!=2otRq z@*)E&F;)sza7YSL3R~YcokzY^HK8y;aJ?`zhuF<88Hh8_+!%<8!=1uvznf{8BQISP zrFlXQtTy?zJczVz-*jk;JqOHv>B(n=TH8(d6|?N1L8PX>Ir006*i0nhb?- zMmi;S2DoHoT5u~VdHyubxVn<(8IyyUmmno;x)ZC8y>=K_HQAJ-K)S3{?{+DmF1k*G zL1=Og@i&OPVoG(INkH6DXwM_Fl@Und}AQSCqO@+C-g*(kj-JS_2w@oy|ZUmMXOz>olRs8kG&ZBy+EYeIaT} zp|HWXY$BIDKnfnz_gv`;d6DrrWvX?$r4wptg){$~UYAOBG^&;c7kZYjE#zpN5y|k- z*xE>(TH8ogYVaQ4K(A%Z7C&-omfwMC9H*{e?6-&FYN`RzmE>!2tyH0 znnfIWGBQL@tvDPOqp2^fPOF(*LeGuomrIFI20U4ZGzqGzLSBt1v6aKT)DA_MTA3;5 z?sa<{p2t>xoYqD-KwxYA)H6T^jhlQ3^AH|tQNX1s<@+qlO~!%n3ECf$z%q?Rxk*86 z(~+rA7^kLfoxQ9|HsniNV9MFT8afmC*~=;|JC3X~ZC>d#Fk}w&J^BB$_ijy+WXXA$pIby^W>xoe z_w39r76#%%Jc@?DMLiHQqke}782^&^qIZaptwAP2SS@yD`c_q$8JBa>gZt;lBYQxC zkO^BDt1(-fo$jj2sE8BixPSg#Ou|f5R-Xmqu=vkswk`H3KgGB~HQ3T)V+8D+r!B9$ z018AufxH91I=eBVDk15QA*;r{YR23%4Flb!xJ$qx;&>$Qy>k4~JKG$&D(I45-fp6T{IpWYjUzcx)`8(hjp3~g7t^; ze;h}xCLne>-LVaKyt}(o86!|&6|ajmjg#4Mkkn0pGq8e!c6wVkDaDGI=5g8ISP6p#hVyp>|dz|dswlW=8O4$$t=a6k{-_&yH9{RF=dAh*Z z5XOK&?uWyXYAwoVw}%xReNin088>E=kKW8ABpI6Tx-NT4v|JB*ZuNPP%@1v=^IfSJ zbrP^?8-hPWS}$5fY)m@BtCil%C=HuwjO^j~`1nW>XssQUr5L%c7ePkOnYJ}+=~zpl zO?D`tllV}~jOV)OBDTq%)d&KDNfGe|F})=Q;B-O42f#z1$=JF5Zm~7xYy%UpS#fY< zb;h_+sf@@^6QC@a+^tU^KR%mlQ6Z4|T2*0z(rIS*>>t3RuT@MG`%9j6#O7t;;3Nlf zTS|X^Y7>T@)B9c4o28VpcYKia*bY`f!|!g$RJWRcB+GOH&_RBmOfE@a21Zv>jan^+ zefi*_0PAV%mJ50*(s&R_rlKV?QPR-Nz=vX2z%?B&18}t35R0FvQ3y;)S|isQRoIcq z*JG-ZO`e~{#jp_%axZ6zkLKhkzK-}ooI4(bGYfzBhldCCD6^)9&XGpB;)g>agcp|# z!>0<$9%5wM-r&FBYQx8ij4>qoBrK*?HWMPErbs@gj9|<&uWJ{EsAW^2$p_lDmGi*G ztT2d4q2*qKe@-?dTpmWrnTm7t?%lg*b1hjG@-$7NZ}&QHMF1pJRl4Ad^xaY=spMET z@re9(X)Efount}-i%Ikl*7q(+!l!q>6G0?M5M+;Htjh3W!1xhfZ?MVo-cb@yxSi{f zVP|q5&f0namE;^XBkSbr<7yEb@u;MkE}nt4ISwpxjuuISt*w!l-xoj{L|RV9bh)fM zU^5Cx+FGNtXhYZ$mMe=*dbIBD$}JNnSx#iP&UwyMld8h5jdfiWPq55Mc**$?sL7^M zN~U;sIG6?A z94YRUKvt)X{thuc&IBA_b3jOAB^HjB(PCXc$J#rEW|z z?_?c0rGwZf-T9#95=aa1Tu1q>pkyvORzetqN-|?qLkMTI*Nk&Sx)T#cd$M~|9ii;j zevJxUE@w^jsAl|wq#HY9$CwS}-a*X&sWl2AQYo3nVW3q6OW*Y{Wz`#Z3eCdElx4+Jg96|@ze{!6M0XAA9i~8 z+e+nhcc-Uqm5BtLa}{WYuOG}F0gg!X-+RR%QHSUc^nl45pCQSO9iNqnH&k z8e045UhB?0au^0W9uJ!28Nn`+8$2BjT9zV@41L{oo;BJB<1AbcX4BU3hAE3ATINYh zGyeJFLfg9gDy|ur0@{vTis<+GL9EM4wf65R=KFz=J4foHH_5EF2`V09Ct_HW{<`xQ zuVO4wcOH7^wQ)~?mnfr9O1hX5<&s4!Fa5dkje~zYB8~Ju8@C^4GRNTDd%a%Ci^7r6 zg2{vh8E=n2yni;=!e$*Zf|F{-nUSNG@v?ccCSDG#6g5{*jajZ&Z4cDzP{w8+hALvq z9Ae*;V3vur7asyop)m87*?zZM=V}dA*)WdEiKxchVp&&u`25f}S8@HlTrLzpe)>eU zRysdDsrT0`naa4?(fFVBUDr}z8AMBl;-_3~!xv6zV47#+l4#2-J)H|}TUO>1QZ%gK z19U!|v@u0Z$Otj$?ha<%j(%%wmEFyzQ4Lv$#IL=W2x0F%Z35chg(l}{F>XBb^-4|* z_p$rxLKJ|Jb={kA6ofe@_Qcd0n-dn^OaZb0^tAL#IQd}VW1fwT0VfMc7EH8pL;`HO z=#+wsY9Mdf&^IgPjX@?Y(ZxW7T91sijPDcMtuw5%%wbW&wu!y2W!u_?RrvQRFW)@`NMs(_`!E`-@7eEV^L$foXy zXp*cy#Vv#a3lJMP!n&?>Je}zN?v5Uxp45Eg{KRQF@rNIN;2!jd!9 z)~4loEmif#wbUI*m~&=6fZ-Oywf(OCQGh7XTsfcMy z$-I`QaU_2@NVn2W#@QL1K)sPT8O`4Y|Yj=$o( zqd-p6aqmtirD&H@)pq=NI#K++U;ILCeol9HRBNOA`+NG?&%U9zZ{IR`MNV5--k_&} z117`?NKCcTN;`6>FjMe20fUHODlGyopeGOFE$2-XFzB`Gw(1M6h~qGla|{SUVFY4| zonK=93-y!_Ufe{WG52}`+$x_eV(eu$8v>YST_=tOdpV!ADhe{Qu1a~WT8Y3Nw2Gdf zDErINwq~^}M)J!lZ549VNfwVrG#f@5$woqssMM_FD2zs}$pfN_LhwwZG_8b{VEW+c zaF{xy%(&j*Bm%&OP|D|UEwvV{NSDmjTa_0HZAI7j7lR+sZe9(5u+~ad`gNPM>YSrh z{2aV72nEJ82tOY$InTaLWVX)hk-t}UU0u#+5lFS2NozB#NhAruAFy!GAGDm|ldJAn zP^{P@ElHrbAyYcyrA8Tqc`?{R+q%-0H*x|r1fjM9G)O|#v$|i<3^6ttWUOS#H>+Xa z+0(*0*Mg0PvKM15P&)}UVvLd+lT>U#VKzb$oEG>wAgVZwkZzP>Fb8nicY{NDVSNa+ zEh}BiRe>klQdslIBISCMp?$4|YH2;TN4^Jy3AAA-SFO1sPEh=QbR*XshJmJO>Yik% z96+%(q!TMM1_heOLA<$zXLK!^`zFdsjCL_ngijqdOi*RPGHho2t41nTLhU_O?{pw&G3FZ>OF{W{{Y|v6EZM-nbxmpW(B3hTFJHCLCB?b&Yl=1sHIMfQq zfN6GoYQEfWITd;>r(QBn1UIFt;%Z)&_C~35{HG22%ot*ep zHj_@1olqIe`fIgvf{YvvxfE(S)A4X%wjKNrB=|G4_#`%MG%4 z9d&-Ks)jH(#|dh@-&<=s1IKJU#Yh|alv-&z9JGW6u(Ga;#s^R1q$87AX13VH$XG<< zrHL_7ifNZ@>OH*V%Z`je#8OL=T^_r67T>xMdEqQF(t*|STo;uWVv*%ibkeXH3Mt>a zD9k^v8z#OMZ3OP`Fpix8=Nugllicg7;~j52-LoLFDnPQLA-U%vK$h7zBN7ig+x}S7 z3Tp#43`r}APD2e8q?%|lZ-(9+vu#j@pUbr$7&JSEtR@0kM01agEJlxYa5 zFQnVBR|Y`3i2$aV^i-_?L=or2&N+zc>`9)PHSn-m3Zr0T*!-$gr!cv!wbH}G1Np$? zJ+v#ped6bb2Z81n+GMxH4?wNIEDO81f?y#hD9TjTmJfrfYbN(HGu;JWk3h8!o@)LJ)bS*Ni?W_(0=0 z2--<1%7C+})gXi1P;2QT7CFgzC&pNE)eXqHz}m4Cj2-~U<%KuqVHha4tPgyYlaWNQ zf*TTpSCb1bl2X*i@B&ztMJT>i%I=_s4Nz{4(aTsVEMx{k--~CLk z#Tm97(nur9dL^nj)qS9%sK#BEjGPu|AznOuHcEC>E#o*+65j%nDFUA5D%u9;7~mep zVQ0FsNTsXp!^Uesb?x%+&z~M>Sr^{uwvEo`GhMGU#iMY4QToF0{`FU1(YN1zyOZ%@ zN5M-9KXNUbfS|(y7p9O>lHx>D;YA3Pk{5Q>praEATn^JgBYjHkK$)chLKTElS8aZU zwMS6(fLT^6XP3*ovG}EDOheL_1~Op?J~(&GDaYEn%3QXKdd^!B z$Cfu`+ktASy{I9KfG=L8szIyLP?A2AYXP9vjGK)5AWFNliTW%`duEeyu~CoXNI4f8 zBIvzQE4$h%E%UNdeI9(DfrA>oL6Hf;45+}7XX-nVl>9F9^{SQJEG-Y(5NeISdh>>k z#{;Dy^$-;z8mEyWN>(Q?tb$?dN|*Dw+d3=g-c(ju3NP|u7L>EkDT!R+^DGaCg9FB&~>m6EuMSG@9(h3_1EAfMbW%evM|XBqi@ zL84HVQdCD1>;GmEdPfZYwbtljwA0x2Atl90fCX;7!ttWwK{^wCMZTX%E(u{oPPNPV z+HIIx)9HitmMgVWLNSJP>KY?#z>%w`i6#SfbwdO-OcVv4;vfi}lt1_0)8pggv$>XL zHi>M=F#+wG^!CfL&@#_#FhSju5AD&zVf=>ZJHvr4f zJS5?WfUC|xvIu~@r|UfHfrf)53aj&YJSrfo>x_sZ2JV*X3419xf7me-Ig$~U(_IoT zEHvi16dF>Zbz5m$yNV0t4{W9E>BgM*Rdz>fepuDL!>RI(uM;OYyvlfn$(BuNNa__< zj2Hl%>md!Ml#KGy_TJ7*|2Pf<`O~TEo2_lHX(jAtHcFdOOyA{pZ|`FKKvR95A17(z-D?!ME&g$|g}4F|tcr6CU8 zzDs^b?!SXngx%5$>w44NL*9tSA?bT|mrl~^7P^xlNK2>n&eO+_AL)9%(&c>CHs*)- z?7<%u8I;lir``Lar!Vv~yB23kb{>s6m9=&w zi?ZYA?_PFPy@u>`>v{}nX)$)*QDn0z9n>(>8P#Gln;Ty2ZQBGC=0kH?7UO5PDv*s0 zKG#h5hga&#bQ(`GE!gOAJW`A?QV^{#ST{J;fwtp=al$~l+D!SZHpjx*?HqMd%PB0# zVEPqHMBxV%rB`peiUBuwT{kr!K&T%gii@!TYQ|{qHbSQuemHJ2yx0f0avJqqZIx(i zUszIS@pQ9#?I9%^r*XHqERw8!q;)Tm(WHhZnz9b`%6L=yGdET$uqImQ5NsYIkWo=6r1wjSTA7Dm7J-_ zT6lVV>|fIw9S;W@$B`D;9(Jk8UVj_S$NK9(8<=CZa5&h z0003w$A&V%Z4(a>pde_jKx8cli5Cz63Ht3I7Dy!H4(A+I2vCqiCoM!u##&ga5>RTR zhC@!?k2#prLwFJZkGMHmYs6!6V-9T0oGyK`kZTK=R+y{)JoUOMekeAJkq>e7`Ouuyp&3{ z7Ul3GR@h0fAO6k>gUp$%9w)#NeD46*h7joO+c(eVT1v^QrmBjSq)vH$&LZr8E-|{K=^rWV8I`Sf-Wmzc+Qk_fIQxWqz*1{fi=DaLy1H=rW zq#*?$r@#y!!3Jv7Uz_sZu?blHGcJDGf=-bgh!oA8Tz? zTiID0!{kC)QmS_kVuskIw|pwb&YY4>Ze3R`V^OlgJya(mrEBJohCPYXjTb(@bU1NK zDT?zvhiidR={(O&ERn+{#YpS6vgpdBt}1CIc<~101DE+Exij`)(R>rQXhGE`zX!M> z0D)VpbeIlbB)}3m8q=_|zpmDMzz}evFhY-qgF4!%Q&Z(BMSOU8phk@zpPp!uUIk@s z5;*DZv@i^Vv%^Tq&X2>dcVlWPG#LnkG|e1v!eViCTVjs_EpW$_X3J=GX!97d@Gi|Xj{wLZY$ z(NXe)K5vWtc;CMs^KnE~BLu`lpCLN+>2T0Z1!>1<0aId9+f_>Utr1-=XS!Z4>;j9% zep^@Cww2D83%!5;gN|)*+M>rw5Sth#n}SqQPQWf`m0lxQ-)w^rr=e3;oo)u}J{i+> zn<2315cpty&KczD{aTTEJ<5NLXErw$-;Y3m{xAa@X~-BWgg}pvkJ3&ExkVNsepk#s zQQ?4qvCK0sh}NhXK&iof;?}`^VpGH$^L4i1jXU3Jyu4MBa7JL& z$xSE*pI&IEbK|VZO z+?SLRT`yOu(xNVybzQYwg?@nVS&_*GFC@&B@lc8wETkc+_8%5bL`@7u84*v;(bLn@ zv$>Y4Q;Z^1@26f7!RAX0G!gj(GYOb#;ziUdZR-FaXs8$+UM^SF&nMB}TO{B0@L-)_ z?TskB`p2V9U_ZS?DNRayMxXxa(qeQ1 zj;+`$oakc3Ee0^lMoX>|PXVyh0riVG;ifZG<+%%}!p4JjXH*blRJ}KJyTAYdrr5lBW|rrc@~K#=YAv~O!Wp#)~DK|&N#6xA7#{Qtt1Nut5mL=H%Pg@HAS za}Hi+{T)o%h9#0>q>?)6M&qFbtO6ytXtziTT(pCYZo(FY3- z^klr0!Fy`n(;)9e-m>aEP(5S(=#jE2z#apEq=GOf2P-O`-~Z(=>2NrzHyzZKcc&A_ zCKp36Ko8N!5xh&S>#7SBFAqu=P(yKpFxSQI=R}k4j3=G7cUAyR0~uRS7!gk_GNOKX ziWT9lGijixD+qQ#jOVEJ6crmyuk&@GEwTwk*3%O$fdYcCzZN7NsB7|$$OTPZah53+ z0)=o?!$fC1#x$u$dcscTD74I(Hkb%dr%g69%EL>s3NnjppAHkHn06IXH6SBMCn+T* zv*6j;SmfGdT{z(&3`qgnyz%vU_>UVYCaT1B+vx9p{ddpiTAcAg07!-jiXCBXd82jR zj2jKB*I@R@@x?_CpB@t0m{%U6j?H-OGzsD;#uKpUXgTLDAj4t7?H^KrJPpC?SkC$+ zy6QyH2V1n(Ww6e%KcaIKKY#wrC8s&zdJ1PyR?q2l)SYErS2`XJy5MnA;uPn_%gB3^ z2gE&OqZC;wN3?hGa5p7%6$h453eAFUTR{tUJgXU2qdX!5$g!<5=T~>6x)hYg9XV}l z?Wr-byNY(3-KsBalO241xaII8w7{yFfMuw{t#IF8s?**-h+S6?M-;lKj0*L| zSMrC`1%>Md2LY$*vMlObr(WZkOXDWhfo_hKF$biHPKSdUZyXLsIaQs;H(NCz%tF-G z=^0#$#bgj=g*AwAnRAYg!$5Z@j{nXQq2-(-nn>-sP^Ce+h{~V}@d^h8E`Qz@@jPrw zakZ?*+N#EH0eHJ!IdK-85U}SU+vduSH;P8$a~A>y*iMC@+Ku@2*I!fco<4r~$QoQR z%EveZqp`JglzB)=dv5!WO@#E~bLCv0mpkWZUa}fGLfmr8SGHo2W+bh6DF8I6B2Kme z%vVuO3|bC0)iASFG?(|?HMOZc5nO>jb4}Wo*o9+x_c)bHE#!)$>2Toj%N{q=d~V%1 zOeUC@0KSqp)u>~Jt|$E_^Vl;lj2M$v79gAG&jaWKlYiM5k-&;1lfhd_HSS1+F-ACqgf;1ubTG*5`38AltyS)I0x0U=r4v3_1UDnJ$&h!R^?i6?+7 z+csD&c}KXNp1?r^AwwsQNbhS?NsJMQe%;g4lX9ecepyxfCX|#&&je-x;=^WAQIl9b z!H*t>lgqL&eK>ZGK#Kbp9Q_kwh5*aJTkdw6pyM_ZTgm2?e$!)g zysXQ*Fa=fC31YC^4IP>cNPLpq1aD^TVBaCEf}d*_LZw)D2OVbaHcb}4s})YcpRbr; zOdMvBg9nNNSKGGH<$R{^e)yh>=+sd@+5UkPEq1-nGUZV-V*>?{WOqc#;$*lFGQaJu zuyY>{X7nPObX%r2YC_pv*+brxMqRSll+|QaVs=F3og>F4>x`lgBYUyiXk%!qZGxql z?`u325qmj8w;Dw8$1Vrti}1+XI(Y+^Rz*fI=v zr;H&X1-T!m(@B3$GlrjVO|`VnWTK0aY>MEFi%?&m!?oZ(T1)I0qPiw6%c2rdtE>dL zjE($wJnkw1O=pq74%mV*Td{LET!;#k5#pH8-XSs?>jWch!6`~9l%*E*}8F0HzT&J$3Kz@6~+32{Me+0~XfcP|qf(+osMALy}U>DM(aBNe3%yly00! zkI+R<1{u=Oop_8wY)A7HTdxo!CydDTfBf`GNhw~Ufq>=@sdN3kgamrT9|bS>K6Fm{ zGr5)+6P-?{UCSBe@Imj5pUtVLW#@%p53ssh!=z)h5WKJf&6GzrVT|x>a3ZuEnDyiP zFm0K}k*cUQv5BEdJs$V*SQuHO*XL87H`;hSowUrh#D-FN$1AnacHSfzlgB{wyzEjy zaatiM(t^ z<1pxM8AG5X(K$U4qkIuks3|lua}QP>h13w?V%r;x7GRLi1lS1Bb4Y{k_Dwc9q>Nf2 z4fm?7b{ocnP8M2gR9zK7Q2Nj!Dne>>I2?6$iv?Yc5eE9?Voolo=t#*eNvaN>@dtyP zgT<&;#{x)hviafVWvTM>xR!NWRA6O!;-wa2*1-fA4gx9svIm%Swysu`b`me?AlmvY z2ULiGk`JnMbH}56eNa9=eDku2PTpBo%Qa?MYpW5SA#K+7{cqpCq2uwSn-Xl;@9s_% z57VT&@li%((=^em`&V>#Vtx2FW}WRVLf*hH44Y@m+?tn}962GHaIXY112V7Sm7S#D zz|M~G94_957jTkhw|!bo3xTh<_D*2nVY5Jsfm9cu=l}x)yz3m#IjvL>imGO`>)m|P z?-hWJv(U>t(-Srz%sZ87<-hPT$AVXhhUsA&HDN{JzB4~RQ0HY2L(+Sv6w~Uo=PxD! z_mC<)UA-t*iDnw$Da3GcHQ|nBd8~q<+#-Zc3|-$W=;dpfGmx zdjNZ=1Z;_Id;8mnSd2StDTNb)Ozs&;iLEApvZ27$vu{vYAAp@4U`l|Sj75o^*DlUx zLi~ndpu^#)d}*{2)evxC>C5PC)xVpUMeT=6sVY=dBihiXhKovPm~ z2i}@`qFe;H2pj{})`%Jg$cHi${$~KFnBC|o#z8l}@4x@y*<1^ZMXVm)a_O-SQySRW zwKa*BZfacFSd&s`<)Mu$v6!!#=E<_XLBt?e283GpRH{t zS_EzncpZ>)beJXvp9OX2mvJC2GMi{8MsD4Nr8m!u;3ZrsOeV!v6>6s9>a8Ort$id{ zjGGQNlVUU{*laBAxfYWE19o7o6q{s(0eR*fgr$0k z_W`%E=d2+=PHG}@AuttK=at-BL4vEJ7NEkd`=3?QPr*IbqV;NNWB|Wq>8_}D9K(yf zilCv7WqR2@bkBR);F4spW29*}&tfGxdO9mqkaMi19>XUfS#}IWE z>?G|b8rP!V^|e^vzeYTgbIwtc3KL|gbz8|hPmjXCw^miGf#~40&9(PN?dBoQfr!a+ zLL^lf`GCzPy_gI@FNa00D^q^ta_hFeAI-O1wy$LGp z3y^2I!3XtzbIws-v#O48nrR%c^!j$}0NY&90c{C`(Fo?(RTeLai|QiRgiv|wDq9R% z3!n{FOd4+2Iw1!S%Jw!W*YJW^l8!B{ym<+2>2F6y_&%uEnk*Qwo-mTLa@ku+Eg2;o zrU@a0F7cHTJ{oVo-HvZK*rTS8iU`ODN{7T5-SU!oW3&O8V?PvUqVQ4~CP|B_#{PK| zt^*DRyd##{Y}c&%C>r1xt!OEQM$fIn#}6M=F$p7;j~_qM$4{R)HrY8xPmhlpGQTbh zJxWrGJ#Av-Ao;vyTBO9Z(!O4nrQIoKU14mwiLn%RYv|!^C_R#5)TjdAD`gk_>qv6m z$;3Oa+eTHAXjH~(c3#^zK|O~D0(mQ{gBXJ<#89pm1#G;I=wO>PO_PF=Rs<0xb~l=h zrJ9H)Z%%O76_r{jui~NKD&Hzemw zm-D$RIz<(SiozOIpz6U!1X2v{4c2Ei_T=-j=qTFyfZ3J~*BDlO}xw$yj`_dQxlUh<}{zWh9&o}S3HMg`Sq&O{Yh6A4$O z>&|sVD~eHjnqM!MT|z5PYVb2!t+X0l#i!vD&DSe!d8Na6pwbF``0#o>~`gy6{}n?7Y4^lSL;EyjIw(c z_L4<(f9wUfCp(vVL2ZFc;ebg?1IBpJ3PgYkL%$4A5W4RaBZXLxM_!+zkRB*alKK5on6)@RKE`qdnrxVw_?z(n^ z!b^>C1zg`aj{37TvMKaMfVnG|{EL>Z-7K*)1hHwNkN4t&iu>y1b1WaAnQ-qw6G z#7HN(SJ=ci0hutm#4`!rQ;U&;+7mRTmp+GUndh0VGES~0i?51LA*wW#^A@uKH5S)r zHwgQp+u%^``OP?V=b+NyJ^+R06by)@YNJR zOa#C_LJwyXQvhb+^RkI}MhP9%$Gr+G&-dA@1A8eda&Mhrb}6ce=N&llgI!;umT1~X z%C3u&&?55K{crCPeh-j@?7g*l;AHHu?Z#?1IyEUQUGW6^>@qJqw^CbeY+{UYF=7%m z5HYJ3r4GP1 zwAtOn0C8nvw1O6bq>DWN?Pi-`=fyLgO!o{TcuDt6X&r4S>X&u3laIb>tN zW0E^$9u3N(f>Tlk+v{P#a8w#1PHeo;%+zzDSFSr=vyI-_mEahqmBM2i?>ZOVKP-4N-0`jYXDA;2%n}wB>?#QHo;|C=q&Hg$B!TA!^aO4zxwJc za?a7i=Leb&2U?beUcGunKl|nzdj0zKZqx*wHfWpx$Z%@e$RRb(Go`t8RXk~#YPN}&A51x|oJt`lt|VS;r8{4s^biB|ddd-ChaklGI_GJg zLEMSTwFml)>JEVf8u)0Of0=;P)mqL(aX~tpQc@F#H?Lnmn`^;=W!pl0j-{fag0d_( zSc#!xdUa)j9DY7 z^QNQ?J2FHGZ|$;izhTC3JRUUGiU~xHh$^kC$RUmEj|C7nLk8N-cu~5_XV{!ISU5eG zYr(z2C>J>Zwj$Lzx9B540>c`%jLXd!pzt$`#;<{2#CX%%URkvr#>Ws`15_IT zbzuU7O>PxFyaLojy7@=A#>(Vn6MQOG$zE1tcv-;PwkZ#nPvg!6i>~j0*d49T7p96N zt|AC}$F3DTr+_xIsGXEGz6Gl5W&#kI`~b3l5tmMHdTY#$_2l(|nrESorf;++bj-FR z_SlgYO5tG`M1<16<~%Pw1qC_phA5%_+StUzhANqRWCax9?rZXmchs7rCSxT_Aldob zg`oNFc2s!_g4)?V=Dr&JoYHRY9%EEQw@(O|g=ecU+jFY8rx9H)7mYFY-qUKZoAden zY_0{&M&KWo>w%X!#zZWa2sD^VZnw74E{Sy+NMj&w*@~58qe)U!d)w9;kB)=jJs|{& zKGJX)^fT}8@AvOk=5=yVYqO@IqPU-@<5A5cQ>=749_es6P;}1G@pxp@2w6yoO+K|8 zL{$I)AOJ~3K~$YiIy$oaT<;xu;eK1rwtAl5obXmr)M>26Aor3dT^hAo#B00m6g?qe z%vE+|0y}rK03mKPsDKtVznu!)YKxnsvtaYHyEz0bme6Bafmp280OIlKNn?7nAFX}C zT0xG@aN7YrIy!SZGea+EbWt60)mbf+aO7yWxg>F=aj^T6lp1VE>rFU?jh3>{1=v9d zfl6!SjWKA?RXaSJYf-hC(SYxiW+L&$I<p;Y>M=hhZzZ3-+mJek#nY}rzbrW@!yy88G)Q`2d>$`MHN%X z2V@nK)GyRyz?YVQ*h}LxzS?Qo&cK!a4Yz9?l zzO@u;u99=S$)U0+rBD$Q&OV0h{${~=1Ms52bMCRy057eIYL8X)F_NWX+BIW0D$9_( zUa!yQS|B>YOkKqzH#TV1NMvzZX(UvuR5KL2iQKd$; z^o+I3^`idvwrWF2g`HfWQW~UO2f1xD@#NmKhhbFf9UCP}MAvzyd7fq7$0h)_;ZFs%06(J9*n)1@udJXWi{WL~z_ z&5Y}Zt(3L7vUJE^)zFSuRBKc3d1%PFlIgl@EbM}XK~AH3lXH~KNC@|a^XeP~0mzJB)mo)In``N^ z`^HQwmtB%TIv23er#H0@3>jd>QW zvNgEi1)o%3u&tYdURl6aaO$^hqjobn(W=h`0-`NyHWOYpzhC~|?>(DqDaIWa*HLTb z$Sl)__9~=LlA38N=!td)sA?c;JOzQ1yCKq7N!YK&;Y^R z3GNykg1fuByF+k-ySuwX@Zj$5?jGDOJK0ye^+Y*=y=Tp z_P!F|`lnS+n1m2Qff(OOZmxelcBw{BX>uIrcCgSPog$0+Fn%CtYo?7}FK9qRA7c1> z0HHjSF|F%TXNwEEi6r+nczdNof>N*ysg!rTi)G!gH<~1^tWG4Axc`^pCtDs$EgnLf zs+r6ho=Afq@?}Z&aSW@$5GrY6l;J*K&tvE)^RyelX||QM3}+4;6~1E1zK|K=djgoKU`?p2uoHgTP~LK(vJygO*&`Qj2^EvCjp+mkPWvJo4uyCtHlg?3s1ePoTCzi z{fSrHdKOq>#g3ySE#DL9hUh$?aibsBuW#A^;P~^r{XI<~FNWYR&Tp6%ix6E-KqrO; zg&c;(zc1#mPVTiQx+uvq_r6&-8E#lq?n%J-J$N{?dm*|D`@bGH*Xi-CYe;WmUykr6 zy0MS;gC&jgvtL=Gf0Dn~J*1fka+x=Cqf>o8B!Ai?Oz32nnd49GT>NPUEg44$7LTx+ zk|_3hXQ*K*R(!9cgz0^+eyIbR|L(l$_F1}*Q?V>*a*4&`s-Kly{*8=z;dU-v1G*>7lg-?6n+sbb@IV`$#z8ccf&G+~tgJi}1J)+|zw_=PWhDLy?pMra^1-8&NifgJJlo z2%5a&)P*nhu+Yu4!)}{V3bq5!?DW_sTs-Zp(9QiTY$4+GqZZ$mY~C>{zJ-OEfkaA)> z+3_j(W&$7YcJ_W8w5>f69i>YC{^be#{TK6}(t_N{)El)kbW$E?j_>F{k`>Lde&CRc zUw>FVXpXFRLlbfu_qw-#v@|S*Fw`%h--E7(bt{S#aY6_ubRl3qhU%9Da{c{y>z4wo zWm^+d&YOVbr}&_`+5Df+z%j@30pQ(i{O64UN4f7_7oMG6#xm|VhaSEo zx?cY`y_T8P9MJvG*^+b&D^~wW{P*WgA9RENosU&cg#Y<^^YX9xO^Fex~ zTfg+5gplO#_y{*Y}`l*%{-C>%oyTp&E;F2_!dxbll}# zaiJK{=c>vOR-46|F`F|`Wi=Z=nPA3HwKlJ&c1hRLI~p z89aECD^TFFSGPdQ_X+}KM~6bhI6^G}DybQRbl~woMaDHN!H}}uQyc2R)CMSpr)+ygd1^p^1_uOADOZ23YMUmx#;S1g;7KA&zRKyP`yNtej$qiXQ{W zz<>zoqFC_z4MNbo|LFubfqn5Mkcn|klD2ZL!Sh6NNen7;l*G~VqWPR7_B4pf-b|L= zda~7cqtqXLZG~OeSXn#J+I;yfFfu56tSR3f_cT0Rg7FX68eM&R~d>8HAj47;v83oMHj zRULRje&2m@3eZ*#1#8W{w^4lI#n+&Hyj*rA#yh!|+lG!2Yb(S?sR>ut_mK8g#k%6#&NTi@6? znQHpQ1=7igc3N_=%M5>nxDuUAOFkH^woaj()@lbVbjy-U`87?Yf(3PEp5Nx%xie$E zSCM)ols+PQ+X7UA+gL+CJx)xub2A;W^8^^8Kq(jT%T_iT7{5Zwj5QQuN56R?#<8_d z*N=be9g@yGh!O2vbjDx^^CsQpask5W$lUL7*9<@e*o#b0Y1$%?b`&@mULP{zzeLbS zR7!X&qfM}289eN4rHg{65>qeDg!bBC1|U}S){9WKw`%6cvx#?*(-Y&2ayP9$GqH11 z;n0CWZKGr;vR$nH$FZFvR2}U|J@P`_>{Vos^P+O}Jfa2HOhV$rXvtJ3dghm*%?`?6 z4*%XQMhrLz$1PTU z;A=^IkFlyNp$II93Nc`1n$!JibqcTkr4-9mS-H`S=nisCahL*4D0ZHxMfjNR0waKu z>U1qu9Tu`A^syzEMr@0OQF-L+HOt&$~nB%TRj0S*6BV3!u2!EalH6Ed-e7%h#? z4PP{Q8%^HYfid^jpD^70atADIsuV=A?_(ad#aF77hr~_HB3*s9Xp*3-O-fD~ zIE|tsM|(cLrfAs1u_E{)gYir+d~Ry1WmQyin$jY`nRL0myNJ%EpEs}nw@TRcDsc zFkQ3~f*>%BPo4((wuSZ;&t07k&Fjr98schMTOZH#dOQ#+X64lvKa*W99tW}1!0?eB z?O1z9_NTdU$If|g;S8shvW)`jaU}j4e*IR@yPx$lZ~3bO7p`&{G&QBHBxk{2Lj=^0 zIJbF)>wG3Ssv;hEs2v`nlqq;A8r%m1)}OJ>!3}89OM0EY>`MV3&4*~Nx14y$-`ML6 zh}9prrIw@SqXQgZR~~y`K0znoS*L zmQ7cw{)$S+8C4U6{G_kUG!H?J(oP5Y?0ShSr0f=%?Sju5I8pA|_LMKrTwOikEk=5o zQ<+Ehw%Q8_nO7p)p3M?@8aZrCmd(5<$|_{1BA$IOH+^-AP{KJg`yTZoS#e zKpT`Nu=YuQvw|L*+ebdKz0>}v!S1Q`uZQb;DS>HfOGcx@Sl?7DuKQ*Hk36@B!!3Tu z&%wC3V>&y{Ra87VErl_YYhvq_3a(o)n*(x9f@WYRIdvHBMPG3}|I{3mF`D_w8<)j=QY4ri~_Fbd5tUM#&`(?Rzc|Ka3}B<)~?8 z$B_$S<|PX}GF}lAHY>-&YHdcx*Fu?8>BchpX-MzuNjp2zD$kmomPHN>Kh;>|7<;-qQ{2b zIuna(qt4Kzclq#n(y{b*Z_YXOTzt$y|xt-G-f?R6}hwttG7Jc+8A+Rrc#caWINGC*Iwi zQAzrwB)E{xr(_-Il;myQf=DLIQ(X9z8Zev6ZwMf3`(_1jIUK5#H&FySF(ZvpcT15y z)=PUZKuC~F3K94q_=!lYNj*lqciLKmE5n%JhQmqf<6Pq#ca%I7nV2AOc6jj zp_Wc3*l=Uo7X(S1oGwICa#dBqQ2VJ7V^vJv3upr_p_r4Kw-j$tTHWu)i_DD&&S!9@1BC&M^4A z8;-*BcRqnzxX6fmHftppr;fubQQKLWc(H3V{hsElLN5fMAKB+Nh(ed{!i2?@mEbzQ z9sWHWuosC~SkRVT9L{>Qk*@V{6`15OKU)_eT0gnlc{@tmFv+85{(0Q2CmV1z@4Hz} zbK6~*%nW9r1Zz?$U*o%d1vKgT-EPAkVWV+idv!G>d^yeEelwU9x7K(`BpY1*SZtE1 za){2Zb8WU2#~3>;j>!`9%`gaKq8F0J;d*&{zNI%sfNUNQEoUiZDl=OG_`U;J=8+T< zqLMp`zuMZt_*57;W+uQ*uJjl%Y01!;Z=^;o*bmWbmqtQeqy?mF)hnLi_ul@PA2jIMYT>{U+ z*svi|P2Ez#;U&L@^mokLz_PqPLNYkU80rBgS3hJ$0}-0(l4lC2z-? z9v6nn!0{j$Zh+uEUVb*~$tmVmXWcc@JP@m^^{+%0)PRHGiF5o!ZrKW4T!Fo@PuQ-a zxL~}ikw~j-*6n4O&w7f9YL%xFKU4`?6)n59ZfU28NcYnKgUHeplk%v?7W*$v)Zx&m zJ%Kq+MtO9jA0PxpA701EYwxUk3dB94BE~sYVf#cUWQk)`{=-Hs9x}@)Ny$VOuf9Ci zz{CkO1vX`&tB$`>S=YmMQC@$i&&ezSy9l2X!b~iG=nQj&kb?;2x|C zcDBz+9NtzuL`HUCwjv8k2&l04DZ1zBi=-N^A8c|_J`4*LgUwowiA1d1o>3?)Y8+Kd z7u^Rypg^^zjMbY5&?N@9R4p5%Cq~%g&i_mi{Si)apvrPDUAa^;m6JWuWX{FF>wXpP zh{0pe6*g!veV_OK{jw!hcJg+7N>$eTtjo?W^}20k|n0?6F36(OuO3^Rfxd9FwR2!AJ0=NsH+=d z5&3JAJZ(H17KFjLLg1wyj>;qQ-=)Y2A>gHh8mCLoe%{Kw$tExbEhUZ!3`~E%QN-)N zCZJ*)B>pOZ7=|@lQHnxtmTocx&-7Q=DjMge_jh-9NjiLzDjOcjk+fS$LhkL)0C;81 z8G@R5>FD1o;?xQ>QIa$p815RLr^Sznin)sE0kK#;U_rw3vXKgyC8L~Dq=cEO-__>_ z#wni_i<;%si7SCZOUkAjSrNr{{Q*2;A}wo^VbUR6#sQcv4BIvI@#%|nj$qsf8n zk}*0_5xofaLf(%kkISr$Bu`~fP9Od|A743c_-7K!qI@){ADcfcv5SZ^)RwQqrjU`j zGop6Q^BH_$l}9B>XL+E;71A#l<$r}AniQwgBt=Pejx}3~)T512J6gXZ+(IwT!2Fs~ zqK+yxp|<<(k!E;IlH%pSix-ZBCzaSD9onbxRTVfRoFmg_B2mhW35mL_Gc}YUJ>Hi$ zl!4Y;QJ&QIuxW-hTG?_T?wofDukcB_8Y<&61ta6}K4!!-GL;X$0~EMl7eg1J5}6ei ziLF?R2yx|(77KiTh*$BzNwH3IRKwh#jg&{>y;QP5une9e5hhPhZ_mQMo6^lkAf~}8 zTE07T}2Xi9{wJ`=R;USfiYc(`ib-6|Sf5hHVlA}lLxPlz%?|ATIz8!NupFOa}wav9f| z6C}w6)?^75Z%v$Jqjki3O0KFj=NGvWwD;@x$A40WC|&mOhHLn+SwqA=suyS`F{rP+ zW}3}W9lTz!#bIH8)63?^{WB)GIjVx1e#~Weqjz#_dZh~y;XtSNM;0{=I!x~#m@lL- ziOIIF)H~|Z%gMc6ibEwC7H;DYXmM@NJ%@*dZQ@Q>n5nhkZ?!2s;kBYrLDAC;Gi^hz ztq^VQHL0$^YVt?n;coBj6eX4(3avFOR?+HvxR(x+2aVy2%;ZZiRN5r&3W&>CIdJ79 zMHSOGGOty;=;a$dcHkG>T%naU8~)w;wan&(7n46wbZ2erQA+iEesz0&txwf5?m1^X zX|cP-RY!rn?osH4v`4k5qiv#dq@k5zsGv(s3hbw-vX6rAPK-%b(ec335jFoonf_}| z60T2WIc|=C`(0YR@crd$w@tqN=M70ApT%GB+TZ>;KIV-;wOb0eEv3U zqVsQ=+QOd&O;OcWD?lttQGc=>v9XpQ80THta!PuLVt}C_zTVh$aaJpHFN+a=7`idzQ%m8j>Z?6%K&zS|)7SV)eF$&k0uIU_JRkscuh=xRAU&VByB7YjzRWA!)W4^sQlfzWdv_W z$=5!bG&CL;UK@7|=9=K!lgrlh*NCZ2QM0Wef(JHz1ib8#CaPyiMCrh;u-`}S&^TGf ze8^|_s-G{Q?CO2me3PsFHaQ=rmQLDc0!Lam(kYxQ&sM*-*J>$X3T)c>KCrwzWY`@~ zta1FM=a#kXk-A&E>MHoS=YOYs0idSG2RSKzx}fKj=PAOs9>VFI_m!NP9ed?^O>bcC zkR1R-XhKFt{>8eAdN1{t-)Bdsi1K(Mrv;ZCAKU3&M?B+srKQ8eJLWQs<6xCfrtf_J za4IXDb8|-0Z{O;K@HdiOS8>|bj4D|RzmXauAYFhC?=-;!E$6hp6M8>4Tv!C?Upx+oy10TN{=b)%IRhT{|1@GeQGPISg)> zjcq3=t2%DFU4?h}TS!-l9(CS2vTpv)Zi)I{87F#!!8A!HdPQaH2GU68QB{FQe%5y> z$~cjE+N@eGIU4fP+26E2d=EaSz(0@vf4%@yD?Rf{S;iebf8?YbWTG zri~}deS9B61v}JXUqML}ncnzF`6OJj+H37llX`7)j*A>Y-K!)E&5GP{W{zwh?${Hb zOD1Hd!vZzCEk>j&o)Mw(Bb1aX@_pL?S<8Vv}mFgvKr?}Gm?xu^q2`6PbKN}dW}X34b%`p?WTPsb(bS1Z(a!K z&Pwa?tWyl}i5~!$q!z-nOtf0KdSseyqo-xNmmLf=86vKAI=}*lN_#cSYXtn>%8KOQ z|30nn@Uy>@hX??DHT`u?%;^pcyLs$5Kl9X231&wW^RGi^*x3l*D;psy1*y8pV8E*x zJ{O=Esc&OvxbtdHnt8gr6A_XEUZlTT!N!F43>2*@0BqI}L8y_Kjdeim@tR$CkzMzD za#&dP5={ztp8yjgcc^qY)lz;?tlHzFWjI9sk6MN{#C#`NLUX1ZoA9@@-u<6+c5U*1 zx{P+CP*5{Tx9|=WEp%9*mPB$UAn{{y%TsTv2s!Hh8WiKfrLxE*xUbPgj)zQco^siR z5BKT7ImYQDThq^qvzltFfo-|t)avGM zN|1b=#o?H-DJd2@YE0l0njp_BbG(vl3PWjRKox{u*8c*F*sMeHn|NsnR$RrlFyZ%A zz-HF1m@tm3G4|V=CQXwf!0cFZq81ta2OFtMnfAX>J5_WOi=+}CEZ;}r?9 z5FlnDMM3~F;IF)gvIlb8__ox;nYY;Aqn#?!9+y_LZ8$ zJ183No&VGWp)8jhWcgSBRUuKeYG&t8Z&Gs-_6hL+XzIbrY3UEKfRgF_@hJL_{j_q8SRK z2bry!`ut*+rAQqm$DPdcmekJ4GL4Bs$oFv^-}3a-Nco|@V(+4D(+EqlN++o5Nn~qv zh6md=p-L>AOm|@)-QC_jWJAxn01hIi`j`6doj^YK^j_yg45U0~Ps9C9h^=G>|4c1g)) zmR_T#a|cwI)Ypj>R6Fs`O4HiLdq3pp&ii=h|1f)5 z>wedId2ZR7o$3N%$L%fNFyhZ=QE4V;K*i*)y+56xU6~%S3}Br&@>TegK{mg_W!qt8 zexG00J+9UBM@@Y#60cIGJG0v`_*DHfYkp4IGjon&AEKX~=f)l4SaIGz7oKp?VgGM4 zI+9Loj!p1KbZVl$FjfULd#oaL#Y*d!8?DbNvMS>6s-6465+?X6mDs`eZXfM>AL(7M zmpp*jKmAvlRB=h@57q7}nkua$k(SkYkv`OrOs7V+&3++R<&-w3X;HQ~NVDTE8_@-y z2Tyzl++fLQxs*$dCBdTR2Fm8TsbvA1W#h;=)s^8Y2g>|tsS*6h@~G&Ny{k8z%`P9B z2c=d*0mtu?>S0}K=a3CFT4IL(d8#@v$%*P`M z^|Xlhrw%Gcu0kE%EiI)d*^j8^*|{GM=^76zlN#YX7h(n4R(V4|S|V(ki#l-#QLgGY z^v10`F0%@5SZ6Crjf)dGFS28euX;j51h7cPmtum@pu9Wii%rc zm12+(2AkOxmZ+?y=T=v_3fm2iQWy1)RK&wi<51(bN{%~BruA@H;t0OCcZNhb9{h|} zTbZsh7_pgGPR>>Ew^NVtE{!8#^>=sI`7DalsH=|zmL`KlY&H_*%oRg>7yw6x$HrJ4 zUSE(K>5pFB?%1f~Y)zN6SYLnCDwtSzU1kjC?M+^LTE%p~!i3aabZZ z;3a-UN;ICl`Ve^*zK#X4jGn8%l%rZwuV4?$u)^T&O`AC>{>0wxN6B8?;Lo9$t1UlO zju;g@ql!DZU$7b0OguufUQ~|)H03r0GK^?6zGci}4x4k_Q$(KTh2$p4LHHM*VoZdd<$lf-@KZ#Am2&;lS8Je3MCTxYcQfN06gEI<4We@eBJpK;#i~1(RmiRpujPVe`#o~ zYBi@e8G+XZY;*DY6JQa4x2rg+mKRrjBT8AKB_P5hiI{u#keEc%;D`fh2F zLP)pj{_JY>Y{$Q7$UHCadZ74dH#Z&BbehhOYvCg374 zQ78}F_CBM9@!3j}^7eIL@zHzYJ&)r&<>PA0s&C`X4RI92=>kuE<$`j12J@m7;bg^2 zp@{SJKWe@xka>E0E5BZ_UPt&pk@z4n#ofvdhRnns{HE&-`86^U9ZWGuHpw%pWy%ta zHLOx1TQgSwHd(WiQ{f2qOlwvRD(?Hq=LhOAatAk({}~+y2wk$NdKZg759eERC`bac zWsi+{GT-c)Zz&=*KUon|IXB}$g2onuc3C6fs0~WLzIExp!!uqmeC+uZe%x$fFJY70@t6AWYrJ}tPB@g=rdy}W>RxBJaeh#|4-dl0_R?@k9=QU3l zKz|ud{9bPP)z~mHxG^k?ByflO$!!(X@i7bwy>Pu@<-m;Iqng0C0$enj6x%wX?bs{) zs;!=o{cbStjy^88-amA?YIhkx-RGSijV3A{3@=(vZ0%b|ncvD~@4qYSp{vLX%)n!z z$>h&a#h*n?h(;=)CAgs_tn=%}<2vb8J80jZD6xv&4Td3RQGJFLSGxlbz)=3Q@OYHD zan-r{3`*U4tZL;j7a2>*V5(%o16L_|Sht#Zo~U_dqe?2s6y{uP(|q z-d}Yj)7RJjiQ2Qz+@kg+zf_*;5Ax@03%o;3J%1BtX|&Kmh}F0k?r;+0JK|B79b@bO zMYttxC&W$9gQQe8KKgH1dZ524HesI;gT2=%BYxOE<8EW!q!R@7KlEKB?e0jiEqPN-yXr{vUX0eWDZ-BiEHlFkMCLHZO3bihfIAm+dIE^ z49}192N84coC6+Y5pz6Qj~V|X7ucT#H65slTslo9bWzh6!O)-gAZv|-91FyGo@Wy? zB;L;OJuHdLT)Elv3s)@!b>ppTlOFJ53Gk_=+0UQ;uDz|#+h=|~Q*9^EPJ*>&lRzy{ zO#ehp`$C0Z&(~_s86Buw6AIvlcFRh#dj}D5a}#?Lod%&Pe{Q=Q-DF z(;ubkekK6B<^Y&@yIjd8*r2s7&;?3)ICbDZ^zikMD?fhJ{Xx%h_~wG@$a`A6)@R;1 zGOK1yW;jlVUC7m}XlLJNXa!^WG)+v~FDT%+Nd$Icz% z5(Ih#c+yB6FAFtd+c>F}sW8#8T(e{$iqJ`%SP0V>&LRHjmD^|`dD2MM;!I0#Mjs z0-d^qqt3p`Z2QXVdbWpuRxb>lg}j24oK>?AeD=7j)xUGuZ#!_LpYeA^4Gs=6^07xt z7D$!w&jF8x!H_3>QL*p#n*8fFU83A zJs4o)%7`cgsp`(D@4c*AxZ($PFe_O*s5o89~A z>Vu&AY&RdCp+C(mJDgVLCN9PoU2BpPLXPhqeR8b}|0v6ipq_PLZi+W>?dmr~Nw(+d z^hEP(@R7q9T?-hP?`>1fKsjI%a6Ywne=tricVNrCUx#vjbllpXKRNI|t~+r)W;)qF zG~4*^Z4>gpD7=lp@Q0B}T=Vlk)a6xPbb}W30C4Jh1I#~oBml%cNYRUCE6Fmozfi8B zQQLXmXs>hVgZ^C|fvM~M#Y(kiaLebZ4?sfB>2B-gfX2ZMuB9Su3*k!TeTfdU6JA!UF!|Y-7uki&kb9cD%ChxT7pdRi1zZx5UTuT zJ&~X+9B#mENl+q@aI>ZQDp;wQ|d3 z77NT(*Xg&$ktIz$C2h=3UF0IeFAnkIq$2zNrI7NZNG!CM9I(QTJT^d&@7NmY+a1GI zk_mpmnaW~@1QcpzIGhEim_sBL0#L0G3tKb?0A3Qk=67DV;cyXZ zC`?P(uMht!@4Y9!o%{QlQ=)G2P9U)P#>vDM4D25fXtmfTbsNp(i>kNS;&(mV*BG58 z)7dBXLh!h5vvogMiN`}u@!m$RTmK^$>jEgxPl(&iJePlfS`sACX#4JI&40z~eX5kx zi>v$LY0Yy+>wRyf*C&dpo9gx!A<8Ma!vLU&e^-Zw68b>CK3@HhZaBVL_oUH%1unJZ zaxq%Wt+b4|tJ%}^c;SrAnxFf zqbtb=Imz;C`4$I4x^#g+d3q(6P0$^lf|7x`h4l>QbFx#JSEuEHBp#fBfEl@-u@DF;2rYY!o9(S{D?5N?(O;|U32(+q9((X6{EE5_0LRhL(9GF!N*62>J==HR z;#ViL63P25ehFZ2e1|A!Bp)>QDf`69o8Ew;AuZy0#IqR=L%9AE0tPu>wW7xXkN0hu z^dA#^f2vWFPUE9v#N*m$t1w`m*OEO$z1#PDqT=+q3f1vwz#q4H3L2kDNPzKMKv&B(R7n_;dZ>V)! zcJk{Tmu6crXFdk1k`vrff-bDu!m_>I z&&IQ=>bQS7IW}9VOj(E%3yV&a3B)*6!;h6q7((H~@r69}$^mia?0&|!MFL}lmLB%A zed#oEBI=0=#;jC>Gi>juvgn$;??#&oAY2dhU*x>%xUkp3Y%rbZt)Op(q*1FRniZDy zF=1OGlO?Ny^4G1QL4*yNadZmNqvA*{E-98L7G1r$aY(4I(H7kcGZwE`Bc*KZheQXD z5>o{4B*RER!np3oKs7eMzPoE=mFevP>+~fYOJNxL2aJcG%TD(W}=13kF404C5>AM#_*df9|bChAXa*$=DV`|(o$3i?-*)nYCR zr2E^=ki&r1COFtr3WFc^y{As^{L|BNESN-kF%~XvU$suVql#uaeoR!<&T-w|@bOgQ zFLDjxD%CMBG6gc2@(tUgPjP>~|Fg`Z@p-O`IXdBho`jXGf{%iN!hQz|Q~%)CS4g4H zMKQ4!1xk-ETOgZC-A)`hsEE$jN28J1B1ehq^!+U<^2RlrfA#EX1Gs`k`mUAU2RHAj z{Zuv^Jh1COSR93`P_Y<7w2`9i&D3>&VYk=fch+*82?oWF0_U)&9z-k*%Px#i8j}!5 z>X44D?rNG<&_7GJ4b9TtQLg}zVD8SESy&vZ`VHs6q(*Mtf&M%y$cDmsl6DLwn7FMo zdxneM&rw2rsJ=9?)w+4^e75?&JS}N3uOPO7dJ5#^g!E%b>_xTaE##cAM{vj z*;{Mb{3WO7gqTdH6#_rWuV={=>U`d+yfb4^vsI!cOe$fN?!BCk+p15Qf+)BRVNcey z*A~){Fek^4|G42sNZ)ZSRH@UBq1SrJ4g6I_QJ=lS3L<-f!)XZNbQ)7#cb}6{uQP0A zJldt|ElSZ2u-o#a0oz_k(X)L!IMG0ah8RITH&wOX`QXZEJM7 ztgHwQBjhRDUR$pOwjC!FV1L?c+9Yjd4mh7~CbQJrtjj7bdOAGZ?T3)G?Lp7WjSgsh zJ`-%>bLf6|KautKLJ*(s%=iLXWp1)7Y6ediDsGwpmc7+dPaW0z=4AEH)jm zLc%H~P#;&^>-Fz8Bn+PA_?`qO3W`g7pM-h;9v7shrv6!^)2h|)0UyudK=#4dUBb~p z6||?d%1~fas}>cJ31QE_@)$H6#&9TPHJLA+am6^`=P#Fy&v-In9>h)h-2A>^ec_bh z)4yT3hO+{a<)sHYMA$x*V4CZB_-Gm{W02Mm>sRw!5oE^ZQt7<#m3<#6vxwg~s>C&3-XpnMr zQ7`{ZACf~j*FVgR+^0Ig9KuHp+NNiaBD1Oj+>mxSkw%joH#JJ)vfgweU%b*Xs$|e2 zQxYaoiDk#wS6pchGOFh;)lGxa&PPa|^E+qRT)4B;I-skIbeP0MY+WWwTfdBy5fi0- zXR0%=q7}9+z{4i$uf6AtcGy2w;C=2#GiS~C_W%w6lAS~X6|jLFivrLnW%ZXDrh0I3 zaT5@A=u?VlhM{}})c@+%SmnbORYgwUNPt#;XZ|*f59%z6 zG`|Q7-1>fg=8Va-_FJ7uwz`g+MVJfuv1rJT+!gzTy>!|{3|GyFz{JK9$Ys29FS*p{ zbR=7;*(AAc^1EmB?~z3^k_l28XQ^dbE83XX9|y24$=HpJ_=YQ5=x0< zUk%2nh6MAj|8j8u=*~G2D+ylVPbqGeZ6Uokix1+Om9;XKM#>w6+&Z>M7o_gk7i$@k z6jgk_F4b*P+Rt$=aBAcEH($HYrK)1Uh@irVKvl-dS~6#~Kb|J;_-%&#^3L}w82nI1 zHeZom>2uYWHSWKS^si!sio7^!1-GT+o4?bNcFd*9tr}bRI9o4st~{yBM2d3gZ@5`E;Rz}&d5OKuaqk_(>{zo z&+6);_r`8xA2r|069O0)i@%$pNh zBT)tkjcUqyN&-|HR^%U~6Rf+sQ_h1DMDgias&rSwpTu{u6cQsIEx^hW_BYkhc|{^q zDKCduJUdm5uyPooN09qd^<`E?0U1%Ik5Kvy zk&i_>W6mymB|z;KmWA~Nol8c^7^49R47CpCmh9RoYAUU$0%3}j0O$Edwo38E}m7a+w3qq^H+m;zOdov0U^Oz#3H=0 za*DvexBA2xIdqTz&lf-lmNCFBvltSiQYGOt#hF8UwGhhh)~?J^I2>%I#^3ED>8`S^ zw1S}pyj!~tczuZAJC3(K+bhLYD81*Unw=q@Rnb1Lj|Nv=KEND_oJHU3fy?buyHcY8 zdMufK;OQy#fPN25BzecSVpy67+9HWDbKY^VF3!Q}a1!5A%u$043t^njaHl2hmJt0j zcu%G3w^TMOj8RsZuzV2^Z-fowcyiMTWUNR_;ngz+@>|k|b#uqv`cv);X3ui$cQX+_Z&~%$?^S4 z;eh%i>;^2U@NA{^69ftEqWPdbV&>-W385y{EczlceD%B)RkY?p_@s z7LP?Lil|Hj1xV`^=Q;|$j~VBDx~J4u{OvN_wW5HeIK+Bj7{GcvHRwPKa^htln?)Ef zG!Sq0tkfL>*3-VsH2l@Z)S2RV3)XfGuU#E?l~fwf;NQ}(G%K#NdbB-XZIV(<%z25> zQSl8}8CCVyQcuHXAp55u?a6O%;hpqL_^Y-m)1cgmgtV7os33)OaEXGMI zy|X2Aj9@o|j;2gT-*qYk9{JSY$l3NDB9WH49{*`~Noosv%POY6b;zXwzyVhpEp}M$ zoS0Bvj5yWy^ytp>JHm^P_ijQ?KcTkIefOCr*|d_+JFr^i@OA^kNA#1os93j1kx6;i zR4JQ=-wOh3Y^*BCmw$|zRg(^n#}Tsn$N->}4;apvqjQR#juAVilAcO%rBOBDd8zj_ z%QOBxBnVfcGT~~AC)3Q+r(ooBIcD?MZIMb#_=2J$iR~c%rFn0DkSQ0Uibc6XrBb64 z8kog%I_|?l;@T~UM+eKu(aHzc+j1oHV+aT)6Bp3-HqCmEnnd+|#;emF{qdvBIkmNV zAvt)i6omxBSmZ9wCQ+=T;k^4t>!9y1rh!>;;zJZaJrL_sqi9up|8@=6_r%7y^dyq_ zGz;V51-(5gR0bQ>T9>3==>oW=#}J@okBAHU#$_@S$9>%sl&j)olZ#V%xWbi8C&c25 zz(xc`9U@s}a`ES;chT7kGn7rc3yF_j`3@(u0?)eMOx}Q%7m73;&Qt;f``ZbQz0sB~ zm(n+?l(F7eTtdQ+qDt}z5};Md`Mk^tnQ{Y5g|!CnFL_N=Qkz;R9wb$n@QKWayppJi z=BM+72qFa1^1kn&X^*fI9_I`hGKl~sS+0Rnup(2RoY%J_M2>6<31IJH=98(Pi!H{j z$glUc23ld%G#qVh5Akc!FV^WLB1MXD)KR#t#OF;s_-QNT%zM#*1zqbrf(i_YM!=h^ zkmdR6fR)Z2g5#WvlX|})SWUw;a+Dg}8yQ5Uqo6$HFqCSRoZh%^ZSPm!#3gda68YIF z31+CslV?KoNdzs!H`-+v!FOGh^BA5y;pBHbi3WkegP49)^ZL>Mq3N8%Dto^+o+o>< zZQHhMvTfV8ZP$F8$+m4wwrjFE_1j(V_5R!GoZ9>B{XA>k_vc=FJeFgRDLF@al9ui^ z2#?8GS(+Z`tM2548hsb)Q>(mD2Y3seR7zF{SrrB2R4PpW+Id4&TJI~>vfV9o%dut3 zfvT{L)x(RkAb}X+;IOhGCJ>01sq{sEr*%BJHu_Sv ztg?-ltMym}8V^&k-Wbba4^SLgmRUGBC97Ftz{^z<_s%SCo=G;G zue}Z@E?kRgiYSFE{HonCMx2#KX7cC|J=!KE_S|v>FVQSbHBUx~3IcSMBr99I4<(LX zypME2Voie^kqs2bGdC4lW7!mhNB$7G?)V4v2p$K4i53yI`uJRW6u#g$Ak|T=7G67e zPFGA@esBXkZ%A;!L?(aTy1(o0o+OIIQ#g=FzK9P=D>*YVFSFPDAe3mT^|XQ-5bF_W z)kmjNhnZ;(>#=cF{z2sx302U}Xk`_mJ$JkM4^RbPd7V(gWLKp>A2>lBshIaKz$~Fy z9A>Hi4y&tU&TY5;?#}m2#9_YyUB#Zi-UPQk!;dMr^O9Ce4oFkTtri>D#J8TDf(bH5{wr?GdG_>fe4G;HxQYU9@ebE|#2 z@3<68eyY{MXveX<-DBAGS>`wdRWWYoZR<0_;R}535KegFqZ}IcpzG1AY*n!{So;SB zp10Dbr9U0AU9n-qNZRw_D|)Eb&bUN_b+K58ENK;m8#zSqjCveWedvGSP0NvWAWNBV z8M^9`(+C6i#cn^OC3_Cbv{lQxW}7j&z}>3Nb^CHRMw&C^cI&QpZk<;{BhJXkF#HaU zg2G>I-|Y~|56^EJ%A1H7oSZ7X5x9imYwLk>db5e^`vt`kKpkHkPm^lMaQ@flECWKbNMkLAEwE~11Tz1&{UpE)cL;9;9ITB- z&GZwk9y&;^@r$#i$|k)AjboY!P;}HR&-5Ac1z4P!%WC#R1>g7zlCRgv+4RR~9`&cf zIKB!3>z9LWfS*5geHAMajjS>{cF3F@On@F)mjor3Hfed2r6s(G3B+DpLR{3SScMv@ z0_}uE85=9zY;0atKwCG^L;sgPL8U=Mg$|7R-~dhw^L8roRh=!I^NESljEq z3mTt#&;{mDl<`#$%^w^PL{D8mGaVHf0J*I^PGUJRId@Cn#Cr?@U-=ofJN!v}PhT#F{m)dO}9auAPIqmuZ z0T+3Mx!Ha-7_qI}UeJLTgFzE|`z~CJQges6D8GM97mg6!s1U^*90YJWZYC4_L*;Qf zv1=S>(EbG*SCC4(#erL^I>s_ zH8zByD8%NQn)dYH29jV0SI_86ELJ)y8FEdg?qEkpWu>+uo z-cxy(i_z^sI!ZRF(ImasVe@0<-9m>jB})kVOO5>(7|5V|%mkTSQWnRg%4njVX@y|Q zeZSz2zAK8ULqmAz4C!*58*E$$KQdRGIF56~w@?2)2F#wxlH279llJ@Rnhl(m#RhAm ztvK_k@&#f~!c+z-i)kwe6qjC#A=4&?i~x(ZE9rHE|<) z_5bFd6=_$`hRY9nhIG`+9Xah3mQJ}a7i6G@w^M4#m+49XTk-P>Ry;mGEP~!G2Emjott$13!9HmNxSliPINb;){XE{A z0m2XDCT#@VrJ51IFqE6li_!04R9+PNFpgD>H8D08;Rzxt6dAYDG`F7e@39!B*tj8M zf#t2OO@l8<%Ph9k&m|oOW@e9e3Yl>`Yl0zE22m2MAW{I9yUh|E6D-ph3%oZ!Stx#Z zNn#mPZeOBob)FV#ByWp$`?GcFr{U5r@_xMAy)K-{gcUY#%YnByMZ1m6L#i{1I58p~ zS0rVDH*A$T+Rp-i9){K(u%IKJcoV*+6}G^}Gjcy!)TH7gLu?4pwF{2d5K!G;54PYU z{?pZqqi0WVUjnPUz#APR0bitZMQD{yi}B%j8cTF8RsoZ|W^rRVx{wx>x0(WVbV*7# zM!xWyun^UhkpL*+2_KeqvYC4+XYT^s_S4*%``p=+G9AW{%SNYS1_gVaYY#Su|M`jX z`%V<)7b%b`OK!W`{(T~Y9{2SUN81<5w0t_(eVP1;)IcJ+SvJwGe^hH`tIOwRFh#L= z(HdLemHRj|nIc+=Ce88wMEQKJ3s)a~ghim?ew-s(C&emr{8r#S; z1ssg^nl#1QRX84KGOK)5yGj>m63oe5cr5%_@KDet&=1-OX)@%Tv8BnPS||KE|3d2i z>DDy(Q08z`!35(Np^iaa>taSJgl`CN?_598WlR7LQHm4cx;AHyJkT#;BSq2vr*b`E zMn(B8PE45$6ua>>BoGwSzq zAkkoD8q(@sh+d*bV}vYz(zt%|;GN0okZ(EWEMX_ zkneyiPMn#oOkX^gEHgVl+~*uCx{PH!tv+jE!RKg-cfoeA_v4@E?hqzmWhz&x*IDk0 zsL`0+d+R}j_0N!B&z?OfylOwsJNXfYi4Zyeh-%6xZ6wuVO<_JjP#;m25M-J_hJXY? zT)V)yKq^#s1I^e7Flt-^d@t=PipTTS7|f@0;f7VQD)oVlHkTc$Z*dYPCtyu(2;4d_ zbiz@@?XBXP*kOrx4cMsIMje(TQoao+C08%k(L=?5gmaK5(&mVMPLt+Zm-WOjN@{g}=t_52#h=Ej%5m%^u1_mef{;D2@oNSjlqEa&xe2{X@s30dc?>BMbUK{G|sv$*8b-gRHfb#_i}d( zhcjKB#ifE9WtOl(PrP-TYuCC&rPQ6E;z-8pv;(OxpsxZOA{@!Vo}RhO&h0U8Sxp@# zLM&9bBHpvixh>8u@vWCx6=YfY8g47mQzG4rN)><2s)>o86O3*nNp0Kqnp@S(6sS3 zmnfX7L_ns5DP~Ij5GzvZy*-?$^M0_Nt9arg)Jpx(1w-1je>$iMy9cwSJt6*%ORyPV zj~3x2$+(L(na{t@_hya;m`Q_VvSB>9;YDmiz-sVyat|lc`+ii{uC$7=k_VHPaIfRB zEnxF4lM-X39Da|1lzFK*#WNMn4~G({c4qKKF4X=loe1Z<%|;LE={o_a+~~68R@%S` z1v+Up8}?8LmEBd-mTgY&?sO#HjMB*F-`NrAV1FzeFXFP<^7#KQnyI^OCbvkx>&`sQ zl~jP&JlOR-`Ea?vb9H+h=V^A^wxPr{kvL_Wi)aE;Idj=dGbkXzf*NVWDNzb@lrBs;x@loV*DDCEpZij0u2%+ppRDm(V zDqgsNRiZ?zLvrc;`@mz}lsy|VAWS6yqFZ9I_P0dS`x`u8^4jJPuy&cMmrlEkvZ}5c zyl+N5f~Iq2smh_zDG&r5%EL}%0t)WN`xJev%F>@fJG*FKjCE{Fy1xHC)4cijsP^xo@0B`PbO@>WpOg#q}^eJ&mD zyZ7=rwO0EQ0BmMa;Dh)icny+HuSbLBw)VsP+{~$m+|32AmsB{4OT8n%YMBin66@j!Y+B6*Fx$|}|vqxK|qhQvg0*xJE2uj60ZP?WBj%^m; zziyK!JO$R7l_Ub8-iZ#bcCy5~S}R_&@N$ z?CRwCK*Rr6M~Rj-UAPn33dj1<$~go^E1e6^ZmYMnYO;s1__zDG56)BICpxUKFiA~) zF1MMO7^8wk)?7?Hno7h?9A3)rTecifLbd_3UihD8@8UJ&Q}%~kt?#!Q18#cgG2(oW zCnc@t^Rl~M1ol1qh+l*P$1EVY*8y;p?{V`wpaXiBT16AS?|f@LDUJcY%&+qWuvaGL z!zX{{jIcwCh#n2&9Kwaj<8M%}+~b0bxv-?}4!*w6MeFaFdY;6_dzU`l2_BvQE`Too z`O%|0gxy9RuG$Om3Dhe!gVyakofUC!8hX2XX z`La|B+3E}m4_>6y6!s=2I*@6{3fTL~jd-v!B`BAj zUDc)+Xe5TJ9s&>)-zoRN!L)muN{|YyDy72CN}b7VmuL2%`y#=ZZ-Z{CyzQ%WFqv=u z%Bs6st|@Z3R0@PiQ+7~=s+JBNhEkRKEFt{P19XkO`S2VvRwz;-8x2*})4KpZDlmnK zkpZ%dMXb)0%Qn3{k~NMA4>~h&QBD4@KRMX;2(a-ueS$xkeBf?J%Gt1G%lqD?>l}pD z){=n$vQ!!|)?i&EynDMIT_&d@&t>(ouonSrS@N6)X(h-E6TU2Aw+slR55bhP0?88e z&eQfI2jA<8$;m^zX04%sYx&KnNrKVwbl&`rWvyv7?QYvu*;%DLg>Np$lW8-sU<)Re zE$gj!mmLuumFYCm$6lYr;zBCF)j!gR#%3s`SkRFJg1MxDHG2FzEfa?T16P_#TP#&H zaJ(+m)IsZ70a>!4ak2KDTv1}kjCF&b*a#NOh>w-LQE?B`_ml9iYCdtrn|No#aX{_r zjSr|*a50$lsHG`WA;*_)QHC*1+VZoS?^om`9}z~GJ`rdX+YOPgPFzCS<|M-_XHQNC zE6k3_jd4)ZJa=+m=cU&5RK+ttf$-mn7a{;69RZZ#46}=VaKO=xdYkU>2l$)8 zo`~x2#ag!s48XTiRFSc>n>8-FrbS6K`1cyslgaeQmV+D^_@y`V=Oj)-^dP&033b+2 z3}4)icoVN|)~aciBm!9wT8Rcj>bQ%FT8(3mfO{7EwWvt<(VIVY-0Y_KWB&8iV7`tI zxB#VXHv5J!^+G$Yx^Y{!oxW+Yb?Nl$XO~G0s41ysO@I9p8?T#J#@L(1dG5IX{I{v< z6PbjAyg}mkiLl{Iy$-eIlK{Nln#1X2M;KtN26D>5F;PcN7JvQlJV=ssy5v6oBD7jx za<%?*Qtm9h~e*wQ&w(= ztpF($WP*tgnZ$!*OtM{DlK4HmAKWAgDl}H$i~Z9s!Up=724}ToxaWSFzUPKMmr&m>JNw;ygmt$Jwr1GXM6;BpO!xxBT9& z&l_fnx39iX)0IvuG@$=UK{wF(RrXl9P(5%?fg~ztXP%@u%DJVKwe(e*KYCyDAssqn z14YY!K93<#WkPZ0Xg*JuLkikw$wM)9FR@dZxva~DP4&L61MNre*Ipcd(N;uL9e!Nq zkM$tp@kNdh_`o}O-RVryWe6c-OS2;NgT@o`n)|k_+jahX3Lu2Tq+?2+)BYSm0o@%N ztAUXACl*eon;5BOq*QRueZ>G^X#qC2Jthgi%5WejX)+>;gstaM&3=vozaKL+Ni1)5 zpAscZfc7SP$RZO)0y_kTCuVy7Ez~Gfy(0{G!*M+M5D5moZsh9<)+#(?xryw%0Y)R{ zTqhg*t%!Dv8pAS^GCFJwe3o!BGplr}cqSqjf1E@~kW88JPV7AkS0W%;o0kNIL?G?& z1cBEtal0J#dholp>j{(Iu=S}|q&dYcow)MO+qzb=J94}1PjLckvF&C(NxzF;=ARF(Q0aJw>6NuiD~r^3~Z`g1!a17NHPzzDdm+x%zjkNuY}#KPfE zsM{dDKex`IV|3bJX=W1H$rI4BH@N5jvm>$|#BAea`@BHgZ{v z5*2DVA9$^lU;{w?&;Q3~hky$jTBfQxR@b zVQw{y-e8S`ipS#)2G-jNV*OS_P>SQ}Fv%1cNovpc;)z3IWkH3DROelPhx(sLMF#>q8P5e!KcNgUXHSJoL6WNIRC)*&#WIf1)TPV}pscYquiTs|lq^P7{ zE4358zv{x!G@`baY~!Jq?Q~yqWR13B<3^uab~g^#y5LI0Fykgtlo3*C(q6`q*t;^JB&4; z8=45PgG9{(I+p-GmQK4B84$n4>XeXM87d2(V#+V)xf-mS3$ojJ5rID~a|p|KTh4h} z0jkI~E-ca_ArgvWAACAjIbhAUnrmkzWECfjB~y#?9Ur5`FqA|Q!jfZ}0v3M%AV1!u zqV2uX=4FslFbb*j%C9H2$y7bBs%S_#Qe5$wzZ~Nb6T+C;Ubqdm$ENN0RzGGBtJ)2@ z$xM7Ih$z;CtZRd5{*rpN3v#_{$vo}W3?m7m>Ed^MY+<84&D9U?z-9ZEvWaOZJLW#d zj!lLyB<)n<_hSDI8YQxLktSKtEN_Fke4!GZRNkQ8P@xi2Bxl|((9m(Y-=ECNx&GnI zR%JYLwvjC#tE)%UX_mJ4fBaFR6QoMHTfYE`^?SK2YQPPxCM^t}Cl8SaNbuNQP&x1d zQO?q2%^WG|?6Qc?+Ls}6QWf33g5mYZ)(5|2bOF~BWQFZU7%Z&Us=Z#cS*&;h1reHV zWvsCylXqSRvGjBWI{mw%vI!>Wq>VIJN4`29IY;V6Uz z;F9vC5d(en*IgQ&7$BBFl*mM(BHxXU6)J)K$bVd0;9r)F<6^+aj91|yO!8sCbSP&2 zPOmkYEJc!)=Xi)Ll}wIkq4dR4Su9)aB&mt)pz^#Eti;i~Y5H@th={sk){Giwh*oMZz1;jUjVB!AGk+(a|g_F!- z2n(>G4{&@~B(;fhQFK;OJp}1%Md40_@Hqr8`Hzit7$N_^8)wD|p%IsVkn+?#24L>y zq%EwxB`S~VR1m1hL$ku8I&Es12r-wgJb)GYS{(yy@Rn?H7mAq(1k2vK3)h{=X*$7$ zM6XL13X<8@C0N@)Ve;8mQKlw>3^AzBN)i1}7^zBKpT>-iTCSy|&l)%Bn?@T6_;7STTR8DU0U_!vViI5EtxFVb~UvOkkr*aQyUp0*w!Wn-L_uJD!O+^L~EE z{J{RL$cxb7el`5+c2?^TlNpz5pqcH=yWv zxjl5Y*>+#QSZT7sqm!$UHU9)jov-)ZDbh)|G zY7}x!*nK_3xcAGW3(hLt2#7a5ZFmrtOW(feUHMutT!`Z#Ow+LDMX_ZTudANPg)*~L zp-^q(d0QW>iqYPEB1R<&&8By^K9#q9;wHRhY6BaSV_==>1lLZG#q*$qX@ILzAx)hM zQU#oo<4w6mxwvCcj)his@%mZes&x@E1OWI0uEnrsm%Vv2sp<1vIkpZ)LtJd!YE!`Q z=-&gHnn!u7pE?{n!dfC|V3CGOgV0(9gq>4=_pr;Sa2gz(bQVb?ijT-3bP{aQhsU;8 ztAEerel<=vfMl;sm%h^uo4|Jq&Cq>90&I0(0SJxGL;BnJbOx)-vt5NeK%EkBUp{l)U~Ct@2nhj>k^q8S3$%va)yO16R6Mba{k4)%g& zTa(168pS_o3{0~-8@EyW85`MSmrZ`I<&m%;%D7GlgbN7DVd;hW6XqYhGqIB_Gb>we zkkA5Z`0$AG&nXTy2Th0%Hu;@5VSkfY%~zSmQl8aep$5M?dVxL&Y zsIIn?^`fvu(((BXD#Q}vtKagPrk|Hsdye~`BC1lF{>+(6@U{yG^fr?vQn_l&5HNQ2$>|zKK%;_@ZycazBwsm|DA}aLKNu73AYM3Ok)N!=sbtgbX z%gVwAA{A>?@78D_o{WHIVQOk1)etA4!+g`xq~wT@PWHq4d47(Y=8qF~N%8S7UC2D4 za;EYvMRB5qa(bI8WkUh(nOFM!u46B%bQyriVR3Ve!pTjprE!2X)?+hQBW$5#uJ7Sfo*DTjLYzqKcQS~nn za>{_nj}H-E%l!Q<9z~!?yGo>uTkc`Bu0(19zR5Zbf*0?GyM~5i zVr&&1!`Kepvgyy;xYYU%2tGdfrk0&AFM8zC!FMeVBYNAP0w6o}vW((Q+9{X!F^rde zaEzUSvJ7peQd^k?QC;a8dO-Nc=j{R{(BQMlfb}!)5mr_6rJyZkI&~U|(_(o9eA*}Z z`p+zC$YQKgR)2%zUD5sc6xrxZ3tvgu$}0sivzU%@DCpZc?3my{MV#UZsrj6f z%m65P!_n`T+GoOkR^2TXI z!QwK4BWkUtRMYNg++~q{Z>_?Oci=OpX|JZ`xnOL0u|sekCb%X(LcM7CyjS#m`k~Qf zdbiGBP~b+N--M*Q%v!4jr+lPYuP5QhUZA!@!ymiMwECOciv2-Pte$r2)^>no%(2Zp zLA|ZiRZmfloa^ooWEeDjB)qVfbf3N4FGep-nHVROIG%t%nlj%LNVS0<=ld`Kj;${% z17RpI_kHd#{>l$2pYWL~Ia#_wmxG2TC;{jK0eo4e$r`cQ#F~4n73R0E$~R6N_(XFY zzv7`)o_$}f^;|(2W|7o~PF|_W zWqYM0aj|r1fu^FcLrAiz&O%V%$(5~>Qn#5|<|N^qR)!fvTj$Z3+rC|(LQ^`r1j!QkCGREJ1QqFSOGZs6FM0oGVe(A~3S^a(-_Gbm zoP>7j-)8DQ7O46ekUveYB;zc1P2y(zEm_^YpB7CXrQ7@pV1LBT8Yo@%%d>aTYOGlB z;bhtDjch{Ck2`B~f0neSkBTCGH%UkoVhukHLjbedmWit$m7-1HK$JpV>E@shsoGN` z(!^9IRIJn#JQ`UqW1*q5+v(C^g8WpYRie`tD9- zE8SdoywzG_UDnR&Ry>kgvY7~2U((J>Gdohz#Ik-2cg0|>nzLhi-C&mk$gWQ3mL3t z;bJ_pSg8E&Xeml6=?9WDh?9&7>GTSGFd>%(q-`*z$Rp`K^S5$Z>t&+~a{1iBb8rg| ztblG)+DXB5gyf&q)he^8_&}-GZFef@yvuIwKrb=fav9}^|!6L z(J8r91Y$2IbJ5!^eSi;Ju@5w!ef`2I@50HSh4T|0%}Bpb+cutCHe>y?&Dllj*VsK* z3iF|PdYNd6@|~_~HinsK1}I($d@9OSP?R`}N=Z}_|D%d}${%$+uqur+qrOS1=x_%5 zk@=vBdbN#&*MpIaLFR|f+c8Zb`5IR5nxNXFj7EN@unW+DhlaY(bLRCqIoWH8Kyr) z7Z68q_xM+|%ACK0;pnXgV^s#KZS)v$J;Bo|EU4L*C6h6aw*C=$T(PQ~W+S=P4ndOk zN#>GZQF9m>l)}NPX}G!ZC6lb+D)G>a+2E2#jGfg_M_^v@-1>c<1U@0CMdAfkS+^l; z#Qon|ET2x<5>$LASzMV`c_i|4cT$#fnq$7W)1b_{UO!YRcnQ11A8Thj9*m=FU5Are zN~zlrhq`^PeWSMDvFILeUHQ*3%x?@68yi&v^_dvtKca7QZ`VWdd|XpG59EmI(ri}7 zS3c6B=pV*5-%U*RYdq;6J$6)jADp*2I>tC@$gIFy`GD&Ow~NF2ok;J2OguAGG-%|g zaXk>bqx3LUw^uP;MalFD>7)T_+VH=7W|lPxinu4?Y_bX9)Nwy33O3hZUB1BbF&|FgbkJ;HN3cR=~Ujg?i9y zTu21mgJcRAC5DOPn{xRoSEV+ukfA0O(>-W)^0IL`nBJ@RhcM zz7!KUHy*eb%GVa_?S8(a5}aFOYwx+BUGq%`3Y77d7^7uj@BO3ma(J$HYd878a**!xBFE{GUsktNW(hD3A%H&CVg z+h+jz^Dvpoqxh2rd&ZG8g16Nw89JypD1<8>x>#~9=|BJct0MI(VX02+Q4{(> zB|bE1{O2G>gJCy4xg@a3kTD1RE;pmA|d)Hd-kJEeuK{~@UKZrT*B;)!H3mL+y7*jV9c{yfr`U34-I4 z3;zNdz8h#**$sgy$(tNRRkouHKAXR6(@(XM?>{-xa$3b9$4R~$2jGB>i$IzYz=W^# zXwqh{o{}h{`fyh&XhX~f5v8yVBlk1^BOIn+#|mwW&vl+MuU4m_0Gq4K`ytx_|6F@+ zV0XF!yuD+QB^<>la;(iI0*4-6r1oX|h{!?>&H30Mp)_qEAU_2D$nY!$RX!WtkIclQ4P{h%u-F%MVI5i~iI(1~PdXwHWSA z4^5N{km02~wMl^-oZ!Y2Y1$3GJ~NRYATOwq&||Y|!>QEG#8f56s5xLZQPQ!G3f`j) ze|>9?5s=kA>-{$KP^!JF^hXXh+K%MHh{uOW(Ankrp?aBOhSggRdYGhRQHsvIlFgAE zFz(FGOiZAdz#ubP>nR?dAcq8jIhwGMvO>uKHT+>1s8ScH-GxXge^axpNBN6U2e6lc z=^B+sMIl7jp+G#*1&rcBam?#S=jhmF_?fk|8%$%r{w1FaV}{H;Zf%-OER11pifZMW z-mH174ux=3hNqtDnqA2(-u#j3(kPw0>S?_T8{z#M7_2iLi7X4tJRFsf)Gygq&}9(^ zr-Ff_cMB^CFe2`ez-2UXztwkxm%kc7$=r2XYUe-f(39M>vai59d&7vkYXNTh40e6; zkJq$)j7iTcpG}Wx_FS%B%l~RJWM`*93oO+=W%fwy+LTB-rN}>!vJCV0`VkmD~ z1l{Lw8OKxPy9j8QanhU%0Xnslvr90F1YI3^coF)Gk!iMzd(|KkBSpbaks=Vm>pA=8 zS;`V93t;?u`e^NYO)?oU)JfRI7T(0fkfdap<~qD;KzYnu4nTtC|E`{t$YgTpor~LGGrJ-Y=6(CY9EQANdwrX5K%_s7zNT zSdxlbu9i&Z9P*0si%ter_pOXk`tI_JIDHRQvTHog*OVzG zqt;8?Ou#N2NT5g8{sjQVewp?%)L%{%Fd7N6iv8oE{jB!2QMK;v1=Df(Xv&fe$J1$s z;KqZszzgCjg>VD%xFA7QqZ(+MpEr&L6WD)im|(v2*#RF=@bCQ?6ohlzIi|Jqe6t0K zm%tYpB(`89nS9>M3=eGkL@WLG?U7mN7>A}_SW<+j3@s@MA&IoyR0Z7x$V}3Ij7lo9 z>qsEg-pd`1@BcSOsP1BtwJd0i(>lnW<1)9S+Gn1l$L0p-&nN*9<-78m@!0`+KKLmZ z_tbrC{Ws#E#Vfnq^U9}MBHNtXpkV%)ZJ}SnB-OBII|F|5$xlp+tUwSpx6X%cPj`^( zo-X7Jk>6l=()P)gmFfkoad&Wowl-jfxOAgXkf{_8wbs<2HS<*=8b%+7 zJ8-CZ{m=k__Lf?z+0A#LU=kE!t92+IYO>CZE#;C!6ei>LU+t?mztfz~;|PV${eudu z@!Q9R4hGSg;S$aEOc4CwYA*0$0EXt6BnZZf!(onRQ&Lb|FSY1`F8_F*?|FyYx_Rqi zj1cFB)#$p@%e0@|S-SH5rqg1ZRG`ys%e_>y9f)h+iISoBN@J_rL$LjE=}`yp8X&!* zNP@8qGdysBH1M<)AZR`V1oD6B*X;MhG4%Q&@dX}EWbDQPv#YwD1`vRmAKfTg=|$UD z`*R}%16exFz=Lx5ZdXh)b8{yb)N|xg5b_(n*?uz`xQf6*@_qkOp95DYFi5H8-`15d_ZP>P zIKzDgNZJ9;`PcW@6jMRxfZGSCtq#DHC-rLGC}1=ds7B|@)bsLL^+1}2E-1)Kg9jsl z{{aec)kFI{p7(wI5QqQ)rok6Sq1oz4{CK$;vkiPJC}G6$d0at~gnsDK*~Sw`Q<{yI z#CVdsXUhf&X|(D)VF2TL)%o!d+=E4~vwE15cVq*1mapyYp_LsiP)y?8s4|TVhN^y- z7(%MUK`Bimf_{F_g9VQa0SdT7R@SVfBSn$D(2ZQtR3d;i`wG1&Mdag!$rRyft`)A( z5%OV3gghIWty!L4?V1{2) zP7D2Hm8#6~>fh7;WR(uevjBnTweVyftK`-?@GS%ZJ1Fl}I~GYh1mwGqgJ15PJ{~W^^?v?A z76^2DmqFOai5<)s+jws9GR@EmN1&bv((18L?Ld=E}zk=Z7^Ndph00MAz|jK7Yc)GeNKv zE7SbR_U7hL)7dg}!At`NE}BASQn|8n_mC&w@V7zvd^rl03iJKQc72%ew~_>bep8k( z(CbUZfM|=4cSdBBLE7#1*oOx-rh6~3^Jv~V87N`jW z_7Spjx_5!cj$mw^vRbIvnf^E?DH2(P$&%Dky77@mUZ-0@H6B)w0?pDc1;2GqAf~7c zb;Ac$G=WcVlpG@Ls;;xvAqH#u!%Q`SI^@a|hC~oXi~17CaT57QY1v$r?yNm!Au6-0 zeeuP7dwYGrxrszNw;tU4L=*$Ny1k<%0?A>c*H>V~l1mPb7Gye^(scorf@|!KOV{%N z<$b5B#W1!HEkTgMNH7M(nSZC-<@kF1aN?SHX9!cj*Y9|G_qL@cOpvUmk*rfghB)5f zGS%J#Br|p-koh?Uu#RyZx}!M9#CFdN{{1R!Heaw}IQbDJ`gyA82bD;pbwwj2Xtk_3Ij zQE0)NOFx_uda6>#<$fTj$QV19ZQ_KCxkhj1;d@PkO2;Zvpl!ULV8D7q#Um~)EnTmK z!Etr9QHL=Fg`++4J#3(j1iN_Y+0+ihQUtGhTM=5Y@1h(&F(Es6G4wlQA#5!^S*=HIj9L6JG7VjmzQ&<#GvHKfy5c4!#`v@#U~KIdhV^)~=`)$=jS z;^4siXfB4alZYaKG2oQ^^iA;LfLzyi4~AzBH<#N5%E0&I#okGI&ZNl@l(qcXX5d%9 zE8q0Ivgz<~S4OceA=LP+9%+k*@WJ;XE_8Q|!uOUFSCKEzQP=AjU$@l}G(oR5@Qc1% zS^u=J@ASX9DzzJr`J5k$0rE>djFY1NgaM9^boxI3+&13Ee0W_C1H8$<(_R6?|A6U3 zSO^iG=lziH*AarLGdsHLRGXjK)-aV)gY+xl(VZX!uag$nj5S^1Q>s5B$+I{{Lx4Ku zs`C*?VQ$&M!49~e=OPG)k+!^LbL|a$cf)ecA-hZInmoScrN+FRQCs8owL~eEj4-ln z%lWI+PbL??64|6Yeb1?a_@2dP_p9>_naP0eARH4CzZ|&-@Hd#hLz8U1oOZN2AHtTS z7w7YMp-L_<*R{HQBgdvjtzC#$lUicn1^XB8DxzR?N=KIKlhDF=Pe|dGW`x-&G z2aLnYWW>OVlkmI_`sR3fzBf_vE1z4*sfT~zg z@BzID5)MYbi3oIpfERJb%2u}knyzrS{=@5AX9=R?vJ2?^LlJp5cwpRNjPat3Wj*l({=!%V4E{!z{`09{@$NOo8{|$!cVLj{x`Z) zcrNL(XT4f&g%L?1VRbj+>MN3gw@@1pJ=Fv%?PpV^@N%ma+7;3M!mF!J7}AKpiCZ}zxuDEPz^w`O&u%DCHU*Eg=yG~~!34u!r-sSR$9 zJ*44zivLFTsrutPu;@0A8hi0%0k22FjytyvEY4fH+QTd^&Vzz16aZ2=QT9)QT7|O2qMTJW0U>U&88#6;C z9S|6`c`+h$CeD~cKL?XG>`kD2jZ`ElVic;G9ZW{q|bygWwHtif<(sFa>eCirDtz<7M|1>k*hOPri((O z;}v`&>ZzCr;+XRknDgX#D8MJNJvf}a^H2j1e2rMLO6C3j@wmHt-0a5TK0hq}4nDG4 zgL3Qo>z$X!8zK05|I=w^t^{>>bmDtjVmYZigcq@Tq8WVPP9j&urr7S(8JZd)#rftC zvZRe2i;C$tbn)TY?`{m82gd5v!H+L1uVJ8d4ZUsA)9v<^Cdwbp`#7h_(iLlHmN1!VNW5-WKx{53xDa3{FY52ZA~5% zN3D9{SK?OQu1&^-Aic#J|Ahn}SGVl4TAz!It5j`0b{H{`ipwIdd4Ei8d$<>Cq~NDj zY-Yy?(oCiFsOzF>laLfB5hX4ZYwavQxU9#X{!S;PoH^amjypVW@o)-GO~o&wuX;`* zCkSy23;zpmDM3OMWoXtE|4Qe132rTwv-YQJOJP%q(eWPG1{(R;sBlDaV{*1Os`{cn z^fY(t{{p8CSn|@rm;&WsfU2r!J)5-AwFo?i7~=NHCIM<9G>ns3N=z+81RB~@9Ij8M zGt5u!i$MeremovyZEX#c@fcNAC2TyQlXMQP$t}9NES2P*5TOqBSP)X1Ik4KMCS)*> zfu*K9#&rZEW%7zwN-#lruQ6u3P@Zr4Hsj|IrWW1oyr}ucDT-8hSu7S9lmjeXEojA> zbi;fbXptmZs1_VBy&kO&naiR;)3nmo6LlS4c%(4O!irE;f8R7@9uPV?s-A!SbuL)m zEo0F)XFg<&90=S7OKYPQ%m`DCS>45$ZjEIyC{y}IMPt@6sH%!8;1LB!0)(lLhtzP` z?|?6d4(@~w3!R1qmI+e^Ce3O^l-%@tR;yJqAFZlNaKtGmLPrGzOj}KIr5(nNP$(&% z)$qJXA#hby*gSRefE6<5$4tdrDdPmr!_o5==Sk;HsKchrjtio2$~jL|nEXP^3t8=S z!nu(-0DIKMJWV>#^i`&rMm71SM{Q+u0T%i1FMR&ms#&2~t*{`2#l#&?Af}MsAX6y{sf_wy{E2*6VNk!u1CDckgQ@Rn33&@fTfG{0NM zqE(c*_{xWVRKy?-nS-ia$7tB^ki;e@-80HiD+1}Y%p6kfkcI z*zHmkl*3;>FpRYcb=Sj@GZ-P&3@ob3%Av{LXWBF}AoKmTBPaK~SETzTPMmZYCOo{V zNXLlVTU*%K*%34&=WRxbCIlsC-EntS?6pWD6k2VRBMe@Mtx}{hf*V(+h^$TDb1gAy z^W6<&VWnRV(>eF$zBbos#86Wy81Z|wJ);NoB0Ehl-I;o+MLYs(GmzhyYVh-m&nE7nlecw?Q!yLXiz8?}5ccczk0%Yvu~d7VdNq+<)e>aK z4DGI}rHqIH7L@BJA7*-S*q$GGKGj3#77{yQT9CeNF`v)z!LNRW_uhLCyL)@xc|OD? zHtL6m7QpB_*g_qOhdI0oi?8?0+5tAI&p9xjyI?FG3+s<_(baCgopE+uc5#@CaL*e1 z04b~Qs;iz;&rj@O0dUB_^}H|>(Ti4Jx;z&9DP0Z;ChZRBV?h51W+#=AruE^Ba9xdoPM_bRm|j&pd1b4zos%ANM`|g?N~?vwDHC$Excr zUDI8(`RCN~H(k&7j@&e(y9gLE7!0s#8r-~j3pZ}wzPS_npJBW5+rUC#Ekwr4C1Zc!)kAvQ=`wnAPV?Ya&u7YSSSs6^wLrbKrpe z9gjsT8y&bUdl94V_8j(KmYwd?f*Jc@NUB-?j=l@;VZW!}PUV-W!Bsqe9I=*Vi6cjj z;OxEkVltg1ST_~Oo3_DtG(y2#T-N9+ivrW>6l=3J!FZo`4#TR#C(oRbFjQACbwyR5 z1da+BS`sNJ-K)?KeL3tE3)*C#lbC7A$BjM8L_SI1j*3_i6*jnc8FwdM84G^gI84uE zPrwqrkX*zo*&Ca$c5`q%?C8n=KY6F+{ErXa!C-*(BS)}t;)K{@0iVhd2unj#)t3A3 zAx0F|A|Q%jVm7%ja7-`~8)~3Xv`gL~p(O!DQnle!s!;E}rPi!ZqJYXV2pF=BDK5v)K$Mj~_=tAbcMJd5uBXHi2~1TcyhCSRuAkFe3xSx`r_hun-jz zRxUwIUZp_;`&mIlsg`iTiie?S~Ro7UN_8ohj8{~Br$;H*u!Cn#~v?hN+V+<^tGO9vky;_O=Sa#Gk9ZB*=_4r3* zYT5M<3>~O9;}SxQqS;uMC3bg{x>M7(xaa6Pit%_XlYe|;1IIQtaQxUY(SwEp4Dg1r z>}f_l!ZrjrYp`lPf^X@j3-HDv_*QOGoA7&LoG6u8PQLaOjdrIT}w;FFJ6v=*ab zMW=Y;vo~!cw`Cf(Ne-_7szFKmbOx>%cW!mAn6AhpOgauk$&H}Js%V0|C>&w$rFS|Q zq~32~5kuwyG^-T=D>l$Mq5y$nav`vxlbppRxwl_vYhY^=B$6PWql#g-wsQl75VEzf z>Ilf~)V6Y{LLt89i-n-AJXMVy@!EA*F7{8IuoTkAJ@$!D+%;p7gOchdp4x7m;vdhu zwPHaW6;d+^qofLVybQ0j%BTr-mWZ0Whu5I1l+#8l`a@#P&lQa%Kh8hw{MHOtCr5y`6Gwy0)gcouFBsT zLp~tRFdr7&o6L-={Nf_@ubEKLDmx{C3NkCn=$u)%O+ZL1C!50S@e|T1ou-+u-BPN+ z?L-dawNIOt24=NbA&{tokK~0)WyD$wLmSsxi$;k8F6$cmdsgt&+-B5su5TUPn$ueK zT04$!MnU;09d)S#@Mfdu=V(UDM>7Z7sP~{5e>~x0S`qW*u)e;2*NlZFz8RFl0w@|q z*_Beuc2}%Bpo?ePFjT81_gi8tXrXZhMltrBGIG%CMe7SB5*0d#PQ5QRvrebFyoQRZ z8cI=salTnEnoRDf&=ZtfgwP-PjW*0=$NodWTY0-ot8un7Howx=QboGunH9v<57oWlww zPNH#e$Tge>)VVniUCd2O2oEUtc0d%jqS)!X%t)V zL8PC9a%a&hw>n&sudC`j7uF(CBiS)U?0=1cajK0&>Zufw$zhn4dW?vFSZ7fyet3rV zHu+XJY2JKHRa{TjSHUObl|Vpy7SdL=dlw88a)WP`Qr1>N6woZ$NY-F&1H&YbZ_Y7N$}Bz zAe%;=UfPdKv&49Uy>F9M4{e~nMUGcw682Wt?Fy^kQmZ)h5!Hn07*qoM6N<$f~x6q6aWAK literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/blow_hole/blow_hole_instrument.cpp b/plugins/stk/voices/blow_hole/blow_hole_instrument.cpp new file mode 100644 index 000000000..903770647 --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_instrument.cpp @@ -0,0 +1,103 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "blow_hole_instrument.h" +#include "blow_hole_instrument_view.h" +#include "blow_hole_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor blowhole_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Blow Hole", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Blown tube noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +blowHoleInstrument::blowHoleInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &blowhole_plugin_descriptor ) +{ + model()->reedStiffness()->setTrack( _channel_track ); + model()->noiseGain()->setTrack( _channel_track ); + model()->toneholeState()->setTrack( _channel_track ); + model()->registerState()->setTrack( _channel_track ); + model()->breathPressure()->setTrack( _channel_track ); +} + + + + +blowHoleInstrument::~blowHoleInstrument() +{ +} + + + + +QString blowHoleInstrument::nodeName( void ) const +{ + return( blowhole_plugin_descriptor.name ); +} + + + + +pluginView * blowHoleInstrument::instantiateView( QWidget * _parent ) +{ + return( new blowHoleInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new blowHoleInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/blow_hole/blow_hole_instrument.h b/plugins/stk/voices/blow_hole/blow_hole_instrument.h new file mode 100644 index 000000000..21ffb7fea --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BLOW_HOLE_INSTRUMENT_H +#define _BLOW_HOLE_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "blow_hole_processor.h" +#include "blow_hole_model.h" + + +class blowHoleInstrument : public stkInstrument +{ +public: + blowHoleInstrument( instrumentTrack * _channel_track ); + virtual ~blowHoleInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/blow_hole/blow_hole_instrument_view.cpp b/plugins/stk/voices/blow_hole/blow_hole_instrument_view.cpp new file mode 100644 index 000000000..c1453099d --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "blow_hole_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +blowHoleInstrumentView::blowHoleInstrumentView( blowHoleInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_reedStiffness = new knob( knobSmall_17, m_topView, tr( "Stiffness" ) ); + m_reedStiffness->setLabel( tr( "Reed Stiffness" ) ); + m_reedStiffness->setHintText( tr( "Stiffness:" ) + " ", "" ); + + m_noiseGain = new knob( knobSmall_17, m_topView, tr( "Noise" ) ); + m_noiseGain->setLabel( tr( "Noise Gain" ) ); + m_noiseGain->setHintText( tr( "Noise:" ) + " ", "" ); + + m_toneholeState = new knob( knobSmall_17, m_topView, tr( "Tone Hole" ) ); + m_toneholeState->setLabel( tr( "Tone Hole" ) ); + m_toneholeState->setHintText( tr( "Tone Hole:" ) + " ", "" ); + + m_registerState = new knob( knobSmall_17, m_topView, tr( "Register" ) ); + m_registerState->setLabel( tr( "Register" ) ); + m_registerState->setHintText( tr( "Register:" ) + " ", "" ); + + m_breathPressure = new knob( knobSmall_17, m_topView, tr( "Breath Pres" ) ); + m_breathPressure->setLabel( tr( "Breath Pressure" ) ); + m_breathPressure->setHintText( tr( "Pressure:" ) + " ", "" ); + + h1->addWidget( m_reedStiffness ); + h1->addWidget( m_noiseGain ); + + h2->addWidget( m_toneholeState ); + h2->addWidget( m_registerState ); + + h3->addWidget( m_breathPressure ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +blowHoleInstrumentView::~blowHoleInstrumentView() +{ +} + + + + +void blowHoleInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + blowHoleInstrument * inst = castModel(); + m_reedStiffness->setModel( inst->model()->reedStiffness() ); + m_noiseGain->setModel( inst->model()->noiseGain() ); + m_toneholeState->setModel( inst->model()->toneholeState() ); + m_registerState->setModel( inst->model()->registerState() ); + m_breathPressure->setModel( inst->model()->breathPressure() ); +} + + + diff --git a/plugins/stk/voices/blow_hole/blow_hole_instrument_view.h b/plugins/stk/voices/blow_hole/blow_hole_instrument_view.h new file mode 100644 index 000000000..7631fe0c2 --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BLOW_HOLE_INSTRUMENT_VIEW_H +#define _BLOW_HOLE_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "blow_hole_instrument.h" + + +class blowHoleInstrumentView: public stkInstrumentView +{ +public: + blowHoleInstrumentView( blowHoleInstrument * _instrument, QWidget * _parent ); + virtual ~blowHoleInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_reedStiffness; + knob * m_noiseGain; + knob * m_toneholeState; + knob * m_registerState; + knob * m_breathPressure; +}; + +#endif diff --git a/plugins/stk/voices/blow_hole/blow_hole_model.cpp b/plugins/stk/voices/blow_hole/blow_hole_model.cpp new file mode 100644 index 000000000..d0f753666 --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "blow_hole_model.h" + + +blowHoleModel::blowHoleModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _reed_stiffness, + StkFloat _noise_gain, + StkFloat _tonehole_state, + StkFloat _register_state, + StkFloat _breath_pressure ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_reedStiffness( new floatModel( _reed_stiffness, 0.0f, 128.0f, 0.1f, this ) ), + m_noiseGain( new floatModel( _noise_gain, 0.0f, 128.0f, 0.1f, this ) ), + m_toneholeState( new floatModel( _tonehole_state, 0.0f, 128.0f, 0.1f, this ) ), + m_registerState( new floatModel( _register_state, 0.0f, 128.0f, 0.1f, this ) ), + m_breathPressure( new floatModel( _breath_pressure, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +blowHoleModel::~blowHoleModel() +{ + delete m_reedStiffness; + delete m_noiseGain; + delete m_toneholeState; + delete m_registerState; + delete m_breathPressure; +} + + + + +void FASTCALL blowHoleModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_reedStiffness->saveSettings( _doc, _parent, "reedstiffness" ); + m_noiseGain->saveSettings( _doc, _parent, "noisegain" ); + m_toneholeState->saveSettings( _doc, _parent, "toneholestate" ); + m_registerState->saveSettings( _doc, _parent, "registerstate" ); + m_breathPressure->saveSettings( _doc, _parent, "breathpressure" ); +} + + + + +void FASTCALL blowHoleModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_reedStiffness->loadSettings( _this, "reedstiffness" ); + m_noiseGain->loadSettings( _this, "noisegain" ); + m_toneholeState->loadSettings( _this, "toneholestate" ); + m_registerState->loadSettings( _this, "registerstate" ); + m_breathPressure->loadSettings( _this, "breathpressure" ); +} + diff --git a/plugins/stk/voices/blow_hole/blow_hole_model.h b/plugins/stk/voices/blow_hole/blow_hole_model.h new file mode 100644 index 000000000..302081a7f --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_model.h @@ -0,0 +1,67 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BLOW_HOLE_MODEL_H +#define _BLOW_HOLE_MODEL_H + +#include "stk_model.h" + + +class blowHoleModel: public stkModel +{ +public: + blowHoleModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _reed_stiffness = 64.0f, + StkFloat _noise_gain = 64.0f, + StkFloat _tonehole_state = 64.0f, + StkFloat _register_state = 64.0f, + StkFloat _breath_pressure = 64.0f ); + ~blowHoleModel(); + + inline floatModel * reedStiffness( void ) { return( m_reedStiffness ); } + inline floatModel * noiseGain( void ) { return( m_noiseGain ); } + inline floatModel * toneholeState( void ) { return( m_toneholeState ); } + inline floatModel * registerState( void ) { return( m_registerState ); } + inline floatModel * breathPressure( void ) { return( m_breathPressure ); } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_reedStiffness; + floatModel * m_noiseGain; + floatModel * m_toneholeState; + floatModel * m_registerState; + floatModel * m_breathPressure; +}; + +#endif diff --git a/plugins/stk/voices/blow_hole/blow_hole_processor.cpp b/plugins/stk/voices/blow_hole/blow_hole_processor.cpp new file mode 100644 index 000000000..13ce2fefc --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "blow_hole_processor.h" +#include "config_mgr.h" + + +blowHoleProcessor::blowHoleProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate, 20.0f ) +{ +} + + + + +blowHoleProcessor::~blowHoleProcessor() +{ +} + + + + +void blowHoleProcessor::setControls( blowHoleModel * _model ) +{ + voice()->controlChange( 1, _model->registerState()->value() ); + voice()->controlChange( 2, _model->reedStiffness()->value() ); + voice()->controlChange( 4, _model->noiseGain()->value() ); + voice()->controlChange( 11, _model->toneholeState()->value() ); + voice()->controlChange( 128, _model->breathPressure()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/blow_hole/blow_hole_processor.h b/plugins/stk/voices/blow_hole/blow_hole_processor.h new file mode 100644 index 000000000..331aeba3c --- /dev/null +++ b/plugins/stk/voices/blow_hole/blow_hole_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BLOW_HOLE_PROCESSOR_H +#define _BLOW_HOLE_PROCESSOR_H + +#include "BlowHole.h" + +#include "stk_processor.h" + +#include "blow_hole_model.h" + +class blowHoleProcessor: public stkProcessor +{ +public: + blowHoleProcessor( sample_rate_t _sample_rate ); + ~blowHoleProcessor( void ); + + void setControls( blowHoleModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/blow_hole/logo.png b/plugins/stk/voices/blow_hole/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libbowed.la + +libbowed_la_SOURCES = bowed_model.cpp \ + bowed_model.h \ + bowed_processor.cpp \ + bowed_processor.h \ + bowed_instrument.cpp \ + bowed_instrument.h \ + bowed_instrument_view.cpp \ + bowed_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libbowed_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libbowed_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/bowed/artwork.png b/plugins/stk/voices/bowed/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbf673a0872e107067f78488dbe73189fef8d02 GIT binary patch literal 71559 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 + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "bowed_instrument.h" +#include "bowed_instrument_view.h" +#include "bowed_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor bowed_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Bowed", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Bowed string" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +bowedInstrument::bowedInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &bowed_plugin_descriptor ) +{ + model()->bowPressure()->setTrack( _channel_track ); + model()->bowPosition()->setTrack( _channel_track ); + model()->vibratoFrequency()->setTrack( _channel_track ); + model()->vibratoGain()->setTrack( _channel_track ); +} + + + + +bowedInstrument::~bowedInstrument() +{ +} + + + + +QString bowedInstrument::nodeName( void ) const +{ + return( bowed_plugin_descriptor.name ); +} + + + + +pluginView * bowedInstrument::instantiateView( QWidget * _parent ) +{ + return( new bowedInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new bowedInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/bowed/bowed_instrument.h b/plugins/stk/voices/bowed/bowed_instrument.h new file mode 100644 index 000000000..82fbb9017 --- /dev/null +++ b/plugins/stk/voices/bowed/bowed_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BOWED_INSTRUMENT_H +#define _BOWED_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "bowed_processor.h" +#include "bowed_model.h" + + +class bowedInstrument : public stkInstrument +{ +public: + bowedInstrument( instrumentTrack * _channel_track ); + virtual ~bowedInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/bowed/bowed_instrument_view.cpp b/plugins/stk/voices/bowed/bowed_instrument_view.cpp new file mode 100644 index 000000000..2493b2571 --- /dev/null +++ b/plugins/stk/voices/bowed/bowed_instrument_view.cpp @@ -0,0 +1,100 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "bowed_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +bowedInstrumentView::bowedInstrumentView( bowedInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout; + QHBoxLayout * h2 = new QHBoxLayout; + + m_bowPressure = new knob( knobSmall_17, m_topView, tr( "Pressure" ) ); + m_bowPressure->setLabel( tr( "Bow Pressure" ) ); + m_bowPressure->setHintText( tr( "Pressure:" ) + " ", "" ); + + m_bowPosition = new knob( knobSmall_17, m_topView, tr( "Position" ) ); + m_bowPosition->setLabel( tr( "Bow Position" ) ); + m_bowPosition->setHintText( tr( "Position:" ) + " ", "" ); + + m_vibratoFrequency = new knob( knobSmall_17, m_topView, tr( "Vib Freq" ) ); + m_vibratoFrequency->setLabel( tr( "Vibrato Frequency" ) ); + m_vibratoFrequency->setHintText( tr( "Vib Freq:" ) + " ", "" ); + + m_vibratoGain = new knob( knobSmall_17, m_topView, tr( "Vib Gain" ) ); + m_vibratoGain->setLabel( tr( "Vibrato Gain" ) ); + m_vibratoGain->setHintText( tr( "Vib Gain:" ) + " ", "" ); + + h1->addWidget( m_bowPressure ); + h1->addWidget( m_bowPosition ); + + h2->addWidget( m_vibratoFrequency ); + h2->addWidget( m_vibratoGain ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +bowedInstrumentView::~bowedInstrumentView() +{ +} + + + + +void bowedInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + bowedInstrument * inst = castModel(); + m_bowPressure->setModel( inst->model()->bowPressure() ); + m_bowPosition->setModel( inst->model()->bowPosition() ); + m_vibratoFrequency->setModel( inst->model()->vibratoFrequency() ); + m_vibratoGain->setModel( inst->model()->vibratoGain() ); +} + + + diff --git a/plugins/stk/voices/bowed/bowed_instrument_view.h b/plugins/stk/voices/bowed/bowed_instrument_view.h new file mode 100644 index 000000000..20237bf37 --- /dev/null +++ b/plugins/stk/voices/bowed/bowed_instrument_view.h @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BOWED_INSTRUMENT_VIEW_H +#define _BOWED_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "bowed_instrument.h" + + +class bowedInstrumentView: public stkInstrumentView +{ +public: + bowedInstrumentView( bowedInstrument * _instrument, QWidget * _parent ); + virtual ~bowedInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_bowPressure; + knob * m_bowPosition; + knob * m_vibratoFrequency; + knob * m_vibratoGain; +}; + +#endif diff --git a/plugins/stk/voices/bowed/bowed_model.cpp b/plugins/stk/voices/bowed/bowed_model.cpp new file mode 100644 index 000000000..e5d9cab66 --- /dev/null +++ b/plugins/stk/voices/bowed/bowed_model.cpp @@ -0,0 +1,83 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "bowed_model.h" + + +bowedModel::bowedModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _bow_pressure, + StkFloat _bow_position, + StkFloat _vibrato_frequency, + StkFloat _vibrato_gain ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_bowPressure( new floatModel( _bow_pressure, 0.0f, 128.0f, 0.1f, this ) ), + m_bowPosition( new floatModel( _bow_position, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoFrequency( new floatModel( _vibrato_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoGain( new floatModel( _vibrato_gain, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +bowedModel::~bowedModel() +{ + delete m_bowPressure; + delete m_bowPosition; + delete m_vibratoFrequency; + delete m_vibratoGain; +} + + + + +void FASTCALL bowedModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_bowPressure->saveSettings( _doc, _parent, "bowpressure" ); + m_bowPosition->saveSettings( _doc, _parent, "bowgain" ); + m_vibratoFrequency->saveSettings( _doc, _parent, "vibratofrequency" ); + m_vibratoGain->saveSettings( _doc, _parent, "vibratogain" ); +} + + + + +void FASTCALL bowedModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_bowPressure->loadSettings( _this, "bowpressure" ); + m_bowPosition->loadSettings( _this, "bowposition" ); + m_vibratoFrequency->loadSettings( _this, "vibratofrequency" ); + m_vibratoGain->loadSettings( _this, "vibratogain" ); +} + diff --git a/plugins/stk/voices/bowed/bowed_model.h b/plugins/stk/voices/bowed/bowed_model.h new file mode 100644 index 000000000..7fd67a895 --- /dev/null +++ b/plugins/stk/voices/bowed/bowed_model.h @@ -0,0 +1,79 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BOWED_MODEL_H +#define _BOWED_MODEL_H + +#include "stk_model.h" + + +class bowedModel: public stkModel +{ +public: + bowedModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _bow_pressure = 64.0f, + StkFloat _bow_position = 64.0f, + StkFloat _vibrato_frequency = 64.0f, + StkFloat _vibrato_gain = 64.0f ); + ~bowedModel(); + + inline floatModel * bowPressure( void ) const + { + return( m_bowPressure ); + } + + inline floatModel * bowPosition( void ) const + { + return( m_bowPosition ); + } + + inline floatModel * vibratoFrequency( void ) const + { + return( m_vibratoFrequency ); + } + + inline floatModel * vibratoGain( void ) const + { + return( m_vibratoGain ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_bowPressure; + floatModel * m_bowPosition; + floatModel * m_vibratoFrequency; + floatModel * m_vibratoGain; +}; + +#endif diff --git a/plugins/stk/voices/bowed/bowed_processor.cpp b/plugins/stk/voices/bowed/bowed_processor.cpp new file mode 100644 index 000000000..ab165c6f9 --- /dev/null +++ b/plugins/stk/voices/bowed/bowed_processor.cpp @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "bowed_processor.h" +#include "config_mgr.h" + + +bowedProcessor::bowedProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate, 20.0f ) +{ +} + + + + +bowedProcessor::~bowedProcessor() +{ +} + + + + +void bowedProcessor::setControls( bowedModel * _model ) +{ + voice()->controlChange( 2, _model->bowPressure()->value() ); + voice()->controlChange( 4, _model->bowPosition()->value() ); + voice()->controlChange( 11, _model->vibratoFrequency()->value() ); + voice()->controlChange( 1, _model->vibratoGain()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/bowed/bowed_processor.h b/plugins/stk/voices/bowed/bowed_processor.h new file mode 100644 index 000000000..6fd34cffa --- /dev/null +++ b/plugins/stk/voices/bowed/bowed_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BOWED_PROCESSOR_H +#define _BOWED_PROCESSOR_H + +#include "Bowed.h" + +#include "stk_processor.h" + +#include "bowed_model.h" + +class bowedProcessor: public stkProcessor +{ +public: + bowedProcessor( sample_rate_t _sample_rate ); + ~bowedProcessor( void ); + + void setControls( bowedModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/bowed/logo.png b/plugins/stk/voices/bowed/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libbrass.la + +libbrass_la_SOURCES = brass_model.cpp \ + brass_model.h \ + brass_processor.cpp \ + brass_processor.h \ + brass_instrument.cpp \ + brass_instrument.h \ + brass_instrument_view.cpp \ + brass_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libbrass_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libbrass_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/brass/artwork.png b/plugins/stk/voices/brass/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..427a997a1d725cb195355845349d4fa0b47d5b1d GIT binary patch literal 71358 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 literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/brass/brass_instrument.cpp b/plugins/stk/voices/brass/brass_instrument.cpp new file mode 100644 index 000000000..744817af8 --- /dev/null +++ b/plugins/stk/voices/brass/brass_instrument.cpp @@ -0,0 +1,102 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "brass_instrument.h" +#include "brass_instrument_view.h" +#include "brass_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor brass_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Brass", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Brass sounds" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +brassInstrument::brassInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &brass_plugin_descriptor ) +{ + model()->lipTension()->setTrack( _channel_track ); + model()->slideLength()->setTrack( _channel_track ); + model()->vibratoFrequency()->setTrack( _channel_track ); + model()->vibratoGain()->setTrack( _channel_track ); +} + + + + +brassInstrument::~brassInstrument() +{ +} + + + + +QString brassInstrument::nodeName( void ) const +{ + return( brass_plugin_descriptor.name ); +} + + + + +pluginView * brassInstrument::instantiateView( QWidget * _parent ) +{ + return( new brassInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new brassInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/brass/brass_instrument.h b/plugins/stk/voices/brass/brass_instrument.h new file mode 100644 index 000000000..502414798 --- /dev/null +++ b/plugins/stk/voices/brass/brass_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BRASS_INSTRUMENT_H +#define _BRASS_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "brass_processor.h" +#include "brass_model.h" + + +class brassInstrument : public stkInstrument +{ +public: + brassInstrument( instrumentTrack * _channel_track ); + virtual ~brassInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/brass/brass_instrument_view.cpp b/plugins/stk/voices/brass/brass_instrument_view.cpp new file mode 100644 index 000000000..9b303aa97 --- /dev/null +++ b/plugins/stk/voices/brass/brass_instrument_view.cpp @@ -0,0 +1,100 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "brass_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +brassInstrumentView::brassInstrumentView( brassInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout; + QHBoxLayout * h2 = new QHBoxLayout; + + m_lipTension = new knob( knobSmall_17, m_topView, tr( "Tension" ) ); + m_lipTension->setLabel( tr( "Lip Tension" ) ); + m_lipTension->setHintText( tr( "Tension:" ) + " ", "" ); + + m_slideLength = new knob( knobSmall_17, m_topView, tr( "Length" ) ); + m_slideLength->setLabel( tr( "Slide Length" ) ); + m_slideLength->setHintText( tr( "Length:" ) + " ", "" ); + + m_vibratoFrequency = new knob( knobSmall_17, m_topView, tr( "Vib Freq" ) ); + m_vibratoFrequency->setLabel( tr( "Vibrato Frequency" ) ); + m_vibratoFrequency->setHintText( tr( "Vib Freq:" ) + " ", "" ); + + m_vibratoGain = new knob( knobSmall_17, m_topView, tr( "Vib Gain" ) ); + m_vibratoGain->setLabel( tr( "Vibrato Gain" ) ); + m_vibratoGain->setHintText( tr( "Vib Gain:" ) + " ", "" ); + + h1->addWidget( m_lipTension ); + h1->addWidget( m_slideLength ); + + h2->addWidget( m_vibratoFrequency ); + h2->addWidget( m_vibratoGain ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +brassInstrumentView::~brassInstrumentView() +{ +} + + + + +void brassInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + brassInstrument * inst = castModel(); + m_lipTension->setModel( inst->model()->lipTension() ); + m_slideLength->setModel( inst->model()->slideLength() ); + m_vibratoFrequency->setModel( inst->model()->vibratoFrequency() ); + m_vibratoGain->setModel( inst->model()->vibratoGain() ); +} + + + diff --git a/plugins/stk/voices/brass/brass_instrument_view.h b/plugins/stk/voices/brass/brass_instrument_view.h new file mode 100644 index 000000000..e06e5ae9d --- /dev/null +++ b/plugins/stk/voices/brass/brass_instrument_view.h @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BRASS_INSTRUMENT_VIEW_H +#define _BRASS_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "brass_instrument.h" + + +class brassInstrumentView: public stkInstrumentView +{ +public: + brassInstrumentView( brassInstrument * _instrument, QWidget * _parent ); + virtual ~brassInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_lipTension; + knob * m_slideLength; + knob * m_vibratoFrequency; + knob * m_vibratoGain; +}; + +#endif diff --git a/plugins/stk/voices/brass/brass_model.cpp b/plugins/stk/voices/brass/brass_model.cpp new file mode 100644 index 000000000..ffb08173b --- /dev/null +++ b/plugins/stk/voices/brass/brass_model.cpp @@ -0,0 +1,83 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "brass_model.h" + + +brassModel::brassModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _lip_tension, + StkFloat _slide_length, + StkFloat _vibrato_frequency, + StkFloat _vibrato_gain ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_lipTension( new floatModel( _lip_tension, 0.0f, 128.0f, 0.1f, this ) ), + m_slideLength( new floatModel( _slide_length, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoFrequency( new floatModel( _vibrato_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoGain( new floatModel( _vibrato_gain, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +brassModel::~brassModel() +{ + delete m_lipTension; + delete m_slideLength; + delete m_vibratoFrequency; + delete m_vibratoGain; +} + + + + +void FASTCALL brassModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_lipTension->saveSettings( _doc, _parent, "liptension" ); + m_slideLength->saveSettings( _doc, _parent, "slidelength" ); + m_vibratoFrequency->saveSettings( _doc, _parent, "vibratofrequency" ); + m_vibratoGain->saveSettings( _doc, _parent, "vibratogain" ); +} + + + + +void FASTCALL brassModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_lipTension->loadSettings( _this, "liptension" ); + m_slideLength->loadSettings( _this, "slidelength" ); + m_vibratoFrequency->loadSettings( _this, "vibratofrequency" ); + m_vibratoGain->loadSettings( _this, "vibratogain" ); +} + diff --git a/plugins/stk/voices/brass/brass_model.h b/plugins/stk/voices/brass/brass_model.h new file mode 100644 index 000000000..1bdecc609 --- /dev/null +++ b/plugins/stk/voices/brass/brass_model.h @@ -0,0 +1,79 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BRASS_MODEL_H +#define _BRASS_MODEL_H + +#include "stk_model.h" + + +class brassModel: public stkModel +{ +public: + brassModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _lip_tension = 64.0f, + StkFloat _slid_position = 64.0f, + StkFloat _vibrato_frequency = 64.0f, + StkFloat _vibrato_gain = 64.0f ); + ~brassModel(); + + inline floatModel * lipTension( void ) const + { + return( m_lipTension ); + } + + inline floatModel * slideLength( void ) const + { + return( m_slideLength ); + } + + inline floatModel * vibratoFrequency( void ) const + { + return( m_vibratoFrequency ); + } + + inline floatModel * vibratoGain( void ) const + { + return( m_vibratoGain ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_lipTension; + floatModel * m_slideLength; + floatModel * m_vibratoFrequency; + floatModel * m_vibratoGain; +}; + +#endif diff --git a/plugins/stk/voices/brass/brass_processor.cpp b/plugins/stk/voices/brass/brass_processor.cpp new file mode 100644 index 000000000..11057adfc --- /dev/null +++ b/plugins/stk/voices/brass/brass_processor.cpp @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "brass_processor.h" +#include "config_mgr.h" + + +brassProcessor::brassProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate, 20.0f ) +{ +} + + + + +brassProcessor::~brassProcessor() +{ +} + + + + +void brassProcessor::setControls( brassModel * _model ) +{ + voice()->controlChange( 2, _model->lipTension()->value() ); + voice()->controlChange( 4, _model->slideLength()->value() ); + voice()->controlChange( 11, _model->vibratoFrequency()->value() ); + voice()->controlChange( 1, _model->vibratoGain()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/brass/brass_processor.h b/plugins/stk/voices/brass/brass_processor.h new file mode 100644 index 000000000..b6c5d2c82 --- /dev/null +++ b/plugins/stk/voices/brass/brass_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BRASS_PROCESSOR_H +#define _BRASS_PROCESSOR_H + +#include "Brass.h" + +#include "stk_processor.h" + +#include "brass_model.h" + +class brassProcessor: public stkProcessor +{ +public: + brassProcessor( sample_rate_t _sample_rate ); + ~brassProcessor( void ); + + void setControls( brassModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/brass/logo.png b/plugins/stk/voices/brass/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libclarinet.la + +libclarinet_la_SOURCES = clarinet_model.cpp \ + clarinet_model.h \ + clarinet_processor.cpp \ + clarinet_processor.h \ + clarinet_instrument.cpp \ + clarinet_instrument.h \ + clarinet_instrument_view.cpp \ + clarinet_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libclarinet_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libclarinet_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/clarinet/artwork.png b/plugins/stk/voices/clarinet/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..d75c8f0e5a2dc2cb43d248dbf02f60c6298c0f63 GIT binary patch literal 71622 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 literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/clarinet/clarinet_instrument.cpp b/plugins/stk/voices/clarinet/clarinet_instrument.cpp new file mode 100644 index 000000000..bc4b54777 --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_instrument.cpp @@ -0,0 +1,103 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "clarinet_instrument.h" +#include "clarinet_instrument_view.h" +#include "clarinet_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor clarinet_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Clarinet", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Clarinet noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +clarinetInstrument::clarinetInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &clarinet_plugin_descriptor ) +{ + model()->reedStiffness()->setTrack( _channel_track ); + model()->noiseGain()->setTrack( _channel_track ); + model()->vibratoFrequency()->setTrack( _channel_track ); + model()->vibratoGain()->setTrack( _channel_track ); + model()->breathPressure()->setTrack( _channel_track ); +} + + + + +clarinetInstrument::~clarinetInstrument() +{ +} + + + + +QString clarinetInstrument::nodeName( void ) const +{ + return( clarinet_plugin_descriptor.name ); +} + + + + +pluginView * clarinetInstrument::instantiateView( QWidget * _parent ) +{ + return( new clarinetInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new clarinetInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/clarinet/clarinet_instrument.h b/plugins/stk/voices/clarinet/clarinet_instrument.h new file mode 100644 index 000000000..73c4b1a32 --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _CLARINET_INSTRUMENT_H +#define _CLARINET_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "clarinet_processor.h" +#include "clarinet_model.h" + + +class clarinetInstrument : public stkInstrument +{ +public: + clarinetInstrument( instrumentTrack * _channel_track ); + virtual ~clarinetInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/clarinet/clarinet_instrument_view.cpp b/plugins/stk/voices/clarinet/clarinet_instrument_view.cpp new file mode 100644 index 000000000..54a4de7e4 --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "clarinet_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +clarinetInstrumentView::clarinetInstrumentView( clarinetInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_reedStiffness = new knob( knobSmall_17, m_topView, tr( "Stiffness" ) ); + m_reedStiffness->setLabel( tr( "Reed Stiffness" ) ); + m_reedStiffness->setHintText( tr( "Stiffness:" ) + " ", "" ); + + m_noiseGain = new knob( knobSmall_17, m_topView, tr( "Noise" ) ); + m_noiseGain->setLabel( tr( "Noise Gain" ) ); + m_noiseGain->setHintText( tr( "Noise:" ) + " ", "" ); + + m_vibratoFrequency = new knob( knobSmall_17, m_topView, tr( "Vib Freq" ) ); + m_vibratoFrequency->setLabel( tr( "Vibrato Frequency" ) ); + m_vibratoFrequency->setHintText( tr( "Tone Hole:" ) + " ", "" ); + + m_vibratoGain = new knob( knobSmall_17, m_topView, tr( "vib Gain" ) ); + m_vibratoGain->setLabel( tr( "Vibrato Gain" ) ); + m_vibratoGain->setHintText( tr( "Vib Gain:" ) + " ", "" ); + + m_breathPressure = new knob( knobSmall_17, m_topView, tr( "Breath Pres" ) ); + m_breathPressure->setLabel( tr( "Breath Pressure" ) ); + m_breathPressure->setHintText( tr( "Pressure:" ) + " ", "" ); + + h1->addWidget( m_reedStiffness ); + h1->addWidget( m_noiseGain ); + + h2->addWidget( m_vibratoFrequency ); + h2->addWidget( m_vibratoGain ); + + h3->addWidget( m_breathPressure ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +clarinetInstrumentView::~clarinetInstrumentView() +{ +} + + + + +void clarinetInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + clarinetInstrument * inst = castModel(); + m_reedStiffness->setModel( inst->model()->reedStiffness() ); + m_noiseGain->setModel( inst->model()->noiseGain() ); + m_vibratoFrequency->setModel( inst->model()->vibratoFrequency() ); + m_vibratoGain->setModel( inst->model()->vibratoGain() ); + m_breathPressure->setModel( inst->model()->breathPressure() ); +} + + + diff --git a/plugins/stk/voices/clarinet/clarinet_instrument_view.h b/plugins/stk/voices/clarinet/clarinet_instrument_view.h new file mode 100644 index 000000000..046b25536 --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _CLARINET_INSTRUMENT_VIEW_H +#define _CLARINET_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "clarinet_instrument.h" + + +class clarinetInstrumentView: public stkInstrumentView +{ +public: + clarinetInstrumentView( clarinetInstrument * _instrument, QWidget * _parent ); + virtual ~clarinetInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_reedStiffness; + knob * m_noiseGain; + knob * m_vibratoFrequency; + knob * m_vibratoGain; + knob * m_breathPressure; +}; + +#endif diff --git a/plugins/stk/voices/clarinet/clarinet_model.cpp b/plugins/stk/voices/clarinet/clarinet_model.cpp new file mode 100644 index 000000000..c1d2fdac1 --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "clarinet_model.h" + + +clarinetModel::clarinetModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _reed_stiffness, + StkFloat _noise_gain, + StkFloat _vibrato_frequency, + StkFloat _vibrato_gain, + StkFloat _breath_pressure ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_reedStiffness( new floatModel( _reed_stiffness, 0.0f, 128.0f, 0.1f, this ) ), + m_noiseGain( new floatModel( _noise_gain, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoFrequency( new floatModel( _vibrato_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoGain( new floatModel( _vibrato_gain, 0.0f, 128.0f, 0.1f, this ) ), + m_breathPressure( new floatModel( _breath_pressure, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +clarinetModel::~clarinetModel() +{ + delete m_reedStiffness; + delete m_noiseGain; + delete m_vibratoFrequency; + delete m_vibratoGain; + delete m_breathPressure; +} + + + + +void FASTCALL clarinetModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_reedStiffness->saveSettings( _doc, _parent, "reedstiffness" ); + m_noiseGain->saveSettings( _doc, _parent, "noisegain" ); + m_vibratoFrequency->saveSettings( _doc, _parent, "vibratofrequency" ); + m_vibratoGain->saveSettings( _doc, _parent, "vibratogain" ); + m_breathPressure->saveSettings( _doc, _parent, "breathpressure" ); +} + + + + +void FASTCALL clarinetModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_reedStiffness->loadSettings( _this, "reedstiffness" ); + m_noiseGain->loadSettings( _this, "noisegain" ); + m_vibratoFrequency->loadSettings( _this, "vibratofrequency" ); + m_vibratoGain->loadSettings( _this, "vibratogain" ); + m_breathPressure->loadSettings( _this, "breathpressure" ); +} + diff --git a/plugins/stk/voices/clarinet/clarinet_model.h b/plugins/stk/voices/clarinet/clarinet_model.h new file mode 100644 index 000000000..2636ccb39 --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _CLARINET_MODEL_H +#define _CLARINET_MODEL_H + +#include "stk_model.h" + + +class clarinetModel: public stkModel +{ +public: + clarinetModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _reed_stiffness = 64.0f, + StkFloat _noise_gain = 64.0f, + StkFloat _vibrato_frequency = 64.0f, + StkFloat _vibrato_gain = 64.0f, + StkFloat _breath_pressure = 64.0f ); + ~clarinetModel(); + + inline floatModel * reedStiffness( void ) const + { + return( m_reedStiffness ); + } + + inline floatModel * noiseGain( void ) const + { + return( m_noiseGain ); + } + + inline floatModel * vibratoFrequency( void ) + { + return( m_vibratoFrequency ); + } + + inline floatModel * vibratoGain( void ) const + { + return( m_vibratoGain ); + } + + inline floatModel * breathPressure( void ) const + { + return( m_breathPressure ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_reedStiffness; + floatModel * m_noiseGain; + floatModel * m_vibratoFrequency; + floatModel * m_vibratoGain; + floatModel * m_breathPressure; +}; + +#endif diff --git a/plugins/stk/voices/clarinet/clarinet_processor.cpp b/plugins/stk/voices/clarinet/clarinet_processor.cpp new file mode 100644 index 000000000..3151e53ee --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "clarinet_processor.h" +#include "config_mgr.h" + + +clarinetProcessor::clarinetProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate, 20.0f ) +{ +} + + + + +clarinetProcessor::~clarinetProcessor() +{ +} + + + + +void clarinetProcessor::setControls( clarinetModel * _model ) +{ + voice()->controlChange( 2, _model->reedStiffness()->value() ); + voice()->controlChange( 4, _model->noiseGain()->value() ); + voice()->controlChange( 11, _model->vibratoFrequency()->value() ); + voice()->controlChange( 1, _model->vibratoGain()->value() ); + voice()->controlChange( 128, _model->breathPressure()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/clarinet/clarinet_processor.h b/plugins/stk/voices/clarinet/clarinet_processor.h new file mode 100644 index 000000000..0a65c35ff --- /dev/null +++ b/plugins/stk/voices/clarinet/clarinet_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _CLARINET_PROCESSOR_H +#define _CLARINET_PROCESSOR_H + +#include "Clarinet.h" + +#include "stk_processor.h" + +#include "clarinet_model.h" + +class clarinetProcessor: public stkProcessor +{ +public: + clarinetProcessor( sample_rate_t _sample_rate ); + ~clarinetProcessor( void ); + + void setControls( clarinetModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/clarinet/logo.png b/plugins/stk/voices/clarinet/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libflute.la + +libflute_la_SOURCES = flute_model.cpp \ + flute_model.h \ + flute_processor.cpp \ + flute_processor.h \ + flute_instrument.cpp \ + flute_instrument.h \ + flute_instrument_view.cpp \ + flute_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libflute_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libflute_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/flute/artwork.png b/plugins/stk/voices/flute/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..9f146b019062aa9f9354ee6d359d4dd619b4432c GIT binary patch literal 71134 zcmXtg1yGc2xc1WBEuGTcT}y)?-5?;bd~_|1bW2N@ba!`2cZhVOG$;-K%lXfNVVT{T z9eC=#uX;98T}>VX^&Kh*1j0~Mko^e!et7#qMg$%sP7K6=Uofs8<)uN@Q)I`$6U0x- z^0J`Ux9_~Jk|f|26ek6JR}csd@9hT$l#xXYyoltcs0v0}frSO33gpr3!~idmyMguG zWE}td&&t6KB;#Ub?q+34w7ga)x*(NSy6y}Q zlWhmyC(BTY-^L#4U+S4??brI0B$a{#;m!FJXHG%7_eqp3MVa3dq$xsV=_I6Evvq@| z1?Zx#B*}4Hk_0i@sxTGRd;MHPshj&&hCSLSJQmBYH_p3qT-PaGW9kmXi4!Rmgy>Uz zeSc?l9p*r$F7Ji~y7T@2>IO7n4q!`ROES?1R5e|>=Ny)nqiW#8fXd5ZLBtkc4}}_+ z)Rlr>ldYI)aNuELxEP~gHSqfkqT8#1r(dW7mkj*nm=LP?ez(gJhg~&sA?l}6qsxSt zN3>UKq!v9P1d2}Mzz20o)FdqHXcI&gNb09vwZFWBp+c9r_ceg*K{1Q)6X{?;gU&Gy zEk5>3{SrPmp7+oFoFPqw1`t_|kn-}q=X;@KD-?^EN=>HF_UirTyRLho>pw%z=v936 ztZ*PYMH-0#>&ROfrqBXLvluCDZN_n2cjNI4hNMVe_6;;~JSprS;*Zv0uM%+<$ySjC zjM(r&qT!;`8gPt9`g#xzd<15Qd4a;L+q&(rJEYNwjNs{e~`Neox%9|QmRTpta5nnHEd!{4|5=eNJ> zE7g~E2=%lHV9BXCTx^QeXGv47m@@VEglN21P*GF%CpAHKvd-u;^x8`Ki*}<(0>ixq zEYZzP;GDJre7Srdy-*Q!ZSA&b4Z<0vXc%DTwY5hNhMi-6+A|>i=;G*ow5bB?r<7Lx zqQip+i6y_|gC+klt?hajdoI@RiG>puS)dgAsc46+{<)!asMQxZHJ#UW>dKF8}G{w)S0mvp0t3fT-ccuc2OJ2Zp6^;Q4wst(7F zo{iYsl>fUg^zQl+;YYnn45sN5>$q7}ihDiY?(~#TO-d>sogyrG>-A*7N?@H-L$jQ* zp`f*GUQ?nNOBAkD-u~6)b;i`^v)iUHOjt|(gB&7K+*|WOn~N^^K!+9;~IT+ep7>uRAOE^Yo1-QHcAzo&1xqrhx#5u zRJ~*#+>zw&#RayzamN65SSgH+fxUieZBs);DYe8vDqkEeG(fWN8%QcIKUogj<~x&5 z%C}B=rf{KgZeV|JR57ALSER7>7L~B!5%m*BAFf18!prg+rE{#m74a-I%eDLx;)iTM zCoo2_yK1C?z{Hfdf#yVOa1BS8|0_hXK;IF}xi$c6{MfeOIL@)aP)(Ct z{5oEh3@ab^q-%>XGtF2ubAHQ3j6SGvHB@O&kCf1Z1!`&n8GFRx#(66uguaWt-5no8 z>^Bf061$(?wQ<`cg}jK%^LCr>z1G0M=MY)%+AuP6=EM9R_G+Eh$**4`=^qm^YoXX( zBC|Q9QXk*AJS_e5&Y7%m`HwjiO44OQBxUC0<%K*zkyp;FXRVOu#gm*m*{mHZNs3?8 za3+jw_UD}vg!qAzzAN>ymk)McRLkTm1IsY~oI$is#iE|o!p`v%_7IfvRv0=JUfJ&^ z{GT)p!sSP8?Se|?LB$wiE<3|$tBEW0=6Yn6!20s9hX}c--+CkHNqCTZ{jl#ifMcf9KZBSo0-hENNL*R zZb@+`{{~O@Nc)aj4iErhR4DTj1D^WH0h_omCP=Y{!A4}`Rb@)j?T9PI2n z{h?@HlU=t_Tmc8^)@FBC&ea1%4(#EjFyuDLd)Z^|irfU+yglq>`C{HCwo1ycXv$z`<*6Z|3n?Uq=ze#JSfY$yvmrifI*mO@$3rusv zC(ERPVGN_k!QlKB9aIArp%^QDb5RNlYip$CYU6>wf0mse|NV!K2p2Q5+Xgp|cyd(q za>zd6`9Sg-AE5Y3-{X06McH+-dFIzW521X%cF9e;J=-@qJi7gL%1=m0SX)~g=ui{B zm_o3S{F`_RYph%vjHQVLBSwc&)THNtxd}grOp9Os4NZTAhC5_F!M&u}n z3)kZc0o!Z<{wkjrjOE;dW@xBoMUU9Oq;vJaI&G9wfe%|Xd+K3aE(yiy@z8FA(_hA} z`03Ds;OmxKD65@H?; zyC?{Wh=y?P5CbtV4o9-^9wp`j1K%l4nl=|wJpPyrqOtg|DrKQxVCO~nskB$(Rs6Gg zO!}keOQ&k1?qv3PoBEpYQxy5cxUtKtW6knFo9m&|?Yigg-e}U1N5{&qU#=QIcXkSV zvAe$_P^W6^&*i(d9XJUN+Vc+}N!;~0LQ=j^^~#H1;m|3@%-Y0Y`EJ1h4dU)1Tq4Ge zA1>Jin$)CVji3$}gaU7T7;TbDzav;o^dJAwzC9sKFf}|4;utiioOSlpjb4~ZERR*m z03UG~*8iRW9??Z*OSGWq*`^5>9|}`M%KJ~SGE_{2(kShkhZt$Jr^zEMq=$VR*7kQV z6C)Kbb)!qZ0I7{!d&-gYnwnbM+#I&JsLgugtzf{`Xut-vV>(5%FCc1TuVGSH6B!dwc_d=IPV@@Z zf;&c4@&J3elC;xC3ti;#2}xV0264evmJZp7Ynxb)u10cg^OvehGpg!>kJQM#(s(o+ zF4K9srT?*MTxP+@G<+_FvIe~(2Fc+M)vFClDD_*ZWv$4z{7ULzl|0$l$nmwIjNL=p zcZ~UnD&V;B6t_KcJYT|8$>IF`;122?9u9+pi2g~TLrK($o*9L;(noHG#7Nj%*|m=JxHr`e&s*#nMumyiW zA_WFY+4^NG4XLUL*u6)8y{oyUrcZ%hIe&~F)+LEQbOj^mcKxU8B(mD13l-$G{>LQT zv->)`p0T+c1XNsXn^?mZ2N;lAmLN41g?eE#AvDJV7>Zk8gAqFOB}30eKN=|T`fyrV zC>qietNmZ?mtj;y#_>;6^_SLLO;`JtoqexDc*MG}6_8{wlO9|Ntv~WpO%owVVLn+j zn}-4wb6F8>!x-5uIqbZmFR-fZB5Cx#^4t=08tK0I^QpL_=0n2$6fUdg|afS zZ&-Azw`S!jhngVE-=}n=-Pq7o&dBeaK9B%835ty8A zBg4#BCyaB`C>(YZmif=xCGU<(#Tt)JQMq5}-(XV}j2PBJD1#f(2z;{7^5);BRx<5* z1AKccW4;h{Oj5ehLy#pjj57v%a8oU zqXg%)eY5dG(fzNfW}C(I9u*T4GcUP+co^}l^I9!S#1k_!GxN&R-JO7ig=J-BMY3iY zZ-6U%^6TVh#;O64@_MJ%1SADStuDo#LF4v%7ZZIZ#%V)X$(mn~7?yY4GH_n+K&nOk zo`SX+1&pY=N}8yt%vj9-jeXKjrA0n)wU3)hq?77cm&>9o;I!}721HbF7!6s!obY_|y_=5a=#G$h8ju*A`iHr3Q!J3r zh&F27=dNADy8SONtVy->KuL;y$gBoKwzbQh)Er-l{tJgsj!=F4LOyMt(t3A{9Bmrh z@?TGPHu1huF&WzXBFq~jh2!vg@r-F|i;QBI(m&p;z4&R$g^bb}MJDN5)KQ-dKCq_M zY@S>A_>g`Ozo!G11v`xTtssexZW zQ4v1?7wV@{R?fVVUa^o2rnX|+{B||%%s!ri`gtRz8Q-2B8CHb>Pw2zMBLGCT^$W^b z_Q342@46@A)~)lkEJWvd!T2QbQVL~tu4UP3^2{u@8A`I+sYTISW4KcId5!dA^{{yf zbZmiH6I1`#hm*K+ymnATAC3xJcc(-y{Wc%F)KP2QL)*WLsD|}B{lEzeW0lg(oV>1- zA}nKVZfZgR-QA5yys!~Dxw_)@T%h#?2Ab^tJN zFf>-=yc4g+Yl!8dT(=9g=dWQ;=zPhCT^Y)U8KXO2U`t3m_PnCI8}G^o+{immSD3~Q zg(3i4@~s5*Jf*#Uk$+jHz4JVO^89#<3CmVVo7?;&S*M%Vm-9>S6xUc~Q>)u;QJA45 z1P7HRf414<7=?7C+@b? zGhZx|q^@KvB>CuNugDsHq8l0-dOcl^)OB=3dvwI25wUNbb({|$955^`FVEUF)pd7= z0sp*(g$0~*mO_Li9#zgVi!mx=L+J%lphx zUz-Dv>q6pSU4<9~p@@b^4hA^}XSz6I*6sAc{m`njsdfCjIfR9%HZrQ!GcSjQ)=yxm z;0Ts-GG+aN)h-@m*vv-Kz9VqO;pEv1!^k9Qt*M-BzN(s@_cJQ5sd^Q@N}?GAg7$WP z-kN3=pIWYXtZw&JilFBiKnrwc99o?Jo#+EYqJTgkjLK=K#kR~u?xGaY)*t4zTvRq( z@iK%!^EFEf=}NX`dv{qOysD!zq&E2^x{L>c2#afw$3`Q5PE^#@!sg~*r$X)3A3m^0 ze;f<3&4>!(4hq6-G{d&qrfK3t?FmiVv9LBLhINnKwuv~*?fC*UYjfdDbN)=~X;-%n zV|;MXPx~;sC^~8Gb(1vKRx}c0wKErdIkfZ~@6!jqwwZGP8STO8(ads=(vNdr&bv^k7JL%Rr_tq%L)>B!12g3|@>cNuw zLTB8IRsU&AL68g<8t}pT5ou_=Tt8xP21Zn9{}ptmdQ|W^im4(Sik#c_BbGL#JXco_ zrP#4@VG!&LR*k^Rx$st7|7!OTL(u{=HJ}qf-%$oC&6Dg`VD$c0Qf9|B|FC^Etxo)9 z_Y!$p;+CxY+B3kBr1|-^ns)H4Cq20xJygO zu%5?2J4oHEWZXQdoBP8s(- z0Q6la)c`GF{+KF`=9^9heST=w30V@`%saki>ZakBmu{mxkBZaM1d60cKz|f{x!XOn z{*Wt21}?1};t##@+<+o^cd_ehgch(~ENFg!0Rj6dg3)4-GfT{e5Uh{fz&hMw@%`IiPxi4$i1Ndh{If*d>y(g)?vX3wBuRw z?e2dVx-S8{t!aR_Gisw1oAy;cWDo1p?4x+bnR@jrq^<-}Xd`KxE@_ zR{v0=n9u;sa!X-qD*XOy;wV@W@KQbm zu~d`;JifFtCD+){bi|TdiWp2hv;Q;_@br37EYKB6;YMkC*H1L) z2!iNwX<|TNBqb$n^?T&+z6j;mB0u*+0yf;kv$(^0d+1?q0L2Hfzxd)8*AnL$tfl%R z)*rZbW7sIeD?48bg|6)RgFm7IaOb1+PLosF2o~kDm=)aJx`}eC)zpIz9VS0nw%SPD z#nIMd@Tp2kH`i0d60(X>Wf}%5xj)Itrk~L7Kk&~l%2YjD?*iZIyY8A0?mI|llv1m zM+TaL-NR2g!lhz^+}c#zoGL;B55PctxN|Qw)%4{MYJPtH**|{|(D9S|U8mXlvqYgT z)zpCll$aJ#G(>rkuJ#N=Km*m!D9BK;ob?TK?7m41Ia`Zr0XXOSy0Pz>Ywp0I_^l91 zuwc29);I!G5Fki}v&fY9KjinU1Fqf&;CimR6K!0jwrpwUKH!VL0#ey^?(0)a$SJTk zD;qx(#s@YcH1HrSC|$8!F3_h=wf;}2^Q|w_SaaS4sQy?z*~>MvS1hd?Sg!%Azb2w~?$zG>)f0@7c$ z+M$7ZXmBr4cq}eV#BhjBi=m#0!SLJ;t_q;7drAqVyo;41j+N^t-CoNa<#ENg|IHk1 zr&NTw0~-1zH1psGW=-$@=f`C*02pg+JxE=gM$?T_2JiLiOTZ<1E9A6eD; z_}^vWM0<4|&<)#!H(53~8ag^emRU0CBE3GVx`|YgtA3R^PDx1#V>t3G)=(>N8vgfB zO(r!z<2wF%C4PH8_k|bGR{&%PET+@(9DV1@-_787-@VsFWntnQ^Z#N!yZ#v8omfjm z15AU9ssyND`l+qA8$Or25-+=VJ48JZX(rw%wiz^W7WNJfJ3B+st-kjgLL8$JEO31N zGR3?>Fx=tE!kimn+ad(OlZB+LokoWoqwKD`ZtcU5jUjn$X*IqG~fNhbnLa z-nE*ott`rb!m2o5f@8gClD8mfnP8k1#*^6Q1+wd$!J5}4VzqGxB7_alw)Vbou(Fx~ z7|?nu2VAo(qn|qErRhKd#;NBWIygY7tgbFtcTgVWrlrAdfDu~AQ7aj|<=Eo}YwYzy zU9f{N)qg5^aZ}iVPO2<$eekK>Nu!#Eg;IVzT#)F69O)%Yp z`s0Pom6fFQj{@N2>_oq^x=K;|lXRemwzh&b4Rg-(VJr8RrNtV&CiP z0;o2Ai?aI;43rt=H1_Q`4J8zf2%y%NQPDNnoN;wQFXogY9U?%1(bLoG9qM40Mo^Mg z6TeXTsAyenZp}$XMN386}xp~QnCb6vJd(Vv@IYX*!ib6?UfZ5Cv3BWWb9);9%%IjshJgvD8LR6 z_w(IniSJh_nIFy^i439BPZg?_A^76(u(r(@wYSA>*1HiB3U@FD-mChC-y0r_m4^aL z6<6d7=s&0NH|Bly@%NrwRX+D9&RlQf(F@eTEA!>j$% z+sBd5Z2khtrn~=MAGkHMbSaD>WCAL!W8;o~;yy*pgTkpcL7HDk0fFe)I;YQ)yDt*& zJ-l|!pLf}6hK#dFkB_zPvHm^r+1cbP<>Owt* z)Md7i<7V*M(!`=@+n#(!f7Z9v$RrZf2fB;>jOi?N5q$y_7UJC%FIg32l_a9@uy67v zER`3r=>)@AL&OWLwz88bC*TIw%*QOn#0appV&QIm>gtm8#MV)H{bE)(=&*pGtS8T5 zH7JP=rw_&SpCWo~RsM}{MFm`9r51U!rw70Y!Uf~%>gs};n)u8k+1NNbYTbn8Frs-U zIVs{bbm*fxd)uxLHM9xB2B^VMgokGs%*XI=YQ=HY${~1a+V!jheSP8pkG}*M;+(sS zzHYrzscpnBzFkf?I;tw?nR5$AN34Oq!0)3a{ts6CSq`q(PzaVJ1Sdx1!POhzSyFoBDwg$Iv!Bn^3WmA zQ)_zJx`RkK30NJUufxL-W1tAeQ^80qZD63h9A4wF+vy)HG#l;e4_$Gi!e*X_PU)vv zS>YAuM8TPGpY>6Zd!70HilF2qUk^Myjn>YAPps;a`YAt((`z3Zm*!%VKbO%8*j#VCEud%!vg1<~^^^8j41XduK3wP`Z^G~0KjnY9^CU0$E)7HMd^-e7m-%uf-= zo1##@KMp34y=N7J83k&+V*4C`RBPMoX_!=7et}sO$u!a4L2VNzKUXKJ>*#&zhIi*a z&<_g^mN^_nK|X8zRmv=aq%!ObFKNz6y!G&xv~@R5M4<(nMr5c>yfMik!>Y{7S@qt1 zk3=2OziCPB{N#_dHE*%`fNZrxe&+^1L*|;BSIf9}4`&L@op*mz1-09n9 z=b&e)O~pX2%Tf&UbhvMsCJa(H|Ip^A?Tg zs+HJyuI~9lh^u(NaAKE#&o`3B=Q55?x}9!hS5itCnsKI zZ8jfPSU+Tg;@@T?6SMgdorKp&`6v zO!oJD!PRK#_p%yr#5YJ@+o42Gf0o!7i)tGi-@1zuTozG|N=ZaNHlH1OI4#g@(B)~9 z!9i1_NfD9s#P5QsZHMmt(DYN4?fRg6cnSb!1@^meHs;dOQt2K_q;D3S^W)MvRtUvd z>&Wa>Q^c5Fl@8i+jq$+tHg!MeVC1B#?H*GFDua_=XcOi!W$XwnKDUCvIN1-vFlxC0 z>WAm<@%1K;n8879)w?y8qM0){&g@AiC$EUEF26PCAwrh8yFrGNEJ=j-Z>hXOX&LSA z%bn;WH{ma~=`tgNVuFGp`X(l+p|Fy|nTlTeiPk^5&@!#k_YPt?5%^k=f{X z*$WQFdAhCBFqz)NquKf2nh-Es*+=OJWs;l@eY249Mp=*+Q>aOaOw|zke0!T=nOApS0iTa{$+ zw)DfVmX?Tl@y)b}K*Kz~I!7a90N*g?2Y)nJ(e0L<*7y?6LD7p|AUa;e)=&-EYtY(D zyPKg2ytsfE%8-_PIG`(KS+EJ=M(5K7VjEwAxa}6OhbjChA}*}J_-bj(+(PuqJPS4t zgQ362-DWN7Q;WF<_!?{bKIcbqqLWf1R3IPg(qaB&Y+kfmQx1Bb8G z{STpu_c8r~d+g8H@O=RQT;gp9YwMK2 zK>4xP+#G?+VPUDWrzal3qVjUoqWRU3m@rxuCby=gPuA8Y)cgsYp*P7sR4i%dMo1f& z%`Gi&K%8Aj9<)}OJT*Ln|D4gAS6s^Uz8eY-WXiLwP&ReUil{UYKWWbdxl$P$?sYrhN1 zvPQz}`QR22EY1xGWjjwj!i{xRl!tKTUvtZD@|aVNHNYsYBFfR0HYKGt6a3D={xClI z0>c+cj8f#5XRg9%@|B~c=6EvS6F`v-ksVHZRep&0EOifeQZ4g9B7uuRlGr^@!6RdH zKsP#}QA%h_-sgFy600eHfRYDU{Oln|0#o@KlmAScwh`{s}Irv%5KGLTG2Qk zn3q;ERcKCmUJEx0CS9?{Q+&DNoaY{2@^|BsF%8WuFw;z%{Lpi(e)G@#A7W>&26+N*P z<5KVp*Ymoo6wwgylepf()!@??(YE_m=_qTd#3jlx!xDrS&erKGYwIwM$Gj6~PSC$% z%FYnnLO&zO8S$jfcQ@G1$t#gq=yUvP=J2oxS$5hT#;~aZgw;46>#41q<9R&;BWcI{ za98VTT4Y5tEhe%Xa_pgd3*+T)Y7F1h$up(o|Cqw=P;%BWj(@bpu!^)14__k~?nejA z9e|CyK8^;Rldueus;NsiVRDk{ezHil5;&ebZ~C4H z3DmOV8)w)nrJzn{D)sJS-w|YC$B?h4_@QV*rQ&4pK?;93w?@Kqsu+WzDkrt2mLFs2 zql>L-WzdyPf;b3C6D1)wJ25Pb37h6Z$MuZ)aBLAAJ_2XR6=S$0p^z*YSGLF2N-zQp zE_V)nS~T*lnYjCYte>4|r)I=9E?$fH6%YQ0b6cbA4eVERi@aN4!XA1N0?V^;0Phy?#ajKJ+mp-i`NDbh z4nrtt`rv@j8SYP(=rMl8%7QCAd2ZW`oz*7D5fs>q;*^)oA zuT~hb!m{2wqM95I5C>dsW^)?ea5WFaYRA^YcA94c$ zCj(kknUmAg?V>ajT%GmRRc7IJ_M%+;gCw_m0D=MlKsYq0Hz7=vj%mG!9D^&Vu?4gTGn0r>=D z2Op$4RCzR`blnxgrWD3ahH#9JgQq7F4H@w-n}(qXa(ka&jU$)9d0n~8wikeSjA?O9 z{Xy2uUzebmKy{^f6g&ELx1lv%|T{cq4qSm=m3z!1W4fR`LUR z*J3zu)?f`YUb5}gzmU5z-JYo60XS9;4ht(Qu%7k&PjnXd*q@dR=N%I7ghp#CvA=%h z`ogLj=_8KQ-FG!t&$9W`;B(HRR$uxYUE2Ge7xzxU`DPqX{2^2&i%8crJm93>d&8j%iaI@L|>l>_Mq%1(x0oCt7h!z9Xxt*7?=aj7-KA1 zb<|XrO3OKwHNQ8Is8p=y(5kh<=VsiL@eacgu7x%gXjbWeXm^Rd7B@AS(fobm99|5A z@0CN`S*scCTncEWAph`hDQ&v3ydOj9)V`BOqtM2vux>G z;&s4^YapVb5OYRq0}0jmNrQUU;BBpFv5b$%yBCHG9Y6LoA6DxQX-arTKCW4Mu`XV) zoQ+m9qsz;zwK~H+K0Ze55(5sYo}r;kw5)*Fe@!lC#@hOp`cVV^n?;tQqgpd=Esp4- z2tmq7x`20b>_)f177eSJSn3@Y!p4wXt>aw&b&BYVp;q zXbHFM%0yiMIXYT+I(`sDJoPZFttl@Dz+Nq2u36_m<={mC8trs{Wd-P|IRygouI6jT ztkJN?33a;kvClh?K(s5cQzOXAEnDns6-0|JId2qCu!|>Frvgy!XQkv_hN_q4Mi-=) zIu3-4<@sh|?MiditflF=%o$_Yd!&Y^2O3K>9b%+dY-ht+4!ry3S!wAL)!*T$&j$vt zLX%?nMuk*oFrY);y~&hvuBI2x`q5m)w!~Kqkq<>`!#Kno$OGz#T($Uo6?ryxM&_7- z`OX?Z)m#B2a3B_;u1x?0A)F2-NZvvw&dyRtHI)REa@6&g#PjJ%k%{d*hXeSdL(VY( zb2vFa-~G2l2rFH=ytFjq&;%;te1~~S!*x+@)J6k6t2l2%^4#8Tjr0Z%s@Gb%!@hylHsSeu8@j2@Qf>-MJ zp{4B3yuIH`>RGwoVHQya!i)m=kd>W1$|36`>cH#|m|=p#JzfgMKF9hJxrqL*(TSyn zvciLYk!sHe_fI%=*x0CZEGKBsd|v|cvSy-&GD)#iw#8mC4b>QIoS1vRH}eh2T>^J-~2|*xbNp(F1-&DSW)T zrUj#kX-1}|L~u<_O`$-o9h*T;joxWids%-x@1cDC_t--TXqNv8x0gC*!L;@g_xlc)e)zziSR$e_dSu>f&8bz}PtjS&X`J=eKy@OIHttA{56*aaR^h@TKpV(cQNaCz) z?4LZXkvcj$-l*c9E7#am9(m7gh3T{1+gtSv43f7~RffwTXvTQ?Ofw3r)yxC7mSiKu zv0-1RIZH>x7{VUyW5dy-yu|Qyf9$#b{V|oa2c*S0?Y-d zYF>p`!%ugv8?Q~vAEEgfuWN#i2lyvPdy6xIN|hXDUx|dg#n`CGk|8BsS5MS{_bas4 z?MLd2zrEJx8oRZ7#r?L!f8W@$;z}Ww&Ypj$ZRvPlq_E%Q(Vvv6qeLA?lO+uO_ zDaq#mJF|*(8Utv=EqsYAIv&jt&hire_kIZUj)y|VugS~?4FKwd1B84k?PB}j? z5Gpf=7L;&)9g-Nj>9^tpmzAVS^LjBd-Es`jesX%~HA9O(kK853c2o_&`Bn)Yv%(dZ zmIDc?4CYnw*4a3)$`*;0^4D!6L-3>h9Do$ypAW(p%1ohe5Tm-|tpDI3Oyy)v z)EO4ARKDAukqvD3!4xN<6gTKM$eUEKW8E}{zyZ=QAgLL(yP>d*j{`nzLC6ys1~A^Y za!{g{-M`Zhn}<)+JBbYhbb=I;wFJx8qIS-J`7(K2UH;^10VhJl@kug-@a)P0^}H~eay<5gBl^$uj3=0@}{m#b|DqjF`obae~V;QGn-bhas#mO{x1XMHrRo)7^Qbp<|co~Pb9DupF| zv~tw4rrO=QK(AO(1f1&azke6|904RBL@(jzc!z%fW}eCtiw2Y{I_I5Ldzg^HV>N3` zQF3%+xY3O%is5-Kdu{3{i-d#EQJm9~Nu&7-J^tI(9Ztt*%9gy+$yTm$V{@UkuOk6> zSa*Z(#idU8=~py}LjakZ?{9R+=dY;B%F)O-sA{>wU>uwjYQH+H?jI)zUG3cq141e2 zys-U>UZT9YKUc@g+I~W=2T_29RGb3cI^jdvXI+d%Mh{mjF2gk#JKcL=|Mp?|V@upN zNF08z?QHj-kG0mozh+gz1LGK+HqV#SfF|p)Lj=$!a0IhhamH0sz}s4Eh1fXKIM;{A zNoQY0f_$fbc};L63H#!Rlfxs&WI*C?T#4oOQs$6p?Q$-zo<+yup_cnt={m=Maj$*2 z??(3PzAxg^8+}ezWms&P_#w^?F{jJ!D0qU}`#S=}mLSxB?aZzVdwtnKKq?RrS>9s6 zUOSQRIms{qni>M6df=?5a{#M{!5a-t&%ngv;}j6mN`!YNvyj7hH%v@-3NJe6rewgId%W6Am7$F)fo(CZ?gwH zqRYFs+(#i2iRXVUuT_rj~Hq0;S8}?mKS+GGs$K z9BjaSS^$YawdqK}W0FK)SDGnYRf;U0@5Ws{PZhr+uIyUj2T!UvyyfNpq@ONJ#6u}x zwke1GZr8(Kwy9roUoRytwt}&y*2z=bKI`*AGVdMK2G;-jMf84mxJXbEa<@wVDX+?< zVIympBc&^jWi-ERIoP_b6rmeNAvvxYwH*Y{-4SgPQzdRXB^Z}YET!Kn0FLz)&Q40X z(omGacr}9EG1Ai5(9|KoCqXIVEBG-hZ@k&qP`$KkHg3eu&FIS|=&P+nO@HbT@HarD%5mly9B-^4PHBgpDt4ww}j+B2zc_>-L^%k$<%L8?8p}HJ# zynL(2vvBvrV$II#-#;@37C?BiqN2iv9>su;dDgC_uC^7K0G@b;Y7&O2?BAnb__?~V z5j6PyuAp4PAwby9cIJP2UHq*XF%^H}+yF2#oO|s1Twh$r*FMU@B+~%gfQR&H5NP8% z=XUGm@tkO2dOp}I9?qilc6}Qk1*cjkH4T7Z`N{n|a|MAOJvYid@D}JB|C(F2|88E3 z0dWH$GZ%i*3x~B;H$pK0WKQLtex1Mi=hGBc8Pz9b5`B>Hhp zCUG<6xpUQZ+kRNhCVmlw)k_>4zHy1!xnJc7&f}x-yV3Cdt(n{Ze7pI|CPM}Ja24h1 zAy4kWi#YM{&`!pRNegI1Pgkr-+!&teb(>Yp(W92EesdF%%SyE4*|l9*|D2HDCGw?d z@bE5%Ftt<K(YQs0kpb_?`EO{2*U9C` z#hUAMJ|ij+l$bki$Q24MDx&v<+ODF4EE~|7o&HM)pGC@IGrBu@t$?C)!k{X&?LYq~ z+a-G zJlu!Fl#s(0$ia!;%*b#KZ`Hg$)Lfo<_K47E$Yix zB{}G`Z?aG7bJlbuT)9yCPQ86&_0Q-Fc#WdPH8Y>w_V?{aAybd8ebCR}t_%pXv+4=T zt&ff!8cqmA1EU{Dio|AFz;zpe$;57?x`a=pl=C0<3N3VMM?bJq6g0L(bfAK9?u#$SS-FJ!4i zX$n|1k{O@B6)}Ys;$UK7ffbT5v~6s%>QK~Ot8#fa$S!}7wECR2A;mw>OTZ{?&#k9% z5@Q0fjqtZPZc~-Bm)A-}1gxHkKEo)J0^@|6NxBW%7T)XM9$cZaS@pX$V4meEpt6$H z6Mt%b7gmTbFK6d3)uPc3HE5u_ik=6Sr{~SruErbo8}Go6K#3m|yIo_8QL%t6 zyW;%Zcl_5r6_uLFw(Vxjsn8o6(zc?~dYBk-Wd>K=KGtf<9+`k&OO1dN2TMF_3C<{Y z%QjGPj79$bDRMPzZ+7qG#ol>y;F_3}l3;)IojCSBOF4H%6_pxict12pxwZ1{lR@;c zCG)y%ih$_3U?oB+y$f!Y1T11jRE$8xnUeXfJwN@YB$4E2MapT>Yjld|t2F1ot9(GN z2)I|#`CGfD|6b(G>7*qTVY%03*%;6sk~$MZ$w@4Y_4N}R#MPwqzR7-zqjAm_NU${C zeY*s8%!?aG z&Z1&bT08YFJm3!L>16te_46@$&-1UIShW(`kZ&F(w1@vWJJ&_#AgeDL?8d*|#a{yF zB>&g3nJ9&3@O1m$HAmMSO(P~*cFTHk-AEkm_RT6AkhZy)^6bV-1CGw*E$jG&K)|)Y zU1aW^ghncX|DmTpQqnQL0n^*RcU+PQ4KAD|X0qM9_I6zFM93-n5i_~%bW}PwFsnca z+`XL;)m1{f+(1J2`i^aA-@O9ct);W)UFj*+mfYKUGzQ7T4)XmdMQ~5!NLNeQ{ovON zT(S7xZFt7JlZY!2?&S9k$H||HRe!={T7BaO4kE~AKBfyL#pQV(I2LR8dx5GWp4DvX zT0%HUG*WF9V<_*N6A3RFQ0>p{cOf5qF--4&>(&B+Y#<#Aq{}!f`_L8*NHR3Qmtvnpo(Jl^lbf-m0Z@)s$|+P3<{GL!Z6 zq)D0-?ZM{}4LZ29k9JXJEYsv#Pv%Fr6Ysf}WT4OIc079*P@4CcNlQTWY zq%Hw}3syiYc|S#^B%mT!mXWpQy^~(4L>D)Z89&UbdhjWb1>`hM_5OQKHfr$Ti=>P$ zrmKz6ywNj$DJv>)wF1boX7=1?dcA&lZKMV3vrOyxSn@E0UOt;Y2&G*R|GDa*^jq&~ zZ~mr|m9?A(B#wYQ%a*F6Hy(xe5p`oCVN|~#Llr&{u=;LzlT794QtD>DUB z?UGLkJ|+pIrx3qK0hk*Ad*8%guZQCj=j#Jin3?~{e|PQ>yt$S9O9C^e?se_$Q4Q8p zX8-+%VUAx=&HNo2M>Ebzh7s9udIzhHYPHY)F}3*91Ze4{-U9ewg8%=y02x>ZH`Dab zml%Qac1=GkI_S8zL^m!e+vkD9X-WoZ$p z?mE+yv*YgGTB!=_d|m}?PU)I(-pSIw%3dI8@euC!4Y*ApVC3?FW<>X$v+(Hx;j!xW z9#&sbW?;WA=4?GHL53L_xL|n_gM<%zB*6h(}@AoY_?G zUwJoS*M8&Iy{t-sgF%p`hHUKbg#N%?p5Di?%|n!u z*!IMf&eg+&3wnZmdf2ai&I`9aug}CEh2m+s0%*`TGslvSuPRi;(}sxJz9v>-$~w1# z{mzDoZ@i7mmO?ZlgllFo4T(dk6LogNSh<(8MJ5Grb{?2Le>yRqAF_6Gp3&^UK~#?L z?aJRJ+3)byrLQUxMqB&2Dh48u_l7n!1@-wtKaEgXlkJy=av=YKsXZ&dHB^`f+`CaF0`O^ZxBov^p)qYVErhQ+2$K_9)ijI6?o&W{oV$iNXu$HfiX@^C(qGow}lwg>2#dJ zOsmyGmS%YI#*5hA*~Vxz5>ktFX_3X1-gPhh@+q1Ayf1#JKIc|8maM!)4^$@MP4j=& z9|tS|7?eaGwTEmUMe5-xa`=bQKP0};0#DHJ4-L~@t*x=PwsvgRa&*3$-wr&TPK6!j zAHsI4jg5_UoWJ7^X*XS7T1J;V0?0`1@9(33aDbiNJzTwZ6^}jk7`ATR!e~66Q=;`{ zmH1Hl7uUaVM=#{jKXd!^9lm$;-~HG3r=K1*2ru_LFZVwFzxhVPCymWDWBEC|Fxi@@ zxb{k^d|p_L<>lV%<<5&bvakGgp6BRvI?zFYUbjo+vf4#Mo zJoVI5(tvREk6-sbs-g8S`Qsy(M>pPA*o4B%J_wc(rfp0$htP@P^_Z=0LK+~ z)sds?`gTU-<<>7^9#!=njn2!x-@n9I`RUj{_nCYH7DW+GoH&8il@%A2Cy{G@BJvfF za5g+od3SGD6faw?Rx>r_J8Z(-@V%GWO#genR<|GO`J;Z1Ziv*J>7w}3O>>Mi5y{6~ zM8M^%mkSlSmhZowU*kS{dH8#W2M5PyE≶7=%AEizTBw?KVx;3`Nd}|Dvu%pwR>Y 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 RC%ymx002ovPDHLkV1gJr?WzC( literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/flute/flute_instrument.cpp b/plugins/stk/voices/flute/flute_instrument.cpp new file mode 100644 index 000000000..20d4ed31e --- /dev/null +++ b/plugins/stk/voices/flute/flute_instrument.cpp @@ -0,0 +1,103 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "flute_instrument.h" +#include "flute_instrument_view.h" +#include "flute_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor flute_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Flute", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Flute noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +fluteInstrument::fluteInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &flute_plugin_descriptor ) +{ + model()->jetDelay()->setTrack( _channel_track ); + model()->noiseGain()->setTrack( _channel_track ); + model()->vibratoFrequency()->setTrack( _channel_track ); + model()->vibratoGain()->setTrack( _channel_track ); + model()->breathPressure()->setTrack( _channel_track ); +} + + + + +fluteInstrument::~fluteInstrument() +{ +} + + + + +QString fluteInstrument::nodeName( void ) const +{ + return( flute_plugin_descriptor.name ); +} + + + + +pluginView * fluteInstrument::instantiateView( QWidget * _parent ) +{ + return( new fluteInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new fluteInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/flute/flute_instrument.h b/plugins/stk/voices/flute/flute_instrument.h new file mode 100644 index 000000000..3715d811f --- /dev/null +++ b/plugins/stk/voices/flute/flute_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _FLUTE_INSTRUMENT_H +#define _FLUTE_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "flute_processor.h" +#include "flute_model.h" + + +class fluteInstrument : public stkInstrument +{ +public: + fluteInstrument( instrumentTrack * _channel_track ); + virtual ~fluteInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/flute/flute_instrument_view.cpp b/plugins/stk/voices/flute/flute_instrument_view.cpp new file mode 100644 index 000000000..c91e2ba6e --- /dev/null +++ b/plugins/stk/voices/flute/flute_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "flute_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +fluteInstrumentView::fluteInstrumentView( fluteInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_jetDelay = new knob( knobSmall_17, m_topView, tr( "Jet Delay" ) ); + m_jetDelay->setLabel( tr( "Jet Delay" ) ); + m_jetDelay->setHintText( tr( "Delay:" ) + " ", "" ); + + m_noiseGain = new knob( knobSmall_17, m_topView, tr( "Noise" ) ); + m_noiseGain->setLabel( tr( "Noise Gain" ) ); + m_noiseGain->setHintText( tr( "Noise:" ) + " ", "" ); + + m_vibratoFrequency = new knob( knobSmall_17, m_topView, tr( "Vib Freq" ) ); + m_vibratoFrequency->setLabel( tr( "Vibrato Frequency" ) ); + m_vibratoFrequency->setHintText( tr( "Tone Hole:" ) + " ", "" ); + + m_vibratoGain = new knob( knobSmall_17, m_topView, tr( "vib Gain" ) ); + m_vibratoGain->setLabel( tr( "Vibrato Gain" ) ); + m_vibratoGain->setHintText( tr( "Vib Gain:" ) + " ", "" ); + + m_breathPressure = new knob( knobSmall_17, m_topView, tr( "Breath Pres" ) ); + m_breathPressure->setLabel( tr( "Breath Pressure" ) ); + m_breathPressure->setHintText( tr( "Pressure:" ) + " ", "" ); + + h1->addWidget( m_jetDelay ); + h1->addWidget( m_noiseGain ); + + h2->addWidget( m_vibratoFrequency ); + h2->addWidget( m_vibratoGain ); + + h3->addWidget( m_breathPressure ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +fluteInstrumentView::~fluteInstrumentView() +{ +} + + + + +void fluteInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + fluteInstrument * inst = castModel(); + m_jetDelay->setModel( inst->model()->jetDelay() ); + m_noiseGain->setModel( inst->model()->noiseGain() ); + m_vibratoFrequency->setModel( inst->model()->vibratoFrequency() ); + m_vibratoGain->setModel( inst->model()->vibratoGain() ); + m_breathPressure->setModel( inst->model()->breathPressure() ); +} + + + diff --git a/plugins/stk/voices/flute/flute_instrument_view.h b/plugins/stk/voices/flute/flute_instrument_view.h new file mode 100644 index 000000000..88349df40 --- /dev/null +++ b/plugins/stk/voices/flute/flute_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _FLUTE_INSTRUMENT_VIEW_H +#define _FLUTE_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "flute_instrument.h" + + +class fluteInstrumentView: public stkInstrumentView +{ +public: + fluteInstrumentView( fluteInstrument * _instrument, QWidget * _parent ); + virtual ~fluteInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_jetDelay; + knob * m_noiseGain; + knob * m_vibratoFrequency; + knob * m_vibratoGain; + knob * m_breathPressure; +}; + +#endif diff --git a/plugins/stk/voices/flute/flute_model.cpp b/plugins/stk/voices/flute/flute_model.cpp new file mode 100644 index 000000000..3c1e06640 --- /dev/null +++ b/plugins/stk/voices/flute/flute_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "flute_model.h" + + +fluteModel::fluteModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _jet_delay, + StkFloat _noise_gain, + StkFloat _vibrato_frequency, + StkFloat _vibrato_gain, + StkFloat _breath_pressure ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_jetDelay( new floatModel( _jet_delay, 0.0f, 128.0f, 0.1f, this ) ), + m_noiseGain( new floatModel( _noise_gain, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoFrequency( new floatModel( _vibrato_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoGain( new floatModel( _vibrato_gain, 0.0f, 128.0f, 0.1f, this ) ), + m_breathPressure( new floatModel( _breath_pressure, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +fluteModel::~fluteModel() +{ + delete m_jetDelay; + delete m_noiseGain; + delete m_vibratoFrequency; + delete m_vibratoGain; + delete m_breathPressure; +} + + + + +void FASTCALL fluteModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_jetDelay->saveSettings( _doc, _parent, "reedstiffness" ); + m_noiseGain->saveSettings( _doc, _parent, "noisegain" ); + m_vibratoFrequency->saveSettings( _doc, _parent, "vibratofrequency" ); + m_vibratoGain->saveSettings( _doc, _parent, "vibratogain" ); + m_breathPressure->saveSettings( _doc, _parent, "breathpressure" ); +} + + + + +void FASTCALL fluteModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_jetDelay->loadSettings( _this, "reedstiffness" ); + m_noiseGain->loadSettings( _this, "noisegain" ); + m_vibratoFrequency->loadSettings( _this, "vibratofrequency" ); + m_vibratoGain->loadSettings( _this, "vibratogain" ); + m_breathPressure->loadSettings( _this, "breathpressure" ); +} + diff --git a/plugins/stk/voices/flute/flute_model.h b/plugins/stk/voices/flute/flute_model.h new file mode 100644 index 000000000..a5a74c8ff --- /dev/null +++ b/plugins/stk/voices/flute/flute_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _FLUTE_MODEL_H +#define _FLUTE_MODEL_H + +#include "stk_model.h" + + +class fluteModel: public stkModel +{ +public: + fluteModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _jet_delay = 64.0f, + StkFloat _noise_gain = 64.0f, + StkFloat _vibrato_frequency = 64.0f, + StkFloat _vibrato_gain = 64.0f, + StkFloat _breath_pressure = 64.0f ); + ~fluteModel(); + + inline floatModel * jetDelay( void ) const + { + return( m_jetDelay ); + } + + inline floatModel * noiseGain( void ) const + { + return( m_noiseGain ); + } + + inline floatModel * vibratoFrequency( void ) + { + return( m_vibratoFrequency ); + } + + inline floatModel * vibratoGain( void ) const + { + return( m_vibratoGain ); + } + + inline floatModel * breathPressure( void ) const + { + return( m_breathPressure ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_jetDelay; + floatModel * m_noiseGain; + floatModel * m_vibratoFrequency; + floatModel * m_vibratoGain; + floatModel * m_breathPressure; +}; + +#endif diff --git a/plugins/stk/voices/flute/flute_processor.cpp b/plugins/stk/voices/flute/flute_processor.cpp new file mode 100644 index 000000000..5fb36bcf5 --- /dev/null +++ b/plugins/stk/voices/flute/flute_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "flute_processor.h" +#include "config_mgr.h" + + +fluteProcessor::fluteProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate, 20.0f ) +{ +} + + + + +fluteProcessor::~fluteProcessor() +{ +} + + + + +void fluteProcessor::setControls( fluteModel * _model ) +{ + voice()->controlChange( 2, _model->jetDelay()->value() ); + voice()->controlChange( 4, _model->noiseGain()->value() ); + voice()->controlChange( 11, _model->vibratoFrequency()->value() ); + voice()->controlChange( 1, _model->vibratoGain()->value() ); + voice()->controlChange( 128, _model->breathPressure()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/flute/flute_processor.h b/plugins/stk/voices/flute/flute_processor.h new file mode 100644 index 000000000..b5bcf7266 --- /dev/null +++ b/plugins/stk/voices/flute/flute_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _FLUTE_PROCESSOR_H +#define _FLUTE_PROCESSOR_H + +#include "Flute.h" + +#include "stk_processor.h" + +#include "flute_model.h" + +class fluteProcessor: public stkProcessor +{ +public: + fluteProcessor( sample_rate_t _sample_rate ); + ~fluteProcessor( void ); + + void setControls( fluteModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/flute/logo.png b/plugins/stk/voices/flute/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libfmvoices.la + +libfmvoices_la_SOURCES = fmvoices_model.cpp \ + fmvoices_model.h \ + fmvoices_processor.cpp \ + fmvoices_processor.h \ + fmvoices_instrument.cpp \ + fmvoices_instrument.h \ + fmvoices_instrument_view.cpp \ + fmvoices_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libfmvoices_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libfmvoices_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/fmvoices/artwork.png b/plugins/stk/voices/fmvoices/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..1c5f7ebd4092534933f3dbac397c9a89867a6b3a GIT binary patch literal 71849 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 M07*qoM6N<$f|IpCRsaA1 literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/fmvoices/fmvoices_instrument.cpp b/plugins/stk/voices/fmvoices/fmvoices_instrument.cpp new file mode 100644 index 000000000..ebb6280ea --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_instrument.cpp @@ -0,0 +1,103 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "fmvoices_instrument.h" +#include "fmvoices_instrument_view.h" +#include "fmvoices_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor fmvoices_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "FM Voices", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Voice noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +fmvoicesInstrument::fmvoicesInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &fmvoices_plugin_descriptor ) +{ + model()->vowel()->setTrack( _channel_track ); + model()->spectralTilt()->setTrack( _channel_track ); + model()->lfoSpeed()->setTrack( _channel_track ); + model()->lfoDepth()->setTrack( _channel_track ); + model()->adsrTarget()->setTrack( _channel_track ); +} + + + + +fmvoicesInstrument::~fmvoicesInstrument() +{ +} + + + + +QString fmvoicesInstrument::nodeName( void ) const +{ + return( fmvoices_plugin_descriptor.name ); +} + + + + +pluginView * fmvoicesInstrument::instantiateView( QWidget * _parent ) +{ + return( new fmvoicesInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new fmvoicesInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/fmvoices/fmvoices_instrument.h b/plugins/stk/voices/fmvoices/fmvoices_instrument.h new file mode 100644 index 000000000..d24046d06 --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _FMVOICES_INSTRUMENT_H +#define _FMVOICES_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "fmvoices_processor.h" +#include "fmvoices_model.h" + + +class fmvoicesInstrument : public stkInstrument +{ +public: + fmvoicesInstrument( instrumentTrack * _channel_track ); + virtual ~fmvoicesInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/fmvoices/fmvoices_instrument_view.cpp b/plugins/stk/voices/fmvoices/fmvoices_instrument_view.cpp new file mode 100644 index 000000000..59808bb9b --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "fmvoices_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +fmvoicesInstrumentView::fmvoicesInstrumentView( fmvoicesInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_vowel = new knob( knobSmall_17, m_topView, tr( "Vowel" ) ); + m_vowel->setLabel( tr( "Vowel" ) ); + m_vowel->setHintText( tr( "Vowel:" ) + " ", "" ); + + m_spectralTilt = new knob( knobSmall_17, m_topView, tr( "Tilt" ) ); + m_spectralTilt->setLabel( tr( "Spectral Tilt" ) ); + m_spectralTilt->setHintText( tr( "Tilt:" ) + " ", "" ); + + m_lfoSpeed = new knob( knobSmall_17, m_topView, tr( "LFO Speed" ) ); + m_lfoSpeed->setLabel( tr( "LFO Speed" ) ); + m_lfoSpeed->setHintText( tr( "LFO Speed:" ) + " ", "" ); + + m_lfoDepth = new knob( knobSmall_17, m_topView, tr( "LFO Depth" ) ); + m_lfoDepth->setLabel( tr( "LFO Depth" ) ); + m_lfoDepth->setHintText( tr( "LFO Depth:" ) + " ", "" ); + + m_adsrTarget = new knob( knobSmall_17, m_topView, tr( "ADSR Target" ) ); + m_adsrTarget->setLabel( tr( "ADSR Target" ) ); + m_adsrTarget->setHintText( tr( "ADSR Target:" ) + " ", "" ); + + h1->addWidget( m_vowel ); + h1->addWidget( m_spectralTilt ); + + h2->addWidget( m_lfoSpeed ); + h2->addWidget( m_lfoDepth ); + + h3->addWidget( m_adsrTarget ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +fmvoicesInstrumentView::~fmvoicesInstrumentView() +{ +} + + + + +void fmvoicesInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + fmvoicesInstrument * inst = castModel(); + m_vowel->setModel( inst->model()->vowel() ); + m_spectralTilt->setModel( inst->model()->spectralTilt() ); + m_lfoSpeed->setModel( inst->model()->lfoSpeed() ); + m_lfoDepth->setModel( inst->model()->lfoDepth() ); + m_adsrTarget->setModel( inst->model()->adsrTarget() ); +} + + + diff --git a/plugins/stk/voices/fmvoices/fmvoices_instrument_view.h b/plugins/stk/voices/fmvoices/fmvoices_instrument_view.h new file mode 100644 index 000000000..233e949c6 --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _FMVOICES_INSTRUMENT_VIEW_H +#define _FMVOICES_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "fmvoices_instrument.h" + + +class fmvoicesInstrumentView: public stkInstrumentView +{ +public: + fmvoicesInstrumentView( fmvoicesInstrument * _instrument, QWidget * _parent ); + virtual ~fmvoicesInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_vowel; + knob * m_spectralTilt; + knob * m_lfoSpeed; + knob * m_lfoDepth; + knob * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/fmvoices/fmvoices_model.cpp b/plugins/stk/voices/fmvoices/fmvoices_model.cpp new file mode 100644 index 000000000..f742e905d --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "fmvoices_model.h" + + +fmvoicesModel::fmvoicesModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _vowel, + StkFloat _spectral_tilt, + StkFloat _lfo_speed, + StkFloat _lfo_depth, + StkFloat _adsr_target ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_vowel( new floatModel( _vowel, 0.0f, 128.0f, 0.1f, this ) ), + m_spectralTilt( new floatModel( _spectral_tilt, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoSpeed( new floatModel( _lfo_speed, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoDepth( new floatModel( _lfo_depth, 0.0f, 128.0f, 0.1f, this ) ), + m_adsrTarget( new floatModel( _adsr_target, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +fmvoicesModel::~fmvoicesModel() +{ + delete m_vowel; + delete m_spectralTilt; + delete m_lfoSpeed; + delete m_lfoDepth; + delete m_adsrTarget; +} + + + + +void FASTCALL fmvoicesModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_vowel->saveSettings( _doc, _parent, "vowel" ); + m_spectralTilt->saveSettings( _doc, _parent, "spectraltilt" ); + m_lfoSpeed->saveSettings( _doc, _parent, "lfospeed" ); + m_lfoDepth->saveSettings( _doc, _parent, "lfodepth" ); + m_adsrTarget->saveSettings( _doc, _parent, "adsrtarget" ); +} + + + + +void FASTCALL fmvoicesModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_vowel->loadSettings( _this, "vowel" ); + m_spectralTilt->loadSettings( _this, "spectraltilt" ); + m_lfoSpeed->loadSettings( _this, "lfospeed" ); + m_lfoDepth->loadSettings( _this, "lfodepth" ); + m_adsrTarget->loadSettings( _this, "adsrtarget" ); +} + diff --git a/plugins/stk/voices/fmvoices/fmvoices_model.h b/plugins/stk/voices/fmvoices/fmvoices_model.h new file mode 100644 index 000000000..031da3dfb --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _FMVOICES_MODEL_H +#define _FMVOICES_MODEL_H + +#include "stk_model.h" + + +class fmvoicesModel: public stkModel +{ +public: + fmvoicesModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _vowel = 64.0f, + StkFloat _spectral_tilt = 64.0f, + StkFloat _lfo_speed = 64.0f, + StkFloat _lfo_depth = 64.0f, + StkFloat _adsr_target = 64.0f ); + ~fmvoicesModel(); + + inline floatModel * vowel( void ) const + { + return( m_vowel ); + } + + inline floatModel * spectralTilt( void ) const + { + return( m_spectralTilt ); + } + + inline floatModel * lfoSpeed( void ) + { + return( m_lfoSpeed ); + } + + inline floatModel * lfoDepth( void ) const + { + return( m_lfoDepth ); + } + + inline floatModel * adsrTarget( void ) const + { + return( m_adsrTarget ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_vowel; + floatModel * m_spectralTilt; + floatModel * m_lfoSpeed; + floatModel * m_lfoDepth; + floatModel * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/fmvoices/fmvoices_processor.cpp b/plugins/stk/voices/fmvoices/fmvoices_processor.cpp new file mode 100644 index 000000000..ee470f736 --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "fmvoices_processor.h" +#include "config_mgr.h" + + +fmvoicesProcessor::fmvoicesProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +fmvoicesProcessor::~fmvoicesProcessor() +{ +} + + + + +void fmvoicesProcessor::setControls( fmvoicesModel * _model ) +{ + voice()->controlChange( 2, _model->vowel()->value() ); + voice()->controlChange( 4, _model->spectralTilt()->value() ); + voice()->controlChange( 11, _model->lfoSpeed()->value() ); + voice()->controlChange( 1, _model->lfoDepth()->value() ); + voice()->controlChange( 128, _model->adsrTarget()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/fmvoices/fmvoices_processor.h b/plugins/stk/voices/fmvoices/fmvoices_processor.h new file mode 100644 index 000000000..9c46047f3 --- /dev/null +++ b/plugins/stk/voices/fmvoices/fmvoices_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _FMVOICES_PROCESSOR_H +#define _FMVOICES_PROCESSOR_H + +#include "FMVoices.h" + +#include "stk_processor.h" + +#include "fmvoices_model.h" + +class fmvoicesProcessor: public stkProcessor +{ +public: + fmvoicesProcessor( sample_rate_t _sample_rate ); + ~fmvoicesProcessor( void ); + + void setControls( fmvoicesModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/fmvoices/logo.png b/plugins/stk/voices/fmvoices/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _STK_INSTRUMENT_H +#define _STK_INSTRUMENT_H + +#include "instrument.h" + +#include "stk_voice.h" + + +template +class stkInstrument : public instrument +{ +public: + stkInstrument( instrumentTrack * _channel_track, + const descriptor * _descriptor, + Uint8 _polyphony = 64 ); + virtual ~stkInstrument(); + + void playNote( notePlayHandle * _n, bool _try_parallelizing ); + + void deleteNotePluginData( notePlayHandle * _n ); + + void saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void loadSettings( const QDomElement & _this ); + + MODEL * model( void ) const; + + void setMissingFile( bool _state ); + +private: + MODEL * m_model; + + stkVoice * m_voice; + + sampleFrame * m_buffer; + fpp_t m_frames; +}; + + + + +template +stkInstrument::stkInstrument( + instrumentTrack * _channel_track, + const descriptor * _descriptor, + Uint8 _polyphony ): + instrument( _channel_track, _descriptor ), + m_model( new MODEL() ), + m_voice( new stkVoice( _polyphony ) ), + m_buffer( new sampleFrame[engine::getMixer()->framesPerPeriod()] ) +{ + m_model->monophonic()->setTrack( _channel_track ); + m_model->portamento()->setTrack( _channel_track ); + m_model->bend()->setTrack( _channel_track ); + m_model->bendRange()->setTrack( _channel_track ); + m_model->velocitySensitiveLPF()->setTrack( _channel_track ); + m_model->velocitySensitiveQ()->setTrack( _channel_track ); + m_model->volume()->setTrack( _channel_track ); + m_model->pan()->setTrack( _channel_track ); + m_model->releaseTriggered()->setTrack( _channel_track ); + m_model->randomizeAttack()->setTrack( _channel_track ); + m_model->randomizeLength()->setTrack( _channel_track ); + m_model->randomizeVelocityAmount()->setTrack( _channel_track ); + m_model->randomizeFrequencyAmount()->setTrack( _channel_track ); + m_model->spread()->setTrack( _channel_track ); +} + + + + +template +stkInstrument::~stkInstrument() +{ + delete m_voice; + delete m_model; + delete[] m_buffer; +} + + + + +template +inline void stkInstrument::playNote( + notePlayHandle * _n, + bool _try_parallelizing ) +{ + m_frames = _n->framesLeftForCurrentPeriod(); + + m_buffer = m_voice->playNote( _n, m_model, m_buffer, m_frames ); + getInstrumentTrack()->processAudioBuffer( m_buffer, m_frames, _n ); +} + + + + +template +inline void stkInstrument::deleteNotePluginData( + notePlayHandle * _n ) +{ + static_cast( _n->m_pluginData )->setActive( FALSE ); + _n->m_pluginData = NULL; +} + + + + +template +void stkInstrument::saveSettings( + QDomDocument & _doc, + QDomElement & _parent ) +{ + m_model->saveSettings( _doc, _parent ); +} + + + + +template +inline void stkInstrument::loadSettings( + const QDomElement & _this ) +{ + m_model->loadSettings( _this ); +} + + + + +template +inline MODEL * stkInstrument::model( void ) const +{ + return( m_model ); +} + + + + +template +inline void stkInstrument::setMissingFile( bool _state ) +{ + m_voice->setMissingFile( _state ); +} + + +#endif diff --git a/plugins/stk/voices/include/stk_instrument_view.h b/plugins/stk/voices/include/stk_instrument_view.h new file mode 100644 index 000000000..dc161d3d7 --- /dev/null +++ b/plugins/stk/voices/include/stk_instrument_view.h @@ -0,0 +1,181 @@ +/* + * stk_instrument_view.h - base class for stk gui interfaces + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _STK_INSTRUMENT_VIEW_H +#define _STK_INSTRUMENT_VIEW_H + +#include +#include + +#include "config_mgr.h" +#include "instrument_view.h" +#include "led_checkbox.h" +#include "tempo_sync_knob.h" + + +template +class stkInstrumentView: public instrumentView +{ +public: + stkInstrumentView( INSTRUMENT * _instrument, QWidget * _parent ); + virtual ~stkInstrumentView(); + +protected: + virtual void modelChanged( void ); + + QWidget * m_topView; + ledCheckBox * m_monophonic; + tempoSyncKnob * m_portamento; + knob * m_bend; + knob * m_bendRange; + ledCheckBox * m_velocitySensitiveLPF; + knob * m_velocitySensitiveQ; + knob * m_volume; + knob * m_pan; + ledCheckBox * m_releaseTriggered; + ledCheckBox * m_randomizeAttack; + tempoSyncKnob * m_randomizeLength; + knob * m_randomizeVelocityAmount; + knob * m_randomizeFrequencyAmount; + knob * m_spread; +}; + + +template +stkInstrumentView::stkInstrumentView( INSTRUMENT * _instrument, + QWidget * _parent ): + instrumentView( _instrument, _parent ) +{ + bool filesMissing = + !QDir( configManager::inst()->stkDir() ).exists() || + !QFileInfo( configManager::inst()->stkDir() + + QDir::separator() + + "sinewave.raw" ).exists(); + + if( filesMissing ) + { + QMessageBox::information( 0, tr( "Missing files" ), + tr( "Your Stk-installation seems to be " + "incomplete. Please make sure " + "the full Stk-package is installed!" ), + QMessageBox::Ok ); + } + + _instrument->setMissingFile( filesMissing ); + + m_topView = new QWidget( this ); + m_topView->setGeometry( 6, 51, 237, 100 ); + + m_monophonic = new ledCheckBox( tr( "" ), this ); + m_monophonic->move( 115, 206 ); + + m_portamento = new tempoSyncKnob( knobSmall_17, this, + tr( "Portamento" ) ); + m_portamento->setHintText( tr( "Portamento:" ) + " ", "ms" ); + m_portamento->move( 19, 218 ); + + m_bend = new knob( knobSmall_17, this, tr( "Bend" ) ); + m_bend->setHintText( tr( "Bend:" ) + " ", " half steps" ); + m_bend->move( 12, 190 ); + + m_velocitySensitiveLPF = new ledCheckBox( tr( "" ), this ); + m_velocitySensitiveLPF->move( 13, 165 ); + + m_velocitySensitiveQ = new knob( knobSmall_17, this, tr( "Q" ) ); + m_velocitySensitiveQ->setHintText( tr( "Q:" ) + " ", "" ); + m_velocitySensitiveQ->move( 74, 164 ); + + m_bendRange = new knob( knobSmall_17, this, tr( "Range" ) ); + m_bendRange->setHintText( tr( "Range:" ) + " ", + " " + tr( "half steps" ) ); + m_bendRange->move( 55, 190 ); + + m_volume = new knob( knobSmall_17, this, tr( "Volume" ) ); + m_volume->setHintText( tr( "Volume:" ) + " ", "" ); + m_volume->move( 158, 16 ); + + m_pan = new knob( knobSmall_17, this, tr( "Pan" ) ); + m_pan->setHintText( tr( "Pan:" ) + " ", "" ); + m_pan->move( 181, 16 ); + + m_releaseTriggered = new ledCheckBox( tr( "" ), this ); + m_releaseTriggered->move( 115, 222 ); + + m_randomizeAttack = new ledCheckBox( tr( "" ), this ); + m_randomizeAttack->move( 110, 166 ); + + m_randomizeLength = new tempoSyncKnob( knobSmall_17, this, + tr( "Length" ) ); + m_randomizeLength->setHintText( tr( "Length:" ) + " ", "ms" ); + m_randomizeLength->move( 197, 180 ); + + m_randomizeVelocityAmount = new knob( knobSmall_17, this, + tr( "Velocity" ) ); + m_randomizeVelocityAmount->setHintText( tr( "Velocity:" ) + " ", "" ); + m_randomizeVelocityAmount->move( 123, 180 ); + + m_randomizeFrequencyAmount = new knob( knobSmall_17, this, + tr( "Frequency" ) ); + m_randomizeFrequencyAmount->setHintText( tr( "Frequency:" ) + " ", + " " + tr( "half steps" ) ); + m_randomizeFrequencyAmount->move( 158, 180 ); + + m_spread = new knob( knobSmall_17, this, tr( "Spread" ) ); + m_spread->setHintText( tr( "Spread:" ) + " ", "" ); + m_spread->move( 212, 16 ); +} + + + + +template +stkInstrumentView::~stkInstrumentView() +{ +} + + + + +template +void stkInstrumentView::modelChanged() +{ + INSTRUMENT * inst = castModel(); + m_monophonic->setModel( inst->model()->monophonic() ); + m_portamento->setModel( inst->model()->portamento() ); + m_bend->setModel( inst->model()->bend() ); + m_bendRange->setModel( inst->model()->bendRange() ); + m_velocitySensitiveLPF->setModel( inst->model()->velocitySensitiveLPF() ); + m_velocitySensitiveQ->setModel( inst->model()->velocitySensitiveQ() ); + m_volume->setModel( inst->model()->volume() ); + m_pan->setModel( inst->model()->pan() ); + m_releaseTriggered->setModel( inst->model()->releaseTriggered() ); + m_randomizeAttack->setModel( inst->model()->randomizeAttack() ); + m_randomizeLength->setModel( inst->model()->randomizeLength() ); + m_randomizeVelocityAmount->setModel( inst->model()->randomizeVelocityAmount() ); + m_randomizeFrequencyAmount->setModel( inst->model()->randomizeFrequencyAmount() ); + m_spread->setModel( inst->model()->spread() ); +} + + +#endif diff --git a/plugins/stk/voices/include/stk_model.h b/plugins/stk/voices/include/stk_model.h new file mode 100644 index 000000000..6e7e62bbf --- /dev/null +++ b/plugins/stk/voices/include/stk_model.h @@ -0,0 +1,184 @@ +/* + * stk_model.h - base class for stk instrument models + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _STK_MODEL_H +#define _STK_MODEL_H + +#include "Instrmnt.h" + +#include "automatable_model_templates.h" +#include "basic_filters.h" + + +class stkModel: public model +{ +public: + stkModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + bool _release_triggered = FALSE, + bool _randomize_attack = FALSE, + StkFloat _randomize_length = 0.0f, + StkFloat _randomize_velocity_amount = 0.5f, + StkFloat _randomize_frequency_amount = 0.5f, + StkFloat _spread = 0.0f ); + virtual ~stkModel(); + + // Indicates whether or not the instrument should use multiple voices + // when generating the signal. + inline boolModel * monophonic( void ) const + { + return( m_monophonic ); + } + + // Stores the time in ms over which a note will slide from the previous + // frequency. + inline floatModel * portamento( void ) const + { + return( m_portamento ); + } + + // Stores the pitch bend setting. Scaled by bendRange. + inline floatModel * bend( void ) const + { + return( m_bend ); + } + + // Stores the range in half steps over which a note can be bent. + inline floatModel * bendRange( void ) const + { + return( m_bendRange ); + } + + // Indicates whether or not to apply a low pass filter to the notes + // where the cutoff frequency is scaled by the notes' velocities. + inline boolModel * velocitySensitiveLPF( void ) const + { + return( m_velocitySensitiveLPF ); + } + + // Stores the Q value for the low pass filter. + inline floatModel * velocitySensitiveQ( void ) const + { + return( m_velocitySensitiveQ ); + } + + // Stores the volume setting for the voice. + inline floatModel * volume( void ) const + { + return( m_volume ); + } + + // Stores the pan setting for the voice. + inline floatModel * pan( void ) const + { + return( m_pan ); + } + + // Indicates whether or not only the release portion of the envelope + // should be played. + inline boolModel * releaseTriggered( void ) const + { + return( m_releaseTriggered ); + } + + // Indicates whether or not random offsets should be generated for + // the volume and pitch. The offsets will move linearly to + // zero over the length of time defined by randomizeLength. + inline boolModel * randomizeAttack( void ) const + { + return( m_randomizeAttack ); + } + + // Stores the length of time in ms over which random offsets should + // be applied. + inline floatModel * randomizeLength( void ) const + { + return( m_randomizeLength ); + } + + // Stores the range for the random offset generated for the + // volume of a note. + inline floatModel * randomizeVelocityAmount( void ) const + { + return( m_randomizeVelocityAmount ); + } + + // Stores the range in half steps for the random offset generated + // for the pitch of a note. + inline floatModel * randomizeFrequencyAmount( void ) const + { + return( m_randomizeFrequencyAmount ); + } + + // Sets a delay for the right channel. Provides a quick and dirty + // way to create a stereo spread effect. + inline floatModel * spread( void ) const + { + return( m_spread ); + } + + // Calculates the amount to scale a frequency in order to provide + // a "bend" in a note. + inline float bendScaler() const + { + return( pow( 2.0f, ( m_bendRange->value() * m_bend->value() / + 49152.0f ) ) ); + } + + // Generates a random number between -1.0 and 1.0. + inline float offset( void ) const + { + return( 2.0f * ( static_cast( rand() ) / + static_cast( RAND_MAX ) - 0.5f ) ); + } + + virtual void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + virtual void FASTCALL loadSettings( const QDomElement & _this ); + +private: + boolModel * m_monophonic; // multiple voice indicator + floatModel * m_portamento; // time for slide between notes + floatModel * m_bend; // bend state of note + floatModel * m_bendRange; // range of bend in half steps + boolModel * m_velocitySensitiveLPF; // turns on a LPF + floatModel * m_velocitySensitiveQ; // Q setting for the LPF + floatModel * m_volume; // volume of the voice + floatModel * m_pan; // pan position of the voice + boolModel * m_releaseTriggered; // only play release + boolModel * m_randomizeAttack; // turns on randomization + floatModel * m_randomizeLength; // time for randomization + floatModel * m_randomizeVelocityAmount; // velocity randomization + floatModel * m_randomizeFrequencyAmount;// pitch randomization + floatModel * m_spread; // stereo width +}; + + + +#endif diff --git a/plugins/stk/voices/include/stk_processor.h b/plugins/stk/voices/include/stk_processor.h new file mode 100644 index 000000000..412ab0f85 --- /dev/null +++ b/plugins/stk/voices/include/stk_processor.h @@ -0,0 +1,363 @@ +/* + * stk_processor.h - base class for stk sound generators + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _STK_PROCESSOR_H +#define _STK_PROCESSOR_H + +#include "Instrmnt.h" + +#include "config_mgr.h" +#include "note_play_handle.h" +#include "types.h" + + +template +class stkProcessor +{ +public: + stkProcessor( sample_rate_t _sample_rate ); + stkProcessor( sample_rate_t _sample_rate, + StkFloat _lowest_frequency ); + virtual ~stkProcessor( void ); + + StkFloat nextSampleLeft( void ); + StkFloat nextSampleRight( void ); + + Instrmnt * voice( void ); + bool active( void ); + float lastFrequency( void ); + notePlayHandle * note( void ); + fpp_t attackFrame( void ); + float deltaVelocity( void ); + float deltaFrequency( void ); + basicFilters<> * velocitySensitiveLPF( void ); + float velocity( void ); + void clearBuffer( void ); + + void setActive( bool _state ); + void setLastFrequency( float _frequency ); + void setNote( notePlayHandle * _note ); + void setAttackFrame( fpp_t _frame ); + void setDeltaVelocity( float _velocity ); + void setDeltaFrequency( float _frequency ); + void setVelocity( float _velocity ); + void noteOn( StkFloat _pitch, StkFloat _velocity ); + +protected: + Uint8 m_delayRead; + Uint8 m_delayWrite; + +private: + Instrmnt * m_voice; + + StkFloat m_delay[256]; + bool m_active; + StkFloat m_sample; + Uint16 m_bufferIndex; + float m_lastFrequency; + float m_velocity; + notePlayHandle * m_note; + fpp_t m_attackFrame; + float m_deltaVelocity; + float m_deltaFrequency; + basicFilters<> * m_velocitySensitiveLPF; +}; + + + + +template + inline stkProcessor::stkProcessor( + sample_rate_t _sample_rate ): + m_delayWrite( 0 ), + m_lastFrequency( 440.0f ) +{ + try + { + Stk::setSampleRate( _sample_rate ); + Stk::setRawwavePath( + configManager::inst()->stkDir().toAscii().constData() ); + + m_voice = new STKVOICE(); + } + catch( ... ) + { + m_voice = NULL; + } + + setActive( FALSE ); + + m_velocitySensitiveLPF = + new basicFilters<>( engine::getMixer()->sampleRate() ); + + m_velocitySensitiveLPF->setFilterType( basicFilters<>::LOWPASS ); +} + + + + +template + inline stkProcessor::stkProcessor( + sample_rate_t _sample_rate, + StkFloat _lowest_frequency ): + m_delayWrite( 0 ), + m_lastFrequency( 440.0f ) +{ + try + { + Stk::setSampleRate( _sample_rate ); + Stk::setRawwavePath( + configManager::inst()->stkDir().toAscii().constData() ); + + m_voice = new STKVOICE( _lowest_frequency ); + } + catch( ... ) + { + m_voice = NULL; + } + + setActive( FALSE ); + + m_velocitySensitiveLPF = + new basicFilters<>( engine::getMixer()->sampleRate() ); + + m_velocitySensitiveLPF->setFilterType( basicFilters<>::LOWPASS ); +} + + + + +template +inline stkProcessor::~stkProcessor( void ) +{ + m_voice->noteOff( 0.0 ); + delete m_voice; + delete m_velocitySensitiveLPF; +} + + + + +template +inline StkFloat stkProcessor::nextSampleLeft( void ) +{ + if( m_voice == NULL ) + { + return( 0.0f ); + } + else + { + m_sample = m_voice->tick(); + m_delay[m_delayWrite] = m_sample; + m_delayWrite++; + return( m_sample ); + } +} + + + + +template +inline StkFloat stkProcessor::nextSampleRight( void ) +{ + m_sample = m_delay[m_delayRead]; + m_delayRead++; + return( m_sample ); +} + + + + +template +inline Instrmnt * stkProcessor::voice( void ) +{ + return( m_voice ); +} + + + + +template +inline bool stkProcessor::active( void ) +{ + return( m_active ); +} + + + + +template +inline float stkProcessor::lastFrequency( void ) +{ + return( m_lastFrequency ); +} + + + + +template +inline notePlayHandle * stkProcessor::note( void ) +{ + return( m_note ); +} + + + + +template +inline fpp_t stkProcessor::attackFrame( void ) +{ + return( m_attackFrame ); +} + + + + +template +inline float stkProcessor::deltaVelocity( void ) +{ + return( m_deltaVelocity ); +} + + + + +template +inline float stkProcessor::deltaFrequency( void ) +{ + return( m_deltaFrequency ); +} + + + + +template +inline basicFilters<> * stkProcessor::velocitySensitiveLPF( void ) +{ + return( m_velocitySensitiveLPF ); +} + + + + +template +inline float stkProcessor::velocity( void ) +{ + return( m_velocity ); +} + + + + +template +void stkProcessor::setActive( bool _state ) +{ + m_active = _state; + + if( !m_active && m_voice != NULL ) + { + clearBuffer(); + m_voice->noteOff( 0.0f ); + m_note = NULL; + } +} + + + +template +void stkProcessor::setLastFrequency( float _frequency ) +{ + m_lastFrequency = _frequency; +} + + + + +template +void stkProcessor::setNote( notePlayHandle * _note ) +{ + m_note = _note; +} + + + + +template +void stkProcessor::setAttackFrame( fpp_t _frame ) +{ + m_attackFrame = _frame; +} + + + + +template +void stkProcessor::setDeltaVelocity( float _velocity ) +{ + m_deltaVelocity = _velocity; +} + + + + +template +void stkProcessor::setDeltaFrequency( float _frequency ) +{ + m_deltaFrequency = _frequency; +} + + + + +template +void stkProcessor::clearBuffer( void ) +{ + for( m_bufferIndex = 0; m_bufferIndex < 256; m_bufferIndex++ ) + { + m_delay[m_bufferIndex] = 0.0; + } +} + + + + +template +void stkProcessor::noteOn( StkFloat _pitch, + StkFloat _velocity ) +{ + m_voice->noteOn( _pitch, _velocity ); +} + + + + +template +void stkProcessor::setVelocity( float _velocity ) +{ + m_velocity = _velocity; +} + + + +#endif diff --git a/plugins/stk/voices/include/stk_voice.h b/plugins/stk/voices/include/stk_voice.h new file mode 100644 index 000000000..1c246329e --- /dev/null +++ b/plugins/stk/voices/include/stk_voice.h @@ -0,0 +1,369 @@ +/* + * stk_voice.h - base class for stk voices + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _STK_VOICE_H +#define _STK_VOICE_H + +#include "note_play_handle.h" + + +template +class stkVoice +{ +public: + stkVoice( Uint8 _polyphony = 64 ); + virtual ~stkVoice(); + + sampleFrame * FASTCALL playNote( notePlayHandle * _n, + MODEL * _model, + sampleFrame * _buffer, + const fpp_t _frames ); + + void setMissingFile( bool _state ); + +private: + bool m_filesMissing; + + float m_targetFrequency; + float m_currentFrequency; + float m_lastFrequency; + PROCESSOR * m_processor; + fpp_t m_frame; + sample_t m_leftSample; + sample_t m_rightSample; + Uint8 m_channel; + float m_leftRMS; + float m_rightRMS; + float m_pan; + fpp_t m_totalAttackFrames; + fpp_t m_attackFrame; + float m_deltaVelocity; + float m_deltaFrequency; + float m_attackVelocity; + float m_attackFrequency; + + QVector m_voices; + Uint8 m_voiceIndex; + Uint8 m_polyphony; + + sample_rate_t m_sampleRate; + int m_portamentoFrames; +}; + + +template +stkVoice::stkVoice( Uint8 _polyphony ): + m_lastFrequency( 440.0f ), + m_polyphony( _polyphony ), + m_sampleRate( engine::getMixer()->sampleRate() ), + m_portamentoFrames( 0 ) +{ + for( m_voiceIndex = 0; m_voiceIndex < m_polyphony; m_voiceIndex++ ) + { + m_voices.append( new PROCESSOR( m_sampleRate ) ); + } +} + + + + +template +stkVoice::~stkVoice() +{ + for( m_voiceIndex = 0; m_voiceIndex < m_polyphony; m_voiceIndex++ ) + { + delete m_voices[m_voiceIndex]; + } +} + + + +template +sampleFrame * FASTCALL stkVoice::playNote( + notePlayHandle * _n, + MODEL * _model, + sampleFrame * _buffer, + const fpp_t _frames ) +{ + // Don't do anything if STK isn't installed properly. + if( m_filesMissing ) + { + return _buffer; + } + + // Don't do anything if the instrument is release triggered and we + // haven't released yet. + if( _model->releaseTriggered()->value() && !_n->released() ) + { + return _buffer; + } + + // If it's a new note, we need to get a voice. + if ( _n->totalFramesPlayed() == 0 || _n->m_pluginData == NULL ) + { + // Monophonic instruments only use the first defined voice. + if( _model->monophonic()->value() ) + { + if( m_voices[0]->active() && + m_voices[0]->note() != NULL ) + { + m_voices[0]->note()->noteOff( 0 ); + } + m_processor = m_voices[0]; + } + // Otherwise, search for a voice that isn't in use. + else + { + m_processor = NULL; + for( m_voiceIndex = 0; m_voiceIndex < m_polyphony; + m_voiceIndex++ ) + { + if( !m_voices[m_voiceIndex]->active() ) + { + m_processor = m_voices[m_voiceIndex]; + break; + } + } + + // Don't do anything if no voices are available. + if( m_processor == NULL ) + { + return( _buffer ); + } + } + + // Assign the voice and label it as active. + _n->m_pluginData = m_processor; + m_processor->setActive( TRUE ); + + // Initialize the velocity and the number of frames played + // so far. + m_processor->setVelocity( + static_cast( _n->getVolume() ) / + 100.0f ); + m_processor->setAttackFrame( 0 ); + + // Initialize the number of frames for the portamento + // transition. + m_portamentoFrames = static_cast( + engine::getMixer()->sampleRate() * + _model->portamento()->value() / + 1000.0f ); + + // If the attack is randomized, calculate the number of frames + // over which the modifications should take place and + // generate a pair of offsets. + if( _model->randomizeAttack()->value() ) + { + m_totalAttackFrames = static_cast( + engine::getMixer()->sampleRate() * + _model->randomizeLength()->value() / + 1000.0f ); + + m_attackVelocity = + _model->randomizeVelocityAmount()->value() * + _model->offset(); + if( m_processor->velocity() + m_attackVelocity < 0.0f ) + { + m_attackVelocity = -m_processor->velocity(); + } + if( m_processor->velocity() + + m_attackVelocity > 1.0f ) + { + m_attackVelocity = 1.0f - m_processor->velocity(); + } + + m_processor->setDeltaVelocity( m_attackVelocity ); + + m_attackFrequency = + _model->randomizeFrequencyAmount()->value() * + _model->offset(); + + m_processor->setDeltaFrequency( m_attackFrequency ); + } + else + { + m_totalAttackFrames = 0; + m_processor->setDeltaVelocity( 0.0f ); + m_processor->setDeltaFrequency( 0.0f ); + } + + // If the velocity sensitive filter is turned on, calculate the + // coefficients and clear the taps. The filter cutoff is set + // as: + // cutoff = max_freq * ( 10^velocity ) / 10 + if( _model->velocitySensitiveLPF()->value() ) + { + m_processor->velocitySensitiveLPF()->calcFilterCoeffs( + pow( 10.0f, m_processor->velocity() + + m_processor->deltaVelocity() ) * + engine::getMixer()->sampleRate() / 20.0f, + _model->velocitySensitiveQ()->value() ); + m_processor->velocitySensitiveLPF()->clearHistory(); + } + } + + // Used to keep track of the level across the buffer. + m_leftRMS = 0.0f; + m_rightRMS = 0.0f; + + // Get the processing unit assigned to the note. + m_processor = static_cast( _n->m_pluginData ); + + // Initialize the pitch settings. + m_targetFrequency = _n->frequency(); + m_lastFrequency = m_processor->lastFrequency(); + m_currentFrequency = m_lastFrequency; + + m_processor->setControls( _model ); + + // Initialize the attack offset calculation variables. + m_attackVelocity = 0.0f; + m_attackFrequency = 1.0f; + m_attackFrame = m_processor->attackFrame(); + m_deltaVelocity = m_processor->deltaVelocity(); + m_deltaFrequency = m_processor->deltaFrequency(); + + // Generate the buffer. + for( m_frame = 0; m_frame < _frames; ++m_frame ) + { + // Slide across the randomized attack offsets. + // Will be ignored if randomization is turned off because + // both m_attackFrame and m_totalAttackFrames will be + // zero. Just a linear iterpolation. + if( m_attackFrame < m_totalAttackFrames ) + { + m_attackVelocity = m_deltaVelocity - m_deltaVelocity * + m_attackFrame / + m_totalAttackFrames; + + if( m_processor->velocity() + m_attackVelocity < 0.0f ) + { + m_attackVelocity = -m_processor->velocity(); + } + else if( m_processor->velocity() + m_attackVelocity > 1.0f ) + { + m_attackVelocity = 1.0f - m_processor->velocity(); + } + + + m_attackFrequency = m_deltaFrequency - + m_deltaFrequency * + m_attackFrame / + m_totalAttackFrames; + + // Convert m_attackFrequency to a half step based + // scaling factor for the pitch. + m_attackFrequency = pow( 2.0f, m_attackFrequency / + 12.0f ); + + m_attackFrame++; + } + + // If there are any portamento frames to be processed, + // calculate the pitch slide based on whatever the most + // recently used frequency was. + if( m_portamentoFrames > 0 ) + { + m_currentFrequency += ( m_targetFrequency - + m_lastFrequency ) / + static_cast( m_portamentoFrames ); + + // Sliding polyphonic instruments can end up with + // negative frequencies, so stop the slid as long + // as the situation persists. + if( m_currentFrequency < 0.0f ) + { + m_currentFrequency -= + ( m_targetFrequency - m_lastFrequency ) / + static_cast( m_portamentoFrames ); + } + + m_processor->noteOn( m_currentFrequency * + _model->bendScaler(), + m_processor->velocity() + + m_attackVelocity ); + } + else + { + m_processor->noteOn( m_targetFrequency * + _model->bendScaler() * + m_attackFrequency, + m_processor->velocity() + + m_attackVelocity ); + } + + // Calculate the pan level for the right channel. + m_pan = ( 1.0f + _model->pan()->value() ) / 2.0f; + + // Generate the samples. + m_leftSample = m_processor->nextSampleLeft() * + _model->volume()->value() * ( 1.0f - m_pan ); + m_rightSample = m_processor->nextSampleRight() * + _model->volume()->value() * m_pan; + + // Process the velocity sensitive filter. + if( _model->velocitySensitiveLPF()->value() ) + { + m_leftSample = m_processor->velocitySensitiveLPF()->update( m_leftSample, 0 ); + m_rightSample = m_processor->velocitySensitiveLPF()->update( m_rightSample, 1 ); + } + + // Keep track of the levels. + m_leftRMS += m_leftSample * m_leftSample; + m_rightRMS += m_rightSample * m_rightSample; + + // Stuff the samples into the channels. + for( m_channel = 0; m_channel < DEFAULT_CHANNELS / 2; + ++m_channel ) + { + _buffer[m_frame][m_channel * DEFAULT_CHANNELS / 2] = m_leftSample; + _buffer[m_frame][( m_channel + 1 ) * DEFAULT_CHANNELS / 2] = m_rightSample; + } + } + + // Remember the frequency and the number of frames processed. + m_processor->setLastFrequency( m_currentFrequency ); + m_processor->setAttackFrame( m_attackFrame ); + + // Keep track of the portamento frames. + if( m_portamentoFrames > 0 ) + { + m_portamentoFrames -= _frames; + } + + return( _buffer ); +} + + + + +template + void stkVoice::setMissingFile( bool _state ) +{ + m_filesMissing = _state; +} + + +#endif diff --git a/plugins/stk/voices/metal/Makefile.am b/plugins/stk/voices/metal/Makefile.am new file mode 100644 index 000000000..63a340767 --- /dev/null +++ b/plugins/stk/voices/metal/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="metal" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./metal_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libmetal.la + +libmetal_la_SOURCES = metal_model.cpp \ + metal_model.h \ + metal_processor.cpp \ + metal_processor.h \ + metal_instrument.cpp \ + metal_instrument.h \ + metal_instrument_view.cpp \ + metal_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libmetal_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libmetal_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/metal/artwork.png b/plugins/stk/voices/metal/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..55d1ce0fcb45ab9fa9f67f1c05e3d44dfe7bf151 GIT binary patch literal 71394 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≀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 Uq5)Em`Tzg`07*qoM6N<$f?Sy%n*aa+ literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/metal/logo.png b/plugins/stk/voices/metal/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "metal_instrument.h" +#include "metal_instrument_view.h" +#include "metal_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor metal_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Metal", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Buzzy noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +metalInstrument::metalInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &metal_plugin_descriptor ) +{ + model()->index()->setTrack( _channel_track ); + model()->crossfade()->setTrack( _channel_track ); + model()->lfoSpeed()->setTrack( _channel_track ); + model()->lfoDepth()->setTrack( _channel_track ); + model()->adsrTarget()->setTrack( _channel_track ); +} + + + + +metalInstrument::~metalInstrument() +{ +} + + + + +QString metalInstrument::nodeName( void ) const +{ + return( metal_plugin_descriptor.name ); +} + + + + +pluginView * metalInstrument::instantiateView( QWidget * _parent ) +{ + return( new metalInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new metalInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/metal/metal_instrument.h b/plugins/stk/voices/metal/metal_instrument.h new file mode 100644 index 000000000..73b9bcb90 --- /dev/null +++ b/plugins/stk/voices/metal/metal_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _METAL_INSTRUMENT_H +#define _METAL_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "metal_processor.h" +#include "metal_model.h" + + +class metalInstrument : public stkInstrument +{ +public: + metalInstrument( instrumentTrack * _channel_track ); + virtual ~metalInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/metal/metal_instrument_view.cpp b/plugins/stk/voices/metal/metal_instrument_view.cpp new file mode 100644 index 000000000..06ab9fba4 --- /dev/null +++ b/plugins/stk/voices/metal/metal_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "metal_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +metalInstrumentView::metalInstrumentView( metalInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_index = new knob( knobSmall_17, m_topView, tr( "Index" ) ); + m_index->setLabel( tr( "Modulator Index" ) ); + m_index->setHintText( tr( "Index:" ) + " ", "" ); + + m_crossfade = new knob( knobSmall_17, m_topView, tr( "Crossfade" ) ); + m_crossfade->setLabel( tr( "Modulator Crossfade" ) ); + m_crossfade->setHintText( tr( "Crossfade:" ) + " ", "" ); + + m_lfoSpeed = new knob( knobSmall_17, m_topView, tr( "LFO Speed" ) ); + m_lfoSpeed->setLabel( tr( "LFO Speed" ) ); + m_lfoSpeed->setHintText( tr( "LFO Speed:" ) + " ", "" ); + + m_lfoDepth = new knob( knobSmall_17, m_topView, tr( "LFO Depth" ) ); + m_lfoDepth->setLabel( tr( "LFO Depth" ) ); + m_lfoDepth->setHintText( tr( "LFO Depth:" ) + " ", "" ); + + m_adsrTarget = new knob( knobSmall_17, m_topView, tr( "ADSR Target" ) ); + m_adsrTarget->setLabel( tr( "ADSR Target" ) ); + m_adsrTarget->setHintText( tr( "ADSR Target:" ) + " ", "" ); + + h1->addWidget( m_index ); + h1->addWidget( m_crossfade ); + + h2->addWidget( m_lfoSpeed ); + h2->addWidget( m_lfoDepth ); + + h3->addWidget( m_adsrTarget ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +metalInstrumentView::~metalInstrumentView() +{ +} + + + + +void metalInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + metalInstrument * inst = castModel(); + m_index->setModel( inst->model()->index() ); + m_crossfade->setModel( inst->model()->crossfade() ); + m_lfoSpeed->setModel( inst->model()->lfoSpeed() ); + m_lfoDepth->setModel( inst->model()->lfoDepth() ); + m_adsrTarget->setModel( inst->model()->adsrTarget() ); +} + + + diff --git a/plugins/stk/voices/metal/metal_instrument_view.h b/plugins/stk/voices/metal/metal_instrument_view.h new file mode 100644 index 000000000..751dd1200 --- /dev/null +++ b/plugins/stk/voices/metal/metal_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _METAL_INSTRUMENT_VIEW_H +#define _METAL_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "metal_instrument.h" + + +class metalInstrumentView: public stkInstrumentView +{ +public: + metalInstrumentView( metalInstrument * _instrument, QWidget * _parent ); + virtual ~metalInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_index; + knob * m_crossfade; + knob * m_lfoSpeed; + knob * m_lfoDepth; + knob * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/metal/metal_model.cpp b/plugins/stk/voices/metal/metal_model.cpp new file mode 100644 index 000000000..bd9b84301 --- /dev/null +++ b/plugins/stk/voices/metal/metal_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "metal_model.h" + + +metalModel::metalModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _index, + StkFloat _crossfade, + StkFloat _lfo_speed, + StkFloat _lfo_depth, + StkFloat _adsr_target ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_index( new floatModel( _index, 0.0f, 128.0f, 0.1f, this ) ), + m_crossfade( new floatModel( _crossfade, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoSpeed( new floatModel( _lfo_speed, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoDepth( new floatModel( _lfo_depth, 0.0f, 128.0f, 0.1f, this ) ), + m_adsrTarget( new floatModel( _adsr_target, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +metalModel::~metalModel() +{ + delete m_index; + delete m_crossfade; + delete m_lfoSpeed; + delete m_lfoDepth; + delete m_adsrTarget; +} + + + + +void FASTCALL metalModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_index->saveSettings( _doc, _parent, "index" ); + m_crossfade->saveSettings( _doc, _parent, "crossfade" ); + m_lfoSpeed->saveSettings( _doc, _parent, "lfospeed" ); + m_lfoDepth->saveSettings( _doc, _parent, "lfodepth" ); + m_adsrTarget->saveSettings( _doc, _parent, "adsrtarget" ); +} + + + + +void FASTCALL metalModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_index->loadSettings( _this, "index" ); + m_crossfade->loadSettings( _this, "crossfade" ); + m_lfoSpeed->loadSettings( _this, "lfospeed" ); + m_lfoDepth->loadSettings( _this, "lfodepth" ); + m_adsrTarget->loadSettings( _this, "adsrtarget" ); +} + diff --git a/plugins/stk/voices/metal/metal_model.h b/plugins/stk/voices/metal/metal_model.h new file mode 100644 index 000000000..7bdb3024c --- /dev/null +++ b/plugins/stk/voices/metal/metal_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _METAL_MODEL_H +#define _METAL_MODEL_H + +#include "stk_model.h" + + +class metalModel: public stkModel +{ +public: + metalModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _index = 64.0f, + StkFloat _crossfade = 64.0f, + StkFloat _lfo_speed = 64.0f, + StkFloat _lfo_depth = 64.0f, + StkFloat _adsr_target = 64.0f ); + ~metalModel(); + + inline floatModel * index( void ) const + { + return( m_index ); + } + + inline floatModel * crossfade( void ) const + { + return( m_crossfade ); + } + + inline floatModel * lfoSpeed( void ) + { + return( m_lfoSpeed ); + } + + inline floatModel * lfoDepth( void ) const + { + return( m_lfoDepth ); + } + + inline floatModel * adsrTarget( void ) const + { + return( m_adsrTarget ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_index; + floatModel * m_crossfade; + floatModel * m_lfoSpeed; + floatModel * m_lfoDepth; + floatModel * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/metal/metal_processor.cpp b/plugins/stk/voices/metal/metal_processor.cpp new file mode 100644 index 000000000..178f4584a --- /dev/null +++ b/plugins/stk/voices/metal/metal_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "metal_processor.h" +#include "config_mgr.h" + + +metalProcessor::metalProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +metalProcessor::~metalProcessor() +{ +} + + + + +void metalProcessor::setControls( metalModel * _model ) +{ + voice()->controlChange( 2, _model->index()->value() ); + voice()->controlChange( 4, _model->crossfade()->value() ); + voice()->controlChange( 11, _model->lfoSpeed()->value() ); + voice()->controlChange( 1, _model->lfoDepth()->value() ); + voice()->controlChange( 128, _model->adsrTarget()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/metal/metal_processor.h b/plugins/stk/voices/metal/metal_processor.h new file mode 100644 index 000000000..07e846283 --- /dev/null +++ b/plugins/stk/voices/metal/metal_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _METAL_PROCESSOR_H +#define _METAL_PROCESSOR_H + +#include "HevyMetl.h" + +#include "stk_processor.h" + +#include "metal_model.h" + +class metalProcessor: public stkProcessor +{ +public: + metalProcessor( sample_rate_t _sample_rate ); + ~metalProcessor( void ); + + void setControls( metalModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/moog/Makefile.am b/plugins/stk/voices/moog/Makefile.am new file mode 100644 index 000000000..634c5b9eb --- /dev/null +++ b/plugins/stk/voices/moog/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="moog" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./moog_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libmoog.la + +libmoog_la_SOURCES = moog_model.cpp \ + moog_model.h \ + moog_processor.cpp \ + moog_processor.h \ + moog_instrument.cpp \ + moog_instrument.h \ + moog_instrument_view.cpp \ + moog_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libmoog_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libmoog_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/moog/artwork.png b/plugins/stk/voices/moog/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..2abdb5171c35451851ce9384faf3b4c1c90db16e GIT binary patch literal 71518 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 z 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 literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/moog/logo.png b/plugins/stk/voices/moog/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "moog_instrument.h" +#include "moog_instrument_view.h" +#include "moog_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor moog_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Moog", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Moogy sounds" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +moogInstrument::moogInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &moog_plugin_descriptor ) +{ + model()->filterQ()->setTrack( _channel_track ); + model()->filterSweepRate()->setTrack( _channel_track ); + model()->vibratoFrequency()->setTrack( _channel_track ); + model()->vibratoGain()->setTrack( _channel_track ); +} + + + + +moogInstrument::~moogInstrument() +{ +} + + + + +QString moogInstrument::nodeName( void ) const +{ + return( moog_plugin_descriptor.name ); +} + + + + +pluginView * moogInstrument::instantiateView( QWidget * _parent ) +{ + return( new moogInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new moogInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/moog/moog_instrument.h b/plugins/stk/voices/moog/moog_instrument.h new file mode 100644 index 000000000..4b7ffe876 --- /dev/null +++ b/plugins/stk/voices/moog/moog_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _MOOG_INSTRUMENT_H +#define _MOOG_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "moog_processor.h" +#include "moog_model.h" + + +class moogInstrument : public stkInstrument +{ +public: + moogInstrument( instrumentTrack * _channel_track ); + virtual ~moogInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/moog/moog_instrument_view.cpp b/plugins/stk/voices/moog/moog_instrument_view.cpp new file mode 100644 index 000000000..719f3a55e --- /dev/null +++ b/plugins/stk/voices/moog/moog_instrument_view.cpp @@ -0,0 +1,100 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "moog_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +moogInstrumentView::moogInstrumentView( moogInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout; + QHBoxLayout * h2 = new QHBoxLayout; + + m_filterQ = new knob( knobSmall_17, m_topView, tr( "Filter Q" ) ); + m_filterQ->setLabel( tr( "Filter Q" ) ); + m_filterQ->setHintText( tr( "Q:" ) + " ", "" ); + + m_filterSweepRate = new knob( knobSmall_17, m_topView, tr( "Sweep Rate" ) ); + m_filterSweepRate->setLabel( tr( "Sweep Rate" ) ); + m_filterSweepRate->setHintText( tr( "Rate:" ) + " ", "" ); + + m_vibratoFrequency = new knob( knobSmall_17, m_topView, tr( "Vib Freq" ) ); + m_vibratoFrequency->setLabel( tr( "Vibrato Frequency" ) ); + m_vibratoFrequency->setHintText( tr( "Vib Freq:" ) + " ", "" ); + + m_vibratoGain = new knob( knobSmall_17, m_topView, tr( "Vib Gain" ) ); + m_vibratoGain->setLabel( tr( "Vibrato Gain" ) ); + m_vibratoGain->setHintText( tr( "Vib Gain:" ) + " ", "" ); + + h1->addWidget( m_filterQ ); + h1->addWidget( m_filterSweepRate ); + + h2->addWidget( m_vibratoFrequency ); + h2->addWidget( m_vibratoGain ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +moogInstrumentView::~moogInstrumentView() +{ +} + + + + +void moogInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + moogInstrument * inst = castModel(); + m_filterQ->setModel( inst->model()->filterQ() ); + m_filterSweepRate->setModel( inst->model()->filterSweepRate() ); + m_vibratoFrequency->setModel( inst->model()->vibratoFrequency() ); + m_vibratoGain->setModel( inst->model()->vibratoGain() ); +} + + + diff --git a/plugins/stk/voices/moog/moog_instrument_view.h b/plugins/stk/voices/moog/moog_instrument_view.h new file mode 100644 index 000000000..ee3365381 --- /dev/null +++ b/plugins/stk/voices/moog/moog_instrument_view.h @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _MOOG_INSTRUMENT_VIEW_H +#define _MOOG_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "moog_instrument.h" + + +class moogInstrumentView: public stkInstrumentView +{ +public: + moogInstrumentView( moogInstrument * _instrument, QWidget * _parent ); + virtual ~moogInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_filterQ; + knob * m_filterSweepRate; + knob * m_vibratoFrequency; + knob * m_vibratoGain; +}; + +#endif diff --git a/plugins/stk/voices/moog/moog_model.cpp b/plugins/stk/voices/moog/moog_model.cpp new file mode 100644 index 000000000..0919627db --- /dev/null +++ b/plugins/stk/voices/moog/moog_model.cpp @@ -0,0 +1,83 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "moog_model.h" + + +moogModel::moogModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _filter_q, + StkFloat _filter_sweep_rate, + StkFloat _vibrato_frequency, + StkFloat _vibrato_gain ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_filterQ( new floatModel( _filter_q, 0.0f, 128.0f, 0.1f, this ) ), + m_filterSweepRate( new floatModel( _filter_sweep_rate, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoFrequency( new floatModel( _vibrato_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoGain( new floatModel( _vibrato_gain, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +moogModel::~moogModel() +{ + delete m_filterQ; + delete m_filterSweepRate; + delete m_vibratoFrequency; + delete m_vibratoGain; +} + + + + +void FASTCALL moogModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_filterQ->saveSettings( _doc, _parent, "filterq" ); + m_filterSweepRate->saveSettings( _doc, _parent, "filtersweeprate" ); + m_vibratoFrequency->saveSettings( _doc, _parent, "vibratofrequency" ); + m_vibratoGain->saveSettings( _doc, _parent, "vibratogain" ); +} + + + + +void FASTCALL moogModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_filterQ->loadSettings( _this, "filterq" ); + m_filterSweepRate->loadSettings( _this, "filtersweeprate" ); + m_vibratoFrequency->loadSettings( _this, "vibratofrequency" ); + m_vibratoGain->loadSettings( _this, "vibratogain" ); +} + diff --git a/plugins/stk/voices/moog/moog_model.h b/plugins/stk/voices/moog/moog_model.h new file mode 100644 index 000000000..e904d9d41 --- /dev/null +++ b/plugins/stk/voices/moog/moog_model.h @@ -0,0 +1,79 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _MOOG_MODEL_H +#define _MOOG_MODEL_H + +#include "stk_model.h" + + +class moogModel: public stkModel +{ +public: + moogModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _filter_q = 64.0f, + StkFloat _filter_sweep_rate = 64.0f, + StkFloat _vibrato_frequency = 64.0f, + StkFloat _vibrato_gain = 64.0f ); + ~moogModel(); + + inline floatModel * filterQ( void ) const + { + return( m_filterQ ); + } + + inline floatModel * filterSweepRate( void ) const + { + return( m_filterSweepRate ); + } + + inline floatModel * vibratoFrequency( void ) const + { + return( m_vibratoFrequency ); + } + + inline floatModel * vibratoGain( void ) const + { + return( m_vibratoGain ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_filterQ; + floatModel * m_filterSweepRate; + floatModel * m_vibratoFrequency; + floatModel * m_vibratoGain; +}; + +#endif diff --git a/plugins/stk/voices/moog/moog_processor.cpp b/plugins/stk/voices/moog/moog_processor.cpp new file mode 100644 index 000000000..958c1ca4f --- /dev/null +++ b/plugins/stk/voices/moog/moog_processor.cpp @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "moog_processor.h" +#include "config_mgr.h" + + +moogProcessor::moogProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +moogProcessor::~moogProcessor() +{ +} + + + + +void moogProcessor::setControls( moogModel * _model ) +{ + voice()->controlChange( 2, _model->filterQ()->value() ); + voice()->controlChange( 4, _model->filterSweepRate()->value() ); + voice()->controlChange( 11, _model->vibratoFrequency()->value() ); + voice()->controlChange( 1, _model->vibratoGain()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/moog/moog_processor.h b/plugins/stk/voices/moog/moog_processor.h new file mode 100644 index 000000000..6bbc01ed3 --- /dev/null +++ b/plugins/stk/voices/moog/moog_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _MOOG_PROCESSOR_H +#define _MOOG_PROCESSOR_H + +#include "Moog.h" + +#include "stk_processor.h" + +#include "moog_model.h" + +class moogProcessor: public stkProcessor +{ +public: + moogProcessor( sample_rate_t _sample_rate ); + ~moogProcessor( void ); + + void setControls( moogModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/percflute/Makefile.am b/plugins/stk/voices/percflute/Makefile.am new file mode 100644 index 000000000..bdacf3b80 --- /dev/null +++ b/plugins/stk/voices/percflute/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="percflute" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./percflute_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libpercflute.la + +libpercflute_la_SOURCES = percflute_model.cpp \ + percflute_model.h \ + percflute_processor.cpp \ + percflute_processor.h \ + percflute_instrument.cpp \ + percflute_instrument.h \ + percflute_instrument_view.cpp \ + percflute_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libpercflute_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libpercflute_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/percflute/artwork.png b/plugins/stk/voices/percflute/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..a0aad9db5b13abee3c1c0aadd1441c9bb232ee2d GIT binary patch literal 71599 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�&h%{5Q6N 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 b_a6TRGctMk(JbZ&00000NkvXXu0mjfk0`(Z literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/percflute/logo.png b/plugins/stk/voices/percflute/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "percflute_instrument.h" +#include "percflute_instrument_view.h" +#include "percflute_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor percflute_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Perc Flute", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Flute noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +percfluteInstrument::percfluteInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &percflute_plugin_descriptor ) +{ + model()->index()->setTrack( _channel_track ); + model()->crossfade()->setTrack( _channel_track ); + model()->lfoSpeed()->setTrack( _channel_track ); + model()->lfoDepth()->setTrack( _channel_track ); + model()->adsrTarget()->setTrack( _channel_track ); +} + + + + +percfluteInstrument::~percfluteInstrument() +{ +} + + + + +QString percfluteInstrument::nodeName( void ) const +{ + return( percflute_plugin_descriptor.name ); +} + + + + +pluginView * percfluteInstrument::instantiateView( QWidget * _parent ) +{ + return( new percfluteInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new percfluteInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/percflute/percflute_instrument.h b/plugins/stk/voices/percflute/percflute_instrument.h new file mode 100644 index 000000000..2db4e5e3a --- /dev/null +++ b/plugins/stk/voices/percflute/percflute_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _PERCFLUTE_INSTRUMENT_H +#define _PERCFLUTE_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "percflute_processor.h" +#include "percflute_model.h" + + +class percfluteInstrument : public stkInstrument +{ +public: + percfluteInstrument( instrumentTrack * _channel_track ); + virtual ~percfluteInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/percflute/percflute_instrument_view.cpp b/plugins/stk/voices/percflute/percflute_instrument_view.cpp new file mode 100644 index 000000000..0d03c66b2 --- /dev/null +++ b/plugins/stk/voices/percflute/percflute_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "percflute_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +percfluteInstrumentView::percfluteInstrumentView( percfluteInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_index = new knob( knobSmall_17, m_topView, tr( "Index" ) ); + m_index->setLabel( tr( "Modulator Index" ) ); + m_index->setHintText( tr( "Index:" ) + " ", "" ); + + m_crossfade = new knob( knobSmall_17, m_topView, tr( "Crossfade" ) ); + m_crossfade->setLabel( tr( "Modulator Crossfade" ) ); + m_crossfade->setHintText( tr( "Crossfade:" ) + " ", "" ); + + m_lfoSpeed = new knob( knobSmall_17, m_topView, tr( "LFO Speed" ) ); + m_lfoSpeed->setLabel( tr( "LFO Speed" ) ); + m_lfoSpeed->setHintText( tr( "LFO Speed:" ) + " ", "" ); + + m_lfoDepth = new knob( knobSmall_17, m_topView, tr( "LFO Depth" ) ); + m_lfoDepth->setLabel( tr( "LFO Depth" ) ); + m_lfoDepth->setHintText( tr( "LFO Depth:" ) + " ", "" ); + + m_adsrTarget = new knob( knobSmall_17, m_topView, tr( "ADSR Target" ) ); + m_adsrTarget->setLabel( tr( "ADSR Target" ) ); + m_adsrTarget->setHintText( tr( "ADSR Target:" ) + " ", "" ); + + h1->addWidget( m_index ); + h1->addWidget( m_crossfade ); + + h2->addWidget( m_lfoSpeed ); + h2->addWidget( m_lfoDepth ); + + h3->addWidget( m_adsrTarget ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +percfluteInstrumentView::~percfluteInstrumentView() +{ +} + + + + +void percfluteInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + percfluteInstrument * inst = castModel(); + m_index->setModel( inst->model()->index() ); + m_crossfade->setModel( inst->model()->crossfade() ); + m_lfoSpeed->setModel( inst->model()->lfoSpeed() ); + m_lfoDepth->setModel( inst->model()->lfoDepth() ); + m_adsrTarget->setModel( inst->model()->adsrTarget() ); +} + + + diff --git a/plugins/stk/voices/percflute/percflute_instrument_view.h b/plugins/stk/voices/percflute/percflute_instrument_view.h new file mode 100644 index 000000000..c4bdc6194 --- /dev/null +++ b/plugins/stk/voices/percflute/percflute_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _PERCFLUTE_INSTRUMENT_VIEW_H +#define _PERCFLUTE_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "percflute_instrument.h" + + +class percfluteInstrumentView: public stkInstrumentView +{ +public: + percfluteInstrumentView( percfluteInstrument * _instrument, QWidget * _parent ); + virtual ~percfluteInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_index; + knob * m_crossfade; + knob * m_lfoSpeed; + knob * m_lfoDepth; + knob * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/percflute/percflute_model.cpp b/plugins/stk/voices/percflute/percflute_model.cpp new file mode 100644 index 000000000..7eef710f6 --- /dev/null +++ b/plugins/stk/voices/percflute/percflute_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "percflute_model.h" + + +percfluteModel::percfluteModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _index, + StkFloat _crossfade, + StkFloat _lfo_speed, + StkFloat _lfo_depth, + StkFloat _adsr_target ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_index( new floatModel( _index, 0.0f, 128.0f, 0.1f, this ) ), + m_crossfade( new floatModel( _crossfade, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoSpeed( new floatModel( _lfo_speed, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoDepth( new floatModel( _lfo_depth, 0.0f, 128.0f, 0.1f, this ) ), + m_adsrTarget( new floatModel( _adsr_target, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +percfluteModel::~percfluteModel() +{ + delete m_index; + delete m_crossfade; + delete m_lfoSpeed; + delete m_lfoDepth; + delete m_adsrTarget; +} + + + + +void FASTCALL percfluteModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_index->saveSettings( _doc, _parent, "index" ); + m_crossfade->saveSettings( _doc, _parent, "crossfade" ); + m_lfoSpeed->saveSettings( _doc, _parent, "lfospeed" ); + m_lfoDepth->saveSettings( _doc, _parent, "lfodepth" ); + m_adsrTarget->saveSettings( _doc, _parent, "adsrtarget" ); +} + + + + +void FASTCALL percfluteModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_index->loadSettings( _this, "index" ); + m_crossfade->loadSettings( _this, "crossfade" ); + m_lfoSpeed->loadSettings( _this, "lfospeed" ); + m_lfoDepth->loadSettings( _this, "lfodepth" ); + m_adsrTarget->loadSettings( _this, "adsrtarget" ); +} + diff --git a/plugins/stk/voices/percflute/percflute_model.h b/plugins/stk/voices/percflute/percflute_model.h new file mode 100644 index 000000000..5d4c62112 --- /dev/null +++ b/plugins/stk/voices/percflute/percflute_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _PERCFLUTE_MODEL_H +#define _PERCFLUTE_MODEL_H + +#include "stk_model.h" + + +class percfluteModel: public stkModel +{ +public: + percfluteModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _index = 64.0f, + StkFloat _crossfade = 64.0f, + StkFloat _lfo_speed = 64.0f, + StkFloat _lfo_depth = 64.0f, + StkFloat _adsr_target = 64.0f ); + ~percfluteModel(); + + inline floatModel * index( void ) const + { + return( m_index ); + } + + inline floatModel * crossfade( void ) const + { + return( m_crossfade ); + } + + inline floatModel * lfoSpeed( void ) + { + return( m_lfoSpeed ); + } + + inline floatModel * lfoDepth( void ) const + { + return( m_lfoDepth ); + } + + inline floatModel * adsrTarget( void ) const + { + return( m_adsrTarget ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_index; + floatModel * m_crossfade; + floatModel * m_lfoSpeed; + floatModel * m_lfoDepth; + floatModel * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/percflute/percflute_processor.cpp b/plugins/stk/voices/percflute/percflute_processor.cpp new file mode 100644 index 000000000..74bae72fe --- /dev/null +++ b/plugins/stk/voices/percflute/percflute_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "percflute_processor.h" +#include "config_mgr.h" + + +percfluteProcessor::percfluteProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +percfluteProcessor::~percfluteProcessor() +{ +} + + + + +void percfluteProcessor::setControls( percfluteModel * _model ) +{ + voice()->controlChange( 2, _model->index()->value() ); + voice()->controlChange( 4, _model->crossfade()->value() ); + voice()->controlChange( 11, _model->lfoSpeed()->value() ); + voice()->controlChange( 1, _model->lfoDepth()->value() ); + voice()->controlChange( 128, _model->adsrTarget()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/percflute/percflute_processor.h b/plugins/stk/voices/percflute/percflute_processor.h new file mode 100644 index 000000000..19e5ab507 --- /dev/null +++ b/plugins/stk/voices/percflute/percflute_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _PERCFLUTE_PROCESSOR_H +#define _PERCFLUTE_PROCESSOR_H + +#include "PercFlut.h" + +#include "stk_processor.h" + +#include "percflute_model.h" + +class percfluteProcessor: public stkProcessor +{ +public: + percfluteProcessor( sample_rate_t _sample_rate ); + ~percfluteProcessor( void ); + + void setControls( percfluteModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/resonate/Makefile.am b/plugins/stk/voices/resonate/Makefile.am new file mode 100644 index 000000000..58fe47db2 --- /dev/null +++ b/plugins/stk/voices/resonate/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="resonate" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./resonate_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libresonate.la + +libresonate_la_SOURCES = resonate_model.cpp \ + resonate_model.h \ + resonate_processor.cpp \ + resonate_processor.h \ + resonate_instrument.cpp \ + resonate_instrument.h \ + resonate_instrument_view.cpp \ + resonate_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libresonate_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libresonate_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/resonate/artwork.png b/plugins/stk/voices/resonate/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4eb3877a87b757c47adc55d5a96e4a81fd99dd GIT binary patch literal 71786 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 + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "resonate_instrument.h" +#include "resonate_instrument_view.h" +#include "resonate_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor resonate_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Resonate", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Filered noise" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +resonateInstrument::resonateInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &resonate_plugin_descriptor ) +{ + model()->resonanceFrequency()->setTrack( _channel_track ); + model()->poleRadii()->setTrack( _channel_track ); + model()->notchFrequency()->setTrack( _channel_track ); + model()->zeroRadii()->setTrack( _channel_track ); +} + + + + +resonateInstrument::~resonateInstrument() +{ +} + + + + +QString resonateInstrument::nodeName( void ) const +{ + return( resonate_plugin_descriptor.name ); +} + + + + +pluginView * resonateInstrument::instantiateView( QWidget * _parent ) +{ + return( new resonateInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new resonateInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/resonate/resonate_instrument.h b/plugins/stk/voices/resonate/resonate_instrument.h new file mode 100644 index 000000000..5024241bd --- /dev/null +++ b/plugins/stk/voices/resonate/resonate_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _RESONATE_INSTRUMENT_H +#define _RESONATE_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "resonate_processor.h" +#include "resonate_model.h" + + +class resonateInstrument : public stkInstrument +{ +public: + resonateInstrument( instrumentTrack * _channel_track ); + virtual ~resonateInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/resonate/resonate_instrument_view.cpp b/plugins/stk/voices/resonate/resonate_instrument_view.cpp new file mode 100644 index 000000000..ca31572e8 --- /dev/null +++ b/plugins/stk/voices/resonate/resonate_instrument_view.cpp @@ -0,0 +1,100 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "resonate_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +resonateInstrumentView::resonateInstrumentView( resonateInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout; + QHBoxLayout * h2 = new QHBoxLayout; + + m_resonanceFrequency = new knob( knobSmall_17, m_topView, tr( "Resonance" ) ); + m_resonanceFrequency->setLabel( tr( "Resonance Frequency" ) ); + m_resonanceFrequency->setHintText( tr( "Frequency:" ) + " ", "" ); + + m_poleRadii = new knob( knobSmall_17, m_topView, tr( "Pole Radii" ) ); + m_poleRadii->setLabel( tr( "Pole Radii" ) ); + m_poleRadii->setHintText( tr( "Radii:" ) + " ", "" ); + + m_notchFrequency = new knob( knobSmall_17, m_topView, tr( "Notch" ) ); + m_notchFrequency->setLabel( tr( "Notch Frequency" ) ); + m_notchFrequency->setHintText( tr( "Frequency:" ) + " ", "" ); + + m_zeroRadii = new knob( knobSmall_17, m_topView, tr( "Zero Radii" ) ); + m_zeroRadii->setLabel( tr( "Zero Radii" ) ); + m_zeroRadii->setHintText( tr( "Radii:" ) + " ", "" ); + + h1->addWidget( m_resonanceFrequency ); + h1->addWidget( m_poleRadii ); + + h2->addWidget( m_notchFrequency ); + h2->addWidget( m_zeroRadii ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +resonateInstrumentView::~resonateInstrumentView() +{ +} + + + + +void resonateInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + resonateInstrument * inst = castModel(); + m_resonanceFrequency->setModel( inst->model()->resonanceFrequency() ); + m_poleRadii->setModel( inst->model()->poleRadii() ); + m_notchFrequency->setModel( inst->model()->notchFrequency() ); + m_zeroRadii->setModel( inst->model()->zeroRadii() ); +} + + + diff --git a/plugins/stk/voices/resonate/resonate_instrument_view.h b/plugins/stk/voices/resonate/resonate_instrument_view.h new file mode 100644 index 000000000..811455283 --- /dev/null +++ b/plugins/stk/voices/resonate/resonate_instrument_view.h @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _RESONATE_INSTRUMENT_VIEW_H +#define _RESONATE_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "resonate_instrument.h" + + +class resonateInstrumentView: public stkInstrumentView +{ +public: + resonateInstrumentView( resonateInstrument * _instrument, QWidget * _parent ); + virtual ~resonateInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_resonanceFrequency; + knob * m_poleRadii; + knob * m_notchFrequency; + knob * m_zeroRadii; +}; + +#endif diff --git a/plugins/stk/voices/resonate/resonate_model.cpp b/plugins/stk/voices/resonate/resonate_model.cpp new file mode 100644 index 000000000..cc7a383f3 --- /dev/null +++ b/plugins/stk/voices/resonate/resonate_model.cpp @@ -0,0 +1,83 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "resonate_model.h" + + +resonateModel::resonateModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _resonance_frequency, + StkFloat _pole_radii, + StkFloat _notch_frequency, + StkFloat _zero_radii ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_resonanceFrequency( new floatModel( _resonance_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_poleRadii( new floatModel( _pole_radii, 0.0f, 128.0f, 0.1f, this ) ), + m_notchFrequency( new floatModel( _notch_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_zeroRadii( new floatModel( _zero_radii, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +resonateModel::~resonateModel() +{ + delete m_resonanceFrequency; + delete m_poleRadii; + delete m_notchFrequency; + delete m_zeroRadii; +} + + + + +void FASTCALL resonateModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_resonanceFrequency->saveSettings( _doc, _parent, "resonancefrequency" ); + m_poleRadii->saveSettings( _doc, _parent, "poleradii" ); + m_notchFrequency->saveSettings( _doc, _parent, "notchfrequency" ); + m_zeroRadii->saveSettings( _doc, _parent, "zeroradii" ); +} + + + + +void FASTCALL resonateModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_resonanceFrequency->loadSettings( _this, "resonancefrequency" ); + m_poleRadii->loadSettings( _this, "poleradii" ); + m_notchFrequency->loadSettings( _this, "notchfrequency" ); + m_zeroRadii->loadSettings( _this, "zeroradii" ); +} + diff --git a/plugins/stk/voices/resonate/resonate_model.h b/plugins/stk/voices/resonate/resonate_model.h new file mode 100644 index 000000000..bf2b648ee --- /dev/null +++ b/plugins/stk/voices/resonate/resonate_model.h @@ -0,0 +1,79 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _RESONATE_MODEL_H +#define _RESONATE_MODEL_H + +#include "stk_model.h" + + +class resonateModel: public stkModel +{ +public: + resonateModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _resonance_frequency = 64.0f, + StkFloat _pole_radii = 64.0f, + StkFloat _notch_frequency = 64.0f, + StkFloat _zero_radii = 64.0f ); + ~resonateModel(); + + inline floatModel * resonanceFrequency( void ) const + { + return( m_resonanceFrequency ); + } + + inline floatModel * poleRadii( void ) const + { + return( m_poleRadii ); + } + + inline floatModel * notchFrequency( void ) const + { + return( m_notchFrequency ); + } + + inline floatModel * zeroRadii( void ) const + { + return( m_zeroRadii ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_resonanceFrequency; + floatModel * m_poleRadii; + floatModel * m_notchFrequency; + floatModel * m_zeroRadii; +}; + +#endif diff --git a/plugins/stk/voices/resonate/resonate_processor.cpp b/plugins/stk/voices/resonate/resonate_processor.cpp new file mode 100644 index 000000000..6a1e86fe8 --- /dev/null +++ b/plugins/stk/voices/resonate/resonate_processor.cpp @@ -0,0 +1,50 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "resonate_processor.h" +#include "config_mgr.h" + + +resonateProcessor::resonateProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +resonateProcessor::~resonateProcessor() +{ +} + + + + +void resonateProcessor::setControls( resonateModel * _model ) +{ + voice()->controlChange( 2, _model->resonanceFrequency()->value() ); + voice()->controlChange( 4, _model->poleRadii()->value() ); + voice()->controlChange( 11, _model->notchFrequency()->value() ); + voice()->controlChange( 1, _model->zeroRadii()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/resonate/resonate_processor.h b/plugins/stk/voices/resonate/resonate_processor.h new file mode 100644 index 000000000..1ad005825 --- /dev/null +++ b/plugins/stk/voices/resonate/resonate_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _RESONATE_PROCESSOR_H +#define _RESONATE_PROCESSOR_H + +#include "Resonate.h" + +#include "stk_processor.h" + +#include "resonate_model.h" + +class resonateProcessor: public stkProcessor +{ +public: + resonateProcessor( sample_rate_t _sample_rate ); + ~resonateProcessor( void ); + + void setControls( resonateModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/rhodey/Makefile.am b/plugins/stk/voices/rhodey/Makefile.am new file mode 100644 index 000000000..b00bba26a --- /dev/null +++ b/plugins/stk/voices/rhodey/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="rhodey" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./rhodey_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = librhodey.la + +librhodey_la_SOURCES = rhodey_model.cpp \ + rhodey_model.h \ + rhodey_processor.cpp \ + rhodey_processor.h \ + rhodey_instrument.cpp \ + rhodey_instrument.h \ + rhodey_instrument_view.cpp \ + rhodey_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +librhodey_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(librhodey_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/rhodey/artwork.png b/plugins/stk/voices/rhodey/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..75b6a353a356909094d735e74a367fba87099f66 GIT binary patch literal 71756 zcmXt9bySmW8z0?0knWU*(L=gBL;*p%8$`N8Iz=Q#mxv%C-6`Sd?nb&x;Cpz_`CzcK z{ju}xey;nvesxD_sw?1Nl4F8EARHw{S#99??)eWL75M+@z(5>$LU7kskOuwuL%9dM zKs8fQkOe(G|K_%qqyX<=xG3togFskB&wmJ@j4V>%O*9WBH953dL_`D@6eX(AN#HFi z54pDPBXl4>+k9!Pr5hG z`8{h7bLmt;o+fC_?Wm>EQ0HMPAv`=&6>!a};va;9r-y zv1Jt5k{B^Sw9)hdIEPG4G}7o6`lv-<;0wTZScj5lAe6YbO}oaUuoGy)aZR)J?o&69 zENo|>8XLGGci_U9f`(sVRR~mb$m9ulXq`Mv88D!SM8OO1*@|S-EdPmtPN49``urg4 z!1rlPD;ho(zRbJ62KD#+cY!|61}v>C;(?+%%51= zTf$zjs*GT9L?gm360O(@@mUYhw!Qxd@vG<{UzuW|gEO39AWeF7nGR}gI%K;#^7jqe zmaso()aKqmWM1{k)=0u$jOXrXc~CgxT222 z^STy^dmR%y7W#c?B={%(DECO<>9=E@C!eJ$`>lu!&1LQ*j&gRqHDS_uSiAX>ws;M` zoE|p==u`RRsSoe?3O&4b?{-0qN?r1ixBAzHDyMbBiy4%Gy( z2J51}zPpG<>$VUs$T1lma_X&14P6obK(-nPWZ^ta$3<84)5aK_#|oiU-ju^-6Ib*- zPlm{(Sq+?F!!BsWqn4J8QY~!-LyrrPX%EfLp^;p1a#}idScV4A)Vt4x9N>T;`vSD2-WY8{!I;FH?bJ z#sM|z5hxs89Vs&8E{H6rHG7YZuJ1@0Jvt7tEXYqa>pqYtQf3P?6<({W=GYifFdm2Y z6OL1pYlYy|<0FDa#wF-bOx`nuNtR4V)h}2wD52GiqBzUmiGWfKkglq9QmbZEFws*> zTWF~C`0x$(qjrD$Q~MS$%)Fg|v*o+uFgyfebhx(&lPOphAa1eeevgf8{Dl}k-G@)o zhmd*6T4SX_juxDJOl72?pN8IzU!jM^&(CjDmvI6O2Ns6)3?!!|Ng;zMB_yNRHrK?u zsua#4G;QQV?V&HNh+)aiTz_oI)eu(lEm9dPc{(~NZqlGYul%(h8I!N5kSy?iFn4rD2iU@i!Bi;f#uGWll2K^=$RT8L5N4Mkku z`|r5z^JEnBpx$xJ;a>zjP=|d#v)%@=X`DU?p-xkCG|#CvsG@er==q6VvTkn-OFQ*4c@=>*}cBs^=t`3TVGfbaiXzW_hI`t$b=E|0k|* z5uO8s_5C#OKglq3GBpplI?!ho^-J9!4bB{(QgwjeEo|= z6FrzijX;hd(%ORntVhxmgimNGLe`XaWo11*bU32G>Rj-2CoTQr^`CASa>!{!^(gDX z@qo6@fXuO>zDH--$YmAD9hJUYG#FY$%lS(?jR~_tgrl%-TR)r)EQj0CLKA+sd3e3O zaN#$>7;Npn3mwW;@oZ#u*yRilN(~V*hrJ-hMxC9V?fComC6{r_r}8(I`3r|;Jfx}) zZ~07o@h&AknzXIhFLGZeKB_!A9j~qU&bH6&__bdz-+!psFZBIbaXoi`?$a7yR>r2P zrj|EnXX@lhQl$0)yoKhim0N|U;{)?oB$QVEwFqwG{j`QQAS*~vohZkM-;IK|7$-;` zx5`#CCSD|bP>9sg5pi~tUl>Q-Wku99$$A!o6UHU5bE%Y(4t;~}rJXY3R{`vFv+JbHClCIsX99y~GGWWa zqsGz+!u;&Mp%nQoFVCb~*1AxjPyfyvJoX5ETB*f| z5ry_IMGY!Qic3o72pUj>uyMBfQ;C`@%OoW+=$P>qj1yXSHYMMhSJZ7!b_uK>i7u9Q zEIn~q<)voah#NT*9}*MY`_hAFP}}Lz+$&^`9_{N4-s+lQwP(L$XA5VsnxGb7MzG-eiS)$vPe@RFKfA@T2SJ{d`KU1AE6? z75q*be>$j3v@VIWcMCw==(w#_A%V^atwP?jY9J1!9!oT1L30#N`%nsMR&zy-# zMrQv0NT4d`l~+icas(@d9Pq@r@@kSV)M2aRIrxYMUp4EiZ2M>P3xi*nSX=MBZy}*$ zd_U3NXMnCaZa`7+E)CU@ID-Mz1=o=t)d)PQT`*>I63hVl!-4=wNY*NBS8D8uF?V-ryS| zI(IGbr~FS6DdS2AwDl{^)Jx(WuvBc9iMoakMiG4<=j-Ddj!aghasOP*5JPI9<#wlB1e?ldtON9lJXDDCM8OQ~rzEipXy_=(8Jp`xNf z6cnFnn1Ytut>hJYFS^C1gUGJ3ssHC~_ft-tF3Fq>>Yk_`u2cFYUqyY_{ zntJ`?oQs=#qazsUxe}U}o*y-19ph(wX=!P|+TOO-EwO~DOzvMs-APn@j%9mjAL`Dn zJoP%Dq{m?+j=TZCBx07nj>DF!&@)#p<4^`SnM^JUkkmT87#bMIwoRjtH+Qc(ryNY9 z`~WMcLYt|mai5!WbrGFG&ks5dueDW5+IhROC`*~ZONzbb4O5B{$8$}t($drdza|+d z+aQ}p z1F7M!?m19H5o)Jr>z!!={`Ch^_9xKnVEF?Z_GF7YkgUAC9DuqpF)?1}nJckkM-8DW zqRMQ3_l?dQSb^s#E&tAj0F)4kN7Ltjy%c$P=m_cxG*3g&JoX5(iFeEhG{7Lg=&A{6)fl(zeAI!>t zOPrhQr^mn@m-uPzzl4b?lG&Ah?k=g;?#FKQ3WaF9+kvP=1OxmsAT}*C2)V}haKSAb zXsyV%T6==gaKR~jdzS%P*H>t?N<=pSK|I(j``co`@eXyWo1QDq_J36m@wT5*Hwcn~892`iZ2Lp>pDeePiXJ>zFV6YzO?(UwRo!z^> zP7llmiuf_FSPQ8951eJK&99wtl#=5$Q<!+Aqk8=u32Tw0hwwHXzI4f*S0x)k_g3#qUZb|jL*5^>t_FA@xR~yp@%azXTqZgpV9;nthykX`(KA76` z51J(C5BTKdmRjndj*ZjwDD4p|B>gn=hrh3Z3(Os}F|oD9IP|1A6&Ab+;gp)T69{c; z{=~J#w5j#3_BC5?-aWAS$2nwdg{J=e!KL=U&;oS;NJTYZujO&*{UaX*#$A)!7Urvm zJ&lb{G#c456~DvN$~CO_H(fpUz+gQ23im^O2%xEK+!9EH_2_7b3!FBcdd1dQ!`BxZ z-AkwJR5^AJJgaB=A7cz!=*M@=<|WUkgkJwV`}Kd&AFRyI2Py)a9b+g2u^v=7lV#aJBoi_#hB{N!J$*BT}T3%`b#}L7keZ)!lH)_BO?SKG4Q@VFs7R0^s2s{ z%GrC!5PLSI&}$-dIZT1ZADo$)IlDC1`=#xI$)>{fxb=EHo~8k5-mR#lq~yPs3^cc& zMz-9b|4tbG-3C7H(+LsuuE7NXV2iNSoAEF0v2}F<99&%M zB>{g+G%Kg7d`|OE`I=;PW3sv#^HfIAs-mMyKjvn!G7t!5-VA`HIm}y zL5pUGFo%8+UV)BBK9Af%lp}G9V?u7{Y%{uQ9E8pSYEfTSx*i#TBlh&tD9MRXGH^@5 zh%ck7e*KErf%)PB)gF{eh=xnqfg`jS1T4((pFjD=l^dgZGQxg0JOJ)Y+F>S+-AKp# zYr%|BP_&gCOn{$= zTUTdXsWJM&$j1$~^^O_%7@X8Ia3Kp>=m0-a*=_KXQ5N`x*ttIqtIEZlc$U~l>Nh{$ zb=pAtyrA+K#WsSOfPS=bN~(qL5>}W|QCzpmYylBz{H=w~$>{UkIekegdUPSEFCr7LiTMH2E{)1FilMJKkK(=ZO1~ zo8eY4*Ac_rW&=Gi`k1!_`@xZR<_chMP)D9jq|0iD6mU^TIZSMn!Y&}!G5tgNkn z*3^Wuz`PJAbS7>NtR=8OUaM4iCLce(Ff=qo4+&~z^^WkV5VRHljAulCT=oyMbRt|H zW8r(^iwFfr``sp1+9CwaLDyIg`0R$yc=cSW8N=|hvHcJPjLuL)y~XxttQ1x;G=9N2 z`%)Rk$ojp+6`@p^dcm*mrQz4{t+e?IyRIYSQi=Ag zc~|Il10yVBggK&{H`TgR8Pt86PUZ$wUUyz6Efh}K#2TH*$d-CW`cQ%y#EYs+hFHRA zv3OO?#?@QL2a^PrNx**P`c_|uY_g(A=eHx2y1ORp!};y<hGGNOZm#ElE>{jqs*& z^e<%IA}|kx7?FrBqkTg+M3_XHHi~FB-y~iIEDuaNq7il2PTrUeEjD7QK}BC)IM)So z%18%@qVT3Cg5 z68{jVnvS}T@Y0yoxh`vKUSgW%@5{O4I+A&nHkvBBB2nQn)z2jjDQcp|Mhn&?EW96G zl4h9tGWXZs-7#*Zz;=Q`1}oRz8x4zoI?X869CFEpB+iYo&Js^h&yOF+?CPp&Ys2JQ zaUI2Nf!hS2A^=D(FK>4*9D4GS$BpiL@>0fmiC5^QOd!3Lo>BG9C`j*_zTmgxNlJD_ zRd!a6!~-*wi(RcOfQjt<$>}cx z?%&^UQK0SZoe`<351Mq0Ki=tYgdVZeoS&aR0~?8d-4d$+ngHh9O=M*N@%zWKFLXsc zVvi$YJQD3edgb9x^)Z!!5Bm*3PXcBm7XXUj0arDCRn84-s2tqK&x`fLxHY={p}D=g z^?Etx_7){pp5c2%#oFyoPXAYa>yy<`Jhx@f2{oa$-z+&j8wnEead9{|Z3)2C4%(lQ zMh6<38^-VRZ%3?{-M@*Nu2ZE=9HS^2b=2J#f_`J_++-E8VMgZ4M5at9Ge-S<#ElBY zRwx+b;ea-u8Y#OgSyJpb0;{dYfh;`Y@)PtT!DWHjzK*f zDl9bRWEKV@aFN2>WRdh>(uzS}Et4#5t@PtW&?KB}b@AI55ly(-vt(R~@V_PINRS2k zkX*znOnsUYz$MjnHhX?x={EX39~5pW`FHqVVcAEFEkay#CqH5T;iyV46#d zZ0zSsZU^)WA{+$pqb6yJB^#33{{H^K7#j^)KX3FJzBGF60>DZDmCFokc+|9*C#D4> z@3f|-X5gIC*?-^gv`oVvGXZ*rPVK#!6m@bZe(a66y}ivtdf~d@Sig4s^mu%F(v7#V z7D=-`qp7IoJqX~)qo#c>zis}U&Nppm#C}`s?;Dw2geh_JQoFpMeQo~tAP@ybgvWVW z^Ksw5f6z!<-KP??vTRHgaf|xwnToOThpj4Yd#A*)rd3GLbeFCUA2m2%%$`m|oi?7r zsYEGy+>^BvnDdYV9AI_! zr@64_0qOQOc2~e^2f~4&@%Di9jz~m7(xEN|oszk%R@m*W2&-jTRUJ9B{3FjVQ-1&u z+dwjGq%3g}sVMoBNhEa#6FY0#?2kS;dKIPAo-v7~`GU+1V8~A?nuiN!`0_Vw;{Iw(5QKWc*Mwv8n7FHYTN*(V_y^z3!o~m-oILY zysCdzZ~%e<3|j#30!*^}G(xBaf#&ff^7edP__;No01#{9x#OM=vRBf^k3<+48}~hn zb3!d^IO#c=q1N4#b94H&2Ami7{u}_fUTN8&dRIb?joOD*yobCN)K}+ zyT|CBGX}&=y;e;h{X2hY1s~-{qZ9eUx>5g+;p_vU_7zD*Y2GZ1LislV9gaEU$a(=O-4q16c0Y9hZyhVxMdD8~Z_R&T^SZJqVkHj@~ z3V@Xp%3#^NkP8NY3qCRcBD(;z#IP}UJ%ojYZ#6%CVhSrt{b#INIOq-`|DdX&Vc7kh zVBQ!2_PD2cc>bjvAAZ}s6hM;I8bCydn6eyIhM(vD7;EXkruLOO=qz2-&A6IiRAc^o z?gZPtviqVw_nY%$!=cxw4Zha0-1OOdUrygCpLe_%Iqo7zxlQ6@s_%a#eO)+KTV5u%qfKxWjKnapZIDiL7>1f3a!F!an^^VQEr%*62k&R>o^2(zd3?<%j!gbD$A@ zwrt%kvsVK|%^0SWH1wCZ(J6LVQgU!z5|?x~bI9GLcno zUMOueC%(x%3dUf?6l8#c?o&{Z;-U_mQF89zDuBo4j4{7#tH_oL$GZYT^>f4N1a#}= zv$XovOMsXCy%gQ2Mh;F`TEcC+9bw6pFVNZ=>HZ``NZ(>XzfrZYg^MQDLGcBIbjHj` z$)m+py&SEGP&;RX^b(HLl{lneU_bF_!%f2IEBnDXlIB2Lo~>{TiG|4zjZHznD>A{L z;tz4?%KgKNH537K)UbiuavJCS9rR-7#8WgoaH~9m@MrdZV$p)@dpzNP?Ryaj9NbNTf@zSDb2jSziM4pbBx(cB7gveL2O}R z)G|uF#C$eNE*PL_U%!$u>LV7h&lL#AkL_P#&jdgtbfd)`jKQ*95=k}hpC&pqXzkr4A66`3qZsCHR%eiV;$@3 z`JD_|i(*53!0tv(*$|dbD@Ki_Oc>kq7(KoobE+S+6ZBp|4?x*v@xxbqqb@)xHRFt$FMkcQFPv{#|$MsmQ@lVnMjHzkRKyBB0M3XQL5v2RW$ z=vaoV+O8|UC!*Hw{bt^z3SV0*(T`SS>+Y-RLDqQf{j-wee84u`vW@p=*KQtbcrs(0 zUyl2kd_nL`>(K`&Af|of%+sf5?wosebM`W7QpY=K-q|oH#EOo z`UTM)VrmSD-UEu|6fUJ40hW40wT45`2MjtELnEBT!p6TrP#9E^=O(sJTQY$k~RHc%F_In%!uLX z`RgY@q~EmPp-%iRQv3a~T1{s12iaX49fDF6fCzv_zx$zCFM~tKc+QLlZ0YFW00`Y^ zfVOB&JN0I8z-rEoYJ)Cbke&?AgAHKF9ws3=RW$4Rg{|&kHcbrKI`kwIG9{PLsvli~ z9t7gz9!)pzB4`Bor}jT=@PvZ8W#u2|%gp4^I@I+(p%CsI$i#6&^Y?f1hNqOfhTEVZCkR41RYgHK=Q6&_huRtC7`(#nOdgZ}gL-rV)> z+$TuPJ5}`RFor6{6E8@}FR0VGkf2BXxF+}zrHvq;6~RNysO4f@r2$Yh-@F4X4+nCS zmJ=6<^y)pUR{qTXGg_KCW`OfSt`22v^h4UTcl9fT>sjcOwADFTE140M09(CsMy6n_ z5W=G zI#2uX&>0jgjkwnrg)ry0qR>7gQ!>HZ*qj=XMEdm`#-T4A^4~aA`3+uA&yPRr>f#C% z64p8%kru6~;lFNRhUQ&5*F1WkWw{CBU~eYXCM4HTC9&dq3o9CHOPRyC<$ za!qMSdeEK7Z2kvdla$lrUb4hM&}(F3Te(|kr2Uavkoiov!NBVHla5DfLcd;-ysD;a zlr6I*N@+$$6QT#NR6PC0_qn$>X}>LF@2~y{{>hO@2xw2Rs)@S2^;WH4@Z3;NlP2k- z;0ZxLBVNP8%q?01Zp`IHCL1n z7p!Pw`)_@Sxd6N;$5}9N82^=>O@(^9%a2i^(Qn?f@zWJmFoPTyt-Aqs!$c?H{(U}W-04zuUp`p?RcnK^DI;5%?c=Fp+a8rd z|9!yzCf}O7vzr)?7F8>wa4}6kjcMF<_)MkNb}iWZrihE~^B4<1;UtQ(t~A-8;2WT| z#s={%luCsW&+a2&y(dZQvOP1PFJW{IA$*-9tm7ZW<&*ur$ZnVihtr};skH0*L0M4> zE9L@=9ao>N9-VDAmG#FvVrG|bg z+p~>FjO?bndq6lQpbrKRAtY0+z~>v($z_e1raVZd3)5jSwaW(51q2;_)z{;Y^{!)B z>gTWQn_I}dsSpqp6ntrxLR`EGb3?NzI?LYcSm*%wjeNma4_yg*P{!x=Q_#44`=Ac1 z<7BEqo3|-~zNCrGeb3%^EwIXbsB3cW#GaYEI}souk|rqN}}JJ%%1C zwL+e)ycKy;!x}AYkftsDmA+-I=DhePEK^#W?qwP{{8OVPs1YWsXnMQ!81_ea>j5^> z8bcqc-FC{C)>h(|@Y!0N-FBZ1qcTym@EUyy0va7h@MIBg@lbDIS>j+JzGV?L1!0J%US!@>oQM^eZr6(U^9*e#wYFH zh}xA@j-ux#o!q!gWopXC1<*HuGv2B`rw#4`VVUnziU>))iq@VgF5)p5d8RY*W9WXWz-XrroAim;zDr!Wl=H$!G2A z`iHn8(i+Kz4NVpwhy4f2AjT3bg_R{_;vN&O3zgUy^P zV=L7rS$?V2l;4OyIW{WM_>At_;5p^XYGW4d2mutVL@k?c-%l0Es1QH=trjQO@S+HXiP_%G0q01T(Ls6h^qmUnk1OY%Vi3@AWE zO0pzd7w)_Ia}{<)zBCJf9P(4f&Gfl5s`JBadp8kuY4p(ZSw)T^zJsHq>Qg?DcX$l` zp@F?)IFAFjj8d%Lh8KApD&8Bqc-exnpuh7zOs!F3m}P%2coEN}JABL&^89Sisd{%? z%%lU-ESWc}E=}R*Zw(?r67v@pau~x5W|8upDQ2~GHpysWVWZRRqn-3J>q;25A{&Sy zTOSqGMd5CW8hq<2%WnQ+u7SDf7DP65<_!6#KsXZxLHfjlkh~V-E8d z6A`z1O@8L)NOAJOBh*ll-J|X0DIgZR2zNdE*6T6cX4ck`I!TQ2`e!XI5os-{gd=(} z5)wmvf9mb)GR6d}%05xBxxO)mG1OUPOif|=83DSJY5<$tM6+ZEC03>|JTA&W8DLl) z*Li+4p#dvl|2)hKo!z!4)&5c;NM0Ig*Q2zH^zy^3b$PLxZ5wZ4-6WkdWLF^`U4%r6 zVlj68PGxWqHT6f9JdQOq1pf2d3C>Mpq>qtF7l{n?JY|0N#d%eV?|&Rf2~@_ld=(6BH9MpuW%9hq&4;aY3eTlFu{^Y699 zSxMQOXNxuP^`bAv(y*PhES=2J$TwGY*-mKw_KHBLN(%@~B&Ogi+KD^@Qa(T#tp8+n z0vfFrIGoCMQrd2U?B$n6{)u;@)x5t@8`P7LLp$*|+#q9D`${Pr-SPeT(bIi>s4(ws zvS*XUHiNG@@ol*@=A>QHSE{PWDCHTd8-#>jWzG}(%al zLFAE0hJ&ZR>u@S*H1WipbG?U+=`8G-3#y^8jzW2bO-n2`GyyCOTEyiYaj$%7TZpJd z>MBG+Admi)BrWnFK9moM0jl$2#EoBY@NBruzjnZF2!}^2_V}JM|HJxClfFtaqh_jI zk^&K8z;57-#S0*R)-H6=*s(jT-}gdIf9zMpdrb{bEdY+LjTfl^qPaY2#B)>!kPGef zJVK}SFp;K-!{w8EW)D47mE}`Z$<&0di8WRrKAsf8Hb``RuNU zviz}XzFs-qkUL~__1(|CS}nr5#ET!c>NCb_5V+uEg1k9%GV6-9{FepVjcwEMF}63# zc_dQ@y_Q6+tFFm!nFwI4{GHBV)qCJDygkp=^R`)GAmCL@F4t!<& zn?+LMJL^o|>tuAo$^7j;0(1iZ=bKYrx1VgkZ2CDaQa3kwUtdS-X* zw!Qbk2^KsZHVzi~4M(cCRdJhLJUsx|0)Uh22S*&3-1nWG9j(eK5Z&nU>WYPLim z?0hlPxd}sP*^9x-dVAOeCq`_y3-mPrAIKw{S^J{dQ`kQn2Ecd(_K~U*oEpMM>){A; z`8&y$)pTnm(?fu$?VH$TreOJsAXE`1@4j{$v6f9wql`BF) zu2QUxR0)i$f^!S>iO9|pkT?Ro zM@}Lx>4Gsy`){`0<}MA+`PI?ef0ZG&`%EuLNM*aDV@$U!@tMLajnn)wJj?`xW);Xn`kaKO1U$ zh;ehUp+N&7E?oqR7Q=nx&9>X zfG#Ev2wRrXsi@eTG3Gaw4Qi5;MF3!%+8iDEuU0}-{wu>R+E5N-jUM9tQ?@V`Q5tr) z**;vm-U4b<%$aJ4oRbjizJkSQrgmd0=_`&0qY!(x@X_`S~N@a1Exw$%;&Bc zPI2wpw_udQtw2C9s*&+I?S1hT*}dYrZ7a>tW#e~BdS;G7$;4V|vJOKgwN^!YhMe=+ z5o>h%*o*_@xj6vo;I##~M8f$F+}z%Nzxma|ITYA(9)9m2pbno?Z59MWO{Nh zf;&jaSBN6$I+o|1#`i5a-*Ii65I_+JOz1H`&~f@|)T||W9=16OMBtYS*>TVnaYk7K z0TTEt>ke)@{ za#dH^JHAdYsGcP`LugPsl)&0@e|;!pZx^i+|E{n0I^Csce0xt!Hf;W2`vscRMJAKN)YppXws0u}OQ%ktMNhn(FGpo&7c_g#GUT zNwRNokrJ0$Gz^$xvZfaE4hT1C6I2N}Uh{`vQIjj;II-oCfFmaO5gd<7VAG7?z7!e9 zr@NmU{jO(yDbqGL1Lt-$Ta6f|PYF*aG$%h3{D-R-kj)j^b{Nq8Qh&W)goJ`^>Pyys z>r>9QugJ^(!rqJaAC+R}-krQ`q*gC0WLeYC3hR@ZfN^GLWn{FbrG0Td+f-Ucn(R(0 zVpABhv}MduDd{^#dv!j&ggJS?@)YoIocl33smtx}-D@G3e41J{&ue_-(y4v<@5_k zC5#+$0tc(A@@VRs?O0?#)-8PAF$IV^9I)=yb6&+6S4Mg^KPynHKrjY~HcH#uVIF=Z zW7uk`3IZa|5p;dOq-5B_OQ}20#b5OV(^O51ejfQ`bsxNP3ktZh4kQ_o$C8X%a|y%q zzmd85{Qj0WjbA-^k`kg@F$Dd=sv`1bq&iiEy8S|>y+?b^*>}O;tD7RAN>mZoJDh$B zFmHLw6b<=^O8?n<@9n^|yBVGy+JW{>1q3XgEpr#Zdo`F8|4>Wr=cx;kSyrnD3}M&~ zYFHgrs44ht74QA6XL4oKILPEF_(4&-;D;C`F7J|)%xzne=dXQ6dUY+ZW~(v0>%3Q1 zcuyIZ06tSwr?!S2ssjt5K}P+mATXZxo&Mv>>uiI!y9U<)BHPU7W&f?jXERq*L#A^NB%mie!SbX`OI0=iO zE?Sdm!?Z2cZ*(1alZ9qjC*CmqA8lPOkRCu#0m6@=!1);nInHyMv_GC|=k7-(xY&Sm zvI1Y;p>9?z8`o!vt7*wefT-gNMN?-OnQ11C&AIK?>N%3|yc>Wsb8V+RLM}k{6_)Mo zu`uTRNV(e(-=lNgZG#*&>y@8EgH~?hRyvA+*wD(W2irxrzXFNcE)c2vI9#zYy8>2e zN%6ZY>@ZV{yQa?x68DoOCx1S+5!EmIu!}Y~-|TbyA$(l+-szd6`)Z&3dZH=g*b1_! zwt|MGI*3Wb7N+%P`>X#iHs%vz`yrxT<@;c}yK!<}y9TrM&((Oj+pN8#l8CS+%az#g zuc-d;V8@Y4!M@_jMR`Cn5OgUyJ9S{t)i?% zd3xELDkL~UZW#Wj3eS46%dYIzj2>P?2gf)=Cl#sG4J|ay)%#MRXHf^rPDtn0>Ek(B zC1w1wwvqpXMAFMriZe1y%b?EOgy+=MW{QT{<+_|A+w&0vz$%^0M;Bm!sZ~D1DAG>hJo=usU1*hgX90@hNeBT2$OWze7bprjaDZrJwYo!juPj}Mbx4ABF zzbgkat`*My?8brpRIJg6?T`EI@e9uFR2mWwkmZYFp|zvtBeR!$gX4vErk?=M2iTTx zjJ;8YR8($$=iFeZXHxr}NG%53A9`KQS)U$#Y^SJS2@s2h_QRjLxSvyBJwk1#IRCbt zADP?EvyWHZbM7g}A-xIWCm{7Dw;1mu?Ts%$q#6h&JV@LX+$8xP1+y^0yw)-N{_5m( zIo2;-8OhM9D4a#RdCE}zfS^tSIMta0lOb7H@ZTBZ8XwMwuSqMMm~m?^9sc7zQD3C# zmEx*ev92`H{~Fr=DX==wCCXpSz^%_umU1iBX-Zc8;UWW$(8HEoXlJX4u85K@RAWPb zd+PWwhYkf#8|YbfccdX3@ydTga&~rpFJzB^jJPFb$SbpDH?aRL!!(HUd>2T18Qu+( zQ}1~L2b3C4#!;XT6(!GPn;sB&7V6=IQ4`YjxMqH1WBCQ460k~%-P zR1qYn&<(9+X!`99q*FU62AEgaVKxPKhLf>A6ovW$@N|qKMvE zEzHfynet|T6W6JB!+tFma3t}l07NG0fn%=n%Sy^OZC%F?%g3gG6hQNI)9(sT_=g_Z zR01HE%;gJazXNlcZn40Fe*Cb!-h=}$PPS8biEH=hKd}inI{cv_rA9 zThF<#20tLCefwKuJ$|O0T3h+w6c9>Td29|u+hT)0URFK_T$j`%rBuF9DURhO`TfZB zu!EA*)hIIMwK%;}79Vo@W8H($8>Z?Cdt)%ODQ6Q>nrLQL)vB^&ZsZa3r`f&J)+*h_ zfFv%f+Ui@$@vc+K0WoDz%w2z@_!yg9=0;rijI9K0>Us{R|qju9hN1mLsA4&dXi$!t_JqN`yomvP0j@l8z)D8Lj z;X9>q=dj1Z-!;om8_0kITe;GIbi{=fm7I6>nacV*G*x%Mp4>UY3pg~VCbSe*lH-Gk zkI3Q-jdH4t1keqoh#PVd7a)NdMtwp||C;?XS!Y!P|~V{Tl@QoOg#_ z&6;DoF{wvxl{+^CYaJT5u1jAwV)f zOiV1z)n@s=uF}84QJVl@SzR;_V>G8Vx%y$xd7;OnD{WD=f7dXP1lnYs`9ULbL``rtb>I`Se#=RhTPEpUuRQSe6xYRm2Yb zYP(n`X15|3rA#sZ7rnQxNVAyX;^hgXuTM_SwmJe!wlVr!kKGUlOS<$LL`~!!i3d+z zpN;VPQEe9)?4$U16jl*8vkD0;Y?5$+YA^=Coo})K6z3*@2VmEkS-E`vRkJ<3h6))SI1Z2WsKk`|yN|o78tpl&DpEtmm z1B8bZ+aVN=xN~0F@{h0Z0z13jxZXSgN1nxSI52&T8d_%O7wMXJ37)vDp9w#`FcQWAb0j*y*3@qsAj3F_sC1%nNh>~a zT;cpcuB8-}AyfKF6_&TojG@R#QV&=C&Dcb-jGvfH29WA@I ziYg}Q78fQ%*4r4nG@&F@e{(8$RsiaX-&y8cL&MNi!el-vr!k|@|r^|MFY{Y*Zz~=)eKp3D7wOW-7L+<}}6CPRr zJ81&!DMtZI8y+4bJ3ZxZV-7AUIN23pjwD!&7W5a5dvEk__us zky0HPdFO3iH z)^=x=4D;v3yhg8yZ8}g8B4&mRN?{sE99WL?WKm+yiV&t0?%mN#G$gLPq-b^mGxaRt zU?d>M6R=EsP*Fw#c;QGVoN73qh(& zEY{VN#hH+uHg!4$;%D;Q8!iViRC~^|k9LNp z=j24v+_1(Vx@OR;5CWk{@QChal-YS)`ef!xlmqsVX~-$B3w! zNQ^$0H0em0X>)TEQ>_-_II#_88Me2#(b?@l9XN2H;*vWOIj+)((P_7Bk^V8CVwFb+Hz^nO%k%g~ZYVSHs~D-A>1Jh^?>V{JC>@ z`IT2V*PWW0!oh-&Wwdggag;vfOnf|Sfpcl8zMzS7TW z!fB%rw(D+<%4>Qqj=?0T!bx8rPpaLBb-%2f!=S}uZ z9(DP{v_@(u(2mYJ)w)R@`+8UlPtvi*m^NUX#7L7Aqwxrx-CeBPgSoxE&2{}oqk)Bm z1spnf5c~G;N4wp|^z<|ujRvM#Ei5c9Vs37Zb^oYu`uw@`*xuR3px>Wpup#i)O*dRx zrrVgbS8bMR|9k(&eJ{5kz@0PaVkH%^u$=fjS2vD^V3sH+47JM#Ct~ z)M_;(ae|jGy^QsZb@cmvCbe*vmbJLtyY7TvE+x~Q_eBrY<=pa(wN{>^2U{kgo94dO z9S6(+7z9TjrGsqmMe5-wa=4q(-6XEi0!`3xHx1EUwJtF~KY!h8E=Q!nOY9TA$6hy%gx!D$yPn3Tk7krTPp4Yg10Dg~a97b1S z*!4QvPF%fS*0OhlyOT$#;fSP+8udD++ilFx&tqU$i0W^nm;Qm^R?Iex(35skHGgj>(@H4?q}_-j_h66 z_c9{aT0e_<6vg*7I@kKVe~Gbj)3JZnP($BSDBVVWH$uXju9iuaOtSkx_?Ktasr`*qf_ouipgM*vTW72 z4@+Ru+&AH-m^6ymt?kouAhf>PtKbHlDy%2*)WY%VFbX#|8X~T{c0E7MhARpv<+HRp zPiZXyT~^&_boN-7g&3*S>1p57_kGOF&SH9c8iT>m2x|}nF^bHjm?VMfSWU0N!1SV1 zZ|;Eu2e>Suo$`jOG0lVydX2Tf+DhuWH=hOtn1Kfd@PM6N<|#9WomoxJyf^OIwx~91 zWjjEL+k8)+N!pB5}v#(iFZLMiJhEcnrV#U zudfuV4240!WivO-rz%3lBCN`=EOll9Q35yJdOcNcC=WN45&QR6IhT!%tv7qFL1qCE zulk-qKW7|M<&d95TYf{5)>vR%_NQ7L zl>n&CRhQbTSe6KbkdVkKx7n!Ms?LQt&@UEBSByeqMcgOYPGJLwU9Cp4V0i>YTBTl!+RFY|2C?k)Lavf zGoJJ9S@M(TZ1U80=t&_EIN>05$!V?OtI#>%+M?8z+;r)cD063K8Gzwv#0^iR5KAMD z>7Y@s1l5*H3#5rKuu7_um3Q4##-Mh?p>iDM&076fMK24H#>f*?Se zq?Qa7VXDbtTJECI>MuK}yziCsrMM?J%%vvI$3lbXck0 z?NUHpbe#r+(BvHAZxDIKl^b9Cl)6#cM4gDzD%KQQ0~&yx%|IQNDzO~vB&Nw4r473z zbFYPcBWg;au)()%B9}Zs3Lez=TeA}~bB$zVW?7&0j>4w{Ih}cMJYABuL&GOt#f+6M7|Bt;lTaqM8t^@UMX6Eh@ znU$HEY8!tC0;sz=X)k_t>dANU53<3Ok5QCkg&cUV~#Oi~9&6g4TmQFYk) ztq*~coB-#``Pp0x7QJ(xCgC zy6EZE=gpwErWl#LQ9H=$gEt8?QCWQ!jKktTpV_w9qx=-(2Gw922O^yMTV8h##fW|a zc?W)Vc4I_ULed{YR*ierjJanT2D(demw-dW@kri#<@lp_wmEWD++pjD7l1})hsYR> zkav1IFW)cB@;6cKEkaIHx-r1+5cqI5@!s)#KC2)Dh@FyS=9xz?LY}EYH!QVMFs2L6 zIhv$b1i!a|p{zv78)KxH02GO`Z5R}V1_NstIkE{Lm8Or%jRmW!Rif$} zRb!?IN~m?g5$ZU9zwF{()L$`1T5Bb@Z5j)ODaCWR7B=({Gfg8j!nFwJf_>%0qG%Wg z?XzPHN+8)A9OmwohPY@^=Y@mX;> zzCU;+;TC$gyD(r zk1_G)kqh_U2#hrBHweKr?N;ywoBy_D#(aVnGFX?-2^yOO+Z5kp0;(9Qmlw+9+&-1PAWT+ih>mP-P}nW z6E94Zx|pM4;j~J$)lF@XHt|SzhDwSZ_{h*cQk^ccmM!I_h@H7@g6 zXYVyX&pA?=axxf45@Stx+~Z{5HqPrqDH~$o9I|cgn_4d2LtoY}PZt;)!Wa<9{ct!^ ztws6l_OODZFRFzgqV=GjY&s%wbFYTrC~FTG0;yx{X~zCj}(E{+EH1Gk?VR9WaOM_TeFsqwG`T9hXOi@ z55>%Qu8S^Wo9tPQARw3&5pNLFTVeoC7bJWDJOrAIo!jpgTT{+9Faett2RBw{j2o58 zi2O7G%96?5`t6&5I+W_Hj10X+Iz#YC~c{}FgP0Ur z?lt)5WHZ9$VU(PyI7jc^y?Zv-l4T)J(%$Zwan zqAm;T;H9#dL=Rzo?~){ZdgnV4M1llC_9(`x3@-+ZAK~=|n=J1gCGmvYxgHsICime7 zbtA^yxfxj}UmsVC*oa3Z&2;e$tj%#?k#n?28fl~OXryVHq9 z4tFOShk<69&5qMV<20%XUo#|sJV=;6HYqy?Ua6{LV(=%>x@Kz2N>7iEJmN@krv$P( zZS;4D>2W6D0Gk8C0)`>!ZfReVA_n-7$)eA!ja^!>BVvq`hD5_KYA$tSl6fcV$SEDf zKIu*pUx7nx+oqoDD8Chy%tgma2xCx5W{heG;f(g0agIoLVxnkIc5kX9l-=5|QK8G_ ztcf1gjDKu8trcsOoVDCLi1|OYMj=EhCDS+zw2EK}JOF$?Vz<2al$V8?>*#rqpAE}v zdo2-j`w%D`4!diCixH%!_FAAH$F-o%z_p;oDaM@#mCY)idLeis?`iPEPVatOshsZa z^t7!qk$`iq0?qLCgV}?8F6_2J8D>y(lOV?KpSa-O$bVlh7oMc#td`BN^6o4^i9D04 zTO-c|z?%+J2g_Tdahm9Kx?{o&p8})_mncnIZED4g7jcs>gDIpn7JwbnC}xF>hSq+% z*Sa&09EO38$Acz$MzD+I22Y2BmZiueLtl5DXN~s3I1AT<*|c@MVag(jmU+_BjDNnk z(6;Wrifaa@fVLx-BKm!P5bLs1t^Iq7`FIzFg|eKo#u@Q+8Nk=|$H_TxS;)sMbp7rziFP znk7>iH#-{tv%c$E3M_+Y$x!^1t8MtgDGf~XY+Mp;d8Mawp>4~`d_szb6?}lshm$s@ zs0kS%2HoAktlQCVjjgh~*)*yl3z7J>7ZV}uy{An;8@$lu94*F;XTDy^iQztWUtNd- zFtVUFmo_(f!>WJw83D`N;W+({kcZKmEi#`ojZVFP9#}y3F+H^JiU12Qy~FON78d zC$sWan;_}AbA4;+rDdtQ+k&Wyou zJCHEvtRa!Xyzn^TZG<$!6L52>HA+J=r)>vK$~o(_B1xaFK5$YsM9DwbxMQh220?GH z*DIBhDMfxc4k9{9<^?XbYKh&=E!bO(B>!&PR!S}H$S5RZAXFci)!yo=EkceSx(MTL zfc=qk9O#!4MV&J{ZBG!S7=`HZT&@LSh3a@yiqdSsgJ95GImWQpO@&SJbeaqw(Ic;HigPsNsm=Grn(g#{; zr5!m`m??OifI&nsl@d zFK!~xn0q||Zk10KF-DeL2w<9Zoj4Zk<$TtvD9FsZD&@6mB?5QQDtdyV>@P>#n$@lt z$uFz4Rmf2%Sv(riY#3=I8wok0QnQkyFdDTc4~QxX!8480v=UZ=>4T@kVd{)B<9dUW z2ml*GDWAi&)LOJ6T{2g1RbC{t608#w_Qf>2ul8YH3WS=}#ah8UX+GFGzWo7J%I>}g@0Yr#fC*^99j zsGS5FF-A#^Nh&s=FdLx=P7C}T5LFyTNH4xrc?(utKBg96Rt zAl}@d%0fp( zm&-*p9$4qjn+g=ItyCLZ?qg_#fS_{Lc13`@QY*#N=|qi)?%sb;jxl!3W+Z?xz)P~| z;Fh__SjY*}h$*y=@|Njxy|53Q`~pyT1$nqBCGzsXV@kA2Q2aOy(ueo>rpx7`eswU8 z1ak@C7}GdeHfX7oHeMLzT&;yX5v|M89bdr65(5Sx%J}^p9BPGQz_diS%c(=F198Yv z+8gY&gY=_l3y=bmQctd3mW7=3=A0m!W%QK$Xek5=1Ri$jnO;c@5<{TF@u(u10gN?l zT(Wt>0m!~2c+rR)g<5Id;DpM8ofH`_X(oypo9ZC4NG}|Wd0C##wOD_ECeL0|f~8f< z+t$ZcQuYJrM78M*Z^0fiMX!~5cm>QWEjI$yqNLH**67{4cXHxa*-Sc3c0y$=>#x>>rZ6eDfuQ);E@aL^JOz{rwZkYI5v=O+! z!#H*ZoO5(IOmeTQj(5EAbkBmwssPD~hUA`y09j_=j7U7}Z2MzPE36IJFeI%cIt?{Y zkZPjIycv3P%(g)pelFLdS==p4VQT{HTi-~)~0AZRD4CR)Y+3 z1LwYX7g5rk7-Pv*Hz4Z*YsXSBdH^7o7v7kMVW8ZyKJZaaMiRjaZb%GXO)k7hN>Lxf z3t(9mq4-uQyMr1wK)E$eqex{%p(aL#P9lrOVW4psl@_gi_cOT`XV`K`BaJBQm8jxW z_koI{8h2STa$2B;c=7PrDA`f9jN?d2d<#gX2zZvOXd9ekfO{B+o$1OVm9DxE8?OP? zwadRhe|n&0U3jD0HaefrbiK|LkHY;$=?laA*WY|Y-+%x8PR55F1urT5$hB+&f({E@ zm_kZPiW5zR7a>qeUf5NGj!qzOIZOwQ^eMFiWtIjARS-^HwfPm+9zoRuW?8MAT`u#| zCZvLHB;j^1UAZy8w4P~2B#As8>JmwSl_=ft;v#j`ORF-9Hv4cmP~Ngw7P0Qyl`fSm zHu5P1aa!^AnN7yUMm>%rfpp!Y_t>}spD%*#&o zdGLJ(4r=rUMJ5C@paMspsqaKm^1IB}t5$Nev^;1-s5ScL%^Nx%50r+~LsW=poJNW$ zS)IJF3WlvKUC!rj>#U%AQ(0vxyvT=P;Bf}b4~#chHF{_Zo(wXA!osg&P>)mka=p^0 zkDv4fv)`M|Y!ocKX!N{QO5!SB@ybUQzH{(_d~&-i>sl+FW#sn-i9%IMQ5{XJ|C>eV z9WnUVTBD26PGi@HloTfc7P$2a$BT*w=}hz$`F8*|=Q*&VIdm9U%HC~ZbDeU~$K*-=PDY@_Wc__R}zS+^JYK-!Gt@sh7X z`tcfh1qBz9SCF6sgr9_chif=OgtGtuAOJ~3K~!sErR2>7AWA@COtITZjh#2X%ZoFb za8w*=NUTGbX9GszbGeo#05U3paUA63;|UQ`S(U?K2q{gt`%VKFI$%aO9Q;a^hB$Ql zF8Lj~{|-_Sc1tg;>rHbHc_SK!r0>~XI!UWr=uUzlEuGdoPai*ir0excm-AWMn4jLW z2Y*y#P)Y}!dh5d?b*@=YC~&&L!%ivDAjo%XjT0oKII#n^dAkfX z#@*twNV4{k*1beVlNy?6$~w?1<4t9fbLPxzd0xOu;K+mQJMX-<0ag@*O$v;`WnI*P zH>KE5WZ6iqEi-JvgBW)vXanSWhGEbd`R~*R{||pH`GyXQ7HpLO$_mZBl){+X7eg;b z@(Q>V(THdOoLSrMCT001&%|0sS-dOf%38yheZ@>0Q}Zv;W?v0CtGW};eg}<00iV58_EE;O*}+^ zf}ptqk+mQsUO)gO=(mGdAd!qaoO4tmKtT?jv=Av7YhkHMK&g!)@&TI+EUS*-vO8>* z3JrV%72}xMG)O2(z#aR2wN|>jyHjmF=%>w)GSr$_Hy_U`z0h52wr!(VqQH9&*OG;S zhU!W2sI9x$sJ7h(k9fap0YUBpp=%I%Z8KxNWHbuJB(yH;qW0G%7nS)Qv8U2CPo;Yh79rPqo>U>X>P zVTYsxnb$E*DGIoNq+=CL!JxI8xFY5a*s(2Mp%%&}xS%`dRB`5Nb_=G;0`?SQYzJ2l*5l$VJE?U_&X;I zGH0@SoB&7gy#rtyLZG*A-#nXZDJ5&W1U!l=9{?V9&2T(It09#t?6Bce2lggfQD?Xr zI(4#%yTDuwz(%oy+N}`f%b9X6$_;Veadn1+!?5d6F0+2%ctPelbXuu$cu=UWu+uYbuL*?Ma=713wzL+^RloF5Hp05h7^FD0yBIB8>mr# zZOVVgCSdi`*eL;Y^nSU|v3XaXc3gY)!WPf9aU9fYy3}s*WP7HRI4Bb3c?gm2r%68- zN-4aw(>The&~#*Y@FvX#sUoIw0l%GuI_#aNG$b9Uikdd;lwSaD9-a7t_4P=^E@-L zL=Kk}Bdy!YqAQcSs-%_R#T$?hT;`MH&e(%R^G)EQ1y!5;9^i%m1a7U;VLE(~088X( zOvBFpx?1l6L%@l`2t6JS>S&`*O_iq<@!{ct8Z~-+dZI;o6_m9}!I6iYHXXD!u@?awrhy>FHUv@89jx&YFPzqf{n!9@LX^ikA_0xXxKDbM^3GtBz4 zV>7gQU+cQ=04jGAdj&hTtS1H}MMs&HH>3X@a3oIJ@ZCz>GRytoU^#1)% zI<~=SiykXMY+{&f3Q|cq0lT18dW~RxvkgL=hE7>^x*4qdWK7p>hQOjj;Dhx!XOOG+ zYenYuDE~E{+1yxsKLP>z!whVsA!Do%0zE!HN;@Is7FmS&T`~Jag#!Y{GS9pqTBBwF zr6wB)<34u*j0ZLWH{8G%(NOQ{5QWe)@*lFJ5f zEzDejtSTXey7Or@R?{GT9>I8)YgwwqmbvqKg%`7{DwW zExAfO1;A1V)Gy+Mo6b;`=PsZM8xPiNK zo43#ATAcGbt>|3)pyN!8!;*0+0;wxY&KdsyuB`}tinIzxA1pY~lkrjp@2PoDgS-=Y z%c}E0^^EbON6M-Idkh4U3c{Qmtf+YY_}9Ot!{MmjbWm5`olYE^TnxbgJwzWz@GiBk zt1eKyJSbg24aE(@To=2a6HU4^o^;mUSphT+WNbZQL_D#`i2C6vR)n|Cq=BNYAlLyh zo}<=NRBSZ8&ew&u$R-q7PfxT23JAjfT99<0uE{$h7c_OnS*BD76v9yr6P@uG)1(^d z2|Jmi&@yM*U?M=BHrdQ54==?k$SkgXI!u&e+Eqx^fQ%rWq?DA*f@f!Ak!zE6;e>-Q zBn4>m#@FZJKW?O$s1nz0qrd;{-#?pcamEJ$AQ>hoc7(O%jn;KDZZxc3gV`g;7Z*Kz zdPrzvUU`T*HsiI^B#5IJPr#z1<(#{K42K1`e@FrHGz70>IqQ??suM*YY|&bm!8*tO zh|W>`{P{DNoaTh3BHkg2zdTQ=AtsBkxTf5ciOcQe>qZ(cZlx;a+H9FQhD9S&-|aX1|1RCOBPY}J4;3sGCAXK*bRlR=af)*!}Z z&N(^`1KpiC{yR&AmUE71BDL#6l?LS^DuXJ-D;yNK{CQi%^ROw!)v_9Es~W!r;O%n{+T?iClI~9UzH{!S7eoMi7`uO1^YjDLVAL9&+#@5nN<{>5R zx$QqT5z>p#m2-Vw?wq4}$!h2bamy`V*@{J)k+kBa0MMX{IN1g;Uqv-BXgSza!^~FE zT;6xr)TZ)8a0U9zHECO77mnrK<5VuSkSmU+!-2;yd)!R(xpm_(nP6T5_)6YXqmCK6 zp7fi{W6!)WVoX|DfNY{a51 zDehlz^iPNx0xSb>x!Y-ij@wLZF~|Ny?LAcmg&x!xEof>hl5u6xBj?_Z@DSujMD%n% z_s_mfKG||lhN+cG^}4~e)@Ty8*K@fResQLqW&slzb&nODgMB&ivM%ew6jWI!h{19< zbZ9al@kw$MyqUFweTT3Ley&{zm15l;beOr@G+F$vRyYNJzG8wgahOF89w-W2ZQDkd z^O=75=|?J}Q%Ct^`v+3A*!4cklt;~s4HQ6<-4P{=li@zd{I<8k&V4wT(Tix(ZJFAr z31xR>4|!7>b;)8=R+CkU*%6g@jvSk;Gm1Wp?8R=QjiITw36^HQuklnw^y%YA4LGRA zphIQ1M%iTPw?6w$76Qjv{u{2SOxECvsa?Akz>ZX~iP?x_%P`!XGKPc{*Mj?KEwN*W>YB7Hi%LYTvJ&7jHuB@~xT^#-okapW zU<<}<#m?byAu3Qth+{%~hsbEG6O6P4rzoXRmOg%77K##cj<%$=Mz3DKqG_BoHvzQh zVHkLhuA?Pcw8Jpa-RVTkn%i4EH)=u@;4;_WXsQ>nH_j6Kvu-OjdAUifsBHg)kpaI9 zL3?H}k1Tc2_PO?CgR_jf%}8$cElrhsVsrTNlG=RAW;=19jvTTx^X5wLKit1WJp7I;xP)b z9nDj0y+VwfFe2Cg@zWV!0K)dlaA3s@WKW(Qy$rbF~YOKiO_Oj){pPQv}GDcs-o7!CWb2Y zc-+ThVPuV7pHF$-Xyfs8(lXl;8%pIJuhc@@d6Q&J9s|wuvP%KQX{jU^qtH2~qs%Nb zwbo7UL5Jm5*Xzq()Kk4Hd4P^8Dld{yFz0k`=sZ;iFKpi@^0FC?!=Srm41tnF=k!F3 z@-VQbUA`ZErAIfI&VJU?V`!Aq~3QH`(NnGHQi1+^e$MZ5R(aS!k_M zbyWaC=|hXC2&vKGaMal?7IZa680eFWIk}*sBPF*asXBPZ9}IF17Nc4n3n014=7*P; zrOMCaTGnk*ftBTnms*Tj2NPg82&C}K9$?bhx>`}%NxYnU3O0Z$SyE{=lOq1%yM;Vb#(?qZC zU(wx(_2Ju?b+)$%c>}*NY@RK1YhGq@pe3QeA+e0}KrCu5&!+v{FGRs+!TRck@ZVR{%E7LND`7PuPGk z?^LFh|H8){3tlA}riX3RgcXJR&iwp9otHffN$;IfOsmtLznBEvTUw{(HZ;(ETcakR zqerzSPN}wiLFE*LnO2NR#{K>Mv$>WgY&Wz+mTqk~3AhfaPCP~q)iAl|8jmCqP#}O-2R7FaA3o62 z`Ao6hq^UH+E52N>oSh{nq%9{xh@zBp`fo@KLkP;y;l<}v1=klj`r^H4pp-(F%VpOu zTfhq;bohEmU~gyfS<)|Yz2i7hDcSTmy;lT!KSseVz6eO zhHO!Crd0qS^uh2U<8f0rC9!}c<21Y&@9yrN&9xBmA#!DXwzi#U5x70zbwJM1VVW3x z7Sx?z#(}uVY@(eQxpfnk-aIdYmvE&pnG{=9sF{kZw~mms_K{pMZaUaZiqV{4v$3@2 zT1)~A*nzcDY?2WMfC{(ne^yOD1@~Bs)~ltF0sNMwyQ1203@`R7f`&ep>1F%SJ?~|M zOOnBkk*3`|i{U6-E|;B&L6bRckTMr78H_x@Rj;zCPvSivL)2NYleC*?T#NqD*J6GD z8u3WZIY&t)WvdY;!>ev?UBiBbZ-TS-d1Js*79`LglTiY%yppfHqh$X}DeMgd995 z+uNXA!wX_bI<~a(<|VYHza1Ij`=DZLvS7e^!br}_Wp5?5WR!52CWH{W#8*oAXuSP) zJHFvykD5LzA|M|q9TI1B%S+~s(FSCW5p5ZTgRc)eOB5+Z)CTM!b@eCBrT>I`{zx#4mcR_j#z55U9;+= zXnO-DozJY9gAvIl*C9RBEBT ziiduyluK1kfPSBG?twxIqpBzyhBI^QVkpnxfJ4QIP0cPesJ;}_kP~HDRw~P)3NxVG z2-7@0qifk!J2C2XoE#=2$a)N_^!!`eGpj=W`c!sia$keoAJ&gZV^6jdB53Tsq> zss|epNHMrKSfAP0lh4bdqii2MefQn>^!nASo-izd9^ZWPn&M$PkPn_F$!)?eHx7fo zlrXJRu5}39V>{Y`4LN5a6F3E%Qc8+CV^bhw$AeSXmU*o;nx>J#w~}R^=``gs1g7RX z?`fH5O2feY8`nQnKpzx3E7B{g&`R^xgX_9bK~Ck7DTe^WRyCODCX)bLh@66h#q7|> z<8jBY1{#n4(it(2ot<0UK=ZrOK+`np&+HARR?u^J?R9>s~&`kQU*s?4v$;qYv(1wF3He`RU|M`GYA zK+H?2w5*HTQs3R*_h>13$(y?R^7DLpdLq{v6;z`+6IEbMBwUfMJJ%7dC`RpRe!X0F z39UG(!Ov*5(rR=SpN3B~U$3;~l@8;9N-Ol?!v{J)ohc$i%8nPRIprWe;6>Rq)kVi< zLVCfAt!SXwGldwaQZ+WmWp`p(4K_+*-dH*~VQqb#>p9w4Uc&3;qRb*@lohH~j00++ zc`iGoejG<~rJFXeu|w&Jr35~++m&}#ta80v7#u5Itq0vQ%I;a%OBT`nxfk4?>|E*v zwFNGP112pE7~?@J5CJL-{W3s7=)O~o6sCy|hlBQdHbZZ9tFd@WyRsKiP%KjMWY-LE zjt~MZ>#A)Q#zXTwKbvcTtQ9W`+<;UhWt@#T#Wm91-KqP{-xxBMQpl%a$L@Rm`n5S6 znwqMjmtWRRCrx%!Cu0?@If7F5hross$0G~N5Znns)2;(-7BMB7BH!b2nka5&E^af+ zQc5&Vle%(P4{p4$JsX^MDzs{5mliRGA%z_)*{@?-V%ZT_bP`~IDXS0zN}hn4wzi9i zLiLcvS{Nfe%osJ|XYeXe!Rc!G*qZ@Wz+@}A2-4b}PF(Z4>)H(pFEzpyaDC%A>d)55 zrqCAw=B`}wFIu{Gv&7C2#HNWp-ir$=?yHl}v3!7L#&zI%Tl38jBc0@4VH4j3WWwkY z&m?$HEk+7zPtcTJ`W&uho@ctsIJufEzA8S2sM1i*Tg(R3SX`goAnc27gG06FH{;Nq zgN{dq=Zs-yzqV~%>1+&J;GKwd>kOSc#7J-7yrH|hJDC*meZO3I(C3H|9_bRMB-)FB5?4_v4y>)`wrKlpFci_Yic72IjqG=x~yDmyXi^ya5zr9EJ zJwOt&_txftld;3L8>`*u)TFR<#S`eW%e?H|N^P~Vi802-h)L8y#Pq&+u?C?c=h8L( zuV24@HrH~0f8WV7W~PlQ0HEBmE{1aL_4B$}Y2Ual$c%}VIso6$W_J?<#FdHB3R(z~ z_A$mtCow#Q?}0b5&B*|dSktG|i4N1ml;fC)yra|UMF02S{T*ijSXPn^3B=gV#@EJ} zln`Q1SNu1mg!V)%CNjwG;xYDlGRkPH*jd+=LX31ipLLPvkc|P4N$!w&G$@M-PDvST zuZID{QE7-cvGGDPQ_qQBx$bz)HhO1Qf@73c3Xg5P>s)k`8;40jgEepryVIqg>S0$> zdI2s$i3Ljw$gcvTV2{ac7FJ4jVRx!?RT2)WIGAjxMH>htxRFl;+l1#g?=XYeSWVejihSTS5p>OQt}w zjFqi(oAG-KyB*%*57vkg|D&6@Wo{KXqQ}la5#a+rI-7BBt*&B-G>n5W2w-*-CKr6F zS1Ki|*(P3oFy*vzDutZ5l6bL|?tFpLLk!UCDMx@Ef)L~DoTqsPaVIL*9_TZwI|LGF z;G=Q=Wdc%HYdI6e1?g-`NlhHyyng*`t_25{Z42=^mWqlB%Cg*GDYmYQR)P3jRHeNd zOA;cniFrgw&U^0Uu#EM^8aTUn@xuUr=1eh6}@u;tQC{K*)y+$ES_7+D=eB-E-K|U%XFKV z>XXP~B_c_jYpe#pn_D(^=#+)oZJfnM$QVAN5P^VRP1C;q+Xt1@{J{T;u@Qid5&^ zqK^Ox3~SgjE;nO1IYeGTspn!tuZ&&lh+4oo`pJ^zR{Y{G24#VV@Fyjg@<7f5la7> z^StyF6y&@cqJ;WuV-ph_s$}kw6;Ob?ugN#wQEQHxjFl{bWan=eg66y1QROWNYG?PD z`)c%aO1q^*!&%D3C-@jX#*U3Sx&6UU3vC`>yq{HDr(K$!QUn;1!dpdAr?D1;+)JKxY1C>FukE^1^n`#hSJ{yX?A*};gt*b5 z0$SAkb}DeIEpC#|g3ZtF<`A%0LXTwyVzF8Sh{vZVjp@;TwDtvS1vxguZ3pz|=*;cR z485SyMRmwkXSGnmk)z$_lEjt9!R|{^YOo=#H{ldETFO2bU#-Ke{?eJ`_ zMb&0T1HMz5iNqJ{)aLE+^keI4%1zvuN>#tNou{Gm6jP*eWb+b>Iix9er(}G->MmGQ zo|i?iDbiCOW+Y^N`%N%J&Y7N`p7c<}e_zgL1ai6^xMl+vRZJltkX1}lzfg~ngEdm# z_1$wvU_3eL*cI>tu#JAeD1Nt5dsO3v{nhsvUq zLPbnC`xvtOn+4+yz>5OUxyMQaytFE+Jyy}jNS2Ce*Nok$EJN~oy*`_3f#?V`brp}? z*q~J-k;Q4Hkx;Et&6wDbx-fOGy0}|o&XE|8WF>_mE~>Rgl^WI3GuAHGi~8H!stq9( zc5;DAX^?Uq_vL0u4Mr;Wtw$HiU zQLQyEwCQ#Ox{dMKxq4`|;q}H=ggmHf%1dACHNemI(-`eRZC8vnGp--DQr70m(jj|Q zLpx$otxdh>p&{o=rt7Y;unQIjIgRQ~&QUfaA>13zt8e6sL=|mqr#`&SSDiRuBZNFR zhz}bw-uPvrj*iRA1@;vLJ>GjxJvDYvSiI^5ATxedYnAeBuBFSCdqvgMNOaK3ZxDeO zRF{^2PUL7f3>xBSt4ceD1x>pNX$b#-=DnFdy9<}R0?}A^$>2%0eX|uNa{U}R#n3_s zG{i_B7x9c^m(HLz&tB|gqam}n#tX|kPt!ChJ1NKxY!fRFhl8GGHXjUWmYTF`ZiwAY zAzZL0v<1mPr?jOuZU)ROQ;IUWN(QjG!=i-v5uW#~JtB05o#yEEsY8(pK2(^n=F&A8_q8|QcX7Wv;MZfh>F9`8C6hMD;I3E1@kv_# zs>-8S$IdJFFTFv7uoV^x7n=Z$k1|=ykA~DW@<7I#=osp>^#XU zi|Qn-+v6+C#bPyyn>cKd;ruI28Uxi={G#0(8N zwz9UPQ-)L+32cQ;tv^ZC$bl$p4b^kqhUh#d`PpRVb7~Off7Z9rV%G#u)uvRYS@E|O zU>4z8aOtKlG}};X*P%z5oaXR?%WSjA><&^pfU`QFr0_vf?!NFYHo!_Br;6NskZHzi zImEW+Tz49n*#NNu`Tb|2LN6r^;Vmm-S_+pA!$4jsi0BD7gH-B4JJOOT_F8FKmTL^= zwqYs4rKB!~0{?C8WNz(}Z5JN&cj3mc@3XxblZRO=#iz#h8YL>Y3iIb;XM-Yyz>-&b z4J+!hV(wOx#!+VKZmgfw!#b<%r}={xbPhJ9s4s{Fv$>uU4pmU@jIJMd@9@wj8iEK2+72(d$@@Jk*S$|W4YFcb-LRE8}YmN|AmR~E$*5UWRWZU?_Crt#xnB}Tm59SG!h8a$`1bv!gV^5exa ztXTo&v+}YDi*$&?Zd<`7T9==1p7CoVEnH99fq=zsr-@krq#`%>i8+lXVZasd?1CY! zzAE>sr~`_}_1T&CvIB;1%+iq-id5HPHe0NxDcr0-zGosxh`A^ibEMAk?}g%$ZrTW4 zE}f2wu*)|4eGot1^zB{??DOvk3R#_59>hTr}4VF zJ%Nq@tQz{`CBzu7ql3M?90vhPI>o*-TV*$n=5TCMSAAyl8=~U4^8sS4)q0{G4-T<5 z^plNN6#=o{z@N=YH*Ja4y#$SbZwXChC$z z&)_9L9|Z+UiVQP!U)mTZ(Iv(wvsju;3^OPG9Ndk~mq zM7>9SPJBl>4pJBsz-=_FSEU?vIlFbIfTt;yZvZ5l5%qoctXX|?`o!_xjr($N^`SST zi`zY_tGxKyL+n+RB4vT)%kBk__m(@M3+@m0aWkq5SI>2%q+7oNln>1{E02x;z6P${ z50?P(a>swa4sfmE^}6!x>Nc+F`cLt>TC)Cwmh|L*H3n1h|7wdf zN00wmQ%KVP|L2#>CZzv=2ehM!CUE=l&7?+?)?~Jst-h;v zE6IMo0G_hLo%VcYK73cS97`qiU{v*}o<4%~)LC?SmXq9P&552h1{xBl3OBZj;AZXd z@eznxaZjRYU4A|TEXRKx$nec;ik{5=MHT;)w@HNcIWWdniYjT)hI}v&mzKRa3CgC} zw&|suq)6;AZCSeBzhbMNH2bJ9sHtArs`*)`dWc7UWWb>$tFu_zh;Lhdtz2dnSO=iz zI%!p+X99|?ShN#qg4fH(5dLj#-r1YR7NTcG}6DoRhb(;h2;Jwk9o6#+h|c&TGc zM^|g_jF5Qxl?z}b^dw!f(Slvg9EymXg5o&}c0sx-Nf%#rmeo&t9@O}MOjPRHiX2)rR7Zb1D3xa-3vRu;OPkPG z7&4VI+hkkMp?<=bYCDH!Pio#HwL7@vF%%c|KC$9!@KXDREwIj&%;cUCA+TiaDxW%X z-HP4*Yc5i+s>1>>_zAn_?>Wl!#4ziHB{^x_-XY0%h1p`;)@x#aI2fBNM;5~cG1aPDxl-=ZO zQMnUM?ui1KWUv!jWpt*tHj*;U?|*Y#d&F_(ZDB!Vc7Okt^Q%^!yt!U?&g!W4I*{ok zbZ2m!ZlvXKHR<^7zrD`O%d5!a61u*efm1b{u+}FE4jrwF;cNDW!gWUa0tPMg1#E;9 zVN#mo0PHAf0tV94;;zR!br8@qu2*1{`8E*|prW>B6;?SGoMNJe%xAh!>qmRu^sB*L z@DLYyrcAlO#ipEa#ef0ddfHMwW%eP-L@0X)InQ&fc$wiPY8HyS&&q1^i zqjbT$G`Z8&Altv|Ua0q?1&ytNYHC zIsm>mN93ZJiZW#Wle&kauqSXn=IZp1XWJ~L4-p26E^Q2MM5FEd^{UjlhfX9f8#bN| z>(|2Y^oMc{Wxd`AfuY*Mf&yOfe2Uc+A@+2nfFh_id?7oF7NqaQ;bG~{F{KHHrfQ?X zF7T6rU8iBE8*V#Nn}3sOZj{X9Sqs86b5ZZGKK&9C@xOfA_7H8o(ts^S)D?P7SlymT zX-ttB*qL#9L=r$V=jQm@ckMo-afsD%pBh+!cxb*SxU2Qcp@`@wItbJE(cO+(|1WU+ zurx3P5Xb@=26!H;CI)OcGHWN%*uwvu7BA|ks81pXZ)F+{sg4G;p> zUWqB;V|E|;k2Pe!<#*0Ek%5Uqq~}hBKpiri;hyrang?vb?3VZs_5D{%=h>z zYiu@<%(7vHTOYW^Xg%$HTTldhV^)^3`lL#h5R$Di_F+WTF|(&tX>>C!rTJoj2QoW( zz~xAx{`lBV zaCux`Ni!503Y~+jTZ5ycFV24&3=+0VCiyC4IbLLqQ;f!q4Px^{-H7{-i6rb_=uy~N zI8+zXVC|{LtLTQK=Ik+{_Vc%o8Mo(k>{4!J7aPRJN~<1@;a0Fy_c*UYWI6KC=`{`0 zlXQ8cz?{E$s7Xr_378cM@khkhU%w7jhfS>INwGZ>rYhlZ+%^cZtSEvhzhwE#H*6X(|az%?0 z9__|lMr2Go)Yu5ge`(C@LiN|EkQp%r#e^GPMV&o6jm}c`9j0t|mJYTBPEQvX6}n+b zU_c5Z@(C#YS8a$#Tby=~3fhhCDlhV|t<{zmhA@K@0JV!_79599WB6}-D;P0?ZZo*}GV_}8D{D-Yh@Hp6e9Er- zdW05zAfmy9?o>LoISs?y-&)|1ux}8mv{CePZwg@msyqw0+z3 zSutNAVplgt1#W*N2G0!pbbbOBs%QV|wDU-Xw z4$QI=yY0?=yPd9u1k{prjzYS~KO`*H>hzM#p>Vc#PZUnBUQz}QhQ3%nMQS)x8=H1% zccvy{K{m>!+k8=VmYUmSy4Yo@_-98`#y?uJ2gs>0;oO14U=3d`jOnz5j63barGRh& z@xrWWCXr&-f}$PAxzcj&M5qgQutog5`1X(#p(^B~W-8d&n*=$|5dU8e30Y6o$gPHn z-I7>Mg>$0zUoVm-C{#}vR1OG?Q5}J7+fAu3rkWVNQM17AxAOea=#V7y0nf7JjGe#& zm9xlu1AmU_!<37o`_W8fMvA0^7dBox8T-mw?UPx10W&bO&1D?Aje=b>@6SD6WMrSG zKmPP9G*h=SxqLnagub6%8Nn_lio%qJzA>hj_nR#ofJVf?US0_y&yuqm3X&yU?Im+- zBg7+)NtB}Ujz+6Dq`8r*!5_20hG-P`d4aY=219cuoC&32Wm23Hhfr`0dQWJ4Y^+8^ z*q_)^-jR*k5x;HTuCFdV{FIy#cq3`?@DUR0A3E(TGxt^w$h4M4yXLLGWJGh|l9R#I zEux`t`PlvN@rTcAnq?1I2j)N}PpADu4#%F|=F1gDLrOkfNv41VuemW9G*Mj=Z596K zM@tA<3*8AFl&LVb-?VXY5=kE333SXsE4Zhk!-P!t3>e)vdn_nVmrp61Vo&Zb@0ENH z%Wm1h=!H_6R#lT2LVDyS@>Icw>nCw*%HufKuSliioKS`JTVIut|hJ9u^eB);*{$SL&68p%B=+xlycqu`1I4+a<7SFEuWhD?TiWfoEn-guisp zDqF;Ly}ViPM_3tEm=g1YHo*nsI$PZ|-DUe(NLil`?m>qb0w-oAg#MT396p0xQ;s_x`z2waR8xbCaJ_~a zhtDPJ-;J-rQ4Yw4^P_VoGr4X|MnttHd@9+3(UQC!zkmOx92PKQm84dJO;uXlg8WnF z*%oe#LFx7B*``mN9~Z8tB-g-H^0P~hT}5O={mOfu>C-md`-@cU-S%8oWW+NeA)$+S zi$n|W4>}y~7}VfhH_9@62G50S|MgYuVD%pg;{k#2Nr)jFJ7ujHPmQOx;C20P)$_Yl z{uCfda96_$f&6YT!Y!N#fL+GtNR4A$Ym*+}bSU!CRviguzO0m?SKU>^Cx^a^S*x$bZi|4Od z-1$MgQP9anC5HtTG*xhVGfqHZmY0N3>JwAR);h7Gm5Ne9)*3ECF?Nx4PFQ(9iswnP z-DQxtFOBB?HjQ4FWfIFh43S_tXqb6s9?@a47AZF#x$5!_*gEA2!ueLV9CNN-lbP{h z*QgJS6j*sZc1k}SBxyg|0sZ4NSDiQpGi02aHo4ZJt2Re?{WQ0m33U}F-cQQWE}axn zRO@`&PMaZwg(97xjXZ=-T5c&;s+Np0Gs7-EpAW!;CpzJ=*XJdl)UfJ5A;^jlSdDmf z?a(vi?3iQb+w8cn9qS|QsgVmwBqbs8(Etmo zyckftF4zUnwo>l?aLMslgh$es2nT3l#F-#oB72^sUyd03$`WROvumMkxo*#GoyomY zZX%%wOeGddg`8_rKVxa=lN1Gu{XopJ+jq-|BJTVp14SL87M8kC6!Iug#)MD?Vks~f zrz;vv$+bYsqZ<}asO7X6h6zNE@h<6lqUq$#M?AO}n>r3w2}y-( zS*U28HTO=;D|2*}B!MN*qXiAZKoQ{;xEe;abE*z&;ymv*p7#~dn;u7Ovg{(H2tuKZ zQZiut2DgtRqu7ZPlcI{d_1C)UiR`&KYLP2f%YHnb$^=Z| z7lL|>tIKf*F9LV3HSTstSX zRNsoH34Vb$h=8}$67u<~K=2bFpf-u!o%ns6IQ#j@Gl{(bI^D86zOQt$3j!AzV{Tn| z@oQVV6rt{EyWc(1AV#MI^$^r$O>I>nB~wiDRb5>>8CR+LILo6+9YP(7k_srd%tK$m zzf5s0pns`i_65^Ey}41`l2AcXq(RT7aQfj%D}RuQ)aDm{-aryG$C6(e`rX}0h%-Wl4Y9gO^(|s<;b4IjKSun%yGMt9J_l*&_PL;A1{j^d z5n{22Rih0_dWE5>c&ElhGxC>FNHzK7da_^vRZX)&iadznv$IT=lI+rq=xmi06ZFFb z#owZyn+`II)Va3B$M_w#+ABF3^I_$Gz?N+mth~HE=j)`93B4xl!RZ=c(H*d$QclMM zMmr6IN~V_LU?jD39}~n*w@2Fp15bEns25RyLFtwBbn@R zO0sB$r5a(2S8^mMgX8y-h4KVp*ozE_njdjG3(pvp?w}o;Wu`Q9Ns%l@?D>XvJ)%_# zOtcTXA({;P!`->FPfG~>yxCXwt?%k3vx4;mk}#~W#O64{n5av4xfbee4v*G^8AU~s zR%D7zp*F3T+bq6S@@71|6`yw9Y%idJ%`wiBnbKCV#ROt7h*xw+F*&YJr6k`vdU)=; ziBp%NkwRWmZjXcJPRomk+-?8VYTaJI4CY0@nx zEb+SE`_vcQGwbVUk$+*aEyCiP>lHDO>~z&EZPql+LF*txex`_{N| zT&)03Um)?Y?>35<5_^nCTvg5n4`ezlGwH*6U4V1-v{dG+vVtJ}h16|lsXTaAdR)EZ z1`4ZX5}4DrOG0Hl9wqrJC!eX@}UW0ivb?C3v^}`G&)k%M0?`wS{=@%P2BcA z-gS_s0DIon*Vb>z&Fi5?$dg?tk!5klkhr^~fb1RD`i-A~MX~Qry~o}<8zjKuY0I+j z`bqaZ4|0(d?2HOw5&x=GpMj{4+Q5$q7GyaI%F`S4%pD8K@4MLz^C!@UwGUBe)5`V3 ztqG>1@^YA6mz;>5b9SDyDgiM!6gjP!#>n4K^4MGqMbmssZ7-bTC9~)G-@2vywuBu% z&3&+gE3ML$b6lpO8VTJQ)Z+1ofm!aeO7xm%@ZtC)K%Z2zg&QF!PqqRfVNHmbF@TU@_1T z=Rubx?>4ivsptJb&;3e%S6c&WwEIV3ccq^hEflyn=Qgom;hMqiGk{LhF+=-A7XgUe4m3R4We_IHnXFe!pb~Z(`J5SoEYn zM_t@+*{0rNnn~K;u{$hBz4cfmF6j>boP11PeeO==+Q^f>S!XHnKTg_KKlj|7@O#Dj z9TR%x+SObk`q0f1uCl569lvImq4`zQ)y}*{Ua(k=RafQySos|7xNEq$?y0xU!*_pt zpnFIBe9>Fbd#~^l1)~3=^>K6d4+a8X8h?=G@2Bp(O?}4vzgPf2dB2-fKS}61AvJ{x z$FC_OODXY`iKwYiR`YBHk_T7`itzUo$q)eU0*Us$epbC zERLc-i*aE;+wkY0+OGFcuA)*?Kj{B@Q4}76bC#MEY+Bvj;piyBidvxStAJF{Y{}U5 zKiUrQ@$zq9kUW~QTr(K^O(XomP*NNCNQ=T}^S*o{fLd6YxAlDw?Z&`m`Rb2qOW^sV z*cwg}mf6?_U#ob%)GQ8+}+s%1x|}^qk&v>;TCagGS_p0KShR zjm@C;v?t~%k&;(&+}dDYky?AmnWi%6UFW&V(x8ct%poV17g)I%wP21qmQDP#=tE|i z9AuF9&W|T(a0!j*^)w&on+e!I)+!O!SOJy=FAh1QUgR5tgOB~sdDB^^@?-9`m_}-O zG8HDsT1MMrc*+s1Gm+%R!)Rw)8*a{=c#|XvPbO`IeO|CsbyXN|K=i_LWHR$*A}xl3 z6!N}8p-u&$wjRIiVo+A*#!NuVgW#V{GlE1py2%e$e9xsLO&5HgI&y;WS$D?31Ocqo zj{cwCDv12Gf`P^#@g4{=3Gsmf6`Z;=e~eEJit+W~g`U50A=&#VVg+LjfX%E99_#^r zpMe4JXRNdP3iU}y4GbK_L@n*1SVH~>PCOP%Bh(-ffFy<2=kxthM8vsEw+#&oD#Bux z%UDXJ4dYu-XM2yjG#(OffX|!_Qnu5JK;*Nv^r0RmIij`4LNM3^KB`?%+%DepF=eXM zMFv$X`HMCA>Ca7tp(wle*6?IRmLrMYEQ^f64O;_acIOAR84v02YIn3zl(nt&$&Pe~ zMtK=<*X#A~{Vm;!s<$wfB5ot3@sloGG}{YAPV0{VVI;u+^KyJ|^|HYKuKe=RaZNca z0vNR_NgONVCA`j;Tuv_%#^`Arlk`z-85h5@n`*0{fh4}P>Sk(X2)?dg;h1r$sTM!f znZTyBK0L3@@k(;Y4P_7k^8>AH@C63G`3FfW@yZH}gsN>(V(WFlcJ{59FpjG+_S>5l zO_NgCaQuoBmB=utM;1BtJ}rb`QgJ;&j9mRZ@05K!dNbMSnxt6B0pl!rVgL|SHopP* zB;51{Sr|qI39igR=Biv>J@|6Z2tW1+fdo&Ec5UMRd)H=P=>@!_;?e#^&^~Y#`Me;@ zzxuC=NorMdd%gW(;bJB}9wd(a4g7crhS*aq#{l()+oM|th?h1&|92zA4L3bT3d%Re z=njwXtV;^gbQ6{QBV6nsGaF*s(~Z+CON&3m<5t(S@|AFgs9XF`I8FxPvegUFJ+axyb zRH`fj4gWhs)~J?Rst`Sd?&M!LQ8}gZdV zH|QOwe>~WIrug1w?#$-CujS7D6GOS5P0~8M9RMfHNU09phWr(*A9j>==FLaLQX-{! zWOwXy(LP5$Hz3=2QVX;6OT#d{Qe1=0D2krXUZuJ67@SNb)I`&jq3jz&p5v})KZo6f zsNSRjR;lB1)x4Ep;ncT<=6lC>Nk&L1woIJB1sLNj$`m<1=i9GICC&0j1ak|V!?p!P z05(j_mfN2DK6Cec6aSI>`9yfe|M|YN;0EkJZY4bJx-~qHiCHXDD;4xF^0|C2odsbR z;ZJ^rgplu?!x96W3RB6$1LpnI^*CtVexJJ0JlSW+eP6!$Gz*gSJW))x0al!`tW}?2E&XU-g>(1xB%OVX?_W-g$&(i~@ zNR0N#fU|;Ifw`tF#`gf*$Ac32&dlr?G@~K_^?@ZIt^THP?>4Z1P;m0fAMgd0(*K=G z(xlW>+2axl*$U;VB(HqtAeR}3h_rDzcmSU#tq2}K?~OGQKe3_2=`85mjQ+u6s1yKi zP>HiDAXQvxdLlMxN2SB9N=&D5pMXi8?4nX!2F{2#O!;z{~Y3g4HS4oYZVnfZ7 z4Oyr0cx>xZ@`OVcrfce4X5W4{;zm1G1rrc%(KoN9JXm@QbWXVXG1VNkxy1}GNYwnk z28b9Hqjcj(ChmnMI%mJnWUxS2eYP``WGX?B8gf)OeD1#H_Z}o#6nbc4sdHj_dU_gS zYAPdJ*c-^8peOm6MhHlaHNIG@pyi<=3N>8GQE!CXjX%+3{*^^Ifx=zDz{9C@7mVs9(?cuW8@m{RNS@j2JI zx+WE^iE%*ZQE|Ax;TJOd1m3$E3P5t4B%}RMARjoBGEb#VO5qQCE=|q=h*Py@@JlcZ zPO}!ZA0icQw^I8=#~6iGh1}dajj2fe8rZ_mjuFR!Cg2C=lIGTTHHWCGd44Jq>-wQf z7|HAWP4KGH=4kdlnaZc)ajYQ^`HSxj?b2_(OrG^sU^*I$jY`9+rM|V{))(cMy!zx4 zh)YzVtpmOOrOUuf&xvBsQqZE(aOjhxvcu&<)%_9;`Zi^~Ug`6TiCm3QEBDUK9)1yr zt)aUD^w#=FA6`kmWWi7QsJG2a5D_3;deuU$pqrcrGTzW{STvTC=i?~5Jzm8KstaE` zcx02k?_b!uJntj^`Ce|nD<|NVc4~29gFLG{s8oSj&&poLWL$p{$DL;RW709H{_NDb z$xF;KR0JAmiIhGhE`!g;LmB3{={VQ0wl%kKGFi%au|gA!h4xi**(H@fTImTBz)2f+ zJM)|bXj$Gael=B7l*2DT#<3;!m+iXypTc(K>}%u!zy;P|(Kyr;z+acpuY8`?0 z(xZFrgCJVVK5}#Cs^kbrzsV;=kYmtrW+bMu6b)NIBM>H3!2$Zd%!Q8itnLW_E zUYIivtK!vyVJ?sBdy|%aup~al92n+86%bJ+eRmc|m9lv>ak^;cw^(G>dqxxRvFr8xGSNJJ4@CsP&KaX@Il7otP%U)mg)({aU6xWn zKqO?GGoCnXx7oI$Nq2wqzFBj2H0zf+h<-vfcuyR}LV7J(GNvv*>pWL3&*(6ce<|YY zb|wCL5QCU!PGR9$Zp`daA+#el$m}XIa;~(jOymyRirdVYRD%N5+%BF!QjQRP;Xk{m zq2p#8kI(J6@lFBtWS$TTMkw^tu&1-Lvv3k?oARHuhbQU$h zGs&5k`TRaafXF9O06MPt-HBVyeXXFs`vfAv#G(=gvd^c*zrtbqXdnrNqLwrFN?l&E z%L4h)x7-!2{kZu^B+PH0Biosw+G?tg1wCx)4X-}aWd-LdJHq#(ija_KT|b%T$Z(=b z+PYVD1_5&N&djvKkDG+ev{%PyhVz9I^QhD4I!Hk@NQfdDPf$U)@}K9gPSd|1b+5er zCYgpayaL4=iYFR!m>C@(za|O>8UmGy@&YPN! ziCgKk+3GwX*%VtNGs;xV%MT6?C^6swc_>PZNSH#HE4h)y<~yNhB(Ht9s{$3)-dNX) zU{t}MkZ_p&E=-X`9 zxM#ZyQ&3PNv&RTL_&|1fK3XD6*XQE_;Rs>(>y~gp@#Po=b?4-bn394QK?Q13 zK=$v2B^MM#$7e}(_Un29o2a7kFG6Q5jq8~d)sOULfv!Y7*W=!WOwO42!7ndlQ`@#J zLqA0y;Po(Q^)tx+=+IOl5%o;X$ik0k*4Z{)^r?pTswI*!Q5R#!^%um>6JI1oh8%F7 z-g|1aJ5%L&|CO}ftOb>#`hGKrs?lzZy?zyA@u!WRWCmY~V&cd#=B#)Z6vXdc-S1nD zk!H$X&->KQ*Zhn$=BIo_ADC;eYp-}Bj%6d=T6`CiO0&Jusgrba&4#4}$=+~OirL@J zMYj_iVI+a$i`=E%*M%xBJu_qRv$8|Tk#`_!C zO0V(Icl)5pcygvB=F-7F{hziaED%NdkhzRsO&s-wBQy!l5O>~f|EaEDtmwtwHru7H zHH?f?lB#LCLZ=79ZU|e!{kdt_wr2bL1$T+(iU0FZzH);Fzg~RbZBTYbDBoNb&hg?x zCUfpE01_^*Y53ObLBH?KLm~m~bBBUI+-mz(S93v}|ADFV;=BSBAV3-1E@5^mJpZ0CjP#?-uu_%i|WO*9JS~NZ+>4>z@c|`o6_GG~1VB4rEbeU61D@ zjV8-v>pZmv6RyI;gEmwOxvy=V-lqeE!)(_cvDPnwSo@@e@00@HKtSHc02}7vYA5y@ zz_?+F5STxlkpbdP*kGbwalQwpEQeui_x*5+KNQz~pGZPAIwRR=IkfG0X5)%f{A330WMZ6`!Be*y$@F##h2j+SX;I$=F9O* zvy*qMp6{S}@DF)w*2hmEmP(c*5G2iBh8`9NR>$xjHYJkOx^CZXo^}BvOJ`+B6jL{h zW#&7oX2!lS;Rj=LmIG9d`(Med79So!;rF|-MMO!CFHXyrFOMAW{bGKm&ExIN9^l4+ z0(m>G(2G{BPy@C911#-=S#=&PId6N24j&#Td#g7G|3rfwesi7dUfOJcjP&t)KMgz` zJoXSuChQXO|BcVDyz2Ql(gOq0U2T8{^h;3-DEp66^Kq23 zTB{>Za{WN9)M|!zeE$T3{EVH~-POx|TP&H}cK>`efv>*U54fEfNjJ;+vf|>f|K#9( zk)myXxyoc-b))zBm*E>J_T8)dxj4U2$5KDnNtP_9w~0N84W0QcX0)@O*s(q|xY^)h zl4hY)x~^dEaC@~KPF=AQvaa=(<$jn@f#;Sjbd_2>3@t&HL}W*KR0w6ks-8#?vY5mj z_k=>t%A7eXBMS@o$}MmWtn znmB*8(tCChNDYzflf{dLje;tE$rHmf)!4K{3Nd$EhZ#URa>Rc3C3KSGf*f~XG@Hf) zgoHIwQRnTW_OTSPfMJCrVb>H942OvWh%2vEES1ld7XHfN^m6|lhZ?Q~OTUOjefe+j zp5JrpKCZ7EQ+Ck~yndd>+8bKJuITykHrsAd`;8QcM%LPHaeLoe=?yH?Y41`7zq(!a zR`_16#F2f;@qMvqTeI!DSL-|m<{?_|7w!i=;}>emCrhV6eKBJ%!ae7N3;O*5U_X*2SRk0~C@F(H1KDZ)GKKyZ zcC7}K@ZMCq^!20SAqp z^TP?J0yHV&8!`P!mO)reyNLGJ2@|jGSlBQ2AqHXL;a^yB;Q?VksjeRmzLGX4a^oob ztfF~QzjHuU(@=~WyB9(52&Oc{Xvs;s-fiqgz!5Kd{R5#DE0%US5ePh=48DIn9sD)Z zs!FN!+dlmM)NQ9EXi319DO;)6Lm)-v{hFc;(Ya{N&h(nJ2CUA}V&K`f(Cs!k_ZnUF zd6mgD>KXOFc0$SL(LnB?!RPjOo+nxUv)E|^CkW<^8GuUS0t?I2U-fRoE`Gh!(i|)1 z?0+(yfEI60s#(uTFeam$V>MMD4t$#p=TQR~&i#?7fwtfba-dC!P^R&T;L z>De=vZ-FNAfzX7WFrOpZ+a!mm&@rWiEcE`)si&2kV2+Y>VbvCv9rb=To>f(+gR3cV zIm%@!LY!DwbfQcjj59U-Sb2mYKnrQLiML7nbueVOt@SBddb^ zsarz>4-+!y=oF$y$&vP}#ce+irx*mAW=}AYok?qWPPPUo~)$ z#wh1>_Hd-W$pJeS1*Z%}pIKXacJ&6FYmzj}F(P@t`7kQ z!lOii1cFM()-*VYzt=x4)ql7E-p(Doe5u?*Ld{1;MrOAkj=pysodzZdO^T3sL9FC= zQ_uT`MwcfW3M_^fAUK>*EPa%)%Qn`NDrMfX;eHAz-FE;r0J`z&Jr8W|i+ee|Rv50= z+tISP90h7s@Ph3OZBK^Y7aKdncAv|3b6lXXzCxe%sC}x5vx>K$0u}iTMu+raldTHoMvgJ5W@;Pd+`=Z@?pg# zSNVsNTL{%RL$M7RaU3Z`Czw!1*tJ{SPjMZgmARbXGqK{z>ezogKmD!(Xd$LLs=Kvx zg<3Z7`}=Q?t74-iPm&PvW?r6i7s&cD*sScgFuQ-U$~xTh)b#(`Sb45n!FQg9If`sg zoYh&c>c3(Wr!_8%`KCf}TP{(Ti$EWGkVUGPVkB`8#|V@xFj2Lnft&x^dI9QDx~IdY z6~nc9lh)n0+hPnSiIE&>bOQW`7oT=E)&$mHW1)2I@o=t=Ye*1$AmU0q)mEH5T<>=a z4%c0e`~7eXgX>LJH^mHo*j6jm=nyG)JW#~pz5&CP#M7Jg=sT@9VwDg9Q0AKEc58@%OG0D$w8fiz^FF^PkVGsm-@4J3zkB`{Onj8l>|PP>9C~`OlE* zy7oc*R}n}rPffd&t?Uu!)6H}?09DH>E&4h=-1SEg{x#idqXR0R$5oTW0@`)QG0s0w z`)~7(`$e_wa=-L%Xmr0c)fil5uz4iPTIu+%nY7+NY&bmfK8|Xw(w#Oc%L})x3}m}) z1y3+^Sc{ksaP}K7t3))YyfDV&6&DKJYOz|KLAjPvu?(^ZwV?=fHP|<$g zyzbO^EZ!X=`h|rOdO)C}qOP`^z+up8{CvJW&Yux_(<+oEfr&A(VJSZzZwf0Nn-#m` zozeKZMiP_sD+-5geY)W7M0^RL9_x`Ab}v-wYwpRY^094*ZPm8cCf(Qx9}%50MK!=G zP@u%Rfu2B&R+V_tcRY3gz{i{Wi5wocGfc747qe`SUuBwO_BQ~;ZhiOK89=x5Oq9&G zICvaD5|1SqI^cf-#hD@pc2@vxcDtLCEdrLqNF*fPcdNr;4oGd?+oy1U{K>4uc)a4b z{Z`=sq|GCfaN{aA?reIz5y3X4X`Tz#`ox|{ML!0Ih9--E8>M+ol0l0#@(tT!?**52 z{D~;WL|#oYy~fmzUvee4^((zijWokyqgB<|Y#bz9Y!GA(6yz9H$tI&VNu=OGSj_|@ zOfh)85flV|c+sY)zz-mw=6%!wU?*jSLbZzh{@|BO&tpw@BO{}FKyRqt8L}-85k`9Z z!bKJ>zcCq^n{SLCHx*U=>)(*d7z?BIRg3NKG6GB==Tb4^c9ld-f3L-L!Z zzh?Ilr3(BSsHT0$`Z9@AHhyx>)b`V}JC$ZsYiFR2vgJE_l?sg^jQO@aG2uyk;+1^I znj<`)Qij3$pHZ#LlRiuo{sXNpcCtS75aM5^ri`Jqow~m>Tz_wd0{|zy<12@T=EwJ` z`TR*@RA^N?Ha9~LL{5a=*FL0&>*MzAF?^i{TH$j}i8Z+~r+k&^vE4i*1Srb* zXK+1pf-A3`N5!vTPt{hX2UDiXwl%snsT&hYEex>2WEK&QZ6wy%N1T*sx-ViUr;jXK zr;UuSC-aNTXRbvbG6{_0>lV>bW5kPTySTivER?~RTc-~iWfIhc1WOgJ5pRjM&T?+h zfuQYO1Zc(gLx#vhhKd2Og|~nXF#8 zggB{_GePniE=L11o{gkSG`kxf#mf6FFCyO>WCLX&XOoiM&rGj^A@NY={JQvqxSL(+ zP3tVKHIB?JajtZ$n?MkM1wOrx3}D{r(^g9Qj?sS$c>}Q)*WS>QY_pd{jpJ!ThBV|+ zh;iNKa*7LwH{ueR$u4bm$eNkO{vw6%*7lq%luK^ZS+l@8^?WMKERT`Cug=kqa`Wlg zMGxxWX$r*>4FxQybxw4BB@r4$Guk_#`G#}w{iUI*tciD7@?PN!nG17CN@M)OA{I{6uNBFJu!V~m zrv?XxqoV3yG3m{BzcwqaT7Cc8x78+5aLR;2TfC9OtW455ofT57$H-@VDX#gv#`|ZR z==M!q0o)9_*fxCVbeKjgoBrO%Z!nZALqF+}y63RH`re6mZcX?-zN4OSi=Bh73^mN~ zMT$mZq^nfv1WU{MC#?$U$6DoNYl}J1@7$%_M?Gb*@MW7+o_?d6xDR?66fTH9-ZL*s z7u&o@pXU4`qSUZZeuU2jB8f*D;dsLbPvnxYi5nRZ8it(cQa8Q&vmbe5U8*erKp>4; zbd#(&oPv3X4=)igb>!~8J0rmUReM$0z{tfV3Cf7t=QqZlh9H&6Mbamsp#jl7_k4`Q z4S}WsCulIrn-p&~X=~KOc+_5+G=YUnC|srza)Rwl3N1GL+pXhAkiip4D*iFGF~-gD z(WW&@ko>+DR@9;;yI(aI{Sfy5iv?gyKQ@grtb;%@No!~VzEskntIYuR$r%o}Xl-xn!*1OF%0E z11k0>W+ACJpvh9H&zRSCMHL2&V7^7A}A{|>k ztnV9*=t61usue2=HA{7NpL~~FEr=Aqei=hq&+wg0XGgMGE$gq%7h@3;Hf);U{TyZ9 zv_Vg|7$K@c2}#tN=45BKo!)E{o|2%i0JhpTQQ9|lr;k7(L87!JDM$cL3Z?)0qL?(A zYgPvzvR2QY4U%x0a>u)~@88pzIhEqZr)f2(Ne(N)Ka(-ZgYb8feL|s3h0)6p%mj?0 zPMAu6dXnfXvUvO+y29gT$PxFVAK=$XaHvCtzgC`^NKemlkx*!6Ho`EXnsbWa$tDi3 zNXoF!8fR&xi!gHk=4b-}lB*;*b1Sm&!wfrtQ;-u&A5d5ZY>?CYS1zg`TZ!eX`Z>c| zC9xBVRYnt$3f2G^kFHOWE;qO?3JkUamy<&dzKwegX#G)Re?*>mqFoTp1lSn&(N+JW zpYU+bFv`=MA5v{mzy^#>$CKgZl@qE|79>?1z!_2NcCCB4(J})jr$3sieHb^&pFPGN z*aw0yHMGkqJle|0npt5NeWg*ZZ8prq3j>g3n-{ovR!7#|I80_{iIgcJSL_BT!3^+$ z%?KZQus%}s!HVK0L%^*GjVZ?Hqk8X9Y~8D1MI7^D|L&?^^z+rUVhTdSJU~Td=)!=T zpCm%lu1qRUW5aJ=OH54T_v5onjzIDz$#4u(4Dzjko^hFzKrt#R^|vh6&-f*2nc>!G zmVU{S_Youw+k&vh!80y+p7u*eCeHL@jWcG*FJ{D4Gb3Mv_Uo8h?9xRVuN6Cqr&`WM z!Nqe(Puv7OvRdYvoJEAk?Fnww{UodF)pj(1yd@+4D*M${jLX|^JW1M8Kg@KEmK~M6 z)g#`-4Gf2MMA{UXzxJKQH%*+{EtM>a&f<6Y+B{>Y?zH0CV<{Bn+M z)`vlK#yTw<=vcJIMdnH_JYB7>)b?{f=yX=G<}m;906hQ@U)aWVo8ESz^sbYy*KH zXOTekEf2MjYb}5);($02fwc9!VBxA@;Vh!NV^8F+*yGDg64EI1LR5px0G`s!;Y-ny z<=$X8>S}`<0|Ei}9gR_iU#MQO;apJ_2J^JrkD@_Gus#yrm0&s9W2V!`V(AJCCoBS| zpM{5-If|YfSV5<*+*n9B@>JiZM61|L(=vD4(>UyMEWl8n!+8(E$0;EeWZ$!NYeEHk zVq<;Y4xR!lYChb4L_&C$*L>cP5)KjmaEgZbo0Q?1EH$JMo+;~5{dNhjPs`AP^72kQ zF>Bsre>sZWniD!UCW#g)TBx{-RmKoHY7kROab#RD>3C@Xxgpdyn(0L*m!EWWDwSX! z9FX4ow3xpF;<-g{A}1!GLS-^YEV>$_j63oZp>bNFO0CZH9_OD$1=zkw)}5-PTo~-U zbpq()?OPfj8X%CGAyM@(D^j;qscZ-|_JfX8g!skt2FLAc+8A<$LSbLykmtmk6>)B+ z>puyOa9*i~(WFU((}drAo)>f$Fq))L0(*|{6z0V&)gmNJf5j84`$ZQ@bT(@CEvv$^ zM3d|6;0g^t=Y&Qfuy8miF~9D~Dm965Yi1b!J|vS%XTz0D0V9J(A7Ywk^>>vKj#OTa zvsFrePYB7neof^n{QL-Gzsl*^D*)Cou&G@ZaZ&)Rjs^MZ07+))#8qz3~E_ZTFuoFfXclXEt z4^8JBR@wWt@od*rC)>6;*_dqGwr$(^Hrbps+1A8K)8xs1cfad;|E$ib&fd>n&sz8W zS?duGVU96c6riL_mzB2O978s)-#QtaVoC;i#wk{Ymdj-r`S}r~rlxASZ&XG7oLgdD zDuP_@uen5V(T|o98fCz;p!j+cQ{t1rKO)e)R7PnT`l41lO)fQx9LvVJ2;3`*_HXl!JC%6`zlF(44~gW}$H!~B%>nqADTaeeCOXPE6~c2jn|(4c5C zCrg^Si<|-UMw|y1$-A_>j@snEg#98tx>AGc;;j=SApZsqlwY<^IW^9HaE&k2DyJmZMcg)n+!NjlJ0{apuMD>Xv2A!D73@z=4O{ zY?LEP<&3oBzK0!ap`MmCJxPnTN(EY1yxwP@7 zKr+nERrZX`CmyV-S;C7oG=sLCn-L^Pwg}zJyJvXBr=WV}|Dd3s>hv^$!4rSMMfm9!kg4&f4 zC{D36gs?=>QSe3+2!VokJG$z`8qlyKF9X_HW-mJSQ3P(zn%8=~*|{7y%$9l#UDb0RaCn)zqGd%0=*@ zzG1ripD_#(Edj&KOTUPuX9jK9Li^(r!_)#mK4+-3m`HjA+ww$=AG8=s{D@ zfIR(D+0EFeIRtcYPS;%93qz4Az0cr&^TZ_C*KIueCNr_mi8b`n(7(&(4RP3&ZbWO-jkZ9xrG)LRakuN!*YmXS?I-N!E-m%T4nr}aKx1ZID>_rBTJ z2%U3`Q{gb`MX71l0zgohpYtR?-!iw=PLTeppK%P#}nTI@48?!qF7a z@?}ihTbyLNzRlo=5Yj_)E0prvN1HnFjpaKLEwg0iySE!H&k}%kAPx9-B&O#=qcej&b}0Gu0q2c10-@V?LR&S5;Xc z2B_oT)9I5fn2(-A57WTZzkgebV)JWS9Rw?T=sgxR!JYsO0v~pz&LIC%vx^4IX!zgZ zTv?ZHo%$|axJ_$_L49H9fYdG`wV=bN8iyRWT5r2@MtvGd$5HUG2&f{8!{f{Bjb5A=doO7kz zVYXR@QunH-cG-jrb#9*Ypez}R&3}O7ZVIm?Zg(M85AL(f&l}Zj{OtjH@I9b2R4Jf0_tbzVO1G6 zx{UVwPzZHgWcbK`LZ<1<42$Aod44DI3QDEF&U0o2=DqDH3g2cYSW8Ne3tUmKnGG0J zr+tRpoYli49_+6anX>z^@ExMV7*oWDye6fnfP?FI%orn3NXg+FR~QV|uq@(@x%{a-rx}c7YEu`Q zI7B#_;e{SH0VR}5kfw7^d5`GQVMA{k&AA+HGi%T-w60<|&2(5=t@n@}&6>Q_#S#@C zEpSkxG(*<9(i2gS3-6#`gXN36RrM+{&dba`pwF>0evuRZ+sK6y{9{RQRlHTN7&$lU z8phK+duqR5R3`V>M2MLZ$z7=_2PklWlIFURm4M#|3$K5nT&}ovq}t$)Zu4LMWzoD9 z7?{viWgy*7vresQbZBZXcEIYeiSwA{tTTb0&q;a5{tUnKM*`teL$?JS@+ckx@I$YA z1-uWF-!dG#6s`UbdV@^3TVdFoSWovyp(A}l@6k$Q!XE?O+vY9k7hQ7CIDwBBp1G`~ zr2JC;zn&nj{Y#OJV~5MEZQRJ$_Ve+6C+zoozv%9K?=*ei&*#7XN&Jr1s)LNbQa@S~ z4KELrum*k1D$648CUHt}rY0t0e8D6|ViVR{7B9so7WU<2>cBV=}4vNStV8m zdE_G~T&ZI{BIdj`Y86or5%in_oLqt*hmvM_*; zsbd!+_=qpTRG@W@BdFz+(q9fEx#Y+Q1O>iv&h;D$uJ`@U4pJ;&rfzxc^x@?*De@4y zLHe{ST&luqb=ysVJ&!FW54Vs-L93*t0!u_2#z$R|Hl`G~3k9Mtq9QcY#zNr4e*|!C zQp`Qdxce6ocOK?XJ?2jzfCqlqb+bn)lZvy^tq;T%aP~*#b@zI-(Q`*AO^(uTz3aC&BU z|EQd8{J=NB8f6n|vYf6_GpPEuhn6iosfqfb5L8#I6|EXS0n$u9j#(!0z00*_4ga(1* z1k^QDPiG}6kXc$-e2T?@aID>Ixu2$XRHRxbos>`l$C{3)YWj}FODV-m?ayepl7x<# zDxX<>e9+Kq-LCSvmMV72eMk5JL3OLrNB3lb})X)|#qC|$SO?Zh$Y-y@eo z8)c=!W*W*)w1V3lBa;al`4NPTaICK*Jag<6Dv`s9TQNWDA{an7TV!agjK3eXN)HC zr{xy_=6u$SR^!gDG0h=iWM%m!S2%6oEK)eeuluoKetbOz2b01FdOfk$YgXC+P%jwn zv+Ab|kwHU){TKj?&jw9R$(sUBstjW*r-C%&Yg0!FhW4N{mN_2^RvJs4-FVs5Z+I(N zB~tb~bv!0&8Bre~gTQkdA$hFy1Sr3pkMpYz*Stik-putc!&aux?i!|K9GdBZ`TULIZ zqv+I9-Jh+;e#*to>tAa%er|TU?$W@&FH0Gr=o z`;HYF<=#Y9CklS&U1$R#1671j(I_s?jI2FQUe5)qI@)kCQjx|riN00t9SL4Z*nU)jZVp}aKK8%=QpeBtdw8)sNut$LaCJB^`^T3Pq$e>A(=G0RWnIR&dMnxi3MQGfrLFOB$b-&?E4i#3B;H$tbC?)@LLIfOOdJk^amLrh0@ zf08TGoq@otc>S-*@>PM=INBFTT3tZ-uSg)~9*Ii}=E_khh2R%tC#MSBQj{74PmpLa z!qQfTbDB6)qj14Ofab_SR!@Z*HW3{n({@_Ed(eWJSDGhUtK#y{j~OXM>jQRP!pH2IG9mtyAr(htt)F*A&8dDw%yVpI~&L?#4FX#7^rMqxt)p=$<@XuQN;LaO!F2kRvdIV znQ40WcezCE(p#vB=B*QosB7zD+z{~udQD?aoQ_MNix3D7HwgwqtXYD-ZQl3OR2CK% zQ8F0_?p#RX)-gaxWH4+)0%Cb+wVrXKbF_sll$4}v8?RLbyH}l*7z5QLJvL(6Kea{P zu?PWVWIw$_y;~BIR*h5=oX1{k9f+&P3|eeCnhe>67NA}LDrw+G!oimfHjg{>IocSE zqPNe{aP7WnSwu(Eq;B9ID%M9Tb~ExF^?4rV7N^CUjwb9S@Lvw)ELRVQiR$K`PJQpp zL+33hPUv1PPE3V*W8wHGCR?mPsPfBR&2Kg9hZJ2$!DXqG8mz&oZouV((-{CkT_*51 z_^rE;W7|sn=9ms^*o6f*k-f2p6p3Vk9IV4DRt)KB)J~Zo%7p4=zWU8D8HSgu1Cf+4 zY}|HU)s)OJ_uvnte7TU=qgJgtKHmsr9rtt1~q*A*>V$axQImRH%*UDdCiWI3#h>wDnPu&4B zr5H9cRM`)#LvprdS*r0C1=owBwYwV1EnVlv`xld(uCF04%3wg?Scx2MDcl!8?Dr@I z4%_z2JLB`1J1thSp?)>u+o}U6x3Vv@Ww=`jLQ^E_F8p^XTB^)IqJZJnr4PssQJ3Ao zC`i}<7Tn$bV(|`uE&*!qwnA5wj1;N|VM9;Cl{)QEOV9JclUy$2#gTXb=a?0EVYul2 z2w>3dQfK+wQa!ac`8z=F?-5UsR0xK3OdJ;~L-H$-9W@P2VX%4qNdcn~dg+`UaM#cK zVUN${ux5m&Q}_;4CHk?Jh5p!Xw`M4|~CEPvs=JY#HF}k)&Otke_N*MKotmVdxpn3X~H(*72A5 z(XngNaSoNNyE{*uts6~2TapRa_lLqM77Vpw(a`U@%)+Q2Qf6NJwYeix;Fm41w3Rid zm$Det$JY1Dmy&Wn{RgFs29?Fl8x0sv#fpLqqvLOXy)g#c`5w@4l}(kX*z!dO(4BEC zUY#9dpfyr>KsIY#HO-?#jNh02XG3wW{1j=iLPEY8nDe?$L`50o&9If?5K@<+?BnxN zX&zd0K?+$#Oa_4zCm&-Cq;j?%&gF058JpHd)GPy*zX9Mqtz9nn z2+pPe9Q8O;+ivpn`3{h-gdYb`o#rKQNEI+XuNS~xjZDSOSC#%`gA*4$8^GH^3YI0< zr`$frgB*5ZNje(;yr18f>6p5%#D<2p9{h+MeNT1gZMd$_Fa2O`S8A~JZUA=^;2t2_ zw|%Oif~1K2)oXk`gdYe_nnpX0w|$*w)-8e6^ZTOva^zrBCYfYm1(^poOnMyaH_jJu z0$({{de`N(;2JTW zf9_HaQI1uinAhKEI(p!H%@KY6T`=XzqLU_f?KTxk=24)r`TRegaT26tD)G1bTEW_ft zz_xA8DQbM&k^B0J`jh1Wg<8JX68&!9DTrhGYh2^%<^EWs=`M*CK60M>QTFF`F+Eu* zzY-u8ex6Uf(yjMK2BaYcfHEvFJ?eq`nA)#(>5O}Wz3&?fuh6JAKFwgv5_T*oOWW8e z8W!8rBqQm2zQYV;HU4kiPWG?EM0Y{eJbrw{7^jpmMbT3fU(AMB7q4vbqD`>`3TXgZ zkvc=tjIWC7e|AHHE=BCO;^LiWcRn=flfNb2!atsb%T2w31(>?h6&lOj1?Rctj^oh% z=Fw#3QyKPyLoPX@s^~wq{Lg=)Yn5|2KA1HXK5z4Vg{> zs^Z8SzlYIY2y`cF$jT=JEpXKj$)@W2^YS%eKtpZO(q+5nBZ-VeAmc5aWPFxcdT{+K z!7%T4m#=wc>U8^$(U`cz_~i5zU+?Q6c3%gUHEp?60{@;=Uag@91OcWKfOMI>_jvP| z-`m|rJIz*E#s)Dnp&!J$1?kOlp7f+YkIKYZG>89qx!(g|UVumVA8P8oNF_g$OHJF` zrY?7`U8x_ru0Rx#wJ}9jnB>?~%vL*Z-9CSQx9d$bamW@k9HRVi28%2k3`pts7hAFU zEi06h{7NVggvGn9RNt}^zuUp$U}`NN?YF($sq<)Qw`x$Ud2Kvv@;To4Q2BVc?*xF;}RMyY!F*0 zg{egfO)LwclMfyMT>^eoKj_5Vi6lA|YFZM=5Q#?yAYsjFf#cVMFMa;Fb%#j)whpOP zrQgS^od-~n^*>s+yDmrg+*?qq?v3t~*z!tB(GxKpV_Nh2@b0Tn2_IHuB&|BOWzz@b*!eRKK+JtS?FcJ4Gy7onFaU-mjk#2 zVqvC8FJR4nHZBk;P!W{xUdJ+JMt*(cX;qsDKkkH~FypOpl1!IDvD8{?j(K*eA-VY#-uSyvE9C@i$}6pi-XW}mc0!7 z{$wE|3d*%yf+kpSkXEopy*kUB@E()8f}(uaYAgr^MxaKo5dwdu_NSKr)PF`X%q_W? zhE`>_h~*btOG$rP08mL1YZNH!$iAd$CI1>Jg%t&o)eK_*Db3=yOqiMPZVs7d7lR^~kzEALtJsfdv?m(}$>-@@NEX0GN=p+Qnq4SqhuI&|tmv<}{*G;2w#k0W zqo7HbrC=vSj>iY4wyPpK8r^&RMjnIXSP0 zS3}4)b557s{?zyN0Gq!TJiwo(NvFRW%iS)kgb~=Ifra0~gGZO_fUl5hMyZ}Rb8RaJ zFXx0YrWue_chlMoL5~qYFIwlxrD2In_2o+_Kl;~PcW6rd!Bgiw>l;98J6^-5D;`^l z7F%%TE6+H=3^!!58RGIKVAW;z@CWuVtKKPz&16gtq$uvFv`?pT*_K+9FJhZ-?KIut zBm)_|%`Z(tkf`;R`gXMoSpAlRTxLGTP@zD<@gjF(e${ zj_!Q=LP6{IXO1+l*BX)CoqTFo#V|4Aly5==E{9Cc~`B>~ii?{6>H1S(MH7o|5C4&)l&1ffuzB*D@0+Ip5| zgV$Tr_FSntZ3C zP2&B11(HbC(sury=Y+s)f_r4tVHSZVfiBD8)2KkyI&+{R@bG%`X_d9CtaW?VrxC;~ z8~u0B>0WP*-4%AswGM}m^G;w3&cda^ox8EXi<7{mkMOag^S=AHT51L3xZt3yVgfwG zncRg0{(b^hQpMUL4qrfJ|Ii>KIN|siF-O&{7wT+E(g8TGqWr8@8IFP^rZ_aI-KB~J zAA9S>4X{FQ^>Kg=e%>l;qmTt(pzf}tV$YkBz8y+b^tSd_egem`Bx^5_nDq5mm8*-P zK@AzOQ^mZAqSk5{(3vyP%C~n9*x)C_YIc%Ajx?J_0A3<)^WHQ}ZeHF{V&JQ(h%G~w zF!8j-qFYD$AmAiB?fiIvNC-uo6($DSKqF6m9?y>7LDfq9$Uv{e$g}%tL%^F)nM_P* zEIzdV?}@E#jI{X2BA-SIiKUu(6+;j-HdQo!dD z>tsSX+ev)6=p%L_u%piBl%n;!=sI=Uu&y+IxY+uiw?-`V@HD&s-LnVMI>Xq)2hVfI zm$^db-xHx@pfA(81Of649eaK>M^?!%wNv>pR<>GnnjHckn}hYQ^fwCOnmfATbzfOzR zZHm#LfM^?w!#tw(!@;7B-0X3_0;G%G93L0I-WoVE_V<9U{$9blQkQF2R9g%aBFad4 z2u{0@xM%wBZ&1ZFUbCaK?lO5~$q@yVZlWF5$oS5BU8P-DS%-;EpXKU31Fp54=2I`T zkm+X40t<5zw19$k>8>yDYz{9%-HVBjoz3c~AHPl!G8oV0=J_Xs4l&npwjg&6NcJiW z8M|EwzziW4rrtkfW!5pD4G@|=Ckp=(GMKbO00M0{L)T#-Ten?|HvDq)8SC?9U??5} zk6&uhXpi^_%a-zy<)oKc7^_QgW@X`2Y>P>gNBd zQ2V&K#9NwG?cup59^0a>C{G1vaT?FP74>zw|F(AN>% z#@lo&8TY36V2c+MUB3``w#|+dw{ULC7ddJQia%>v=8?d$&jf;&|_k>8V#a4MS}7H{LvkhX0Bkh5gZNDDKy7Z?EhU|Okk`{o!!>xMmp zK@Tp_@3ivEQA(LcI=kKNL=}T9nkJpPu6 z-)8dL)3$gQk3r`9(p7n>tNMTYs*)13-#QWag5{0ne-y@uR4C}K=#=*RxfI;#3i!_6 zC^MuhGi93p-NoSKq11MM4_I~qZ38Vl1ZS#MX8p)+v2lrsrYkkt|E-?VB%!pQSanGz z&6|J&i`JA+k@}o9YD<5bfpak~2&qo%uTA6Hv?{U!3Bq9xKJ^tO&1`sx_{kSA8e=T;lymd5c5nhA|SB2G73Fcz7 zVdDgFBMD5mA_bF0y(guNbvmi`hFn@`ssFKI}|v=HPmpK zlSa(^2Swi>KRLM5V~RyyLZMx z(8_&@|2l&dT{nR|K@;Pm7b2q_uVK^}1$64fB8FBzDjy{f`M@0{pQtlflGzB+@U6wr zdhwMfC!ovLXjFGjF}!grc7E9#_aFT#zjKpp0iQyFBY_3k!xM4*C6Z;ahSYN9Ozc!$ z(#8%7U1Fq$IYG@T(&5fCKH1Z2U3Gm1Lz9voDz-;M>k??RKj+^) zK|$y@+z8$q6`o_>RY3wIGruav7k2*1CG6fos%&`b!fi;)00J#Yp{WToM|kt{ykRz> zq0Zm&j!Un^z-Wf}{8@oeo7M=R&(>rnPp!e|-OsDQ66ul=8(Z$Q35>$Emp7&X2aDbo zNjj;}(OXik@lHX^B&w|h4)T8eOG;pb8h+uN)KtlSS_Gu5#kA%PZ}~bHX)zdY$x)u8 z6rN5EjcpSu^dXo`%D{s@McLC#7)&U;@|B^qdBsEcArnRG9EfCeL?Xhy;YMR46D@ zRe_mh>JY>LxD8Zw={Cy*cB4x!JRLK z(aDx9kq%fJ6u-F47D=GoU4YBh8Bb5cW<=2xsz`32hrbfBpcFv$( zM9qnAnVX(O4Yo^jciNwcfa@yHc$RFHWNVGxBrY2!CemOm8>z25ylT^rH|vVJL5Zfg zdjydw@JumGyb2-S*_()wPg#4XJUfCCgap-(uXdLd^ zbeIq?6F3QBA8%APeQVz&jxCtfp)CVH;$nm(VlZ)5!*3j&x?==6?Z+yDY{AAJqk$@xtZsm;1 zg}fOpIv<5yN0BzuOR zw(6-$7pwe*S&6vfr-mI((l!Qh=cBJ|btX50%1#PpQ28qzT_RZic)AudnXH;91?+d) zh-6+P2uj##24M|KDeO#Y#1utdbE)p9s$33F^g8T}9m~7lxJFhW13rb4zJ7TTEx$Be zo6Tv(HD5X>M058o4BUPX4cwJ6QPNPl!YSduv!*3id+U7)nQ*uvZr19%zYLMyYy}~Z z1h#Fz_W6G8znVF`gQy03;#$`TTr-&37hMmJlGIaAoT*GFrWxcSB}xV@BA6g~ zBtbOf+mM*CW@VC?pR2^S}t{JCX`;}3(;wY99ZbqZ|ZY_%Ox zT-l*R3s_+|UY1SH)y}cR)1%yxwwgWsgyKjh_e`~FS33MyX*!c;ajFCl{c&qOlDigc zPmDMMfp^bTw%q<*ZvwA>jq!|GC(7RsX{5#k8#X06ydixH=m^)boUuTI5bkG$MC%@4ozI zYgv7%J?t}qD|$pZZp;MZ7qVq}4D4U>O+_O3j`5f$6eBAL6S#+b8=7Sg>7Y2e+Mrpr zz^gg}`984m2ODk-Q+u7;bH++Z2e3OPqs}8gT{JCrjI!Uc4tWpT;d$@>&^V4|is0-hYq!MR#GL1Za-jv9}1h@Zyg5uUvLo9rQOo<)M5g8APiEJzgdL&Yd zW3DC;yIsj9r~E+Dv|kuuWBfmhS=+xHle@HaAp z_uxb;%u{1Hv)(FBbXW*5mPP;G6;h}|EKGaKp9mEH4K&$FKqaXki-sx7SE8e*zSHKA6Zcx*NnT#S# zV(SN39Tnj?1sfJPS3=&yoN2vUb$O@~ZT{*E573qIdf&!EC-8QUYI7v=L9|rYV-!vu z+%Th?zG=~!|ELaT`iNxcBR>RSL34Z8{=@^)&wQK9+}wr8QAs&@TqPYPXaNF~Y(ZR5 z+z|HM@s~5->rf>#$>7`}^=gC2l(r=X?n; zM)AREDzdDZ^x2qQ8HCuBes!nC2Gwt>TzzSL%%+TIHm9~q6^KYO?ndO`_6{&Z8T73d zPxl4rZ{YtZ(a=+htKw+Y?8KENXDPX$S1?j>&+~7SESH}QX7NdCuFPJ#_{sI|bbcg^ zce+kzBZ#NPO3>Kk_#g!tW5?Gzj0YO0;F622-cU>vZ8IEAu8fW#89^a1Ih!l|y+n)& zd^E=Uf|eOX0Z_wl17PJQ=&e44iaEax`(Dje{MVbj*)?i)%sEjBp@OOHisy4MS*ikM zXR3coD0*<~Y07<?|!ezS21~1z)cAB%`fFFL8 z#8ucNX*-1#Sg=Nb0 zKVM5CDA5CM^pjS@xgX)~0S6j|J6^VZ8?EL|un@q1^CWARsyfVwYdF-={RUh0-$V2QXh@r{ zkpB^>Y1IB?VuL7Tz;=x`j%BZp-pQTinm+%=fDLV0n1oO7SW>SaC>U_cS%Z z^sO*Pou!tVB9V=8Nt&^$y9rApg+lZ@(uK&TB?Bj>WI(hD?Hi~(jio$=A{l?FUD;eE zWw(pjPc+A~(s3gUC@@gWWswXSu@PL(m%g{AwmoI*-9>?k=ZFCToa{ARi5 zW0RZ#SMH5Oq*E^gJx0o%dQ~jj+#|~z^x7}gs_`>O9vSmHD?<37G9MOHFpnYI-#Ev1 zmYBH8dBe~}{Bf0j+?6YID{`anhkYGLg z_Kx8zc%KZHvh1g;`DsoA?GE*Z?`#@{9&~^&FEF##0|HDg=CgJ3cZVbP#9g6(q20hd z1n0jK>Cy{Wg->UeK%11!8JTcLt!~@yV&NMD*ltCxBX(vc;366WLruVfu2XfJzVg+_ zi35$%lP=%3d*WEuVXCWH{y9lon}0nJr--iNO*aSa@?zXU%i37KfcJm9^nwL^r3A+< z7sNK8cb|jhNs@7HdL-X<)m>@h$dl0^6mMO;;Pm&_r4J4P81cse_4S3PzQSA5E0+>5 z^t}6I**mAJK2p4l%UpD)v);~hYquDsK5#xYOV>|a`y&LGWkPu)fpx_20nDJH3SHP?G8i|4X#_}hXdxm??pFi zv*mP(<+u7(=RIhg-R+ml(SL`NSI?_IPz?L_U|ugy4S_Ub?(*S!tTgfW6fi~zm^u@1 zt0J$ccyvyH(B&W&GK0TJfhehuX(H+H5e{*|A7K@BrixR+5zJP38< z_7({+dj(d90UUJqMJRz#81P(m3lFjkePUEa1mSP6sAI=@?kn0^!n{ge&q%39 zA|AhoumDP6)v*JdUbAlKW>z?ne*01K^)$0Dj=sJF0<6LE(m>$$>ZewV6*>S*hJJn% z=m7#;gHMp6(P>ZYY^xim@8x-w96_9b-x(rN;2&HH$8g4UE)br?coGIz>-va*X)^sc z%soLn-siT^fvmD^O_SXG)2rAkf~~g~O&nkRze?O%mFJN{QPdof!b-K-DW<50(X5@g zv*41zK>+s9;*y1Af;f6Gx|K7QN|^NA5t1Tw&PI9e zZWazI7yZ?#^-kt~zKygPc11j}x}M)Lq)D=32{kvz)9i)6&hf|)T~jj|f-il=4Nhtb zo<3cD%L0E5)gFLX8?V)@(lGz3S*s2`v}nb(2L@1MgM%hRBz?fBjpI@@s3lI~hz*w? z>*pSy_8wp{^%C+&&?I|2(2b31&kcrm68d6u+D8(QU zgBc>?#^v!Tw_c)7Ys@55H`1~WGT-D?=qT~1_pf$xI0(Owi|)p(CYrfs71_Olmy4f( z@J)8*zxmM*`RT0ow13_OU<>u!^rrqaB7u>MON&aTpG)K#h)%IY{rgG+!J2w5@DMwr z_JByS@_u2nZi?i6c&uK8P75YKlO5{XW}lkdpiCoT2?}_`LNo;Py+2ESxV{B`58!V^ z>0u|z6aur;?1Ufmpu!<8dXI@}4E%HaW}$D6_g~L{A$KcQk@|t{Kc?f2aNXj z-i$FdBjGQ6^!>2?XgvKsv$Oq@=X>EQfO5Y^l-r?*@J&qK31d~pN+Qq}zE%g~Th1H_ z(O*Li()VCGm?~Ns6*7`JY;Q!2F88tNf z+59hO&BUkIf?6o@Z@Cp7?XsjAH*i|Q4gy4`T-hYbI-I20JeKxs+6SmLn)Czo!~_IJ zj*h6IqTy}Y#RTe3GbxsySaP^O&?aq?&aK8~`HOoYKxEh<((Eh?e|EOEhU0U&Sqo>I zvGFk#vyv-RRC>BVIyLh5F6d!ojcZl>%dC-=7RgMxru% z-M^fko>t13(tv^Ch|7ExRsZ+8KQFz(-K8``$KSk;gaZt2spR6~^EbN%9@ zL6|uDco&cVPqi$^k;G+0ud(hFFLqe(@z`B||Kc8dgGxdm+#McvwoOEbGg2qnnm|7f zY?gAB*o|A%^he(nU?)*K_D26|cL*l*^z`t!nq}@|xJe14&GQP>7R!D+_3WdE9kJpF zVeRjGdkNeHUQA1RZpRfGJWv?$yy$g$-hLfx_>K{H*Ew5EgK&0swp(7U*{pmpGgFLQ zKF#gD&CR7~+{lw;nKOGFg`RbJY3lE<-^FI_3U)ILVaYvP;rH6QYUc19k?EeV>t#8c zFV~v@Tc4&~ksVueu>c<%^% zV}KaD3xZ|R>zC84AB+q-F7!n~)$0hV-g(D)HZ0Vk3ea*;OhC zz^ni9&SyZ48D1ZFR~@pEqfpsdq)CbLHVO=G)O)*c-}^DDY4FNcr`H>|8io4yXqq@l zI!@~L7hV@Dd~yV4lN&jBBkJ~P#7F={{y6tUaPC{_h?pTAGuC0f6>$1d^&J6+*%h=Y|2G&*namHRK ziUhvnefQ1I-oDsgSH6<{_4;tq>vJeiYy0-#(GitJGl)s>nTAU-ALFd8F2(lIzFghn zyG@cRMk@XJ3a)&G+S$d~m@A63i62|`?meuh@*KO9TSHr0#3+;g;QF)zZ5TX9Uc+(K zaRCo@-sGuHD5nMs`qYZt3r{tCB28apu-Bw3dd5$$s0cp`ScEh^)>Xc-(WJw%4lPYM z-56cC3G58V%_Up;zWH|GK+fE@B8BN%IuAHPZW zoX6vhv9Ge>_Hor(53bIr)N5g_CiK`J$`knR2aCIx_j4y;4^b!OOJ<=Lgpxrg8RFYG zz0&V-dd=OupOu9^czUIe&zilmO+zq--q(|Ze$OvB21&QSdx0RzUiem%w>c%?^WJ$p zbZ|M${DZ{*qq3kUWKu~$l-eiM^>}74c2?*YBNLrZ4KU_(1S`;9>swaBs5W2B)ML+s zYTD^f5m1-y!97z{PYG`1-~~e32X?;V7!V4gY#o1u%Vjd{HOggPl>(h*zArlp8LP7& z`7H|G*M^;bpq-cZhj8z)%YD?D!cqGA-k29*pTNkvS0(0hlSBW}M4-5ejWPI3bO*GrbTUpqdEq0}`(e6fgZB|qBgG<&_hWJ7RlcUd0Ocf}ZTBtAC9QNOPUeH(!84ehL(ntH3HL;PuBF zU0rSD;SrI6iHRK+3%cb(Cc=h=RUNmiXAf>n`Lz#x?a=!nRA<nFZW=hbM1B$@e{&<(mP$9L zeN(@mF^T>U*S(JmVL%)>FNs-iQMQxrtS0sQIpA4c-OmO@Y;6Gz_rTD#TQwzgora`2 zbwrGYv&Q|aypfT+=za)1rqe>te*V8;$3%6c)uc&l!4AkSLmA{Pah8t_!=rytJk}~$UJqNI*QvIvSDCW{i=>MBea?`=@7Iafot6cp`QX%5Sbc~Z zlP8aGG-KbHhVJyuyb7I=i){a*OCS~^P0VpHYE<)yr!C_hJ`6YfJ3qI7eZ}eP_X{Nc ze8ek>-Y9-tV((wW@&Dp~T%Qe0AZrEjq)mD|=`%NKF|g!Lqltw*$Y_b`j<|fu_Z@{y z`3w#~T+=mc6v&qce*P8Oyi?D_))&9sac2a$3aY3(xOrQfL+k98EdPCHI$CRQSaJ6$ zM!x%^y~DUDATy#h^j6a_Q`7igrn|+Ojn&_gcDcS zK;iJ+vQf$3=`$8$(L|vu!;a~A@hZ&ey0+G&nW~T1q($>u(3#-uI`U$r&q##Q^5@Wm zQB%e%9WDuvs-)I)_Nl7I>Nu8ndX1Pf$+3O!SHp%GhmL|7ZVfQFYBI$!Cta*x{q}Qr zz5-YH?>N1Qtv(j?`!)WKv|*nMWqX~~Pv^G*-dvwcgaUluHpLY_8PG6HHiBc#jnT02 zs3((*BzT2f2yi6vT@hmW)a|BjO~Tx8zWAb#w>+9ToHb!X&D+l?z1M1Q|nS z`X`1D$H0Y^UQ_hN&+ct7Xia-pPr_24d!_L-Nrwzr5IGja$l06hj``%^{*YfOW5!)) zdF}d!OI>$M%-((=L7Q{xIaE?v=7R4%cWxaZf84tMtcj+ z&MxR-^x&{CR&l6d=A44!m5qxua;b2)5Y=*-P9)`Tb^FWZqn!Zh+=56j`uBm>jiDf8`x92ThQ9kuyb(%?un9Q0nHOaxg$uRkWT>+UQyYoljp3MHTRff+GRK)W;)gIP7=8mqQ14LWhM; z!vf2MDFc&cwIWJx`aP@FDw&T~RV6s$loO$&0s^M3Cb`lM<3=cyl+S8-UZfDXsw!-r zIeo|qne$_&;;oc%0_WlAd5iO;^Cr|`Q)b5nQ8?wCCn`*Sq2-0Fb~@qQ$Q*(_>SCTI z9ccP0(@dk9eAA=0vbg|@{P!0=e{I#Q(5zNikilZ&jwcXPNN*4=!ANU5fOJt(-w1s@ zG9N+;xhY-n-XjY0E$RDt7ElCWsr|?`frgZA`Z{<^suO6KC~KPED`U|rN?d&9Lq95F z5Qoe`Rjy++>~~0F7;T3JtL^R?WvCT_^jdOCZcDf#!OPm5nw7N5S8W4BwF?-aXqr`qQ!3RD&F%If0!@n$bDpeE8_v5p6yx3}Ov;VHl}sX9 zI8`7D%5XvV*ICTa7)YToZ48oZHn}B~Uvwm>r^1LM%jNR(a4X1Cm00X{sS3*BFCQ4j z+Jw66;m8?`kZJ}NRb}PSWbZR=8X1uJ{@Rg~d)_P3{SqfmIt&vYUR9)H#NDke?Ck6a znvwH1qeK&elC$o(yDIitBoPX&Hp&qOFT_?U(ip*wD^o<)rti6y7`6HCg|V>GFNf)z z`*L5K>oj7hsT7R(J=&hp1A392rk8S;fD6|wVhNJ;)~>F(Ly;Y1HDfN%Pf&dQbkKQ< z5Xz!NSq>C|Ny(ZGhoi1n8J#@CsuFWQUWohKJGgWAgM5pqd{oQXik7qp~oiHs(-?o^~=Xmc|zrs83yo24nz3x08;SwA5!$S*TbRBG= z4#lG!UWLWiduHtb8`b9=8qYm2mX3w>hq>r#H{Z@UyDqyp%0;+mjeUre)pylZ&#C7p z_OJjr;{Wx$FcZ;>R$sb27W*k(4hbgh4(Ve-6~OlQ_p!CLh3hwN;Jx?W!~T4pP2!K5 zl>g?T`rq>#eOY@iif?owmaES^Y66b3Mvfo$J^h7vl(n;Zfw9M`>nvTNVpZ}?Q@nkZ_bTUcS(J>-A zNG-vKfFf7Uky||0q8e6-YwbPeiv@1pyop=4Z{hc@$^Z9%#-kBtvl*)40LPCX$Ab@C zz=;zlIu0kMFFmCWM}2sRJ|MDHa=)0>=SyoMQYUKDAuJV)baZp*fc+hhMJpQ}x-EMV zqwe+`^m!FV)6!CYL{=qif>)9Dmzvo*nZpLGtys=`Olos%$BS1@%&Ri6Zo3K?1wDJb2m z&<}k%>=g^zWS^6mY01ZpJ<3ErN#Bl&SP&I9xOW+MCteu~e%Lrn&ty-)61|XI#4Fhw zo3D0rcs%Ur$^V|b({ldDhwfl7!1}Rc*f@1cY_WikNxvP$=3ZZ;;TEfFh~da4J=(_uf)#)+f?DKxtP|mN-}}?wPS51X!vCiE@nh z;ugeeyGbe7qV)mMd$g)umloq`z|DAqNMae#%Wkg#$IV)7~t8raVY z8cMZ<3szjD5phPD_Z7yVWX>|x3`D6{K{2K16Qc+e z1X?6qZ8kA~?~q`%g>z^_z)CCB(1FDB$tD<4fj#bpu{h_%eU-ff`B2yXc&oa`inQ<8 z>)ar(t4J=cmJark5TP~s3mRi!*_2TgBJ0&k?8maBuIWgUH>$@!B2&w*e_-f9y&0Df zVie8BvMjN?o7A0}w#9wN*HMheW10Mu8yh&Wv4N8(PKX{f6kvcijAc(V>Jhdfz*&P; z>k)iQH(h`?4#Br_liGye6XQgw#40CAi4;V&0`KJJN+eB_=PiyV|xH}TYV>lFWZ-mMi2;;4|CNf;$n zxa;K-MOldWCKsK#xXka9*Hlpy@WehFR27+vqz+QTtx)Bio*ztC4S;c`V;sr{iYOqH z7%LN@Mx!AXiv^4^SUxigPVh(F-$1ofY$uR>mA%$~rWhtjpOA@+m)4;NW zr7`f)qp6cyiayB`*rcJ*J57F36yzovrPapmxmMfY@W!N8SV887x@XL!hL%D*!Fn45 z!#~ru35mrvw;>?39zG_*3d{0%60-0d=CNray(oEs6j`){$XnL6___xo`V=;Wfx)+M zWeH2a*K*q=Mhu2SjD{7QE3&p)k#a0+o%D8PF)B-8M&3y%th~yd2u^0UR4zu6CRtG= z`)ON91Qgm9b<@Cd{*PQw^eURug-k~(yT&9}SpeAE-@j+ZlGdLWnec*1QOOZX+Mjti zxwB+oVVuE`(3t^IOhWmyeDH*EFC=2ID(Yf#jG^~0`M7fCN&Rw2s?fI)=kMi6Cvd-? zbnQ4|3?bm|-K})N7=ywo1y%0f-o1NQ)Lpf7uFfAhWETi5_i$DI&KU9mafbP@;NE0r zROJ^JsejFcf>zln2~?0-Nk-?)x@`hNS~=MiUXP!UPU$qweC?J}1#TyD7_WWWv@|fQ z#R`E$6?`NwR4OCZS{T~6)><@56mVJB*x$2)r{*@Jo^yTc=+>Ops@K|ad@~BlPwA*j z9e_6*JwHb?T0WXN&_=xn&G_R97t@NEFNgK@^?PP4Eb+~t6c#|yD9WysTDH4l-2q)Z z(}tm1HM!psV?hgzD=><&=ai9yUN2f-Ad#rhL3HYUshM>;)#Wu*RMk+50*v#`deLNZ zM}?lC+#-bj$S0Rn1p^riwi!LNx0j`%nb|`RnxM0`Cj)I!xR_zMx`L{lSF&}8v zyl-J_R^~NiFrdBQv=a&=6m8GOxIaE00-y*PUF?69lp%zW;G9fUp&KRk{xX(7p$8N9 z{ebxM_rh2NnWn~}eb|nwj9Xf-gMsSP_lmzFz^UxP_3zhWAR>vyz#RawY2<=4#)uVH zP+o!|IN_E9QGh)f_T8`KYg%;CDCntB<=CEv=ySSQz<79QzjF>NlsKVgo|RM;<_9iF z$s;|Ol}%a=s*WF8OZh$D-mPyl$|wdjO)C-GVzCmMrZu)BKc!J@!3U9k4$7THtK8~v zNxrVC^ITYqM2%#}6tVv`2F9s24ymV7L?(w}R_ZY#{$ZU(t@z;?+S}w?-K2T*F;#Ir zSziU8kXHf$?O8}$)$$pXrPMwO=jgCa_A3m<BBH*xuxhR zy0yv-q;Dt^LvllAS!(nklF_}PlPAGP8-i>ab$V$(F3l3- z3HH8CRz0+V`W87}kxAHFUAHT&>NCorpl)K`MA{iu+dT6P9(#Iej5F?^=mL%j86KOR zI2pSg56La-5Yi|JCqG;3TS`65AvrENm01mjQWMVGIxmoJ6phI@`M1k6@g}lrPQ=ZW zLPNIP>NDzCT3UyPUOB!n1emRtwET2N?)~n^qRRn>NGgn}=bkvfgSPb|I?-O^SKDr+(bpL0_|kDIp}G-4?L+T9{tM9v!}W%g-lhNm N002ovPDHLkV1lXHuM+?O literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/rhodey/logo.png b/plugins/stk/voices/rhodey/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "rhodey_instrument.h" +#include "rhodey_instrument_view.h" +#include "rhodey_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor rhodey_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Rhodey", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Rhodes noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +rhodeyInstrument::rhodeyInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &rhodey_plugin_descriptor ) +{ + model()->index()->setTrack( _channel_track ); + model()->crossfade()->setTrack( _channel_track ); + model()->lfoSpeed()->setTrack( _channel_track ); + model()->lfoDepth()->setTrack( _channel_track ); + model()->adsrTarget()->setTrack( _channel_track ); +} + + + + +rhodeyInstrument::~rhodeyInstrument() +{ +} + + + + +QString rhodeyInstrument::nodeName( void ) const +{ + return( rhodey_plugin_descriptor.name ); +} + + + + +pluginView * rhodeyInstrument::instantiateView( QWidget * _parent ) +{ + return( new rhodeyInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new rhodeyInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/rhodey/rhodey_instrument.h b/plugins/stk/voices/rhodey/rhodey_instrument.h new file mode 100644 index 000000000..4fdfa7b8d --- /dev/null +++ b/plugins/stk/voices/rhodey/rhodey_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _RHODEY_INSTRUMENT_H +#define _RHODEY_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "rhodey_processor.h" +#include "rhodey_model.h" + + +class rhodeyInstrument : public stkInstrument +{ +public: + rhodeyInstrument( instrumentTrack * _channel_track ); + virtual ~rhodeyInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/rhodey/rhodey_instrument_view.cpp b/plugins/stk/voices/rhodey/rhodey_instrument_view.cpp new file mode 100644 index 000000000..34a204cd7 --- /dev/null +++ b/plugins/stk/voices/rhodey/rhodey_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "rhodey_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +rhodeyInstrumentView::rhodeyInstrumentView( rhodeyInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_index = new knob( knobSmall_17, m_topView, tr( "Index" ) ); + m_index->setLabel( tr( "Modulator Index" ) ); + m_index->setHintText( tr( "Index:" ) + " ", "" ); + + m_crossfade = new knob( knobSmall_17, m_topView, tr( "Crossfade" ) ); + m_crossfade->setLabel( tr( "Modulator Crossfade" ) ); + m_crossfade->setHintText( tr( "Crossfade:" ) + " ", "" ); + + m_lfoSpeed = new knob( knobSmall_17, m_topView, tr( "LFO Speed" ) ); + m_lfoSpeed->setLabel( tr( "LFO Speed" ) ); + m_lfoSpeed->setHintText( tr( "LFO Speed:" ) + " ", "" ); + + m_lfoDepth = new knob( knobSmall_17, m_topView, tr( "LFO Depth" ) ); + m_lfoDepth->setLabel( tr( "LFO Depth" ) ); + m_lfoDepth->setHintText( tr( "LFO Depth:" ) + " ", "" ); + + m_adsrTarget = new knob( knobSmall_17, m_topView, tr( "ADSR Target" ) ); + m_adsrTarget->setLabel( tr( "ADSR Target" ) ); + m_adsrTarget->setHintText( tr( "ADSR Target:" ) + " ", "" ); + + h1->addWidget( m_index ); + h1->addWidget( m_crossfade ); + + h2->addWidget( m_lfoSpeed ); + h2->addWidget( m_lfoDepth ); + + h3->addWidget( m_adsrTarget ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +rhodeyInstrumentView::~rhodeyInstrumentView() +{ +} + + + + +void rhodeyInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + rhodeyInstrument * inst = castModel(); + m_index->setModel( inst->model()->index() ); + m_crossfade->setModel( inst->model()->crossfade() ); + m_lfoSpeed->setModel( inst->model()->lfoSpeed() ); + m_lfoDepth->setModel( inst->model()->lfoDepth() ); + m_adsrTarget->setModel( inst->model()->adsrTarget() ); +} + + + diff --git a/plugins/stk/voices/rhodey/rhodey_instrument_view.h b/plugins/stk/voices/rhodey/rhodey_instrument_view.h new file mode 100644 index 000000000..607c3697b --- /dev/null +++ b/plugins/stk/voices/rhodey/rhodey_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _RHODEY_INSTRUMENT_VIEW_H +#define _RHODEY_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "rhodey_instrument.h" + + +class rhodeyInstrumentView: public stkInstrumentView +{ +public: + rhodeyInstrumentView( rhodeyInstrument * _instrument, QWidget * _parent ); + virtual ~rhodeyInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_index; + knob * m_crossfade; + knob * m_lfoSpeed; + knob * m_lfoDepth; + knob * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/rhodey/rhodey_model.cpp b/plugins/stk/voices/rhodey/rhodey_model.cpp new file mode 100644 index 000000000..472d03291 --- /dev/null +++ b/plugins/stk/voices/rhodey/rhodey_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "rhodey_model.h" + + +rhodeyModel::rhodeyModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _index, + StkFloat _crossfade, + StkFloat _lfo_speed, + StkFloat _lfo_depth, + StkFloat _adsr_target ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_index( new floatModel( _index, 0.0f, 128.0f, 0.1f, this ) ), + m_crossfade( new floatModel( _crossfade, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoSpeed( new floatModel( _lfo_speed, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoDepth( new floatModel( _lfo_depth, 0.0f, 128.0f, 0.1f, this ) ), + m_adsrTarget( new floatModel( _adsr_target, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +rhodeyModel::~rhodeyModel() +{ + delete m_index; + delete m_crossfade; + delete m_lfoSpeed; + delete m_lfoDepth; + delete m_adsrTarget; +} + + + + +void FASTCALL rhodeyModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_index->saveSettings( _doc, _parent, "index" ); + m_crossfade->saveSettings( _doc, _parent, "crossfade" ); + m_lfoSpeed->saveSettings( _doc, _parent, "lfospeed" ); + m_lfoDepth->saveSettings( _doc, _parent, "lfodepth" ); + m_adsrTarget->saveSettings( _doc, _parent, "adsrtarget" ); +} + + + + +void FASTCALL rhodeyModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_index->loadSettings( _this, "index" ); + m_crossfade->loadSettings( _this, "crossfade" ); + m_lfoSpeed->loadSettings( _this, "lfospeed" ); + m_lfoDepth->loadSettings( _this, "lfodepth" ); + m_adsrTarget->loadSettings( _this, "adsrtarget" ); +} + diff --git a/plugins/stk/voices/rhodey/rhodey_model.h b/plugins/stk/voices/rhodey/rhodey_model.h new file mode 100644 index 000000000..9be409fb7 --- /dev/null +++ b/plugins/stk/voices/rhodey/rhodey_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _RHODEY_MODEL_H +#define _RHODEY_MODEL_H + +#include "stk_model.h" + + +class rhodeyModel: public stkModel +{ +public: + rhodeyModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _index = 64.0f, + StkFloat _crossfade = 64.0f, + StkFloat _lfo_speed = 64.0f, + StkFloat _lfo_depth = 64.0f, + StkFloat _adsr_target = 64.0f ); + ~rhodeyModel(); + + inline floatModel * index( void ) const + { + return( m_index ); + } + + inline floatModel * crossfade( void ) const + { + return( m_crossfade ); + } + + inline floatModel * lfoSpeed( void ) + { + return( m_lfoSpeed ); + } + + inline floatModel * lfoDepth( void ) const + { + return( m_lfoDepth ); + } + + inline floatModel * adsrTarget( void ) const + { + return( m_adsrTarget ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_index; + floatModel * m_crossfade; + floatModel * m_lfoSpeed; + floatModel * m_lfoDepth; + floatModel * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/rhodey/rhodey_processor.cpp b/plugins/stk/voices/rhodey/rhodey_processor.cpp new file mode 100644 index 000000000..64a220ccf --- /dev/null +++ b/plugins/stk/voices/rhodey/rhodey_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "rhodey_processor.h" +#include "config_mgr.h" + + +rhodeyProcessor::rhodeyProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +rhodeyProcessor::~rhodeyProcessor() +{ +} + + + + +void rhodeyProcessor::setControls( rhodeyModel * _model ) +{ + voice()->controlChange( 2, _model->index()->value() ); + voice()->controlChange( 4, _model->crossfade()->value() ); + voice()->controlChange( 11, _model->lfoSpeed()->value() ); + voice()->controlChange( 1, _model->lfoDepth()->value() ); + voice()->controlChange( 128, _model->adsrTarget()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/rhodey/rhodey_processor.h b/plugins/stk/voices/rhodey/rhodey_processor.h new file mode 100644 index 000000000..77dc26069 --- /dev/null +++ b/plugins/stk/voices/rhodey/rhodey_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _RHODEY_PROCESSOR_H +#define _RHODEY_PROCESSOR_H + +#include "Rhodey.h" + +#include "stk_processor.h" + +#include "rhodey_model.h" + +class rhodeyProcessor: public stkProcessor +{ +public: + rhodeyProcessor( sample_rate_t _sample_rate ); + ~rhodeyProcessor( void ); + + void setControls( rhodeyModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/src/stk_model.cpp b/plugins/stk/voices/src/stk_model.cpp new file mode 100644 index 000000000..1bc8d042d --- /dev/null +++ b/plugins/stk/voices/src/stk_model.cpp @@ -0,0 +1,122 @@ +/* + * stk_model.cpp - base class for stk instrument models + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "stk_model.h" + + +stkModel::stkModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + bool _release_triggered, + bool _randomize_attack, + StkFloat _randomize_length, + StkFloat _randomize_velocity_amount, + StkFloat _randomize_frequency_amount, + StkFloat _spread ): + model( NULL ), + m_monophonic( new boolModel( _monophonic, this ) ), + m_portamento( new floatModel( _portamento, 0.0f, 1000.0f, 1.0f, this ) ), + m_bend( new floatModel( _bend, -4096.0f, 4096.0f, 8.192f, this ) ), + m_bendRange( new floatModel( _bend_range, 0.0f, 24.0f, 0.24f, this ) ), + m_velocitySensitiveLPF( new boolModel( _velocity_sensitive_lpf, this ) ), + m_velocitySensitiveQ( new floatModel( _velocity_sensitive_q, basicFilters<>::minQ(), 10.0f, 0.01f, this ) ), + m_volume( new floatModel( _volume, 0.0f, 1.0f, 0.01f, this ) ), + m_pan( new floatModel( _pan, -1.0f, 1.0f, 0.02f, this ) ), + m_releaseTriggered( new boolModel( _release_triggered, this ) ), + m_randomizeAttack( new boolModel( _randomize_attack, this ) ), + m_randomizeLength( new floatModel( _randomize_length, 0.0f, 1000.0f, 1.0f, this ) ), + m_randomizeVelocityAmount( new floatModel( _randomize_velocity_amount, 0.0f, 1.0f, 0.01f, this ) ), + m_randomizeFrequencyAmount( new floatModel( _randomize_frequency_amount, 0.0f, 4.0f, 0.04f, this ) ), + m_spread( new floatModel( _spread, 0.0f, 255.0f, 1.0f, this ) ) +{ +} + + + + +stkModel::~stkModel() +{ + delete m_portamento; + delete m_bend; + delete m_bendRange; + delete m_velocitySensitiveLPF; + delete m_velocitySensitiveQ; + delete m_volume; + delete m_pan; + delete m_releaseTriggered; + delete m_randomizeAttack; + delete m_randomizeVelocityAmount; + delete m_randomizeFrequencyAmount; + delete m_spread; +} + + + + +void FASTCALL stkModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + m_monophonic->saveSettings( _doc, _parent, "monophonic" ); + m_portamento->saveSettings( _doc, _parent, "portamento" ); + m_bend->saveSettings( _doc, _parent, "bend" ); + m_bendRange->saveSettings( _doc, _parent, "bendrange" ); + m_velocitySensitiveLPF->saveSettings( _doc, _parent, "velocitysensitivelpf" ); + m_velocitySensitiveQ->saveSettings( _doc, _parent, "velocitysensitiveq" ); + m_volume->saveSettings( _doc, _parent, "volume" ); + m_pan->saveSettings( _doc, _parent, "pan" ); + m_releaseTriggered->saveSettings( _doc, _parent, "releasetriggered" ); + m_randomizeAttack->saveSettings( _doc, _parent, "randomizeattack" ); + m_randomizeLength->saveSettings( _doc, _parent, "randomizelength" ); + m_randomizeVelocityAmount->saveSettings( _doc, _parent, "randomizevelocityamount" ); + m_randomizeFrequencyAmount->saveSettings( _doc, _parent, "randomizefrequencyamount" ); + m_spread->saveSettings( _doc, _parent, "spread" ); +} + + + + +void FASTCALL stkModel::loadSettings( const QDomElement & _this ) +{ + m_monophonic->loadSettings( _this, "monophonic" ); + m_portamento->loadSettings( _this, "portamento" ); + m_bend->loadSettings( _this, "bend" ); + m_bendRange->loadSettings( _this, "bendrange" ); + m_velocitySensitiveLPF->loadSettings( _this, "velocitysensitivelpf" ); + m_velocitySensitiveQ->loadSettings( _this, "velocitysensitiveq" ); + m_volume->loadSettings( _this, "volume" ); + m_pan->loadSettings( _this, "pan" ); + m_releaseTriggered->loadSettings( _this, "releasetriggered" ); + m_randomizeAttack->loadSettings( _this, "randomizeattack" ); + m_randomizeLength->loadSettings( _this, "randomizelength" ); + m_randomizeVelocityAmount->loadSettings( _this, "randomizevelocityamount" ); + m_randomizeFrequencyAmount->loadSettings( _this, "randomizefrequencyamount" ); + m_spread->loadSettings( _this, "spread" ); +} + + diff --git a/plugins/stk/voices/tubebell/Makefile.am b/plugins/stk/voices/tubebell/Makefile.am new file mode 100644 index 000000000..cb68f3b4b --- /dev/null +++ b/plugins/stk/voices/tubebell/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="tubebell" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./tubebell_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libtubebell.la + +libtubebell_la_SOURCES = tubebell_model.cpp \ + tubebell_model.h \ + tubebell_processor.cpp \ + tubebell_processor.h \ + tubebell_instrument.cpp \ + tubebell_instrument.h \ + tubebell_instrument_view.cpp \ + tubebell_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libtubebell_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libtubebell_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/tubebell/artwork.png b/plugins/stk/voices/tubebell/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff9d1e97ddcd1ebc4d9942d982e0616bcbab7f6 GIT binary patch literal 71446 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 + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "tubebell_instrument.h" +#include "tubebell_instrument_view.h" +#include "tubebell_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor tubebell_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Tube Bell", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Bell noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +tubebellInstrument::tubebellInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &tubebell_plugin_descriptor ) +{ + model()->index()->setTrack( _channel_track ); + model()->crossfade()->setTrack( _channel_track ); + model()->lfoSpeed()->setTrack( _channel_track ); + model()->lfoDepth()->setTrack( _channel_track ); + model()->adsrTarget()->setTrack( _channel_track ); +} + + + + +tubebellInstrument::~tubebellInstrument() +{ +} + + + + +QString tubebellInstrument::nodeName( void ) const +{ + return( tubebell_plugin_descriptor.name ); +} + + + + +pluginView * tubebellInstrument::instantiateView( QWidget * _parent ) +{ + return( new tubebellInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new tubebellInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/tubebell/tubebell_instrument.h b/plugins/stk/voices/tubebell/tubebell_instrument.h new file mode 100644 index 000000000..c79aff760 --- /dev/null +++ b/plugins/stk/voices/tubebell/tubebell_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _TUBEBELL_INSTRUMENT_H +#define _TUBEBELL_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "tubebell_processor.h" +#include "tubebell_model.h" + + +class tubebellInstrument : public stkInstrument +{ +public: + tubebellInstrument( instrumentTrack * _channel_track ); + virtual ~tubebellInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/tubebell/tubebell_instrument_view.cpp b/plugins/stk/voices/tubebell/tubebell_instrument_view.cpp new file mode 100644 index 000000000..03e5489d6 --- /dev/null +++ b/plugins/stk/voices/tubebell/tubebell_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "tubebell_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +tubebellInstrumentView::tubebellInstrumentView( tubebellInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_index = new knob( knobSmall_17, m_topView, tr( "Index" ) ); + m_index->setLabel( tr( "Modulator Index" ) ); + m_index->setHintText( tr( "Index:" ) + " ", "" ); + + m_crossfade = new knob( knobSmall_17, m_topView, tr( "Crossfade" ) ); + m_crossfade->setLabel( tr( "Modulator Crossfade" ) ); + m_crossfade->setHintText( tr( "Crossfade:" ) + " ", "" ); + + m_lfoSpeed = new knob( knobSmall_17, m_topView, tr( "LFO Speed" ) ); + m_lfoSpeed->setLabel( tr( "LFO Speed" ) ); + m_lfoSpeed->setHintText( tr( "LFO Speed:" ) + " ", "" ); + + m_lfoDepth = new knob( knobSmall_17, m_topView, tr( "LFO Depth" ) ); + m_lfoDepth->setLabel( tr( "LFO Depth" ) ); + m_lfoDepth->setHintText( tr( "LFO Depth:" ) + " ", "" ); + + m_adsrTarget = new knob( knobSmall_17, m_topView, tr( "ADSR Target" ) ); + m_adsrTarget->setLabel( tr( "ADSR Target" ) ); + m_adsrTarget->setHintText( tr( "ADSR Target:" ) + " ", "" ); + + h1->addWidget( m_index ); + h1->addWidget( m_crossfade ); + + h2->addWidget( m_lfoSpeed ); + h2->addWidget( m_lfoDepth ); + + h3->addWidget( m_adsrTarget ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +tubebellInstrumentView::~tubebellInstrumentView() +{ +} + + + + +void tubebellInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + tubebellInstrument * inst = castModel(); + m_index->setModel( inst->model()->index() ); + m_crossfade->setModel( inst->model()->crossfade() ); + m_lfoSpeed->setModel( inst->model()->lfoSpeed() ); + m_lfoDepth->setModel( inst->model()->lfoDepth() ); + m_adsrTarget->setModel( inst->model()->adsrTarget() ); +} + + + diff --git a/plugins/stk/voices/tubebell/tubebell_instrument_view.h b/plugins/stk/voices/tubebell/tubebell_instrument_view.h new file mode 100644 index 000000000..c3e8ae03a --- /dev/null +++ b/plugins/stk/voices/tubebell/tubebell_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _TUBEBELL_INSTRUMENT_VIEW_H +#define _TUBEBELL_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "tubebell_instrument.h" + + +class tubebellInstrumentView: public stkInstrumentView +{ +public: + tubebellInstrumentView( tubebellInstrument * _instrument, QWidget * _parent ); + virtual ~tubebellInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_index; + knob * m_crossfade; + knob * m_lfoSpeed; + knob * m_lfoDepth; + knob * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/tubebell/tubebell_model.cpp b/plugins/stk/voices/tubebell/tubebell_model.cpp new file mode 100644 index 000000000..a8df61bc6 --- /dev/null +++ b/plugins/stk/voices/tubebell/tubebell_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "tubebell_model.h" + + +tubebellModel::tubebellModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _index, + StkFloat _crossfade, + StkFloat _lfo_speed, + StkFloat _lfo_depth, + StkFloat _adsr_target ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_index( new floatModel( _index, 0.0f, 128.0f, 0.1f, this ) ), + m_crossfade( new floatModel( _crossfade, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoSpeed( new floatModel( _lfo_speed, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoDepth( new floatModel( _lfo_depth, 0.0f, 128.0f, 0.1f, this ) ), + m_adsrTarget( new floatModel( _adsr_target, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +tubebellModel::~tubebellModel() +{ + delete m_index; + delete m_crossfade; + delete m_lfoSpeed; + delete m_lfoDepth; + delete m_adsrTarget; +} + + + + +void FASTCALL tubebellModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_index->saveSettings( _doc, _parent, "index" ); + m_crossfade->saveSettings( _doc, _parent, "crossfade" ); + m_lfoSpeed->saveSettings( _doc, _parent, "lfospeed" ); + m_lfoDepth->saveSettings( _doc, _parent, "lfodepth" ); + m_adsrTarget->saveSettings( _doc, _parent, "adsrtarget" ); +} + + + + +void FASTCALL tubebellModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_index->loadSettings( _this, "index" ); + m_crossfade->loadSettings( _this, "crossfade" ); + m_lfoSpeed->loadSettings( _this, "lfospeed" ); + m_lfoDepth->loadSettings( _this, "lfodepth" ); + m_adsrTarget->loadSettings( _this, "adsrtarget" ); +} + diff --git a/plugins/stk/voices/tubebell/tubebell_model.h b/plugins/stk/voices/tubebell/tubebell_model.h new file mode 100644 index 000000000..ab10f05cd --- /dev/null +++ b/plugins/stk/voices/tubebell/tubebell_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _TUBEBELL_MODEL_H +#define _TUBEBELL_MODEL_H + +#include "stk_model.h" + + +class tubebellModel: public stkModel +{ +public: + tubebellModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _index = 64.0f, + StkFloat _crossfade = 64.0f, + StkFloat _lfo_speed = 64.0f, + StkFloat _lfo_depth = 64.0f, + StkFloat _adsr_target = 64.0f ); + ~tubebellModel(); + + inline floatModel * index( void ) const + { + return( m_index ); + } + + inline floatModel * crossfade( void ) const + { + return( m_crossfade ); + } + + inline floatModel * lfoSpeed( void ) + { + return( m_lfoSpeed ); + } + + inline floatModel * lfoDepth( void ) const + { + return( m_lfoDepth ); + } + + inline floatModel * adsrTarget( void ) const + { + return( m_adsrTarget ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_index; + floatModel * m_crossfade; + floatModel * m_lfoSpeed; + floatModel * m_lfoDepth; + floatModel * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/tubebell/tubebell_processor.cpp b/plugins/stk/voices/tubebell/tubebell_processor.cpp new file mode 100644 index 000000000..8c39a717c --- /dev/null +++ b/plugins/stk/voices/tubebell/tubebell_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "tubebell_processor.h" +#include "config_mgr.h" + + +tubebellProcessor::tubebellProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +tubebellProcessor::~tubebellProcessor() +{ +} + + + + +void tubebellProcessor::setControls( tubebellModel * _model ) +{ + voice()->controlChange( 2, _model->index()->value() ); + voice()->controlChange( 4, _model->crossfade()->value() ); + voice()->controlChange( 11, _model->lfoSpeed()->value() ); + voice()->controlChange( 1, _model->lfoDepth()->value() ); + voice()->controlChange( 128, _model->adsrTarget()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/tubebell/tubebell_processor.h b/plugins/stk/voices/tubebell/tubebell_processor.h new file mode 100644 index 000000000..7cff391d1 --- /dev/null +++ b/plugins/stk/voices/tubebell/tubebell_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _TUBEBELL_PROCESSOR_H +#define _TUBEBELL_PROCESSOR_H + +#include "TubeBell.h" + +#include "stk_processor.h" + +#include "tubebell_model.h" + +class tubebellProcessor: public stkProcessor +{ +public: + tubebellProcessor( sample_rate_t _sample_rate ); + ~tubebellProcessor( void ); + + void setControls( tubebellModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/wurley/Makefile.am b/plugins/stk/voices/wurley/Makefile.am new file mode 100644 index 000000000..d7c5cdeec --- /dev/null +++ b/plugins/stk/voices/wurley/Makefile.am @@ -0,0 +1,46 @@ +AUTOMAKE_OPTIONS = foreign 1.4 + + +INCLUDES = -I@stk_includes@ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib -I. -I$(top_srcdir)/plugins/stk/voices/include + + +AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS) -DPLUGIN_NAME="wurley" + + +%.moc: ./%.h + $(MOC) -o $@ $< + + +MOC_FILES = ./wurley_model.moc + +BUILT_SOURCES = $(MOC_FILES) ./embedded_resources.h +EMBEDDED_RESOURCES = $(wildcard *png) + +./embedded_resources.h: $(EMBEDDED_RESOURCES) + $(BIN2RES) $(EMBEDDED_RESOURCES) > $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libwurley.la + +libwurley_la_SOURCES = wurley_model.cpp \ + wurley_model.h \ + wurley_processor.cpp \ + wurley_processor.h \ + wurley_instrument.cpp \ + wurley_instrument.h \ + wurley_instrument_view.cpp \ + wurley_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libwurley_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libwurley_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/wurley/artwork.png b/plugins/stk/voices/wurley/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..378c980fd0c37cdf83629155c390cd222e5338f6 GIT binary patch literal 71568 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 by~lq6=P$(*N6pAY00000NkvXXu0mjfSN>)3 literal 0 HcmV?d00001 diff --git a/plugins/stk/voices/wurley/logo.png b/plugins/stk/voices/wurley/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "wurley_instrument.h" +#include "wurley_instrument_view.h" +#include "wurley_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor wurley_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Wurley", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Wurlitzer noises" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +wurleyInstrument::wurleyInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &wurley_plugin_descriptor ) +{ + model()->index()->setTrack( _channel_track ); + model()->crossfade()->setTrack( _channel_track ); + model()->lfoSpeed()->setTrack( _channel_track ); + model()->lfoDepth()->setTrack( _channel_track ); + model()->adsrTarget()->setTrack( _channel_track ); +} + + + + +wurleyInstrument::~wurleyInstrument() +{ +} + + + + +QString wurleyInstrument::nodeName( void ) const +{ + return( wurley_plugin_descriptor.name ); +} + + + + +pluginView * wurleyInstrument::instantiateView( QWidget * _parent ) +{ + return( new wurleyInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new wurleyInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/wurley/wurley_instrument.h b/plugins/stk/voices/wurley/wurley_instrument.h new file mode 100644 index 000000000..fd654ba79 --- /dev/null +++ b/plugins/stk/voices/wurley/wurley_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _WURLEY_INSTRUMENT_H +#define _WURLEY_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "wurley_processor.h" +#include "wurley_model.h" + + +class wurleyInstrument : public stkInstrument +{ +public: + wurleyInstrument( instrumentTrack * _channel_track ); + virtual ~wurleyInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/wurley/wurley_instrument_view.cpp b/plugins/stk/voices/wurley/wurley_instrument_view.cpp new file mode 100644 index 000000000..12cd275db --- /dev/null +++ b/plugins/stk/voices/wurley/wurley_instrument_view.cpp @@ -0,0 +1,110 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "wurley_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +wurleyInstrumentView::wurleyInstrumentView( wurleyInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout(); + QHBoxLayout * h2 = new QHBoxLayout(); + QHBoxLayout * h3 = new QHBoxLayout(); + + + m_index = new knob( knobSmall_17, m_topView, tr( "Index" ) ); + m_index->setLabel( tr( "Modulator Index" ) ); + m_index->setHintText( tr( "Index:" ) + " ", "" ); + + m_crossfade = new knob( knobSmall_17, m_topView, tr( "Crossfade" ) ); + m_crossfade->setLabel( tr( "Modulator Crossfade" ) ); + m_crossfade->setHintText( tr( "Crossfade:" ) + " ", "" ); + + m_lfoSpeed = new knob( knobSmall_17, m_topView, tr( "LFO Speed" ) ); + m_lfoSpeed->setLabel( tr( "LFO Speed" ) ); + m_lfoSpeed->setHintText( tr( "LFO Speed:" ) + " ", "" ); + + m_lfoDepth = new knob( knobSmall_17, m_topView, tr( "LFO Depth" ) ); + m_lfoDepth->setLabel( tr( "LFO Depth" ) ); + m_lfoDepth->setHintText( tr( "LFO Depth:" ) + " ", "" ); + + m_adsrTarget = new knob( knobSmall_17, m_topView, tr( "ADSR Target" ) ); + m_adsrTarget->setLabel( tr( "ADSR Target" ) ); + m_adsrTarget->setHintText( tr( "ADSR Target:" ) + " ", "" ); + + h1->addWidget( m_index ); + h1->addWidget( m_crossfade ); + + h2->addWidget( m_lfoSpeed ); + h2->addWidget( m_lfoDepth ); + + h3->addWidget( m_adsrTarget ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +wurleyInstrumentView::~wurleyInstrumentView() +{ +} + + + + +void wurleyInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + wurleyInstrument * inst = castModel(); + m_index->setModel( inst->model()->index() ); + m_crossfade->setModel( inst->model()->crossfade() ); + m_lfoSpeed->setModel( inst->model()->lfoSpeed() ); + m_lfoDepth->setModel( inst->model()->lfoDepth() ); + m_adsrTarget->setModel( inst->model()->adsrTarget() ); +} + + + diff --git a/plugins/stk/voices/wurley/wurley_instrument_view.h b/plugins/stk/voices/wurley/wurley_instrument_view.h new file mode 100644 index 000000000..a021833f4 --- /dev/null +++ b/plugins/stk/voices/wurley/wurley_instrument_view.h @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _WURLEY_INSTRUMENT_VIEW_H +#define _WURLEY_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "wurley_instrument.h" + + +class wurleyInstrumentView: public stkInstrumentView +{ +public: + wurleyInstrumentView( wurleyInstrument * _instrument, QWidget * _parent ); + virtual ~wurleyInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_index; + knob * m_crossfade; + knob * m_lfoSpeed; + knob * m_lfoDepth; + knob * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/wurley/wurley_model.cpp b/plugins/stk/voices/wurley/wurley_model.cpp new file mode 100644 index 000000000..8d12e23ed --- /dev/null +++ b/plugins/stk/voices/wurley/wurley_model.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "wurley_model.h" + + +wurleyModel::wurleyModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _index, + StkFloat _crossfade, + StkFloat _lfo_speed, + StkFloat _lfo_depth, + StkFloat _adsr_target ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_index( new floatModel( _index, 0.0f, 128.0f, 0.1f, this ) ), + m_crossfade( new floatModel( _crossfade, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoSpeed( new floatModel( _lfo_speed, 0.0f, 128.0f, 0.1f, this ) ), + m_lfoDepth( new floatModel( _lfo_depth, 0.0f, 128.0f, 0.1f, this ) ), + m_adsrTarget( new floatModel( _adsr_target, 0.0f, 128.0f, 0.1f, this ) ) +{ +} + + + + +wurleyModel::~wurleyModel() +{ + delete m_index; + delete m_crossfade; + delete m_lfoSpeed; + delete m_lfoDepth; + delete m_adsrTarget; +} + + + + +void FASTCALL wurleyModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_index->saveSettings( _doc, _parent, "index" ); + m_crossfade->saveSettings( _doc, _parent, "crossfade" ); + m_lfoSpeed->saveSettings( _doc, _parent, "lfospeed" ); + m_lfoDepth->saveSettings( _doc, _parent, "lfodepth" ); + m_adsrTarget->saveSettings( _doc, _parent, "adsrtarget" ); +} + + + + +void FASTCALL wurleyModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_index->loadSettings( _this, "index" ); + m_crossfade->loadSettings( _this, "crossfade" ); + m_lfoSpeed->loadSettings( _this, "lfospeed" ); + m_lfoDepth->loadSettings( _this, "lfodepth" ); + m_adsrTarget->loadSettings( _this, "adsrtarget" ); +} + diff --git a/plugins/stk/voices/wurley/wurley_model.h b/plugins/stk/voices/wurley/wurley_model.h new file mode 100644 index 000000000..949b1f0cf --- /dev/null +++ b/plugins/stk/voices/wurley/wurley_model.h @@ -0,0 +1,86 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _WURLEY_MODEL_H +#define _WURLEY_MODEL_H + +#include "stk_model.h" + + +class wurleyModel: public stkModel +{ +public: + wurleyModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _index = 64.0f, + StkFloat _crossfade = 64.0f, + StkFloat _lfo_speed = 64.0f, + StkFloat _lfo_depth = 64.0f, + StkFloat _adsr_target = 64.0f ); + ~wurleyModel(); + + inline floatModel * index( void ) const + { + return( m_index ); + } + + inline floatModel * crossfade( void ) const + { + return( m_crossfade ); + } + + inline floatModel * lfoSpeed( void ) + { + return( m_lfoSpeed ); + } + + inline floatModel * lfoDepth( void ) const + { + return( m_lfoDepth ); + } + + inline floatModel * adsrTarget( void ) const + { + return( m_adsrTarget ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_index; + floatModel * m_crossfade; + floatModel * m_lfoSpeed; + floatModel * m_lfoDepth; + floatModel * m_adsrTarget; +}; + +#endif diff --git a/plugins/stk/voices/wurley/wurley_processor.cpp b/plugins/stk/voices/wurley/wurley_processor.cpp new file mode 100644 index 000000000..7d989e880 --- /dev/null +++ b/plugins/stk/voices/wurley/wurley_processor.cpp @@ -0,0 +1,51 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "wurley_processor.h" +#include "config_mgr.h" + + +wurleyProcessor::wurleyProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +wurleyProcessor::~wurleyProcessor() +{ +} + + + + +void wurleyProcessor::setControls( wurleyModel * _model ) +{ + voice()->controlChange( 2, _model->index()->value() ); + voice()->controlChange( 4, _model->crossfade()->value() ); + voice()->controlChange( 11, _model->lfoSpeed()->value() ); + voice()->controlChange( 1, _model->lfoDepth()->value() ); + voice()->controlChange( 128, _model->adsrTarget()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/wurley/wurley_processor.h b/plugins/stk/voices/wurley/wurley_processor.h new file mode 100644 index 000000000..e84a8ac46 --- /dev/null +++ b/plugins/stk/voices/wurley/wurley_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _WURLEY_PROCESSOR_H +#define _WURLEY_PROCESSOR_H + +#include "Wurley.h" + +#include "stk_processor.h" + +#include "wurley_model.h" + +class wurleyProcessor: public stkProcessor +{ +public: + wurleyProcessor( sample_rate_t _sample_rate ); + ~wurleyProcessor( void ); + + void setControls( wurleyModel * _model ); +}; + +#endif

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 + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "engine.h" +#include "note_play_handle.h" + +#include "bandedwg_instrument.h" +#include "bandedwg_instrument_view.h" +#include "bandedwg_processor.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embedded_resources.h" + + +extern "C" +{ + +plugin::descriptor bandedwg_plugin_descriptor = +{ + STRINGIFY_PLUGIN_NAME( PLUGIN_NAME ), + "Banded Wave Guide", + QT_TRANSLATE_NOOP( "pluginBrowser", + "Bowed or struck objects" ), + "Danny McRae ", + 0x0100, + plugin::Instrument, + new QPixmap( PLUGIN_NAME::getIconPixmap( "logo" ) ), + NULL +} ; + +} + + +bandedWGInstrument::bandedWGInstrument( instrumentTrack * _channel_track ): + stkInstrument( _channel_track, &bandedwg_plugin_descriptor ) +{ + model()->bowPressure()->setTrack( _channel_track ); + model()->bowPosition()->setTrack( _channel_track ); + model()->vibratoFrequency()->setTrack( _channel_track ); + model()->vibratoGain()->setTrack( _channel_track ); + model()->bowVelocity()->setTrack( _channel_track ); + model()->setStrike()->setTrack( _channel_track ); + model()->sound()->setTrack( _channel_track ); +} + + + + +bandedWGInstrument::~bandedWGInstrument() +{ +} + + + + +QString bandedWGInstrument::nodeName( void ) const +{ + return( bandedwg_plugin_descriptor.name ); +} + + + + +pluginView * bandedWGInstrument::instantiateView( QWidget * _parent ) +{ + return( new bandedWGInstrumentView( this, _parent ) ); +} + + + + +extern "C" +{ + +// neccessary for getting instance out of shared lib +plugin * lmms_plugin_main( model * _model, void * _data ) +{ + return( new bandedWGInstrument( static_cast( _data ) ) ); +} + + +} + + diff --git a/plugins/stk/voices/bandedwg/bandedwg_instrument.h b/plugins/stk/voices/bandedwg/bandedwg_instrument.h new file mode 100644 index 000000000..4befeca2f --- /dev/null +++ b/plugins/stk/voices/bandedwg/bandedwg_instrument.h @@ -0,0 +1,46 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BANDEDWG_INSTRUMENT_H +#define _BANDEDWG_INSTRUMENT_H + +#include "stk_instrument.h" + +#include "bandedwg_processor.h" +#include "bandedwg_model.h" + + +class bandedWGInstrument : public stkInstrument +{ +public: + bandedWGInstrument( instrumentTrack * _channel_track ); + virtual ~bandedWGInstrument( void ); + + QString nodeName( void ) const; + + pluginView * instantiateView( QWidget * _parent ); +}; + +#endif diff --git a/plugins/stk/voices/bandedwg/bandedwg_instrument_view.cpp b/plugins/stk/voices/bandedwg/bandedwg_instrument_view.cpp new file mode 100644 index 000000000..fb231b404 --- /dev/null +++ b/plugins/stk/voices/bandedwg/bandedwg_instrument_view.cpp @@ -0,0 +1,121 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include "bandedwg_instrument_view.h" + +#include +#include + +#include "engine.h" +#include "gui_templates.h" + +#undef SINGLE_SOURCE_COMPILE +#include "embed.cpp" + + +bandedWGInstrumentView::bandedWGInstrumentView( bandedWGInstrument * _instrument, QWidget * _parent ) : + stkInstrumentView( _instrument, _parent ) +{ + QVBoxLayout * vl = new QVBoxLayout( m_topView ); + QHBoxLayout * h1 = new QHBoxLayout; + QHBoxLayout * h2 = new QHBoxLayout; + QHBoxLayout * h3 = new QHBoxLayout; + + m_bowPressure = new knob( knobSmall_17, m_topView, tr( "Pressure" ) ); + m_bowPressure->setLabel( tr( "Bow Pressure" ) ); + m_bowPressure->setHintText( tr( "Pressure:" ) + " ", "" ); + + m_bowPosition = new knob( knobSmall_17, m_topView, tr( "Position" ) ); + m_bowPosition->setLabel( tr( "Bow Position" ) ); + m_bowPosition->setHintText( tr( "Position:" ) + " ", "" ); + + m_vibratoFrequency = new knob( knobSmall_17, m_topView, tr( "Vib Freq" ) ); + m_vibratoFrequency->setLabel( tr( "Vibrato Frequency" ) ); + m_vibratoFrequency->setHintText( tr( "Vib Freq:" ) + " ", "" ); + + m_vibratoGain = new knob( knobSmall_17, m_topView, tr( "Vib Gain" ) ); + m_vibratoGain->setLabel( tr( "Vibrato Gain" ) ); + m_vibratoGain->setHintText( tr( "Vib Gain:" ) + " ", "" ); + + m_bowVelocity = new knob( knobSmall_17, m_topView, tr( "Bow Vel" ) ); + m_bowVelocity->setLabel( tr( "Bow Velocity" ) ); + m_bowVelocity->setHintText( tr( "Velocity" ) + " ", "" ); + + m_setStrike = new knob( knobSmall_17, m_topView, tr( "Strike" ) ); + m_setStrike->setLabel( tr( "Set Strike" ) ); + m_setStrike->setHintText( tr( "Strike" ) + " ", "" ); + + m_sound = new knob( knobSmall_17, m_topView, tr( "Instrument" ) ); + m_sound->setLabel( tr( "Instrument" ) ); + m_sound->setHintText( tr( "Instrument" ) + " ", "" ); + + h1->addWidget( m_bowPressure ); + h1->addWidget( m_bowPosition ); + + h2->addWidget( m_vibratoFrequency ); + h2->addWidget( m_vibratoGain ); + + h3->addWidget( m_bowVelocity ); + h3->addWidget( m_setStrike ); + h3->addWidget( m_sound ); + + vl->addLayout( h1 ); + vl->addLayout( h2 ); + vl->addLayout( h3 ); + + setAutoFillBackground( TRUE ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); +} + + + + +bandedWGInstrumentView::~bandedWGInstrumentView() +{ +} + + + + +void bandedWGInstrumentView::modelChanged( void ) +{ + stkInstrumentView::modelChanged(); + + bandedWGInstrument * inst = castModel(); + m_bowPressure->setModel( inst->model()->bowPressure() ); + m_bowPosition->setModel( inst->model()->bowPosition() ); + m_vibratoFrequency->setModel( inst->model()->vibratoFrequency() ); + m_vibratoGain->setModel( inst->model()->vibratoGain() ); + m_bowVelocity->setModel( inst->model()->bowVelocity() ); + m_setStrike->setModel( inst->model()->setStrike() ); + m_sound->setModel( inst->model()->sound() ); +} + + + diff --git a/plugins/stk/voices/bandedwg/bandedwg_instrument_view.h b/plugins/stk/voices/bandedwg/bandedwg_instrument_view.h new file mode 100644 index 000000000..f99b86c77 --- /dev/null +++ b/plugins/stk/voices/bandedwg/bandedwg_instrument_view.h @@ -0,0 +1,53 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef _BANDEDWG_INSTRUMENT_VIEW_H +#define _BANDEDWG_INSTRUMENT_VIEW_H + +#include "knob.h" + +#include "stk_instrument_view.h" +#include "bandedwg_instrument.h" + + +class bandedWGInstrumentView: public stkInstrumentView +{ +public: + bandedWGInstrumentView( bandedWGInstrument * _instrument, QWidget * _parent ); + virtual ~bandedWGInstrumentView( void ); + +private: + virtual void modelChanged( void ); + + knob * m_bowPressure; + knob * m_bowPosition; + knob * m_vibratoFrequency; + knob * m_vibratoGain; + knob * m_bowVelocity; + knob * m_setStrike; + knob * m_sound; +}; + +#endif diff --git a/plugins/stk/voices/bandedwg/bandedwg_model.cpp b/plugins/stk/voices/bandedwg/bandedwg_model.cpp new file mode 100644 index 000000000..1d8de189e --- /dev/null +++ b/plugins/stk/voices/bandedwg/bandedwg_model.cpp @@ -0,0 +1,98 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "bandedwg_model.h" + + +bandedWGModel::bandedWGModel( bool _monophonic, + StkFloat _portamento, + StkFloat _bend, + StkFloat _bend_range, + bool _velocity_sensitive_lpf, + StkFloat _velocity_sensitive_q, + StkFloat _volume, + StkFloat _pan, + StkFloat _spread, + StkFloat _bow_pressure, + StkFloat _bow_position, + StkFloat _vibrato_frequency, + StkFloat _vibrato_gain, + StkFloat _bow_velocity, + StkFloat _set_strike, + StkFloat _sound ): + stkModel( _monophonic, _portamento, _bend, _bend_range, _velocity_sensitive_lpf, _velocity_sensitive_q, _volume, _pan, _spread ), + m_bowPressure( new floatModel( _bow_pressure, 0.0f, 128.0f, 0.1f, this ) ), + m_bowPosition( new floatModel( _bow_position, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoFrequency( new floatModel( _vibrato_frequency, 0.0f, 128.0f, 0.1f, this ) ), + m_vibratoGain( new floatModel( _vibrato_gain, 0.0f, 128.0f, 0.1f, this ) ), + m_bowVelocity( new floatModel( _bow_velocity, 0.0f, 128.0f, 0.1f, this ) ), + m_setStrike( new floatModel( _set_strike, 0.0f, 128.0f, 0.1f, this ) ), + m_sound( new floatModel( _sound, 0.0f, 3.0f, 1.0f, this ) ) +{ +} + + + + +bandedWGModel::~bandedWGModel() +{ + delete m_bowPressure; + delete m_bowPosition; + delete m_vibratoFrequency; + delete m_vibratoGain; + delete m_bowVelocity; + delete m_setStrike; + delete m_sound; +} + + + + +void FASTCALL bandedWGModel::saveSettings( QDomDocument & _doc, QDomElement & _parent ) +{ + stkModel::saveSettings( _doc, _parent ); + m_bowPressure->saveSettings( _doc, _parent, "bowpressure" ); + m_bowPosition->saveSettings( _doc, _parent, "bowgain" ); + m_vibratoFrequency->saveSettings( _doc, _parent, "vibratofrequency" ); + m_vibratoGain->saveSettings( _doc, _parent, "vibratogain" ); + m_bowVelocity->saveSettings( _doc, _parent, "bowvelocity" ); + m_setStrike->saveSettings( _doc, _parent, "setstrike" ); + m_sound->saveSettings( _doc, _parent, "sound" ); +} + + + + +void FASTCALL bandedWGModel::loadSettings( const QDomElement & _this ) +{ + stkModel::loadSettings( _this ); + m_bowPressure->loadSettings( _this, "bowpressure" ); + m_bowPosition->loadSettings( _this, "bowposition" ); + m_vibratoFrequency->loadSettings( _this, "vibratofrequency" ); + m_vibratoGain->loadSettings( _this, "vibratogain" ); + m_bowVelocity->loadSettings( _this, "bowvelocity" ); + m_setStrike->loadSettings( _this, "setstrike" ); + m_sound->loadSettings( _this, "sound" ); +} + diff --git a/plugins/stk/voices/bandedwg/bandedwg_model.h b/plugins/stk/voices/bandedwg/bandedwg_model.h new file mode 100644 index 000000000..fd65b7bcf --- /dev/null +++ b/plugins/stk/voices/bandedwg/bandedwg_model.h @@ -0,0 +1,100 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BANDEDWG_MODEL_H +#define _BANDEDWG_MODEL_H + +#include "stk_model.h" + + +class bandedWGModel: public stkModel +{ +public: + bandedWGModel( bool _monophonic = FALSE, + StkFloat _portamento = 0.0f, + StkFloat _bend = 0.0f, + StkFloat _bend_range = 2.0f, + bool _velocity_sensitive_lpf = TRUE, + StkFloat _velocity_sensitive_q = 0.5f, + StkFloat _volume = 1.0f, + StkFloat _pan = 0.0f, + StkFloat _spread = 0.0f, + StkFloat _bow_pressure = 64.0f, + StkFloat _bow_position = 64.0f, + StkFloat _vibrato_frequency = 64.0f, + StkFloat _vibrato_gain = 64.0f, + StkFloat _bow_velocity = 64.0f, + StkFloat _set_strike = 64.0f, + StkFloat _sound = 0.0f ); + ~bandedWGModel(); + + inline floatModel * bowPressure( void ) const + { + return( m_bowPressure ); + } + + inline floatModel * bowPosition( void ) const + { + return( m_bowPosition ); + } + + inline floatModel * vibratoFrequency( void ) const + { + return( m_vibratoFrequency ); + } + + inline floatModel * vibratoGain( void ) const + { + return( m_vibratoGain ); + } + + inline floatModel * bowVelocity( void ) const + { + return( m_bowVelocity ); + } + + inline floatModel * setStrike( void ) const + { + return( m_setStrike ); + } + + inline floatModel * sound( void ) const + { + return( m_sound ); + } + + void FASTCALL saveSettings( QDomDocument & _doc, QDomElement & _parent ); + + void FASTCALL loadSettings( const QDomElement & _this ); + +private: + floatModel * m_bowPressure; + floatModel * m_bowPosition; + floatModel * m_vibratoFrequency; + floatModel * m_vibratoGain; + floatModel * m_bowVelocity; + floatModel * m_setStrike; + floatModel * m_sound; +}; + +#endif diff --git a/plugins/stk/voices/bandedwg/bandedwg_processor.cpp b/plugins/stk/voices/bandedwg/bandedwg_processor.cpp new file mode 100644 index 000000000..fef8f88bb --- /dev/null +++ b/plugins/stk/voices/bandedwg/bandedwg_processor.cpp @@ -0,0 +1,53 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "bandedwg_processor.h" +#include "config_mgr.h" + + +bandedWGProcessor::bandedWGProcessor( sample_rate_t _sample_rate ): + stkProcessor( _sample_rate ) +{ +} + + + + +bandedWGProcessor::~bandedWGProcessor() +{ +} + + + + +void bandedWGProcessor::setControls( bandedWGModel * _model ) +{ + voice()->controlChange( 2, _model->bowPressure()->value() ); + voice()->controlChange( 4, _model->bowPosition()->value() ); + voice()->controlChange( 11, _model->vibratoFrequency()->value() ); + voice()->controlChange( 1, _model->vibratoGain()->value() ); + voice()->controlChange( 128, _model->bowVelocity()->value() ); + voice()->controlChange( 64, _model->setStrike()->value() ); + voice()->controlChange( 16, _model->sound()->value() ); + m_delayRead = m_delayWrite - static_cast( _model->spread()->value() ); +} diff --git a/plugins/stk/voices/bandedwg/bandedwg_processor.h b/plugins/stk/voices/bandedwg/bandedwg_processor.h new file mode 100644 index 000000000..ed147b53d --- /dev/null +++ b/plugins/stk/voices/bandedwg/bandedwg_processor.h @@ -0,0 +1,42 @@ +/* + * + * Copyright (c) 2008 Danny McRae + * + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#ifndef _BANDEDWG_PROCESSOR_H +#define _BANDEDWG_PROCESSOR_H + +#include "BandedWG.h" + +#include "stk_processor.h" + +#include "bandedwg_model.h" + +class bandedWGProcessor: public stkProcessor +{ +public: + bandedWGProcessor( sample_rate_t _sample_rate ); + ~bandedWGProcessor( void ); + + void setControls( bandedWGModel * _model ); +}; + +#endif diff --git a/plugins/stk/voices/bandedwg/logo.png b/plugins/stk/voices/bandedwg/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20a6081015e8b76b4f4e96a40f8c624e5aaeb64c GIT binary patch literal 890 zcmV-=1BLvFP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iO4z z76CcTyF*|A00R0+L_t(&-tCuNXpUhR$N&4;%#hD~)Mm=ph7?Eh5h2az5iw502@WWx zq!cx3lBBlQlF|+okrS-pz)qMrkPvp_YcU@+8_TfWuaoPor^oAkpNIFrbpPw=eeUc2 z-~a2rp8LM9>wcww5H&S5In~wGIqI*dtE=n3llSoO@bK{P@bK{HKltU|4U|aQENPLX z5=p})B_w^6)GDb(Qlq5X&bb6|L(;N8@cmiR2OX`#~DrpbRZIGk}NgE{f zN!lIk90Jq>eLy0@Gsecfi^vZ@H$#(KZ}w}cq6NkQcZ|~stdOK!>&%yQUDA9>PbAe! zYL@g;Qjesek|s);Eorf&DbBeMlH{Blm%`b2NpB^6a?Xv6xFYlHw+xuRuikEHr zU{c`x?Mo+e1X!EF(P-d-iS13p+i0B2F$>tk-}JAxtk?@I$+Tzh0o#D7K%Q-xQeY48 z#yF3Ff;1C4YP`cS3)rbNoT@;IElfq|ig^9Ko9V6;sG#d&7O<@u&egSK1_biLgz5H` z&)XO7uqEpTo&y(w3LrPagxbx~ $@ + +EXTRA_DIST = $(EMBEDDED_RESOURCES) + + +CLEANFILES = $(MOC_FILES) ./embedded_resources.h + + + +pkglib_LTLIBRARIES = libblowbottle.la + +libblowbottle_la_SOURCES = blow_bottle_model.cpp \ + blow_bottle_model.h \ + blow_bottle_processor.cpp \ + blow_bottle_processor.h \ + blow_bottle_instrument.cpp \ + blow_bottle_instrument.h \ + blow_bottle_instrument_view.cpp \ + blow_bottle_instrument_view.h \ + $(top_srcdir)/plugins/stk/voices/src/stk_model.cpp \ + stk_model.h + + + +libblowbottle_la_LDFLAGS = -L@stk_lib@ -lstk -Wl,-export-dynamic + +$(libblowbottle_la_SOURCES): ./embedded_resources.h diff --git a/plugins/stk/voices/blow_bottle/artwork.png b/plugins/stk/voices/blow_bottle/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..3e33f5ba7bf5eb0444004207168a405a42412eb5 GIT binary patch literal 71988 zcmXt91z1#Fw;sA-2$gOS5RsM`T3Qg059yE&X^`%Yp+UMqL_!ehMnGx^rMq!Jy6bN4 z^ZZK45%kR2Yp?azj#N{XC%~n|g+L$#iVCkZz~`%ncWg}XF=AI&417Xy(U6yhRE|*Z zfG;rLE6cxv+&}!zYb{LzS8yB^bX*`1Jkp1E6i7xEIk<@Bs;DB1HI0h$7+X<0$cnS3TDkw;q-l-3_Kl+1L(V2DfKJpt5!{c9gz_!_;+TWkiXEHQ*0 zUq-Y1&#}exli3A-<=m}n@nj80YAh+Jq|&e4HwXrVi$_i$l1w^}4fhUqW#=_=;%7qM zYf`P z{8bHSFtX`}dYoStg`N)~%^u1*NS_jvn7Ci1fhz^Y_hnsp)8`a#PH|5N(VzNruANY1)cwc&6;x_I*eq748;YkbrulB;N9CHe#Vv_cp#khZs7jx~m zbBqX@USo1u#V9bOuud$U*v=f!B1HQd&ABM79^(JRvKxG64f*cxUuHj z9*g*xg(#`x9&n1z=oHfzw}K& zVG1tM3@lI^9T^W^!)~+GN$qx{5%)Q1@w#oh^X>~=Yf?yjCGmon`Re_&)o3GnfKAMx^@i7_q&%yhcBml0U#FhnR) z1lkpd6p1iB;>bUw6?WKUR*c^g_O9m~yfA65jMiWeLV79GgiNKClzDza?IKo~K)-E> zlYaDB>)F<@?)IG{nK_|L>XsdLQSzoZS{H>Kb=2rMzj@)RCoPqQXvP7I$b_8Gvx0Nb z<2WJhH{x4>DPb&IN4Op~N)+`@t|Pj!AybHC;h1FYj2V+6)?1EWR0)2BkWh^P;axJ8 z-LphgR1D0;IKpQX*u}rqPRu0Y7RC}jeBIe18=DSGxNCl$Xo6j~ObBF+Qe8^ccO z6cviUGbGQVAWuEKhARtc&~e*7y3)w1gRS-3Mj$3OHeai}%S~)|cejIyh`u;vJPbX^ zKFsmL;u-sj2yKnN-p4+-{3z5er{(nMU&G!zcwEa~!Qo1H&M}XesLGP1%QPvq&B=Cm zcA>J~bhqNxN|~<_9@`{3xjo?y-#rJ2+jkJ2s zWRmX*?elRLMYaZYx1kzrZww2SR*G@5QEm+}aK(*tkcYQZn3L3;wKJ{_uQ5Ah)$zyU z`BhGPUtWiFTdxr(F;g6+s*|O2kB27DcGT%U|33GDKT`#KJh}G$T2WzQYm0a5m)kwH za2*g6-}<6oZJO|}zLC3)l5L^499HIj_~}a@{}={}tH!#=*R7!&%>J`p{X#QKPh@h} zI-GjqD1=2RYbE?$UCFM`_xq^0nqy)wqhGXP#}U$Ph`26?IY*#^vT8h3Z5#^kg7IRW zsSwHdPjgV=v4u#cmVge_&DVsD`>Z$-+9joqA6^;SIFo+p+_=9srmzh&|U zwbMg};Ze~gjgAej=e94_V*^JU7xAy5e)6eVj2KhL%j9;&Y`6-=LYzf)n=_EN@w`}h zOL5Y^M`z8)AH3SE6FUTiU31LUFq-uhNWDZs-$i%mg{5t~if9`d^$iT*s^-8VYb_B4 zGj;_NJNO^8d5xQiP7xy95_8?|Qn zf7u+LS|S$plv)|0QSAfa>UcrRK4 z-j=H7|FQY@mcg-BpQ})-+{D#2nI`Z9q<>V+@3ru^+YA)!ZOMq0?jLie`y#^7UhQYa zLUq-#4XuQt9M$LTu{s_(FHgLi7Nx#F4L>_qW2@x%lO^2L51+q#SN^BEr6mSb2f2%j z%V(|f>G}EJ>NDHhY)05L{X_JryolkF-;EaKf27-&`bx!5%UpEZZ0dr7v4~cF%-MHe zT#!QoPfy)$e&ycafQfOpFLCc8iJkqDJ+vVg1!LKZs}SirdJK~%55t60&y!`>vNxcI zkweEG%^vr|yQRxoqNBJp)|?>GoPx_5J(zs7!T~1sXWT8aPr=`Y1+^ zO1vd%k1i^GU6~A&_fUd=m5&po!2E|pDVyUHWgMFv)X6ehw+>ebeCWoVbwOL)I6KkN zNtI#8VR>Xq-&DZ3(nRQkkk2Sil}cmN>{LIDN9i^mhIVVC-ntk73~(fZbKg(E#V0Bn zY*W{3nI1SjJgm}YMHO3wWxhntfUcS=eoNX7cW(|Z&GEvm(86oK%xuRgCNuQEb%S&a z4dFWvddaGXeAeXMHUj{JeBl&E1nwMe%2w8igUhg^tV<6bHs#P;FVpdBwqmFp@lp{d zBK{Q1{5h8xc4x5!1A20)jDhtyyiH0G?PbT=*_mhUW7NcCjajxQp>lems}U$!GRO!i zMVt*bO^!$6j_4gTEK)~TA;zTI^2GEh%h(N!@d@~;$R?{gT_MjSX1|j{x|QNIL+R3q zu>_^Ekg^@?Aq2wI#s>H8+qdKt6jF`)a%Gy6pZ!og+WLBPWwc415~Ua=`38A~DhoS} zYTcW1x%0Ghwj6Qdcz2j-N??O1C=GBt#Ce#s1v^Ut+bW{SRRhvLeEvheo~Rlrgzq>} zH{HQ3tmEZyyguUk=|RlYM2;%N`2=Ju)AK|db4RR0sn{7i#= zmN%}eJvfk#NAL6l&)d#hTR!uv91igzmUF!SbsnzujqRT?8cIdC@RL7$=nhnkPggE9B*L)v^AYv<`q1Q~4$x z#Var%t3rY~s#HWMC?;Yr5XZ|RT=!z0)S04E#=1~+G;xd&RnejS2XN^L)%2?)G)gT| z7$;LwjCG+xzr8qI^EmqT^jl3$m)qjZj1DI!r?I>H<5Mph@b*UugRi#sQ+hghtefXr z7P(L^b*{AVzxUs@cuP+11&M;&u5R1hBFL!w)}Xo4=3TG0+Y%VqQj}uYAJqhCCaSy4 zX^%F2;AB$fE7FMq0I74t#iL~X^AYtpwSM!+h`HrpXPG`j1Zvw8xT3OIj_C(eG^cs_ z(uq)HlgM*-gB}2rI-?7$j03-l82Q*1O!`!nevo%)XlQve)1fzkNj`py zL`l(Sl{7aXndIZ5=hJYt-20m?r<)6>n}O5zp!>8Ym%zM%BUo!)mz14MUFCUv@hO2N~?ZogM4lxq70(!9lPUUq~vsT zeJ3aUHg%L#aKrYvq9yrC{zZo4*K2Z*>31^zs*uTDjc#aon={aJI^aO+Y(5z4^DK+v zL*5W|x+XogbZt&Nkx}7T$LuU+j{lt}SflQ9--q6`zu2m6sN37Kjt&;)%O4K9 z6K?!5JHfF%_XOt1NGs-=*MxuiOai+EOPGs8{vwrBa?JH7Yhu}3;m$f=G@-{_?}SaC zRU!-K_Kp^r7vpc*EH||&#?~oUXmaT5M6P{e z`T|3^p{H#*qCIIGNZ29?2xj9z>HYP!>ON)0zhgERDsWyp3k$^zCOP-K6}bCTi|LV^$YQ~$}t@D`I18u(as zJm=QRWdDj8s}-vH#&5=!!7S_84x5ck;lMtXAhaU;jZwYdJ9T2x=7`}qh^M(^(iN9+hV3L;S}k<=9Cn5C=_7snb?4qs0EX z8m~h2mKWx!3w;PzA&O+x6jhDu*3}oS@=sY=X0-f=pZfaxz*BF#t#Bx0!<}~?eBN-m znK^T`0RH50(24c!+qcfeP_=V_r+~QdG{*xqoRFqV`9*7peSNfjY4pC|c{3!SzU{PP zdT~)O0sHVYI)9wtFh3IQwYoA{Sku`qHa77#H*NsZb9W}hgufySR@NHB0Zm~~MUp;U79xE7__5=d>=P4DPl~m*HMX=tZC%~295HWhVc|&FRGBe# zpO2boHlg>K5L~#g$ot>rA~eAIoo&Nw7V66N>8ubTcx?FDGWW1HBh@NdfByLo>qawU zbad+ISzR#3wwnaSgb~hMq`gi)${(?ucW+# zuMMU1ZJ%C)`T@GkADc%ysrgI$Ot`4<_!gTA8_oto3OChC7cyzQ$ebo;XADTSC4$xm zV3iF#g;jD1k1K1R({iJqfN3PY3Kptrb&qO=Z9IQL=S=}|{PW+tonb4OO7p_zEYHT{ z4UI^maU#D1v~^E7vZ|dH;BxMKEBF&b4;1C-=!TVd_5mE<`;Kl_i^{b;t1$?V*8^LE!onPx+f=&?+qpklm!O32{5`8s`^~S zM#etpR76RiGk@Yx%3+T0otTDbQlG1|iLmMIj3>fh^}pS|nXn8qE}iIo)(2l{+{%$D zo#>pOrzWHp3MejSAw(z_la!Q{s8wi^jz$yDvk{i$(b_tb-kgqJF_TO2vtW{0;r!QGQ0<{`Jk*GJKn~q_XwN{qq&dk*2#F zsib(!ZL%V2ZfJ2L7z6r>>S6Sop0uNX9--1O{B2*;3=(=QO&>|h#-6@L5=yL8Jg!!o zglzh($$=dVF)Y(u9hFuT=rMDl!NT~%K!c^Hrzc`&sQ;=_bMm)B?aInuq%}scca~oKwXDw?nJUn}l3PO+6m9Vp%G=MLy$h z22e@lwYURyW@eRby<}>!0?A&&NS1IcUF!j=ySuwu`5$gRzF?(Bd~=v}nPwLl{K*>A zv$Lz+b6~h2Pe*OQh&lBTtJ6)HKqHr)()LX*{M7UNgwKZCi5ia1-pbA??vqi{UyC1^ zzt2l@1ODu@ivd{=o*wU{gO;Ya^?C_iP~n0B03CNPkO7c_e4L7Drl|-d@&`95K8pHy$yuSnxtjtvxABO-(;#Wc3{7h)vg85}^kODbg4BY;Lkr z#$t->5neg@M|cye)y7-*@W6a>j||@a%8Lr)O(3Ab#PyBD+-; z_@-PKbg_X6slD8w4)UgzezCswrZ+bSLu@UF=e>KT=M+R z5xF?KcP?g zFFy}aJ?H5UM)@06dN_@JsbW-@D~t0BZ*nR2y&aP7|IT4Vm61On9j87JG-*XBy3Fm^ z`mmjs&3v5G)rmD=O@KN+4DtsBswYHl`pM(R+%H836G8`ET)o96$|hwJdx5l?ltg*} zlL>vEvP{_;+=hdsipBJ5T~x#4aDi?w$E))~3broU(v-=||so}MmS0@!ilPI#_q)?rD;bWSJD$zCQGMMZe}|+5dSYp4UX>p5Rf$AuKoRy!6nkK-Ll}>Pnd5r>F`TLFYr*pZcqo0z1tAkUU2BA%-p`C zaS~S6r;QwA0s%jgNu1i_=&`wZd4p6-yXATX_S2NnpcVta5At)1*ABdS5;zd*Wyw4u zA~yK7(pFv!;6{5aC9Y?H5L;OG8y_mmfQN3Sl_vMhU@G(@d=tas;1k|^BDswc>H1t& zYhKOV`r}v4@0zOzRNWi9D@(_1aSqopZ{No=kzNhukOycs(Iij)Xm+ux&%p9c&8E#F zvSon$`4?$%RTDY1>*sKE_CpQL)2>z66{4I;0YyVIcg5Hx>pq47#CU@=jaylfrwv3l z3At`VD;rjEAIkfW(xWG|4e^~qU6_=j1YaG#7LHjN1MLxuO9--pODJsJO{&Q94;hwi zQ6AZ|jBP?LH88KqM*RdlnR9Fp^Ez?D>X3}6q)@CpqUvZC~jh*S(GbuTKxJG z{$-c4{uYs%UeMxvuG{U{5t5|kXL~$T9FLtHUx=ZEqnZtiEPT-x0RS(cByxYE3nYs* zEV$jgZSlUa0hU?a)<(#}0`4B{(s(l*m_WQ()Eaq(ma@y>OBa`704Z#{d1qAGVn0p(!mJpyxAz>hx#i`~XxFD{<1FR<`~>RF7Tebu z=<7n$_WYogMrzes7yWYHOCdOuQlGrK68TYI-`FJM{U`*kH&R*so%okWm`Ol-It5oF zPQIv6<}fRrg=!!!J%?-re!oHx)v1?np1kBVMZoCa)mjR_-$R;QX?5NBsMw?eNOwIf z+7!$a*0EE4T%zLS*T3`H9FI_~6L^oxSxTr=+obX<;+e-@)qd+{8_y#;ZKB#Y(^JW= zYSLG&nNfN5D*uQu@|z?Cyv`Gn5hP9DihYq#q`ttk0z zC+HTz#d6h3OF7KC+7Nfy=oz9OQlKVR*kQ7o46i&kIm9s$Q5jx|^A<~fX1?Zw=K*(I zzT$ezB9^3F%~;~;qBk_Ar9Nh8lx7Cu7J`~UDaTdvNWyp@|A%d26LlN3!TG-|z@pk* zPDPIO$HyDITi7yGSi@+kyz=V!lV-L7I1m$U3KGqtgOP9OT(GGPGO2Wx;$-QJEhwXa zM`+1L&I?;&crd?e;~PDleRE|V48M+bYOS7MF6fvz|IWSC!ul%idqe)oQAQQCc1%f= zVFXwdMuL|1$Z{kr5Q+*EQsDcr5{w!)%pn;Le972GZR*B$Tt{u{6D%n>TwJgTlt<5D z-($3>4>?_5B{|zjc?u9K0N|%v@fhf1tWTe+{34~kw8ARb*DD+|^I}_}Z5EwEecQ{C zq9oK<6O^4zbI}$zlTKm3{;N1-%jT;zd+bTQD1e4IMaZX=X2-sCds=w0axz>0;Dr>C z36&Y6ZBL~0^vm+5_D#Jlu`)CDrt2Lf9&bKrzzI(YeEmiYf18avk0aM>PXJ)1-tR3m z2HCTVi-9i%1$*%@0veXK4tQVYFw_y+B{FAa5{0n8c4b8By1; z`48Yt;Mn1F-Ac&Hd$v1h+VnslrG2u1^FcJ-R2I;ZsTt)HoV4sXeY)4jdwp%a@qnNw z-@ITkdu-KeFId^F(J$T1gh}9wkTJ>XRV_q8xQ)d!eyyk~oI=*58V3eiNmHLQgrKEw zVRu6Wm>OHb00JbH^Ti7$6;in(gDKhO1v&CC?C$u%=#1RF7^r2WCtBr7jx9?zv6(0Q z^i+WJ`3uvfHs8;lO!|TJ^FakuiSOQ{s4<}1q(oUipR}F>nr5)iNqWd+>8<#xpOGjU zsft@OO_o@57*Jw?OT2T{xL-T}B)G8GSPkI^7}@+T=fLK1nI$8Fmu5Uytl36ruiN(* zdP5`Jbo!-82ssVS#;6o__{_T>uMqY@;m>I$@eBAB8=nILS#q!g(Wk26@STFKU%HsF z6ixY|_<}h9U9?F+HPpK3Z@VI72$S_fn3hGmA#@NSOrhfb5JAtXsqS<>%Y!Rq6_ANy z;PCfA{C_Yr|0~zl*YD}yW|I$Guz#}W9)6CUAbE8w{^idXEwNL5d&d=4y21dNE?m2L z7*VSs5oi*Ce2$xu1wSQ|4RkM$&A~B9(E#=;9W*nB8{<4#kN#Q8zAM(E$mHbYDDpIn zP*@i7`zzVGsN?GsWFsvusX%d<0~Y~39=5AWu28l>)O$s5ZdDR~N|gtL($o~~){h7k z_1o4?rEqafj!d9^Rk&*DhnNw`jqrn7K%;ftsj+gnx@^To9Vpit*_j``?@0W6>eX;O zB8r$91%uOZCG^Sa0?@V8sAxBCD}S{X53P8%o$-dXZC!FbLo~^aPo7dYgccSTr@T@p z?|G|U+isij3dW!L{N|tkwF7{y4amyoX}s~3?*gstC#f2Ys!dlN6b>Kw@)RQf^b&nZ z89?acg}T9!9mh9Dv$`NEL8nO{v&-)rR`IyoI(W1r&h%6!Njxt=QsN(xEEY%zZ6->I z8NN}^o3Szm2pWK~pUmL-R^D$ljtJ=RcgrSPjSuFP^;n{fZyD~petx%PafH+Hd4j_? z0za~3Y2QULl>bVt*{y=@CYhnpbRp+;kI<_co0pXwL@!W){ zj7j`~rX2V`1pUhYtZHbNPEgo5Q(~KM$_(&8s_W{0CNEpmMrO+;(b!o{J2AJ?tWy+x zHv8>!>igGKL}q+Sb7kO|+R&^;b=`WB3|~?%U*PRam8prVtE)G=`bhU?kFyy|plKiK zwV&z@v4<@%n1BD-@N`-u$@gST{=uMGj&<;1TD-qIKkf`44VZrrpRfNl6FGQvQ#tn0 ze1x$2<8{aHGyfN>|oMy@@ zrgZT>hOwV28$=JW9Km=9=n~CS?UYJQg_hC(nWy$mG31ZyuB7Ibiv8}ikEgf4icEQw zCE|t)Uo!^ALv(bswzjsU?|1mD0>PlN_wtpTu_m_NOMa;ArKvg@ke#+OL<9rj1LEjm z{*pZf%#n=($;<`Tq;KDmQ>+U0PM%H1 zpHVJom#xRk!El5vN__f!ypb7pgh5d0H5e<&U=2R-4DDL@CB-{rBit*Jd8Nrq((>u$ z%H3fpN}=K9Q27FlvJTq}FP7FwFokEQDP>5>oB&Fk&q4#sYwJCoC2Tm8h_Vd>L z6=kC<5-lyQ>gwt|BJPx=AsHrX8q^!BiD$*yn(zJm{PIdreNuop5>^uo8oZow~#zyaO9tX&_{3TVMFh^m72n>V5mh~U|GDQ?MVwjn^n~7Q;P)|rvJ5>p9swK+ z5N`}sQ8u~z+9LTlOm?1vdk%~~&^?30HrqO1Lsm`jH~EfWTjGwGdAJ|Y!IJ|{5YUQ# znRA$AbmM%TkS0P|L#aecSMR0-X`-RAs$51grVGJ=T^S@-`|A_V#<@Ea^c?w&VAQ(N z_Ghf5t2WN-63w3_>84iPQEgS$BJo+2z!fgm_#^oxWtC(@>urXNs#uWZJBx84*^E-F zk0PAt<3M&y5Wy@nOZ1BP@kPXJ-0Poik)zuw=d+=cwNH3gmB{7Me3=+8dk2Sfs_m7H zG^5_z^QE{49AKUC&@cBr`a};l%NOydT%2|{-W~3|@y~d17l=jMfkp%a$Z(wGq3qZA zaxd}k?=r!UIxPB2d>r=$`mi}m=Ha1}-3JGk&*@vjcY8~B1oCmTKY=_HRq$ZISGJz% zwg6|0n&Xf_&B5R?vX4h!URmlghX~sk1PT-mBtg3C?|Y^z+nPbW(Ouyw9s`XMm^5vY z;NKTDk8R}L45k#6OcgFMN9~^XISC2WhC+s-?^KSr+PZ{}V>$m}-<+Elv>n*=YTLPDnk&%3{23UcW$Kxm>5^RS`EI=-H z1i}rqs5}1L++0=^v(r%G)=%N@>ok2*by{l(L`}@`o<>=SZbffd1P!~>JHs3%0ke#h z6jC1p-~+t&OKALOKyM5WRr$Kr`|3F&kccjDzx&wNb@l_z(L}71Pc~nvy9Tg0y?UG9 znhpZXR}IG!1f7;{Hhno+9`%Xz`GcNxcv|J}%hux$fb`+U3xA3|cdB;=ZjZtjwytJ@ zPzNMdztw#rT3E!-Pz=A};xzrB;-9i)kcZ0lIjhaxF#M?Z-=%F>$=b)*Jx!#}+PzaGI(ZyyjH6%Z4F%WFBQ zQ?=CRp`N$2cf4g^H@EFBqL36LCEbOcC?q(4%ymrA``5I|rxZ8GQ|lA1D&n=X=UwC0 z!Qb*KMudyZ2s^<}xA$gUtOeQ!Qw8AV#*PFUXMZflEecx$p6VFzS5LOpvtXVi8cKZQ zpTm9^@o93^T9(YXntiYnaLi`L5y|Gdl6CmJH|6FEC*q@x=FmkVkryjO{t@pCh2i`v z=>`g4|69RMR!YdBsg90RnxeTtiTkNUkR%XKaw{Y^zu)~VWl*LECwn=Q)%PuBAqt*n zj!WUdllF_BF0?HGPR+Ycr~m@}5TN&tVULk*8RHrg4 zE~|f$rB%Vc$iFvDGVnMmyELrbLapGlBsbzWmrbW^E6TBBAG4`<{QH~T?!yNLe3{oO zDkeatu@@<#GEg(i{qy+nf#5-jCa0S!DDDd6Mp2X4E1a=g z1zDP|IKLC7N_2hCjg$uCdp{sNOsEw#yei`#GggS>Lhz-YkGRnARDiIcsY{YD=7w|n zw-@XzKobSO4pyUI)EM{m_hS>%iN}a}pMBaMUe))w;@s2;^O%}0pO3j^jDLY(4sgvw zRo)iyr2mgBUXHDk2TLBAy%T+*qoDyv6!5kBi+k4MB;W;XjuR>`9~8}X*j5v=vRj5o zETp31`FGvt*lQao59_$+Zuyx?89VT8so~mWaA$XIxuquuR>HevjMp4q%~VM0l(R#apoYuW;zaN1*=;nWoL;ZtIzeE3TsD@L zSmovA+B!Nw!vHS>Ac{{J8C~1k*b_#I&lZV%n6nAJe4ms4bh8`?S23grV*nmFKw6=- z<>ih9@5O|L%l?FhNH+iJvJDIT2x2EAE-zZwN%VaVf0EN>js^?h|H~`Fh(cG3N)^QH znUxp7hK@4@rL}UhGeJ&8)qV1Pawth7u0$93;A4gI!qO-K%3O`;AVvaW(wUi=H~3{` z5e4n;kaPX%3TUa>%%x+L_Oyw!RzmwCLh6If^pAyC9)>cJ6 zQPcODwzke4^o37!x7(q)!blqctC$Lz<~6&|JE7v}ICAk}@6@-s$LPDz1!ruD-{%dh zppy@?N4P22P%?p)@zgbB=d)?*fnR%0b&aK#DdBVan6zX->Z%j+3L&rK>e~9OQ`4K; zD-)14C4Js`OZzM9zmhzzc1ne}vNJP5s<6SNOBUEWpJO$3Fk`xIh5iwZ>3@i1HE&t} z{hN&H^PfNefsjK+xLmwGS)JSX5*Pp}4Tm2bx>v`?^9lz~Vo4!eUbF=YOb89dEMZ?t zTU*-_+5e^*cUpJiF{A>XRW_hb8GNKE88%GxB+SK!1@s3vc9G1R4fT#TTQAG_x{^^L zk<-)D9pzPR15>hWqJi!wGeEazf6#q@BMV{kiTy&d`O9Qsqw69O15F$<)@I~kR`q%< z^*Fx^X-VU*?8NXW%nrR6E6L;9KO8LsE0Z-;fqmstoU3V@-XB})dR=|6m}IM_ZEMAQ z=^CV`Is(!3uZxn6Jv|jadQ$Ar&QiOMrlqA3V=@GBFIT5CS6ak21oBQ&LjK)Ex06@r zz2^QDZ8UARkX1;6JK=h3^y zb&8Me+qy-MzRVzEk1Uir-QO6Vim61_Vc?H*%2sT0V`JsdS;w{41g9B^hk-Z=BR(qN z>O|;teZUc!;%ToAP?w2E!R4nku(P*wX4lZJ$gVCb4ut}P_t?cnA4|gPgbi42qOU@W zPhW6xt*SV9kv_Db^qrl+u4s0#M6LW}68MULyqdK-nUMP~d6MzS>0+9JI|Y}xD>i^P zR{WII|2f;3jWc~YC9)VpwunYCTAcj%?9uK_Ef!$F7h`xYmO(lWgj8?7A>0j~L`UNZ z`CRboyI*jF)+>B3ub!t-M!0bgvlUO1+0Nr?W;vLrUBlJX0Rj3!u?aT)8hieiL#JW# z6Y=ANJw50@e$+PxSBzOz>kfekgEosR$b*8h>9Ku(L-#Q66q3;6#LvhFq0Y-)j^#(J*tDc`LzWlAHP>_{avlV zAhEC8px?W~Z;|qRdsU6`PyX)SwSrRfG@#8mEf`lcAB3_dty= zCB>0Xd#jjbYT<>sM!FXKOQEskTdy3ls+uC0bA-pLT4|Ns1WM1Zp%XIt?#q7!m?b5O z*&(=}2yLZNo86TSLAGiCXY2XmwP}9!mS@9C7?tDMt`3OIlrQ=``ggtQ+i-t(?bOa5 zJ~p*?zanAmX&os`0j9G^HeuUA=!*ke@tYN*wdKxW&a$~3*MrOEf2&LW>-GLrPiSEM za>gL`1ZGB1GRZ#Jnc(|YfeD9Ky3oMj$2SLj4j4B^EqV6v1!fE=wnKqE84Hk zD^`(K!sKM^uJ~^>1=th#{5jM%S5xOkjwm3E)xZ0c&NByu$;BkZrxnTbzbmm!_hBD7qKi2#i>ABM-oaR z6>AHVjo-g_1^7gxL8Tnh=F!4ARfKi9aGzi5YYX^E9HiIVBME)}zRm4=DsiZ&rB#6K zFdADLZ{E%M`UN&>@_>28f94lEQ6cnSb&TQ2oTNuvpVT`ZOyN0)CY*_q-N#`J@Rm#L z0*wfHT2C^dSRMG%fua4dsMQ}4w1hn90Y=TY?(_E@XkUj_*-=AFKF&K~{cAlptPDl# zSoFPyqIXKx*t`#-c#Fl=0;Rh<2tRyrfAm7g?JwD?HZpM-WJ|$HgL5lP)JJbUIXP0a zani`m7bP=Pf2*S3|Z*e0Tc7H}Er$y}xd;zG^j6;mshZK>{pNM=TOGKpdNAKrr& zYTTzEele_G`rWM2@u?7_bwp+`!E7gmd1`PW4&HOI9$TV|zgAe#p|UKC2frhnhV>SM z>RUFR+bRA+5{I63;l1eTlelv#8N`J|;_Uk^!PF4v0=KnnYS@7fM-Z@xXsM-(Py2O# z+VR))=%&_7#J^&7r}^_^*yQ^)WVcQ&N9E)#;=Jw~zwNi3R5NZLiRC)(s5`u`vUn!1 z<}YM0+3-;&2zbf$*gi6@dOJTl4pZ%bNE#+46uYZ0pz4!+L-B_VzD zSBl2^i}w}IuTo^uoyU|@g0`y><+%Yz%ILl={Q=@`7vcDKT@kFo0a3&50oAflP$7