ardour.git
6 years agoMake ArdourFader's scroll handler obey to Alignment increments
Julien "_FrnchFrgg_" RIVAUD [Sun, 24 Sep 2017 19:20:20 +0000 (21:20 +0200)]
Make ArdourFader's scroll handler obey to Alignment increments

Currently, the scroll handler obeys to the page increment, but instead
of using the step increment for more precise scroll, it uses an
hardcoded one tenth of the page increment.

Use the step increment instead since it has been filled with sensible
values by ArdourFader's users.

6 years agoFix computation of AutomationController steps
Robin Gareus [Sun, 24 Sep 2017 19:10:31 +0000 (21:10 +0200)]
Fix computation of AutomationController steps

smallstep (resp. largestep) is intended to be the interface delta
corresponding to a desc.smallstep (resp. largestep) in internal scale,
and is computed by incrementing from desc.lower.

But ac->internal_to_interface(desc.lower) isn't necessarily zero. In
fact it currently is 0.5 / (M - m + 1) for integer parameters where M is
the maximum and m is the minimum possible value since it is the center
of the [0,1/(M-m+1)] interval.

Since the lower bound of the delta isn't always zero, don't ignore it
when computing the actual increment.

6 years agofix ardev and friends to use new libtemporal
Paul Davis [Sun, 24 Sep 2017 20:13:07 +0000 (16:13 -0400)]
fix ardev and friends to use new libtemporal

6 years agofix header order and space alignment
Paul Davis [Sun, 24 Sep 2017 16:57:27 +0000 (12:57 -0400)]
fix header order and space alignment

6 years agoconvert codebase to use Temporal for various time types
Paul Davis [Sun, 24 Sep 2017 16:03:54 +0000 (12:03 -0400)]
convert codebase to use Temporal for various time types

6 years agonew header file for audio-based time types
Paul Davis [Sun, 24 Sep 2017 16:03:13 +0000 (12:03 -0400)]
new header file for audio-based time types

6 years agopart two of initial libtemporal creation
Paul Davis [Sun, 24 Sep 2017 14:48:00 +0000 (10:48 -0400)]
part two of initial libtemporal creation

6 years agochange libtimecode to libtemporal, add Evoral::Beats, positional types and superclock...
Paul Davis [Sun, 24 Sep 2017 14:47:28 +0000 (10:47 -0400)]
change libtimecode to libtemporal, add Evoral::Beats, positional types and superclock headers

6 years agoadd (back) nutemp makefile
Paul Davis [Wed, 20 Sep 2017 19:46:34 +0000 (15:46 -0400)]
add (back) nutemp makefile

6 years agoThe beginning of the end for ClickBox
Robin Gareus [Sat, 23 Sep 2017 17:40:55 +0000 (19:40 +0200)]
The beginning of the end for ClickBox

This fixes various issues with integer controls (some values are not
reachable due to incorrect rounding in AutoSpin) and also pulls
in the various benefits of BarController:
  * mouse-drags
  * numeric entry
  * alternative entry modes (piano-keyboard, tempo-based values)

If this style remains, ClickBox & AutoSpin should be removed from
the codebase.

6 years agoAdd API set bar-controller spinbox digits
Robin Gareus [Sat, 23 Sep 2017 17:39:36 +0000 (19:39 +0200)]
Add API set bar-controller spinbox digits

..and reduce default to 4 digits.

6 years agoprefer floor() over round(), this avoids "-0"
Robin Gareus [Sat, 23 Sep 2017 16:59:39 +0000 (18:59 +0200)]
prefer floor() over round(), this avoids "-0"

GUI interface values are always in the range 0..1 so there's no abiguity
with trunc()

6 years agoNO-OP: whitespace
Robin Gareus [Sat, 23 Sep 2017 00:31:52 +0000 (02:31 +0200)]
NO-OP: whitespace

6 years agoFix changing playlist (Track is responsible for signal emission)
Robin Gareus [Sat, 23 Sep 2017 00:31:00 +0000 (02:31 +0200)]
Fix changing playlist (Track is responsible for signal emission)

6 years agoFix crash in playlist selector for removed tracks.
Robin Gareus [Fri, 22 Sep 2017 23:57:25 +0000 (01:57 +0200)]
Fix crash in playlist selector for removed tracks.

