ardour.git
7 years agoAllow to migrate sessions with VST plugins
Robin Gareus [Thu, 17 Nov 2016 13:05:40 +0000 (14:05 +0100)]
Allow to migrate sessions with VST plugins

7 years agotry VST2.4's VSTPluginMain first
Robin Gareus [Thu, 17 Nov 2016 12:03:36 +0000 (13:03 +0100)]
try VST2.4's VSTPluginMain first

This fixes a crash with loading u-he Diva on windows.

7 years agofix mingw64 debug build
Robin Gareus [Thu, 17 Nov 2016 11:58:28 +0000 (12:58 +0100)]
fix mingw64 debug build

7 years agoAdd example script to modulate parmaters globally
Robin Gareus [Wed, 16 Nov 2016 17:55:40 +0000 (18:55 +0100)]
Add example script to modulate parmaters globally

7 years agomagnetic snap uses note divisor appropriately.
nick_m [Wed, 16 Nov 2016 17:08:13 +0000 (04:08 +1100)]
magnetic snap uses note divisor appropriately.

- also looks nicer when resizing MIDI regions.

7 years agofix 32bit+PPC OSX builds
Robin Gareus [Wed, 16 Nov 2016 16:24:08 +0000 (17:24 +0100)]
fix 32bit+PPC OSX builds

7 years agofix incorrect return type for Editor::get_grid_music_divisions().
nick_m [Wed, 16 Nov 2016 16:13:16 +0000 (03:13 +1100)]
fix incorrect return type for Editor::get_grid_music_divisions().

7 years agoFix crash when fanning out from editor mixer
Robin Gareus [Wed, 16 Nov 2016 04:24:01 +0000 (05:24 +0100)]
Fix crash when fanning out from editor mixer

when creating a new track or bus editor-selection changes and the
editor-mixer's _route changes.

7 years agoRevert "disable MacVST support (until it's ready)"
Robin Gareus [Wed, 16 Nov 2016 00:25:29 +0000 (01:25 +0100)]
Revert "disable MacVST support (until it's ready)"

This reverts commit e0766e8f74e740cd24645f3712873a1b669e4995.

7 years agofix library depends for OSX vst scanner
Robin Gareus [Wed, 16 Nov 2016 00:23:21 +0000 (01:23 +0100)]
fix library depends for OSX vst scanner

7 years agoupdate MSVC project in the wake of cf1651e6
Robin Gareus [Tue, 15 Nov 2016 22:11:50 +0000 (23:11 +0100)]
update MSVC project in the wake of cf1651e6

7 years agoa better fix for 6ed8c113a25 (scope)
nick_m [Tue, 15 Nov 2016 18:18:35 +0000 (05:18 +1100)]
a better fix for 6ed8c113a25 (scope)

7 years agoRegion:;set_state() should always set quarter_note.
nick_m [Tue, 15 Nov 2016 18:03:14 +0000 (05:03 +1100)]
Region:;set_state() should always set quarter_note.

- fix for 4.x sessions showing notes stacked at session start.

7 years agoMacVST UI resizing
Robin Gareus [Tue, 15 Nov 2016 16:20:34 +0000 (17:20 +0100)]
MacVST UI resizing

7 years agoconsolidate VST UI code
Robin Gareus [Tue, 15 Nov 2016 16:07:55 +0000 (17:07 +0100)]
consolidate VST UI code

7 years agoconsolidate VSTState functions
Robin Gareus [Tue, 15 Nov 2016 16:07:04 +0000 (17:07 +0100)]
consolidate VSTState functions

7 years agoAccommodate a newly introduced source file in our MSVC project (libardour)
John Emmas [Tue, 15 Nov 2016 11:12:25 +0000 (11:12 +0000)]
Accommodate a newly introduced source file in our MSVC project (libardour)

(although I'm not sure if it's actually used yet in the Windows build).

7 years agoreally fix windows compilation.
Robin Gareus [Tue, 15 Nov 2016 02:25:32 +0000 (03:25 +0100)]
really fix windows compilation.

7 years agoamend 5dc24971009 ...get the windows version to compile.
Robin Gareus [Tue, 15 Nov 2016 02:21:02 +0000 (03:21 +0100)]
amend 5dc24971009 ...get the windows version to compile.

