13
0
Commit Graph

11745 Commits

Author SHA1 Message Date
5abeb799cf try new code from rui/qjackctl for names of ALSA PCM devices 2013-08-09 13:03:21 -04:00
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
64cc518e72 'libs/ardour' - New files and changes needed for 'msvc_libardour' 2013-08-09 17:53:37 +01:00
dc62ef6123 'libs/ardour' - Correct an invalid buffer address (io.cc) 2013-08-09 17:48:15 +01:00
4a29f1957e 'libs/ardour' - Minor change to an included header file (audiofile_tagger.cc) 2013-08-09 17:46:51 +01: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
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
031675f795 changes to allow window branch to build on OS X 2013-08-09 09:17:03 -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
fcb76c8c05 fix freewheeling 2013-08-08 22:12:52 -04:00
3070cd723b fix crashes, clean up session code warmup and other details in audioengine 2013-08-08 19:32:56 -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
f7b140b918 final fixes for somewhat botched merge with master 2013-08-08 15:43:32 -04:00
741154e691 debugging various canvas event issues 2013-08-08 15:26:42 -04:00
5fcae2113f new Mackie Control device file for Qcon controller (from #5634) 2013-08-08 15:26:42 -04:00
c779f7b1b5 fix compiler warning 2013-08-08 15:26:42 -04:00
c014ccaeb1 fix meter-background highlight when peaking. (> vs >=) 2013-08-08 15:26:42 -04:00
badb902bc0 fix rounding issue when dragging video with fractional fps 2013-08-08 15:26:41 -04:00
4c60dd983c vtl: import audio at video-offset, forget offset on "Remove Video" 2013-08-08 15:26:41 -04:00
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
fd6223854d fix no-roll LTC encoder, honor locates when transport is stopped 2013-08-08 15:26:41 -04:00
9ff32d1b52 make master-meter in toolbar optional 2013-08-08 15:26:41 -04:00
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
b5845ea458 dedicated namespace for video-utils
conflicting symbol prophylaxis
2013-08-08 15:26:19 -04:00
520b09e82a remove strtok_r() from video_query_info()
for minGW compatibility
2013-08-08 15:26:19 -04:00
d17c3207b8 add a peak reset button to the editor meter
see http://tracker.ardour.org/view.php?id=5601
2013-08-08 15:26:19 -04:00
bc434841d2 fix gtk "child->parent == NULL" asserts 2013-08-08 15:26:19 -04:00
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
53d98b4db9 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-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
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
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
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
05be443152 keep port-matrix in sync when deleting ports. and fix segfault on session close with io-matrix visible 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
9592359c70 Human readable printing of MIDI Position messages 2013-08-08 15:26:18 -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
Michael Fisher
9afb71eb5a Stop compiler warning about NSURL 2013-08-08 15:26:18 -04:00
9284835580 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-08 15:26:18 -04:00
36623b7b0a remove an identical odd namespacing typo 2013-08-08 15:26:18 -04:00