View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0006241 | ardour | features | public | 2015-04-07 10:26 | 2015-04-07 10:26 |
| Reporter | flip | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | new | Resolution | open | ||
| Summary | 0006241: Add an option to send MMC PLAY instead of MMC DEFERRED PLAY | ||||
| Description | PLAY is more useful than DEFERRED PLAY when starting lots of drum machines and synths with internal sequencers from Ardour. Many of them don't start from step 1 when receiving a DEFERRED PLAY, which would be the preferred behavior most of the time. Attched is a patch that implements the feature. I hope this helps, this is the first time I try this... Version is 4.0.rc2.50. | ||||
| Tags | No tags attached. | ||||
|
2015-04-07 10:26
|
mmc-play-option.patch (2,183 bytes)
diff -rupN ardour-orig/libs/ardour/ardour/rc_configuration_vars.h ardour/libs/ardour/ardour/rc_configuration_vars.h
--- ardour-orig/libs/ardour/ardour/rc_configuration_vars.h 2015-04-07 11:38:28.477985252 +0200
+++ ardour/libs/ardour/ardour/rc_configuration_vars.h 2015-04-07 11:35:14.073984009 +0200
@@ -50,6 +50,7 @@ CONFIG_VARIABLE (bool, midi_feedback, "m
CONFIG_VARIABLE (int32_t, mmc_receive_device_id, "mmc-receive-device-id", 0x7f)
CONFIG_VARIABLE (int32_t, mmc_send_device_id, "mmc-send-device-id", 0)
CONFIG_VARIABLE (int32_t, initial_program_change, "initial-program-change", -1)
+CONFIG_VARIABLE (bool, mmc_send_play, "mmc-send-play", false)
CONFIG_VARIABLE (bool, first_midi_bank_is_zero, "display-first-midi-bank-as-zero", false)
CONFIG_VARIABLE (int32_t, inter_scene_gap_msecs, "inter-scene-gap-msecs", 1)
diff -rupN ardour-orig/libs/ardour/session_transport.cc ardour/libs/ardour/session_transport.cc
--- ardour-orig/libs/ardour/session_transport.cc 2015-04-07 11:38:28.518985253 +0200
+++ ardour/libs/ardour/session_transport.cc 2015-04-07 11:34:13.845983624 +0200
@@ -1477,7 +1477,11 @@ Session::start_transport ()
Timecode::Time time;
timecode_time_subframes (_transport_frame, time);
if (!dynamic_cast<MTC_Slave*>(_slave)) {
- send_immediate_mmc (MIDI::MachineControlCommand (MIDI::MachineControl::cmdDeferredPlay));
+ if (!Config->get_mmc_send_play()) {
+ send_immediate_mmc (MIDI::MachineControlCommand (MIDI::MachineControl::cmdDeferredPlay));
+ } else {
+ send_immediate_mmc (MIDI::MachineControlCommand (MIDI::MachineControl::cmdPlay));
+ }
}
}
diff -rupN ardour-orig/system_config ardour/system_config
--- ardour-orig/system_config 2015-04-07 11:38:28.751985254 +0200
+++ ardour/system_config 2015-04-07 11:35:43.534984197 +0200
@@ -13,6 +13,7 @@
<Option name="midi-feedback" value="0"/>
<Option name="mmc-receive-device-id" value="127"/>
<Option name="mmc-send-device-id" value="0"/>
+ <Option name="mmc-send-play" value="0"/>
<Option name="initial-program-change" value="-1"/>
<Option name="display-first-midi-bank-as-zero" value="0"/>
<Option name="inter-scene-gap-msecs" value="1"/>
|