Commit Graph

11908 Commits

Author SHA1 Message Date
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
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
781d88e4ed Add AU support for output-channel/bus grouping 2016-11-10 05:02:31 +01:00
d253d49739 NO-OP, explanatory comments 2016-11-10 01:45:00 +01:00
da937cf1a4 Grow luabindings
* expose Route IOs, Panner and Instrument
* add plugin + processor ChanCount
* bind IOPortDescription
* remove Port::**(Port*) API because there's no Port* but only
boost::shared_ptr<Port>
2016-11-10 01:32:02 +01:00
ef3fa314f0 Parse PortGroups into Plugin::IOPortDescription 2016-11-10 01:31:56 +01:00
c61373212a Support multiple readers for MIDI source/model
Fixes the multiple reader issue #6541 properly without resorting to a
linear search kludge.

All the read state has been pulled out into a MidiCursor which the
caller is required to pass.  The playlist keeps cursors for all the
regions it is reading, any number of cursors are allowed at a time.

MidiCursor should probably be made a smarter and more fool-proof
object (and/or possibly merged with some of the other tracker/fixer
stuff) but for now I wanted to keep it simple.
2016-11-08 20:34:45 -05:00
72297c0ca3 Remove dead code 2016-11-08 13:52:44 -05:00
5438c94765 Honor VST "Synth" Category for now...
..until we find a backwards compatible way to save/load effFlagsIsSynth
in the cache info files.
2016-11-08 13:30:09 +01:00
6fb099a88b make auto track naming make a bit more sense 2016-11-07 11:08:00 -08:00
ea10a896c6 Fix LV2 state:StateChanged URI 2016-11-07 07:10:08 -05:00
91c2527f5c OSC: Fix default strip types to include Auxes. 2016-11-04 12:10:37 -07:00
8fb8e1bbde make ControlProtocolManager actually handle control protocols that fail to activate 2016-11-03 20:24:09 +00:00
3abdef2637 fix LTC-generator 24h wraparound 2016-11-02 19:24:46 +01:00
77c9106769 OSC: Make Aux buses able to be separate. 2016-10-30 17:50:38 -07:00
3f0130f8ea Fix crash when instrument instantiation fails on track creation. 2016-10-31 00:35:53 +01:00
a994fd30bd extend Mixbus' "Safe Mode" 2016-10-30 22:25:18 +01:00
e08c80370c Fix midnam replacement:
Unloading before update may otherwise reset the patch to
generic midi (when the current patch is no longer available)
2016-10-30 21:24:26 +01:00
2a0aadfd97 remove debug output 2016-10-30 17:39:55 +01:00
db2d238cec Update prototype API (3f739738) for windows/dll compat
memory allocated by a .dll must be free()d by the given dll.
2016-10-30 17:39:55 +01:00
0ea9270a4b avoid C++11 (and remove debug output) 2016-10-30 04:51:31 +01:00
3f73973806 Prototype LV2 extension for plugins to provide Midnams 2016-10-29 19:57:43 +02:00
f8167ebe20 Prepare for the day when MTAV does no longer force-override InstrumentInfo 2016-10-29 19:57:43 +02:00
0332c127cd Allow to dynamically un/load Midnam Patches 2016-10-29 19:57:43 +02:00
06700cb2f4 Allow to construct a XML tree from a text buffer 2016-10-29 19:57:43 +02:00
5ed764178a Fix crash with empty patch-names.
An empty text will not produce a bounding box.
2016-10-29 19:57:43 +02:00
c5d4900ea4 a-fluidsynth: fix off-by one. Assign all MIDI channels if possible 2016-10-29 19:57:43 +02:00
9d63002d2f OSC: Slow down data storm at surface refresh 2016-10-29 10:56:44 -07:00
82d3842656 OSC: Add names/fader value to master and monitor. 2016-10-28 17:34:17 -07:00
e631119092 OSC: simplify int sends too. 2016-10-28 15:05:40 -07:00
d802c982cb OSC: More simplification - floats this time. 2016-10-28 14:42:56 -07:00
4eb2da491f OSC: simplify Global feedback (remove repetitive code) 2016-10-28 13:45:30 -07:00