13
0
Commit Graph

10846 Commits

Author SHA1 Message Date
de4b24b162 Move initialization of libardour from ARDOUR_UI class into main() 2013-08-13 20:15:47 +10:00
9d340af10d Prevent libardour from being initialized more than once
This is not thread safe of course, it is not intended to be.

This was implemented as at one stage ARDOUR::init was being called multiple
times in the testsuite which was causing a subtle bug that took some
time to track down.
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
4c4376d5dd fix thinko in 5dee49e19 2013-08-11 17:26:34 +02:00
116694a2cb fix 5dee49e19 (32/64 bit unsigned int compatibility) 2013-08-11 17:19:04 +02:00
5dee49e194 make LV2 communication buffers independent from jack-midi buffer-size
fixes issues with plugin communication that are common with
jack1 use due to its very small midi-buffers.
2013-08-11 15:10:41 +02:00
c4227ca706 fix typos 2013-08-09 19:35:27 +02:00
e5424826e5 updated monitor modes doc (new version from Chris with IDs) 2013-08-09 19:34:32 +02:00
897074730a remove --no-freesound option. fixes #5640 2013-08-08 20:08:20 +02:00
5bca1f44fe new Mackie Control device file for Qcon controller (from #5634) 2013-08-07 23:06:54 -04:00
a1370f83db fix compiler warning 2013-08-07 15:57:29 +02: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
f5c52f500a Timecode: fix subframe rounding
if sub-frames are used, frames are rounded up for the later half of
a sub-frame.  e.g. @48KSPS, 25fps, 100 subframes per frame
audio-samples >=1910 already yield 00:00:00:01
2013-08-04 16:22:00 +02:00
976fc86811 fix no-roll LTC encoder, honor locates when transport is stopped 2013-08-04 16:13:43 +02:00
efc46f1553 make master-meter in toolbar optional 2013-08-04 00:06:29 +02:00
91e0e0f9f8 advance track's play-position even if processing is locked
fixes
  * http://tracker.ardour.org/view.php?id=5628
  * http://tracker.ardour.org/view.php?id=5561
2013-08-03 21:35:19 +02: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
b14d9a6451 properly handle port removal in route.
bug:
 - add midi track
 - add additional midi port
 - remove additional midi port
 - press play
 -> crash

because..

ARDOUR::MidiTrack::roll's route_buffer still has 2 midi-channels. This is
because processor_max_streams was not updated (no plugins added/removed)
fill_buffers_with_input() eventually asserts when trying to get the 2nd
(nonexistant) midi port via ARDOUR::PortSet::nth_midi_port() in
 ARDOUR::PortSet::port().
2013-08-03 13:44:37 +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
99fb7346f0 on session-load: skip output-change-handler until IOs are restored
fixes loading a session with tracks that have more input-ports
than output-ports.

the problem:

input -ports are added first, when added, IO::ensure_port() emits
IOChange::ConfigurationChanged which in turn triggers the route to
allocate corresponding output ports.

Due to this callback the output-ports were created before the actual
output-port-configuration and plugin-configuration from the
session-state was parsed and set.
2013-08-03 00:51:08 +02: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
94f366190e fix typos in display of error message about an LV2 plugin preset 2013-08-02 12:50:52 -04:00
Michael Fisher
71c26e2820 Resolve duplicate symbol 'cocoa_open_uri' on OSX builds.
cocoa_open_uri.mm was being added to the source list
twice and also compiling twice. This patch enusres it is
only added once.
2013-08-02 12:01:47 -04: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
5143a42b31 Midi clock housekeeping 2013-08-02 08:59:32 -05:00
Michael Fisher
7ad81b7b4f Make Session::send_song_position_pointer a no-op 2013-08-02 08:59:32 -05:00
Michael Fisher
5555f5ccf7 Revamp clock processing so it uses an internal frame reference.
MidiClockTicker::Position managed by boost::scoped_ptr
2013-08-02 08:59:32 -05:00
Michael Fisher
18490878b4 WIP - Experimenting with an alternative clock generating algo
- Transport debug output (tracing where transport_frame
      is updated
2013-08-02 08:59:32 -05:00
Michael Fisher
27a7bd0f12 Human readable printing of MIDI Position messages 2013-08-02 08:59:32 -05:00
Michael Fisher
6ffdeaa9f8 - Send position data from internal position class
- Proper midi beat conversions for all time signatures
- Disable responding to Session::PositionChanged in place
  of Session::Located.
2013-08-02 08:59:32 -05:00
Michael Fisher
6088446d8f Test code removal... 2013-08-02 08:59:32 -05:00
Michael Fisher
b8964f7b1b MIDI Clock - Shuffling locate code (not actually used yet)
- Subscribe to Session::Locate to detect seeks
- Shuffle Mclk locating computations into a separate private class
2013-08-02 08:59:32 -05:00
Michael Fisher
d882b03f7d Stop compiler warning about NSURL 2013-08-02 08:59:32 -05:00
bfd50cdeb0 rework MIDI [processor|plugin] chain
* forward midi-data around plugins that have no MIDI-out
* allow to insert plugins with no MIDI-input at a point with one MIDI-channel

This works because excess ports (both plugin and route) remain
unconnected and use scratch-buffers.

Tested with LV2, LXVST and LADSPA.
(AU plugins with variable in/out retain the old behavior, no bypass)

fixes http://tracker.ardour.org/view.php?id=5630
2013-08-02 03:39:00 +02:00
28f3d76e7c remove an identical odd namespacing typo 2013-08-01 10:46:22 -04:00
6a18103800 remove odd namespacing typo 2013-08-01 10:44:34 -04:00
0bd09a0e23 add _ISOC9X_SOURCE define to compiler command line to provide uniform access to llabs() 2013-08-01 10:10:21 -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
4dc74ae2ea use zeroed scratch buffers for "silent" plugin runs
Plugins rewrite the buffer data in-place and some plugins
can produce output even when fed with silence.

Hence, during a PluginInsert::silence() run a plugin can
inject data into the "silent" buffers which causes side-effects.

Kudos to Chris 'oofus' Goddard for finding this issue.
2013-08-01 00:35:24 +02: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