Removing a Track does not delete its playlists and one can keep
Playlists after Cleanup. Don't crash if a the track that the playlist
originally belonged to does no longer exist.

6 years agoamend ab3889ff: portaudio backend uses a vector for connections
Robin Gareus [Fri, 22 Sep 2017 23:06:10 +0000 (01:06 +0200)]
amend ab3889ff: portaudio backend uses a vector for connections

6 years agoConsolidate check for internal/non-removable processors
Robin Gareus [Fri, 22 Sep 2017 22:18:18 +0000 (00:18 +0200)]
Consolidate check for internal/non-removable processors

6 years agoPropagate Latency to backend/system ports
Robin Gareus [Fri, 22 Sep 2017 13:28:00 +0000 (15:28 +0200)]
Propagate Latency to backend/system ports

Set accumulated capture-latency for physical-outputs
and accumulated playback-latency for physical-inputs
after Ardour is done setting all non-physical port latencies.

This will be needed for latency-compensation of the complete graph.

6 years agoFix order of [initial] latency-computation
Robin Gareus [Fri, 22 Sep 2017 22:11:21 +0000 (00:11 +0200)]
Fix order of [initial] latency-computation

Session::post_playback_latency() sets the actual route latency,
so that playback latency notifications need to come after capture-
latency (backends follow the same rule: capture first).

NB. Session::initialize_latencies() was already using the correct order

6 years agoNO-OP: whitespace
Robin Gareus [Fri, 22 Sep 2017 02:15:56 +0000 (04:15 +0200)]
NO-OP: whitespace

6 years agoFix issue with Template manager deleting templates on no-rename
Robin Gareus [Fri, 22 Sep 2017 15:16:04 +0000 (17:16 +0200)]
Fix issue with Template manager deleting templates on no-rename

If old-name equals new-name, g_rename () will fail and cleanup
will delete new-path (which is equal to old-path)

6 years agoEnforce disk-reader to be after the disk-writer
Robin Gareus [Fri, 22 Sep 2017 01:47:38 +0000 (03:47 +0200)]
Enforce disk-reader to be after the disk-writer

If disk-monitoring is disabled: disk-reader position is not relevant.
If Rec-arm is off: disk-writer position is not relevant.

But...

   Play -> [plugins] -> Record

is basically a bounce and best done using the bounce operation.
(faster than realtime).

   Input + Play -> Record -> Output

Ardour would need to align playback with the Input to be recorded
and at the same time align it with output, so that a player can play
along on the same track. That's not possible without a time-machine (or
a 2nd play processor).

While it can work in theory under some special circumstances, allowing
the disk-reader before the disk-writer is really just confusing,
error prone and valid uses cases are better handled by dedicated
operations.

6 years agoNO-OP: whitespace
Robin Gareus [Thu, 21 Sep 2017 23:52:48 +0000 (01:52 +0200)]
NO-OP: whitespace

6 years agoAlignmentChoise is a Track Property
Robin Gareus [Thu, 21 Sep 2017 23:52:37 +0000 (01:52 +0200)]
AlignmentChoise is a Track Property

The DiskWriter uses AlignStyle which is set dynamically
by the Track and may depend on I/O connections.

6 years agoDon't recurse into MacVST bundle-folders during plugin-scan
Robin Gareus [Thu, 21 Sep 2017 18:02:11 +0000 (20:02 +0200)]
Don't recurse into MacVST bundle-folders during plugin-scan

6 years agofix clang compilation (include header ordering)
Robin Gareus [Thu, 21 Sep 2017 17:38:13 +0000 (19:38 +0200)]
fix clang compilation (include header ordering)

"i18n.h" needs to be included last, after types have been defined or
clang bails out:
"call to function 'operator<<' is not visible in the template definition"

6 years agoFix crash when unloading a partially loaded session.
Robin Gareus [Thu, 21 Sep 2017 15:35:52 +0000 (17:35 +0200)]
Fix crash when unloading a partially loaded session.

6 years agos/created with/modified with/
Robin Gareus [Thu, 21 Sep 2017 00:00:05 +0000 (02:00 +0200)]
s/created with/modified with/

Once a session has been saved by a more recent version or a different
variant, the session file is tied to that version/variant.

