ardour.git
7 years agoPrototype LV2 extension for plugins to provide Midnams
Robin Gareus [Sat, 29 Oct 2016 17:21:48 +0000 (19:21 +0200)]
Prototype LV2 extension for plugins to provide Midnams

7 years agoPrepare for the day when MTAV does no longer force-override InstrumentInfo
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

7 years agoAllow to dynamically un/load Midnam Patches
Robin Gareus [Sat, 29 Oct 2016 17:01:16 +0000 (19:01 +0200)]
Allow to dynamically un/load Midnam Patches

7 years agoAllow to construct a XML tree from a text buffer
Robin Gareus [Sat, 29 Oct 2016 15:03:34 +0000 (17:03 +0200)]
Allow to construct a XML tree from a text buffer

7 years agoFix crash with empty patch-names.
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.

7 years agoa-fluidsynth: fix off-by one. Assign all MIDI channels if possible
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

7 years agoOSC: Slow down data storm at surface refresh
Len Ovens [Sat, 29 Oct 2016 17:56:44 +0000 (10:56 -0700)]
OSC: Slow down data storm at surface refresh

7 years agoOSC: Add names/fader value to master and monitor.
Len Ovens [Sat, 29 Oct 2016 00:34:17 +0000 (17:34 -0700)]
OSC: Add names/fader value to master and monitor.

7 years agoOSC: simplify int sends too.
Len Ovens [Fri, 28 Oct 2016 22:05:40 +0000 (15:05 -0700)]
OSC: simplify int sends too.

7 years agoOSC: More simplification - floats this time.
Len Ovens [Fri, 28 Oct 2016 21:42:56 +0000 (14:42 -0700)]
OSC: More simplification - floats this time.

7 years agoOSC: simplify Global feedback (remove repetitive code)
Len Ovens [Fri, 28 Oct 2016 20:45:30 +0000 (13:45 -0700)]
OSC: simplify Global feedback (remove repetitive code)

7 years agoyet another waf/HIDAPI tweak
Robin Gareus [Thu, 27 Oct 2016 13:57:47 +0000 (15:57 +0200)]
yet another waf/HIDAPI tweak

7 years agoPrevent duplicate moves when selecting regions on shared playlists
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.

7 years agoFix restoration of key bindings assigned to Windows+key, bug #7037
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.

7 years agoDesperate hack to align master-bus on export.
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.

7 years agoclean up ghost note wrt create drag.
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.

7 years agodon't mix framepos with quarter notes when calculating _start frames.
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.

7 years agomake MidiRegion::start/length_beats() const.
nick_m [Mon, 24 Oct 2016 17:15:50 +0000 (04:15 +1100)]
make MidiRegion::start/length_beats() const.

7 years agoremove unnecessary rounding from MidiSource::midi_read()
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.

7 years agoexpand on existing tempo tests.
nick_m [Mon, 24 Oct 2016 17:02:58 +0000 (04:02 +1100)]
expand on existing tempo tests.

7 years agoDon't recalculate region beat position on session load, fix AudioTime thinko.
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.

7 years agoOSC fix debug logic for catchall messages
Len Ovens [Mon, 24 Oct 2016 02:00:20 +0000 (19:00 -0700)]
OSC fix debug logic for catchall messages

7 years agoOSC Accept int in first parameter in path commands as well as float.
Len Ovens [Mon, 24 Oct 2016 01:45:25 +0000 (18:45 -0700)]
OSC Accept int in first parameter in path commands as well as float.

7 years agoFix HIDAPI optional (python: False vs 'False')
Robin Gareus [Sun, 23 Oct 2016 22:51:51 +0000 (00:51 +0200)]
Fix HIDAPI optional (python: False vs 'False')

7 years agoInclude hidapi library
Robin Gareus [Sun, 23 Oct 2016 20:53:10 +0000 (22:53 +0200)]
Include hidapi library

7 years agoIntroduce "virtual" async MIDI ports
Robin Gareus [Sun, 23 Oct 2016 20:25:40 +0000 (22:25 +0200)]
Introduce "virtual" async MIDI ports

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.

7 years agoNO-OP: whitespace
Robin Gareus [Sun, 23 Oct 2016 20:18:07 +0000 (22:18 +0200)]
NO-OP: whitespace

7 years agoDon't add initial points for MIDI-CC
Robin Gareus [Sun, 23 Oct 2016 12:20:48 +0000 (14:20 +0200)]
Don't add initial points for MIDI-CC

eg. import a .mid that has a CC later in the file.
Arodur wrongly added an initial point, effectively moving the event
backwards to "0" (no virgin territory)

