13
0
Commit Graph

5815 Commits

Author SHA1 Message Date
7c88670680 lots of changes to auto-start (and stop) the backend for latency measurements, and continuing work on the session construction/engine configuration flow 2013-09-12 16:28:51 -04:00
9a884535c3 prevent key press in pre-main-window dialog(s) from crashing the program because there is no editor window to forward key presses to 2013-09-12 14:39:17 -04:00
6b3907d57f change names, add comment, improve return type to avoid extra call to get EngineControl::State* 2013-09-12 12:26:59 -04:00
91e2eab01a make use of measured latency values to set dialog controls, and use actual port latency to compute extra delay 2013-09-11 13:02:32 -04:00
bede012727 remove unused members and code from EngineControl dialog (related to different devices for input+output) 2013-09-11 12:05:51 -04:00
d305dc1e0c more tweaks to latency measurement
don't open ports till absolutely necessary (store names for future use).

tidy up parts of the dialog (tab)
2013-09-10 23:25:15 -04:00
676ff80697 basic functionality for hardware latency measurement 2013-09-10 22:58:33 -04:00
209e4bdcae many changes relating to session construction and audioengine interaction
every session member is now initialized using C++ constructor syntax

session construction reordered to clarify the split(s) between work
where the engine is not relevant and work where is it is. this
split is still not 100% obvious, but is enormously clearer than
previously.