The created-with version is only for debug purposes and internal use.

6 years agoDon't try to limit the UI width if no screen is found
Julien "_FrnchFrgg_" RIVAUD [Wed, 20 Sep 2017 15:59:13 +0000 (17:59 +0200)]
Don't try to limit the UI width if no screen is found

6 years agoClean up and fix win x-compile script
Robin Gareus [Wed, 20 Sep 2017 12:15:27 +0000 (14:15 +0200)]
Clean up and fix win x-compile script

6 years agoFix buildstack revision report
Robin Gareus [Wed, 20 Sep 2017 12:06:04 +0000 (14:06 +0200)]
Fix buildstack revision report

6 years agoBail out early if a screen isn't found
Julien "_FrnchFrgg_" RIVAUD [Wed, 20 Sep 2017 06:56:44 +0000 (08:56 +0200)]
Bail out early if a screen isn't found

6 years agofix boolean logic for roll_delay vs. disk_samples_to_consume
Paul Davis [Wed, 20 Sep 2017 01:39:46 +0000 (21:39 -0400)]
fix boolean logic for roll_delay vs. disk_samples_to_consume

6 years agodo not advance DiskReader's idea of playback_sample while waiting for _roll_delay...
Paul Davis [Wed, 20 Sep 2017 01:38:34 +0000 (21:38 -0400)]
do not advance DiskReader's idea of playback_sample while waiting for _roll_delay to expire

6 years agoclearer catastrophic error message, rather than assert()
Paul Davis [Wed, 20 Sep 2017 01:38:15 +0000 (21:38 -0400)]
clearer catastrophic error message, rather than assert()

6 years agoAdd Lua script to print signal latencies
Robin Gareus [Tue, 19 Sep 2017 23:29:46 +0000 (01:29 +0200)]
Add Lua script to print signal latencies

6 years agoattempt to fix roll delay logic by moving it into DiskReader (the only place it matters)
Paul Davis [Tue, 19 Sep 2017 22:53:27 +0000 (18:53 -0400)]
attempt to fix roll delay logic by moving it into DiskReader (the only place it matters)

6 years agofix GTK+ warnings when trying to determine maximum screen size without a Gdk::Window
Paul Davis [Tue, 19 Sep 2017 22:38:40 +0000 (18:38 -0400)]
fix GTK+ warnings when trying to determine maximum screen size without a Gdk::Window

6 years agoExplicit key-event forwarding for MacVST
Robin Gareus [Tue, 19 Sep 2017 21:08:05 +0000 (23:08 +0200)]
Explicit key-event forwarding for MacVST

6 years agoFix buildstack report
Robin Gareus [Tue, 19 Sep 2017 18:26:26 +0000 (20:26 +0200)]
Fix buildstack report

6 years agoA frame can also be a rectangle [NSView frame]
Robin Gareus [Tue, 19 Sep 2017 16:41:51 +0000 (18:41 +0200)]
A frame can also be a rectangle [NSView frame]

6 years agoRevert some more frame/sample API issues
Robin Gareus [Tue, 19 Sep 2017 16:40:29 +0000 (18:40 +0200)]
Revert some more frame/sample API issues

6 years agoRevert "remove unusued roll_delay member of DiskReader"
Paul Davis [Tue, 19 Sep 2017 14:09:37 +0000 (10:09 -0400)]
Revert "remove unusued roll_delay member of DiskReader"

This reverts commit 92c2e06eb72950f91ca943a5219e2caeaeecda9f.

6 years agofix unintentionally edited color/theme name from f2s edit
Paul Davis [Tue, 19 Sep 2017 14:03:40 +0000 (10:03 -0400)]
fix unintentionally edited color/theme name from f2s edit

6 years agoremove unusued roll_delay member of DiskReader
Paul Davis [Tue, 19 Sep 2017 13:45:30 +0000 (09:45 -0400)]
remove unusued roll_delay member of DiskReader

6 years agoFix nightly typos'n'thinkos: initial-delay calculation
Robin Gareus [Tue, 19 Sep 2017 15:03:28 +0000 (17:03 +0200)]
Fix nightly typos'n'thinkos: initial-delay calculation

