065d7c852a
outline a "NoSampleAccurateControl" LV2 feature:
...
Since control-ports have a fixed value for the current process-block,
Ardour splits a plugin's run() process cycle on every automation event
to facilitate sample-accurate automation.
Since automation is interpolated between events, this ensures that each
explicit automation point is reached (not interpolated).
Plugins where this is not required and which favor a fixed block-size,
can now specify an optional Feature: NoSampleAccurateControl.
One example: a convolution plugin with smoothed gain control.
2015-12-06 14:27:24 +01:00
e6ff687138
Update Russian translation
2015-12-06 09:58:42 +01:00
10b715d1ff
Normalize user-visible messages to use 8-bit, 16-bit, 24-bit, 32-bit and 64-bit
2015-12-06 01:00:20 +01:00
9fa4d3c77f
elaborate on prev. commit: ignore irrelevant files in the interchange dir.
2015-12-05 16:35:41 +01:00
a2b7a8ccab
session-dir/interchange: ignore hidden directories.
2015-12-05 16:07:45 +01:00
7ad8ad8823
JACK: expose --nperiods option
2015-12-05 13:56:18 +01:00
4dc49ee4fa
fix -Wreorder
2015-12-05 02:42:58 +01:00
a6f27f09a7
update ALSA backend: separate playback/capture periods
...
fixed: 2 for capture, configurable 2,3 for playback.
2015-12-05 01:53:13 +01:00
e3d2898c8d
more Faderport debugging, for windows
2015-12-04 18:11:05 -06:00
0a997f62cc
remove spurious printout
2015-12-04 17:32:23 -06:00
bfd2cbaa3f
ALSA: allow to dynamically add/remove midi devices & update their latency.
2015-12-04 22:19:47 +01:00
ac075560bd
ALSA: allow to measure & set systemic audio latency w/o restart.
...
(MIDI needs a bit more work)
2015-12-04 17:45:49 +01:00
95f91d9dbd
update engine to allow latency measurement w/o restart.
2015-12-04 17:09:41 +01:00
78a9791b58
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.
2015-12-04 17:08:45 +01:00
a49284a909
fix thinko in engine latency state
...
(skip Halted signal when stopped for latency)
2015-12-04 12:45:53 +01:00
990fd75c5f
implement ALSA period/cycle setting
2015-12-04 10:16:19 +01:00
13926d9bbb
add an interface to select playback buffers/period
2015-12-04 10:16:19 +01:00
e82cc88c6f
faderport: show current User button bindings in GUI
2015-12-03 21:45:41 -05:00
a9ce37b7ac
faderport: fix long press behaviour, and fix ardour-only behaviour with user button when used as a modifier
2015-12-03 18:38:09 -05:00
b07d86ac61
make faderport support report its port bundles as it should
2015-12-03 12:50:32 -05:00
900f59dcde
faderport: generalized blink on/off code
2015-12-03 08:36:56 -05:00
43e5d639cc
Faderport: Punch indictor was being left on after blinking
2015-12-03 07:27:42 -06:00
Kamil Rytarowski
2b869e1563
netbsd: Fix unportable shell construct
...
Caught with pkgsrc on NetBSD
2015-12-03 12:19:34 +01:00
20facc4d18
Faderport: map automation indicator LEDs
2015-12-02 20:06:29 -06:00
16a100703b
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.
2015-12-02 19:18:22 -06:00
90275ded6a
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
2015-12-02 17:40:58 -05:00
ba02c171f1
add session safeguards to OSC callbacks
2015-12-02 22:40:36 +01:00
Johannes Mueller
f11e18555e
Cleanup to make it coding style compliant.
2015-12-02 22:38:29 +01:00
Johannes Mueller
4a429fab0e
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.
2015-12-02 22:38:29 +01:00
André Nusser
ba4db8f6cb
Add function to duplicate until a certain frame.
...
This excludes the 'end' frame.
2015-12-02 14:59:43 -05:00
c93f0b77bf
rename ProcessSemaphore to Semaphore (libs)
2015-12-02 20:18:48 +01:00
3242f16d44
consolidate semaphore implementation (part four)
2015-12-02 16:27:14 +01:00
15c958e32f
consolidate semaphore implementation (part three)
2015-12-02 16:09:51 +01:00
003b632ed1
consolidate semaphore implementation (part one)
2015-12-02 16:03:28 +01:00
14d6470ad3
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 :)
2015-12-02 13:59:48 +01:00
e9be313c11
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.
2015-12-02 10:24:08 +10:00
b4fb1d610b
Use portaudio callback API by default in portaudio backend
2015-12-02 10:24:07 +10:00
5f267f92bf
Rename member variables in Portaudio Backend for consistency
2015-12-02 10:24:07 +10:00
29feb914b9
Rename blocking process function in portaudio backend
2015-12-02 10:24:06 +10:00
3e6b28daca
Rename blocking thread function in portaudio backend
2015-12-02 10:24:05 +10:00
aaebeb3d2b
fix typo in variable name
2015-12-02 00:59:32 +01:00
0544e74fdf
merge from mixbus branch.
...
keep control surfaces special cases upstream.
2015-12-02 00:55:01 +01:00
b0fe298f72
faderport: factor out encoder divider into a const double
2015-12-01 18:47:29 -05:00
ee9524c9b6
faderport: make punch button LED indicate punch status
2015-12-01 18:45:43 -05:00
fd44adfe01
faderport: change panning dividers to give full range across very roughly 270 degrees of rotation
2015-12-01 18:32:55 -05:00
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
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
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
0e629cd162
faderport: add punch action
2015-12-01 10:35:37 -05:00
0c9fd363ca
faderport: GUI tweaks
2015-12-01 10:35:37 -05:00
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
daf02e8c73
remove "medium-length" press concept from faderport code and GUI
2015-12-01 09:23:08 -05:00
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
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
7f3118c8fe
Don't indent inside namespace declaration to be consistent with ardour style
2015-12-01 14:22:38 +10:00
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