13
0
Commit Graph

9362 Commits

Author SHA1 Message Date
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
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
ff62cec27d remove debugging output 2015-11-24 18:20:24 -05:00
b280301a65 create data structure to handle the fact that faderport firmware 1.38 uses different button IDs for input and output (!!!) 2015-11-24 18:20:07 -05:00
a15cf9f0b3 get faderport i/o working, basics of identifying control activity 2015-11-24 18:00:11 -05:00
2f1cdd3ffe rough-in for faderport protocol backend 2015-11-24 14:18:14 -06:00
bfe92c5b4f prevent concurrent peak-file init.
When embedding external files. the same file is queued twice for peak-file
generation. Since there are two  peak_thread_work threas in SourceFactory,
this can lead to inconsistent/missing peaks.


TODO: fix the actual cause, duplicate call to  setup_peakfile():

#0  ARDOUR::SourceFactory::setup_peakfile (s=..., async=true) at ../libs/ardour/source_factory.cc:116
#1  0x00007ffff6c2552f in ARDOUR::SourceFactory::createExternal (type=..., s=..., path="/tmp/CB_bass_Track08.wav", chn=0, flags=(unknown: 0), announce=true, defer_peaks=true)
    at ../libs/ardour/source_factory.cc:254
#2  0x0000000000886f50 in Editor::embed_sndfiles (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, multifile=false, check_sample_rate=@0x7fffffffc2df: true,
        disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: -1, target_regions=1, target_tracks=-1, track=..., instrument=...)
    at ../gtk2_ardour/editor_audio_import.cc:630
#3  0x0000000000885c7c in Editor::do_embed (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, import_as=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack,
        pos=@0x7fffffffc458: -1, instrument=...) at ../gtk2_ardour/editor_audio_import.cc:414
#4  0x0000000000e93aeb in SoundFileOmega::do_something (this=0x490f530, action=-5) at ../gtk2_ardour/sfdb_ui.cc:1983



#0  ARDOUR::SourceFactory::setup_peakfile (s=..., async=true) at ../libs/ardour/source_factory.cc:116
#1  0x0000000000888954 in Editor::add_sources (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, sources=std::vector of length 1, capacity 1 = {...},
        pos=@0x7fffffffc458: 0, disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, target_regions=1, target_tracks=-1, track=..., instrument=...)
    at ../gtk2_ardour/editor_audio_import.cc:883
#2  0x0000000000887131 in Editor::embed_sndfiles (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, multifile=false, check_sample_rate=@0x7fffffffc2df: true,
        disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: 0, target_regions=1, target_tracks=-1, track=..., instrument=...)
    at ../gtk2_ardour/editor_audio_import.cc:653
#3  0x0000000000885c7c in Editor::do_embed (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, import_as=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack,
        pos=@0x7fffffffc458: 0, instrument=...) at ../gtk2_ardour/editor_audio_import.cc:414
#4  0x0000000000e93aeb in SoundFileOmega::do_something (this=0x490f530, action=-5) at ../gtk2_ardour/sfdb_ui.cc:1983
2015-11-24 18:58:11 +01:00
6d08797297 update configure time tests and code to use libsndfile 1.0.26's version of the R64 auto-downgrade-to-WAV code 2015-11-24 08:45:10 -05:00
3c9b71b50e allow use of (N)RPN messages in generic MIDI binding maps (UNTESTED) 2015-11-23 12:27:51 -05:00
3095cbc4f9 more corrections for libmidi++ (N)RPN API 2015-11-23 12:27:51 -05:00
5f7784e4f2 change API for libmidi++ RPN-related signals to be more useful 2015-11-23 11:49:08 -05:00
14fe7a0ae8 add (N)RPN handling to libmidi++ 2015-11-23 10:44:40 -05:00
Nils Philippsen
e25ddc39f8 make copies of global lists before extending
Not doing so can make source or object files appear multiple times in
the list of files to be compiled or linked, e.g. when doing './waf build
install', subsequently leading to linker errors.
2015-11-23 08:43:19 -05:00
8a26e561c5 cont'd 20262abe (keep all playlists) 2015-11-21 22:45:26 +01:00
20262abe7f prepare "delete all playlists" cleanup option 2015-11-21 21:11:45 +01:00
65d3f6523f fix playlist refcount on track un-freeze. 2015-11-21 18:36:05 +01:00
6b79bd5e42 remove cruft 2015-11-21 11:09:51 +01:00
619727ef73 prevent deletion of playlists on frozen tracks:
bug:
1) freeze a track
2) Session Cleanup > Cleanup unused sources
2a) confirm playlist deletion
3) quit, reload ->  track is no longer frozen
  because _freeze_record.playlist is missing.
  session is in an odd state.
2015-11-20 22:58:00 +01:00
4c04e8028a add API to read snapshot name from instant.xml 2015-11-20 03:22:41 +01:00
c4084932fa remember in-use snapshot/session name in instant.xml 2015-11-20 03:22:41 +01:00
489622bdb6 remove cruft 2015-11-20 03:22:41 +01:00
ca381a908e provide user preference for pre-roll 2015-11-19 16:56:09 -06:00
ceab8cf313 remove debug message 2015-11-19 17:24:00 +01:00
a5b2965cf5 line-wrap fatal message (that's not done automatically) 2015-11-19 17:04:02 +01:00
03518b90a2 allow to rename the session root folder - fixes #6557 2015-11-19 16:11:59 +01:00
07b2518979 Fix windows build when using pthreads-win32 library 2015-11-19 20:54:38 +10:00
ac301b998a Use a range of values for ASIO buffer sizes if provided by driver
This has been tested on four devices:

- A RME HDSP Multiface
- A Yamaha AG06
- A Focusrite 2i2
- A built-in soundcard running ASIO4ALL

The HDSP and the AG06 only return one buffer size when queried so the preferred
size is used as before.

The Focusrite returns a min corresponding to the position of the slider in the
control dialog and the max is 1024. The granularity is 1 so this means that the
number of values needs to be reduced for the current UI design with a combo
box so the granularity is increased until there are around 8-9 buffer sizes to
choose from evenly spaced between min and max(but we could easily change this
if the UI changes etc).

The ASIO4ALL driver returns a min of 64 and a max of 2048 and a granularity of
8. So where the minimum buffer size and granularity is a power of 2 use only
buffer sizes that are power of 2.

If the driver returns different values for min and max it is not currently
possible to indicate which is the driver preferred value. A checkbox or other
UI element could be added to the AudioSetup dialog to only use the preferred
value but that is more work and perhaps not necessary.
2015-11-19 10:23:26 +10:00
f1b336b01e Add support for callback API to portaudio backend but keep blocking API as default
Don't use the callback API for now until further and wider testing.
2015-11-19 10:23:26 +10:00
9d867cfd87 add dedicated API to check plugin class 2015-11-18 18:11:19 +01:00
1c83df80db reduce math weirdness (thanks to Steven Yi) 2015-11-18 14:29:13 +01:00
81103d822a use thread private data **pointer** correctly for Stateful::ID regeneration 2015-11-17 08:53:29 -05:00
d2cba4d7ac fix inadvertently commit error related to at-process-exit deletion for thread private variable 2015-11-16 21:55:57 -05:00
e1dc2d4604 correct value testing for Stateful thread-private variable controlling ID regeneration 2015-11-16 21:24:10 -05:00
108634c3f3 get PlaylistDisposition argument of Session::new_route_from_template() working 2015-11-14 16:01:24 -05:00