summaryrefslogtreecommitdiff
path: root/libs/ardour/amp.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-11-13 19:23:16 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-11-13 19:23:16 +0000
commit3f35528f18eb756dfb2b0660a15b3379de4179ac (patch)
treecef81d97ba476f882238f8bac495fbc3a8de883b /libs/ardour/amp.cc
parent40a7b0f0b31cc4d4358f587d0fd7f1d01b7dc7b1 (diff)
revert to a 0..2 scale for MIDI velocity control, so that we can increase MIDI note velocities as well as deccrease them (note: this will make the use of MIDI CC #7 a bit more complex)
git-svn-id: svn://localhost/ardour2/branches/3.0@13483 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/amp.cc')
-rw-r--r--libs/ardour/amp.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/libs/ardour/amp.cc b/libs/ardour/amp.cc
index c0cd404cf6..94204a1a84 100644
--- a/libs/ardour/amp.cc
+++ b/libs/ardour/amp.cc
@@ -117,12 +117,11 @@ Amp::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end_frame*/,
for (BufferSet::midi_iterator i = bufs.midi_begin(); i != bufs.midi_end(); ++i) {
MidiBuffer& mb (*i);
- const float midi_velocity_factor = gain_coefficient_to_midi_velocity_factor (_current_gain);
for (MidiBuffer::iterator m = mb.begin(); m != mb.end(); ++m) {
Evoral::MIDIEvent<MidiBuffer::TimeType> ev = *m;
if (ev.is_note_on()) {
- ev.scale_velocity (midi_velocity_factor);
+ ev.scale_velocity (_current_gain);
}
}
}
@@ -177,7 +176,7 @@ Amp::apply_gain (BufferSet& bufs, framecnt_t nframes, gain_t initial, gain_t tar
if (ev.is_note_on()) {
const gain_t scale = delta * (ev.time()/(double) nframes);
- ev.scale_velocity (gain_coefficient_to_midi_velocity_factor (initial+scale));
+ ev.scale_velocity (initial+scale);
}
}
}
@@ -335,12 +334,11 @@ Amp::apply_simple_gain (BufferSet& bufs, framecnt_t nframes, gain_t target)
for (BufferSet::midi_iterator i = bufs.midi_begin(); i != bufs.midi_end(); ++i) {
MidiBuffer& mb (*i);
- const float midi_velocity_factor = gain_coefficient_to_midi_velocity_factor (target);
for (MidiBuffer::iterator m = mb.begin(); m != mb.end(); ++m) {
Evoral::MIDIEvent<MidiBuffer::TimeType> ev = *m;
if (ev.is_note_on()) {
- ev.scale_velocity (midi_velocity_factor);
+ ev.scale_velocity (target);
}
}
}