summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2016-11-14Fix VST state-lock SNAFU (effSetChunk and process are exclusive)Robin Gareus
2016-11-14consolidate VSTState initializationRobin Gareus
2016-11-14Pass const references to plugin-listRobin Gareus
2016-11-14const'ness FTWRobin Gareus
2016-11-13Mac VST-2.x supportRobin Gareus
2016-11-10Correct the #includes for 'ardour/midi_cursor.h' (see commit #ec12fccf08)John Emmas
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-11remove unused variable and debugging.nick_m
2016-11-11rename Region pos_beats -> quarter_notenick_m
2016-11-11rename note_divisions_per_minute -> ote_types_per_minute (double note_type)nick_m
2016-11-11add empoMap::quarter_notes_between_frames().nick_m
- 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-11TempoSection::tempo_at methods return a Tempo, document the opposite direction.nick_m
2016-11-11rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.nick_m
- 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-11tempo doc explains that currently Tempo::beats_per_minute means something else.nick_m
- 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-11more tempo documentation.nick_m
2016-11-11remove unused TempoMap::tempo_at_beat(). implement unused ↵nick_m
tempo_at_quarter_note().
2016-11-11tempo.h reorganization. should be a no-opnick_m
2016-11-11remove remaining frame api from TempoSection.nick_m
2016-11-11remove public pulse methods from TempoMap.nick_m
- the only object whose musical position is not expressed in quarter notes is MetricSection. there is now no need to expose this.
2016-11-11rename Region pulse to pos_beats. use new beat distance api where required.nick_m
- 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-11Refactor tempo api, include quarter-note distance in frames method.nick_m
- 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-10Parse PortGroups into Plugin::IOPortDescriptionRobin Gareus
2016-11-08Support multiple readers for MIDI source/modelDavid Robillard
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-08Remove dead codeDavid Robillard
2016-11-07Fix LV2 state:StateChanged URIDavid Robillard
2016-11-03make ControlProtocolManager actually handle control protocols that fail to ↵Paul Davis
activate
2016-10-30Fix midnam replacement:Robin Gareus
Unloading before update may otherwise reset the patch to generic midi (when the current patch is no longer available)
2016-10-30Update prototype API (3f739738) for windows/dll compatRobin Gareus
memory allocated by a .dll must be free()d by the given dll.
2016-10-29Prototype LV2 extension for plugins to provide MidnamsRobin Gareus
2016-10-29Prepare for the day when MTAV does no longer force-override InstrumentInfoRobin Gareus
2016-10-29Allow to dynamically un/load Midnam PatchesRobin Gareus
2016-10-25Desperate hack to align master-bus on export.Robin Gareus
Another 90% solution which hopefully gives us another year :( see comments Session::start_audio_export() for explanation.
2016-10-25make MidiRegion::start/length_beats() const.nick_m
2016-10-23Introduce "virtual" async MIDI portsRobin Gareus
This allows to flush an async MIDI port's ringbuffer at cycle-start, to makes its data available as "input/source" during process(), while collecting data in the background for the next cycle. This facilitates virtual MIDI Ports for eg. Control Surface Pads: output from a surface, input to Ardour channels.
2016-10-23NO-OP: whitespaceRobin Gareus
2016-10-21when fetching MIDI ports for bundles and auto-connection, ignore ↵Paul Davis
control-only (and "virtual") MIDI ports "virtual" is a placeholder name for ALSA sequencer MIDI through ports
2016-10-20infrastructure for save/restore of MIDI port user-provided informationPaul Davis
2016-10-19add PortManager::disconnect (std::string const&)Paul Davis
2016-10-19infrastructure for MIDI-input-follows-selectionPaul Davis
2016-10-19basics of following MIDI track selection and rewiring inputPaul Davis
2016-10-19basics of managing a list of port names for MIDI-input-follows-selectionPaul Davis
2016-10-19Use official LV2 state:StateChanged URIRobin Gareus
http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=dbb18d82136d43eec435e321bffa835ba5776d6e
2016-10-19Improve bbt ruler drawing performance for large time ranges.nick_m
- when the timeline displays many bars, zoom/autoscroll speed is improved by calculating the bbt ruler scale first then requesting a suitably scaled grid.
2016-10-17fast region export -- don't call process()Robin Gareus
2016-10-18Initialize TempoMetric _pulse in sonstructor.nick_m
2016-10-14Revert "change return type of AutomationControl::actually_set_value() from ↵Paul Davis
void to bool, to indicate if value was changed." This reverts commit c104c9d4726f3ba1ecd352d13b88a57f2f964510.
2016-10-14allow feedback (loops) from internal sendsRobin Gareus
This facilitates custom "Echo" chains: Bus 1 [FX] [aux-send to Bus 2] -> master Bus 2 [FX] -> Bus 2
2016-10-13new scheme for managing port deletionPaul Davis
shared_ptr<Port> now uses a deleter functor which pushes Port* to a lock-free FIFO so that the Port is always deleted (and thus unregistered with the PortEngine/backend) in a safe context w.r.t. various callbacks in the host. Currently the auto_connect_thread in Session has been tasked with doing these deletions.
2016-10-13Inital support for Steinberg's CC121 control surfaceW.P. van Paassen
2016-10-13Allow a LV2 plugin to mark the session dirtyRobin Gareus
If some plugin-internal state changes (GUI <> Plugin e.g. load a sample) no ports change and the host does not know that the plugin state has changed. The session may be closed without save. This is a prototype using an ardour.org URI, pending upstream lv2plug.in
2016-10-12change return type of AutomationControl::actually_set_value() from void to ↵Paul Davis
bool, to indicate if value was changed. Don't call Session::set_dirty() when no change occurs