diff options
author | Robin Gareus <robin@gareus.org> | 2015-04-25 22:02:02 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-04-25 22:02:02 +0200 |
commit | 850964fde3edb8ac0a2c8ca10cd1f421ce106c6e (patch) | |
tree | 77665e37d7760ae2093a96d5a0515a7e2fc101d9 /libs/ardour/amp.cc | |
parent | 9203bad7bafa23c6ed5969f2e2899d7110a59551 (diff) |
midi velocity [fader] automation
Diffstat (limited to 'libs/ardour/amp.cc')
-rw-r--r-- | libs/ardour/amp.cc | 14 |
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; |