/[svn]/linuxsampler/trunk/src/engines/gig/InstrumentScriptVM.cpp
ViewVC logotype

Contents of /linuxsampler/trunk/src/engines/gig/InstrumentScriptVM.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2600 - (show annotations) (download)
Sat Jun 7 00:16:03 2014 UTC (9 years, 10 months ago) by schoenebeck
File size: 3255 byte(s)
* Implemented built-in instrument script function "set_controller()".
* Fixed built-in script functions "ignore_event()" and
  "ignore_controller()".
* Added extended instrument script VM for the Gigasampler/GigaStudio format
  sampler engine, which extends the general instrument script VM with Giga
  format specific variables and functions.
* Giga format instrument scripts: added built-in script int constant
  variables $GIG_DIM_CHANNEL, $GIG_DIM_LAYER, $GIG_DIM_VELOCITY,
  $GIG_DIM_AFTERTOUCH, $GIG_DIM_RELEASE, $GIG_DIM_KEYBOARD,
  $GIG_DIM_ROUNDROBIN, $GIG_DIM_RANDOM, $GIG_DIM_SMARTMIDI,
  $GIG_DIM_ROUNDROBINKEY, $GIG_DIM_MODWHEEL, $GIG_DIM_BREATH,
  $GIG_DIM_FOOT, $GIG_DIM_PORTAMENTOTIME, $GIG_DIM_EFFECT1,
  $GIG_DIM_EFFECT2, $GIG_DIM_GENPURPOSE1, $GIG_DIM_GENPURPOSE2,
  $GIG_DIM_GENPURPOSE3, $GIG_DIM_GENPURPOSE4, $GIG_DIM_SUSTAIN,
  $GIG_DIM_PORTAMENTO, $GIG_DIM_SOSTENUTO, $GIG_DIM_SOFT,
  $GIG_DIM_GENPURPOSE5, $GIG_DIM_GENPURPOSE6, $GIG_DIM_GENPURPOSE7,
  $GIG_DIM_GENPURPOSE8, $GIG_DIM_EFFECT1DEPTH, $GIG_DIM_EFFECT2DEPTH,
  $GIG_DIM_EFFECT3DEPTH, $GIG_DIM_EFFECT4DEPTH, $GIG_DIM_EFFECT5DEPTH.
* Giga format instrument scripts: Implemented built-in script function
  "gig_set_dim_zone(event_id, dimension, zone)", which allows to override
  dimension zone(s) for new voices.
* Bumped version (1.0.0.svn45).

1 /*
2 * Copyright (c) 2014 Christian Schoenebeck
3 *
4 * http://www.linuxsampler.org
5 *
6 * This file is part of LinuxSampler and released under the same terms.
7 * See README file for details.
8 */
9
10 #include "InstrumentScriptVM.h"
11 #include "../../common/global_private.h"
12 #include "EngineChannel.h"
13
14 namespace LinuxSampler { namespace gig {
15
16 InstrumentScriptVM::InstrumentScriptVM() :
17 LinuxSampler::InstrumentScriptVM(), m_fnGigSetDimZone(this)
18 {
19 }
20
21 std::map<String,int> InstrumentScriptVM::builtInConstIntVariables() {
22 // first get buil-in integer variables of derived VM class
23 std::map<String,int> m =
24 ::LinuxSampler::InstrumentScriptVM::builtInConstIntVariables();
25
26 // add own built-in script constants
27 m["$GIG_DIM_CHANNEL"] = ::gig::dimension_samplechannel;
28 m["$GIG_DIM_LAYER"] = ::gig::dimension_layer;
29 m["$GIG_DIM_VELOCITY"] = ::gig::dimension_velocity;
30 m["$GIG_DIM_AFTERTOUCH"] = ::gig::dimension_channelaftertouch;
31 m["$GIG_DIM_RELEASE"] = ::gig::dimension_releasetrigger;
32 m["$GIG_DIM_KEYBOARD"] = ::gig::dimension_keyboard;
33 m["$GIG_DIM_ROUNDROBIN"] = ::gig::dimension_roundrobin;
34 m["$GIG_DIM_RANDOM"] = ::gig::dimension_random;
35 m["$GIG_DIM_SMARTMIDI"] = ::gig::dimension_smartmidi;
36 m["$GIG_DIM_ROUNDROBINKEY"] = ::gig::dimension_roundrobinkeyboard;
37 m["$GIG_DIM_MODWHEEL"] = ::gig::dimension_modwheel;
38 m["$GIG_DIM_BREATH"] = ::gig::dimension_breath;
39 m["$GIG_DIM_FOOT"] = ::gig::dimension_foot;
40 m["$GIG_DIM_PORTAMENTOTIME"] = ::gig::dimension_portamentotime;
41 m["$GIG_DIM_EFFECT1"] = ::gig::dimension_effect1;
42 m["$GIG_DIM_EFFECT2"] = ::gig::dimension_effect2;
43 m["$GIG_DIM_GENPURPOSE1"] = ::gig::dimension_genpurpose1;
44 m["$GIG_DIM_GENPURPOSE2"] = ::gig::dimension_genpurpose2;
45 m["$GIG_DIM_GENPURPOSE3"] = ::gig::dimension_genpurpose3;
46 m["$GIG_DIM_GENPURPOSE4"] = ::gig::dimension_genpurpose4;
47 m["$GIG_DIM_SUSTAIN"] = ::gig::dimension_sustainpedal;
48 m["$GIG_DIM_PORTAMENTO"] = ::gig::dimension_portamento;
49 m["$GIG_DIM_SOSTENUTO"] = ::gig::dimension_sostenutopedal;
50 m["$GIG_DIM_SOFT"] = ::gig::dimension_softpedal;
51 m["$GIG_DIM_GENPURPOSE5"] = ::gig::dimension_genpurpose5;
52 m["$GIG_DIM_GENPURPOSE6"] = ::gig::dimension_genpurpose6;
53 m["$GIG_DIM_GENPURPOSE7"] = ::gig::dimension_genpurpose7;
54 m["$GIG_DIM_GENPURPOSE8"] = ::gig::dimension_genpurpose8;
55 m["$GIG_DIM_EFFECT1DEPTH"] = ::gig::dimension_effect1depth;
56 m["$GIG_DIM_EFFECT2DEPTH"] = ::gig::dimension_effect2depth;
57 m["$GIG_DIM_EFFECT3DEPTH"] = ::gig::dimension_effect3depth;
58 m["$GIG_DIM_EFFECT4DEPTH"] = ::gig::dimension_effect4depth;
59 m["$GIG_DIM_EFFECT5DEPTH"] = ::gig::dimension_effect5depth;
60
61 return m;
62 }
63
64 VMFunction* InstrumentScriptVM::functionByName(const String& name) {
65 // built-in script functions of this class
66 if (name == "gig_set_dim_zone") return &m_fnGigSetDimZone;
67
68 // built-in script functions of derived VM class
69 return ::LinuxSampler::InstrumentScriptVM::functionByName(name);
70 }
71
72 }} // namespace LinuxSampler::gig

  ViewVC Help
Powered by ViewVC