13
0
Commit Graph

18522 Commits

Author SHA1 Message Date
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
0d250a0db8 some upcoming release codenames 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
0f3c623a3f fix OSX openFile Application Delegate
allows to open Ardour via double-click on a .ardour file in Finder.
2015-11-29 17:04:40 +01: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
2f8cc0718a Merge branch 'chaot4-feature_include_more_options_in_help' 2015-11-25 17:32:56 -05:00
André Nusser
5ff5faed8c Correct spelling of action names. Translation context for Reference. 2015-11-25 17:32:46 -05:00
André Nusser
69229f74e0 Add more menu entries to the 'Help' menu.
* The functions were already implemented -- I just added the links in
ardour.menu.in, corrected spelling and the link to the tracker.
* The tracker link was corrected as I considered it confusing when one
is not already logged in.
2015-11-25 17:32:46 -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
dc78fcfb2f check for itstool (>= 1.0.4, -j option) 2015-11-25 16:36:37 +01: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
71520c7432 Prevent crash at session-close when analysing.
The Analyser only holds a weak-pointer the the Source,
session-destruction frees the actual Source, which is fatal for any
ongoing audio analysis.


This fix simply waits for the current ongoing analysis to complete,
ideally TransientDetector::run, EBUr128Analysis::run, OnsetDetector::run
and AudioAnalyser::analyse could be interrupted.

Alternate option: cancel the Analyser::work thread (and re-create with
the every session).
2015-11-25 00:56:05 +01:00