Commit Graph

23886 Commits

Author SHA1 Message Date
Robin Gareus ea4bbcf529 Empty system_config (pre-seed XML nodes, use built-in settings)
Hotfix work around:
 1) Launch without existing user-config and no system_config
 2) Load or create session.  save/quit.
 3) re-load session. save.   user-config file is corrupted in <Extra>
2017-03-02 19:37:36 +01:00
Paul Davis 05b0102668 ArdourButton: if _act_on_release is true, only trigger actions/signal clicks on key release, and vice versa
This should really be split in separate semantics for key and button events.

Fixes a subtle but nasty bug in the EngineDialog where the change of the default focus
widget from a Gtk::Button (acts on press) to an ArdourButton (acts on release) caused
events occuring after a dialog has grabbed focus to trigger button clicks
2017-03-01 22:30:20 +01:00
Robin Gareus ac9bc19762 Fix crash when adding a plugin immediately after re-order (via script)
The re-order is queued to be performed click-free in realtime-context.
Meanwhile adding plugins will result in a race-condition.
2017-03-01 18:52:40 +01:00
Robin Gareus 96b3f8ec92 Don't automatically open generic UIs for plugins w/o controls 2017-03-01 17:17:27 +01:00
Robin Gareus ab127d6e70 Don't display "channel-selector" for plugins only pretending to be instruments
If a plugin has 0 audio-outputs, and has the meta-data "InstrumentPlugin",
Ardour would interpret is as "variable number of output synth.
2017-03-01 17:08:44 +01:00
Robin Gareus 6e5cfb665f Fix audition with monitor-section.
When a monitor-section is added, the auditioner automatically connects to
its input. However on session-reload, the connection is explicit
(by saved port-name) and  Auditioner::needs_monitor() was not set.
Session::process_audition() didn't run the monitor-route. Silence.
2017-03-01 13:04:58 +01:00
Robin Gareus 88a22d40b5 Fix implicit selection when operating track-header ctrl buttons
Stop event propagation. Otherwise, on release the event is passed
up and handled by the TAV which scrolls the editor viewpoint
and the button is no longer under the mouse.
2017-03-01 11:55:32 +01:00
Robin Gareus ce2c3a9c70 c89 compat (gcc4, mingw..) 2017-02-28 21:33:13 +01:00
Robin Gareus a80920c016 Tweak/optimize VST callback:
The audioMasterAutomate callback from plugin to host does include
the parameter-value.

Previously there was a redundant call
Plugin::parameter_changed_externally() -> get_parameter
-> VSTPlugin::get_parameter()   back into the plugin to query the value.

