summaryrefslogtreecommitdiff
path: root/libs/ardour/amp.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-04-25 22:02:02 +0200
committerRobin Gareus <robin@gareus.org>2015-04-25 22:02:02 +0200
commit850964fde3edb8ac0a2c8ca10cd1f421ce106c6e (patch)
tree77665e37d7760ae2093a96d5a0515a7e2fc101d9 /libs/ardour/amp.cc
parent9203bad7bafa23c6ed5969f2e2899d7110a59551 (diff)
midi velocity [fader] automation
Diffstat (limited to 'libs/ardour/amp.cc')
-rw-r--r--libs/ardour/amp.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/libs/ardour/amp.cc b/libs/ardour/amp.cc
index c94b09536f..efe776af24 100644
--- a/libs/ardour/amp.cc
+++ b/libs/ardour/amp.cc
@@ -90,7 +90,19 @@ Amp::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end_frame*/,
gain_t* gab = _gain_automation_buffer;
assert (gab);
- // TODO automated midi gain
+ if (_midi_amp) {
+ for (BufferSet::midi_iterator i = bufs.midi_begin(); i != bufs.midi_end(); ++i) {
+ MidiBuffer& mb (*i);
+ for (MidiBuffer::iterator m = mb.begin(); m != mb.end(); ++m) {
+ Evoral::MIDIEvent<MidiBuffer::TimeType> ev = *m;
+ if (ev.is_note_on()) {
+ assert(ev.time() >= 0 && ev.time() < nframes);
+ ev.scale_velocity (gab[ev.time()]);
+ }
+ }
+ }
+ }
+
const float a = 62.78 / _session.nominal_frame_rate(); // 10 Hz LPF
float lpf = _current_gain;