30 |
namespace LinuxSampler { namespace sf2 { |
namespace LinuxSampler { namespace sf2 { |
31 |
|
|
32 |
class Voice; |
class Voice; |
33 |
|
class SF2SignalUnitRack; |
34 |
|
|
35 |
class EGUnit : public SignalUnitBase<Voice>, public ::LinuxSampler::sfz::EGADSR { |
class SFSignalUnit: public SignalUnit { |
36 |
public: |
public: |
37 |
|
Voice* pVoice; |
38 |
|
|
39 |
|
SFSignalUnit(SF2SignalUnitRack* rack); |
40 |
|
}; |
41 |
|
|
42 |
|
class EGUnit : public SFSignalUnit, public ::LinuxSampler::sfz::EGADSR { |
43 |
|
public: |
44 |
|
EGUnit(SF2SignalUnitRack* rack): SFSignalUnit(rack) { } |
45 |
|
|
46 |
virtual bool Active() { return active(); } |
virtual bool Active() { return active(); } |
47 |
virtual float GetLevel() { return getLevel(); } |
virtual float GetLevel() { return getLevel(); } |
48 |
virtual void EnterReleaseStage(); |
virtual void EnterReleaseStage(); |
51 |
|
|
52 |
class VolEGUnit : public EGUnit { |
class VolEGUnit : public EGUnit { |
53 |
public: |
public: |
54 |
|
VolEGUnit(SF2SignalUnitRack* rack): EGUnit(rack) { } |
55 |
|
|
56 |
virtual void Trigger(); |
virtual void Trigger(); |
57 |
virtual void Increment(); |
virtual void Increment(); |
58 |
}; |
}; |
59 |
|
|
60 |
class ModEGUnit : public EGUnit { |
class ModEGUnit : public EGUnit { |
61 |
public: |
public: |
62 |
|
ModEGUnit(SF2SignalUnitRack* rack): EGUnit(rack) { } |
63 |
|
|
64 |
virtual void Trigger(); |
virtual void Trigger(); |
65 |
virtual void Increment(); |
virtual void Increment(); |
66 |
}; |
}; |
67 |
|
|
68 |
class ModLfoUnit : public SignalUnitBase<Voice>, public LFOSigned { |
class ModLfoUnit : public SFSignalUnit, public LFOSigned { |
69 |
public: |
public: |
70 |
ModLfoUnit(): LFOSigned(1200.0f) { } |
ModLfoUnit(SF2SignalUnitRack* rack): SFSignalUnit(rack), LFOSigned(1200.0f) { } |
71 |
virtual bool Active() { return true; } |
virtual bool Active() { return true; } |
72 |
virtual void Trigger(); |
virtual void Trigger(); |
73 |
virtual void Increment(); |
virtual void Increment(); |
74 |
virtual float GetLevel() { return Level; } |
virtual float GetLevel() { return Level; } |
75 |
}; |
}; |
76 |
|
|
77 |
class VibLfoUnit : public SignalUnitBase<Voice>, public LFOSigned { |
class VibLfoUnit : public SFSignalUnit, public LFOSigned { |
78 |
public: |
public: |
79 |
VibLfoUnit(): LFOSigned(1200.0f) { } |
VibLfoUnit(SF2SignalUnitRack* rack): SFSignalUnit(rack), LFOSigned(1200.0f) { } |
80 |
virtual bool Active() { return true; } |
virtual bool Active() { return true; } |
81 |
virtual void Trigger(); |
virtual void Trigger(); |
82 |
virtual void Increment(); |
virtual void Increment(); |
83 |
virtual float GetLevel() { return Level; } |
virtual float GetLevel() { return Level; } |
84 |
}; |
}; |
85 |
|
|
86 |
class EndpointUnit : public EndpointSignalUnitBase<Voice> { |
class EndpointUnit : public EndpointSignalUnit { |
87 |
public: |
public: |
88 |
|
Voice* pVoice; |
89 |
|
|
90 |
Parameter *prmVolEg, *prmModEgPitch, *prmModEgCutoff, *prmModLfoVol, |
Parameter *prmVolEg, *prmModEgPitch, *prmModEgCutoff, *prmModLfoVol, |
91 |
*prmModLfoPitch, *prmModLfoCutoff, *prmVibLfo; |
*prmModLfoPitch, *prmModLfoCutoff, *prmVibLfo; |
92 |
|
|
93 |
EndpointUnit(); |
EndpointUnit(SF2SignalUnitRack* rack); |
94 |
|
|
95 |
virtual void Trigger(); |
virtual void Trigger(); |
96 |
|
|
103 |
virtual float GetResonance(); |
virtual float GetResonance(); |
104 |
}; |
}; |
105 |
|
|
106 |
class SF2SignalUnitRack : public SignalUnitRackBase<Voice> { |
class SF2SignalUnitRack : public SignalUnitRack { |
107 |
private: |
private: |
108 |
VolEGUnit suVolEG; |
VolEGUnit suVolEG; |
109 |
ModEGUnit suModEG; |
ModEGUnit suModEG; |
113 |
|
|
114 |
|
|
115 |
public: |
public: |
116 |
|
Voice* const pVoice; |
117 |
|
|
118 |
/** |
/** |
119 |
* @param Voice The voice to which this rack belongs. |
* @param Voice The voice to which this rack belongs. |
120 |
*/ |
*/ |
121 |
SF2SignalUnitRack(Voice* Voice); |
SF2SignalUnitRack(Voice* Voice); |
122 |
|
|
|
virtual void Trigger(); |
|
123 |
virtual EndpointSignalUnit* GetEndpointUnit(); |
virtual EndpointSignalUnit* GetEndpointUnit(); |
124 |
}; |
}; |
125 |
|
|
126 |
}} // namespace LinuxSampler::sf2 |
}} // namespace LinuxSampler::sf2 |
127 |
|
|
128 |
#endif /* __LS_SF2SIGNALUNITRACK_H__ */ |
#endif /* __LS_SF2SIGNALUNITRACK_H__ */ |
|
|
|