X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fparameter_descriptor.cc;h=660abbc6161b801c20ef954fddf7dc4125761744;hb=5956e864e7ceb1285e43f376796aaec5230d16e9;hp=9fb6b89a0c5548c0ae7aca654d7aab3c7db14a71;hpb=30497db8236f09b64e231db4c73da98d62148001;p=ardour.git diff --git a/libs/ardour/parameter_descriptor.cc b/libs/ardour/parameter_descriptor.cc index 9fb6b89a0c..660abbc616 100644 --- a/libs/ardour/parameter_descriptor.cc +++ b/libs/ardour/parameter_descriptor.cc @@ -24,7 +24,7 @@ #include "ardour/types.h" #include "ardour/utils.h" -#include "i18n.h" +#include "pbd/i18n.h" namespace ARDOUR { @@ -75,6 +75,7 @@ ParameterDescriptor::ParameterDescriptor(const Evoral::Parameter& parameter) normal = 0.0f; break; case RecEnableAutomation: + case RecSafeAutomation: lower = 0.0; upper = 1.0; toggled = true; @@ -95,6 +96,7 @@ ParameterDescriptor::ParameterDescriptor(const Evoral::Parameter& parameter) case MidiCCAutomation: case MidiPgmChangeAutomation: case MidiChannelPressureAutomation: + case MidiNotePressureAutomation: lower = 0.0; normal = 0.0; upper = 127.0; @@ -157,6 +159,9 @@ ParameterDescriptor::update_steps() step = slider_position_to_gain(largestep / 10.0); smallstep = step; } else { + /* note that LV2Plugin::get_parameter_descriptor () + * overrides this is lv2:rangeStep is set for a port. + */ const float delta = upper - lower; /* 30 happens to be the total number of steps for a fader with default @@ -184,4 +189,34 @@ ParameterDescriptor::update_steps() } } +std::string +ParameterDescriptor::midi_note_name (const uint8_t b) +{ + char buf[16]; + if (b > 127) { + snprintf(buf, sizeof(buf), "%d", b); + return buf; + } + + static const char* notes[] = { + S_("Note|C"), + S_("Note|C#"), + S_("Note|D"), + S_("Note|D#"), + S_("Note|E"), + S_("Note|F"), + S_("Note|F#"), + S_("Note|G"), + S_("Note|G#"), + S_("Note|A"), + S_("Note|A#"), + S_("Note|B") + }; + + /* MIDI note 0 is in octave -1 (in scientific pitch notation) */ + const int octave = b / 12 - 1; + snprintf (buf, sizeof (buf), "%s%d", notes[b % 12], octave); + return buf; +} + } // namespace ARDOUR