6 years agoFixed typo
R. Mattes [Tue, 19 Sep 2017 12:22:46 +0000 (14:22 +0200)]
Fixed typo

6 years agocorrect version in pre-release warning
Paul Davis [Tue, 19 Sep 2017 12:00:46 +0000 (08:00 -0400)]
correct version in pre-release warning

6 years agoAccommodate newly added/removed source(s) in our MSVC project (libardour)
John Emmas [Tue, 19 Sep 2017 11:22:06 +0000 (12:22 +0100)]
Accommodate newly added/removed source(s) in our MSVC project (libardour)

6 years agoMore s/frame/sample/ - fixes unit-test compilation
Robin Gareus [Tue, 19 Sep 2017 03:36:57 +0000 (05:36 +0200)]
More s/frame/sample/ - fixes unit-test compilation

"frame" in #include file-names was replaced, this actually renames
the files to follow suit.

6 years agoMore Coreaudio SDK fixes, after 30b087ab3
Robin Gareus [Tue, 19 Sep 2017 03:20:05 +0000 (05:20 +0200)]
More Coreaudio SDK fixes, after 30b087ab3

6 years agoAmend c8a9b28d3 and 40aebce. Fix gain automation edge-cases:
Robin Gareus [Tue, 19 Sep 2017 02:54:42 +0000 (04:54 +0200)]
Amend c8a9b28d3 and 40aebce. Fix gain automation edge-cases:

* drop Trim/Fader automation for bypassed processor
* Trim/Fader automation for Busses is always active when rolling

6 years agopartially revert 30b087ab3, CoreAudio SDK uses "Frames"
Robin Gareus [Tue, 19 Sep 2017 02:46:02 +0000 (04:46 +0200)]
partially revert 30b087ab3, CoreAudio SDK uses "Frames"

6 years agoremove getter for Amp::_apply_automation_gain; reset member to false after use, and...
Paul Davis [Tue, 19 Sep 2017 02:21:27 +0000 (22:21 -0400)]
remove getter for Amp::_apply_automation_gain; reset member to false after use, and true after ::setup_automation_gain
runs successfully

6 years agoconsolidate roll methods into Route::roll()
Paul Davis [Tue, 19 Sep 2017 01:27:55 +0000 (21:27 -0400)]
consolidate roll methods into Route::roll()

We want Track to shrink, and logic consolidation is always good. Route already knew about
disk_reader and disk_writer, now it knows about _monitoring_control too

6 years agoVarious updates and fixes for Latency Compensation
Robin Gareus [Tue, 19 Sep 2017 00:10:38 +0000 (02:10 +0200)]
Various updates and fixes for Latency Compensation

* centralize signal_latency_at_***_position to processors
* update initial-delay/roll-delay when processor order changes
* consolidate signal-latency calculation: use the same method
  for processor-changes and session's post_playback_latency.
* include relative output-delay in roll-delay
* fix capture processor position & optimize stem-export latency

(roll-delay fixes pending Route:roll() update)

6 years agoremove debug output
Paul Davis [Mon, 18 Sep 2017 18:59:06 +0000 (14:59 -0400)]
remove debug output

6 years agomanually fix up various cases where Gtk:Frame foo_frame had been changed to foo_sample
Paul Davis [Mon, 18 Sep 2017 18:45:56 +0000 (14:45 -0400)]
manually fix up various cases where Gtk:Frame foo_frame had been changed to foo_sample

6 years agoamend prev. commit
Robin Gareus [Mon, 18 Sep 2017 18:41:43 +0000 (20:41 +0200)]
amend prev. commit

6 years agoTweak default config
Robin Gareus [Mon, 18 Sep 2017 18:30:40 +0000 (20:30 +0200)]
Tweak default config

* disable MMC by default
* auto-detect audition-synth at first run (prefer gmsynth if available)

6 years agoEnoify v6.x
Robin Gareus [Mon, 18 Sep 2017 17:38:54 +0000 (19:38 +0200)]
Enoify v6.x

6 years agoDisk IO "pre-fader" means pre-trim, not post-trim
Paul Davis [Mon, 18 Sep 2017 17:38:44 +0000 (13:38 -0400)]
Disk IO "pre-fader" means pre-trim, not post-trim

