ardour.git
6 years agoUpdate ptformat to upstream 72bd66b
Damien Zammit [Sun, 15 Oct 2017 06:12:38 +0000 (17:12 +1100)]
Update ptformat to upstream 72bd66b

- Fix a wrong assumption in the xor code
- Find start of wav list more consistently
- Fix long long constants

6 years agoOSC: fix crash for wrong number of parameters in set_surface
Len Ovens [Thu, 12 Oct 2017 20:18:21 +0000 (13:18 -0700)]
OSC: fix crash for wrong number of parameters in set_surface

6 years agoFix pre-roll cycle-split
Robin Gareus [Wed, 11 Oct 2017 23:49:05 +0000 (01:49 +0200)]
Fix pre-roll cycle-split

previously this worked as long as the cycle was only
needed to be split once.

6 years agoadd missing lock (for audition + mon section)
Robin Gareus [Tue, 10 Oct 2017 20:12:37 +0000 (22:12 +0200)]
add missing lock (for audition + mon section)

6 years agoOSC clean up route observer
Len Ovens [Sun, 8 Oct 2017 03:23:34 +0000 (20:23 -0700)]
OSC clean up route observer

6 years agoFor 'Route::send_pan_azi_controllable()' (when building non-Mixbus) I'm assuming...
John Emmas [Sat, 7 Oct 2017 09:11:12 +0000 (10:11 +0100)]
For 'Route::send_pan_azi_controllable()' (when building non-Mixbus) I'm assuming the intention was to return an empty object

(i.e. similar to 'Route::send_enable_controllable()')

6 years agoUS2400: add us2400 files to repository.
Ben Loftis [Thu, 5 Oct 2017 15:54:46 +0000 (10:54 -0500)]
US2400: add us2400 files to repository.

6 years agoUS2400: add us2400 to surfaces path, in ardev
Ben Loftis [Thu, 5 Oct 2017 15:47:32 +0000 (10:47 -0500)]
US2400: add us2400 to surfaces path, in ardev

6 years agoUS2400: add us2400 to surfaces.
Ben Loftis [Thu, 5 Oct 2017 15:03:09 +0000 (10:03 -0500)]
US2400: add us2400 to surfaces.

6 years agoUS2400: send_pan_azimuth lookup function (currently mb-only)
Ben Loftis [Thu, 5 Oct 2017 14:59:03 +0000 (09:59 -0500)]
US2400: send_pan_azimuth lookup function (currently mb-only)

6 years agoUS2400: add debug bits
Ben Loftis [Thu, 5 Oct 2017 14:55:32 +0000 (09:55 -0500)]
US2400: add debug bits

6 years agoFix various edge-cases with session-archives
Robin Gareus [Wed, 4 Oct 2017 03:06:47 +0000 (05:06 +0200)]
Fix various edge-cases with session-archives

* prevent duplicate names when pulling-in external sources
* drop "origin" after including external sources
* don't include unused playlists
  (they may reference sources that are not included)
* likewise exclude unused regions

6 years agoClean up State API:
Robin Gareus [Tue, 3 Oct 2017 22:35:29 +0000 (00:35 +0200)]
Clean up State API:

* Processor implement get_state(), classes derived from Processor
  implement protected ::state() -- as documented in processor.h
* likewise for Route, Track: make ::state() a protected interface
* removal of "full_state", use explicit "template_save"
* use RAII/Unwind to skip saving automation-state

6 years agoFix another hardcoded "tar.xz" -> ARDOUR::session_archive_suffix
Robin Gareus [Tue, 3 Oct 2017 16:03:40 +0000 (18:03 +0200)]
Fix another hardcoded "tar.xz" -> ARDOUR::session_archive_suffix

6 years agoFix session-archive file extension filter
Robin Gareus [Tue, 3 Oct 2017 01:09:25 +0000 (03:09 +0200)]
Fix session-archive file extension filter

6 years agoUpdate Session-Archive Dialog: add compression-option
Robin Gareus [Tue, 3 Oct 2017 00:20:33 +0000 (02:20 +0200)]
Update Session-Archive Dialog: add compression-option

6 years agoAPI change: expose session-archive compression-level
Robin Gareus [Mon, 2 Oct 2017 23:56:17 +0000 (01:56 +0200)]
API change: expose session-archive compression-level

