e025415516
Use PBD::demangle_symbol in PBD::demangled_name<T> to reduce code duplication
2015-12-01 14:22:38 +10:00
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
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
254c1e2c91
faderport: correctly restore mix/proj/trns state from XML
2015-11-30 20:54:23 -05:00
41d0336f80
faderport: cleanup
2015-11-30 20:34:51 -05:00
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
b8ed62453f
faderport: restore button actions, and correctly indicate current action in GUI
2015-11-30 13:50:33 -05:00
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
149f6795bb
no-op: add comment to faderport button ID definitions
2015-11-29 11:58:36 -05:00
73d1de3b75
NOOP, remove trailing whitespace, replace tabs in python scripts
2015-11-29 17:54:31 +01:00
c6dfb947eb
faderport: add two functioning actions for the mix button
2015-11-29 11:43:14 -05:00
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
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
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
5bdab24746
add some midi-debug printf() to the dummy backend
2015-11-28 22:54:00 +01:00
1fd04baeb3
fix typo in panic message, honor event-time.
2015-11-28 22:34:54 +01:00
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
03ed56b247
filling the midi playback buffer is a private operation.
2015-11-28 22:30:54 +01:00
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
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
b842495be0
fadeport: make fader touch work
2015-11-27 10:22:01 -05:00
3893f62657
Mackie Control: Disable Selected group in User/Selected view mode to allow individual adjustment.
2015-11-26 06:55:25 -08:00
d138f8981d
implement more Faderport buttons (window and fader automation). ToDo: automation LEDs, fader banking
2015-11-25 17:33:49 -06:00
d6186fba32
use human readable port-names in Mackie config.
2015-11-26 00:30:52 +01:00
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
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
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
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
d53993fd83
faderport: output button is a toggle between master (or monitor) and currently used route
2015-11-25 16:47:20 -05:00
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
487ada6630
handle encoder changes. shift+knob = input trim. ToDo: panner control
2015-11-25 14:52:58 -06:00
4e014da61a
cruft removal from faderport code
2015-11-25 13:37:00 -05:00
dd6cbac20e
faderport: implement fader support
2015-11-25 13:37:00 -05:00
0189b1eae9
restore measured Insert latency
...
(XML underscore vs dash)
2015-11-25 19:09:23 +01:00
fe06e3b7e8
faderport: track GUI selection, use first selected route; implement mute, solo, rec
2015-11-25 12:38:22 -05:00
68da5a1402
faderport: put back the working version of operations.cc
2015-11-25 07:35:50 -05:00
3ded5fc3f6
stub file to enable nightly builds
2015-11-24 23:37:49 -06:00
000b11dc4d
faderport: more global button functions added
2015-11-24 23:41:10 -05:00
2e3721ecf4
add goto_zero() function for BasicUI
2015-11-24 23:40:54 -05:00
7ae380c7f6
faderport: more interesting behaviour for the play button (locate to last start if pressed while rolling, then keep rolling)
2015-11-24 23:31:29 -05:00
9c64d63ebb
clarify a DEBUG_TRACE remark
2015-11-24 23:29:03 -05:00
e7a3a5ab9c
faderport: make loop, prev marker, next marker and marker buttons do stuff
2015-11-24 23:27:55 -05:00
35577f439d
add debug "bits" for FaderPort
2015-11-24 23:20:39 -05:00
2ea4d5c7b5
faderport: allow forcing LED state for use in ::all_lights_out()
2015-11-24 23:13:02 -05:00
34d847e060
faderport: fix modifiers for rewind, stop, undo etc ; listen to session transport signals and display state with button LEDs; add blinking
2015-11-24 23:06:19 -05:00
3a86b386fa
fadeport: restructure button info actions to allow modifiers (shift, rewind, stop) and set up undo and shift-undo (redo)
2015-11-24 22:32:40 -05:00
7c8cc3cfa9
give the faderport its own thread and event loop, rather than riding on the back of the MIDI UI thread in libardour
2015-11-24 21:41:44 -05:00
8765359db2
faderport: after connecting, turn off all lights, then party with them, then turn them all off
2015-11-24 21:10:22 -05:00
84ebad120e
add some faderport infrastructure for button handling, and bind up the transport functions to their obvious methods
2015-11-24 21:02:18 -05:00
9106512000
namespace and filename cleanup
2015-11-24 20:12:12 -05:00