if engine/backend are not running as session is created, and the SR
of the sample rate is known, attempt to force backend to that value.
2013-09-10 15:41:19 -04:00
2a89234027 move control app launching back into audio backend to allow ASIO/CoreAudio model to work; push initial state of AMS dialog to backend
Issues remain with the basic model of the AMS dialog - when is
newly chosen state pushed into the backend (which can then
modify the control app button sensitivity. This is a special
problem for this button because APIs like ASIO and CoreAudio
probably don't allow us to launch a control app for an arbitrary
device, but only one actually in use. In this sense it is
different from properties like available buffer size etc, where
we can typically query without actually using the device.
2013-09-09 21:23:12 -04:00
29c9d94dbe fix control app breakage 2013-09-09 18:06:44 -04:00
3633892eaa fix crash when unconditionally using null env var; tweak packing of control app button 2013-09-09 17:10:58 -04:00
ecfeeda4b8 launching control app is now responsibility of ardour GUI, not audio backend; use ARDOUR_DEVICE_CONTROL_APP if set in the environment 2013-09-09 16:48:27 -04:00
f06187735d initial work on adding access to h/w control apps when ardour starts JACK 2013-09-09 15:17:43 -04:00
56465fda10 move engine dialog from a widget to an actual dialog; emit Session::AudioEngineSetupRequired when loading a session if it is necessary 2013-09-09 15:17:42 -04:00
cd6a9cfe38 hide tick-marks on narrow mixer-meters 2013-09-09 19:33:30 +02:00
93b3433de2 widen narrow mixer-meters,hide metric display instead 2013-09-09 18:31:50 +02:00
79b8a3c736 meterbridge: don't display metrics of invisible tracks 2013-09-09 17:32:33 +02:00
25cd52b392 vtl: update to ffmpeg v1.2.1 [lib]x264 option. 2013-09-08 18:27:41 +02:00
f4cf283f26 move JACK audio backend to its own folder and adjust build system to reflect that (installed version may now work) 2013-09-07 11:03:57 -04:00
e435f22793 add input/output channel counts and reorganize table somewhat 2013-09-06 21:00:01 -04:00
0467231d6e save/restore I/O latency values in audio/midi setup 2013-09-06 16:43:02 -04:00
4729bbde5f fix merge conflicts with audioengine 2013-09-06 13:39:26 -04:00
94efddd240 fix a problem creating and displaying connected status for ports not owned by ardour (e.g. system:....)
This was caused by using jack_port_get_connections() which will
not return the correct status for ports owned by another JACK
client. Because of the potential for deadlock by calling
jack_port_get_all_connections(), an extra argument was added
to several PortEngine:: API calls to specify whether the call
is in a process-callback context, which defaults to true.

The only place where false is passed is within the GlobalPortMatrix
when we need to determine whether two non-ardour ports are
connected.
2013-09-05 21:39:43 -04:00
bc1cc154dc always save/keep audio/MIDI setup states so that they are available for use *after* instances where JACK was already running 2013-09-05 14:21:25 -04:00
1c49138e00 move MidiPortManager from AudioEngine to Session
This makes the responsibilities and ownership of non-Route related MIDI ports
more clear, and removes a few wierd bits of code. It also ensures that open/close/open
on the same session will retain connections for those MIDI ports
2013-09-05 13:22:34 -04:00
fee626c386 shorten tab labels on audio/midi setup notebook 2013-09-05 13:21:13 -04:00
5a3cf3363b save and restore the selected engine state at startup 2013-09-04 22:58:56 -04:00
0cc4ee7b79 fix up restoration of saved state from disk, still incomplete 2013-09-04 22:22:18 -04:00
418f2ff20a save and restore audio/MIDI setup states to disk (in ardour.rc)
Not finished because the buffer size value will not always stick during restore
2013-09-04 19:34:43 -04:00
58dd0198e6 save and restore settings for different backend/driver/device combinations
So far, this is only internal - never saved to disk
2013-09-04 15:45:54 -04:00
8060198f75 change names of actions groups that include "jack" 2013-09-04 12:49:52 -04:00
35cc3245db rename interface_ stuff in the engine dialog to device_, since that feels a bit clearer terminology 2013-09-04 12:37:44 -04:00
4a135c82fb squash another compiler warning 2013-09-04 01:37:15 +02:00
a6b66f1594 vtl: fix small issue with video source file on export 2013-09-04 01:36:46 +02:00
d074bc586e Merge branch 'master' into audioengine 2013-09-03 17:41:49 -04:00
12ec604140 updated .po files from waf i18n, plus an updated gtk2_ardour/de.po from Edgar Aichinger 2013-09-03 08:00:58 -04:00
01e0f51223 LV2 extUI handling - amend to previous commit. 2013-09-02 16:57:46 +02:00
c05ad01b2d LV2 external UI handling - revert to <= 3.3. behaviour
Don't ever clean up external UI plugins that use the LV2plug.in URI.
only free the memory of the last instance when the plugin is removed
or ardour closes.
2013-09-02 16:21:12 +02:00
66292718a1 improve scroll and drag behaviour of volume-controller knob 2013-09-01 03:19:13 +02:00
03c26762e6 update external plugin UI handling
amend to 4cdb018 and 1d972d0

override ui_closed() behavior for lv2ui:external
Keep UI around and do not re-instantiate, but simply show it again.
(this is against the original specs but was agreed upon by various
authors and the previous behavior or Ardour.)

kx:external-ui are cleaned up after ui_closed().
2013-08-29 13:05:11 +02:00
1d972d05c5 add LV2 support for kx:external-ui#
the ABI of http://kxstudio.sf.net/ns/lv2ext/external-ui# is identical to
http://lv2plug.in/ns/extensions/ui#external
It just adds a distinction between #Host and #Widget for cosmetic reasons.
Sadly some newer plugins are released with only support for kxstudio URI :(
2013-08-25 16:21:18 +02:00
4cdb018cae free memory of external plugins on GUI close (major mem leak).
There is at least one known plugin that has a problem with this
(custom thread race condition) but it also crashes in other hosts:
http://www.drumgizmo.org/wiki/doku.php?id=bugs&do=showcaselink&showid=8&project=drumgizmo

tested to be working with various nedko, falktx and x42 plugins
2013-08-25 16:21:18 +02:00
1421a34e52 pot/po file updates caused by waf i18n 2013-08-24 11:46:45 -04:00
9041d7bc18 don't run meter in import-dialog if the dialog is not visible 2013-08-23 21:26:02 +02:00
7fe7e7ad4b update czech translations from pavel fric 2013-08-15 14:55:10 -04:00
04bf9d1e95 fix newly-appearing crash-at-close caused by muddled thinking in pbd/pthread_utils
threads created with this code can now just return a value as they normally would, and the
infrastructure will ensure cleanup. there is no longer any reason to call pthread_exit_pbd()
and so that has been removed.
2013-08-15 11:44:47 -04:00
6bcdf4f0f1 fix merge issues with master 2013-08-14 13:10:59 -04:00
2de09888b6 some const_cast<> additions for OS X where gcc believes that volatile int* means const int* 2013-08-14 12:40:49 -04:00
e87424f514 re-enable MIDI tracing for ARDOUR::MidiPort 2013-08-13 13:24:05 -04:00
7a431f892e Move curve test file handling in main() until after ARDOUR::init is called
This means it doesn't need to call PBD::ID::init directly, which it now
shouldn't be doing
2013-08-13 20:15:47 +10:00
611058bf58 Remove call to PBD::ID::init as it is now done via ARDOUR::init 2013-08-13 20:15:47 +10:00
de4b24b162 Move initialization of libardour from ARDOUR_UI class into main() 2013-08-13 20:15:47 +10:00
d51eba1162 Change ARDOUR::init return type to bool type for success/failure 2013-08-13 20:15:47 +10:00
f0fcda2044 Merge branch 'master' into audioengine 2013-08-09 16:29:23 -04:00
4dc1bbff35 revert font sizing on audio/midi setup dialog 2013-08-09 16:01:14 -04:00
c4227ca706 fix typos 2013-08-09 19:35:27 +02:00
a34d707175 split up session code that uses parts of the JACK API (timebase + session event handling) and connect it directly to the jack audiobackend
i've made the audiobackend call the session directly so that only one object (ARDOUR::Session) has a need for the JACK types
and only one .cc file (session_jack.cc) needs jack.h. having ARDOUR::AudioEngine act as an intermediary would be cleaner
conceptually but would end up causing two different ARDOUR objects to have jack types in their own API.
2013-08-09 12:15:37 -04:00
da74519911 fix display of latency 2013-08-09 11:23:15 -04:00
f44e0f33af a few more visual tweaks and simplifications for audio/midi setup 2013-08-09 00:50:41 -04:00
743bb5066e some rearrangements and details for the engine dialog 2013-08-08 23:31:35 -04:00
ab39a09b86 temporarily ignore AudioEngine::Halted when GUI asks to disconnect from JACK, to avoid warning dialog 2013-08-08 22:28:31 -04:00
111d35c9c7 add methods to queue full MTC and SPP messages, now that they are synchronous 2013-08-08 19:31:10 -04:00
d90e2b4221 rationalize (a bit) engine start/stop/restart so that it is possible to start up, disconnect from JACK and then reconnect 2013-08-08 16:31:08 -04:00
897074730a remove --no-freesound option. fixes #5640 2013-08-08 20:08:20 +02:00
ea7d89dd51 remove reference to non-existent header 2013-08-08 11:23:13 -04:00
584eeed66a change wording in audio status when disconnected from engine 2013-08-07 22:24:30 -04:00
1ab61b8564 major redesign of MIDI port heirarchy and management (part 2) 2013-08-07 22:22:11 -04:00
616f2a0370 fix conflicts after merge with master 2013-08-05 14:22:32 -04:00
a5f69910e4 add notion of unavailable devices to ARDOUR::AudioBackend 2013-08-05 13:19:23 -04:00
a66e3859e1 can now start JACK based on config dialog 2013-08-05 12:51:51 -04:00
7218bd91de start work on the changes to EngineControl (dialog) to integrate with new backend design, and add "requires-driver" concept to AudioBackend to handle JACK specifically 2013-08-04 14:03:19 -04:00
38e4f7bd1b fix meter-background highlight when peaking. (> vs >=) 2013-08-04 18:50:51 +02:00
00b694fd79 fix rounding issue when dragging video with fractional fps 2013-08-04 18:49:28 +02:00
68fc5bbf6c vtl: import audio at video-offset, forget offset on "Remove Video" 2013-08-04 17:23:58 +02:00
efc46f1553 make master-meter in toolbar optional 2013-08-04 00:06:29 +02:00
c2e7c32c53 add tim's jack_utils code to rationalize setup of JACK config 2013-08-03 16:37:10 -04:00
1c4d00e8b7 audioengine branch can now load and run at least one test session.
currently hard-coded to deal only with the situation where JACK is already running
2013-08-03 11:57:56 -04:00
43ae996b3a dedicated namespace for video-utils
conflicting symbol prophylaxis
2013-08-03 16:54:57 +02:00
ef3551300a remove strtok_r() from video_query_info()
for minGW compatibility
2013-08-03 16:41:25 +02:00
c06a3a6201 add a peak reset button to the editor meter
see http://tracker.ardour.org/view.php?id=5601
2013-08-03 13:59:22 +02:00
3ca63cc38c fix gtk "child->parent == NULL" asserts 2013-08-03 13:45:27 +02:00
9d63cfcab5 fix "other" port-group tab
Separate port-bundles for each jack client in the connection manager.

Previously, apps were only listed as separate bundles if the
ports were gathered at different times. ie one app shows up after
the other (and if no complete re-scan was triggered)

Fixes issue reported by Fons Adriaensen.
2013-08-03 02:46:08 +02:00
0eb5b7d1ab Merge branch 'midiclock' of https://github.com/axetota/ardour 2013-08-03 01:37:25 +02:00
Michael Fisher
e82574de05 Send and Read MIDI Positions the right way 2013-08-02 18:23:36 -05:00
23eba1cc39 disallow invalid port-removal
do not allow port-removal if the port would be re-added immediately
after that again because the main-delivery actually needs it.

As a side effect this prevents this crash:

 * create a stereo-track, then remove one output
  -> unhandled exception "AudioEngine::PortRegistrationFailure&"

 The problem:
 - the port is removed from the RCU ports list,
   but Port::drop() (which calls jack_port_unregister) is only called
   from the Port's destructor at some later time.
   (because a reference to the port still exists elsewhere)
 - the jack-port is not yet removed.
 - meanwhile Delivery::configure_io comes along and notices that
   there are more audio-buffers than ports and tries to re-register the port.
 - but the port still exists in jack, so it fails and throws an exception
   ...which is not handled.
2013-08-03 00:51:07 +02:00
23f738c699 keep port-matrix in sync when deleting ports. and fix segfault on session close with io-matrix visible 2013-08-02 17:41:48 +02:00
Michael Fisher
27a7bd0f12 Human readable printing of MIDI Position messages 2013-08-02 08:59:32 -05:00
df59a000b7 start code reorganization needed to deal with backend choices. compiles, links and runs as far as the startup screen now 2013-08-01 18:49:40 -04:00
ad8ffab544 re-check meterbridge metric-area on route deletion
fixes http://tracker.ardour.org/view.php?id=5616#c15204
2013-08-01 03:17:49 +02:00
18c68bfd12 even more stuff compiles 2013-07-31 19:55:44 -04:00
f81cbe06ea tiny detail.. GUI-callback may try to check vmonitor->is_started() or issue a periodic seek update while it's going away 2013-07-31 20:19:57 +02:00
7a02d9e08d clean up some valgrid "Uninitialised value was created by a heap allocation" wanings 2013-07-31 19:29:20 +02:00
c7fcba77b8 correct error message 2013-07-31 19:29:15 +02:00
9993ac23ca fix close_allv() sentinel 2013-07-31 19:29:06 +02:00
bd65018d74 initialize two more uninitialized vars.. 2013-07-31 15:52:41 +02:00
fbfa0acebe remove compile errors (still will not link and JACKPortEngine is not close to done) 2013-07-30 23:26:46 -04:00
5e0c6af406 jack_audiobackend.cc finally compiles 2013-07-30 17:48:57 -04:00
362976a2fd adjust meterbridge label-heigh options 2013-07-30 20:21:02 +02:00
d2d285724b add name-tooltips to the meterbridge meters 2013-07-30 18:28:06 +02:00
9b091a52cb clean up 44fc92c3 (not a threading issue but sigc++ problem)
RouteUI is not sigc::trackable itself (only derived classes are)
RouteUI::~RouteUI() does not disconnect from signals on destruction.
2013-07-30 17:54:52 +02:00
44fc92c33d disconnect AuxSend connection when deleting bus
fixes crash:
 - add bus
 - aux-send a signal to that bus
 - delete bus
 - add another bus
 - aux-send a signal to "another bus"
 - click "Aux Send" button on "another bus"
 - crash
2013-07-30 15:12:32 +02:00
Michael Fisher
79d134ca78 Send a song position pointer with mmc and fullframe fake locating 2013-07-29 20:05:10 +02:00
Michael Fisher
20189330d1 Add relavent OSX midi options in the startup dialog
- MIDI driver options are now "None" and "coremidi" on OSX
- If coremidi is selected, jack will start with midi activated
- Requires Jack OSX version 0.90 beta 15 (or another version that
  supports midi
2013-07-29 20:05:10 +02:00
741bb8e7fb tweak meterbridge-label height 2013-07-29 20:02:57 +02:00
c934062403 change default BBC-meter color 2013-07-29 19:43:34 +02:00
059df390e6 fix compiler warning 2013-07-29 19:43:19 +02:00
58f4d66899 add option to resize meterbridge track-labels 2013-07-29 19:42:41 +02:00
5cedc24517 explicitly re-init meter when theme changes.
fixes:
14:14 < oofus> rgareus: BBC meter colour changed, all meters
               except the one on the tool bar picked it up
2013-07-29 16:31:33 +02:00
3ab25dc6f3 change metric-scale on the sides of meterbridge when scrolling 2013-07-29 15:26:36 +02:00
2faaf71573 allow to configure color of BBC meter 2013-07-29 03:54:43 +02:00
60dde29038 left/right meter marks in mixer (narrow red-stripe) 2013-07-28 22:34:28 +02:00
cbcde35376 fix diamond inheritance - gtkmm main class is sigc::trackable 2013-07-28 20:43:21 +02:00
cd28d62b26 fix compiler warnings. 2013-07-28 20:32:52 +02:00
Edgar Aichinger
ec9d27f48c update german translation 2013-07-28 16:45:42 +02:00
de4c5ba2af k-meter +4 marks 2013-07-28 15:55:36 +02:00
a02e0e6c8d fix meterbridge window on OSX 2013-07-28 15:54:13 +02:00
16339aa446 add dedicated line-up level for IEC1/DIN meter (15dbFS) 2013-07-28 03:31:44 +02:00
92d2075d83 make LED meter style optional 2013-07-28 03:31:39 +02:00
184fd983d0 tweak meter-metric red-boxes/stripes 2013-07-28 03:31:34 +02:00
1ce2a1d638 add red-boxes to meter-marks and fix Nordic scale color 2013-07-27 22:44:38 +02:00
362e774878 update meter marks and colors.. 2013-07-27 21:26:22 +02:00
40d3bb7584 Aux-sends do not have a GUI - fixes #5621 2013-07-27 15:02:19 +02:00
5601ae97da some more VU-meter tick marks.. 2013-07-26 22:57:39 +02:00
0a68e7bee7 fix typo for 0VU = 8dBu in config 2013-07-25 23:33:11 +02:00
908ee3bfea cache midi metrics depending on meter-type and data-type(s) 2013-07-25 20:56:25 +02:00
ce1adc65b7 remember meter-background highlight when type or width changes.. 2013-07-25 19:55:26 +02:00
d7a52dc0fe vtl: replace Ardour with Program-Name in messages 2013-07-25 14:19:28 +02:00
953e4aba54 prepare horizontal meters (level-meter H/V Box abstraction) 2013-07-25 14:18:39 +02:00
90ea64d1fc set midi-metric ticks depending on meter-type 2013-07-25 13:06:58 +02:00
5ad4b3cd7a VU meter label color&shadow tweak by the_CLA 2013-07-25 11:06:58 +02:00
ec0e92c3ab tweak label alignment 2013-07-25 11:03:36 +02:00
3c33ff2633 proper shadow for metric labels.. 2013-07-25 02:08:38 +02:00
bb85764f80 'overlay shadow' on meter-metrics experiment
TODO: shadow should really be 'behind'. ie save color,
stroke_preserve() shadow, paint text-layout with saved color
and eventually cairo_new_path() reset the path...
2013-07-25 01:44:16 +02:00
62398facd7 fix crash with "send" meters.
Meters in send-UI don't necessarily have a route,
but their type cannot be changed, anyway.
So just use "PeakMeter".
2013-07-25 00:06:12 +02:00
376d6fe34e use only two colors for VU meter indicator and bright-gray for BBC 2013-07-24 23:24:11 +02:00
a9975f44a5 reduce brightness of VU meter backplate & increase contrast of peak-label 2013-07-24 22:29:46 +02:00
e469ce0961 get meter color from gtkrc style file 2013-07-24 22:05:24 +02:00
b70057f576 add [master] meter to the toolbar
http://tracker.ardour.org/view.php?id=5601
2013-07-24 22:04:46 +02:00
6981e4d68e revert VU meter background to default gray-shade 2013-07-24 16:15:16 +02:00
2ca3329c10 fix display-type of editor-mixer level-meter 2013-07-24 16:15:06 +02:00
fd9c0a63fd increase meterbridge with if scrollbar is not visible.. 2013-07-24 15:48:03 +02:00
6f72c85344 add separator line to meterbridge 2013-07-24 15:47:53 +02:00
3d95822716 more miscellaneous changes for audioengine, all of this is still far from actually compiling 2013-07-24 08:36:04 -04:00
d8372bdf9b color meterbridge strips 2013-07-24 11:59:40 +02:00
6b96a4baa3 amend to 8deccea6 (resize meterbridge window) 2013-07-24 11:57:11 +02:00
fa332f31fa allow to en/disable shade and LED meter style 2013-07-24 02:47:37 +02:00
efb16a6faa meter background color.. 2013-07-24 02:46:53 +02:00
8b616b0757 meterbridge: meter-type dependent color-schema 2013-07-24 01:43:24 +02:00
8deccea615 limit width and resize meterbride window 2013-07-24 01:39:16 +02:00
6706f45b95 add "0VU = +8dBu" VU meter config 2013-07-23 23:53:22 +02:00