calling back into the plugin from the callback, may explain
oddities and/or crashes with some VSTs.
2017-02-28 20:20:18 +01:00
Paul Davis c7168b387b when destroying a MidiSource, invalidate any existing MidiCursors
(such as those held in a MidiPlaylist's RegionTrackers
2017-02-28 17:27:51 +01:00
Robin Gareus f1571ab7ed initialize some uninitialized vars 2017-02-28 16:29:10 +01:00
Robin Gareus 29fcca147b Fix loading SMF meta-data > 127 bytes (no more g_critical abort) 2017-02-28 16:29:10 +01:00
nick_m 38b5d88795 allow continuation of tempo via right-click 'Continue' where appropriate.
- this is the opposite of 'Ramp to Next'.
	  it removes discontinuities between the
	  last end tempo and the current by altering the current one.
2017-03-01 01:58:53 +11:00
Robin Gareus a9bb1afb27 Update GUI when playing mute-automation 2017-02-28 05:01:17 +01:00
Robin Gareus 5c4a2025f1 Fix touching mute automation (mostly)
controllable->set_value() from GUI context will eventually queue
a session-rt command. By the time the realtime command runs, the
controllable needs to be in "touch" mode.

The AutomationController "toggle" UI worked around this by directly using
the underlying API (ignoring slaved-controls and ignoring groups).
The RouteUI's GUI wasn't able to write mute-automation at all.

This commit is a compromise: press + hold (touch) + release button.

(it may need further special-casing for _desc.toggled in
AutomationControl::actually_set_value(), also undoing automation-writes
is currently  not working correctly)
2017-02-28 05:01:17 +01:00
Ben Loftis 1071c0e788 Likely fix for bug: cannot change track colors in older 4.x sessions. 2017-02-27 20:51:17 -06:00
nick_m d5fad959e6 probable fix for importing tempo maps that use non-quarter note pulse.
- actually i'm not certain that this is correct,
	  but it works ok Beethoven's fifth.
2017-02-27 20:16:10 +01:00
nick_m e55b882a09 _group, group.. who cares? 2017-02-27 20:16:10 +01:00
nick_m 07b4da44bf clicking on curve text does the right thing. 2017-02-27 20:16:10 +01:00
nick_m 4496babc8f initial rework of tempo text display (numbers are curve items)
- move tempo numbers to a layer above the curve.

	- the offset of the text box in Marker is horrible here.
	  what to do?
2017-02-27 20:16:10 +01:00
nick_m f457544263 fix crash in pinch drag 2017-02-27 20:16:10 +01:00
nick_m abd89ffa7d remove scroll wheel editing nonsense (tempo) 2017-02-27 20:16:10 +01:00
nick_m 5b38fbab4d fix compilation 2017-02-27 20:16:10 +01:00
nick_m 243fd7a428 remove 'mouse:' verbose cursor when shift-dragging a curve. 2017-02-27 20:16:10 +01:00
nick_m 25d78ef306 only allow 'ramp to next' if the next tempo is actually different. 2017-02-27 20:16:10 +01:00
nick_m f69f546717 poor man's display of end tempo for ramps. 2017-02-27 20:16:10 +01:00
nick_m f3ada6f893 harden TempoMap::next_tempo_section () a bit. 2017-02-27 20:16:10 +01:00
nick_m 3a7bc1fd3f Tempo Marks : set point colour by discontinuity, display non-quarter pulse if we are non-quarter.
- a jump in tempo by more than 1 ntpm results in a red
	 tempo mark pointer.

	- ignore UIConfiguration::get_allow_non_quarter_pulse()
	  when displaying note type in the marker text (only display
	  note type if we are non-quarter).
2017-02-27 20:16:10 +01:00
nick_m f41748803a remove commented line 2017-02-27 20:16:10 +01:00
nick_m bb8b229a1e fix tempo marker ramp to next. 2017-02-27 20:16:10 +01:00
nick_m e41285668c amend last commit (don't depend on 0.0) 2017-02-27 20:16:10 +01:00
nick_m b3c68030f4 hopefully fix legacy session loading (tempo) 2017-02-27 20:16:10 +01:00
nick_m 663d0e1743 add right-click 'Ramp to Next' tempo marker menu item. 2017-02-27 20:16:10 +01:00
nick_m f8a6f8918d back to using shift-ctrl for pinch drag. set colours of affected curves. 2017-02-27 20:16:10 +01:00
nick_m d06e710402 add TempoMap::next_tempo_section() 2017-02-27 20:16:10 +01:00
nick_m 393f095d95 fix TempoMap::frame_at_tempo(). 2017-02-27 20:16:10 +01:00
nick_m 8e944953c6 highlight the tempo curve that is to be altered, modify text to suit. 2017-02-27 20:16:10 +01:00
nick_m f4d51ee0d0 fix verbose cursor display when shift-dragging end tempo. 2017-02-27 20:16:10 +01:00
nick_m 636583e6ef restore pinch tempo. it now operates via shift + alt drag on the curve. 2017-02-27 20:16:10 +01:00
nick_m 211226983d remove tempo end drag (the control drag on the curve). a;ter tempo marker drag.
- holding down shift before initiating a tempo mark drag
	  alters the end tempo of the previous one as before, but
	  this is now a separate drag.
	- restore vertical dragging of the tempo mark to alter start/
	  end tempo. shift during the makrker drag alters start tempo.
	  xontrol + shift during the drag alters end tempo.
2017-02-27 20:16:10 +01:00
nick_m c9387055e4 remove "Make Ramped" from right click tempo marker menu. 2017-02-27 20:16:10 +01:00
nick_m 1359f18543 fix formatting of bbtruler drag verbose cursor. 2017-02-27 20:16:10 +01:00
nick_m 97c4c2a28c complete changes to tempo type.
- this implements in the intention behind the previous commit.
	  a tempo mark is constant until its end has been changed by a
	  shift-drag on the next marker.
2017-02-27 20:16:10 +01:00
Ben Loftis ac19a51d38 compile fix 2017-02-27 20:16:10 +01:00
nick_m 959f76c843 make new (ramped) tempi indidstiguishable from constant to the novice user.
- stretch drag (using shift on the curve) operates on
	  the true meaning of constant. in other words,
	  the only way you can make a tempo ramped is by adjusting the end
	  tempo (shift drag on the *next* mark). from this point onwards.
	  shift-drag the curve will change the start tempo and ctrl-drag
	  the curve will change the end (needs work). to reset the
	  curve to constant, 'make constant' should simply set the end
	  tempo (unimplemented).
2017-02-27 20:16:10 +01:00
nick_m 8b1baa2406 correct (?) behaviour of TempoMap::replace_tempo 2017-02-27 20:16:10 +01:00
nick_m ccb51a8ddb rework tempo editing.
most changes are due to a new design where tempo discontinuities at the
beginning of a ramped section may be set.
this allows easier mapping of live performance, especially in
the common case of a ramped ritard before the beginning of a new section.

feature summary:

holding constraint modifier (shift) while dragging the BBT ruler area
drags the tempo lines by changing the start tempo (as before)

holding copy modifier (control) while dragging the BBT ruler area
drags the tempo lines by changing the end tempo (ahem. not quite there)

dragging a tempo mark while holding constraint (shift) will change the
previous end tempo to match the marker position *worth trying*.

holding constraint and copy modifier (control + shift) while dragging
the BBT ruler area attempts to'pinch' or twist the surrounding tempi
sp that later ones are not repositioned (currently suffereng from
rounding errors)
2017-02-27 20:16:10 +01:00
Ben Loftis dd72d2bf65 De-cramp the transcoding dialog widgets. 2017-02-27 09:49:35 -06:00
Paul Davis e5c6f16126 fix crash caused by trying to connect monitor section before it has ports.
This does not fix the ordering issues caused by things happening
before the monitor section gaining ports
2017-02-27 16:40:53 +01:00
Paul Davis 007808a6ad fix crash caused by thinko in 123fcf3cf 2017-02-27 16:39:22 +01:00