Commit graph

12388 commits

Author SHA1 Message Date
Robin Gareus
3e7d620c9c Fix some typo. 2016-11-15 00:44:13 +01:00
Tim Mayberry
d10913e2de Fix intermittent hang when stopping PortaudioBackend
This issue is not always reproducible but when it does occur it happens
somewhat consistently on both 32bit and 64bit builds(Tested on Windows 7).

The midiOutReset call does not return (or it takes so long that it might as
well be indefinite) and as it is not strictly necessary just remove it.

Resolves: http://tracker.ardour.org/view.php?id=7095
2016-11-15 09:36:52 +10:00
Robin Gareus
35de5080a6 add signal for VST state load
MacVST has no dedicated VST event-loop to directly handle this.
2016-11-15 00:32:59 +01:00
Robin Gareus
f30fbcaaf9 Fix VST state-lock SNAFU (effSetChunk and process are exclusive) 2016-11-14 21:06:18 +01:00
Robin Gareus
8e3b6c9ac6 consolidate VSTState initialization 2016-11-14 21:06:18 +01:00
Robin Gareus
48c470d51d Pass const references to plugin-list 2016-11-14 21:06:18 +01:00
Robin Gareus
63f86b1314 Later code depends on prev_t not being NULL, use an assert() 2016-11-14 16:47:22 +01:00
Robin Gareus
e4e2d92649 tempo map cannot be empty (help static analyzer) 2016-11-14 16:47:19 +01:00
Robin Gareus
37137d5b3c fix LV2 state versioning with session-templates 2016-11-14 01:40:57 +01:00
Robin Gareus
1d60986283 const'ness FTW 2016-11-14 01:14:11 +01:00
Robin Gareus
8975f6c8d2 register some missing enums 2016-11-14 01:14:06 +01:00
Robin Gareus
aee2606b28 VST set defaults only once (initially)
Opening the generic plugin UI or re-opening the GUI will call
get_parameter_descriptor() again, and replace the defaults with
current values.
2016-11-13 18:48:33 +01:00
Robin Gareus
ec31741ee6 copy VST state on copy construction
This fixes issues with replicate instances & plugin-analysis instances
not using the same set of parameters.
2016-11-13 16:35:06 +01:00
Robin Gareus
8b93fb02f3 Mac VST-2.x support 2016-11-13 16:35:06 +01:00
Robin Gareus
43bd7f5db1 fix const-cast 2016-11-12 16:20:43 +01:00
Robin Gareus
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
Robin Gareus
2f8ccb5732 Remove a group when the last track in the group is removed 2016-11-10 23:57:47 +01:00
John Emmas
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
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
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
John Emmas
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
Tim Mayberry
8b5fad0cf9 Use better debug output in PortaudioBackend
When failing to open audio stream in callback mode
2016-11-10 15:23:43 +10:00
Tim Mayberry
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