eventually vststate_init() needs cleaning up, but not tonight.

7 years agoFrench translation update
Olivier Humbert [Tue, 15 Nov 2016 01:03:35 +0000 (02:03 +0100)]
French translation update

more translations

7 years agoAdding myself
Olivier Humbert [Tue, 15 Nov 2016 00:35:28 +0000 (01:35 +0100)]
Adding myself

adding my name

7 years agoFrench translation update
Olivier Humbert [Tue, 15 Nov 2016 00:32:04 +0000 (01:32 +0100)]
French translation update

one small fix

7 years agoFrench translation update
Olivier Humbert [Tue, 15 Nov 2016 00:24:56 +0000 (01:24 +0100)]
French translation update

A few more translations and fixes for French.

7 years agoFrench translation update
Olivier Humbert [Thu, 10 Nov 2016 01:26:55 +0000 (02:26 +0100)]
French translation update

This one:
* adds a French translation for a string
* adds myself on the header

7 years agoFrench translation update
Olivier Humbert [Thu, 10 Nov 2016 00:17:01 +0000 (01:17 +0100)]
French translation update

This translates one string.

7 years agorework 8e3b6c9ac (fstwin is C code, not C++)
Robin Gareus [Tue, 15 Nov 2016 01:49:30 +0000 (02:49 +0100)]
rework 8e3b6c9ac (fstwin is C code, not C++)

7 years agofix another typo (f30fbcaaf)
Robin Gareus [Tue, 15 Nov 2016 00:17:47 +0000 (01:17 +0100)]
fix another typo (f30fbcaaf)

7 years agoAdd missing #include
Robin Gareus [Mon, 14 Nov 2016 23:43:28 +0000 (00:43 +0100)]
Add missing #include

7 years agoFix some typo.
Robin Gareus [Mon, 14 Nov 2016 23:43:17 +0000 (00:43 +0100)]
Fix some typo.

7 years agoFix intermittent hang when stopping PortaudioBackend
Tim Mayberry [Mon, 14 Nov 2016 23:19:24 +0000 (09:19 +1000)]
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

7 years agoshow VST preset clean/dirty state
Robin Gareus [Mon, 14 Nov 2016 23:32:19 +0000 (00:32 +0100)]
show VST preset clean/dirty state

7 years agoMacVST Program/Preset support
Robin Gareus [Mon, 14 Nov 2016 23:01:27 +0000 (00:01 +0100)]
MacVST Program/Preset support

7 years agoadd signal for VST state load
Robin Gareus [Mon, 14 Nov 2016 23:01:12 +0000 (00:01 +0100)]
add signal for VST state load

MacVST has no dedicated VST event-loop to directly handle this.

7 years agoFix crash when selecting MIDI note
Tim Mayberry [Mon, 14 Nov 2016 22:16:31 +0000 (08:16 +1000)]
Fix crash when selecting MIDI note

Replace now always invalid assertion with initialization

Related to #7110

7 years agoFix VST state-lock SNAFU (effSetChunk and process are exclusive)
Robin Gareus [Mon, 14 Nov 2016 20:05:36 +0000 (21:05 +0100)]
Fix VST state-lock SNAFU (effSetChunk and process are exclusive)

7 years agoconsolidate VSTState initialization
Robin Gareus [Mon, 14 Nov 2016 20:04:01 +0000 (21:04 +0100)]
consolidate VSTState initialization

7 years agoPass const references to plugin-list
Robin Gareus [Mon, 14 Nov 2016 18:39:00 +0000 (19:39 +0100)]
Pass const references to plugin-list

7 years agochange note selection node name - should fix 7110
nick_m [Mon, 14 Nov 2016 16:48:20 +0000 (03:48 +1100)]
change note selection node name - should fix 7110

7 years agoLater code depends on prev_t not being NULL, use an assert()
Robin Gareus [Mon, 14 Nov 2016 15:47:09 +0000 (16:47 +0100)]
Later code depends on prev_t not being NULL, use an assert()

7 years agotempo map cannot be empty (help static analyzer)
Robin Gareus [Mon, 14 Nov 2016 15:45:25 +0000 (16:45 +0100)]
tempo map cannot be empty (help static analyzer)

7 years agopotential fix for #7110 (older sessions have no id)
Robin Gareus [Mon, 14 Nov 2016 03:12:58 +0000 (04:12 +0100)]
potential fix for #7110 (older sessions have no id)