6 years agoFix session-archive edge-cases, prepare uncompressed archives
Robin Gareus [Mon, 2 Oct 2017 23:06:07 +0000 (01:06 +0200)]
Fix session-archive edge-cases, prepare uncompressed archives

* don't fork/clone midi regions (default snapshot)
* properly handle encoding embedded/external multi-channel files
* use dedicated file-extension (prepare for uncompressed archive)

6 years agoPrepare support for compression levels (archive + flac)
Robin Gareus [Mon, 2 Oct 2017 18:40:44 +0000 (20:40 +0200)]
Prepare support for compression levels (archive + flac)

6 years agoFix MIDI Automation interpolation options
Robin Gareus [Mon, 2 Oct 2017 17:43:55 +0000 (19:43 +0200)]
Fix MIDI Automation interpolation options

6 years agouse new CubicInterpolation API
Paul Davis [Mon, 2 Oct 2017 16:43:20 +0000 (12:43 -0400)]
use new CubicInterpolation API

6 years agochange API and implementation for CubicInterpolation and Interpolation.
Paul Davis [Mon, 2 Oct 2017 16:42:44 +0000 (12:42 -0400)]
change API and implementation for CubicInterpolation and Interpolation.

Also remove LinearInterpolation which is not used

6 years agoremove cruft
Paul Davis [Mon, 2 Oct 2017 16:42:07 +0000 (12:42 -0400)]
remove cruft

6 years agoDiskReader should do nothing at all if there are no channels
Paul Davis [Mon, 2 Oct 2017 16:41:42 +0000 (12:41 -0400)]
DiskReader should do nothing at all if there are no channels

6 years agoremove cruft
Paul Davis [Mon, 2 Oct 2017 16:41:17 +0000 (12:41 -0400)]
remove cruft

6 years agoremove midi_interpolation member of DiskIOProcessor (was used only to call ::distance...
Paul Davis [Mon, 2 Oct 2017 16:40:15 +0000 (12:40 -0400)]
remove midi_interpolation member of DiskIOProcessor (was used only to call ::distance() method

6 years agoNO-OP: comment format change and whitespace
Paul Davis [Mon, 2 Oct 2017 16:38:56 +0000 (12:38 -0400)]
NO-OP: comment format change and whitespace

6 years agoremove cruft from DiskIOProcessor header
Paul Davis [Mon, 2 Oct 2017 16:38:29 +0000 (12:38 -0400)]
remove cruft from DiskIOProcessor header

6 years agouse constructor syntax
Paul Davis [Mon, 2 Oct 2017 16:37:20 +0000 (12:37 -0400)]
use constructor syntax

6 years agoremove leftover cruft related to wrap buffers from DiskIOProcessor
Paul Davis [Mon, 2 Oct 2017 16:36:52 +0000 (12:36 -0400)]
remove leftover cruft related to wrap buffers from DiskIOProcessor

6 years agotracks no longer need to be notified about speed changes
Paul Davis [Mon, 2 Oct 2017 16:35:32 +0000 (12:35 -0400)]
tracks no longer need to be notified about speed changes

6 years agoset owner or disk-i/o processors
Robin Gareus [Sun, 1 Oct 2017 18:54:40 +0000 (20:54 +0200)]
set owner or disk-i/o processors

This fixes a race-condition. These plugins may be run w/o being
re-configured which sets the ownershi. currently debug msgs use
owner()->name()

6 years agoThese are "Frames" :)
Robin Gareus [Sun, 1 Oct 2017 02:00:50 +0000 (04:00 +0200)]
These are "Frames" :)

6 years agoFix MIDI rec-region display
Robin Gareus [Sun, 1 Oct 2017 01:30:02 +0000 (03:30 +0200)]
Fix MIDI rec-region display

gui_feed_buffer is used for DiskWriter -> GUI notifications.
It was wrongly migrated from MidiDiskstream to DiskReader in 7fb6807

6 years agoFix recording MIDI
Robin Gareus [Sun, 1 Oct 2017 01:03:44 +0000 (03:03 +0200)]
Fix recording MIDI

- Fix API call to add region(midi_region) -- set count to "1"
- Forward DataRecorded() signal
- remove botched merge/rebase"
  a4a87f56 accidentally brought back code from old-destructive API
  which was removed in af103cf3 and 08c13007
  There is no per track NonLayered record mode anymore, it's session global.
