Commit Graph

8683 Commits

Author SHA1 Message Date
Tim Mayberry
d51eba1162 Change ARDOUR::init return type to bool type for success/failure 2013-08-13 20:15:47 +10:00
Paul Davis
a5a3f713d5 assorted extra debug output for MTC 2013-08-12 05:40:11 -04:00
Robin Gareus
4c4376d5dd fix thinko in 5dee49e19 2013-08-11 17:26:34 +02:00
Robin Gareus
116694a2cb fix 5dee49e19 (32/64 bit unsigned int compatibility) 2013-08-11 17:19:04 +02:00
Robin Gareus
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
Paul Davis
50bbf3f656 fix output latency option in jack command line 2013-08-10 09:25:18 -04:00
Paul Davis
9680c345c4 don't write a bogus jack cmdline ... leave the existing ~/.jackdrc file alone if an error creating the cmdline occurs 2013-08-09 18:35:07 -04:00
Paul Davis
862315ec2a actually write JACK command line out to ~/.jackdrc so that settings take effect 2013-08-09 18:11:04 -04:00
Paul Davis
4b9289e17e don't waste time with sending MTC or MMC after stop if we're disconnected from the engine.
Also, add note about threading oddities with send_mmc_locate() being called from ::non_realtime_stop() which gets
called from a *realtime* context.
2013-08-09 18:06:08 -04:00
Paul Davis
cec2a3da36 allow ardour to exit after JACK disconnects us 2013-08-09 16:57:23 -04:00
Paul Davis
f0fcda2044 Merge branch 'master' into audioengine 2013-08-09 16:29:23 -04:00
Paul Davis
8685d8eb47 remove use of jack_get_time() from ARDOUR::get_microseconds(), use clock_gettime() instead since this function is never used in reference to a backend clock 2013-08-09 15:40:46 -04:00
Paul Davis
ca76496ef3 more purging of JACK as an explicit name from libardour 2013-08-09 13:56:23 -04:00
Paul Davis
d0381b902c remove more naming that refers to JACK 2013-08-09 13:39:33 -04:00
Paul Davis
55e52bcbd5 remove another naming that refers to JACK 2013-08-09 13:38:09 -04:00
Paul Davis
8960ebcdf9 remove another naming that refers to JACK 2013-08-09 13:27:05 -04:00
Paul Davis
521f8eb776 more sensible ALSA device names now in use 2013-08-09 13:26:40 -04:00
John Emmas
8cd71108c1 Merge branch 'windows' of git.ardour.org:ardour/ardour into windows 2013-08-09 18:04:04 +01:00
Paul Davis
fc040a72e9 use original names for ARDOUR MIDI "persistent" ports (MMC, MTC, etc) 2013-08-09 13:03:57 -04:00
Paul Davis
5abeb799cf try new code from rui/qjackctl for names of ALSA PCM devices 2013-08-09 13:03:21 -04:00
John Emmas
5f703f25a9 'libs/ardour' - If the platform is Windows, prevent lengthy caching by flushing imported files on completion of the import 2013-08-09 17:56:14 +01:00
John Emmas
64cc518e72 'libs/ardour' - New files and changes needed for 'msvc_libardour' 2013-08-09 17:53:37 +01:00
John Emmas
dc62ef6123 'libs/ardour' - Correct an invalid buffer address (io.cc) 2013-08-09 17:48:15 +01:00
John Emmas
4a29f1957e 'libs/ardour' - Minor change to an included header file (audiofile_tagger.cc) 2013-08-09 17:46:51 +01:00
Paul Davis
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
Paul Davis
c9f6b0dab5 the JACK audio backend shared object depends on libasound (ALSA) on linux, so it requires explicit linkage 2013-08-09 11:04:04 -04:00
Paul Davis
031675f795 changes to allow window branch to build on OS X 2013-08-09 09:17:03 -04:00
Paul Davis
fcb76c8c05 fix freewheeling 2013-08-08 22:12:52 -04:00
Paul Davis
3070cd723b fix crashes, clean up session code warmup and other details in audioengine 2013-08-08 19:32:56 -04:00
Paul Davis
111d35c9c7 add methods to queue full MTC and SPP messages, now that they are synchronous 2013-08-08 19:31:10 -04:00
Paul Davis
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
Paul Davis
741154e691 debugging various canvas event issues 2013-08-08 15:26:42 -04:00
Robin Gareus
c779f7b1b5 fix compiler warning 2013-08-08 15:26:42 -04:00
Robin Gareus
7744037c86 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-08 15:26:41 -04:00
Robin Gareus
fd6223854d fix no-roll LTC encoder, honor locates when transport is stopped 2013-08-08 15:26:41 -04:00
Robin Gareus
9ff32d1b52 make master-meter in toolbar optional 2013-08-08 15:26:41 -04:00
Robin Gareus
ee610da977 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-08 15:26:19 -04:00
Robin Gareus
35703cb3fc 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-08 15:26:19 -04:00
Michael Fisher
5155a36002 Send and Read MIDI Positions the right way 2013-08-08 15:26:19 -04:00
Robin Gareus
5e1cfcc7ed 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-08 15:26:19 -04:00
Robin Gareus
f84504222e 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-08 15:26:19 -04:00
Paul Davis
d7382d613c fix typos in display of error message about an LV2 plugin preset 2013-08-08 15:26:19 -04:00
Michael Fisher
71e2fbbcff 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-08 15:26:19 -04:00
Michael Fisher
f4101b8c53 Midi clock housekeeping 2013-08-08 15:26:19 -04:00
Michael Fisher
f6ec3c42fc Make Session::send_song_position_pointer a no-op 2013-08-08 15:26:19 -04:00
Michael Fisher
ce85a4d847 Revamp clock processing so it uses an internal frame reference.
MidiClockTicker::Position managed by boost::scoped_ptr
2013-08-08 15:26:19 -04:00
Michael Fisher
46ee815459 WIP - Experimenting with an alternative clock generating algo
- Transport debug output (tracing where transport_frame
      is updated
2013-08-08 15:26:19 -04:00
Michael Fisher
d6480f15f9 - 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-08 15:26:18 -04:00
Michael Fisher
7d5102543c Test code removal... 2013-08-08 15:26:18 -04:00
Michael Fisher
0ed083730a 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-08 15:26:18 -04:00