6 years agoMenu Action list omit leading /
Len Ovens [Mon, 18 Sep 2017 17:27:25 +0000 (10:27 -0700)]
Menu Action list omit leading /

6 years agoNO-OP: reindent
Paul Davis [Mon, 18 Sep 2017 17:24:04 +0000 (13:24 -0400)]
NO-OP: reindent

6 years agomanually fix up comments in libs/timecode/src/time.cc that got edited by f2s
Paul Davis [Mon, 18 Sep 2017 17:19:12 +0000 (13:19 -0400)]
manually fix up comments in libs/timecode/src/time.cc that got edited by f2s

6 years agoglobally change all use of "frame" to refer to audio into "sample".
Paul Davis [Mon, 18 Sep 2017 16:39:17 +0000 (12:39 -0400)]
globally change all use of "frame" to refer to audio into "sample".

Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible

6 years agofix issue with initialization of a BBT_Time variable. 6.0-pre0
Paul Davis [Mon, 18 Sep 2017 15:53:47 +0000 (11:53 -0400)]
fix issue with initialization of a BBT_Time variable.

6 years agochange iteratory indirection syntax, remove debug output
Paul Davis [Mon, 18 Sep 2017 14:36:57 +0000 (10:36 -0400)]
change iteratory indirection syntax, remove debug output

6 years agoadded TempoMap::Changed signal
Paul Davis [Fri, 15 Sep 2017 03:07:07 +0000 (23:07 -0400)]
added TempoMap::Changed signal

6 years agoadd back-pointer to TempoMap from points, and push dirty=true into map
Paul Davis [Fri, 15 Sep 2017 02:50:08 +0000 (22:50 -0400)]
add back-pointer to TempoMap from points, and push dirty=true into map

6 years agomore changes to broken-out tempo code
Paul Davis [Fri, 15 Sep 2017 01:57:41 +0000 (21:57 -0400)]
more changes to broken-out tempo code

fetching grid and bar-centric grid now works, removed debug output, cleaned up ::rebuild
to do the right thing, fixed up some ::foo_at_bar() method implementations

6 years agocontinuing miscellaneous work on broken-out tempo code
Paul Davis [Thu, 14 Sep 2017 16:19:52 +0000 (12:19 -0400)]
continuing miscellaneous work on broken-out tempo code

6 years agoadd a _locked variant for TempoMap::dump()
Paul Davis [Wed, 13 Sep 2017 23:34:54 +0000 (19:34 -0400)]
add a _locked variant for TempoMap::dump()

6 years agoadd _locked() variants to new tempo experiment
Paul Davis [Wed, 13 Sep 2017 23:31:42 +0000 (19:31 -0400)]
add _locked() variants to new tempo experiment

6 years agochanges required to operate with the Evoral::Beats ticktime commit
Paul Davis [Wed, 13 Sep 2017 22:48:25 +0000 (18:48 -0400)]
changes required to operate with the Evoral::Beats ticktime commit

6 years agochanges required to operate with the Evoral::Beats ticktime commit
Paul Davis [Wed, 13 Sep 2017 22:48:16 +0000 (18:48 -0400)]
changes required to operate with the Evoral::Beats ticktime commit

6 years agoremove Evoral types.cpp since it is no longer required
Paul Davis [Wed, 13 Sep 2017 22:47:49 +0000 (18:47 -0400)]
remove Evoral types.cpp since it is no longer required

6 years agonew header file for superclock stuff
Paul Davis [Wed, 13 Sep 2017 21:34:26 +0000 (17:34 -0400)]
new header file for superclock stuff

6 years agoextend/fix/improve operator overloads and methods for Timecode::BBT_Time
Paul Davis [Wed, 13 Sep 2017 21:12:51 +0000 (17:12 -0400)]
extend/fix/improve operator overloads and methods for Timecode::BBT_Time

6 years agoextend/fix/improve operator overloads and methods for Evoral::Beats
Paul Davis [Wed, 13 Sep 2017 21:12:34 +0000 (17:12 -0400)]
extend/fix/improve operator overloads and methods for Evoral::Beats

6 years agoremove unused computation
Paul Davis [Fri, 18 Aug 2017 16:28:14 +0000 (12:28 -0400)]
remove unused computation

