/* one MIDI port/buffer only */
MidiBuffer& m = bufs.get_midi (i);
for (MidiBuffer::iterator i = m.begin(); i != m.end(); ++i) {
- Evoral::MIDIEvent<framepos_t> ev (*i);
+ Evoral::Event<framepos_t> ev (*i);
if (ev.is_channel_event()) {
const uint8_t* b = ev.buffer();
DEBUG_TRACE (DEBUG::AudioUnits, string_compose ("%1: MIDI event %2\n", name(), ev));
}
if (outCurrentTempo) {
- *outCurrentTempo = tmap.tempo_at_frame (transport_frame + input_offset).beats_per_minute();
+ *outCurrentTempo = tmap.tempo_at_frame (transport_frame + input_offset).quarter_notes_per_minute();
}
return noErr;
/* on the beat */
*outDeltaSampleOffsetToNextBeat = 0;
} else {
- double const next_beat = cail (tmap.quarter_note_at_frame (transport_frame + input_offset));
+ double const next_beat = ceil (tmap.quarter_note_at_frame (transport_frame + input_offset));
framepos_t const next_beat_frame = tmap.frame_at_quarter_note (next_beat);
*outDeltaSampleOffsetToNextBeat = next_beat_frame - (transport_frame + input_offset);
bbt.beats = 1;
bbt.ticks = 0;
- *outCurrentMeasureDownBeat = tmap..pulse_at_bbt (bbt) * 4.0;
+ *outCurrentMeasureDownBeat = tmap.quarter_note_at_bbt (bbt);
}
return noErr;
break;
}
+ std::string busname;
+
if (dt == DataType::AUDIO) {
if (input) {
uint32_t pid = id;
id = pid;
ss << _bus_name_in[bus];
ss << " / Bus " << (1 + bus);
+ busname = _bus_name_in[bus];
break;
}
pid -= bus_inputs[bus];
id = pid;
ss << _bus_name_out[bus];
ss << " / Bus " << (1 + bus);
+ busname = _bus_name_out[bus];
break;
}
pid -= bus_outputs[bus];
ss << (id + 1);
Plugin::IOPortDescription iod (ss.str());
+ if (!busname.empty()) {
+ iod.group_name = busname;
+ iod.group_channel = id;
+ }
return iod;
}