Commit graph

6739 commits

Author SHA1 Message Date
Paul Davis
a06e5f4b3b disable libardour unit tests that do not function correctly (for windows, at least) 2013-08-08 15:23:08 -04:00
Paul Davis
917aed0da0 add new files (code based on the old midi++ JACKMidiPort) 2013-08-08 09:10:11 -04:00
Paul Davis
1ab61b8564 major redesign of MIDI port heirarchy and management (part 2) 2013-08-07 22:22:11 -04:00
Paul Davis
83a0c30c24 major redesign of MIDI port heirarchy and management
basic, very flaky functionality is back. program unstable at present
2013-08-07 22:21:36 -04:00
Robin Gareus
a1370f83db fix compiler warning 2013-08-07 15:57:29 +02:00
Paul Davis
5e19f0a1ae use std::numeric_limits<float>::infinity() rather than INFINITY to try to get compilers to agree on the type 2013-08-07 08:40:21 -04:00
John Emmas
7169c77cfc Merge branch 'windows' of git.ardour.org:ardour/ardour into windows 2013-08-06 15:18:27 +01:00
ben
2732c64c07 fix taglib header paths so linked headers are not necessary 2013-08-06 08:50:26 -05:00
Paul Davis
616f2a0370 fix conflicts after merge with master 2013-08-05 14:22:32 -04:00
Paul Davis
499b7fcfa9 document PortEngine API 2013-08-05 13:55:50 -04:00
Paul Davis
a5f69910e4 add notion of unavailable devices to ARDOUR::AudioBackend 2013-08-05 13:19:23 -04:00
Paul Davis
a66e3859e1 can now start JACK based on config dialog 2013-08-05 12:51:51 -04:00
John Emmas
0dc8806ee4 'libs/ardour' - Platform specific changes and includes 2013-08-04 19:03:32 +01:00
Paul Davis
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
John Emmas
d176cbc804 'libs/ardour' - Compiler specific includes and includes 2013-08-04 17:01:37 +01:00
John Emmas
490311bc08 'libs/ardour' - Main body of changes required for building with MSVC 2013-08-04 15:36:07 +01:00
Robin Gareus
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
John Emmas
07d94b9b48 'libs/ardour' - Use 'std::vector' instead of dynamically sized arrays (required to be buildable with MSVC) 2013-08-04 15:17:19 +01:00
Robin Gareus
976fc86811 fix no-roll LTC encoder, honor locates when transport is stopped 2013-08-04 16:13:43 +02:00
John Emmas
fa59391f6a 'libs/ardour' - Use 'const_iterator' where appropriate (required to be buildable with MSVC) 2013-08-04 15:06:10 +01:00
Robin Gareus
efc46f1553 make master-meter in toolbar optional 2013-08-04 00:06:29 +02:00
Paul Davis
333a3c9d02 cleanup more dangling members of AudioEngine 2013-08-03 17:49:19 -04:00
Paul Davis
a64908af7f fix undeclared use of cerr 2013-08-03 17:47:26 -04:00
Paul Davis
1d50d041c9 fix problem with session exit caused by dangling unused members in AudioEngine 2013-08-03 16:45:07 -04:00
Paul Davis
f2ca3ecf0c add file 2013-08-03 16:44:13 -04:00
Paul Davis
c2e7c32c53 add tim's jack_utils code to rationalize setup of JACK config 2013-08-03 16:37:10 -04:00
Robin Gareus
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
aaabaf5d3c Merge branch 'master' into windows 2013-08-02 12:51:24 -04:00
Paul Davis
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
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
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
Robin Gareus
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
Paul Davis
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
Paul Davis
682ebad62b full compilation and linking (coding not finished, will not run) 2013-08-01 14:43:12 -04:00
Paul Davis
c98fcb62fb Merge branch 'master' into windows 2013-08-01 10:46:44 -04:00
Paul Davis
28f3d76e7c remove an identical odd namespacing typo 2013-08-01 10:46:22 -04:00
Paul Davis
bb8cb93789 Merge branch 'master' into windows 2013-08-01 10:44:58 -04:00