Robin Gareus [Fri, 11 Nov 2016 15:19:59 +0000 (16:19 +0100)]
VST buffer paranoia
nick_m [Fri, 11 Nov 2016 10:35:13 +0000 (21:35 +1100)]
fix compilation on osx
Robin Gareus [Fri, 11 Nov 2016 09:48:33 +0000 (10:48 +0100)]
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
Tim Mayberry [Tue, 9 Feb 2016 10:39:27 +0000 (20:39 +1000)]
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
Tim Mayberry [Wed, 7 Sep 2016 03:06:33 +0000 (13:06 +1000)]
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.
Tim Mayberry [Tue, 9 Feb 2016 10:37:53 +0000 (20:37 +1000)]
Change Editor temporal zoom methods to be able to use different scale for the zoom
Robin Gareus [Fri, 11 Nov 2016 02:54:50 +0000 (03:54 +0100)]
static MonitorSection Action -- fixes #7098
ActionManager registered actions are static global and cannot reference
an instance (this) directly.
Robin Gareus [Fri, 11 Nov 2016 00:14:18 +0000 (01:14 +0100)]
keep meterbridge on top
Robin Gareus [Thu, 10 Nov 2016 22:57:47 +0000 (23:57 +0100)]
Remove a group when the last track in the group is removed
Robin Gareus [Thu, 10 Nov 2016 22:04:12 +0000 (23:04 +0100)]
prevent crash during track-deletion (un-selecting deleted tracks)
Robin Gareus [Thu, 10 Nov 2016 20:35:40 +0000 (21:35 +0100)]
Implement instrument fan-out options (group, track/bus)
John Emmas [Thu, 10 Nov 2016 19:31:26 +0000 (19:31 +0000)]
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.
nick_m [Thu, 10 Nov 2016 17:02:17 +0000 (04:02 +1100)]
update lua script to follow Region API change.
nick_m [Thu, 10 Nov 2016 16:26:21 +0000 (03:26 +1100)]
remove debugging output
nick_m [Thu, 10 Nov 2016 16:16:09 +0000 (03:16 +1100)]
remove unused variable and debugging.
nick_m [Tue, 8 Nov 2016 17:51:19 +0000 (04:51 +1100)]
rename Region pos_beats -> quarter_note
nick_m [Tue, 8 Nov 2016 15:23:43 +0000 (02:23 +1100)]
more tempo documentation.
nick_m [Tue, 8 Nov 2016 15:01:22 +0000 (02:01 +1100)]
ensure non-zero midi region length when tempo map changes.
nick_m [Tue, 8 Nov 2016 14:42:33 +0000 (01:42 +1100)]
TempoSection note-types-per-minute node name goes back to beats-per-minute for now.
nick_m [Tue, 8 Nov 2016 14:30:32 +0000 (01:30 +1100)]
use note_type explicitly when constructing a Tempo in the hope that others follow.
- should be a no-op
nick_m [Tue, 8 Nov 2016 14:10:21 +0000 (01:10 +1100)]
remove recently added xml nodes.
nick_m [Tue, 8 Nov 2016 14:04:45 +0000 (01:04 +1100)]
use frame interval api for empoMap::framepos_plus_qn()
nick_m [Tue, 8 Nov 2016 13:49:31 +0000 (00:49 +1100)]
clarify bbt_at_frame() warning.
nick_m [Tue, 8 Nov 2016 13:48:00 +0000 (00:48 +1100)]
rename note_divisions_per_minute -> ote_types_per_minute (double note_type)
nick_m [Tue, 8 Nov 2016 13:37:52 +0000 (00:37 +1100)]
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.
nick_m [Tue, 8 Nov 2016 13:07:37 +0000 (00:07 +1100)]
TempoSection::tempo_at methods return a Tempo, document the opposite direction.
nick_m [Sat, 5 Nov 2016 18:39:37 +0000 (05:39 +1100)]
audio units uses quarter_notes_per_minute().
nick_m [Sat, 5 Nov 2016 18:14:20 +0000 (05:14 +1100)]
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.
nick_m [Sat, 5 Nov 2016 11:29:31 +0000 (22:29 +1100)]
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.
nick_m [Thu, 3 Nov 2016 17:18:00 +0000 (04:18 +1100)]
remove commented code.
nick_m [Thu, 3 Nov 2016 16:19:21 +0000 (03:19 +1100)]
more tempo documentation.
nick_m [Thu, 3 Nov 2016 15:17:59 +0000 (02:17 +1100)]
fix lock error in empoMap::quarter_note_at_bbt_rt(), expand constant tempo test.
nick_m [Thu, 3 Nov 2016 15:12:20 +0000 (02:12 +1100)]
remove unused TempoMap::tempo_at_beat(). implement unused tempo_at_quarter_note().
nick_m [Thu, 3 Nov 2016 14:54:00 +0000 (01:54 +1100)]
tempo.h reorganization. should be a no-op
nick_m [Thu, 3 Nov 2016 14:31:15 +0000 (01:31 +1100)]
more documentation in tempo.cc, fix constant bug in pulse_at_tempo_locked()
nick_m [Thu, 3 Nov 2016 14:21:57 +0000 (01:21 +1100)]
remove remaining frame api from TempoSection.
nick_m [Tue, 1 Nov 2016 10:54:11 +0000 (21:54 +1100)]
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.
nick_m [Mon, 31 Oct 2016 17:45:38 +0000 (04:45 +1100)]
add some documentation for TempoMap.
nick_m [Mon, 31 Oct 2016 13:40:05 +0000 (00:40 +1100)]
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.
nick_m [Sun, 30 Oct 2016 13:01:02 +0000 (00:01 +1100)]
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
nick_m [Sun, 30 Oct 2016 12:42:06 +0000 (23:42 +1100)]
MidiRegion _start/_length beats are frame based only when lock style is Audiotime
nick_m [Sun, 30 Oct 2016 12:21:42 +0000 (23:21 +1100)]
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.
Robin Gareus [Thu, 10 Nov 2016 16:32:03 +0000 (17:32 +0100)]
Revert "update lua script to follow API change (
bb459a2e7d)"
This reverts commit
f09e9347e140d8b0151dd1bf1b5f91e473674699.
because the new-midi branch wasn't merged, yet
John Emmas [Thu, 10 Nov 2016 12:20:53 +0000 (12:20 +0000)]
#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 ?!?
Tim Mayberry [Thu, 10 Nov 2016 01:41:19 +0000 (11:41 +1000)]
Use better debug output in PortaudioBackend
When failing to open audio stream in callback mode
Tim Mayberry [Fri, 14 Oct 2016 02:35:05 +0000 (12:35 +1000)]
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.
Tim Mayberry [Fri, 14 Oct 2016 01:30:45 +0000 (11:30 +1000)]
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.
Robin Gareus [Thu, 10 Nov 2016 04:02:31 +0000 (05:02 +0100)]
Add AU support for output-channel/bus grouping
Robin Gareus [Thu, 10 Nov 2016 03:54:42 +0000 (04:54 +0100)]
don't ship fan-out instrument lua script (but keep it as example)
Robin Gareus [Thu, 10 Nov 2016 03:54:03 +0000 (04:54 +0100)]
C++ implementation of fan_out_instrument.lua
Robin Gareus [Thu, 10 Nov 2016 00:45:00 +0000 (01:45 +0100)]
NO-OP, explanatory comments
Robin Gareus [Thu, 10 Nov 2016 00:30:11 +0000 (01:30 +0100)]
prototype script to fan out instrument outputs to busses
Robin Gareus [Thu, 10 Nov 2016 00:28:21 +0000 (01:28 +0100)]
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>
Robin Gareus [Wed, 9 Nov 2016 23:09:38 +0000 (00:09 +0100)]
Parse PortGroups into Plugin::IOPortDescription
Robin Gareus [Wed, 9 Nov 2016 11:57:57 +0000 (12:57 +0100)]
another lua DSP example
David Robillard [Wed, 9 Nov 2016 01:34:45 +0000 (20:34 -0500)]
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.
David Robillard [Tue, 8 Nov 2016 18:52:44 +0000 (13:52 -0500)]
Remove dead code
Robin Gareus [Tue, 8 Nov 2016 12:16:27 +0000 (13:16 +0100)]
Honor VST "Synth" Category for now...
..until we find a backwards compatible way to save/load effFlagsIsSynth
in the cache info files.
Len Ovens [Mon, 7 Nov 2016 19:08:00 +0000 (11:08 -0800)]
make auto track naming make a bit more sense
Len Ovens [Mon, 7 Nov 2016 16:29:34 +0000 (08:29 -0800)]
Set session dirty if tracks are reordered by user.
David Robillard [Mon, 7 Nov 2016 01:27:55 +0000 (20:27 -0500)]
Fix LV2 state:StateChanged URI
Len Ovens [Mon, 7 Nov 2016 05:59:33 +0000 (21:59 -0800)]
One more piece to the moving master puzzle.
Len Ovens [Fri, 4 Nov 2016 19:10:37 +0000 (12:10 -0700)]
OSC: Fix default strip types to include Auxes.
Len Ovens [Fri, 4 Nov 2016 15:39:41 +0000 (08:39 -0700)]
Fix Drifting Master hopefully for real this time.
Paul Davis [Thu, 3 Nov 2016 20:23:40 +0000 (20:23 +0000)]
make ControlProtocolManager actually handle control protocols that fail to activate
Robin Gareus [Wed, 2 Nov 2016 18:24:46 +0000 (19:24 +0100)]
fix LTC-generator 24h wraparound
Robin Gareus [Wed, 2 Nov 2016 16:54:24 +0000 (17:54 +0100)]
prevent infinite loop when calculating tick marks on low zoom levels
Robin Gareus [Mon, 31 Oct 2016 14:27:14 +0000 (15:27 +0100)]
update lua script to follow API change (
bb459a2e7d)
Len Ovens [Mon, 31 Oct 2016 00:50:38 +0000 (17:50 -0700)]
OSC: Make Aux buses able to be separate.
Robin Gareus [Sun, 30 Oct 2016 23:35:53 +0000 (00:35 +0100)]
Fix crash when instrument instantiation fails on track creation.
Robin Gareus [Sun, 30 Oct 2016 21:25:18 +0000 (22:25 +0100)]
extend Mixbus' "Safe Mode"
Robin Gareus [Sun, 30 Oct 2016 20:24:26 +0000 (21:24 +0100)]
Fix midnam replacement:
Unloading before update may otherwise reset the patch to
generic midi (when the current patch is no longer available)
Robin Gareus [Sun, 30 Oct 2016 16:39:47 +0000 (17:39 +0100)]
remove debug output
Robin Gareus [Sun, 30 Oct 2016 16:38:24 +0000 (17:38 +0100)]
Update prototype API (
3f739738) for windows/dll compat
memory allocated by a .dll must be free()d by the given dll.
Robin Gareus [Sun, 30 Oct 2016 16:35:21 +0000 (17:35 +0100)]
Drop UpdateMidnam shared_ptr reference when the plugin is removed
Len Ovens [Sun, 30 Oct 2016 13:48:05 +0000 (06:48 -0700)]
Fix moving master
Robin Gareus [Sun, 30 Oct 2016 03:51:31 +0000 (04:51 +0100)]
avoid C++11 (and remove debug output)
Robin Gareus [Sat, 29 Oct 2016 17:28:18 +0000 (19:28 +0200)]
GUI support for plugin provided midnam
Robin Gareus [Sat, 29 Oct 2016 17:21:48 +0000 (19:21 +0200)]
Prototype LV2 extension for plugins to provide Midnams
Robin Gareus [Sat, 29 Oct 2016 17:02:33 +0000 (19:02 +0200)]
Prepare for the day when MTAV does no longer force-override InstrumentInfo
Robin Gareus [Sat, 29 Oct 2016 17:01:16 +0000 (19:01 +0200)]
Allow to dynamically un/load Midnam Patches
Robin Gareus [Sat, 29 Oct 2016 15:03:34 +0000 (17:03 +0200)]
Allow to construct a XML tree from a text buffer
Robin Gareus [Sat, 29 Oct 2016 01:13:59 +0000 (03:13 +0200)]
Fix crash with empty patch-names.
An empty text will not produce a bounding box.
Robin Gareus [Sat, 29 Oct 2016 01:11:49 +0000 (03:11 +0200)]
a-fluidsynth: fix off-by one. Assign all MIDI channels if possible
Len Ovens [Sat, 29 Oct 2016 17:56:44 +0000 (10:56 -0700)]
OSC: Slow down data storm at surface refresh
Len Ovens [Sat, 29 Oct 2016 00:34:17 +0000 (17:34 -0700)]
OSC: Add names/fader value to master and monitor.
Len Ovens [Fri, 28 Oct 2016 22:05:40 +0000 (15:05 -0700)]
OSC: simplify int sends too.
Len Ovens [Fri, 28 Oct 2016 21:42:56 +0000 (14:42 -0700)]
OSC: More simplification - floats this time.
Len Ovens [Fri, 28 Oct 2016 20:45:30 +0000 (13:45 -0700)]
OSC: simplify Global feedback (remove repetitive code)
Robin Gareus [Thu, 27 Oct 2016 13:57:47 +0000 (15:57 +0200)]
yet another waf/HIDAPI tweak
Robin Gareus [Thu, 27 Oct 2016 01:32:59 +0000 (03:32 +0200)]
Prevent duplicate moves when selecting regions on shared playlists
selecting regions on multiple tracks which share playlists and
dragging them has various odd side-effects. This prevents the worst
of such edge-cases.
A cleaner solution would be to not allow selecting the same region
on multiple tracks at the same time in the first place.
Comments are welcome.
Tim Mayberry [Sat, 1 Oct 2016 08:05:11 +0000 (18:05 +1000)]
Fix restoration of key bindings assigned to Windows+key, bug #7037
Windows key generates Mod4+Super (at least with the version of Gdk we use on
linux) so for bindings using the Windows key to work, GDK_SUPER_MASK has to be
added to modifier mask.
Robin Gareus [Tue, 25 Oct 2016 20:33:37 +0000 (22:33 +0200)]
Desperate hack to align master-bus on export.
Another 90% solution which hopefully gives us another year :(
see comments Session::start_audio_export() for explanation.
nick_m [Tue, 25 Oct 2016 17:52:09 +0000 (04:52 +1100)]
clean up ghost note wrt create drag.
- hide ghost note when add dragging.
- new note length snaps as per ghost note start (shifted snap).
- prevent ghost note from appearing before region start.
nick_m [Mon, 24 Oct 2016 17:36:34 +0000 (04:36 +1100)]
don't mix framepos with quarter notes when calculating _start frames.
- quarter note precision is greater than the frame-based
_position. using it as a reference may cause a rounding error
if the region is locked to MusicTime.
- also fixes a _start position bug when trimming midi regions.
- we really need a better api for this kind of thing.
- in combination with the previous two patches, this should fix
various missing first note issues.
nick_m [Mon, 24 Oct 2016 17:15:50 +0000 (04:15 +1100)]
make MidiRegion::start/length_beats() const.
nick_m [Mon, 24 Oct 2016 17:14:14 +0000 (04:14 +1100)]
remove unnecessary rounding from MidiSource::midi_read()
- we already have start_beats, so don't try to recalculate
something similar for the position comparison.
nick_m [Mon, 24 Oct 2016 17:02:58 +0000 (04:02 +1100)]
expand on existing tempo tests.
nick_m [Mon, 24 Oct 2016 16:59:13 +0000 (03:59 +1100)]
Don't recalculate region beat position on session load, fix AudioTime thinko.
Len Ovens [Mon, 24 Oct 2016 02:00:20 +0000 (19:00 -0700)]
OSC fix debug logic for catchall messages