7 years agofix LV2 state versioning with session-templates
Robin Gareus [Mon, 14 Nov 2016 00:40:57 +0000 (01:40 +0100)]
fix LV2 state versioning with session-templates

7 years agoSuffix plugin type in instrument-list to avoid ambiguities
Robin Gareus [Mon, 14 Nov 2016 00:14:52 +0000 (01:14 +0100)]
Suffix plugin type in instrument-list to avoid ambiguities

7 years agoconst'ness FTW
Robin Gareus [Mon, 14 Nov 2016 00:13:48 +0000 (01:13 +0100)]
const'ness FTW

7 years agoregister some missing enums
Robin Gareus [Sun, 13 Nov 2016 23:26:56 +0000 (00:26 +0100)]
register some missing enums

7 years agoVST set defaults only once (initially)
Robin Gareus [Sun, 13 Nov 2016 17:48:33 +0000 (18:48 +0100)]
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.

7 years agofix MacVST UI idle calls
Robin Gareus [Sun, 13 Nov 2016 17:47:08 +0000 (18:47 +0100)]
fix MacVST UI idle calls

7 years agocopy VST state on copy construction
Robin Gareus [Sun, 13 Nov 2016 15:34:27 +0000 (16:34 +0100)]
copy VST state on copy construction

This fixes issues with replicate instances & plugin-analysis instances
not using the same set of parameters.

