Robin Gareus [Fri, 4 Dec 2015 23:46:36 +0000 (00:46 +0100)]
update ALSA backend: separate playback/capture periods
fixed: 2 for capture, configurable 2,3 for playback.
Robin Gareus [Sat, 5 Dec 2015 00:32:56 +0000 (01:32 +0100)]
GUI chores to show nperiods option.
Ben Loftis [Sat, 5 Dec 2015 00:11:05 +0000 (18:11 -0600)]
more Faderport debugging, for windows
Ben Loftis [Fri, 4 Dec 2015 23:32:14 +0000 (17:32 -0600)]
remove spurious printout
Robin Gareus [Fri, 4 Dec 2015 21:19:47 +0000 (22:19 +0100)]
ALSA: allow to dynamically add/remove midi devices & update their latency.
Robin Gareus [Fri, 4 Dec 2015 16:45:49 +0000 (17:45 +0100)]
ALSA: allow to measure & set systemic audio latency w/o restart.
(MIDI needs a bit more work)
Robin Gareus [Fri, 4 Dec 2015 16:34:46 +0000 (17:34 +0100)]
GUI handling for live latency-measurement
Robin Gareus [Fri, 4 Dec 2015 16:09:41 +0000 (17:09 +0100)]
update engine to allow latency measurement w/o restart.
Robin Gareus [Fri, 4 Dec 2015 16:08:45 +0000 (17:08 +0100)]
add interface for latency updates w/o restarting the backend
This is useful for USB devices. Since there is a ringbuffer in the driver
(common on ALSA but also other platforms) to align the USB stream with
USB bus timing the latency can differ every time the device is re-opened.
Robin Gareus [Fri, 4 Dec 2015 16:05:21 +0000 (17:05 +0100)]
remove duplicate check (same is done few lines above)
Robin Gareus [Fri, 4 Dec 2015 11:45:53 +0000 (12:45 +0100)]
fix thinko in engine latency state
(skip Halted signal when stopped for latency)
André Nusser [Thu, 3 Dec 2015 20:13:45 +0000 (21:13 +0100)]
Make the duplicate routes dialog look a little nicer.
André Nusser [Fri, 4 Dec 2015 10:37:55 +0000 (11:37 +0100)]
Remove "Fill Range with Region" from menu and also its function.
Robin Gareus [Fri, 4 Dec 2015 09:15:55 +0000 (10:15 +0100)]
implement ALSA period/cycle setting
Robin Gareus [Fri, 4 Dec 2015 09:04:22 +0000 (10:04 +0100)]
add an interface to select playback buffers/period
Paul Davis [Fri, 4 Dec 2015 03:01:07 +0000 (22:01 -0500)]
do not show control surface bundles in non-MIDI port matrix.
This will stop being the right thing to do if anyone ever creates a control protocol that
uses audio ports.
Paul Davis [Fri, 4 Dec 2015 02:45:41 +0000 (21:45 -0500)]
faderport: show current User button bindings in GUI
Paul Davis [Thu, 3 Dec 2015 23:38:09 +0000 (18:38 -0500)]
faderport: fix long press behaviour, and fix ardour-only behaviour with user button when used as a modifier
Paul Davis [Thu, 3 Dec 2015 17:57:08 +0000 (12:57 -0500)]
Merge branch 'chaot4-fix_crop_region_to_range_2'
André Nusser [Thu, 3 Dec 2015 17:45:47 +0000 (18:45 +0100)]
Fix "Crop Region to Range" -- second attempt.
Paul Davis [Thu, 3 Dec 2015 17:44:21 +0000 (12:44 -0500)]
make faderport support report its port bundles as it should
Paul Davis [Thu, 3 Dec 2015 17:43:54 +0000 (12:43 -0500)]
further improvements to port grouping for the port matrix
Don't show LTC etc. ports in the MIDI matrix; Don't show Scene ports for Ardour or Mixbus, since we don't use them; code renaming
Paul Davis [Thu, 3 Dec 2015 16:49:18 +0000 (11:49 -0500)]
fix mis-assignment of various Ports when constructing the PortGroup list for the (e.g.) PortMatrix
Robin Gareus [Thu, 3 Dec 2015 17:41:57 +0000 (18:41 +0100)]
disable pthread-w32 semaphores for now
Two major changes: semaphore AND callback based portaudio on one day
are not great for testing.
Paul Davis [Thu, 3 Dec 2015 13:36:56 +0000 (08:36 -0500)]
faderport: generalized blink on/off code
Paul Davis [Thu, 3 Dec 2015 13:27:56 +0000 (08:27 -0500)]
Revert "somewhat different approach to telling the user how to edit control protocol settings"
This reverts commit
4eb161cd4cf55841b7d0d93ca54e8d5706f46232.
Paul Davis [Thu, 3 Dec 2015 13:27:47 +0000 (08:27 -0500)]
Revert "NO-OP: remove cruft"
This reverts commit
5facfc113de7da94a9cab2b6cb274155b5dcb39e.
Ben Loftis [Thu, 3 Dec 2015 13:19:09 +0000 (07:19 -0600)]
Faderport: Punch indictor was being left on after blinking
Kamil Rytarowski [Thu, 3 Dec 2015 11:19:34 +0000 (12:19 +0100)]
netbsd: Fix unportable shell construct
Caught with pkgsrc on NetBSD
Paul Davis [Thu, 3 Dec 2015 04:39:41 +0000 (23:39 -0500)]
NO-OP: remove cruft
Paul Davis [Thu, 3 Dec 2015 04:30:57 +0000 (23:30 -0500)]
somewhat different approach to telling the user how to edit control protocol settings
We can't put an actual button in a cell of a Tree/ListView, so we put some bolded-up text there and hope
that this is more obvious than anything we've tried to date (including Ben's recent attempt)
Ben Loftis [Thu, 3 Dec 2015 02:06:29 +0000 (20:06 -0600)]
Faderport: map automation indicator LEDs
Ben Loftis [Thu, 3 Dec 2015 00:31:43 +0000 (18:31 -0600)]
GenericMidi: Partially working IO selectors.
2 remaining problems:
* IO selectors are not updated if you change the connection outside the dialog.
* occasional crash on the next startup, after a connection is made from the menu.
Ben Loftis [Wed, 2 Dec 2015 17:59:10 +0000 (11:59 -0600)]
use explicit button to show the protocol editor; users reported they did not see the double-click text. maybe this will help?
André Nusser [Fri, 9 Oct 2015 14:14:15 +0000 (16:14 +0200)]
Enable horizontal scrolling in midi regions when note is selected.
The shortcut for 'change velocities together' had to be changed to
achieve that. The new shortcut is now primary+tertiary modifier +scroll,
i.e. ctrl+shift+scroll for the default keys.
Paul Davis [Wed, 2 Dec 2015 22:40:58 +0000 (17:40 -0500)]
faderport: a clever hack to make the Shift modifier "sticky"
The user can now press+release Shift, then another key OR press Shift, then another key before releasing Shift. Both
event sequences will have the same result
Paul Davis [Wed, 2 Dec 2015 21:58:58 +0000 (16:58 -0500)]
fix double template syntax
Robin Gareus [Wed, 2 Dec 2015 21:40:36 +0000 (22:40 +0100)]
add session safeguards to OSC callbacks
Johannes Mueller [Tue, 17 Nov 2015 17:05:39 +0000 (18:05 +0100)]
Cleanup to make it coding style compliant.
Johannes Mueller [Fri, 13 Nov 2015 06:49:13 +0000 (07:49 +0100)]
Add support to signal the transport state by OSC
Implement transport_speed in the same style like transport_frame. Up to
now transport_speed and record_enabled are implemented.
Paul Davis [Wed, 2 Dec 2015 20:02:56 +0000 (15:02 -0500)]
Merge branch 'chaot4-fix_scrolling_midi_region_head'
André Nusser [Sat, 10 Oct 2015 23:32:13 +0000 (01:32 +0200)]
Disable scrolling in the dropdown menus of midi region heads.
Instead pass it to the canvas as proposed by x42 in #6143.
Paul Davis [Wed, 2 Dec 2015 19:59:55 +0000 (14:59 -0500)]
Merge branch 'chaot4-fix_fill_track'
André Nusser [Thu, 26 Nov 2015 16:26:43 +0000 (17:26 +0100)]
Fix "Fill Track".
It now behaves like Multi-Duplicate until the end marker. The end
marker is excluded as this would often lead to size 1 regions.
André Nusser [Thu, 26 Nov 2015 16:25:13 +0000 (17:25 +0100)]
Add function to duplicate until a certain frame.
This excludes the 'end' frame.
André Nusser [Thu, 26 Nov 2015 12:27:17 +0000 (13:27 +0100)]
Fix "Crop Region to Range".
Before only regions that contained the start of the range were cropped,
now all are cropped.
Robin Gareus [Wed, 2 Dec 2015 19:19:07 +0000 (20:19 +0100)]
rename ProcessSemaphore to Semaphore (UI)
Robin Gareus [Wed, 2 Dec 2015 19:18:48 +0000 (20:18 +0100)]
rename ProcessSemaphore to Semaphore (libs)
Robin Gareus [Wed, 2 Dec 2015 15:27:14 +0000 (16:27 +0100)]
consolidate semaphore implementation (part four)
Robin Gareus [Wed, 2 Dec 2015 15:09:51 +0000 (16:09 +0100)]
consolidate semaphore implementation (part three)
Robin Gareus [Wed, 2 Dec 2015 15:08:53 +0000 (16:08 +0100)]
consolidate semaphore implementation (part two)
Robin Gareus [Wed, 2 Dec 2015 15:03:28 +0000 (16:03 +0100)]
consolidate semaphore implementation (part one)
Robin Gareus [Wed, 2 Dec 2015 14:07:33 +0000 (15:07 +0100)]
fix pthread-windows semaphore detection
Robin Gareus [Wed, 2 Dec 2015 12:38:59 +0000 (13:38 +0100)]
prefer pthread-semaphores (posix API) with mingw
Hopefully this resolves glitches on hyperthreading machines.
Apart from using unnamed Semaphores, pthread-w32 includes additional locks
(guess: mem-barriers), a fallback implementation and windows-specific
tricks that I'd rather not want to know about :)
Tim Mayberry [Mon, 30 Nov 2015 09:21:58 +0000 (19:21 +1000)]
Fix latency compensation for audio data in portaudio backend
For drivers that correctly report latency values(ASIO) this should result a
much closer alignment of audio in a loopback test. Measurement and
adjustment may still be needed, especially for non-ASIO drivers.
Testing with the RME HDSP Multiface and Yamaha AG06 using ASIO drivers results
in maximum offset of a couple of samples.
Tim Mayberry [Mon, 30 Nov 2015 04:01:06 +0000 (14:01 +1000)]
Use portaudio callback API by default in portaudio backend
Tim Mayberry [Mon, 30 Nov 2015 08:24:34 +0000 (18:24 +1000)]
Rename member variables in Portaudio Backend for consistency
Tim Mayberry [Mon, 30 Nov 2015 04:25:42 +0000 (14:25 +1000)]
Rename blocking process function in portaudio backend
Tim Mayberry [Mon, 30 Nov 2015 04:21:26 +0000 (14:21 +1000)]
Rename blocking thread function in portaudio backend
Robin Gareus [Tue, 1 Dec 2015 23:59:32 +0000 (00:59 +0100)]
fix typo in variable name
Robin Gareus [Tue, 1 Dec 2015 23:55:01 +0000 (00:55 +0100)]
merge from mixbus branch.
keep control surfaces special cases upstream.
Paul Davis [Tue, 1 Dec 2015 23:47:29 +0000 (18:47 -0500)]
faderport: factor out encoder divider into a const double
Paul Davis [Tue, 1 Dec 2015 23:45:43 +0000 (18:45 -0500)]
faderport: make punch button LED indicate punch status
Paul Davis [Tue, 1 Dec 2015 23:32:55 +0000 (18:32 -0500)]
faderport: change panning dividers to give full range across very roughly 270 degrees of rotation
Paul Davis [Tue, 1 Dec 2015 21:19:16 +0000 (16:19 -0500)]
start tweaks to make Shift sticky; remove Shift-press combobox from gui since we don't allow that to be bound (next-marker)
Paul Davis [Tue, 1 Dec 2015 18:15:38 +0000 (13:15 -0500)]
faderport: switch long-press mechanism to a timeout
This makes the long press action fire after the timeout even if the user is still holding the button,
which feels more satisfactory
Paul Davis [Tue, 1 Dec 2015 16:20:09 +0000 (11:20 -0500)]
faderport: allow User button to be bound to ANY possible action.
This does involve nagivating some really gnarly menus, which is unfortunate, but we don't have a good general
solution for this yet (it is fundamentally the same problem that affects the key binding editor and Mackie support
Paul Davis [Tue, 1 Dec 2015 15:35:30 +0000 (10:35 -0500)]
faderport: add punch action
Paul Davis [Tue, 1 Dec 2015 15:31:29 +0000 (10:31 -0500)]
faderport: GUI tweaks
Paul Davis [Tue, 1 Dec 2015 15:31:18 +0000 (10:31 -0500)]
tweak control surface config window title
Robin Gareus [Tue, 1 Dec 2015 14:15:02 +0000 (15:15 +0100)]
fix AU preset list
Don't require user-presets to be present in order to include
factory presets
Paul Davis [Tue, 1 Dec 2015 14:23:02 +0000 (09:23 -0500)]
remove "medium-length" press concept from faderport code and GUI
Paul Davis [Tue, 1 Dec 2015 14:22:44 +0000 (09:22 -0500)]
set control surface window name to (usefully) show control protocol name
Paul Davis [Tue, 1 Dec 2015 14:22:24 +0000 (09:22 -0500)]
make (parent,title) variant of ArdourWindow constructor set window title
Paul Davis [Tue, 1 Dec 2015 14:03:16 +0000 (09:03 -0500)]
faderport: stick a nice little image of the faderport in the surface GUI
Ideally, the PNG file would be part of the surface GUI but for now just put the PNG into gtk2_ardour/icons
Tim Mayberry [Wed, 30 Sep 2015 10:18:10 +0000 (20:18 +1000)]
Remove unused vestigial frame member of TimeAxisViewItem
Tim Mayberry [Wed, 30 Sep 2015 09:21:11 +0000 (19:21 +1000)]
Hide Region frame outline when region width is < 2 pixels, fixes #6615
Tim Mayberry [Thu, 5 Nov 2015 04:06:03 +0000 (14:06 +1000)]
Fix broken load-session utility and change it to load and save a session
Rename run-session-tests.sh script to load-save-session.sh and make it operate on
only a single session and add a separate load-save-session-collection.sh script
Add --massif option to load-save-session.sh script
Rename some poorly named variables and add some documentation to the
load-save-session.sh script
Tim Mayberry [Thu, 29 Oct 2015 12:43:19 +0000 (22:43 +1000)]
Don't indent inside namespace declaration to be consistent with ardour style
Tim Mayberry [Thu, 29 Oct 2015 12:41:38 +0000 (22:41 +1000)]
Use PBD::demangle_symbol in PBD::demangled_name<T> to reduce code duplication
Tim Mayberry [Thu, 29 Oct 2015 12:22:47 +0000 (22:22 +1000)]
Rename PBD::symbol_demangle and some variable names to improve readability
Rename PBD::symbol_demangle to demangle_symbol so the transitive verb is
infront of the object.
Rename some local variables and fix documentation.
Tim Mayberry [Thu, 29 Oct 2015 11:58:51 +0000 (21:58 +1000)]
Move PBD symbol demangle functions into pbd/demangle.h/cc
Add pbd/demangle.cc source file and move functions from pbd/stacktrace.cc into
it
Paul Davis [Tue, 1 Dec 2015 01:54:23 +0000 (20:54 -0500)]
faderport: correctly restore mix/proj/trns state from XML
Paul Davis [Tue, 1 Dec 2015 01:13:49 +0000 (20:13 -0500)]
faderport: cleanup
André Nusser [Sun, 29 Nov 2015 19:17:11 +0000 (20:17 +0100)]
Make capitalization consistent and other minor spelling corrections.
trebmuh [Mon, 23 Nov 2015 15:59:51 +0000 (16:59 +0100)]
Create fr.po
add a French translation
Paul Davis [Mon, 30 Nov 2015 20:05:30 +0000 (15:05 -0500)]
faderport: add some "curated" actions for mix, proj and trns; make new bindings use release, not press
Paul Davis [Mon, 30 Nov 2015 18:50:33 +0000 (13:50 -0500)]
faderport: restore button actions, and correctly indicate current action in GUI
Paul Davis [Mon, 30 Nov 2015 17:51:18 +0000 (12:51 -0500)]
faderport: some code cleanups, add timing for button presses, add new comboboxes to GUI to allow more button programming, save button state
Paul Davis [Sun, 29 Nov 2015 16:58:31 +0000 (11:58 -0500)]
no-op: add comment to faderport button ID definitions
Robin Gareus [Sun, 29 Nov 2015 16:52:42 +0000 (17:52 +0100)]
NOOP, remove trailing whitespace, replace tabs in python scripts
Robin Gareus [Sun, 29 Nov 2015 16:48:21 +0000 (17:48 +0100)]
some upcoming release codenames
Paul Davis [Sun, 29 Nov 2015 16:43:14 +0000 (11:43 -0500)]
faderport: add two functioning actions for the mix button
Paul Davis [Sun, 29 Nov 2015 16:32:28 +0000 (11:32 -0500)]
basic structure for Faderport GUI
Not fully functional (or sensible yet) but the pieces are all there
Robin Gareus [Sun, 29 Nov 2015 16:04:40 +0000 (17:04 +0100)]
fix OSX openFile Application Delegate
allows to open Ardour via double-click on a .ardour file in Finder.
Robin Gareus [Sun, 29 Nov 2015 00:27:18 +0000 (01:27 +0100)]
fix seamless midi-looping - fixes #5438
well, now...
- Midi-Ports have a midi-buffer.
- Midi-Tracks have a midi-buffer.
- Midi-tracks have a diskstream.
- Midi-diskstream has a midi-ring-buffer.
- Midi-tracks have a delivery
- The delivery can get a reference to the actual backend-ports
- The delivery calls the Midi-Port's flush() buffer to send out queued events
at the end of a cycle
all clear ? :)
- when splitting the process-cycle: only the Ports are informed.
all other objects see a "normal" short process cycle starting at "0".
The offset needs to be applied early on, so that internally routed buffers
push the event at the correct time when combining the buffer with
immediate and async events.
Luckily Port::port_offset() is a static member, available to all, objects,
which allows to bridge the conceptual gap between the diskstream and
the delivery.
There's a snag:
When there's a note-on directly at the beginning of the loop it coincides
with the panic message sent when looping.
The panic comes before note events, so it *should* be good.
Also the final note-offs (state tracker end of loop/region) are sent
1 sample too early (smells like an off-by-one), and are hence dropped.
(no matter we send a panic right after it).
It should really be at the same time, just before the panic.
Robin Gareus [Sat, 28 Nov 2015 22:40:03 +0000 (23:40 +0100)]
don't clear MIDI buffers during split-cycles
if dst_offset is zero, MidiBuffer::read_from() clears the buffer.
copy_to_outputs() eventually calls MidiBuffer::read_from().
Robin Gareus [Sat, 28 Nov 2015 21:54:00 +0000 (22:54 +0100)]
add some midi-debug printf() to the dummy backend
Robin Gareus [Sat, 28 Nov 2015 21:34:54 +0000 (22:34 +0100)]
fix typo in panic message, honor event-time.
Robin Gareus [Sat, 28 Nov 2015 21:33:43 +0000 (22:33 +0100)]
midi-panic needs to honor split-cycle buffer offset,
otherwise panic message will be delivered out-of-order when
seamlessly looping.