Commit graph

9508 commits

Author SHA1 Message Date
Paul Davis
b0fe298f72 faderport: factor out encoder divider into a const double 2015-12-01 18:47:29 -05:00
Paul Davis
ee9524c9b6 faderport: make punch button LED indicate punch status 2015-12-01 18:45:43 -05:00
Paul Davis
fd44adfe01 faderport: change panning dividers to give full range across very roughly 270 degrees of rotation 2015-12-01 18:32:55 -05:00
Paul Davis
cb965cba16 start tweaks to make Shift sticky; remove Shift-press combobox from gui since we don't allow that to be bound (next-marker) 2015-12-01 16:19:16 -05:00
Paul Davis
37961a6bbe 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
2015-12-01 13:15:38 -05:00
Paul Davis
03a4926790 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
2015-12-01 11:20:09 -05:00
Paul Davis
0e629cd162 faderport: add punch action 2015-12-01 10:35:37 -05:00
Paul Davis
0c9fd363ca faderport: GUI tweaks 2015-12-01 10:35:37 -05:00
Robin Gareus
4bd66dd17c fix AU preset list
Don't require user-presets to be present in order to include
factory presets
2015-12-01 15:26:24 +01:00
Paul Davis
daf02e8c73 remove "medium-length" press concept from faderport code and GUI 2015-12-01 09:23:08 -05:00
Paul Davis
620f1caf23 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
2015-12-01 09:23:08 -05:00
Tim Mayberry
44f46d2b0d 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
2015-12-01 15:44:10 +10:00
Tim Mayberry
7f3118c8fe Don't indent inside namespace declaration to be consistent with ardour style 2015-12-01 14:22:38 +10:00
Tim Mayberry
e025415516 Use PBD::demangle_symbol in PBD::demangled_name<T> to reduce code duplication 2015-12-01 14:22:38 +10:00
Tim Mayberry
36fa670309 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.
2015-12-01 14:22:38 +10:00
Tim Mayberry
5f4f89fb39 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
2015-12-01 14:22:38 +10:00
Paul Davis
254c1e2c91 faderport: correctly restore mix/proj/trns state from XML 2015-11-30 20:54:23 -05:00
Paul Davis
41d0336f80 faderport: cleanup 2015-11-30 20:34:51 -05:00
Paul Davis
f1dd53e37a faderport: add some "curated" actions for mix, proj and trns; make new bindings use release, not press 2015-11-30 15:05:30 -05:00
Paul Davis
b8ed62453f faderport: restore button actions, and correctly indicate current action in GUI 2015-11-30 13:50:33 -05:00
Paul Davis
682e152aaf faderport: some code cleanups, add timing for button presses, add new comboboxes to GUI to allow more button programming, save button state 2015-11-30 12:51:18 -05:00
Paul Davis
149f6795bb no-op: add comment to faderport button ID definitions 2015-11-29 11:58:36 -05:00
Robin Gareus
73d1de3b75 NOOP, remove trailing whitespace, replace tabs in python scripts 2015-11-29 17:54:31 +01:00
Paul Davis
c6dfb947eb faderport: add two functioning actions for the mix button 2015-11-29 11:43:14 -05:00
Paul Davis
6380403dad basic structure for Faderport GUI
Not fully functional (or sensible yet) but the pieces are all there
2015-11-29 11:33:23 -05:00
Robin Gareus
7a5cea45e1 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.
2015-11-29 01:27:18 +01:00
Robin Gareus
c4f8a69526 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().
2015-11-28 23:40:03 +01:00
Robin Gareus
5bdab24746 add some midi-debug printf() to the dummy backend 2015-11-28 22:54:00 +01:00
Robin Gareus
1fd04baeb3 fix typo in panic message, honor event-time. 2015-11-28 22:34:54 +01:00
Robin Gareus
aa8d512ee7 midi-panic needs to honor split-cycle buffer offset,
otherwise panic message will be delivered out-of-order when
seamlessly looping.
2015-11-28 22:33:43 +01:00
Robin Gareus
03ed56b247 filling the midi playback buffer is a private operation. 2015-11-28 22:30:54 +01:00
Paul Davis
bbaa5c6f45 faderport: shift+encoder controls pan width (for ardour only), input trim now controlled by user+encoder.
User is now a modifier key
2015-11-27 16:41:26 -05:00
Paul Davis
779ec041b5 faderport: basic panning via encoder knob.
Doesn't help with 2=>2 panner, where width control is also required
2015-11-27 16:34:01 -05:00
Paul Davis
b842495be0 fadeport: make fader touch work 2015-11-27 10:22:01 -05:00
Len Ovens
3893f62657 Mackie Control: Disable Selected group in User/Selected view mode to allow individual adjustment. 2015-11-26 06:55:25 -08:00
Ben Loftis
d138f8981d implement more Faderport buttons (window and fader automation). ToDo: automation LEDs, fader banking 2015-11-25 17:33:49 -06:00
Robin Gareus
d6186fba32 use human readable port-names in Mackie config. 2015-11-26 00:30:52 +01:00
Paul Davis
e1794ae678 faderport: simpler logic for master/monitor/other
When choosing master or monitor, do NOT save master or monitor as the pre_{master,monitor}_route under
any circumstances. This means that master/monitor choices do not stack, and just switch between them.
2015-11-25 17:56:22 -05:00
Paul Davis
e1ea14f10a faderport: handle mute for monitor out by using monitor processor ops; try to blink mute button when cut-all is in effect.
Still some logic bugs when switching between master, monitor and other
2015-11-25 17:20:00 -05:00
Paul Davis
9cbab4070f faderport: fix odd interaction when selecting master-then-monitor or monitor-then-master and toggling back 2015-11-25 16:55:14 -05:00
Paul Davis
1450fc07c1 faderport: fix odd interaction when selecting master-then-monitor or monitor-then-master and toggling back 2015-11-25 16:51:53 -05:00
Paul Davis
d53993fd83 faderport: output button is a toggle between master (or monitor) and currently used route 2015-11-25 16:47:20 -05:00
Paul Davis
104ec39b50 faderport: enable "Output" button to select master out (or, with Shift, monitor out if it exists) as the target route 2015-11-25 16:34:11 -05:00
Ben Loftis
487ada6630 handle encoder changes. shift+knob = input trim. ToDo: panner control 2015-11-25 14:52:58 -06:00
Paul Davis
4e014da61a cruft removal from faderport code 2015-11-25 13:37:00 -05:00
Paul Davis
dd6cbac20e faderport: implement fader support 2015-11-25 13:37:00 -05:00
Robin Gareus
0189b1eae9 restore measured Insert latency
(XML underscore vs dash)
2015-11-25 19:09:23 +01:00
Paul Davis
fe06e3b7e8 faderport: track GUI selection, use first selected route; implement mute, solo, rec 2015-11-25 12:38:22 -05:00
Paul Davis
68da5a1402 faderport: put back the working version of operations.cc 2015-11-25 07:35:50 -05:00
Ben Loftis
3ded5fc3f6 stub file to enable nightly builds 2015-11-24 23:37:49 -06:00