13
0
Commit Graph

22708 Commits

Author SHA1 Message Date
a32a272709 VST buffer paranoia 2016-11-11 16:40:01 +01:00
nick_m
50d12abeab fix compilation on osx 2016-11-11 21:35:13 +11:00
857c0d4a5e Refine instrument fan-out:
* prefix (rather than suffix) portgroup-name
* check if group already exists
* disconnect targets (when autoconnect preference is enabled)
* expose tracks/busses option
2016-11-11 10:48:33 +01:00
dac2d41ee2 Add option to zoom using button press in the time rulers and dragging vertically
This is a common operation used for zooming in other DAWs like Ableton Live and
Cubase. To support such a usage pattern without changing the existing behaviour
of the ruler area I've made it an option that is false by default.

The behaviour of RulerDragZoom is intentionally different than a CursorDrag
that occurs in the rest of the ruler area in that it doesn't follow the snap to
grid setting and no locate related stuff occurs until button release.

There are some issues with responsiveness with more than a few hundred regions
or a large amount of MIDI events/notes.

Implements feature #6768
2016-11-11 14:13:53 +10:00
37a7d87786 Use the frame corresponding to the current mouse position when zoom dragging
Editor::mouse_frame only works within the track canvas. If a zoom drag is
initiated and the mouse cursor goes outside of the track canvas the zoom
position should still based on the current x position of the cursor.
2016-11-11 14:13:53 +10:00
9485748e17 Change Editor temporal zoom methods to be able to use different scale for the zoom 2016-11-11 14:13:53 +10:00
4499066f39 static MonitorSection Action -- fixes #7098
ActionManager registered actions are static global and cannot reference
an instance (this) directly.
2016-11-11 03:54:50 +01:00
f83dbf83f4 keep meterbridge on top 2016-11-11 01:14:18 +01:00
2f8ccb5732 Remove a group when the last track in the group is removed 2016-11-10 23:57:47 +01:00
9990da35d8 prevent crash during track-deletion (un-selecting deleted tracks) 2016-11-10 23:20:58 +01:00
33942e6d52 Implement instrument fan-out options (group, track/bus) 2016-11-10 21:39:20 +01:00
ddd79819dc Correct the #includes for 'ardour/midi_cursor.h' (see commit #ec12fccf08)
There are a couple of header files where we use a reference to class ARDOUR::MidiCursor (rather than a pointer). To keep MSVC happy we need to #include its header file, rather than simply using a forward reference.
2016-11-10 19:31:26 +00:00
nick_m
953dcb9153 update lua script to follow Region API change. 2016-11-11 04:02:17 +11:00
nick_m
bf416cb91e remove debugging output 2016-11-11 03:37:08 +11:00
nick_m
425fe93fde remove unused variable and debugging. 2016-11-11 03:37:08 +11:00
nick_m
d9dea0a3aa rename Region pos_beats -> quarter_note 2016-11-11 03:37:08 +11:00
nick_m
3816ee4e92 more tempo documentation. 2016-11-11 03:37:08 +11:00
nick_m
4e41b71a4e ensure non-zero midi region length when tempo map changes. 2016-11-11 03:37:08 +11:00
nick_m
a5dc7a01d3 TempoSection note-types-per-minute node name goes back to beats-per-minute for now. 2016-11-11 03:37:08 +11:00
nick_m
e8042f5843 use note_type explicitly when constructing a Tempo in the hope that others follow.
- should be a no-op
2016-11-11 03:37:08 +11:00
nick_m
5aafb0b534 remove recently added xml nodes. 2016-11-11 03:37:08 +11:00
nick_m
43f79cb00c use frame interval api for empoMap::framepos_plus_qn() 2016-11-11 03:37:08 +11:00
nick_m
35ec9b33cf clarify bbt_at_frame() warning. 2016-11-11 03:37:08 +11:00
nick_m
b025f8e42a rename note_divisions_per_minute -> ote_types_per_minute (double note_type) 2016-11-11 03:37:08 +11:00
nick_m
0b7db6ebbb add empoMap::quarter_notes_between_frames().
- in an ideal world, this wouldn't be here at all,
	  but is required to support framewalk_to_qn().
	  if Beats are at tick resolution, the frame-induced
	  temporal rounding is acceptable.
2016-11-11 03:37:08 +11:00
nick_m
a432f6585c TempoSection::tempo_at methods return a Tempo, document the opposite direction. 2016-11-11 03:37:08 +11:00
nick_m
3ee59cf499 audio units uses quarter_notes_per_minute(). 2016-11-11 03:37:08 +11:00
nick_m
33e95a1577 rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.
- adds quarter_notes_per_minute(), note_divisions_per_minute (double)
	  pulses_per_minute() and frames_per_quarter_note()

	- this should be a no-op except for the use of tempo by
	  the vst callback which definitely uses quarter notes per minute.

	- the XML node for TempoSection named 'beats-per-minute'
	  has been renamed.