- set can_record correctly to not accidentally clear last capture sources
  for cont'd recording (toggle track's rec-arm)

6 years agoDisk-writer: don't record immediate/oob events
Robin Gareus [Sat, 30 Sep 2017 21:38:41 +0000 (23:38 +0200)]
Disk-writer: don't record immediate/oob events

6 years agoMake MIDI disk-reader a bit less buggy :)
Robin Gareus [Sat, 30 Sep 2017 21:30:52 +0000 (23:30 +0200)]
Make MIDI disk-reader a bit less buggy :)

* use start/end frame
* differentiate nframes and disk_samples_to_consume
* add global Port::port_offset () when writing data.
* add a note about b0rked vari-speed ..

6 years agoImmediate-event/out-of-band injection update & tweak clearing buffers
Robin Gareus [Sat, 30 Sep 2017 21:16:04 +0000 (23:16 +0200)]
Immediate-event/out-of-band injection update & tweak clearing buffers

Immediate events are used for MIDI-Panic and to inject GUI generated
events e.g. patch-changes, note-events from the track-header
(scroomer-keyboard) and patch-change audition.

Current behavior:

- snapshot copy immediate events from ringbuffer into a buffer at
  the beginning of each the cycle.
- Inject immediate events into input-buffer directly after reading the input
- process "normally"
- pass immediate event-buffer to disk-writer, so it can skip them
  (don't write immediate events to disk)
- if the Route is not monitoring input: clear buffer before disk-reader
  and re-inject (original) immediate events after the disk-reader
- immediate events process normally and are also sent to outputs.

6 years agoMIDI debugging.
Robin Gareus [Sat, 30 Sep 2017 20:44:44 +0000 (22:44 +0200)]
MIDI debugging.

6 years agoRemove unused IO::process_input() API
Robin Gareus [Sat, 30 Sep 2017 16:56:54 +0000 (18:56 +0200)]
Remove unused IO::process_input() API

This was only needed in order to run the meter on inputs when Ardour did
no processing at all.

6 years agoNO-OP, re-order code, put all *roll() methods next to each other.
Robin Gareus [Sat, 30 Sep 2017 16:54:47 +0000 (18:54 +0200)]
NO-OP, re-order code, put all *roll() methods next to each other.

6 years agoFirst part of consolidating ::roll(), ::no_roll()
Robin Gareus [Sat, 30 Sep 2017 16:53:02 +0000 (18:53 +0200)]
First part of consolidating ::roll(), ::no_roll()

This moves common code (get and fill buffers) into ::passthru()
and renames ::passthru() to ::run_route().

passthru_silence() is no longer used (it was only needed A5 style
Track::no_roll_unlocked for no-roll + disk-monitoring)

6 years agoremove unused Route::_silent
Robin Gareus [Sat, 30 Sep 2017 16:46:24 +0000 (18:46 +0200)]
remove unused Route::_silent

6 years agoRemove Input-meter special-case
Robin Gareus [Sat, 30 Sep 2017 16:01:45 +0000 (18:01 +0200)]
Remove Input-meter special-case

Now that disk is no longer topper-most but a processor, the special
case is no longer needed.

6 years agoRe-initialize MMC devices when the preference is enabled
Robin Gareus [Sat, 30 Sep 2017 14:48:30 +0000 (16:48 +0200)]
Re-initialize MMC devices when the preference is enabled

6 years agoTowards fixing no_roll()
Robin Gareus [Sat, 30 Sep 2017 14:45:45 +0000 (16:45 +0200)]
Towards fixing no_roll()

Currently ::roll() may actually be a ::no_roll() under some circumstances.

This can also happen during count-in:
  transport_stopped () == transport_rolling()

and during latency-preroll:
   Global session-transport speed != 0, some tracks already roll,
   read data from disk and feed latent plugins.
   but other non-latent tracks or busses don't roll and still have to
   behave like the switch from no_roll() to roll() has not yet happened.

This changes the game WRT to monitoring as well, previously, Route:roll()
called Route::no_roll_unlocked () for conditions outlined above.
Now Track::no_roll_unlocked is called and in some cases wrongly clears
the buffers before the signal hits the disk-writer. (more work is needed
related to 61f8e53b)

On the upside this also fixes an issue with MidiTrack::no_roll not keeping
a lock while pushing data into the step-edit-ringbuffer.

This is also a step towards consolidating all entry points:
::roll(), ::no_roll(), ::silent_roll() in the Route class.

6 years agoFix thinko in 8139becb -- route split cycle
Robin Gareus [Sat, 30 Sep 2017 11:10:17 +0000 (13:10 +0200)]
Fix thinko in 8139becb -- route split cycle

Individual Routes cannot split the process-cycle in no_roll(); roll()
by themselves. Each of the calls will flush output buffers (and offset
port-buffers). If a route feeds another route the inputs of the other
route will only see partial data.

6 years agoDisk-reader don't silence buffers when not rolling
Robin Gareus [Sat, 30 Sep 2017 03:35:12 +0000 (05:35 +0200)]
Disk-reader don't silence buffers when not rolling

Doing so may clear out-of-band data which is injected into the
data-stream.

6 years agoFix MIDI port offsets.
Robin Gareus [Sat, 30 Sep 2017 03:25:27 +0000 (05:25 +0200)]
Fix MIDI port offsets.

AudioPort::get_audio_buffer() can offset the buffer simply by offsetting
a pointer. This allows to get an offset buffer for a given port.

For MIDI there's no such concept. A method writing to a MIDI buffer
which is backed by a Port can at best offset it by the global port-buffer
offset (static Port::port_offset), but not by the individual target port's
offset.

6 years agoAlign punch in/out recording with latency-compensation
Robin Gareus [Sat, 30 Sep 2017 00:45:13 +0000 (02:45 +0200)]
Align punch in/out recording with latency-compensation

6 years agoamend ccedb2d44
Robin Gareus [Fri, 29 Sep 2017 19:15:51 +0000 (21:15 +0200)]
amend ccedb2d44

6 years agoremove cruft
Robin Gareus [Fri, 29 Sep 2017 19:05:46 +0000 (21:05 +0200)]
remove cruft

6 years agogit ignore patch-error/orig files
Robin Gareus [Fri, 29 Sep 2017 19:05:39 +0000 (21:05 +0200)]
git ignore patch-error/orig files

6 years agoremove *.orig files (accidentally added in cba53a202)
Robin Gareus [Fri, 29 Sep 2017 19:05:06 +0000 (21:05 +0200)]
remove *.orig files (accidentally added in cba53a202)

6 years agoRemove unused punch+preroll API
Robin Gareus [Fri, 29 Sep 2017 19:01:50 +0000 (21:01 +0200)]
Remove unused punch+preroll API

This API was not used, also superseded by record w/preroll.

6 years agoConvert Diskstream/Playlist from A5 session format
Robin Gareus [Fri, 29 Sep 2017 04:48:27 +0000 (06:48 +0200)]
Convert Diskstream/Playlist from A5 session format

6 years agoremove cruft
Robin Gareus [Fri, 29 Sep 2017 04:32:04 +0000 (06:32 +0200)]
remove cruft

6 years agoAdd DiskIOProc & Latency related Lua bindings & scripts
Robin Gareus [Thu, 28 Sep 2017 02:25:50 +0000 (04:25 +0200)]
Add DiskIOProc & Latency related Lua bindings & scripts

6 years agoAux-Send Latency compensation, part 2 & code-consolidation
Robin Gareus [Fri, 29 Sep 2017 02:17:16 +0000 (04:17 +0200)]
Aux-Send Latency compensation, part 2 & code-consolidation

6 years agoUpdate Send: Include internal 'thru' delay-line
Robin Gareus [Fri, 29 Sep 2017 02:06:40 +0000 (04:06 +0200)]
Update Send: Include internal 'thru' delay-line

This allows to push latency upstream and delay the source
in case the destination has a longer latency.

Also add a signal to notify the Session in case this happens, intended
to queue a latency-recompute.

6 years agoAux-Send Latency compensation, part 1: latent sources
Robin Gareus [Thu, 28 Sep 2017 14:06:57 +0000 (16:06 +0200)]
Aux-Send Latency compensation, part 1: latent sources

6 years agoUpdate Timecode Generator/Slave alignment
Robin Gareus [Fri, 29 Sep 2017 02:13:57 +0000 (04:13 +0200)]
Update Timecode Generator/Slave alignment

6 years agoDelayline: report if set_delay() actually changed the delay
Robin Gareus [Fri, 29 Sep 2017 02:07:20 +0000 (04:07 +0200)]
Delayline: report if set_delay() actually changed the delay

6 years agoDelayline naming -- for debug purposes
Robin Gareus [Thu, 28 Sep 2017 13:45:12 +0000 (15:45 +0200)]
Delayline naming -- for debug purposes

6 years agoProperly aligned export (Stem + Session)
Robin Gareus [Tue, 26 Sep 2017 15:49:24 +0000 (17:49 +0200)]
Properly aligned export (Stem + Session)

Delay ports being exported by their playback latency.

6 years agoRemove unused mechanism
Robin Gareus [Thu, 28 Sep 2017 04:12:31 +0000 (06:12 +0200)]
Remove unused mechanism

6 years agoUpdate the Metronome, align to output
Robin Gareus [Fri, 29 Sep 2017 02:44:00 +0000 (04:44 +0200)]
Update the Metronome, align to output

6 years agoOngoing work on latency compensation
Robin Gareus [Thu, 28 Sep 2017 04:31:12 +0000 (06:31 +0200)]
Ongoing work on latency compensation

The general goal is to align transport-sample to be the audible frame
and use that as "anchor" for all processing.

transport_sample cannot become negative (00:00:00:00 is the first audible
frame).

Internally transport pre-rolls (read-ahead) before the transport starts
to move. This allows inputs and disk to prefill the pipeline.

When starting to roll, the session counts down a global "remaning preroll"
counter, which is the worst-latency from in-to-out.
Each route in turn will start processing at its own output-latency.

Route::process_output_buffers() - which does the actual processing
incl disk i/o - begins by offsetting the "current sample" by the
route's process-latency and decrements the offset for each latent
processor.  At the end of the function the output will be aligned
and match  transport-sample - downstream-playback-latency (if any).

PS. This commit is a first step only: transport looping & vari-speed have
not yet been implemented/updated.

6 years agoAdd API to query IO latencies
Robin Gareus [Thu, 28 Sep 2017 04:08:30 +0000 (06:08 +0200)]
Add API to query IO latencies

IO::connected_latency() is relevant once Ardour publishes individual
per Port latency.

IO::public_latency() is only for debug purposes.

6 years agoAdd Processor API for global session-transport alignment
Robin Gareus [Thu, 28 Sep 2017 04:04:58 +0000 (06:04 +0200)]
Add Processor API for global session-transport alignment

These are only relevant for DiskIO Processors, however more
use-cases may present themselves (e.g. LuaDSP)

6 years agoPrepare removal of initial_delay
Robin Gareus [Thu, 28 Sep 2017 03:57:57 +0000 (05:57 +0200)]
Prepare removal of initial_delay

6 years agoclean up route header, NO-OP (except variable re-order)
Robin Gareus [Thu, 28 Sep 2017 03:54:42 +0000 (05:54 +0200)]
clean up route header, NO-OP (except variable re-order)

6 years agoNO-OP: Whitespace
Robin Gareus [Wed, 20 Sep 2017 21:12:03 +0000 (23:12 +0200)]
NO-OP: Whitespace

6 years agoRemove code related to capture-offset.
Robin Gareus [Thu, 28 Sep 2017 02:42:13 +0000 (04:42 +0200)]
Remove code related to capture-offset.

6 years agoNo more disk-reader roll-delay
Robin Gareus [Sat, 23 Sep 2017 22:54:26 +0000 (00:54 +0200)]
No more disk-reader roll-delay

It was not working in sdio/6.0-pre anyway and with upcoming changes to
latency compensation the concept of per disk[stream/reader] will go away.

6 years agoCheck in a few MSVC projects to accommodate the change from libtimecode to libtemporal
John Emmas [Thu, 28 Sep 2017 11:23:53 +0000 (12:23 +0100)]
Check in a few MSVC projects to accommodate the change from libtimecode to libtemporal

This is mostly to see if there'll be any problems when merging these changes into Mixbus. I'm guessing there'll be some conflicts in these projects (and a lot more to follow...)

6 years agoAccommodate newly added/removed source(s) in our MSVC project (libwidgets)
John Emmas [Thu, 28 Sep 2017 11:19:34 +0000 (12:19 +0100)]
Accommodate newly added/removed source(s) in our MSVC project (libwidgets)

6 years agoAccommodate newly added/removed source(s) in our MSVC project (libtemporal)
John Emmas [Thu, 28 Sep 2017 11:19:10 +0000 (12:19 +0100)]
Accommodate newly added/removed source(s) in our MSVC project (libtemporal)

6 years agoRename 'libs/temporal/MSVCtemporal/timecode.vcproj' to 'libs/temporal/MSVCtemporal...
John Emmas [Thu, 28 Sep 2017 09:21:54 +0000 (10:21 +0100)]
Rename 'libs/temporal/MSVCtemporal/timecode.vcproj' to 'libs/temporal/MSVCtemporal/temporal.vcproj'

6 years agoRename 'libs/temporal/MSVCtimecode' to 'libs/temporal/MSVCtemporal'
John Emmas [Thu, 28 Sep 2017 09:18:53 +0000 (10:18 +0100)]
Rename 'libs/temporal/MSVCtimecode' to 'libs/temporal/MSVCtemporal'

6 years agoPropagate Latency to backend/system ports (Dummy backend)
Robin Gareus [Thu, 28 Sep 2017 11:14:11 +0000 (13:14 +0200)]
Propagate Latency to backend/system ports (Dummy backend)

amend ab3889ff (which implements this for other backends)

6 years agoUpdate session-utils Readme
Robin Gareus [Wed, 27 Sep 2017 18:03:08 +0000 (20:03 +0200)]
Update session-utils Readme

6 years agoMinor refinement of new session util
Robin Gareus [Wed, 27 Sep 2017 16:50:24 +0000 (18:50 +0200)]
Minor refinement of new session util

6 years agoAdd session-util to create a new empty session
Robin Gareus [Wed, 27 Sep 2017 16:22:49 +0000 (18:22 +0200)]
Add session-util to create a new empty session

6 years agoMore s/frame/sample/ -- Lua Scripts
Robin Gareus [Wed, 27 Sep 2017 03:03:10 +0000 (05:03 +0200)]
More s/frame/sample/ -- Lua Scripts

Sadly this breaks existing loaded scripts. C'est la vie.

6 years agoAnother Lua example script
Robin Gareus [Tue, 26 Sep 2017 18:49:50 +0000 (20:49 +0200)]
Another Lua example script

* Track template
* MIDI track creation
* Adding plugins and setting parameters
* Dialogs

6 years agoExport needs to offset buffers when processing partial cycle
Robin Gareus [Tue, 26 Sep 2017 15:39:42 +0000 (17:39 +0200)]
Export needs to offset buffers when processing partial cycle

6 years agoFix FixedDelayline, default configuration increased set max-delay
Robin Gareus [Tue, 26 Sep 2017 15:39:00 +0000 (17:39 +0200)]
Fix FixedDelayline, default configuration increased set max-delay

6 years agochange libtemporal to be versioned like all others
Paul Davis [Mon, 25 Sep 2017 16:13:46 +0000 (12:13 -0400)]
change libtemporal to be versioned like all others

6 years agoadditional changes to follow library name change from timecode -> temporal
Paul Davis [Mon, 25 Sep 2017 15:12:32 +0000 (11:12 -0400)]
additional changes to follow library name change from timecode -> temporal

6 years agoRetire ClickBox + AutoSpin
Robin Gareus [Mon, 25 Sep 2017 03:21:53 +0000 (05:21 +0200)]
Retire ClickBox + AutoSpin

After over 17 years of honorable service to the Ardour Codebase.
ClickBox and AutoSpin are retiring into the git nirvana.

We're glad for the duty, decency, reliability, dignity, respect which
these classes brought to Arodur and look back in gratitude on their years
of service.

PS. First one to say "cruft" will be fired.

6 years agoRemove unused ClickBox
Robin Gareus [Mon, 25 Sep 2017 03:22:05 +0000 (05:22 +0200)]
Remove unused ClickBox

6 years agoSimplify the logic of on_scroll_event
Julien "_FrnchFrgg_" RIVAUD [Sun, 24 Sep 2017 19:37:19 +0000 (21:37 +0200)]
Simplify the logic of on_scroll_event

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