7 years agowhen fetching MIDI ports for bundles and auto-connection, ignore control-only (and...
Paul Davis [Fri, 21 Oct 2016 20:32:46 +0000 (16:32 -0400)]
when fetching MIDI ports for bundles and auto-connection, ignore control-only (and "virtual") MIDI ports

"virtual" is a placeholder name for ALSA sequencer MIDI through ports

7 years agoremove debug output
Paul Davis [Fri, 21 Oct 2016 20:31:53 +0000 (16:31 -0400)]
remove debug output

7 years agominor code-tidying tweak - continue if port handle is null, rather than nest inside...
Paul Davis [Fri, 21 Oct 2016 20:31:16 +0000 (16:31 -0400)]
minor code-tidying tweak - continue if port handle is null, rather than nest inside conditional

7 years agovamp_audio_to_midi script now operates on a list of regions, calling qm-transcription...
Nathan Stewart [Fri, 21 Oct 2016 04:36:13 +0000 (00:36 -0400)]
vamp_audio_to_midi script now operates on a list of regions, calling qm-transcription for each region. The MIDI region holding the output is resized to the extents of the audio region list. This is because qm-transcription is a memory hog and barfs if you try to process too big a region.

7 years agoTrack Insert/Remove Time dialog:
Ben Loftis [Thu, 20 Oct 2016 21:18:19 +0000 (16:18 -0500)]
Track Insert/Remove Time dialog:
 Disambiguate "glued" -> glued-to-musical-time (MIDI) regions.
 *Users didn't know that this is necessary to operate on MIDI regions.

7 years agoTrack Insert/Remove dialog improvements:
Ben Loftis [Thu, 20 Oct 2016 19:59:48 +0000 (14:59 -0500)]
Track Insert/Remove dialog improvements:
 By default, enable glued regions and markers.
 If you are removing time, you probably want MIDI regions to move.

7 years agoTrack Add/Remove Time dialog improvements:
Ben Loftis [Thu, 20 Oct 2016 19:53:34 +0000 (14:53 -0500)]
Track Add/Remove Time dialog improvements:
 Add a clock to show the position of the edit, to remove ambiguity
 If a Range is selected, pre-fill the position and length clocks
 Clock format should default to the editor's secondary clock mode

7 years agouse new API for user-provided MIDI port information
Paul Davis [Thu, 20 Oct 2016 20:34:45 +0000 (16:34 -0400)]
use new API for user-provided MIDI port information

7 years agoinfrastructure for save/restore of MIDI port user-provided information
Paul Davis [Thu, 20 Oct 2016 20:34:06 +0000 (16:34 -0400)]
infrastructure for save/restore of MIDI port user-provided information

7 years agoGUI tweaks for MIDI port options
Paul Davis [Thu, 20 Oct 2016 15:34:26 +0000 (11:34 -0400)]
GUI tweaks for MIDI port options

7 years agotweak logic for MIDI input follows selection
Paul Davis [Thu, 20 Oct 2016 15:34:14 +0000 (11:34 -0400)]
tweak logic for MIDI input follows selection

7 years agoInsertRemoveTimeDialog initially ignores mouse edit position. also do this for distan...
nick_m [Thu, 20 Oct 2016 15:50:35 +0000 (02:50 +1100)]
InsertRemoveTimeDialog initially ignores mouse edit position. also do this for distance calculation.

7 years agobbt duration clock tweak.
nick_m [Thu, 20 Oct 2016 15:49:04 +0000 (02:49 +1100)]
bbt duration clock tweak.

7 years agoRemove some (no longer needed) source files from our MSVC project (gtk2_ardour)
John Emmas [Thu, 20 Oct 2016 15:16:27 +0000 (16:16 +0100)]
Remove some (no longer needed) source files from our MSVC project (gtk2_ardour)

7 years agoMIDI port options now tracks dynamic port register/unregister
Paul Davis [Thu, 20 Oct 2016 14:21:44 +0000 (10:21 -0400)]
MIDI port options now tracks dynamic port register/unregister

7 years agoadd mcp device files for artist series controllers
Ben Loftis [Thu, 20 Oct 2016 04:00:05 +0000 (23:00 -0500)]
add mcp device files for artist series controllers

7 years agoslight improvements in logic for midi-input-follows-selection
Paul Davis [Thu, 20 Oct 2016 03:17:39 +0000 (23:17 -0400)]
slight improvements in logic for midi-input-follows-selection

7 years agoadd PortManager::disconnect (std::string const&)
Paul Davis [Thu, 20 Oct 2016 03:17:08 +0000 (23:17 -0400)]
add PortManager::disconnect (std::string const&)

7 years agovarious tweaks to improve the preferences presentation of midi-input-follows-selection
Paul Davis [Thu, 20 Oct 2016 02:35:05 +0000 (22:35 -0400)]
various tweaks to improve the preferences presentation of midi-input-follows-selection

7 years agoneed to refill treeviews for MIDI port prefs at least once
Paul Davis [Wed, 19 Oct 2016 21:49:29 +0000 (17:49 -0400)]
need to refill treeviews for MIDI port prefs at least once

7 years agomove MIDI port options out of engine dialog and into prefs
Paul Davis [Wed, 19 Oct 2016 21:44:54 +0000 (17:44 -0400)]
move MIDI port options out of engine dialog and into prefs

7 years agoinfrastructure for MIDI-input-follows-selection
Paul Davis [Wed, 19 Oct 2016 21:17:30 +0000 (17:17 -0400)]
infrastructure for MIDI-input-follows-selection

7 years agobasics of following MIDI track selection and rewiring input
Paul Davis [Wed, 19 Oct 2016 19:13:32 +0000 (15:13 -0400)]
basics of following MIDI track selection and rewiring input

7 years agoNOOP: whitespacing tweak
Paul Davis [Wed, 19 Oct 2016 19:13:09 +0000 (15:13 -0400)]
NOOP: whitespacing tweak

7 years agobasics of managing a list of port names for MIDI-input-follows-selection
Paul Davis [Wed, 19 Oct 2016 19:12:49 +0000 (15:12 -0400)]
basics of managing a list of port names for MIDI-input-follows-selection

7 years agoUse official LV2 state:StateChanged URI
Robin Gareus [Wed, 19 Oct 2016 17:45:35 +0000 (19:45 +0200)]
Use official LV2 state:StateChanged URI

http://lv2plug.in/git/cgit.cgi/lv2.git/commit/?id=dbb18d82136d43eec435e321bffa835ba5776d6e

7 years agoWork around OSX MIDI devices that send no timestamps
Robin Gareus [Wed, 19 Oct 2016 17:10:18 +0000 (19:10 +0200)]
Work around OSX MIDI devices that send no timestamps

7 years agobbt duration clock - revert 3d38b4f58ec0 and a32aea4201. use an alternate fix.
nick_m [Wed, 19 Oct 2016 16:40:06 +0000 (03:40 +1100)]
bbt duration clock - revert 3d38b4f58ec0 and a32aea4201. use an alternate fix.

7 years agoDuration clock edit uses current time to resolve meter.
nick_m [Wed, 19 Oct 2016 12:09:24 +0000 (23:09 +1100)]
Duration clock edit uses current time to resolve meter.

- should fix the remaining part of #7072

7 years agoset up MIDI port treeview columns *just once*
Paul Davis [Wed, 19 Oct 2016 01:18:32 +0000 (21:18 -0400)]
set up MIDI port treeview columns *just once*

7 years agocorrectly show both the old MIDI setup tab (device oriented) and the new one (port...
Paul Davis [Tue, 18 Oct 2016 22:14:00 +0000 (18:14 -0400)]
correctly show both the old MIDI setup tab (device oriented) and the new one (port oriented)

7 years agofurther work on a MIDI port functionality dialog
Paul Davis [Tue, 18 Oct 2016 22:00:55 +0000 (18:00 -0400)]
further work on a MIDI port functionality dialog

7 years agoAdd tooltip info for inline-display
Robin Gareus [Tue, 18 Oct 2016 21:40:14 +0000 (23:40 +0200)]
Add tooltip info for inline-display

7 years agobeginnings of a tab in Audio/MIDI setup to manage MIDI port functionality
Paul Davis [Tue, 18 Oct 2016 20:56:35 +0000 (16:56 -0400)]
beginnings of a tab in Audio/MIDI setup to manage MIDI port functionality

7 years agoremove unnecessary and now impossible #include
Paul Davis [Tue, 18 Oct 2016 20:56:28 +0000 (16:56 -0400)]
remove unnecessary and now impossible #include

7 years agoremove unusued and useless midi_port_dialog.{cc,h} files
Paul Davis [Tue, 18 Oct 2016 20:53:54 +0000 (16:53 -0400)]
remove unusued and useless midi_port_dialog.{cc,h} files

7 years agofix retrieval of port properties (metadata) when the value has no type
Paul Davis [Tue, 18 Oct 2016 20:45:39 +0000 (16:45 -0400)]
fix retrieval of port properties (metadata) when the value has no type

7 years agofix link in manpage
Robin Gareus [Tue, 18 Oct 2016 20:25:10 +0000 (22:25 +0200)]
fix link in manpage

7 years agoProcessor box interaction:
Robin Gareus [Tue, 18 Oct 2016 20:25:02 +0000 (22:25 +0200)]
Processor box interaction:

Allow to toggle inline display with tertiary + double-click.
also fix tooltip and fix inconsistent modifiers on inline display.

7 years agoTempo lines drawing performance tweak.
nick_m [Tue, 18 Oct 2016 18:56:26 +0000 (05:56 +1100)]
Tempo lines drawing performance tweak.

7 years agoTempo line tweaks.
nick_m [Tue, 18 Oct 2016 18:10:15 +0000 (05:10 +1100)]
Tempo line tweaks.

- ensure lines don't get too dense in the all bars case.

- never draw tick divisions in the all bar case.

7 years agoImprove bbt ruler drawing performance for large time ranges.
nick_m [Tue, 18 Oct 2016 16:56:43 +0000 (03:56 +1100)]
Improve bbt ruler drawing performance for large time ranges.

- when the timeline displays many bars, zoom/autoscroll
  speed is improved by calculating the bbt ruler scale first
  then requesting a suitably scaled grid.

7 years agoWarn about skipped MIDI events
David Robillard [Mon, 17 Oct 2016 23:47:56 +0000 (19:47 -0400)]
Warn about skipped MIDI events

This can occur when the MIDI readahead time is too low and events get
pushed into the MidiRingBuffer after the corresponding read.  In this
case, skip_to() gets called (as it does before every read) and the
events are silently dropped.

This is a Very Bad Thing(TM), so warn about it.  I am not sure which
other scenarios can skip events that aren't problematic, but there's
probably some.  A more sophisticated detection/reporting (or maybe even
dynamic reconfiguration) scheme would be nice here, but some false
positive messages are at least better than silently failing to play
notes and the like.

7 years agoClean up MIDI debugging output
David Robillard [Mon, 17 Oct 2016 23:47:39 +0000 (19:47 -0400)]
Clean up MIDI debugging output

7 years agospelling corrections from Jaromír Mikeš <mira.mikes@seznam.cz>
Paul Davis [Mon, 17 Oct 2016 21:57:39 +0000 (17:57 -0400)]
spelling corrections from  Jaromír Mikeš <mira.mikes@seznam.cz>

Corresponds to https://anonscm.debian.org/cgit/pkg-multimedia/ardour.git/tree/debian/patches/0070-spelling.patch

7 years agoreset peak meters used in push2 when stripable goes away
Paul Davis [Mon, 17 Oct 2016 19:58:30 +0000 (15:58 -0400)]
reset peak meters used in push2 when stripable goes away

7 years agoremove unused variable
Paul Davis [Mon, 17 Oct 2016 19:58:02 +0000 (15:58 -0400)]
remove unused variable

7 years agoInitialize uninitialized member variables in ctor - warning suppression
Nathan Stewart [Mon, 17 Oct 2016 17:06:02 +0000 (13:06 -0400)]
Initialize uninitialized member variables in ctor - warning suppression

7 years agofast region export -- don't call process()
Robin Gareus [Mon, 17 Oct 2016 19:34:40 +0000 (21:34 +0200)]
fast region export -- don't call process()

7 years agoremove unused variable
Robin Gareus [Mon, 17 Oct 2016 19:22:32 +0000 (21:22 +0200)]
remove unused variable

7 years agofix potentially crash-inducing race condition by removing event loops' x-thread chann...
Paul Davis [Mon, 17 Oct 2016 18:48:15 +0000 (14:48 -0400)]
fix potentially crash-inducing race condition by removing event loops' x-thread channel from an event loop when it is destroyed

7 years agoremove debug output
Paul Davis [Mon, 17 Oct 2016 17:41:22 +0000 (13:41 -0400)]
remove debug output

7 years agopropagate key press events through the widget heirarchy + custom ardour bindings...
Paul Davis [Mon, 17 Oct 2016 17:30:15 +0000 (13:30 -0400)]
propagate key press events through the widget heirarchy + custom ardour bindings, not just focus widget-then-global bindings

7 years agofix thinko in d2835bc80 (re-enables mute, solo and likely other automation controls)
Paul Davis [Mon, 17 Oct 2016 17:19:42 +0000 (13:19 -0400)]
fix thinko in d2835bc80 (re-enables mute, solo and likely other automation controls)

7 years agofix typo + remove cruft.
Robin Gareus [Mon, 17 Oct 2016 15:51:56 +0000 (17:51 +0200)]
fix typo + remove cruft.

7 years agoadd more DEBUG_TRACE statements for port/destruction debugging
Paul Davis [Fri, 14 Oct 2016 16:30:16 +0000 (12:30 -0400)]
add more DEBUG_TRACE statements for port/destruction debugging

7 years agoconvert cerr<< to DEBUG_TRACE
Paul Davis [Fri, 14 Oct 2016 16:30:04 +0000 (12:30 -0400)]
convert cerr<< to DEBUG_TRACE

7 years agouse existing method rather than inline code for pending port deletions
Paul Davis [Fri, 14 Oct 2016 16:28:38 +0000 (12:28 -0400)]
use existing method rather than inline code for pending port deletions

7 years agoInitialize TempoMetric _pulse in sonstructor.
nick_m [Mon, 17 Oct 2016 15:14:15 +0000 (02:14 +1100)]
Initialize TempoMetric _pulse in sonstructor.

7 years agoMusic locked regions stay positive after tempo map change.
nick_m [Mon, 17 Oct 2016 15:12:33 +0000 (02:12 +1100)]
Music locked regions stay positive after tempo map change.

7 years agoignore send buffers for which there's no return
Robin Gareus [Sun, 16 Oct 2016 22:32:35 +0000 (00:32 +0200)]
ignore send buffers for which there's no return

This fixes an issue with Audio+Midi sends feeding into an audio only return.

7 years agoimproved and hopefully correct fix for "setting AutomationControl marks session dirty...
Paul Davis [Sun, 16 Oct 2016 19:50:41 +0000 (15:50 -0400)]
improved and hopefully correct fix for "setting AutomationControl marks session dirty even when it should not, if in playback mode"

Hopefully comment is more explanatory as well.

7 years agorefine 29f604418, move selected track to left-edge (if possible)
Robin Gareus [Sun, 16 Oct 2016 19:27:07 +0000 (21:27 +0200)]
refine 29f604418, move selected track to left-edge (if possible)

7 years agoAmend previous commit.
nick_m [Sun, 16 Oct 2016 17:33:48 +0000 (04:33 +1100)]
Amend previous commit.

7 years agoSet note colour of new MidiGhostRegions corrctly.
nick_m [Sun, 16 Oct 2016 17:23:43 +0000 (04:23 +1100)]
Set note colour of new MidiGhostRegions corrctly.

7 years agoPerformance: store NoteBase UIConfiguration colors between config changes.
nick_m [Sun, 16 Oct 2016 16:19:02 +0000 (03:19 +1100)]
Performance: store NoteBase UIConfiguration colors between config changes.

Cumulative time in percent while wiggling the tempo lines rapidly.

Before:

MidiRegionview::update_sustained 12.02

 NoteBase::base_color             6.43
 MidiGhostRegion::update_note     3.12
 Note::set                        1.27
 TempoMap::frame_at_quarter_note  0.59
 _dynamic_cast                    0.13

After:

MidiRegionview::update_sustained  10.49

 MidiGhostRegion::update_note      5.57
 Note::set                         2.52
 TempoMap::frame_at_quarter_note   1.13
 NoteBase::base_color              0.17
 _dynamic_cast                     0.17

7 years agoFix region colors not updating on theme change.
nick_m [Sun, 16 Oct 2016 15:25:16 +0000 (02:25 +1100)]
Fix region colors not updating on theme change.

7 years agoTempo curve cleanup, now also works on optimized builds.
nick_m [Sun, 16 Oct 2016 14:28:33 +0000 (01:28 +1100)]
Tempo curve cleanup, now also works on optimized builds.

7 years agoMixer strip list: click to move strip into view
Robin Gareus [Sat, 15 Oct 2016 21:16:09 +0000 (23:16 +0200)]
Mixer strip list: click to move strip into view

7 years agoIncrease range of a-comp release time.
Robin Gareus [Sat, 15 Oct 2016 19:24:53 +0000 (21:24 +0200)]
Increase range of a-comp release time.

This facilitates ducking music for voice-overs w/o hold-time.

7 years agoSource and AudioSource Lua bindings
Robin Gareus [Sat, 15 Oct 2016 19:16:57 +0000 (21:16 +0200)]
Source and AudioSource Lua bindings

7 years agoBBT duration clock can only compare musical times.
nick_m [Sat, 15 Oct 2016 18:09:49 +0000 (05:09 +1100)]
BBT duration clock can only compare musical times.