2016-11-11 03:37:08 +11:00
nick_m
e52f90357e tempo doc explains that currently Tempo::beats_per_minute means something else.
- Tempo beats_per_minute() is currently implemented as note types per minute.
	  a further patch will change Tempo to reflect this and provide some helpers.
2016-11-11 03:37:08 +11:00
nick_m
2f593e3af9 remove commented code. 2016-11-11 03:37:08 +11:00
nick_m
9df27844fc more tempo documentation. 2016-11-11 03:37:08 +11:00
nick_m
5788f42438 fix lock error in empoMap::quarter_note_at_bbt_rt(), expand constant tempo test. 2016-11-11 03:37:08 +11:00
nick_m
93ca7b42fb remove unused TempoMap::tempo_at_beat(). implement unused tempo_at_quarter_note(). 2016-11-11 03:37:08 +11:00
nick_m
99e707217b tempo.h reorganization. should be a no-op 2016-11-11 03:37:08 +11:00
nick_m
9674b15358 more documentation in tempo.cc, fix constant bug in pulse_at_tempo_locked() 2016-11-11 03:37:08 +11:00
nick_m
1fa7c0d829 remove remaining frame api from TempoSection. 2016-11-11 03:37:08 +11:00
nick_m
594137f5cc remove public pulse methods from TempoMap.
- the only object whose musical position is not expressed in
	  quarter notes is MetricSection.
	  there is now no need to expose this.
2016-11-11 03:37:08 +11:00
nick_m
3db68b4f9e add some documentation for TempoMap. 2016-11-11 03:37:08 +11:00
nick_m
1d540605ac clamp setting tempo via vertical drag.
- a bit suboptimal. we really need the opposite of _trackview_only
	  to prevent jumping to track canvas scrolled coordinates in the first place.
2016-11-11 03:37:08 +11:00
nick_m
dca96d8b5d rename Region pulse to pos_beats. use new beat distance api where required.
- add more debugging output detecting regions whose
	  beat and frame position do not align on a playlist.
	  this is required as a check as we have never used
	  frame rounding on constant tempi before 8884a5723dc
2016-11-11 03:37:08 +11:00
nick_m
ac23496b40 MidiRegion _start/_length beats are frame based only when lock style is Audiotime 2016-11-11 03:37:08 +11:00
nick_m
0e867b544b Refactor tempo api, include quarter-note distance in frames method.
- moves frame rounding up to TempoMap, which is needed
	  in order to calculate pulse distance without frame rounding.

	- the time unit for tempo is still minute, but this now also
	  applies to meter sections. (new audio locked meter sections no
	  longer require a frame position).

	- there is no longer a discontinuity
	  in the pulse for audio-locked meter/tempi.

	- temporarily add debugging output in Region::set_position()
	  to test for region beat not matching region frame.
2016-11-11 03:37:08 +11:00
ae63243bf3 Revert "update lua script to follow API change (bb459a2e7d)"
This reverts commit f09e9347e1.
because the new-midi branch wasn't merged, yet
2016-11-10 17:32:19 +01:00
ec12fccf08 #include <ardour/midi_cursor.h> in a couple of places
I'm not entirely sure why it's needed in 'smf_source.cc' but MSVC fails to link the compiled module if I don't #include it ?!?
2016-11-10 12:20:53 +00:00
8b5fad0cf9 Use better debug output in PortaudioBackend
When failing to open audio stream in callback mode
2016-11-10 15:23:43 +10:00
ed09a68f24 Fix for conflicting definition of _xgetbv with mingw-w64 >= 5
Simplify the #ifdef logic so it is easier to follow and add exceptions in the
future if necessary.
2016-11-10 15:23:43 +10:00
8520312f97 Check and link to the pangoft2 module with a mingw build if it exists
This is necessary when pango has been built without all modules included as
bundle_env_mingw.cc uses a function from the pango module and results a linker
error:

bundle_env_mingw.cc:114: undefined reference to `pango_ft2_font_map_get_type'

Minimum pango version is taken from the official build scripts.
2016-11-10 15:23:43 +10:00
781d88e4ed Add AU support for output-channel/bus grouping 2016-11-10 05:02:31 +01:00
e34f8dbf1e don't ship fan-out instrument lua script (but keep it as example) 2016-11-10 04:55:03 +01:00
b116a68a5c C++ implementation of fan_out_instrument.lua 2016-11-10 04:54:59 +01:00