6 years agoudev rule for Ableton Push2 device
Paul Davis [Thu, 7 Sep 2017 19:21:54 +0000 (15:21 -0400)]
udev rule for Ableton Push2 device

6 years agotweaks to the beatbox toy to properly track and connect note on/off
Paul Davis [Fri, 18 Aug 2017 16:17:46 +0000 (12:17 -0400)]
tweaks to the beatbox toy to properly track and connect note on/off

6 years agoNOOP: formatting
Paul Davis [Fri, 18 Aug 2017 16:17:24 +0000 (12:17 -0400)]
NOOP: formatting

6 years ago::find_next_event() does not need to be a pure virtual in ControlSet (it can originat...
Paul Davis [Fri, 18 Aug 2017 16:17:03 +0000 (12:17 -0400)]
::find_next_event() does not need to be a pure virtual in ControlSet (it can originate in AutomatableSequence)

6 years agoremove locate debugging output
Paul Davis [Thu, 17 Aug 2017 14:38:46 +0000 (10:38 -0400)]
remove locate debugging output

6 years agofix for loading older sessions, where the rest for "is-track" was "has-diskstream...
Paul Davis [Thu, 17 Aug 2017 14:33:38 +0000 (10:33 -0400)]
fix for loading older sessions, where the rest for "is-track" was "has-diskstream", rather than "has-playlist"

6 years agoDon't build ni-maschine support by default
Robin Gareus [Thu, 17 Aug 2017 01:27:47 +0000 (03:27 +0200)]
Don't build ni-maschine support by default

While the pads work, overall integration is still not present, mainly
because the device does not lend itself for editing & mixing in a
DAW environment.

6 years agoMaschine2 UI: basic widgets
Robin Gareus [Thu, 17 Nov 2016 12:08:38 +0000 (13:08 +0100)]
Maschine2 UI: basic widgets

6 years agoSkeleton for NI Maschine2 Surface
Robin Gareus [Thu, 17 Nov 2016 12:08:12 +0000 (13:08 +0100)]
Skeleton for NI Maschine2 Surface

6 years agoAdd NI Maschine ctrl-surface HID/udev permissions config
Robin Gareus [Sun, 23 Oct 2016 21:00:46 +0000 (23:00 +0200)]
Add NI Maschine ctrl-surface HID/udev permissions config

6 years agosort of no-op ... remove debug output ... just basically put it in git so that i...
Paul Davis [Tue, 8 Aug 2017 23:26:08 +0000 (19:26 -0400)]
sort of no-op ... remove debug output ... just basically put it in git so that i can fetch it on another machine

6 years agoreinstate "restart seek" behaviour but use a new Session::_seek_counter member variab...
Paul Davis [Tue, 1 Aug 2017 15:13:35 +0000 (11:13 -0400)]
reinstate "restart seek" behaviour but use a new Session::_seek_counter member variable for this

6 years agono more locate-restart based on mismatch transport_frame and locate target
Paul Davis [Fri, 28 Jul 2017 17:37:11 +0000 (13:37 -0400)]
no more locate-restart based on mismatch transport_frame and locate target

6 years agoremove tests for locate_pending() before deciding whether to increment transport...
Paul Davis [Fri, 28 Jul 2017 16:10:04 +0000 (12:10 -0400)]
remove tests for locate_pending() before deciding whether to increment transport position

6 years agomore verbose debug output for slave debugging
Paul Davis [Fri, 28 Jul 2017 15:11:33 +0000 (11:11 -0400)]
more verbose debug output for slave debugging

6 years agoverbose debug output for slave debugging
Paul Davis [Fri, 28 Jul 2017 15:02:34 +0000 (11:02 -0400)]
verbose debug output for slave debugging

6 years agoattempt fix for LTC slave when locating
Paul Davis [Fri, 28 Jul 2017 14:19:23 +0000 (10:19 -0400)]
attempt fix for LTC slave when locating

6 years agodelete slave during Session::destroy
Paul Davis [Fri, 28 Jul 2017 13:00:31 +0000 (09:00 -0400)]
delete slave during Session::destroy

6 years agofix logic error that prevent input monitoring during slave wait states
Paul Davis [Fri, 28 Jul 2017 12:44:51 +0000 (08:44 -0400)]
fix logic error that prevent input monitoring during slave wait states