7 years agodisable MacVST support (until it's ready)
Robin Gareus [Sun, 13 Nov 2016 15:33:18 +0000 (16:33 +0100)]
disable MacVST support (until it's ready)

7 years agobasic Mac VST Cocoa UI support
Robin Gareus [Sun, 13 Nov 2016 15:32:30 +0000 (16:32 +0100)]
basic Mac VST Cocoa UI support

7 years agoMac VST-2.x support
Robin Gareus [Sun, 13 Nov 2016 15:31:15 +0000 (16:31 +0100)]
Mac VST-2.x support

7 years agofix const-cast
Robin Gareus [Sat, 12 Nov 2016 15:20:43 +0000 (16:20 +0100)]
fix const-cast

7 years agofix typo in example script
Robin Gareus [Sat, 12 Nov 2016 15:19:36 +0000 (16:19 +0100)]
fix typo in example script

7 years agofix buffer overflow printing tempo/meter
Robin Gareus [Sat, 12 Nov 2016 15:19:27 +0000 (16:19 +0100)]
fix buffer overflow printing tempo/meter

7 years agoVST buffer paranoia
Robin Gareus [Fri, 11 Nov 2016 15:19:59 +0000 (16:19 +0100)]
VST buffer paranoia

7 years agofix compilation on osx
nick_m [Fri, 11 Nov 2016 10:35:13 +0000 (21:35 +1100)]
fix compilation on osx

7 years agoRefine instrument fan-out:
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

7 years agoAdd option to zoom using button press in the time rulers and dragging vertically
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

7 years agoUse the frame corresponding to the current mouse position when zoom dragging
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.

7 years agoChange Editor temporal zoom methods to be able to use different scale for the zoom
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

7 years agostatic MonitorSection Action -- fixes #7098
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.

7 years agokeep meterbridge on top
Robin Gareus [Fri, 11 Nov 2016 00:14:18 +0000 (01:14 +0100)]
keep meterbridge on top

7 years agoRemove a group when the last track in the group is removed
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

7 years agoprevent crash during track-deletion (un-selecting deleted tracks)
Robin Gareus [Thu, 10 Nov 2016 22:04:12 +0000 (23:04 +0100)]
prevent crash during track-deletion (un-selecting deleted tracks)

7 years agoImplement instrument fan-out options (group, track/bus)
Robin Gareus [Thu, 10 Nov 2016 20:35:40 +0000 (21:35 +0100)]
Implement instrument fan-out options (group, track/bus)

7 years agoCorrect the #includes for 'ardour/midi_cursor.h' (see commit #ec12fccf08)
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.

7 years agoupdate lua script to follow Region API change.
nick_m [Thu, 10 Nov 2016 17:02:17 +0000 (04:02 +1100)]
update lua script to follow Region API change.

7 years agoremove debugging output
nick_m [Thu, 10 Nov 2016 16:26:21 +0000 (03:26 +1100)]
remove debugging output

7 years agoremove unused variable and debugging.
nick_m [Thu, 10 Nov 2016 16:16:09 +0000 (03:16 +1100)]
remove unused variable and debugging.

7 years agorename Region pos_beats -> quarter_note
nick_m [Tue, 8 Nov 2016 17:51:19 +0000 (04:51 +1100)]
rename Region pos_beats -> quarter_note

7 years agomore tempo documentation.
nick_m [Tue, 8 Nov 2016 15:23:43 +0000 (02:23 +1100)]
more tempo documentation.

7 years agoensure non-zero midi region length when tempo map changes.
nick_m [Tue, 8 Nov 2016 15:01:22 +0000 (02:01 +1100)]
ensure non-zero midi region length when tempo map changes.

7 years agoTempoSection note-types-per-minute node name goes back to beats-per-minute for now.
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.

7 years agouse note_type explicitly when constructing a Tempo in the hope that others follow.
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

7 years agoremove recently added xml nodes.
nick_m [Tue, 8 Nov 2016 14:10:21 +0000 (01:10 +1100)]
remove recently added xml nodes.

7 years agouse frame interval api for empoMap::framepos_plus_qn()
nick_m [Tue, 8 Nov 2016 14:04:45 +0000 (01:04 +1100)]
use frame interval api for empoMap::framepos_plus_qn()

7 years agoclarify bbt_at_frame() warning.
nick_m [Tue, 8 Nov 2016 13:49:31 +0000 (00:49 +1100)]
clarify bbt_at_frame() warning.

7 years agorename note_divisions_per_minute -> ote_types_per_minute (double note_type)
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)

7 years agoadd empoMap::quarter_notes_between_frames().
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.

7 years agoTempoSection::tempo_at methods return a Tempo, document the opposite direction.
nick_m [Tue, 8 Nov 2016 13:07:37 +0000 (00:07 +1100)]
TempoSection::tempo_at methods return a Tempo, document the opposite direction.

7 years agoaudio units uses quarter_notes_per_minute().
nick_m [Sat, 5 Nov 2016 18:39:37 +0000 (05:39 +1100)]
audio units uses quarter_notes_per_minute().

7 years agorename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.
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.

7 years agotempo doc explains that currently Tempo::beats_per_minute means something else.
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.

7 years agoremove commented code.
nick_m [Thu, 3 Nov 2016 17:18:00 +0000 (04:18 +1100)]
remove commented code.

7 years agomore tempo documentation.
nick_m [Thu, 3 Nov 2016 16:19:21 +0000 (03:19 +1100)]
more tempo documentation.

7 years agofix lock error in empoMap::quarter_note_at_bbt_rt(), expand constant tempo test.
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.

7 years agoremove unused TempoMap::tempo_at_beat(). implement unused tempo_at_quarter_note().
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().

7 years agotempo.h reorganization. should be a no-op
nick_m [Thu, 3 Nov 2016 14:54:00 +0000 (01:54 +1100)]
tempo.h reorganization. should be a no-op

7 years agomore documentation in tempo.cc, fix constant bug in pulse_at_tempo_locked()
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()

7 years agoremove remaining frame api from TempoSection.
nick_m [Thu, 3 Nov 2016 14:21:57 +0000 (01:21 +1100)]
remove remaining frame api from TempoSection.

7 years agoremove public pulse methods from TempoMap.
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.

7 years agoadd some documentation for TempoMap.
nick_m [Mon, 31 Oct 2016 17:45:38 +0000 (04:45 +1100)]
add some documentation for TempoMap.

7 years agoclamp setting tempo via vertical drag.
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.

7 years agorename Region pulse to pos_beats. use new beat distance api where required.
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

7 years agoMidiRegion _start/_length beats are frame based only when lock style is Audiotime
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

7 years agoRefactor tempo api, include quarter-note distance in frames method.
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.

7 years agoRevert "update lua script to follow API change (bb459a2e7d)"
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

7 years ago#include <ardour/midi_cursor.h> in a couple of places
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 ?!?

7 years agoUse better debug output in PortaudioBackend
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

7 years agoFix for conflicting definition of _xgetbv with mingw-w64 >= 5
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.