+}
+
+string
+InstrumentInfo::get_controller_name (Evoral::Parameter param) const
+{
+ boost::shared_ptr<Processor> p = internal_instrument.lock();
+ if (p || param.type() != MidiCCAutomation) {
+ return "";
+ }
+
+ boost::shared_ptr<MIDI::Name::MasterDeviceNames> dev_names(
+ MIDI::Name::MidiPatchManager::instance().master_device_by_model(
+ external_instrument_model));
+ if (!dev_names) {
+ return "";
+ }
+
+ boost::shared_ptr<ChannelNameSet> chan_names(
+ dev_names->channel_name_set_by_channel(
+ external_instrument_mode, param.channel()));
+ if (!chan_names) {
+ return "";
+ }
+
+ boost::shared_ptr<ControlNameList> control_names(
+ dev_names->control_name_list(chan_names->control_list_name()));
+ if (!control_names) {
+ return "";
+ }
+
+ return control_names->control(param.id())->name();
+}