mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-17 04:06:26 +01:00
fix merge with master
This commit is contained in:
commit
ea1ccb869a
80 changed files with 2603 additions and 73339 deletions
|
|
@ -722,7 +722,7 @@ int
|
||||||
ARDOUR_UI::starting ()
|
ARDOUR_UI::starting ()
|
||||||
{
|
{
|
||||||
Application* app = Application::instance ();
|
Application* app = Application::instance ();
|
||||||
char *nsm_url;
|
const char *nsm_url;
|
||||||
bool brand_new_user = ArdourStartup::required ();
|
bool brand_new_user = ArdourStartup::required ();
|
||||||
|
|
||||||
app->ShouldQuit.connect (sigc::mem_fun (*this, &ARDOUR_UI::queue_finish));
|
app->ShouldQuit.connect (sigc::mem_fun (*this, &ARDOUR_UI::queue_finish));
|
||||||
|
|
@ -734,9 +734,17 @@ ARDOUR_UI::starting ()
|
||||||
|
|
||||||
app->ready ();
|
app->ready ();
|
||||||
|
|
||||||
nsm_url = getenv ("NSM_URL");
|
/* we need to create this early because it may need to set the
|
||||||
|
* audio backend end up.
|
||||||
|
*/
|
||||||
|
|
||||||
|
try {
|
||||||
|
audio_midi_setup.get (true);
|
||||||
|
} catch (...) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (nsm_url) {
|
if ((nsm_url = g_getenv ("NSM_URL")) != 0) {
|
||||||
nsm = new NSM_Client;
|
nsm = new NSM_Client;
|
||||||
if (!nsm->init (nsm_url)) {
|
if (!nsm->init (nsm_url)) {
|
||||||
nsm->announce (PROGRAM_NAME, ":dirty:", "ardour3");
|
nsm->announce (PROGRAM_NAME, ":dirty:", "ardour3");
|
||||||
|
|
@ -746,19 +754,33 @@ ARDOUR_UI::starting ()
|
||||||
for ( i = 0; i < 5000; ++i) {
|
for ( i = 0; i < 5000; ++i) {
|
||||||
nsm->check ();
|
nsm->check ();
|
||||||
usleep (i);
|
usleep (i);
|
||||||
if (nsm->is_active())
|
if (nsm->is_active()) {
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (i == 5000) {
|
||||||
|
error << _("NSM server did not announce itself") << endmsg;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
// wait for open command from nsm server
|
// wait for open command from nsm server
|
||||||
for ( i = 0; i < 5000; ++i) {
|
for ( i = 0; i < 5000; ++i) {
|
||||||
nsm->check ();
|
nsm->check ();
|
||||||
usleep (1000);
|
usleep (1000);
|
||||||
if (nsm->client_id ())
|
if (nsm->client_id ()) {
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == 5000) {
|
||||||
|
error << _("NSM: no client ID provided") << endmsg;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_session && nsm) {
|
if (_session && nsm) {
|
||||||
_session->set_nsm_state( nsm->is_active() );
|
_session->set_nsm_state( nsm->is_active() );
|
||||||
|
} else {
|
||||||
|
error << _("NSM: no session created") << endmsg;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// nsm requires these actions disabled
|
// nsm requires these actions disabled
|
||||||
|
|
@ -777,10 +799,11 @@ ARDOUR_UI::starting ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
delete nsm;
|
delete nsm;
|
||||||
nsm = 0;
|
nsm = 0;
|
||||||
|
error << _("NSM: initialization failed") << endmsg;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -798,16 +821,6 @@ ARDOUR_UI::starting ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we need to create this early because it may need to set the
|
|
||||||
* audio backend end up.
|
|
||||||
*/
|
|
||||||
|
|
||||||
try {
|
|
||||||
audio_midi_setup.get (true);
|
|
||||||
} catch (...) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* go get a session */
|
/* go get a session */
|
||||||
|
|
||||||
const bool new_session_required = (ARDOUR_COMMAND_LINE::new_session || brand_new_user);
|
const bool new_session_required = (ARDOUR_COMMAND_LINE::new_session || brand_new_user);
|
||||||
|
|
@ -3226,6 +3239,57 @@ ARDOUR_UI::flush_trash ()
|
||||||
display_cleanup_results (rep, _("deleted file"), true);
|
display_cleanup_results (rep, _("deleted file"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ARDOUR_UI::setup_order_hint ()
|
||||||
|
{
|
||||||
|
uint32_t order_hint = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
we want the new routes to have their order keys set starting from
|
||||||
|
the highest order key in the selection + 1 (if available).
|
||||||
|
*/
|
||||||
|
if (add_route_dialog->get_transient_for () == mixer->get_toplevel()) {
|
||||||
|
for (RouteUISelection::iterator s = mixer->selection().routes.begin(); s != mixer->selection().routes.end(); ++s) {
|
||||||
|
if ((*s)->route()->order_key() > order_hint) {
|
||||||
|
order_hint = (*s)->route()->order_key();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mixer->selection().routes.empty()) {
|
||||||
|
order_hint++;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
for (TrackSelection::iterator s = editor->get_selection().tracks.begin(); s != editor->get_selection().tracks.end(); ++s) {
|
||||||
|
RouteTimeAxisView* tav = dynamic_cast<RouteTimeAxisView*> (*s);
|
||||||
|
if (tav->route()->order_key() > order_hint) {
|
||||||
|
order_hint = tav->route()->order_key();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!editor->get_selection().tracks.empty()) {
|
||||||
|
order_hint++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_session->set_order_hint (order_hint);
|
||||||
|
|
||||||
|
/* create a gap in the existing route order keys to accomodate new routes.*/
|
||||||
|
|
||||||
|
boost::shared_ptr <RouteList> rd = _session->get_routes();
|
||||||
|
for (RouteList::iterator ri = rd->begin(); ri != rd->end(); ++ri) {
|
||||||
|
boost::shared_ptr<Route> rt (*ri);
|
||||||
|
|
||||||
|
if (rt->is_monitor()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rt->order_key () >= order_hint) {
|
||||||
|
rt->set_order_key (rt->order_key () + add_route_dialog->count());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ARDOUR_UI::add_route (Gtk::Window* float_window)
|
ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||||
{
|
{
|
||||||
|
|
@ -3241,6 +3305,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (float_window) {
|
if (float_window) {
|
||||||
|
add_route_dialog->unset_transient_for ();
|
||||||
add_route_dialog->set_transient_for (*float_window);
|
add_route_dialog->set_transient_for (*float_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3260,6 +3325,8 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setup_order_hint();
|
||||||
|
|
||||||
PBD::ScopedConnection idle_connection;
|
PBD::ScopedConnection idle_connection;
|
||||||
|
|
||||||
if (count > 8) {
|
if (count > 8) {
|
||||||
|
|
|
||||||
|
|
@ -581,6 +581,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||||
|
|
||||||
void snapshot_session (bool switch_to_it);
|
void snapshot_session (bool switch_to_it);
|
||||||
void rename_session ();
|
void rename_session ();
|
||||||
|
void setup_order_hint ();
|
||||||
|
|
||||||
Mixer_UI *mixer;
|
Mixer_UI *mixer;
|
||||||
int create_mixer ();
|
int create_mixer ();
|
||||||
|
|
|
||||||
|
|
@ -335,7 +335,7 @@ ARDOUR_UI::goto_mixer_window ()
|
||||||
screen = Gdk::Screen::get_default();
|
screen = Gdk::Screen::get_default();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (screen && screen->get_height() < 700) {
|
if (g_getenv ("ARDOUR_LOVES_STUPID_TINY_SCREENS") == 0 && screen && screen->get_height() < 700) {
|
||||||
Gtk::MessageDialog msg (_("This screen is not tall enough to display the mixer window"));
|
Gtk::MessageDialog msg (_("This screen is not tall enough to display the mixer window"));
|
||||||
msg.run ();
|
msg.run ();
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1051,6 +1051,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
bool button_press_handler_1 (ArdourCanvas::Item *, GdkEvent *, ItemType);
|
bool button_press_handler_1 (ArdourCanvas::Item *, GdkEvent *, ItemType);
|
||||||
bool button_press_handler_2 (ArdourCanvas::Item *, GdkEvent *, ItemType);
|
bool button_press_handler_2 (ArdourCanvas::Item *, GdkEvent *, ItemType);
|
||||||
bool button_release_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
|
bool button_release_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
|
||||||
|
bool button_double_click_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
|
||||||
bool button_press_dispatch (GdkEventButton*);
|
bool button_press_dispatch (GdkEventButton*);
|
||||||
bool button_release_dispatch (GdkEventButton*);
|
bool button_release_dispatch (GdkEventButton*);
|
||||||
bool motion_handler (ArdourCanvas::Item*, GdkEvent*, bool from_autoscroll = false);
|
bool motion_handler (ArdourCanvas::Item*, GdkEvent*, bool from_autoscroll = false);
|
||||||
|
|
@ -1488,6 +1489,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||||
void marker_menu_edit ();
|
void marker_menu_edit ();
|
||||||
void marker_menu_remove ();
|
void marker_menu_remove ();
|
||||||
void marker_menu_rename ();
|
void marker_menu_rename ();
|
||||||
|
void rename_marker (Marker *marker);
|
||||||
void toggle_marker_menu_lock ();
|
void toggle_marker_menu_lock ();
|
||||||
void toggle_marker_menu_glue ();
|
void toggle_marker_menu_glue ();
|
||||||
void marker_menu_hide ();
|
void marker_menu_hide ();
|
||||||
|
|
|
||||||
|
|
@ -1340,12 +1340,23 @@ Editor::marker_menu_rename ()
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rename_marker (marker);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Editor::rename_marker(Marker *marker)
|
||||||
|
{
|
||||||
Location* loc;
|
Location* loc;
|
||||||
bool is_start;
|
bool is_start;
|
||||||
|
|
||||||
loc = find_location_from_marker (marker, is_start);
|
loc = find_location_from_marker (marker, is_start);
|
||||||
|
|
||||||
if (!loc) return;
|
if (!loc)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (loc == transport_loop_location() || loc == transport_punch_location() || loc->is_session_range())
|
||||||
|
return;
|
||||||
|
|
||||||
ArdourPrompter dialog (true);
|
ArdourPrompter dialog (true);
|
||||||
string txt;
|
string txt;
|
||||||
|
|
@ -1380,6 +1391,7 @@ Editor::marker_menu_rename ()
|
||||||
|
|
||||||
dialog.get_result(txt);
|
dialog.get_result(txt);
|
||||||
loc->set_name (txt);
|
loc->set_name (txt);
|
||||||
|
_session->set_dirty ();
|
||||||
|
|
||||||
XMLNode &after = _session->locations()->get_state();
|
XMLNode &after = _session->locations()->get_state();
|
||||||
_session->add_command (new MementoCommand<Locations>(*(_session->locations()), &before, &after));
|
_session->add_command (new MementoCommand<Locations>(*(_session->locations()), &before, &after));
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ Editor::show_editor_mixer (bool yn)
|
||||||
screen = Gdk::Screen::get_default();
|
screen = Gdk::Screen::get_default();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (screen && screen->get_height() < 700) {
|
if (g_getenv ("ARDOUR_LOVES_STUPID_TINY_SCREENS") == 0 && screen && screen->get_height() < 700) {
|
||||||
Gtk::MessageDialog msg (_("This screen is not tall enough to display the editor mixer"));
|
Gtk::MessageDialog msg (_("This screen is not tall enough to display the editor mixer"));
|
||||||
msg.run ();
|
msg.run ();
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1299,6 +1299,10 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event->type != GDK_BUTTON_PRESS) {
|
if (event->type != GDK_BUTTON_PRESS) {
|
||||||
|
if (event->type == GDK_2BUTTON_PRESS) {
|
||||||
|
gdk_pointer_ungrab (GDK_CURRENT_TIME);
|
||||||
|
return button_double_click_handler (item, event, item_type);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1422,6 +1426,52 @@ Editor::button_release_dispatch (GdkEventButton* ev)
|
||||||
return button_bindings->activate (b, Gtkmm2ext::Bindings::Release);
|
return button_bindings->activate (b, Gtkmm2ext::Bindings::Release);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Editor::button_double_click_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type) {
|
||||||
|
|
||||||
|
if (event->button.button != 1) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (item_type) {
|
||||||
|
case RegionItem:
|
||||||
|
RegionView *rv;
|
||||||
|
rv = clicked_regionview;
|
||||||
|
rv->show_region_editor ();
|
||||||
|
return true;
|
||||||
|
case NoteItem:
|
||||||
|
case PlayheadCursorItem:
|
||||||
|
break;
|
||||||
|
case MarkerItem:
|
||||||
|
case RangeMarkerBarItem:
|
||||||
|
case CdMarkerBarItem:
|
||||||
|
Marker* marker;
|
||||||
|
if ((marker = static_cast<Marker *> (item->get_data ("marker"))) == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
rename_marker (marker);
|
||||||
|
return true;
|
||||||
|
case TempoMarkerItem:
|
||||||
|
edit_tempo_marker (item);
|
||||||
|
return true;
|
||||||
|
case MeterMarkerItem:
|
||||||
|
edit_meter_marker (item);
|
||||||
|
return true;
|
||||||
|
case MarkerBarItem:
|
||||||
|
case TempoBarItem:
|
||||||
|
case MeterBarItem:
|
||||||
|
case TransportMarkerBarItem:
|
||||||
|
case StreamItem:
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
|
Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4704,7 +4704,7 @@ Editor::apply_midi_note_edit_op_to_region (MidiOperator& op, MidiRegionView& mrv
|
||||||
vector<Evoral::Sequence<Evoral::MusicalTime>::Notes> v;
|
vector<Evoral::Sequence<Evoral::MusicalTime>::Notes> v;
|
||||||
v.push_back (selected);
|
v.push_back (selected);
|
||||||
|
|
||||||
framepos_t pos_frames = mrv.midi_region()->position();
|
framepos_t pos_frames = mrv.midi_region()->position() - mrv.midi_region()->start();
|
||||||
double pos_beats = _session->tempo_map().framewalk_to_beats(0, pos_frames);
|
double pos_beats = _session->tempo_map().framewalk_to_beats(0, pos_frames);
|
||||||
|
|
||||||
return op (mrv.midi_region()->model(), pos_beats, v);
|
return op (mrv.midi_region()->model(), pos_beats, v);
|
||||||
|
|
|
||||||
|
|
@ -599,9 +599,24 @@ EditorRoutes::active_changed (std::string const & path)
|
||||||
void
|
void
|
||||||
EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
|
EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
|
||||||
{
|
{
|
||||||
TreeModel::Row row;
|
|
||||||
PBD::Unwinder<bool> at (_adding_routes, true);
|
PBD::Unwinder<bool> at (_adding_routes, true);
|
||||||
|
|
||||||
|
bool from_scratch = (_model->children().size() == 0);
|
||||||
|
Gtk::TreeModel::Children::iterator insert_iter = _model->children().end();
|
||||||
|
|
||||||
|
for (Gtk::TreeModel::Children::iterator it = _model->children().begin(); it != _model->children().end(); ++it) {
|
||||||
|
boost::shared_ptr<Route> r = (*it)[_columns.route];
|
||||||
|
|
||||||
|
if (r->order_key() == (routes.front()->route()->order_key() + routes.size())) {
|
||||||
|
insert_iter = it;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!from_scratch) {
|
||||||
|
_editor->selection->tracks.clear();
|
||||||
|
}
|
||||||
|
|
||||||
suspend_redisplay ();
|
suspend_redisplay ();
|
||||||
|
|
||||||
_display.set_model (Glib::RefPtr<ListStore>());
|
_display.set_model (Glib::RefPtr<ListStore>());
|
||||||
|
|
@ -610,7 +625,7 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
|
||||||
|
|
||||||
boost::shared_ptr<MidiTrack> midi_trk = boost::dynamic_pointer_cast<MidiTrack> ((*x)->route());
|
boost::shared_ptr<MidiTrack> midi_trk = boost::dynamic_pointer_cast<MidiTrack> ((*x)->route());
|
||||||
|
|
||||||
row = *(_model->append ());
|
TreeModel::Row row = *(_model->insert (insert_iter));
|
||||||
|
|
||||||
row[_columns.text] = (*x)->route()->name();
|
row[_columns.text] = (*x)->route()->name();
|
||||||
row[_columns.visible] = (*x)->marked_for_display();
|
row[_columns.visible] = (*x)->marked_for_display();
|
||||||
|
|
@ -634,6 +649,10 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
|
||||||
row[_columns.solo_safe_state] = (*x)->route()->solo_safe();
|
row[_columns.solo_safe_state] = (*x)->route()->solo_safe();
|
||||||
row[_columns.name_editable] = true;
|
row[_columns.name_editable] = true;
|
||||||
|
|
||||||
|
if (!from_scratch) {
|
||||||
|
_editor->selection->add(*x);
|
||||||
|
}
|
||||||
|
|
||||||
boost::weak_ptr<Route> wr ((*x)->route());
|
boost::weak_ptr<Route> wr ((*x)->route());
|
||||||
|
|
||||||
(*x)->route()->gui_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::handle_gui_changes, this, _1, _2), gui_context());
|
(*x)->route()->gui_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::handle_gui_changes, this, _1, _2), gui_context());
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
#include "ardour/stretch.h"
|
#include "ardour/stretch.h"
|
||||||
|
|
||||||
#ifdef USE_RUBBERBAND
|
#ifdef USE_RUBBERBAND
|
||||||
#include "rubberband/RubberBandStretcher.h"
|
#include <rubberband/RubberBandStretcher.h>
|
||||||
using namespace RubberBand;
|
using namespace RubberBand;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -313,6 +313,22 @@ Mixer_UI::hide_window (GdkEventAny *ev)
|
||||||
void
|
void
|
||||||
Mixer_UI::add_strips (RouteList& routes)
|
Mixer_UI::add_strips (RouteList& routes)
|
||||||
{
|
{
|
||||||
|
bool from_scratch = track_model->children().size() == 0;
|
||||||
|
Gtk::TreeModel::Children::iterator insert_iter = track_model->children().end();
|
||||||
|
|
||||||
|
for (Gtk::TreeModel::Children::iterator it = track_model->children().begin(); it != track_model->children().end(); ++it) {
|
||||||
|
boost::shared_ptr<Route> r = (*it)[track_columns.route];
|
||||||
|
|
||||||
|
if (r->order_key() == (routes.front()->order_key() + routes.size())) {
|
||||||
|
insert_iter = it;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!from_scratch) {
|
||||||
|
_selection.clear_routes ();
|
||||||
|
}
|
||||||
|
|
||||||
MixerStrip* strip;
|
MixerStrip* strip;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -359,11 +375,15 @@ Mixer_UI::add_strips (RouteList& routes)
|
||||||
|
|
||||||
show_strip (strip);
|
show_strip (strip);
|
||||||
|
|
||||||
TreeModel::Row row = *(track_model->append());
|
TreeModel::Row row = *(track_model->insert(insert_iter));
|
||||||
row[track_columns.text] = route->name();
|
row[track_columns.text] = route->name();
|
||||||
row[track_columns.visible] = strip->route()->is_master() ? true : strip->marked_for_display();
|
row[track_columns.visible] = strip->route()->is_master() ? true : strip->marked_for_display();
|
||||||
row[track_columns.route] = route;
|
row[track_columns.route] = route;
|
||||||
row[track_columns.strip] = strip;
|
row[track_columns.strip] = strip;
|
||||||
|
|
||||||
|
if (!from_scratch) {
|
||||||
|
_selection.add (strip);
|
||||||
|
}
|
||||||
|
|
||||||
route->PropertyChanged.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::strip_property_changed, this, _1, strip), gui_context());
|
route->PropertyChanged.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::strip_property_changed, this, _1, strip), gui_context());
|
||||||
|
|
||||||
|
|
|
||||||
3174
gtk2_ardour/po/cs.po
3174
gtk2_ardour/po/cs.po
File diff suppressed because it is too large
Load diff
|
|
@ -5736,8 +5736,7 @@ msgid ""
|
||||||
"level.</span>"
|
"level.</span>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<span weight=\"bold\">Stellen Sie Ihre Hardwarelautstärke auf einen sehr "
|
"<span weight=\"bold\">Stellen Sie Ihre Hardwarelautstärke auf einen sehr "
|
||||||
"niedrigen "
|
"niedrigen Pegel ein.</span>"
|
||||||
"Pegel ein.</span>"
|
|
||||||
|
|
||||||
#: engine_dialog.cc:142
|
#: engine_dialog.cc:142
|
||||||
msgid ""
|
msgid ""
|
||||||
|
|
@ -12801,367 +12800,3 @@ msgstr ""
|
||||||
"#export nach.\n"
|
"#export nach.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Handbuch im Browser öffnen? "
|
"Handbuch im Browser öffnen? "
|
||||||
|
|
||||||
#~ msgid "Click the Refresh button to try again."
|
|
||||||
#~ msgstr "Klicken Sie auf Aktualisieren, um es erneut zu versuchen."
|
|
||||||
|
|
||||||
#~ msgid "JACK"
|
|
||||||
#~ msgstr "JACK"
|
|
||||||
|
|
||||||
#~ msgid "Reconnect"
|
|
||||||
#~ msgstr "Verbinde neu"
|
|
||||||
|
|
||||||
#~ msgid "Window|Audio/MIDI Setup"
|
|
||||||
#~ msgstr "Audio/MIDI Einstellungen"
|
|
||||||
|
|
||||||
#~ msgid "JACK Sampling Rate and Latency"
|
|
||||||
#~ msgstr "JACK Samplerate und Latenz"
|
|
||||||
|
|
||||||
#~ msgid "Launch Control App"
|
|
||||||
#~ msgstr "Starte Steuerungsprogramm"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "1. <span weight=\"bold\">Turn down the volume on your hardware to a very "
|
|
||||||
#~ "low level.</span>\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "2. Connect the two channels that you select below using either a cable or "
|
|
||||||
#~ "(less ideally) a speaker and microphone.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "3. Once the channels are connected, click the \"Measure latency\" "
|
|
||||||
#~ "button.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "4. When satisfied with the results, click the \"Use results\" button."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "1. <span weight=\"bold\">Stellen Sie die Lautstärke ihrer Hardware auf "
|
|
||||||
#~ "einen sehr leisen Pegel.</span>\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "2. Verbinden Sie die zwei Kanäle, die Sie unten auswählen, entweder per "
|
|
||||||
#~ "Kabel oder (weniger ideal) per Lautsprecher und Mikrophon.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "3. Klicken Sie den Knopf \"Latenz messen\".\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "4. Wenn Sie mit den Ergebnissen zufrieden sind, klicken Sie den Knopf "
|
|
||||||
#~ "\"Benutze Egebnisse\"."
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "There are several possible reasons:\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "1) JACK is not running.\n"
|
|
||||||
#~ "2) JACK is running as another user, perhaps root.\n"
|
|
||||||
#~ "3) There is already another client called \"%1\".\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Please consider the possibilities, and perhaps (re)start JACK."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Dafür kann es verschiedene Gründe geben:\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "1) JACK läuft nicht.\n"
|
|
||||||
#~ "2) JACK wurde unter einem anderen Benutzer gestartet, möglicherweise als "
|
|
||||||
#~ "root.\n"
|
|
||||||
#~ "3) Es gibt bereits einen anderen Client mit der Bezeichnung \"%1\".\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Betrachten Sie bitte diese Möglichkeiten und starten Sie ggf. JACK neu."
|
|
||||||
|
|
||||||
#~ msgid "Create a new session"
|
|
||||||
#~ msgstr "Neues Projekt erzeugen"
|
|
||||||
|
|
||||||
#~ msgid "Open an existing session"
|
|
||||||
#~ msgstr "Vorhandenes Projekt öffnen"
|
|
||||||
|
|
||||||
#~ msgid "I'd like more options for this session"
|
|
||||||
#~ msgstr "Erweiterte Optionen für dieses Projekt"
|
|
||||||
|
|
||||||
#~ msgid "Use an existing session as a template:"
|
|
||||||
#~ msgstr "Ein vorhandenes Projekt als Vorlage verwenden:"
|
|
||||||
|
|
||||||
#~ msgid "Select template"
|
|
||||||
#~ msgstr "Vorlage auswählen"
|
|
||||||
|
|
||||||
#~ msgid "Browse:"
|
|
||||||
#~ msgstr "Durchsuchen:"
|
|
||||||
|
|
||||||
#~ msgid "Select a session"
|
|
||||||
#~ msgstr "Projekt auswählen"
|
|
||||||
|
|
||||||
#~ msgid "Playback/recording on 1 device"
|
|
||||||
#~ msgstr "Wiedergabe/Aufnahme mit einem Gerät"
|
|
||||||
|
|
||||||
#~ msgid "Playback/recording on 2 devices"
|
|
||||||
#~ msgstr "Wiedergabe/Aufnahme mit zwei Geräten"
|
|
||||||
|
|
||||||
#~ msgid "Playback only"
|
|
||||||
#~ msgstr "Nur Wiedergabe"
|
|
||||||
|
|
||||||
#~ msgid "Recording only"
|
|
||||||
#~ msgstr "Nur Aufnahme"
|
|
||||||
|
|
||||||
#~ msgid "Realtime"
|
|
||||||
#~ msgstr "Realtime"
|
|
||||||
|
|
||||||
#~ msgid "Starting audio engine"
|
|
||||||
#~ msgstr "Starte Audio-Engine"
|
|
||||||
|
|
||||||
#~ msgid "disconnected"
|
|
||||||
#~ msgstr "getrennt"
|
|
||||||
|
|
||||||
#~ msgid "Unable to start the session running"
|
|
||||||
#~ msgstr "Konnte das aktuelle Projekt nicht starten"
|
|
||||||
|
|
||||||
#~ msgid "Do not lock memory"
|
|
||||||
#~ msgstr "Speicherzugriff nicht sperren"
|
|
||||||
|
|
||||||
#~ msgid "Unlock memory"
|
|
||||||
#~ msgstr "Speicherzugriff öffnen"
|
|
||||||
|
|
||||||
#~ msgid "No zombies"
|
|
||||||
#~ msgstr "Keine Zombies (Soft Mode)"
|
|
||||||
|
|
||||||
#~ msgid "Provide monitor ports"
|
|
||||||
#~ msgstr "Monitor-Ports erstellen"
|
|
||||||
|
|
||||||
#~ msgid "H/W monitoring"
|
|
||||||
#~ msgstr "Hardware Monitoring"
|
|
||||||
|
|
||||||
#~ msgid "H/W metering"
|
|
||||||
#~ msgstr "Hardware-Pegelanzeige"
|
|
||||||
|
|
||||||
#~ msgid "Verbose output"
|
|
||||||
#~ msgstr "Ausführliche Statusmeldungen"
|
|
||||||
|
|
||||||
#~ msgid "8000Hz"
|
|
||||||
#~ msgstr "8000 Hz"
|
|
||||||
|
|
||||||
#~ msgid "22050Hz"
|
|
||||||
#~ msgstr "22050 Hz"
|
|
||||||
|
|
||||||
#~ msgid "44100Hz"
|
|
||||||
#~ msgstr "44100 Hz"
|
|
||||||
|
|
||||||
#~ msgid "48000Hz"
|
|
||||||
#~ msgstr "48000 Hz"
|
|
||||||
|
|
||||||
#~ msgid "88200Hz"
|
|
||||||
#~ msgstr "88200 Hz"
|
|
||||||
|
|
||||||
#~ msgid "96000Hz"
|
|
||||||
#~ msgstr "96000 Hz"
|
|
||||||
|
|
||||||
#~ msgid "192000Hz"
|
|
||||||
#~ msgstr "192000 Hz"
|
|
||||||
|
|
||||||
#~ msgid "Triangular"
|
|
||||||
#~ msgstr "dreieckig"
|
|
||||||
|
|
||||||
#~ msgid "Rectangular"
|
|
||||||
#~ msgstr "rechteckig"
|
|
||||||
|
|
||||||
#~ msgid "Shaped"
|
|
||||||
#~ msgstr "shaped"
|
|
||||||
|
|
||||||
#~ msgid "coremidi"
|
|
||||||
#~ msgstr "coremidi"
|
|
||||||
|
|
||||||
#~ msgid "seq"
|
|
||||||
#~ msgstr "seq"
|
|
||||||
|
|
||||||
#~ msgid "raw"
|
|
||||||
#~ msgstr "raw"
|
|
||||||
|
|
||||||
#~ msgid "Audio Interface:"
|
|
||||||
#~ msgstr "Audio-Schnittstelle:"
|
|
||||||
|
|
||||||
#~ msgid "Number of buffers:"
|
|
||||||
#~ msgstr "Pufferanzahl:"
|
|
||||||
|
|
||||||
#~ msgid "Approximate latency:"
|
|
||||||
#~ msgstr "Latenz (ca.)"
|
|
||||||
|
|
||||||
#~ msgid "Audio mode:"
|
|
||||||
#~ msgstr "Audio-Modus:"
|
|
||||||
|
|
||||||
#~ msgid "Ignore"
|
|
||||||
#~ msgstr "ignorieren"
|
|
||||||
|
|
||||||
#~ msgid "Client timeout"
|
|
||||||
#~ msgstr "Client Timeout"
|
|
||||||
|
|
||||||
#~ msgid "Number of ports:"
|
|
||||||
#~ msgstr "Portanzahl"
|
|
||||||
|
|
||||||
#~ msgid "MIDI driver:"
|
|
||||||
#~ msgstr "MIDI-Treiber:"
|
|
||||||
|
|
||||||
#~ msgid "Dither:"
|
|
||||||
#~ msgstr "Dithering:"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "No JACK server found anywhere on this system. Please install JACK and "
|
|
||||||
#~ "restart"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Es wurde kein JACK Server auf diesem System gefunden. Bitte installieren "
|
|
||||||
#~ "Sie JACK vor einem Neuversuch."
|
|
||||||
|
|
||||||
#~ msgid "Server:"
|
|
||||||
#~ msgstr "Server:"
|
|
||||||
|
|
||||||
#~ msgid "Input device:"
|
|
||||||
#~ msgstr "Eingangsgerät:"
|
|
||||||
|
|
||||||
#~ msgid "Output device:"
|
|
||||||
#~ msgstr "Ausgabegerät:"
|
|
||||||
|
|
||||||
#~ msgid "Advanced"
|
|
||||||
#~ msgstr "Erweitert"
|
|
||||||
|
|
||||||
#~ msgid "cannot open JACK rc file %1 to store parameters"
|
|
||||||
#~ msgstr "kann die JACK rc-Datei %1 nicht öffnen, um die Parameter zu sichern"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "You do not have any audio devices capable of\n"
|
|
||||||
#~ "simultaneous playback and recording.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Please use Applications -> Utilities -> Audio MIDI Setup\n"
|
|
||||||
#~ "to create an \"aggregrate\" device, or install a suitable\n"
|
|
||||||
#~ "audio interface.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Please send email to Apple and ask them why new Macs\n"
|
|
||||||
#~ "have no duplex audio device.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Alternatively, if you really want just playback\n"
|
|
||||||
#~ "or recording but not both, start JACK before running\n"
|
|
||||||
#~ "%1 and choose the relevant device then."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Sie haben keine Soundkarte, die gleichzeitiges\n"
|
|
||||||
#~ "Abspielen und Aufnehmen unterstützt.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Benützen Sie Programme>Dienstprogramme>Audio-Midi-Setup\n"
|
|
||||||
#~ " um ein kombiniertes Gerät zu erzeugen, oder installieren Sie ein\n"
|
|
||||||
#~ "geeignetes Audiointerface.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Bitte senden Sie eine E-Mail an Apple und fragen Sie, warum Sie\n"
|
|
||||||
#~ "keine Duplex Soundkarte in Ihrem Mac haben.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Wenn Sie Audiomaterial wirklich nicht gleichzeitig aufnehmen und "
|
|
||||||
#~ "wiedergeben wollen,\n"
|
|
||||||
#~ "können Sie JACK vor dem Starten von %1 aufrufen und das entsprechende "
|
|
||||||
#~ "Gerät auswählen."
|
|
||||||
|
|
||||||
#~ msgid "No suitable audio devices"
|
|
||||||
#~ msgstr "Keine passenden Audiogeräte."
|
|
||||||
|
|
||||||
#~ msgid "JACK appears to be missing from the %1 bundle"
|
|
||||||
#~ msgstr "JACK scheint im %1-Paket zu fehlen."
|
|
||||||
|
|
||||||
#~ msgid "You need to choose an audio device first."
|
|
||||||
#~ msgstr "Sie müssen zuerst ein Audiogerät auswählen."
|
|
||||||
|
|
||||||
#~ msgid "Audio device \"%1\" not known on this computer."
|
|
||||||
#~ msgstr "Audiogerät %1 scheint auf diesem Computer nicht vorhanden zu sein."
|
|
||||||
|
|
||||||
#~ msgid "AudioSetup value for %1 is missing data"
|
|
||||||
#~ msgstr "Es fehlen Daten zum AudioSetup-Wert von %1"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "configuration files contain a JACK server path that doesn't exist (%1)"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "die Konfiguration enthält einen JACK-Serverpfad, der nicht existiert (%1)"
|
|
||||||
|
|
||||||
#~ msgid "JACK exited"
|
|
||||||
#~ msgstr "JACK wurde beendet"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "JACK exited unexpectedly, and without notifying %1.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "This is probably due to an error inside JACK. You should restart JACK\n"
|
|
||||||
#~ "and reconnect %1 to it, or exit %1 now. You cannot save your\n"
|
|
||||||
#~ "session at this time, because we would lose your connection information.\n"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "JACK wurde unerwartet und ohne Benachrichtigung beendet %1.\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Dies liegt wahrscheinlich an einem Fehler in JACK. Sie sollten\n"
|
|
||||||
#~ "JACK neu starten und %1 erneut mit ihm verbinden, oder %1 jetzt beenden.\n"
|
|
||||||
#~ "Momentan läßt sich das Projekt nicht speichern, da alle Informationen\n"
|
|
||||||
#~ "über Verbindungen verloren gehen würden.\n"
|
|
||||||
|
|
||||||
#~ msgid "Failed to set session-framerate: "
|
|
||||||
#~ msgstr "Konnte Projekt-Framerate nicht einstellen: "
|
|
||||||
|
|
||||||
#~ msgid " vs "
|
|
||||||
#~ msgstr " vs. "
|
|
||||||
|
|
||||||
#~ msgid "-24dB"
|
|
||||||
#~ msgstr "-24dB"
|
|
||||||
|
|
||||||
#~ msgid "-15dB"
|
|
||||||
#~ msgstr "-15dB"
|
|
||||||
|
|
||||||
#~ msgid "Configure meter-ticks and color-knee point."
|
|
||||||
#~ msgstr "Maßstriche und Farbbereiche der Pegelanzeige konfigurieren"
|
|
||||||
|
|
||||||
#~ msgid "Enable Debug Mode: Print ffmpeg Command & Output to stdout."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Debug-Modus einschalten: gibt die ffmpeg-Befehlszeile und -Ausgabe an "
|
|
||||||
#~ "stdout aus."
|
|
||||||
|
|
||||||
#~ msgid "-Inf"
|
|
||||||
#~ msgstr "-Inf"
|
|
||||||
|
|
||||||
#~ msgid "slowest"
|
|
||||||
#~ msgstr "Am langsamstem"
|
|
||||||
|
|
||||||
#~ msgid "slow"
|
|
||||||
#~ msgstr "Langsam"
|
|
||||||
|
|
||||||
#~ msgid "fast"
|
|
||||||
#~ msgstr "Schnell"
|
|
||||||
|
|
||||||
#~ msgid "faster"
|
|
||||||
#~ msgstr "Schneller"
|
|
||||||
|
|
||||||
#~ msgid "fastest"
|
|
||||||
#~ msgstr "Schnellstmöglich"
|
|
||||||
|
|
||||||
#~ msgid "found %1 match"
|
|
||||||
#~ msgid_plural "found %1 matches"
|
|
||||||
#~ msgstr[0] "%1 Treffer gefunden"
|
|
||||||
#~ msgstr[1] "%1 Treffer gefunden"
|
|
||||||
|
|
||||||
#~ msgid "Search returned no results."
|
|
||||||
#~ msgstr "Die Suche erbrachte keine Ergebnisse"
|
|
||||||
|
|
||||||
#~ msgid "Found %1 match"
|
|
||||||
#~ msgid_plural "Found %1 matches"
|
|
||||||
#~ msgstr[0] "%1 Treffer gefunden"
|
|
||||||
#~ msgstr[1] "%1 Treffer gefunden"
|
|
||||||
|
|
||||||
#~ msgid "What would you like to do ?"
|
|
||||||
#~ msgstr "Was möchten Sie tun?"
|
|
||||||
|
|
||||||
#~ msgid "Mixer on Top"
|
|
||||||
#~ msgstr "Mixer über Editor"
|
|
||||||
|
|
||||||
#~ msgid "Add Audio Track"
|
|
||||||
#~ msgstr "Audiospur hinzufügen"
|
|
||||||
|
|
||||||
#~ msgid "Add Audio Bus"
|
|
||||||
#~ msgstr "Audio-Bus hinzufügen"
|
|
||||||
|
|
||||||
#~ msgid "Add MIDI Track"
|
|
||||||
#~ msgstr "Midispur hinzufügen"
|
|
||||||
|
|
||||||
#~ msgid "Control surfaces"
|
|
||||||
#~ msgstr "Eingabegeräte / Controller"
|
|
||||||
|
|
||||||
#~ msgid "Use plugins' own interfaces instead of %1's"
|
|
||||||
#~ msgstr "Statt der von %1 bereitgestellten GUIs die der Plugins verwenden"
|
|
||||||
|
|
||||||
#~ msgid "Hid"
|
|
||||||
#~ msgstr "Hid"
|
|
||||||
|
|
||||||
#~ msgid "Searching Page %1 of %2, click Stop to cancel"
|
|
||||||
#~ msgstr "Suche Seite %1 von %2, klicken Sie Stop, um abzubrechen"
|
|
||||||
|
|
||||||
#~ msgid "Searching, click Stop to cancel"
|
|
||||||
#~ msgstr "Suche, klicken Sie Stop, um abzubrechen"
|
|
||||||
|
|
||||||
#~ msgid "Use a monitor bus (allows AFL/PFL and more control)"
|
|
||||||
#~ msgstr "Benutze einen Monitor-Bus (ermöglicht AFL/PFL und mehr)"
|
|
||||||
|
|
|
||||||
8539
gtk2_ardour/po/el.po
8539
gtk2_ardour/po/el.po
File diff suppressed because it is too large
Load diff
|
|
@ -656,11 +656,6 @@ msgstr ""
|
||||||
msgid "Audio Connections"
|
msgid "Audio Connections"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ardour_ui.cc:200
|
|
||||||
#, fuzzy
|
|
||||||
msgid "MIDI Connections"
|
|
||||||
msgstr "Channel Colours"
|
|
||||||
|
|
||||||
#: ardour_ui.cc:202
|
#: ardour_ui.cc:202
|
||||||
msgid "Errors"
|
msgid "Errors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -3635,16 +3630,6 @@ msgstr ""
|
||||||
msgid "Snap to Minutes"
|
msgid "Snap to Minutes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: editor_actions.cc:505
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Snap to One Twenty Eighths"
|
|
||||||
msgstr "Snap to quavers"
|
|
||||||
|
|
||||||
#: editor_actions.cc:506
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Snap to Sixty Fourths"
|
|
||||||
msgstr "Snap to semiquavers"
|
|
||||||
|
|
||||||
#: editor_actions.cc:507
|
#: editor_actions.cc:507
|
||||||
msgid "Snap to Thirty Seconds"
|
msgid "Snap to Thirty Seconds"
|
||||||
msgstr "Snap to demisemiquavers"
|
msgstr "Snap to demisemiquavers"
|
||||||
|
|
@ -4611,36 +4596,6 @@ msgstr ""
|
||||||
msgid "insert region"
|
msgid "insert region"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: editor_ops.cc:2261
|
|
||||||
#, fuzzy
|
|
||||||
msgid "raise regions"
|
|
||||||
msgstr "Normalise regions"
|
|
||||||
|
|
||||||
#: editor_ops.cc:2263
|
|
||||||
#, fuzzy
|
|
||||||
msgid "raise region"
|
|
||||||
msgstr "Normalise region"
|
|
||||||
|
|
||||||
#: editor_ops.cc:2269
|
|
||||||
#, fuzzy
|
|
||||||
msgid "raise regions to top"
|
|
||||||
msgstr "Normalise regions"
|
|
||||||
|
|
||||||
#: editor_ops.cc:2271
|
|
||||||
#, fuzzy
|
|
||||||
msgid "raise region to top"
|
|
||||||
msgstr "Normalise region"
|
|
||||||
|
|
||||||
#: editor_ops.cc:2277
|
|
||||||
#, fuzzy
|
|
||||||
msgid "lower regions"
|
|
||||||
msgstr "Normalise regions"
|
|
||||||
|
|
||||||
#: editor_ops.cc:2279 editor_ops.cc:2287
|
|
||||||
#, fuzzy
|
|
||||||
msgid "lower region"
|
|
||||||
msgstr "Normalise region"
|
|
||||||
|
|
||||||
#: editor_ops.cc:2285
|
#: editor_ops.cc:2285
|
||||||
msgid "lower regions to bottom"
|
msgid "lower regions to bottom"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -6505,11 +6460,6 @@ msgstr "could not initialise %1."
|
||||||
msgid "Cannot xinstall SIGPIPE error handler"
|
msgid "Cannot xinstall SIGPIPE error handler"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: main.cc:528
|
|
||||||
#, fuzzy
|
|
||||||
msgid "could not create %1 GUI"
|
|
||||||
msgstr "could not initialise %1."
|
|
||||||
|
|
||||||
#: main_clock.cc:51
|
#: main_clock.cc:51
|
||||||
msgid "Display delta to edit cursor"
|
msgid "Display delta to edit cursor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -6532,11 +6482,6 @@ msgstr ""
|
||||||
msgid "Force"
|
msgid "Force"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: midi_channel_selector.cc:330 midi_channel_selector.cc:372
|
|
||||||
#, fuzzy
|
|
||||||
msgid "MIDI Channel Control"
|
|
||||||
msgstr "Channel Colours"
|
|
||||||
|
|
||||||
#: midi_channel_selector.cc:332
|
#: midi_channel_selector.cc:332
|
||||||
msgid "Playback all channels"
|
msgid "Playback all channels"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -6625,26 +6570,6 @@ msgstr ""
|
||||||
msgid "Triplet"
|
msgid "Triplet"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: midi_list_editor.cc:58
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Quarter"
|
|
||||||
msgstr "crotchet (4)"
|
|
||||||
|
|
||||||
#: midi_list_editor.cc:59
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Eighth"
|
|
||||||
msgstr "quaver (8)"
|
|
||||||
|
|
||||||
#: midi_list_editor.cc:60
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Sixteenth"
|
|
||||||
msgstr "semiquaver (16)"
|
|
||||||
|
|
||||||
#: midi_list_editor.cc:61
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Thirty-second"
|
|
||||||
msgstr "demisemiquaver (32)"
|
|
||||||
|
|
||||||
#: midi_list_editor.cc:62
|
#: midi_list_editor.cc:62
|
||||||
msgid "Sixty-fourth"
|
msgid "Sixty-fourth"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -6673,11 +6598,6 @@ msgstr ""
|
||||||
msgid "edit note velocity"
|
msgid "edit note velocity"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: midi_list_editor.cc:258
|
|
||||||
#, fuzzy
|
|
||||||
msgid "edit note length"
|
|
||||||
msgstr "Set note length to a minim"
|
|
||||||
|
|
||||||
#: midi_list_editor.cc:460
|
#: midi_list_editor.cc:460
|
||||||
msgid "insert new note"
|
msgid "insert new note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -6794,11 +6714,6 @@ msgstr ""
|
||||||
msgid "Program "
|
msgid "Program "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: midi_region_view.cc:3132
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Channel "
|
|
||||||
msgstr "Channel Colours"
|
|
||||||
|
|
||||||
#: midi_region_view.cc:3301 midi_region_view.cc:3303
|
#: midi_region_view.cc:3301 midi_region_view.cc:3303
|
||||||
msgid "paste"
|
msgid "paste"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -6843,11 +6758,6 @@ msgstr ""
|
||||||
msgid "Note Mode"
|
msgid "Note Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: midi_time_axis.cc:497
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Channel Selector"
|
|
||||||
msgstr "Channel Colours"
|
|
||||||
|
|
||||||
#: midi_time_axis.cc:502
|
#: midi_time_axis.cc:502
|
||||||
msgid "Color Mode"
|
msgid "Color Mode"
|
||||||
msgstr "Colour Mode"
|
msgstr "Colour Mode"
|
||||||
|
|
@ -11473,47 +11383,11 @@ msgstr ""
|
||||||
msgid "Edit Tempo"
|
msgid "Edit Tempo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tempo_dialog.cc:76 tempo_dialog.cc:77 tempo_dialog.cc:282
|
|
||||||
#: tempo_dialog.cc:283
|
|
||||||
#, fuzzy
|
|
||||||
msgid "whole"
|
|
||||||
msgstr "semibreve (1)"
|
|
||||||
|
|
||||||
#: tempo_dialog.cc:78 tempo_dialog.cc:79 tempo_dialog.cc:284
|
|
||||||
#: tempo_dialog.cc:285
|
|
||||||
#, fuzzy
|
|
||||||
msgid "second"
|
|
||||||
msgstr "minim (2)"
|
|
||||||
|
|
||||||
#: tempo_dialog.cc:80 tempo_dialog.cc:81 tempo_dialog.cc:286
|
#: tempo_dialog.cc:80 tempo_dialog.cc:81 tempo_dialog.cc:286
|
||||||
#: tempo_dialog.cc:287
|
#: tempo_dialog.cc:287
|
||||||
msgid "third"
|
msgid "third"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: tempo_dialog.cc:82 tempo_dialog.cc:83 tempo_dialog.cc:288
|
|
||||||
#: tempo_dialog.cc:289
|
|
||||||
#, fuzzy
|
|
||||||
msgid "quarter"
|
|
||||||
msgstr "crotchet (4)"
|
|
||||||
|
|
||||||
#: tempo_dialog.cc:84 tempo_dialog.cc:85 tempo_dialog.cc:290
|
|
||||||
#: tempo_dialog.cc:291
|
|
||||||
#, fuzzy
|
|
||||||
msgid "eighth"
|
|
||||||
msgstr "quaver (8)"
|
|
||||||
|
|
||||||
#: tempo_dialog.cc:86 tempo_dialog.cc:87 tempo_dialog.cc:292
|
|
||||||
#: tempo_dialog.cc:293
|
|
||||||
#, fuzzy
|
|
||||||
msgid "sixteenth"
|
|
||||||
msgstr "semiquaver (16)"
|
|
||||||
|
|
||||||
#: tempo_dialog.cc:88 tempo_dialog.cc:89 tempo_dialog.cc:294
|
|
||||||
#: tempo_dialog.cc:295
|
|
||||||
#, fuzzy
|
|
||||||
msgid "thirty-second"
|
|
||||||
msgstr "demisemiquaver (32)"
|
|
||||||
|
|
||||||
#: tempo_dialog.cc:90 tempo_dialog.cc:91 tempo_dialog.cc:296
|
#: tempo_dialog.cc:90 tempo_dialog.cc:91 tempo_dialog.cc:296
|
||||||
#: tempo_dialog.cc:297
|
#: tempo_dialog.cc:297
|
||||||
msgid "sixty-fourth"
|
msgid "sixty-fourth"
|
||||||
|
|
@ -11855,11 +11729,6 @@ msgstr ""
|
||||||
msgid "Abort"
|
msgid "Abort"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: transcode_video_dialog.cc:63
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Height = "
|
|
||||||
msgstr "quaver (8)"
|
|
||||||
|
|
||||||
#: transcode_video_dialog.cc:66
|
#: transcode_video_dialog.cc:66
|
||||||
msgid "Manual Override"
|
msgid "Manual Override"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -12049,11 +11918,6 @@ msgstr ""
|
||||||
msgid "Set Aspect Ratio:"
|
msgid "Set Aspect Ratio:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: export_video_dialog.cc:80
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Normalize Audio"
|
|
||||||
msgstr "Normalise to:"
|
|
||||||
|
|
||||||
#: export_video_dialog.cc:81
|
#: export_video_dialog.cc:81
|
||||||
msgid "2 Pass Encoding"
|
msgid "2 Pass Encoding"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -12145,11 +12009,6 @@ msgstr ""
|
||||||
msgid "Audio Samplerate:"
|
msgid "Audio Samplerate:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: export_video_dialog.cc:387
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Normalizing audio"
|
|
||||||
msgstr "Normalise values"
|
|
||||||
|
|
||||||
#: export_video_dialog.cc:391
|
#: export_video_dialog.cc:391
|
||||||
msgid "Exporting audio"
|
msgid "Exporting audio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -12212,9 +12071,3 @@ msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"Open Manual in Browser? "
|
"Open Manual in Browser? "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#~ msgid "Quantize Type"
|
|
||||||
#~ msgstr "Quantise Type"
|
|
||||||
|
|
||||||
#~ msgid "unknown style attribute %1 requested for color; using \"red\""
|
|
||||||
#~ msgstr "unknown style attribute %1 requested for colour; using \"red\""
|
|
||||||
|
|
|
||||||
1294
gtk2_ardour/po/es.po
1294
gtk2_ardour/po/es.po
File diff suppressed because it is too large
Load diff
4573
gtk2_ardour/po/fr.po
4573
gtk2_ardour/po/fr.po
File diff suppressed because it is too large
Load diff
5076
gtk2_ardour/po/it.po
5076
gtk2_ardour/po/it.po
File diff suppressed because it is too large
Load diff
3100
gtk2_ardour/po/nn.po
3100
gtk2_ardour/po/nn.po
File diff suppressed because it is too large
Load diff
7426
gtk2_ardour/po/pl.po
7426
gtk2_ardour/po/pl.po
File diff suppressed because it is too large
Load diff
8511
gtk2_ardour/po/pt.po
8511
gtk2_ardour/po/pt.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
2520
gtk2_ardour/po/ru.po
2520
gtk2_ardour/po/ru.po
File diff suppressed because it is too large
Load diff
7424
gtk2_ardour/po/sv.po
7424
gtk2_ardour/po/sv.po
File diff suppressed because it is too large
Load diff
2493
gtk2_ardour/po/zh.po
2493
gtk2_ardour/po/zh.po
File diff suppressed because it is too large
Load diff
|
|
@ -37,7 +37,7 @@
|
||||||
#include "region_selection.h"
|
#include "region_selection.h"
|
||||||
|
|
||||||
#ifdef USE_RUBBERBAND
|
#ifdef USE_RUBBERBAND
|
||||||
#include "rubberband/RubberBandStretcher.h"
|
#include <rubberband/RubberBandStretcher.h>
|
||||||
using namespace RubberBand;
|
using namespace RubberBand;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -264,6 +264,8 @@ def configure(conf):
|
||||||
|
|
||||||
# TODO: Insert a sanity check for on OS X to ensure CoreAudio is present
|
# TODO: Insert a sanity check for on OS X to ensure CoreAudio is present
|
||||||
|
|
||||||
|
autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F',
|
||||||
|
mandatory=True)
|
||||||
autowaf.check_pkg(conf, 'flac', uselib_store='FLAC',
|
autowaf.check_pkg(conf, 'flac', uselib_store='FLAC',
|
||||||
atleast_version='1.2.1')
|
atleast_version='1.2.1')
|
||||||
autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD',
|
autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD',
|
||||||
|
|
@ -399,16 +401,20 @@ def build(bld):
|
||||||
|
|
||||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||||
|
|
||||||
obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG ALSA CURL DL GTKMM LO'
|
obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG ALSA CURL DL'
|
||||||
|
obj.uselib += ' GTKMM GNOMECANVASMM GNOMECANVAS FFTW3F'
|
||||||
|
obj.uselib += ' AUDIOUNITS OSX GTKOSX LO '
|
||||||
obj.use = [ 'libpbd',
|
obj.use = [ 'libpbd',
|
||||||
'libmidipp',
|
'libmidipp',
|
||||||
'libtaglib',
|
'ardour',
|
||||||
'libardour',
|
|
||||||
'libardour_cp',
|
'libardour_cp',
|
||||||
'libgtkmm2ext',
|
'libgtkmm2ext',
|
||||||
'libtaglib',
|
|
||||||
'libcanvas'
|
'libcanvas'
|
||||||
]
|
]
|
||||||
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
obj.uselib += ' TAGLIB'
|
||||||
|
else:
|
||||||
|
obj.use.append('libtaglib')
|
||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
obj.uselib += ' AUDIOUNITS OSX GTKOSX'
|
obj.uselib += ' AUDIOUNITS OSX GTKOSX'
|
||||||
obj.use += ' libappleutility'
|
obj.use += ' libappleutility'
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <boost/utility.hpp>
|
#include <boost/utility.hpp>
|
||||||
#include "vamp-sdk/Plugin.h"
|
#include <vamp-sdk/Plugin.h>
|
||||||
#include "ardour/types.h"
|
#include "ardour/types.h"
|
||||||
|
|
||||||
namespace ARDOUR {
|
namespace ARDOUR {
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,9 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "taglib/tag.h"
|
#include <taglib/tag.h>
|
||||||
#include "taglib/taglib.h"
|
#include <taglib/taglib.h>
|
||||||
#include "taglib/xiphcomment.h"
|
#include <taglib/xiphcomment.h>
|
||||||
|
|
||||||
namespace ARDOUR
|
namespace ARDOUR
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,6 @@ class MidiControlUI : public AbstractUI<MidiUIRequest>
|
||||||
|
|
||||||
static MidiControlUI* instance() { return _instance; }
|
static MidiControlUI* instance() { return _instance; }
|
||||||
|
|
||||||
static BaseUI::RequestType PortChange;
|
|
||||||
|
|
||||||
void change_midi_ports ();
|
void change_midi_ports ();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
@ -63,7 +61,6 @@ class MidiControlUI : public AbstractUI<MidiUIRequest>
|
||||||
typedef std::list<GSource*> PortSources;
|
typedef std::list<GSource*> PortSources;
|
||||||
PortSources port_sources;
|
PortSources port_sources;
|
||||||
ARDOUR::Session& _session;
|
ARDOUR::Session& _session;
|
||||||
PBD::ScopedConnection rebind_connection;
|
|
||||||
|
|
||||||
bool midi_input_handler (Glib::IOCondition, AsyncMIDIPort*);
|
bool midi_input_handler (Glib::IOCondition, AsyncMIDIPort*);
|
||||||
void reset_ports ();
|
void reset_ports ();
|
||||||
|
|
|
||||||
|
|
@ -96,12 +96,23 @@ class Plugin : public PBD::StatefulDestructible, public Latent
|
||||||
|
|
||||||
struct ParameterDescriptor {
|
struct ParameterDescriptor {
|
||||||
|
|
||||||
/* XXX: it would probably be nice if this initialised everything */
|
|
||||||
ParameterDescriptor ()
|
ParameterDescriptor ()
|
||||||
: enumeration (false)
|
: integer_step(false)
|
||||||
|
, toggled (false)
|
||||||
|
, logarithmic (false)
|
||||||
|
, sr_dependent (false)
|
||||||
|
, lower (0)
|
||||||
|
, upper (0)
|
||||||
|
, step (0)
|
||||||
|
, smallstep (0)
|
||||||
|
, largestep (0)
|
||||||
|
, min_unbound (0)
|
||||||
|
, max_unbound (0)
|
||||||
|
, enumeration (false)
|
||||||
|
, midinote(false)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/* essentially a union of LADSPA and VST info */
|
/* essentially a union of LADSPA, VST and LV2 info */
|
||||||
|
|
||||||
bool integer_step;
|
bool integer_step;
|
||||||
bool toggled;
|
bool toggled;
|
||||||
|
|
@ -116,7 +127,7 @@ class Plugin : public PBD::StatefulDestructible, public Latent
|
||||||
bool min_unbound;
|
bool min_unbound;
|
||||||
bool max_unbound;
|
bool max_unbound;
|
||||||
bool enumeration;
|
bool enumeration;
|
||||||
bool midinote;
|
bool midinote; ///< only used if integer_step is also true
|
||||||
};
|
};
|
||||||
|
|
||||||
XMLNode& get_state ();
|
XMLNode& get_state ();
|
||||||
|
|
|
||||||
|
|
@ -117,10 +117,11 @@ class PortEngine {
|
||||||
* does not exist, return an empty string.
|
* does not exist, return an empty string.
|
||||||
*/
|
*/
|
||||||
virtual std::string get_port_name (PortHandle) const = 0;
|
virtual std::string get_port_name (PortHandle) const = 0;
|
||||||
|
|
||||||
/** Return a reference to a port with the fullname @param name. Return
|
/** Return a reference to a port with the fullname @param name. Return
|
||||||
* a null pointer if no such port exists.
|
* an "empty" PortHandle (analogous to a null pointer) if no such port exists.
|
||||||
*/
|
*/
|
||||||
virtual PortHandle* get_port_by_name (const std::string&) const = 0;
|
virtual PortHandle get_port_by_name (const std::string&) const = 0;
|
||||||
|
|
||||||
/** Find the set of ports whose names, types and flags match
|
/** Find the set of ports whose names, types and flags match
|
||||||
* specified values, place the names of each port into @param ports,
|
* specified values, place the names of each port into @param ports,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@
|
||||||
|
|
||||||
#include <glibmm/threads.h>
|
#include <glibmm/threads.h>
|
||||||
|
|
||||||
|
#include <ltc.h>
|
||||||
|
|
||||||
#include "pbd/error.h"
|
#include "pbd/error.h"
|
||||||
#include "pbd/event_loop.h"
|
#include "pbd/event_loop.h"
|
||||||
#include "pbd/rcu.h"
|
#include "pbd/rcu.h"
|
||||||
|
|
@ -48,7 +50,6 @@
|
||||||
#include "midi++/types.h"
|
#include "midi++/types.h"
|
||||||
|
|
||||||
#include "timecode/time.h"
|
#include "timecode/time.h"
|
||||||
#include "ltc/ltc.h"
|
|
||||||
|
|
||||||
#include "ardour/ardour.h"
|
#include "ardour/ardour.h"
|
||||||
#include "ardour/chan_count.h"
|
#include "ardour/chan_count.h"
|
||||||
|
|
@ -241,6 +242,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
|
||||||
bool operator() (boost::shared_ptr<Route>, boost::shared_ptr<Route> b);
|
bool operator() (boost::shared_ptr<Route>, boost::shared_ptr<Route> b);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void set_order_hint (uint32_t order_hint) {_order_hint = order_hint;};
|
||||||
void notify_remote_id_change ();
|
void notify_remote_id_change ();
|
||||||
void sync_order_keys ();
|
void sync_order_keys ();
|
||||||
|
|
||||||
|
|
@ -1594,6 +1596,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
|
||||||
GraphEdges _current_route_graph;
|
GraphEdges _current_route_graph;
|
||||||
|
|
||||||
uint32_t next_control_id () const;
|
uint32_t next_control_id () const;
|
||||||
|
uint32_t _order_hint;
|
||||||
bool ignore_route_processor_changes;
|
bool ignore_route_processor_changes;
|
||||||
|
|
||||||
MidiClockTicker* midi_clock;
|
MidiClockTicker* midi_clock;
|
||||||
|
|
|
||||||
|
|
@ -25,11 +25,11 @@
|
||||||
#include <glibmm/threads.h>
|
#include <glibmm/threads.h>
|
||||||
|
|
||||||
#include <jack/jack.h>
|
#include <jack/jack.h>
|
||||||
|
#include <ltc.h>
|
||||||
|
|
||||||
#include "pbd/signals.h"
|
#include "pbd/signals.h"
|
||||||
|
|
||||||
#include "timecode/time.h"
|
#include "timecode/time.h"
|
||||||
#include "ltc/ltc.h"
|
|
||||||
|
|
||||||
#include "ardour/types.h"
|
#include "ardour/types.h"
|
||||||
#include "midi++/parser.h"
|
#include "midi++/parser.h"
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
#include "vamp-hostsdk/PluginLoader.h"
|
#include <vamp-hostsdk/PluginLoader.h>
|
||||||
|
|
||||||
#include <glibmm/miscutils.h>
|
#include <glibmm/miscutils.h>
|
||||||
#include <glibmm/fileutils.h>
|
#include <glibmm/fileutils.h>
|
||||||
|
|
|
||||||
|
|
@ -1065,8 +1065,8 @@ AudioEngine::start_latency_detection ()
|
||||||
|
|
||||||
/* find the ports we will connect to */
|
/* find the ports we will connect to */
|
||||||
|
|
||||||
PortEngine::PortHandle* out = pe.get_port_by_name (_latency_output_name);
|
PortEngine::PortHandle out = pe.get_port_by_name (_latency_output_name);
|
||||||
PortEngine::PortHandle* in = pe.get_port_by_name (_latency_input_name);
|
PortEngine::PortHandle in = pe.get_port_by_name (_latency_input_name);
|
||||||
|
|
||||||
if (!out || !in) {
|
if (!out || !in) {
|
||||||
stop (true);
|
stop (true);
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,12 @@
|
||||||
|
|
||||||
#include "pbd/convert.h"
|
#include "pbd/convert.h"
|
||||||
|
|
||||||
#include "taglib/fileref.h"
|
#include <taglib/fileref.h>
|
||||||
#include "taglib/flacfile.h"
|
#include <taglib/flacfile.h>
|
||||||
#include "taglib/oggfile.h"
|
#include <taglib/oggfile.h>
|
||||||
#include "taglib/tag.h"
|
#include <taglib/tag.h>
|
||||||
#include "taglib/taglib.h"
|
#include <taglib/taglib.h>
|
||||||
#include "taglib/xiphcomment.h"
|
#include <taglib/xiphcomment.h>
|
||||||
|
|
||||||
/* Convert string to TagLib::String */
|
/* Convert string to TagLib::String */
|
||||||
#define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8)
|
#define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8)
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,6 @@ using namespace Glib;
|
||||||
|
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
|
|
||||||
BaseUI::RequestType MidiControlUI::PortChange = BaseUI::new_request_type();
|
|
||||||
MidiControlUI* MidiControlUI::_instance = 0;
|
MidiControlUI* MidiControlUI::_instance = 0;
|
||||||
|
|
||||||
#include "pbd/abstract_ui.cc" /* instantiate the template */
|
#include "pbd/abstract_ui.cc" /* instantiate the template */
|
||||||
|
|
@ -60,24 +59,7 @@ MidiControlUI::~MidiControlUI ()
|
||||||
void
|
void
|
||||||
MidiControlUI::do_request (MidiUIRequest* req)
|
MidiControlUI::do_request (MidiUIRequest* req)
|
||||||
{
|
{
|
||||||
if (req->type == PortChange) {
|
if (req->type == Quit) {
|
||||||
|
|
||||||
/* restart event loop with new ports */
|
|
||||||
DEBUG_TRACE (DEBUG::MidiIO, "reset ports\n");
|
|
||||||
reset_ports ();
|
|
||||||
|
|
||||||
} else if (req->type == CallSlot) {
|
|
||||||
|
|
||||||
#ifndef NDEBUG
|
|
||||||
if (getenv ("DEBUG_THREADED_SIGNALS")) {
|
|
||||||
cerr << "MIDI UI calls a slot\n";
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
req->the_slot ();
|
|
||||||
|
|
||||||
} else if (req->type == Quit) {
|
|
||||||
|
|
||||||
BaseUI::quit ();
|
BaseUI::quit ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -117,23 +99,37 @@ MidiControlUI::clear_ports ()
|
||||||
void
|
void
|
||||||
MidiControlUI::reset_ports ()
|
MidiControlUI::reset_ports ()
|
||||||
{
|
{
|
||||||
if (port_sources.empty()) {
|
if (!port_sources.empty()) {
|
||||||
AsyncMIDIPort* async = dynamic_cast<AsyncMIDIPort*> (_session.midi_input_port());
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
vector<AsyncMIDIPort*> ports;
|
||||||
|
AsyncMIDIPort* p;
|
||||||
|
|
||||||
|
if ((p = dynamic_cast<AsyncMIDIPort*> (_session.midi_input_port()))) {
|
||||||
|
ports.push_back (p);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((p = dynamic_cast<AsyncMIDIPort*> (_session.mmc_input_port()))) {
|
||||||
|
ports.push_back (p);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ports.empty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int fd;
|
||||||
|
for (vector<AsyncMIDIPort*>::const_iterator pi = ports.begin(); pi != ports.end(); ++pi) {
|
||||||
|
|
||||||
if (!async) {
|
if ((fd = (*pi)->selectable ()) >= 0) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int fd;
|
|
||||||
|
|
||||||
if ((fd = async->selectable ()) >= 0) {
|
|
||||||
Glib::RefPtr<IOSource> psrc = IOSource::create (fd, IO_IN|IO_HUP|IO_ERR);
|
Glib::RefPtr<IOSource> psrc = IOSource::create (fd, IO_IN|IO_HUP|IO_ERR);
|
||||||
|
|
||||||
psrc->connect (sigc::bind (sigc::mem_fun (this, &MidiControlUI::midi_input_handler), async));
|
psrc->connect (sigc::bind (sigc::mem_fun (this, &MidiControlUI::midi_input_handler), *pi));
|
||||||
psrc->attach (_main_loop->get_context());
|
psrc->attach (_main_loop->get_context());
|
||||||
|
|
||||||
// glibmm hack: for now, store only the GSource*
|
// glibmm hack: for now, store only the GSource*
|
||||||
|
|
||||||
port_sources.push_back (psrc->gobj());
|
port_sources.push_back (psrc->gobj());
|
||||||
g_source_ref (psrc->gobj());
|
g_source_ref (psrc->gobj());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,11 +68,11 @@ MidiPortManager::create_ports ()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_midi_in = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MIDI control in"), true);
|
_midi_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MIDI control in"), true);
|
||||||
_midi_out = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MIDI control out"), true);
|
_midi_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MIDI control out"), true);
|
||||||
|
|
||||||
_mmc_in = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MMC in"), true);
|
_mmc_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MMC in"), true);
|
||||||
_mmc_out = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MMC out"), true);
|
_mmc_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MMC out"), true);
|
||||||
|
|
||||||
/* XXX nasty type conversion needed because of the mixed inheritance
|
/* XXX nasty type conversion needed because of the mixed inheritance
|
||||||
* required to integrate MIDI::IPMidiPort and ARDOUR::AsyncMIDIPort.
|
* required to integrate MIDI::IPMidiPort and ARDOUR::AsyncMIDIPort.
|
||||||
|
|
@ -93,14 +93,14 @@ MidiPortManager::create_ports ()
|
||||||
|
|
||||||
boost::shared_ptr<ARDOUR::Port> p;
|
boost::shared_ptr<ARDOUR::Port> p;
|
||||||
|
|
||||||
p = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MTC in"));
|
p = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MTC in"));
|
||||||
_mtc_input_port = boost::dynamic_pointer_cast<MidiPort> (p);
|
_mtc_input_port = boost::dynamic_pointer_cast<MidiPort> (p);
|
||||||
p = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MTC out"));
|
p = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MTC out"));
|
||||||
_mtc_output_port= boost::dynamic_pointer_cast<MidiPort> (p);
|
_mtc_output_port= boost::dynamic_pointer_cast<MidiPort> (p);
|
||||||
|
|
||||||
p = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MIDI Clock in"));
|
p = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MIDI Clock in"));
|
||||||
_midi_clock_input_port = boost::dynamic_pointer_cast<MidiPort> (p);
|
_midi_clock_input_port = boost::dynamic_pointer_cast<MidiPort> (p);
|
||||||
p = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MIDI Clock out"));
|
p = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MIDI Clock out"));
|
||||||
_midi_clock_output_port= boost::dynamic_pointer_cast<MidiPort> (p);
|
_midi_clock_output_port= boost::dynamic_pointer_cast<MidiPort> (p);
|
||||||
|
|
||||||
/* These ports all need their incoming data handled in
|
/* These ports all need their incoming data handled in
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -6,7 +6,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-26 16:09+0200\n"
|
"POT-Creation-Date: 2013-10-23 19:07+0200\n"
|
||||||
"PO-Revision-Date: 2013-09-26 16:32+0200\n"
|
"PO-Revision-Date: 2013-09-26 16:32+0200\n"
|
||||||
"Last-Translator: Edgar Aichinger <edogawa@aon.at>\n"
|
"Last-Translator: Edgar Aichinger <edogawa@aon.at>\n"
|
||||||
"Language-Team: German <ardour-dev@lists.ardour.org>\n"
|
"Language-Team: German <ardour-dev@lists.ardour.org>\n"
|
||||||
|
|
@ -137,7 +137,7 @@ msgstr "Audio-Wiedergabelisten (unbenutzt)"
|
||||||
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
|
#: audio_playlist_source.cc:171 audiosource.cc:913 file_source.cc:529
|
||||||
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
|
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
|
||||||
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
|
#: midi_playlist_source.cc:159 midi_source.cc:371 plugin_insert.cc:643
|
||||||
#: rb_effect.cc:332 session.cc:2606 session.cc:2639 session.cc:3784
|
#: rb_effect.cc:332 session.cc:2613 session.cc:2646 session.cc:3791
|
||||||
#: session_handle.cc:87 sndfilesource.cc:121
|
#: session_handle.cc:87 sndfilesource.cc:121
|
||||||
msgid "programming error: %1"
|
msgid "programming error: %1"
|
||||||
msgstr "Programmierfehler: %1"
|
msgstr "Programmierfehler: %1"
|
||||||
|
|
@ -206,19 +206,19 @@ msgstr "kann VAMP-Plugin \"%1\" nicht laden"
|
||||||
msgid "VAMP Plugin \"%1\" could not be loaded"
|
msgid "VAMP Plugin \"%1\" could not be loaded"
|
||||||
msgstr "VAMP-Plugin \"%1\" konnte nicht geladen werden"
|
msgstr "VAMP-Plugin \"%1\" konnte nicht geladen werden"
|
||||||
|
|
||||||
#: audioengine.cc:489
|
#: audioengine.cc:488
|
||||||
msgid "looking for backends in %1\n"
|
msgid "looking for backends in %1\n"
|
||||||
msgstr "Suche nach Backends in %1\n"
|
msgstr "Suche nach Backends in %1\n"
|
||||||
|
|
||||||
#: audioengine.cc:512
|
#: audioengine.cc:511
|
||||||
msgid "AudioEngine: cannot load module \"%1\" (%2)"
|
msgid "AudioEngine: cannot load module \"%1\" (%2)"
|
||||||
msgstr "AudioEngine: kann Modul \"%1\" nicht laden (%2)"
|
msgstr "AudioEngine: kann Modul \"%1\" nicht laden (%2)"
|
||||||
|
|
||||||
#: audioengine.cc:518
|
#: audioengine.cc:517
|
||||||
msgid "AudioEngine: backend at \"%1\" has no descriptor function."
|
msgid "AudioEngine: backend at \"%1\" has no descriptor function."
|
||||||
msgstr "AudioEngine: Backend an \"%1\" hat keine Beschreibungsfunktion."
|
msgstr "AudioEngine: Backend an \"%1\" hat keine Beschreibungsfunktion."
|
||||||
|
|
||||||
#: audioengine.cc:580
|
#: audioengine.cc:589
|
||||||
msgid "Could not create backend for %1: %2"
|
msgid "Could not create backend for %1: %2"
|
||||||
msgstr "Konnte Backend für %1 nicht erzeugen: %2"
|
msgstr "Konnte Backend für %1 nicht erzeugen: %2"
|
||||||
|
|
||||||
|
|
@ -272,8 +272,8 @@ msgstr "AudioSource: kann Pfad für Peaks (b) \"%1\" nicht öffnen (%2)"
|
||||||
msgid ""
|
msgid ""
|
||||||
"AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 (%5)"
|
"AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 (%5)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"AudioSource[%1]: peak read - kann %2 Samples bei Offset %3 von %4 nicht "
|
"AudioSource[%1]: peak read - kann %2 Samples bei Offset %3 von %4 nicht lesen"
|
||||||
"lesen(%5)"
|
"(%5)"
|
||||||
|
|
||||||
#: audiosource.cc:667
|
#: audiosource.cc:667
|
||||||
msgid "%1: could not write read raw data for peak computation (%2)"
|
msgid "%1: could not write read raw data for peak computation (%2)"
|
||||||
|
|
@ -423,7 +423,7 @@ msgstr "kann CPU-Takt in /proc/cpuinfo nicht finden"
|
||||||
msgid "audio"
|
msgid "audio"
|
||||||
msgstr "Audio"
|
msgstr "Audio"
|
||||||
|
|
||||||
#: data_type.cc:28 session.cc:1781 session.cc:1784
|
#: data_type.cc:28 session.cc:1790 session.cc:1793
|
||||||
msgid "MIDI"
|
msgid "MIDI"
|
||||||
msgstr "MIDI"
|
msgstr "MIDI"
|
||||||
|
|
||||||
|
|
@ -538,7 +538,7 @@ msgstr "Dreieck"
|
||||||
msgid "Rectangular"
|
msgid "Rectangular"
|
||||||
msgstr "Rechteck"
|
msgstr "Rechteck"
|
||||||
|
|
||||||
#: export_formats.cc:52 session.cc:5002 session.cc:5018
|
#: export_formats.cc:52 session.cc:5008 session.cc:5024
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Kein"
|
msgstr "Kein"
|
||||||
|
|
||||||
|
|
@ -652,7 +652,7 @@ msgstr ""
|
||||||
"% unterstützt nur %2 Kanäle, in Ihrer Kanalkonfiguration befinden sich "
|
"% unterstützt nur %2 Kanäle, in Ihrer Kanalkonfiguration befinden sich "
|
||||||
"jedoch %3 Kanäle"
|
"jedoch %3 Kanäle"
|
||||||
|
|
||||||
#: file_source.cc:198 session_state.cc:2813
|
#: file_source.cc:198 session_state.cc:2807
|
||||||
msgid ""
|
msgid ""
|
||||||
"there are already 1000 files with names like %1; versioning discontinued"
|
"there are already 1000 files with names like %1; versioning discontinued"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -910,15 +910,15 @@ msgstr "%s in"
|
||||||
msgid "%s out"
|
msgid "%s out"
|
||||||
msgstr "%s out"
|
msgstr "%s out"
|
||||||
|
|
||||||
#: io.cc:1535 session.cc:676 session.cc:705
|
#: io.cc:1535 session.cc:685 session.cc:714
|
||||||
msgid "mono"
|
msgid "mono"
|
||||||
msgstr "Mono"
|
msgstr "Mono"
|
||||||
|
|
||||||
#: io.cc:1537 session.cc:689 session.cc:719
|
#: io.cc:1537 session.cc:698 session.cc:728
|
||||||
msgid "L"
|
msgid "L"
|
||||||
msgstr "L"
|
msgstr "L"
|
||||||
|
|
||||||
#: io.cc:1537 session.cc:691 session.cc:721
|
#: io.cc:1537 session.cc:700 session.cc:730
|
||||||
msgid "R"
|
msgid "R"
|
||||||
msgstr "R"
|
msgstr "R"
|
||||||
|
|
||||||
|
|
@ -1019,7 +1019,7 @@ msgstr ""
|
||||||
msgid "incorrect XML mode passed to Locations::set_state"
|
msgid "incorrect XML mode passed to Locations::set_state"
|
||||||
msgstr "unkorrekter XML-Modus an Locations::set_state weitergereicht"
|
msgstr "unkorrekter XML-Modus an Locations::set_state weitergereicht"
|
||||||
|
|
||||||
#: location.cc:842 session.cc:4503 session_state.cc:1031
|
#: location.cc:842 session.cc:4510 session_state.cc:1031
|
||||||
msgid "session"
|
msgid "session"
|
||||||
msgstr "Projekt"
|
msgstr "Projekt"
|
||||||
|
|
||||||
|
|
@ -1166,38 +1166,6 @@ msgstr "Fehlende Eigenschaft \"state\" bei AutomationState"
|
||||||
msgid "MIDI stretch created non-MIDI source"
|
msgid "MIDI stretch created non-MIDI source"
|
||||||
msgstr "MIDI Streckung erzeugte Nicht-MIDI Quelle"
|
msgstr "MIDI Streckung erzeugte Nicht-MIDI Quelle"
|
||||||
|
|
||||||
#: midiport_manager.cc:71
|
|
||||||
msgid "MIDI control in"
|
|
||||||
msgstr "MIDI control in"
|
|
||||||
|
|
||||||
#: midiport_manager.cc:72
|
|
||||||
msgid "MIDI control out"
|
|
||||||
msgstr "MIDI control out"
|
|
||||||
|
|
||||||
#: midiport_manager.cc:74
|
|
||||||
msgid "MMC in"
|
|
||||||
msgstr "MMC in"
|
|
||||||
|
|
||||||
#: midiport_manager.cc:75
|
|
||||||
msgid "MMC out"
|
|
||||||
msgstr "MMC out"
|
|
||||||
|
|
||||||
#: midiport_manager.cc:96
|
|
||||||
msgid "MTC in"
|
|
||||||
msgstr "MTC in"
|
|
||||||
|
|
||||||
#: midiport_manager.cc:98
|
|
||||||
msgid "MTC out"
|
|
||||||
msgstr "MTC out"
|
|
||||||
|
|
||||||
#: midiport_manager.cc:101
|
|
||||||
msgid "MIDI Clock in"
|
|
||||||
msgstr "MIDI Clock in"
|
|
||||||
|
|
||||||
#: midiport_manager.cc:103
|
|
||||||
msgid "MIDI Clock out"
|
|
||||||
msgstr "MIDI Clock out"
|
|
||||||
|
|
||||||
#: monitor_processor.cc:53
|
#: monitor_processor.cc:53
|
||||||
msgid "monitor dim"
|
msgid "monitor dim"
|
||||||
msgstr "Monitor dämpfen"
|
msgstr "Monitor dämpfen"
|
||||||
|
|
@ -1582,28 +1550,32 @@ msgstr "Import: Fehler in src_new() : %1"
|
||||||
msgid "return %1"
|
msgid "return %1"
|
||||||
msgstr "Rückgabewert: %1"
|
msgstr "Rückgabewert: %1"
|
||||||
|
|
||||||
#: route.cc:1105 route.cc:2581
|
#: route.cc:1075 route.cc:2528
|
||||||
msgid "unknown Processor type \"%1\"; ignored"
|
msgid "unknown Processor type \"%1\"; ignored"
|
||||||
msgstr "unbekannter Prozessortyp \"%1\"; ignoriert"
|
msgstr "unbekannter Prozessortyp \"%1\"; ignoriert"
|
||||||
|
|
||||||
#: route.cc:1117
|
#: route.cc:1087
|
||||||
msgid "processor could not be created. Ignored."
|
msgid "processor could not be created. Ignored."
|
||||||
msgstr "Prozessor konnte nicht erzeugt werden. Ignoriert."
|
msgstr "Prozessor konnte nicht erzeugt werden. Ignoriert."
|
||||||
|
|
||||||
#: route.cc:2007 route.cc:2234
|
#: route.cc:1962 route.cc:2187
|
||||||
msgid "Bad node sent to Route::set_state() [%1]"
|
msgid "Bad node sent to Route::set_state() [%1]"
|
||||||
msgstr "Schlechter Knoten an Route::set_state() gesendet [%1]"
|
msgstr "Schlechter Knoten an Route::set_state() gesendet [%1]"
|
||||||
|
|
||||||
#: route.cc:2067
|
#: route.cc:2022
|
||||||
msgid "Pannable state found for route (%1) without a panner!"
|
msgid "Pannable state found for route (%1) without a panner!"
|
||||||
msgstr "Pannerziel-Status für Route (%1) ohne Panner gefunden!"
|
msgstr "Pannerziel-Status für Route (%1) ohne Panner gefunden!"
|
||||||
|
|
||||||
#: route.cc:2137 route.cc:2141 route.cc:2348 route.cc:2352
|
#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
|
||||||
msgid "badly formed order key string in state file! [%1] ... ignored."
|
msgid "badly formed order key string in state file! [%1] ... ignored."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"schlecht geformte Zeichenkette für den Schlüssel der Sortierreihenfolge in "
|
"schlecht geformte Zeichenkette für den Schlüssel der Sortierreihenfolge in "
|
||||||
"der Projektdatei! [%1] ... ignoriert"
|
"der Projektdatei! [%1] ... ignoriert"
|
||||||
|
|
||||||
|
#: route.cc:2311
|
||||||
|
msgid "Converting deprecated order key for %1 using Editor order %2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: route_group.cc:459
|
#: route_group.cc:459
|
||||||
msgid "You cannot subgroup MIDI tracks at this time"
|
msgid "You cannot subgroup MIDI tracks at this time"
|
||||||
msgstr "MIDI-Spuren können zur Zeit nicht zu Subgruppen zusammengefasst werden"
|
msgstr "MIDI-Spuren können zur Zeit nicht zu Subgruppen zusammengefasst werden"
|
||||||
|
|
@ -1650,78 +1622,62 @@ msgstr "Klick einrichten"
|
||||||
msgid "Set up standard connections"
|
msgid "Set up standard connections"
|
||||||
msgstr "Richte Standard-Verbindungen ein"
|
msgstr "Richte Standard-Verbindungen ein"
|
||||||
|
|
||||||
#: session.cc:561
|
#: session.cc:634
|
||||||
msgid "LTC In"
|
|
||||||
msgstr "LTC In"
|
|
||||||
|
|
||||||
#: session.cc:562
|
|
||||||
msgid "LTC Out"
|
|
||||||
msgstr "LTC Out"
|
|
||||||
|
|
||||||
#: session.cc:588
|
|
||||||
msgid "LTC-in"
|
|
||||||
msgstr "LTC-in"
|
|
||||||
|
|
||||||
#: session.cc:589
|
|
||||||
msgid "LTC-out"
|
|
||||||
msgstr "LTC-out"
|
|
||||||
|
|
||||||
#: session.cc:625
|
|
||||||
msgid "could not setup Click I/O"
|
msgid "could not setup Click I/O"
|
||||||
msgstr "konnte Metronom-E/A nicht einrichten"
|
msgstr "konnte Metronom-E/A nicht einrichten"
|
||||||
|
|
||||||
#: session.cc:673
|
#: session.cc:682
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "out %<PRIu32>"
|
msgid "out %<PRIu32>"
|
||||||
msgstr "out %<PRIu32>"
|
msgstr "out %<PRIu32>"
|
||||||
|
|
||||||
#: session.cc:687
|
#: session.cc:696
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "out %<PRIu32>+%<PRIu32>"
|
msgid "out %<PRIu32>+%<PRIu32>"
|
||||||
msgstr "out %<PRIu32>+%<PRIu32>"
|
msgstr "out %<PRIu32>+%<PRIu32>"
|
||||||
|
|
||||||
#: session.cc:702
|
#: session.cc:711
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "in %<PRIu32>"
|
msgid "in %<PRIu32>"
|
||||||
msgstr "in %<PRIu32>"
|
msgstr "in %<PRIu32>"
|
||||||
|
|
||||||
#: session.cc:716
|
#: session.cc:725
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "in %<PRIu32>+%<PRIu32>"
|
msgid "in %<PRIu32>+%<PRIu32>"
|
||||||
msgstr "in %<PRIu32>+%<PRIu32>"
|
msgstr "in %<PRIu32>+%<PRIu32>"
|
||||||
|
|
||||||
#: session.cc:780
|
#: session.cc:789
|
||||||
msgid "cannot connect master output %1 to %2"
|
msgid "cannot connect master output %1 to %2"
|
||||||
msgstr "kann Master-Ausgang %1 nicht mit %2 verbinden"
|
msgstr "kann Master-Ausgang %1 nicht mit %2 verbinden"
|
||||||
|
|
||||||
#: session.cc:839
|
#: session.cc:848
|
||||||
msgid "monitor"
|
msgid "monitor"
|
||||||
msgstr "Monitor"
|
msgstr "Monitor"
|
||||||
|
|
||||||
#: session.cc:884
|
#: session.cc:893
|
||||||
msgid "cannot connect control input %1 to %2"
|
msgid "cannot connect control input %1 to %2"
|
||||||
msgstr "kann Kontrolleingang %1 nicht mit %2 verbinden"
|
msgstr "kann Kontrolleingang %1 nicht mit %2 verbinden"
|
||||||
|
|
||||||
#: session.cc:904
|
#: session.cc:913
|
||||||
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
|
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
|
||||||
msgstr "Bevorzugte E/A für den Monitorbus (%1) kann nicht gefunden werden"
|
msgstr "Bevorzugte E/A für den Monitorbus (%1) kann nicht gefunden werden"
|
||||||
|
|
||||||
#: session.cc:935
|
#: session.cc:944
|
||||||
msgid "cannot connect control output %1 to %2"
|
msgid "cannot connect control output %1 to %2"
|
||||||
msgstr "kann Kontrollausgang %1 nicht mit %2 verbinden"
|
msgstr "kann Kontrollausgang %1 nicht mit %2 verbinden"
|
||||||
|
|
||||||
#: session.cc:999
|
#: session.cc:1008
|
||||||
msgid "cannot create Auditioner: no auditioning of regions possible"
|
msgid "cannot create Auditioner: no auditioning of regions possible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kann das Vorhör-System nicht einrichten: kein Vorhören von Regionen möglich"
|
"Kann das Vorhör-System nicht einrichten: kein Vorhören von Regionen möglich"
|
||||||
|
|
||||||
#: session.cc:1183
|
#: session.cc:1192
|
||||||
msgid "Session: you can't use that location for auto punch (start <= end)"
|
msgid "Session: you can't use that location for auto punch (start <= end)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Session: Sie können diese Position nicht für Auto-Punch verwenden (Start <= "
|
"Session: Sie können diese Position nicht für Auto-Punch verwenden (Start <= "
|
||||||
"Ende) "
|
"Ende) "
|
||||||
|
|
||||||
#: session.cc:1223
|
#: session.cc:1232
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot use this location for auto-loop because it has zero or negative "
|
"You cannot use this location for auto-loop because it has zero or negative "
|
||||||
"length"
|
"length"
|
||||||
|
|
@ -1729,15 +1685,15 @@ msgstr ""
|
||||||
"Sie können diese Position nicht für \"automatische Schleife\" verwenden, da "
|
"Sie können diese Position nicht für \"automatische Schleife\" verwenden, da "
|
||||||
"sie keine oder eine negative Länge hat"
|
"sie keine oder eine negative Länge hat"
|
||||||
|
|
||||||
#: session.cc:1537
|
#: session.cc:1546
|
||||||
msgid "feedback loop setup between %1 and %2"
|
msgid "feedback loop setup between %1 and %2"
|
||||||
msgstr "Feedbackschleife zwischen %1 und %2 erkannt"
|
msgstr "Feedbackschleife zwischen %1 und %2 erkannt"
|
||||||
|
|
||||||
#: session.cc:1833
|
#: session.cc:1842
|
||||||
msgid "Session: could not create new midi track."
|
msgid "Session: could not create new midi track."
|
||||||
msgstr "Session: konnte keine neue MIDI-Spur erzeugen."
|
msgstr "Session: konnte keine neue MIDI-Spur erzeugen."
|
||||||
|
|
||||||
#: session.cc:1839
|
#: session.cc:1848
|
||||||
msgid ""
|
msgid ""
|
||||||
"No more JACK ports are available. You will need to stop %1 and restart JACK "
|
"No more JACK ports are available. You will need to stop %1 and restart JACK "
|
||||||
"with more ports if you need this many tracks."
|
"with more ports if you need this many tracks."
|
||||||
|
|
@ -1745,76 +1701,76 @@ msgstr ""
|
||||||
"Keine JACK-Ports mehr verfügbar. Wenn Sie so viele Spuren benötigen, müssen "
|
"Keine JACK-Ports mehr verfügbar. Wenn Sie so viele Spuren benötigen, müssen "
|
||||||
"Sie %1 stoppen und JACK mit mehr Ports neu starten."
|
"Sie %1 stoppen und JACK mit mehr Ports neu starten."
|
||||||
|
|
||||||
#: session.cc:2016 session.cc:2019
|
#: session.cc:2025 session.cc:2028
|
||||||
msgid "Audio"
|
msgid "Audio"
|
||||||
msgstr "Audio"
|
msgstr "Audio"
|
||||||
|
|
||||||
#: session.cc:2043 session.cc:2051 session.cc:2128 session.cc:2136
|
#: session.cc:2052 session.cc:2060 session.cc:2137 session.cc:2145
|
||||||
msgid "cannot configure %1 in/%2 out configuration for new audio track"
|
msgid "cannot configure %1 in/%2 out configuration for new audio track"
|
||||||
msgstr "kann %1 ein/%2 aus für neue Audiospur nicht konfigurieren"
|
msgstr "kann %1 ein/%2 aus für neue Audiospur nicht konfigurieren"
|
||||||
|
|
||||||
#: session.cc:2074
|
#: session.cc:2083
|
||||||
msgid "Session: could not create new audio track."
|
msgid "Session: could not create new audio track."
|
||||||
msgstr "Session: konnte keine neue Audios.pur erzeugen"
|
msgstr "Session: konnte keine neue Audios.pur erzeugen"
|
||||||
|
|
||||||
#: session.cc:2106 session.cc:2109
|
#: session.cc:2115 session.cc:2118
|
||||||
msgid "Bus"
|
msgid "Bus"
|
||||||
msgstr "Bus"
|
msgstr "Bus"
|
||||||
|
|
||||||
#: session.cc:2159
|
#: session.cc:2168
|
||||||
msgid "Session: could not create new audio route."
|
msgid "Session: could not create new audio route."
|
||||||
msgstr "Session: konnte keine neueAudio-Route erzeugen"
|
msgstr "Session: konnte keine neueAudio-Route erzeugen"
|
||||||
|
|
||||||
#: session.cc:2218 session.cc:2228
|
#: session.cc:2227 session.cc:2237
|
||||||
msgid "Session: UINT_MAX routes? impossible!"
|
msgid "Session: UINT_MAX routes? impossible!"
|
||||||
msgstr "Session: UINT_MAX Routen? unmöglich!"
|
msgstr "Session: UINT_MAX Routen? unmöglich!"
|
||||||
|
|
||||||
#: session.cc:2250
|
#: session.cc:2259
|
||||||
msgid "Session: cannot create track/bus from template description"
|
msgid "Session: cannot create track/bus from template description"
|
||||||
msgstr "Session: Kann die Route aus der Vorlagenbeschreibung nicht erzeugen"
|
msgstr "Session: Kann die Route aus der Vorlagenbeschreibung nicht erzeugen"
|
||||||
|
|
||||||
#: session.cc:2276
|
#: session.cc:2285
|
||||||
msgid "Session: could not create new route from template"
|
msgid "Session: could not create new route from template"
|
||||||
msgstr "Session: konnte keine neue Route aus der Vorlage erzeugen."
|
msgstr "Session: konnte keine neue Route aus der Vorlage erzeugen."
|
||||||
|
|
||||||
#: session.cc:2305
|
#: session.cc:2314
|
||||||
msgid "Adding new tracks/busses failed"
|
msgid "Adding new tracks/busses failed"
|
||||||
msgstr "Fehler beim Hinzufügen neuer Spuren/Busse"
|
msgstr "Fehler beim Hinzufügen neuer Spuren/Busse"
|
||||||
|
|
||||||
#: session.cc:3406
|
#: session.cc:3413
|
||||||
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
|
msgid "FATAL ERROR! Could not find a suitable version of %1 for a rename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"FATALER FEHLER! Konnte keine passende Version von %1 zum Umbenennen finden"
|
"FATALER FEHLER! Konnte keine passende Version von %1 zum Umbenennen finden"
|
||||||
|
|
||||||
#: session.cc:3526 session.cc:3584
|
#: session.cc:3533 session.cc:3591
|
||||||
msgid "There are already %1 recordings for %2, which I consider too many."
|
msgid "There are already %1 recordings for %2, which I consider too many."
|
||||||
msgstr "Es gibt bereits %1 Aufnahmen für %2, was ich als zu viele erachte."
|
msgstr "Es gibt bereits %1 Aufnahmen für %2, was ich als zu viele erachte."
|
||||||
|
|
||||||
#: session.cc:3974
|
#: session.cc:3981
|
||||||
msgid "send ID %1 appears to be in use already"
|
msgid "send ID %1 appears to be in use already"
|
||||||
msgstr "Send ID %1 ist offenbar schon in Gebrauch"
|
msgstr "Send ID %1 ist offenbar schon in Gebrauch"
|
||||||
|
|
||||||
#: session.cc:3986
|
#: session.cc:3993
|
||||||
msgid "aux send ID %1 appears to be in use already"
|
msgid "aux send ID %1 appears to be in use already"
|
||||||
msgstr "Aux-Send ID %1 ist offenbar schon in Gebrauch"
|
msgstr "Aux-Send ID %1 ist offenbar schon in Gebrauch"
|
||||||
|
|
||||||
#: session.cc:3998
|
#: session.cc:4005
|
||||||
msgid "return ID %1 appears to be in use already"
|
msgid "return ID %1 appears to be in use already"
|
||||||
msgstr "Return ID %1 ist offenbar schon in Gebrauch"
|
msgstr "Return ID %1 ist offenbar schon in Gebrauch"
|
||||||
|
|
||||||
#: session.cc:4010
|
#: session.cc:4017
|
||||||
msgid "insert ID %1 appears to be in use already"
|
msgid "insert ID %1 appears to be in use already"
|
||||||
msgstr "Insert ID %1 ist offenbar schon in Gebrauch"
|
msgstr "Insert ID %1 ist offenbar schon in Gebrauch"
|
||||||
|
|
||||||
#: session.cc:4137
|
#: session.cc:4144
|
||||||
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
|
msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
|
||||||
msgstr "Kann einen Bereich mit Ende <= Start nicht schreiben (z.B. %1 <= %2)"
|
msgstr "Kann einen Bereich mit Ende <= Start nicht schreiben (z.B. %1 <= %2)"
|
||||||
|
|
||||||
#: session.cc:4166
|
#: session.cc:4173
|
||||||
msgid "too many bounced versions of playlist \"%1\""
|
msgid "too many bounced versions of playlist \"%1\""
|
||||||
msgstr "zu viele gebouncete Versionen der Wiedergabeliste \"%1\""
|
msgstr "zu viele gebouncete Versionen der Wiedergabeliste \"%1\""
|
||||||
|
|
||||||
#: session.cc:4176
|
#: session.cc:4183
|
||||||
msgid "cannot create new audio file \"%1\" for %2"
|
msgid "cannot create new audio file \"%1\" for %2"
|
||||||
msgstr "kann keine neue Audiodatei \"%1\" für %2 erzeugen"
|
msgstr "kann keine neue Audiodatei \"%1\" für %2 erzeugen"
|
||||||
|
|
||||||
|
|
@ -2072,55 +2028,55 @@ msgstr "Session: XML hat keinen Abschnitt \"mix groups\""
|
||||||
msgid "Session: XML state has no click section"
|
msgid "Session: XML state has no click section"
|
||||||
msgstr "Session: XML hat keinen Abschnitt \"click\""
|
msgstr "Session: XML hat keinen Abschnitt \"click\""
|
||||||
|
|
||||||
#: session_state.cc:1366
|
#: session_state.cc:1360
|
||||||
msgid "Session: cannot create Route from XML description."
|
msgid "Session: cannot create Route from XML description."
|
||||||
msgstr "Session: Kann die Route aus der XML-Beschreibung nicht erzeugen"
|
msgstr "Session: Kann die Route aus der XML-Beschreibung nicht erzeugen"
|
||||||
|
|
||||||
#: session_state.cc:1370
|
#: session_state.cc:1364
|
||||||
msgid "Loaded track/bus %1"
|
msgid "Loaded track/bus %1"
|
||||||
msgstr "Spur/Bus %1 wurde geladen"
|
msgstr "Spur/Bus %1 wurde geladen"
|
||||||
|
|
||||||
#: session_state.cc:1468
|
#: session_state.cc:1462
|
||||||
msgid "Could not find diskstream for route"
|
msgid "Could not find diskstream for route"
|
||||||
msgstr "Konnte Diskstream für Route nicht finden"
|
msgstr "Konnte Diskstream für Route nicht finden"
|
||||||
|
|
||||||
#: session_state.cc:1522
|
#: session_state.cc:1516
|
||||||
msgid "Session: cannot create Region from XML description."
|
msgid "Session: cannot create Region from XML description."
|
||||||
msgstr "Session: kann Region nicht aus XML-Beschreibung erzeugen"
|
msgstr "Session: kann Region nicht aus XML-Beschreibung erzeugen"
|
||||||
|
|
||||||
#: session_state.cc:1526
|
#: session_state.cc:1520
|
||||||
msgid "Can not load state for region '%1'"
|
msgid "Can not load state for region '%1'"
|
||||||
msgstr "Kann Status für Region '%1' nicht laden"
|
msgstr "Kann Status für Region '%1' nicht laden"
|
||||||
|
|
||||||
#: session_state.cc:1562
|
#: session_state.cc:1556
|
||||||
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
|
msgid "Regions in compound description not found (ID's %1 and %2): ignored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Regionen der Verbindungsbeschreibung nicht gefunden (IDs %1 and %2): "
|
"Regionen der Verbindungsbeschreibung nicht gefunden (IDs %1 and %2): "
|
||||||
"ignoriert"
|
"ignoriert"
|
||||||
|
|
||||||
#: session_state.cc:1590
|
#: session_state.cc:1584
|
||||||
msgid "Nested source has no ID info in session file! (ignored)"
|
msgid "Nested source has no ID info in session file! (ignored)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Verschachtelte Quelle hat keine ID-Information in Projektdatei! (ignoriert)"
|
"Verschachtelte Quelle hat keine ID-Information in Projektdatei! (ignoriert)"
|
||||||
|
|
||||||
#: session_state.cc:1602
|
#: session_state.cc:1596
|
||||||
msgid "Cannot reconstruct nested source for region %1"
|
msgid "Cannot reconstruct nested source for region %1"
|
||||||
msgstr "Kann verschachtelte Quelle für Region %1 nicht wiederherstellen"
|
msgstr "Kann verschachtelte Quelle für Region %1 nicht wiederherstellen"
|
||||||
|
|
||||||
#: session_state.cc:1664
|
#: session_state.cc:1658
|
||||||
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
|
msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Session: XML-Knoten zur Beschreibung einer Audioregion ist unvollständig "
|
"Session: XML-Knoten zur Beschreibung einer Audioregion ist unvollständig "
|
||||||
"(Quelle fehlt)"
|
"(Quelle fehlt)"
|
||||||
|
|
||||||
#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
|
#: session_state.cc:1666 session_state.cc:1687 session_state.cc:1707
|
||||||
msgid ""
|
msgid ""
|
||||||
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
|
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
|
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
|
||||||
"unbekannte Quell-ID =%1"
|
"unbekannte Quell-ID =%1"
|
||||||
|
|
||||||
#: session_state.cc:1678 session_state.cc:1699 session_state.cc:1719
|
#: session_state.cc:1672 session_state.cc:1693 session_state.cc:1713
|
||||||
msgid ""
|
msgid ""
|
||||||
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
|
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
|
||||||
"%1"
|
"%1"
|
||||||
|
|
@ -2128,7 +2084,7 @@ msgstr ""
|
||||||
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
|
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
|
||||||
"Nicht-Audio Quell-ID =%1"
|
"Nicht-Audio Quell-ID =%1"
|
||||||
|
|
||||||
#: session_state.cc:1742
|
#: session_state.cc:1736
|
||||||
msgid ""
|
msgid ""
|
||||||
"Session: XMLNode describing an AudioRegion is missing some master sources; "
|
"Session: XMLNode describing an AudioRegion is missing some master sources; "
|
||||||
"ignored"
|
"ignored"
|
||||||
|
|
@ -2136,27 +2092,27 @@ msgstr ""
|
||||||
"Session: dem XML-Knoten zur Beschreibung einer Audioregion fehlen einige "
|
"Session: dem XML-Knoten zur Beschreibung einer Audioregion fehlen einige "
|
||||||
"Hauptquellen; ignoriert"
|
"Hauptquellen; ignoriert"
|
||||||
|
|
||||||
#: session_state.cc:1776
|
#: session_state.cc:1770
|
||||||
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
|
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Session: XML-Knoten zur Beschreibung einer MIDI-Region ist unvollständig "
|
"Session: XML-Knoten zur Beschreibung einer MIDI-Region ist unvollständig "
|
||||||
"(Quelle fehlt)"
|
"(Quelle fehlt)"
|
||||||
|
|
||||||
#: session_state.cc:1784
|
#: session_state.cc:1778
|
||||||
msgid ""
|
msgid ""
|
||||||
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
|
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
|
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
|
||||||
"unbekannte Quell-ID =%1"
|
"unbekannte Quell-ID =%1"
|
||||||
|
|
||||||
#: session_state.cc:1790
|
#: session_state.cc:1784
|
||||||
msgid ""
|
msgid ""
|
||||||
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
|
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
|
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
|
||||||
"Nicht-MIDI Quell-ID =%1"
|
"Nicht-MIDI Quell-ID =%1"
|
||||||
|
|
||||||
#: session_state.cc:1858
|
#: session_state.cc:1852
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
|
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
|
||||||
"existing files with similar names"
|
"existing files with similar names"
|
||||||
|
|
@ -2164,109 +2120,109 @@ msgstr ""
|
||||||
"kann keine neue Datei aus dem Regionennamen \"%1\" mit ident = \"%2\" "
|
"kann keine neue Datei aus dem Regionennamen \"%1\" mit ident = \"%2\" "
|
||||||
"erzeugen: zu viele Dateien mit ähnlichen Namen existieren"
|
"erzeugen: zu viele Dateien mit ähnlichen Namen existieren"
|
||||||
|
|
||||||
#: session_state.cc:1881
|
#: session_state.cc:1875
|
||||||
msgid "Session: cannot create Source from XML description."
|
msgid "Session: cannot create Source from XML description."
|
||||||
msgstr "Session: Kann Quelle aus der XML-Beschreibung nicht erzeugen"
|
msgstr "Session: Kann Quelle aus der XML-Beschreibung nicht erzeugen"
|
||||||
|
|
||||||
#: session_state.cc:1915
|
#: session_state.cc:1909
|
||||||
msgid "A sound file is missing. It will be replaced by silence."
|
msgid "A sound file is missing. It will be replaced by silence."
|
||||||
msgstr "Eine Audiodatei fehlt. Sie wird durch Stille ersetzt werden."
|
msgstr "Eine Audiodatei fehlt. Sie wird durch Stille ersetzt werden."
|
||||||
|
|
||||||
#: session_state.cc:1938
|
#: session_state.cc:1932
|
||||||
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
|
msgid "Found a sound file that cannot be used by %1. Talk to the progammers."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Eine nicht mit %1 benutzbare Audiodatei wurde gefunden. Sprechen Sie mit den "
|
"Eine nicht mit %1 benutzbare Audiodatei wurde gefunden. Sprechen Sie mit den "
|
||||||
"Programmierern."
|
"Programmierern."
|
||||||
|
|
||||||
#: session_state.cc:1955
|
#: session_state.cc:1949
|
||||||
msgid "Could not create templates directory \"%1\" (%2)"
|
msgid "Could not create templates directory \"%1\" (%2)"
|
||||||
msgstr "Konnte Vorlagenverzeichnis \"%1\" nicht erzeugen (%2)"
|
msgstr "Konnte Vorlagenverzeichnis \"%1\" nicht erzeugen (%2)"
|
||||||
|
|
||||||
#: session_state.cc:1968
|
#: session_state.cc:1962
|
||||||
msgid "Template \"%1\" already exists - new version not created"
|
msgid "Template \"%1\" already exists - new version not created"
|
||||||
msgstr "Vorlage \"%1\" existiert bereits - neue Version wurde nicht erzeugt"
|
msgstr "Vorlage \"%1\" existiert bereits - neue Version wurde nicht erzeugt"
|
||||||
|
|
||||||
#: session_state.cc:1974
|
#: session_state.cc:1968
|
||||||
msgid "Could not create directory for Session template\"%1\" (%2)"
|
msgid "Could not create directory for Session template\"%1\" (%2)"
|
||||||
msgstr "Konnte kein Verzeichnis für Projektvorlage \"%1\" erzeugen (%2)"
|
msgstr "Konnte kein Verzeichnis für Projektvorlage \"%1\" erzeugen (%2)"
|
||||||
|
|
||||||
#: session_state.cc:1984
|
#: session_state.cc:1978
|
||||||
msgid "template not saved"
|
msgid "template not saved"
|
||||||
msgstr "Vorlage nicht gesichert"
|
msgstr "Vorlage nicht gesichert"
|
||||||
|
|
||||||
#: session_state.cc:1994
|
#: session_state.cc:1988
|
||||||
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
|
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Konnte Verzeichnis für Projektvorlagen-Pluginstatus \"%1\" nicht erzeugen "
|
"Konnte Verzeichnis für Projektvorlagen-Pluginstatus \"%1\" nicht erzeugen "
|
||||||
"(%2)"
|
"(%2)"
|
||||||
|
|
||||||
#: session_state.cc:2189
|
#: session_state.cc:2183
|
||||||
msgid "Unknown node \"%1\" found in Bundles list from session file"
|
msgid "Unknown node \"%1\" found in Bundles list from session file"
|
||||||
msgstr "Unbekannter Knoten \"%1\" in Bündelliste der Projektdatei gefunden"
|
msgstr "Unbekannter Knoten \"%1\" in Bündelliste der Projektdatei gefunden"
|
||||||
|
|
||||||
#: session_state.cc:2731 session_state.cc:2737
|
#: session_state.cc:2725 session_state.cc:2731
|
||||||
msgid "Cannot expand path %1 (%2)"
|
msgid "Cannot expand path %1 (%2)"
|
||||||
msgstr "Kann Pfad %1 nicht expandieren (%2)"
|
msgstr "Kann Pfad %1 nicht expandieren (%2)"
|
||||||
|
|
||||||
#: session_state.cc:2790
|
#: session_state.cc:2784
|
||||||
msgid "Session: cannot create dead file folder \"%1\" (%2)"
|
msgid "Session: cannot create dead file folder \"%1\" (%2)"
|
||||||
msgstr "Session: kann den Mülleimer \"%1\" nicht erzeugen (%2)"
|
msgstr "Session: kann den Mülleimer \"%1\" nicht erzeugen (%2)"
|
||||||
|
|
||||||
#: session_state.cc:2829
|
#: session_state.cc:2823
|
||||||
msgid "cannot rename unused file source from %1 to %2 (%3)"
|
msgid "cannot rename unused file source from %1 to %2 (%3)"
|
||||||
msgstr "kann unbenutzte Dateiquelle nicht von %1 nach %2 umbenennen (%3)"
|
msgstr "kann unbenutzte Dateiquelle nicht von %1 nach %2 umbenennen (%3)"
|
||||||
|
|
||||||
#: session_state.cc:2847
|
#: session_state.cc:2841
|
||||||
msgid "cannot remove peakfile %1 for %2 (%3)"
|
msgid "cannot remove peakfile %1 for %2 (%3)"
|
||||||
msgstr "kann Peakdatei %1 für %2 nicht entfernen (%3)"
|
msgstr "kann Peakdatei %1 für %2 nicht entfernen (%3)"
|
||||||
|
|
||||||
#: session_state.cc:3149
|
#: session_state.cc:3143
|
||||||
msgid "could not backup old history file, current history not saved"
|
msgid "could not backup old history file, current history not saved"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"konnte kein Backup der alten Aktionsliste erstellen, momentane Aktionsliste "
|
"konnte kein Backup der alten Aktionsliste erstellen, momentane Aktionsliste "
|
||||||
"ungesichert"
|
"ungesichert"
|
||||||
|
|
||||||
#: session_state.cc:3162
|
#: session_state.cc:3156
|
||||||
msgid "history could not be saved to %1"
|
msgid "history could not be saved to %1"
|
||||||
msgstr "Aktionsliste konnte nicht nach %1 gesichert werden"
|
msgstr "Aktionsliste konnte nicht nach %1 gesichert werden"
|
||||||
|
|
||||||
#: session_state.cc:3165
|
#: session_state.cc:3159
|
||||||
msgid "Could not remove history file at path \"%1\" (%2)"
|
msgid "Could not remove history file at path \"%1\" (%2)"
|
||||||
msgstr "Konnte Aktionslistendatei im Pfad \"%1\" nicht entfernen (%2)"
|
msgstr "Konnte Aktionslistendatei im Pfad \"%1\" nicht entfernen (%2)"
|
||||||
|
|
||||||
#: session_state.cc:3169
|
#: session_state.cc:3163
|
||||||
msgid "could not restore history file from backup %1 (%2)"
|
msgid "could not restore history file from backup %1 (%2)"
|
||||||
msgstr "konnte Aktionslistendatei nicht aus dem Backup %1 restaurieren (%2)"
|
msgstr "konnte Aktionslistendatei nicht aus dem Backup %1 restaurieren (%2)"
|
||||||
|
|
||||||
#: session_state.cc:3194
|
#: session_state.cc:3188
|
||||||
msgid "%1: no history file \"%2\" for this session."
|
msgid "%1: no history file \"%2\" for this session."
|
||||||
msgstr "%1: keine Aktionslistendatei \"%2\" für dieses Projekt."
|
msgstr "%1: keine Aktionslistendatei \"%2\" für dieses Projekt."
|
||||||
|
|
||||||
#: session_state.cc:3200
|
#: session_state.cc:3194
|
||||||
msgid "Could not understand session history file \"%1\""
|
msgid "Could not understand session history file \"%1\""
|
||||||
msgstr "Konnte Projekt-Aktionslistendatei \"%1\" nicht verstehen"
|
msgstr "Konnte Projekt-Aktionslistendatei \"%1\" nicht verstehen"
|
||||||
|
|
||||||
#: session_state.cc:3242
|
#: session_state.cc:3236
|
||||||
msgid "Failed to downcast MidiSource for NoteDiffCommand"
|
msgid "Failed to downcast MidiSource for NoteDiffCommand"
|
||||||
msgstr "MidiSource für NoteDiffCommand nicht auffindbar"
|
msgstr "MidiSource für NoteDiffCommand nicht auffindbar"
|
||||||
|
|
||||||
#: session_state.cc:3253
|
#: session_state.cc:3247
|
||||||
msgid "Failed to downcast MidiSource for SysExDiffCommand"
|
msgid "Failed to downcast MidiSource for SysExDiffCommand"
|
||||||
msgstr "MidiSource für SysExDiffCommand nicht auffindbar"
|
msgstr "MidiSource für SysExDiffCommand nicht auffindbar"
|
||||||
|
|
||||||
#: session_state.cc:3264
|
#: session_state.cc:3258
|
||||||
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
|
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
|
||||||
msgstr "MidiSource für PatchChangeDiffCommand nicht auffindbar"
|
msgstr "MidiSource für PatchChangeDiffCommand nicht auffindbar"
|
||||||
|
|
||||||
#: session_state.cc:3272
|
#: session_state.cc:3266
|
||||||
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
|
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
|
||||||
msgstr "Konnte im XML-Knoten \"%1\" keinen Befehl erkennen."
|
msgstr "Konnte im XML-Knoten \"%1\" keinen Befehl erkennen."
|
||||||
|
|
||||||
#: session_state.cc:3524
|
#: session_state.cc:3502
|
||||||
msgid "Session: unknown diskstream type in XML"
|
msgid "Session: unknown diskstream type in XML"
|
||||||
msgstr "Session: Unbekannter Diskstream im XML"
|
msgstr "Session: Unbekannter Diskstream im XML"
|
||||||
|
|
||||||
#: session_state.cc:3529
|
#: session_state.cc:3507
|
||||||
msgid "Session: could not load diskstream via XML state"
|
msgid "Session: could not load diskstream via XML state"
|
||||||
msgstr "Session: konnte Diskstream nicht via XML-Status laden"
|
msgstr "Session: konnte Diskstream nicht via XML-Status laden"
|
||||||
|
|
||||||
|
|
@ -2710,56 +2666,3 @@ msgstr "Programmierfehler: unbekanntes natives Dateikopfformat: %1"
|
||||||
#: utils.cc:617
|
#: utils.cc:617
|
||||||
msgid "cannot open directory %1 (%2)"
|
msgid "cannot open directory %1 (%2)"
|
||||||
msgstr "kann Verzeichnis %1 nicht öffnen (%2)"
|
msgstr "kann Verzeichnis %1 nicht öffnen (%2)"
|
||||||
|
|
||||||
#~ msgid "Setup signal flow and plugins"
|
|
||||||
#~ msgstr "Richte Signalfluss and Plugins ein"
|
|
||||||
|
|
||||||
#~ msgid "cannot setup Click I/O"
|
|
||||||
#~ msgstr "kann Metronom-E/A nicht einrichten"
|
|
||||||
|
|
||||||
#~ msgid "Compute I/O Latencies"
|
|
||||||
#~ msgstr "Berechne E/A-Latenzen"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "This version of JACK is old - you should upgrade to a newer version that "
|
|
||||||
#~ "supports jack_port_type_get_buffer_size()"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Diese JACK-Version ist alt - Sie sollten auf eine Version upgraden, die "
|
|
||||||
#~ "jack_port_type_get_buffer_size() unterstützt"
|
|
||||||
|
|
||||||
#~ msgid "Connect session to engine"
|
|
||||||
#~ msgstr "Verbinde Projekt mit Engine"
|
|
||||||
|
|
||||||
#~ msgid "connect called before engine was started"
|
|
||||||
#~ msgstr "Aufruf von connect vor dem Start der Engine"
|
|
||||||
|
|
||||||
#~ msgid "disconnect called before engine was started"
|
|
||||||
#~ msgstr "Aufruf von disconnect vor dem Start der Engine"
|
|
||||||
|
|
||||||
#~ msgid "get_port_by_name() called before engine was started"
|
|
||||||
#~ msgstr "Aufruf von get_port_by_name() vor dem Start der Engine"
|
|
||||||
|
|
||||||
#~ msgid "get_ports called before engine was started"
|
|
||||||
#~ msgstr "Aufruf von get_ports vor dem Start der Engine"
|
|
||||||
|
|
||||||
#~ msgid "failed to connect to JACK"
|
|
||||||
#~ msgstr "Verbindung zu JACK fehlgeschlagen"
|
|
||||||
|
|
||||||
#~ msgid "get_connected_latency_range() called while disconnected from JACK"
|
|
||||||
#~ msgstr "Aufruf von get_connected_latency_range(), während von JACK getrennt"
|
|
||||||
|
|
||||||
#~ msgid "Session: could not send full MIDI time code"
|
|
||||||
#~ msgstr "Session: konnte vollständigen MIDI-Timecode nicht senden"
|
|
||||||
|
|
||||||
#~ msgid "Session"
|
|
||||||
#~ msgstr "Projekt"
|
|
||||||
|
|
||||||
#~ msgid "MidiDiskstream: XML property channel-mask out of range"
|
|
||||||
#~ msgstr "MidiDiskstream: Wertüberschreitung der XML-Eigenschaft Kanalmaske"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Copying old session file %1 to %2\n"
|
|
||||||
#~ "Use %2 with %3 versions before 2.0 from now on"
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "Kopiere alte Projektdatei %1 nach %2\n"
|
|
||||||
#~ "Benutzen Sie von jetzt an %2 mit %3-Versionen vor 2.0"
|
|
||||||
|
|
|
||||||
2089
libs/ardour/po/el.po
2089
libs/ardour/po/el.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1552
libs/ardour/po/it.po
1552
libs/ardour/po/it.po
File diff suppressed because it is too large
Load diff
1678
libs/ardour/po/nn.po
1678
libs/ardour/po/nn.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: libardour 3\n"
|
"Project-Id-Version: libardour 3\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-10-15 21:42+0400\n"
|
"POT-Creation-Date: 2013-10-23 19:07+0200\n"
|
||||||
"PO-Revision-Date: 2013-10-15 21:40+0300\n"
|
"PO-Revision-Date: 2013-10-15 21:40+0300\n"
|
||||||
"Last-Translator: Александр Прокудин <alexandre.prokoudine@gmail.com>\n"
|
"Last-Translator: Александр Прокудин <alexandre.prokoudine@gmail.com>\n"
|
||||||
"Language-Team: русский <>\n"
|
"Language-Team: русский <>\n"
|
||||||
|
|
@ -391,7 +391,7 @@ msgstr ""
|
||||||
msgid "audio"
|
msgid "audio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: data_type.cc:28 session.cc:1788 session.cc:1791
|
#: data_type.cc:28 session.cc:1790 session.cc:1793
|
||||||
msgid "MIDI"
|
msgid "MIDI"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -503,7 +503,7 @@ msgstr "Треугольное"
|
||||||
msgid "Rectangular"
|
msgid "Rectangular"
|
||||||
msgstr "Прямоугольное"
|
msgstr "Прямоугольное"
|
||||||
|
|
||||||
#: export_formats.cc:52 session.cc:5009 session.cc:5025
|
#: export_formats.cc:52 session.cc:5008 session.cc:5024
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "Нет"
|
msgstr "Нет"
|
||||||
|
|
||||||
|
|
@ -859,15 +859,15 @@ msgstr ""
|
||||||
msgid "%s out"
|
msgid "%s out"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: io.cc:1535 session.cc:683 session.cc:712
|
#: io.cc:1535 session.cc:685 session.cc:714
|
||||||
msgid "mono"
|
msgid "mono"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: io.cc:1537 session.cc:696 session.cc:726
|
#: io.cc:1537 session.cc:698 session.cc:728
|
||||||
msgid "L"
|
msgid "L"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: io.cc:1537 session.cc:698 session.cc:728
|
#: io.cc:1537 session.cc:700 session.cc:730
|
||||||
msgid "R"
|
msgid "R"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -1094,38 +1094,6 @@ msgstr ""
|
||||||
msgid "MIDI stretch created non-MIDI source"
|
msgid "MIDI stretch created non-MIDI source"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: midiport_manager.cc:71
|
|
||||||
msgid "MIDI control in"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: midiport_manager.cc:72
|
|
||||||
msgid "MIDI control out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: midiport_manager.cc:74
|
|
||||||
msgid "MMC in"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: midiport_manager.cc:75
|
|
||||||
msgid "MMC out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: midiport_manager.cc:96
|
|
||||||
msgid "MTC in"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: midiport_manager.cc:98
|
|
||||||
msgid "MTC out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: midiport_manager.cc:101
|
|
||||||
msgid "MIDI Clock in"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: midiport_manager.cc:103
|
|
||||||
msgid "MIDI Clock out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: monitor_processor.cc:53
|
#: monitor_processor.cc:53
|
||||||
msgid "monitor dim"
|
msgid "monitor dim"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -1486,26 +1454,30 @@ msgstr ""
|
||||||
msgid "return %1"
|
msgid "return %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: route.cc:1107 route.cc:2584
|
#: route.cc:1075 route.cc:2528
|
||||||
msgid "unknown Processor type \"%1\"; ignored"
|
msgid "unknown Processor type \"%1\"; ignored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: route.cc:1119
|
#: route.cc:1087
|
||||||
msgid "processor could not be created. Ignored."
|
msgid "processor could not be created. Ignored."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: route.cc:2010 route.cc:2237
|
#: route.cc:1962 route.cc:2187
|
||||||
msgid "Bad node sent to Route::set_state() [%1]"
|
msgid "Bad node sent to Route::set_state() [%1]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: route.cc:2070
|
#: route.cc:2022
|
||||||
msgid "Pannable state found for route (%1) without a panner!"
|
msgid "Pannable state found for route (%1) without a panner!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: route.cc:2140 route.cc:2144 route.cc:2351 route.cc:2355
|
#: route.cc:2096 route.cc:2100 route.cc:2301 route.cc:2305
|
||||||
msgid "badly formed order key string in state file! [%1] ... ignored."
|
msgid "badly formed order key string in state file! [%1] ... ignored."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: route.cc:2311
|
||||||
|
msgid "Converting deprecated order key for %1 using Editor order %2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: route_group.cc:459
|
#: route_group.cc:459
|
||||||
msgid "You cannot subgroup MIDI tracks at this time"
|
msgid "You cannot subgroup MIDI tracks at this time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -1550,127 +1522,111 @@ msgstr ""
|
||||||
msgid "Set up standard connections"
|
msgid "Set up standard connections"
|
||||||
msgstr "Настройка обычных соединений"
|
msgstr "Настройка обычных соединений"
|
||||||
|
|
||||||
#: session.cc:561
|
#: session.cc:634
|
||||||
msgid "LTC In"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: session.cc:562
|
|
||||||
msgid "LTC Out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: session.cc:588
|
|
||||||
msgid "LTC-in"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: session.cc:589
|
|
||||||
msgid "LTC-out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: session.cc:632
|
|
||||||
msgid "could not setup Click I/O"
|
msgid "could not setup Click I/O"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:680
|
#: session.cc:682
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "out %<PRIu32>"
|
msgid "out %<PRIu32>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:694
|
#: session.cc:696
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "out %<PRIu32>+%<PRIu32>"
|
msgid "out %<PRIu32>+%<PRIu32>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:709
|
#: session.cc:711
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "in %<PRIu32>"
|
msgid "in %<PRIu32>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:723
|
#: session.cc:725
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "in %<PRIu32>+%<PRIu32>"
|
msgid "in %<PRIu32>+%<PRIu32>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:787
|
#: session.cc:789
|
||||||
msgid "cannot connect master output %1 to %2"
|
msgid "cannot connect master output %1 to %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:846
|
#: session.cc:848
|
||||||
msgid "monitor"
|
msgid "monitor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:891
|
#: session.cc:893
|
||||||
msgid "cannot connect control input %1 to %2"
|
msgid "cannot connect control input %1 to %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:911
|
#: session.cc:913
|
||||||
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
|
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:942
|
#: session.cc:944
|
||||||
msgid "cannot connect control output %1 to %2"
|
msgid "cannot connect control output %1 to %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:1006
|
#: session.cc:1008
|
||||||
msgid "cannot create Auditioner: no auditioning of regions possible"
|
msgid "cannot create Auditioner: no auditioning of regions possible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:1190
|
#: session.cc:1192
|
||||||
msgid "Session: you can't use that location for auto punch (start <= end)"
|
msgid "Session: you can't use that location for auto punch (start <= end)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:1230
|
#: session.cc:1232
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot use this location for auto-loop because it has zero or negative "
|
"You cannot use this location for auto-loop because it has zero or negative "
|
||||||
"length"
|
"length"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:1544
|
#: session.cc:1546
|
||||||
msgid "feedback loop setup between %1 and %2"
|
msgid "feedback loop setup between %1 and %2"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:1840
|
#: session.cc:1842
|
||||||
msgid "Session: could not create new midi track."
|
msgid "Session: could not create new midi track."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:1846
|
#: session.cc:1848
|
||||||
msgid ""
|
msgid ""
|
||||||
"No more JACK ports are available. You will need to stop %1 and restart JACK "
|
"No more JACK ports are available. You will need to stop %1 and restart JACK "
|
||||||
"with more ports if you need this many tracks."
|
"with more ports if you need this many tracks."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2023 session.cc:2026
|
#: session.cc:2025 session.cc:2028
|
||||||
msgid "Audio"
|
msgid "Audio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2050 session.cc:2058 session.cc:2135 session.cc:2143
|
#: session.cc:2052 session.cc:2060 session.cc:2137 session.cc:2145
|
||||||
msgid "cannot configure %1 in/%2 out configuration for new audio track"
|
msgid "cannot configure %1 in/%2 out configuration for new audio track"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2081
|
#: session.cc:2083
|
||||||
msgid "Session: could not create new audio track."
|
msgid "Session: could not create new audio track."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2113 session.cc:2116
|
#: session.cc:2115 session.cc:2118
|
||||||
msgid "Bus"
|
msgid "Bus"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2166
|
#: session.cc:2168
|
||||||
msgid "Session: could not create new audio route."
|
msgid "Session: could not create new audio route."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2225 session.cc:2235
|
#: session.cc:2227 session.cc:2237
|
||||||
msgid "Session: UINT_MAX routes? impossible!"
|
msgid "Session: UINT_MAX routes? impossible!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2257
|
#: session.cc:2259
|
||||||
msgid "Session: cannot create track/bus from template description"
|
msgid "Session: cannot create track/bus from template description"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2283
|
#: session.cc:2285
|
||||||
msgid "Session: could not create new route from template"
|
msgid "Session: could not create new route from template"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session.cc:2312
|
#: session.cc:2314
|
||||||
msgid "Adding new tracks/busses failed"
|
msgid "Adding new tracks/busses failed"
|
||||||
msgstr "Не удалось добавить новые дорожки/шины"
|
msgstr "Не удалось добавить новые дорожки/шины"
|
||||||
|
|
||||||
|
|
@ -2110,11 +2066,11 @@ msgstr ""
|
||||||
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
|
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session_state.cc:3518
|
#: session_state.cc:3502
|
||||||
msgid "Session: unknown diskstream type in XML"
|
msgid "Session: unknown diskstream type in XML"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: session_state.cc:3523
|
#: session_state.cc:3507
|
||||||
msgid "Session: could not load diskstream via XML state"
|
msgid "Session: could not load diskstream via XML state"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
@ -2528,66 +2484,3 @@ msgstr "programming error: unknown native header format: %1"
|
||||||
#: utils.cc:617
|
#: utils.cc:617
|
||||||
msgid "cannot open directory %1 (%2)"
|
msgid "cannot open directory %1 (%2)"
|
||||||
msgstr "cannot open directory %1 (%2)"
|
msgstr "cannot open directory %1 (%2)"
|
||||||
|
|
||||||
#~ msgid "Setup signal flow and plugins"
|
|
||||||
#~ msgstr "Настройка модулей и звукового потока"
|
|
||||||
|
|
||||||
#~ msgid "Session"
|
|
||||||
#~ msgstr "Сеанс"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "editor"
|
|
||||||
#~ msgstr "монитор"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "programming error: realpath(%1) failed, errcode %2"
|
|
||||||
#~ msgstr "ошибка программы: "
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "programming error:"
|
|
||||||
#~ msgstr "ошибка программы: "
|
|
||||||
|
|
||||||
#~ msgid "cannot activate JACK client"
|
|
||||||
#~ msgstr "не удалось активировать клиента JACK сервера"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "removed event"
|
|
||||||
#~ msgstr "удалить область"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "removed range"
|
|
||||||
#~ msgstr "удалить область"
|
|
||||||
|
|
||||||
#~ msgid "add"
|
|
||||||
#~ msgstr "добавить"
|
|
||||||
|
|
||||||
#~ msgid "remove"
|
|
||||||
#~ msgstr "удалить"
|
|
||||||
|
|
||||||
#~ msgid "remove region"
|
|
||||||
#~ msgstr "удалить область"
|
|
||||||
|
|
||||||
#~ msgid "separate"
|
|
||||||
#~ msgstr "разделить"
|
|
||||||
|
|
||||||
#~ msgid "split"
|
|
||||||
#~ msgstr "склеить"
|
|
||||||
|
|
||||||
#~ msgid "pre"
|
|
||||||
#~ msgstr "пре"
|
|
||||||
|
|
||||||
#~ msgid "post"
|
|
||||||
#~ msgstr "пост"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "Master Out"
|
|
||||||
#~ msgstr "мастер"
|
|
||||||
|
|
||||||
#~ msgid "16 bit"
|
|
||||||
#~ msgstr "16 бит"
|
|
||||||
|
|
||||||
#~ msgid "24 bit"
|
|
||||||
#~ msgstr "24 бита"
|
|
||||||
|
|
||||||
#~ msgid "8 bit"
|
|
||||||
#~ msgstr "8 бит"
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -62,7 +62,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
|
||||||
to quantize relative to actual session beats (etc.) rather than from the
|
to quantize relative to actual session beats (etc.) rather than from the
|
||||||
start of the model.
|
start of the model.
|
||||||
*/
|
*/
|
||||||
const double round_pos = ceil(position / _start_grid) * _start_grid;
|
const double round_pos = round(position / _start_grid) * _start_grid;
|
||||||
const double offset = round_pos - position;
|
const double offset = round_pos - position;
|
||||||
|
|
||||||
bool even;
|
bool even;
|
||||||
|
|
@ -72,10 +72,13 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
|
||||||
|
|
||||||
even = false;
|
even = false;
|
||||||
|
|
||||||
|
/* TODO 'swing' probably requires a 2nd iteration:
|
||||||
|
* first quantize notes to the grid, then apply beat shift
|
||||||
|
*/
|
||||||
for (Evoral::Sequence<MidiModel::TimeType>::Notes::iterator i = (*s).begin(); i != (*s).end(); ++i) {
|
for (Evoral::Sequence<MidiModel::TimeType>::Notes::iterator i = (*s).begin(); i != (*s).end(); ++i) {
|
||||||
|
|
||||||
double new_start = round ((*i)->time() / _start_grid) * _start_grid + offset;
|
double new_start = round (((*i)->time() - offset) / _start_grid) * _start_grid + offset;
|
||||||
double new_end = round ((*i)->end_time() / _end_grid) * _end_grid + offset;
|
double new_end = round (((*i)->end_time() - offset) / _end_grid) * _end_grid + offset;
|
||||||
|
|
||||||
if (_swing > 0.0 && !even) {
|
if (_swing > 0.0 && !even) {
|
||||||
|
|
||||||
|
|
@ -86,6 +89,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
new_start = new_start + (2.0/3.0 * _swing * (next_grid - new_start));
|
new_start = new_start + (2.0/3.0 * _swing * (next_grid - new_start));
|
||||||
|
new_end = new_end + (2.0/3.0 * _swing * (next_grid - new_start));
|
||||||
|
|
||||||
} else if (_swing < 0.0 && !even) {
|
} else if (_swing < 0.0 && !even) {
|
||||||
|
|
||||||
|
|
@ -96,6 +100,7 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
new_start = new_start - (2.0/3.0 * _swing * (new_start - prev_grid));
|
new_start = new_start - (2.0/3.0 * _swing * (new_start - prev_grid));
|
||||||
|
new_end = new_end - (2.0/3.0 * _swing * (new_start - prev_grid));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,9 @@
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
|
#include <rubberband/RubberBandStretcher.h>
|
||||||
|
|
||||||
#include "pbd/error.h"
|
#include "pbd/error.h"
|
||||||
#include "rubberband/RubberBandStretcher.h"
|
|
||||||
|
|
||||||
#include "ardour/audioregion.h"
|
#include "ardour/audioregion.h"
|
||||||
#include "ardour/audiosource.h"
|
#include "ardour/audiosource.h"
|
||||||
|
|
|
||||||
|
|
@ -257,6 +257,7 @@ Session::Session (AudioEngine &eng,
|
||||||
, _step_editors (0)
|
, _step_editors (0)
|
||||||
, _suspend_timecode_transmission (0)
|
, _suspend_timecode_transmission (0)
|
||||||
, _speakers (new Speakers)
|
, _speakers (new Speakers)
|
||||||
|
, _order_hint (0)
|
||||||
, ignore_route_processor_changes (false)
|
, ignore_route_processor_changes (false)
|
||||||
, _midi_ports (0)
|
, _midi_ports (0)
|
||||||
, _mmc (0)
|
, _mmc (0)
|
||||||
|
|
@ -558,10 +559,10 @@ Session::setup_ltc ()
|
||||||
{
|
{
|
||||||
XMLNode* child = 0;
|
XMLNode* child = 0;
|
||||||
|
|
||||||
_ltc_input.reset (new IO (*this, _("LTC In"), IO::Input));
|
_ltc_input.reset (new IO (*this, X_("LTC In"), IO::Input));
|
||||||
_ltc_output.reset (new IO (*this, _("LTC Out"), IO::Output));
|
_ltc_output.reset (new IO (*this, X_("LTC Out"), IO::Output));
|
||||||
|
|
||||||
if (state_tree && (child = find_named_node (*state_tree->root(), "LTC-In")) != 0) {
|
if (state_tree && (child = find_named_node (*state_tree->root(), X_("LTC In"))) != 0) {
|
||||||
_ltc_input->set_state (*(child->children().front()), Stateful::loading_state_version);
|
_ltc_input->set_state (*(child->children().front()), Stateful::loading_state_version);
|
||||||
} else {
|
} else {
|
||||||
{
|
{
|
||||||
|
|
@ -571,7 +572,7 @@ Session::setup_ltc ()
|
||||||
reconnect_ltc_input ();
|
reconnect_ltc_input ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state_tree && (child = find_named_node (*state_tree->root(), "LTC-Out")) != 0) {
|
if (state_tree && (child = find_named_node (*state_tree->root(), X_("LTC Out"))) != 0) {
|
||||||
_ltc_output->set_state (*(child->children().front()), Stateful::loading_state_version);
|
_ltc_output->set_state (*(child->children().front()), Stateful::loading_state_version);
|
||||||
} else {
|
} else {
|
||||||
{
|
{
|
||||||
|
|
@ -585,15 +586,15 @@ Session::setup_ltc ()
|
||||||
* IO style of NAME/TYPE-{in,out}N
|
* IO style of NAME/TYPE-{in,out}N
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_ltc_input->nth (0)->set_name (_("LTC-in"));
|
_ltc_input->nth (0)->set_name (X_("LTC-in"));
|
||||||
_ltc_output->nth (0)->set_name (_("LTC-out"));
|
_ltc_output->nth (0)->set_name (X_("LTC-out"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Session::setup_click ()
|
Session::setup_click ()
|
||||||
{
|
{
|
||||||
_clicking = false;
|
_clicking = false;
|
||||||
_click_io.reset (new ClickIO (*this, "click"));
|
_click_io.reset (new ClickIO (*this, X_("Click")));
|
||||||
_click_gain.reset (new Amp (*this));
|
_click_gain.reset (new Amp (*this));
|
||||||
_click_gain->activate ();
|
_click_gain->activate ();
|
||||||
if (state_tree) {
|
if (state_tree) {
|
||||||
|
|
@ -2335,6 +2336,11 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
|
||||||
ChanCount existing_outputs;
|
ChanCount existing_outputs;
|
||||||
uint32_t order = next_control_id();
|
uint32_t order = next_control_id();
|
||||||
|
|
||||||
|
if (_order_hint != 0) {
|
||||||
|
order = _order_hint;
|
||||||
|
_order_hint = 0;
|
||||||
|
}
|
||||||
|
|
||||||
count_existing_track_channels (existing_inputs, existing_outputs);
|
count_existing_track_channels (existing_inputs, existing_outputs);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -333,9 +333,14 @@ def build(bld):
|
||||||
obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID',
|
obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID',
|
||||||
'SNDFILE','SAMPLERATE','LRDF','AUDIOUNITS',
|
'SNDFILE','SAMPLERATE','LRDF','AUDIOUNITS',
|
||||||
'OSX','BOOST','CURL','DL']
|
'OSX','BOOST','CURL','DL']
|
||||||
obj.use = ['libpbd','libmidipp','libevoral','libvamphost',
|
obj.use = ['libpbd','libmidipp','libevoral','libvampplugin',
|
||||||
'libvampplugin','libtaglib','librubberband',
|
|
||||||
'libaudiographer','libltc','libtimecode']
|
'libaudiographer','libltc','libtimecode']
|
||||||
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
obj.uselib.extend(['RUBBERBAND', 'TAGLIB', 'LIBLTC', 'VAMPSDK',
|
||||||
|
'VAMPHOSTSDK'])
|
||||||
|
else:
|
||||||
|
obj.use.extend(['libltc', 'librubberband', 'libtaglib', 'libvamphost'])
|
||||||
|
|
||||||
obj.vnum = LIBARDOUR_LIB_VERSION
|
obj.vnum = LIBARDOUR_LIB_VERSION
|
||||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||||
obj.defines = [
|
obj.defines = [
|
||||||
|
|
@ -400,9 +405,13 @@ def build(bld):
|
||||||
'test/test_common.cc', 'test/dummy_lxvst.cc', 'test/audio_region_test.cc', 'test/test_util.cc']
|
'test/test_common.cc', 'test/dummy_lxvst.cc', 'test/audio_region_test.cc', 'test/test_util.cc']
|
||||||
testcommon.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
|
testcommon.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
|
||||||
'SAMPLERATE','XML','LRDF','COREAUDIO']
|
'SAMPLERATE','XML','LRDF','COREAUDIO']
|
||||||
testcommon.use = ['libpbd','libmidipp','libevoral','libvamphost',
|
testcommon.use = ['libpbd','libmidipp','libevoral',
|
||||||
'libvampplugin','libtaglib','librubberband',
|
'libvampplugin','libaudiographer','ardour']
|
||||||
'libaudiographer','libltc','ardour']
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
testcommon.uselib.extend(['RUBBERBAND', 'TAGLIB', 'LIBLTC', 'VAMPSDK',
|
||||||
|
'VAMPHOSTSDK'])
|
||||||
|
else:
|
||||||
|
testcommon.use.extend(['libltc', 'librubberband', 'libtaglib', 'libvamphost'])
|
||||||
testcommon.defines = [
|
testcommon.defines = [
|
||||||
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
|
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
|
||||||
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
|
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
|
||||||
|
|
@ -538,9 +547,15 @@ def create_ardour_test_program(bld, includes, name, target, sources):
|
||||||
testobj.source = sources
|
testobj.source = sources
|
||||||
testobj.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
|
testobj.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
|
||||||
'SAMPLERATE','XML','LRDF','COREAUDIO']
|
'SAMPLERATE','XML','LRDF','COREAUDIO']
|
||||||
testobj.use = ['libpbd','libmidipp','libevoral','libvamphost',
|
testobj.use = ['libpbd','libmidipp','libevoral','libvampplugin',
|
||||||
'libvampplugin','libtaglib','librubberband',
|
'libaudiographer','ardour','testcommon']
|
||||||
'libaudiographer','libltc','ardour','testcommon']
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
testcommon.uselib.extend(['RUBBERBAND', 'TAGLIB', 'LIBLTC', 'VAMPSDK',
|
||||||
|
'VAMPHOSTSDK'])
|
||||||
|
else:
|
||||||
|
testcommon.use.extend(['libltc', 'librubberband', 'libtaglib',
|
||||||
|
'libvamphost'])
|
||||||
|
|
||||||
testobj.name = name
|
testobj.name = name
|
||||||
testobj.target = target
|
testobj.target = target
|
||||||
# not sure about install path
|
# not sure about install path
|
||||||
|
|
|
||||||
|
|
@ -509,6 +509,7 @@ JACKAudioBackend::setup_jack_startup_command (bool for_latency_measurement)
|
||||||
/* error, somehow - we will still try to start JACK
|
/* error, somehow - we will still try to start JACK
|
||||||
* automatically but it will be without our preferred options
|
* automatically but it will be without our preferred options
|
||||||
*/
|
*/
|
||||||
|
std::cerr << "get_jack_command_line_string () failed: using default settings." << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ class JACKAudioBackend : public AudioBackend {
|
||||||
|
|
||||||
int set_port_name (PortHandle, const std::string&);
|
int set_port_name (PortHandle, const std::string&);
|
||||||
std::string get_port_name (PortHandle) const;
|
std::string get_port_name (PortHandle) const;
|
||||||
PortHandle* get_port_by_name (const std::string&) const;
|
PortHandle get_port_by_name (const std::string&) const;
|
||||||
|
|
||||||
int get_ports (const std::string& port_name_pattern, DataType type, PortFlags flags, std::vector<std::string>&) const;
|
int get_ports (const std::string& port_name_pattern, DataType type, PortFlags flags, std::vector<std::string>&) const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,11 +116,11 @@ JACKAudioBackend::get_port_name (PortHandle port) const
|
||||||
return jack_port_name ((jack_port_t*) port);
|
return jack_port_name ((jack_port_t*) port);
|
||||||
}
|
}
|
||||||
|
|
||||||
PortEngine::PortHandle*
|
PortEngine::PortHandle
|
||||||
JACKAudioBackend:: get_port_by_name (const std::string& name) const
|
JACKAudioBackend:: get_port_by_name (const std::string& name) const
|
||||||
{
|
{
|
||||||
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, 0);
|
GET_PRIVATE_JACK_POINTER_RET (_priv_jack, 0);
|
||||||
return (PortHandle*) jack_port_by_name (_priv_jack, name.c_str());
|
return (PortHandle) jack_port_by_name (_priv_jack, name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -756,6 +756,9 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
|
||||||
|
|
||||||
string command_line_driver_name;
|
string command_line_driver_name;
|
||||||
|
|
||||||
|
string command_line_input_device_name;
|
||||||
|
string command_line_output_device_name;
|
||||||
|
|
||||||
if (!get_jack_command_line_audio_driver_name (options.driver, command_line_driver_name)) {
|
if (!get_jack_command_line_audio_driver_name (options.driver, command_line_driver_name)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -763,60 +766,71 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
|
||||||
args.push_back ("-d");
|
args.push_back ("-d");
|
||||||
args.push_back (command_line_driver_name);
|
args.push_back (command_line_driver_name);
|
||||||
|
|
||||||
if (options.output_device.empty() && options.input_device.empty()) {
|
if (options.driver != dummy_driver_name) {
|
||||||
return false;
|
if (options.output_device.empty() && options.input_device.empty()) {
|
||||||
}
|
|
||||||
|
|
||||||
string command_line_input_device_name;
|
|
||||||
string command_line_output_device_name;
|
|
||||||
|
|
||||||
if (!get_jack_command_line_audio_device_name (options.driver,
|
|
||||||
options.input_device, command_line_input_device_name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!get_jack_command_line_audio_device_name (options.driver,
|
|
||||||
options.output_device, command_line_output_device_name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.input_device.empty()) {
|
|
||||||
// playback only
|
|
||||||
if (options.output_device.empty()) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
args.push_back ("-P");
|
|
||||||
} else if (options.output_device.empty()) {
|
|
||||||
// capture only
|
if (!get_jack_command_line_audio_device_name (options.driver,
|
||||||
|
options.input_device, command_line_input_device_name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!get_jack_command_line_audio_device_name (options.driver,
|
||||||
|
options.output_device, command_line_output_device_name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (options.input_device.empty()) {
|
if (options.input_device.empty()) {
|
||||||
return false;
|
// playback only
|
||||||
}
|
if (options.output_device.empty()) {
|
||||||
args.push_back ("-C");
|
return false;
|
||||||
} else if (options.input_device != options.output_device) {
|
}
|
||||||
// capture and playback on two devices if supported
|
|
||||||
if (get_jack_audio_driver_supports_two_devices (options.driver)) {
|
|
||||||
args.push_back ("-C");
|
|
||||||
args.push_back (command_line_input_device_name);
|
|
||||||
args.push_back ("-P");
|
args.push_back ("-P");
|
||||||
args.push_back (command_line_output_device_name);
|
} else if (options.output_device.empty()) {
|
||||||
} else {
|
// capture only
|
||||||
return false;
|
if (options.input_device.empty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
args.push_back ("-C");
|
||||||
|
} else if (options.input_device != options.output_device) {
|
||||||
|
// capture and playback on two devices if supported
|
||||||
|
if (get_jack_audio_driver_supports_two_devices (options.driver)) {
|
||||||
|
args.push_back ("-C");
|
||||||
|
args.push_back (command_line_input_device_name);
|
||||||
|
args.push_back ("-P");
|
||||||
|
args.push_back (command_line_output_device_name);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (options.input_channels) {
|
if (options.input_channels) {
|
||||||
args.push_back ("-i");
|
args.push_back ("-i");
|
||||||
args.push_back (to_string (options.input_channels, std::dec));
|
args.push_back (to_string (options.input_channels, std::dec));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.output_channels) {
|
if (options.output_channels) {
|
||||||
args.push_back ("-o");
|
args.push_back ("-o");
|
||||||
args.push_back (to_string (options.output_channels, std::dec));
|
args.push_back (to_string (options.output_channels, std::dec));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
|
if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
|
||||||
args.push_back ("-n");
|
args.push_back ("-n");
|
||||||
args.push_back (to_string (options.num_periods, std::dec));
|
args.push_back (to_string (options.num_periods, std::dec));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// jackd dummy backend
|
||||||
|
if (options.input_channels) {
|
||||||
|
args.push_back ("-C");
|
||||||
|
args.push_back (to_string (options.input_channels, std::dec));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.output_channels) {
|
||||||
|
args.push_back ("-P");
|
||||||
|
args.push_back (to_string (options.output_channels, std::dec));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
args.push_back ("-r");
|
args.push_back ("-r");
|
||||||
|
|
@ -836,9 +850,11 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.input_device == options.output_device && options.input_device != default_device_name) {
|
if (options.driver != dummy_driver_name) {
|
||||||
args.push_back ("-d");
|
if (options.input_device == options.output_device && options.input_device != default_device_name) {
|
||||||
args.push_back (command_line_input_device_name);
|
args.push_back ("-d");
|
||||||
|
args.push_back (command_line_input_device_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.driver == alsa_driver_name) {
|
if (options.driver == alsa_driver_name) {
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,6 @@ msgstr ""
|
||||||
msgid "Unknown action name: %1"
|
msgid "Unknown action name: %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: binding_proxy.cc:84
|
|
||||||
#, fuzzy
|
|
||||||
msgid "operate controller now"
|
|
||||||
msgstr "λειτουργία ελεγκτή MIDI τώρα"
|
|
||||||
|
|
||||||
#: bindable_button.cc:48
|
#: bindable_button.cc:48
|
||||||
msgid "button cannot watch state of non-existing Controllable\n"
|
msgid "button cannot watch state of non-existing Controllable\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -91,33 +86,3 @@ msgstr ""
|
||||||
#: textviewer.cc:34
|
#: textviewer.cc:34
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Κλείσιμο"
|
msgstr "Κλείσιμο"
|
||||||
|
|
||||||
#~ msgid "OK"
|
|
||||||
#~ msgstr "OK"
|
|
||||||
|
|
||||||
#~ msgid "Location:"
|
|
||||||
#~ msgstr "Τοποθεσία:"
|
|
||||||
|
|
||||||
#~ msgid "Browse ..."
|
|
||||||
#~ msgstr "Αναζήτηση ..."
|
|
||||||
|
|
||||||
#~ msgid "Cancel"
|
|
||||||
#~ msgstr "Ακύρωση"
|
|
||||||
|
|
||||||
#~ msgid "New folder"
|
|
||||||
#~ msgstr "Νέος φάκελος"
|
|
||||||
|
|
||||||
#~ msgid "Add to favorites"
|
|
||||||
#~ msgstr "Πρόσθεση στα 'Αγαπημένα'"
|
|
||||||
|
|
||||||
#~ msgid "Remove from favorites"
|
|
||||||
#~ msgstr "Απαλοιφή από τα 'Αγαπημένα'"
|
|
||||||
|
|
||||||
#~ msgid "Show Hidden"
|
|
||||||
#~ msgstr "Ανάδειξη κρυμμένων"
|
|
||||||
|
|
||||||
#~ msgid "Hide browser"
|
|
||||||
#~ msgstr "Απόκρυψη browser"
|
|
||||||
|
|
||||||
#~ msgid "Rescan"
|
|
||||||
#~ msgstr "Ανανέωση"
|
|
||||||
|
|
|
||||||
|
|
@ -94,36 +94,3 @@ msgstr "Pulsa para llevarlo a la ventana principal"
|
||||||
#: textviewer.cc:34
|
#: textviewer.cc:34
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Cerrar"
|
msgstr "Cerrar"
|
||||||
|
|
||||||
#~ msgid "Error"
|
|
||||||
#~ msgstr "Error"
|
|
||||||
|
|
||||||
#~ msgid "OK"
|
|
||||||
#~ msgstr "ACEPTAR"
|
|
||||||
|
|
||||||
#~ msgid "Location:"
|
|
||||||
#~ msgstr "Localización:"
|
|
||||||
|
|
||||||
#~ msgid "Browse ..."
|
|
||||||
#~ msgstr "Seleccionar ..."
|
|
||||||
|
|
||||||
#~ msgid "Cancel"
|
|
||||||
#~ msgstr "Cancelar"
|
|
||||||
|
|
||||||
#~ msgid "New folder"
|
|
||||||
#~ msgstr "Nueva carpeta"
|
|
||||||
|
|
||||||
#~ msgid "Add to favorites"
|
|
||||||
#~ msgstr "Agregar a favoritos"
|
|
||||||
|
|
||||||
#~ msgid "Remove from favorites"
|
|
||||||
#~ msgstr "Quitar de favoritos"
|
|
||||||
|
|
||||||
#~ msgid "Show Hidden"
|
|
||||||
#~ msgstr "Mostrar ocultos"
|
|
||||||
|
|
||||||
#~ msgid "Hide browser"
|
|
||||||
#~ msgstr "Ocultar explorador"
|
|
||||||
|
|
||||||
#~ msgid "Rescan"
|
|
||||||
#~ msgstr "Buscar de nuevo"
|
|
||||||
|
|
|
||||||
|
|
@ -54,11 +54,6 @@ msgstr "Commande"
|
||||||
msgid "Control"
|
msgid "Control"
|
||||||
msgstr "Ctrl"
|
msgstr "Ctrl"
|
||||||
|
|
||||||
#: keyboard.cc:70 keyboard.cc:73 keyboard.cc:87 keyboard.cc:90
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Key|Shift"
|
|
||||||
msgstr "Maj"
|
|
||||||
|
|
||||||
#: keyboard.cc:71
|
#: keyboard.cc:71
|
||||||
msgid "Option"
|
msgid "Option"
|
||||||
msgstr "Option"
|
msgstr "Option"
|
||||||
|
|
@ -75,11 +70,6 @@ msgstr "Meta"
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Inconnu"
|
msgstr "Inconnu"
|
||||||
|
|
||||||
#: keyboard.cc:542
|
|
||||||
#, fuzzy
|
|
||||||
msgid "key bindings file not found at \"%2\" or contains errors."
|
|
||||||
msgstr "Raccourcis clavier pour %1 introuvable dans \"%1\" ou corrompu."
|
|
||||||
|
|
||||||
#: tearoff.cc:57
|
#: tearoff.cc:57
|
||||||
msgid "Click to tear this into its own window"
|
msgid "Click to tear this into its own window"
|
||||||
msgstr "Cliquez pour afficher dans une fenêtre séparée"
|
msgstr "Cliquez pour afficher dans une fenêtre séparée"
|
||||||
|
|
@ -91,6 +81,3 @@ msgstr "Cliquez pour remettre dans la fenêtre principale"
|
||||||
#: textviewer.cc:34
|
#: textviewer.cc:34
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Fermer"
|
msgstr "Fermer"
|
||||||
|
|
||||||
#~ msgid "Mod1"
|
|
||||||
#~ msgstr "Mod1"
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -90,18 +90,3 @@ msgstr ""
|
||||||
#: textviewer.cc:34
|
#: textviewer.cc:34
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Zamknij"
|
msgstr "Zamknij"
|
||||||
|
|
||||||
#~ msgid "Error"
|
|
||||||
#~ msgstr "Błąd"
|
|
||||||
|
|
||||||
#~ msgid "+"
|
|
||||||
#~ msgstr "+"
|
|
||||||
|
|
||||||
#~ msgid "-"
|
|
||||||
#~ msgstr "-"
|
|
||||||
|
|
||||||
#~ msgid "Paths"
|
|
||||||
#~ msgstr "Położenia"
|
|
||||||
|
|
||||||
#~ msgid "Path Chooser"
|
|
||||||
#~ msgstr "Wybór położenia"
|
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,6 @@ msgstr ""
|
||||||
msgid "Unknown action name: %1"
|
msgid "Unknown action name: %1"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: binding_proxy.cc:84
|
|
||||||
#, fuzzy
|
|
||||||
msgid "operate controller now"
|
|
||||||
msgstr "Operar controladora de MIDI agora"
|
|
||||||
|
|
||||||
#: bindable_button.cc:48
|
#: bindable_button.cc:48
|
||||||
msgid "button cannot watch state of non-existing Controllable\n"
|
msgid "button cannot watch state of non-existing Controllable\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -91,33 +86,3 @@ msgstr ""
|
||||||
#: textviewer.cc:34
|
#: textviewer.cc:34
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Fechar"
|
msgstr "Fechar"
|
||||||
|
|
||||||
#~ msgid "OK"
|
|
||||||
#~ msgstr "OK"
|
|
||||||
|
|
||||||
#~ msgid "Location:"
|
|
||||||
#~ msgstr "localização:"
|
|
||||||
|
|
||||||
#~ msgid "Browse ..."
|
|
||||||
#~ msgstr "Localizar ..."
|
|
||||||
|
|
||||||
#~ msgid "Cancel"
|
|
||||||
#~ msgstr "Cancelar"
|
|
||||||
|
|
||||||
#~ msgid "New folder"
|
|
||||||
#~ msgstr "Novo diretório"
|
|
||||||
|
|
||||||
#~ msgid "Add to favorites"
|
|
||||||
#~ msgstr "Adicionar a favoritos"
|
|
||||||
|
|
||||||
#~ msgid "Remove from favorites"
|
|
||||||
#~ msgstr "Remover de favoritos"
|
|
||||||
|
|
||||||
#~ msgid "Show Hidden"
|
|
||||||
#~ msgstr "Mostrar ocultos"
|
|
||||||
|
|
||||||
#~ msgid "Hide browser"
|
|
||||||
#~ msgstr "Ocultar explorador"
|
|
||||||
|
|
||||||
#~ msgid "Rescan"
|
|
||||||
#~ msgstr "Buscar de novo"
|
|
||||||
|
|
|
||||||
|
|
@ -96,42 +96,3 @@ msgstr "Щелкните, чтобы превратить это плавающ
|
||||||
#: textviewer.cc:34
|
#: textviewer.cc:34
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Закрыть"
|
msgstr "Закрыть"
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Key: "
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "\n"
|
|
||||||
#~ "\n"
|
|
||||||
#~ "Клавиша: "
|
|
||||||
|
|
||||||
#~ msgid "OK"
|
|
||||||
#~ msgstr "ОК"
|
|
||||||
|
|
||||||
#~ msgid "Location:"
|
|
||||||
#~ msgstr "Путь:"
|
|
||||||
|
|
||||||
#~ msgid "Browse ..."
|
|
||||||
#~ msgstr "Обзор ..."
|
|
||||||
|
|
||||||
#~ msgid "Cancel"
|
|
||||||
#~ msgstr "Отмена"
|
|
||||||
|
|
||||||
#~ msgid "New folder"
|
|
||||||
#~ msgstr "Новая папка"
|
|
||||||
|
|
||||||
#~ msgid "Add to favorites"
|
|
||||||
#~ msgstr "Добавить в избранное"
|
|
||||||
|
|
||||||
#~ msgid "Remove from favorites"
|
|
||||||
#~ msgstr "Исключить из избранного"
|
|
||||||
|
|
||||||
#~ msgid "Show Hidden"
|
|
||||||
#~ msgstr "Показывать скрытые файлы"
|
|
||||||
|
|
||||||
#~ msgid "Hide browser"
|
|
||||||
#~ msgstr "Скрыть область обзора"
|
|
||||||
|
|
||||||
#~ msgid "Rescan"
|
|
||||||
#~ msgstr "Обновить"
|
|
||||||
|
|
|
||||||
|
|
@ -29,10 +29,15 @@ def options(opt):
|
||||||
autowaf.set_options(opt)
|
autowaf.set_options(opt)
|
||||||
|
|
||||||
def configure(conf):
|
def configure(conf):
|
||||||
conf.load('compiler_c')
|
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
autowaf.configure(conf)
|
autowaf.check_pkg(conf, 'ltc', uselib_store='LIBLTC', atleast_version=LIBLTC_LIB_VERSION, mandatory=True)
|
||||||
|
else:
|
||||||
|
conf.load('compiler_c')
|
||||||
|
autowaf.configure(conf)
|
||||||
|
|
||||||
def build(bld):
|
def build(bld):
|
||||||
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
return
|
||||||
obj = bld(features = 'c cshlib')
|
obj = bld(features = 'c cshlib')
|
||||||
obj.source = '''
|
obj.source = '''
|
||||||
ltc.c
|
ltc.c
|
||||||
|
|
@ -41,7 +46,7 @@ def build(bld):
|
||||||
decoder.c
|
decoder.c
|
||||||
'''
|
'''
|
||||||
|
|
||||||
obj.export_includes = ['.']
|
obj.export_includes = ['./ltc']
|
||||||
obj.includes = ['.']
|
obj.includes = ['.']
|
||||||
obj.name = 'libltc'
|
obj.name = 'libltc'
|
||||||
obj.target = 'ltc'
|
obj.target = 'ltc'
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
/* LV2 */
|
/* LV2 */
|
||||||
#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
|
#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
|
||||||
#include "lv2/lv2plug.in/ns/ext/atom/util.h"
|
#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
|
||||||
#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
|
#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
|
||||||
#include "lv2/lv2plug.in/ns/ext/midi/midi.h"
|
#include "lv2/lv2plug.in/ns/ext/midi/midi.h"
|
||||||
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
static void * synth_alloc (void);
|
static void * synth_alloc (void);
|
||||||
static void synth_init (void *, double rate);
|
static void synth_init (void *, double rate);
|
||||||
static void synth_free (void *);
|
static void synth_free (void *);
|
||||||
static void synth_parse_midi (void *, uint8_t *data, size_t size);
|
static void synth_parse_midi (void *, const uint8_t *data, const size_t size);
|
||||||
static uint32_t synth_sound (void *, uint32_t written, uint32_t nframes, float **out);
|
static uint32_t synth_sound (void *, uint32_t written, uint32_t nframes, float **out);
|
||||||
|
|
||||||
#include "rsynth.c"
|
#include "rsynth.c"
|
||||||
|
|
@ -66,6 +66,9 @@ instantiate(const LV2_Descriptor* descriptor,
|
||||||
const char* bundle_path,
|
const char* bundle_path,
|
||||||
const LV2_Feature* const* features)
|
const LV2_Feature* const* features)
|
||||||
{
|
{
|
||||||
|
(void) descriptor; /* unused variable */
|
||||||
|
(void) bundle_path; /* unused variable */
|
||||||
|
|
||||||
if (rate < 8000) {
|
if (rate < 8000) {
|
||||||
fprintf(stderr, "RSynth.lv2 error: unsupported sample-rate (must be > 8k)\n");
|
fprintf(stderr, "RSynth.lv2 error: unsupported sample-rate (must be > 8k)\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -131,18 +134,22 @@ run(LV2_Handle handle, uint32_t n_samples)
|
||||||
|
|
||||||
/* Process incoming MIDI events */
|
/* Process incoming MIDI events */
|
||||||
if (self->midiin) {
|
if (self->midiin) {
|
||||||
LV2_Atom_Event* ev = lv2_atom_sequence_begin(&(self->midiin)->body);
|
LV2_Atom_Event const* ev = (LV2_Atom_Event const*)((&(self->midiin)->body) + 1); // lv2_atom_sequence_begin
|
||||||
while(!lv2_atom_sequence_is_end(&(self->midiin)->body, (self->midiin)->atom.size, ev)) {
|
while( // !lv2_atom_sequence_is_end
|
||||||
|
(const uint8_t*)ev < ((const uint8_t*) &(self->midiin)->body + (self->midiin)->atom.size)
|
||||||
|
)
|
||||||
|
{
|
||||||
if (ev->body.type == self->midi_MidiEvent) {
|
if (ev->body.type == self->midi_MidiEvent) {
|
||||||
if (written + BUFFER_SIZE_SAMPLES < ev->time.frames
|
if (written + BUFFER_SIZE_SAMPLES < ev->time.frames
|
||||||
&& ev->time.frames < n_samples) {
|
&& ev->time.frames < n_samples) {
|
||||||
/* first synthesize sound up until the message timestamp */
|
/* first synthesize sound up until the message timestamp */
|
||||||
written = synth_sound(self->synth, written, ev->time.frames, audio);
|
written = synth_sound(self->synth, written, ev->time.frames, audio);
|
||||||
}
|
}
|
||||||
/* send midi message to synth */
|
/* send midi message to synth */
|
||||||
synth_parse_midi(self->synth, (uint8_t*)(ev+1), ev->body.size);
|
synth_parse_midi(self->synth, (const uint8_t*)(ev+1), ev->body.size);
|
||||||
}
|
}
|
||||||
ev = lv2_atom_sequence_next(ev);
|
ev = (LV2_Atom_Event const*) // lv2_atom_sequence_next()
|
||||||
|
((const uint8_t*)ev + sizeof(LV2_Atom_Event) + ((ev->body.size + 7) & ~7));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -161,6 +168,7 @@ cleanup(LV2_Handle handle)
|
||||||
static const void*
|
static const void*
|
||||||
extension_data(const char* uri)
|
extension_data(const char* uri)
|
||||||
{
|
{
|
||||||
|
(void) uri; /* unused variable */
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -177,9 +185,9 @@ static const LV2_Descriptor descriptor = {
|
||||||
|
|
||||||
LV2_SYMBOL_EXPORT
|
LV2_SYMBOL_EXPORT
|
||||||
const LV2_Descriptor*
|
const LV2_Descriptor*
|
||||||
lv2_descriptor(uint32_t index)
|
lv2_descriptor(uint32_t idx)
|
||||||
{
|
{
|
||||||
switch (index) {
|
switch (idx) {
|
||||||
case 0:
|
case 0:
|
||||||
return &descriptor;
|
return &descriptor;
|
||||||
default:
|
default:
|
||||||
|
|
@ -187,4 +195,4 @@ lv2_descriptor(uint32_t index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vi:set ts=8 sts=2 sw=2: */
|
/* vi:set ts=8 sts=2 sw=2 et: */
|
||||||
|
|
|
||||||
|
|
@ -175,9 +175,10 @@ static void synthesize_sineP (RSSynthChannel* sc,
|
||||||
const uint8_t note, const float vol, const float fq,
|
const uint8_t note, const float vol, const float fq,
|
||||||
const size_t n_samples, float* left, float* right) {
|
const size_t n_samples, float* left, float* right) {
|
||||||
|
|
||||||
|
size_t i;
|
||||||
float phase = sc->phase[note];
|
float phase = sc->phase[note];
|
||||||
|
|
||||||
for (size_t i=0; i < n_samples; ++i) {
|
for (i=0; i < n_samples; ++i) {
|
||||||
float env = adsr_env(sc, note);
|
float env = adsr_env(sc, note);
|
||||||
if (sc->adsr_cnt[note] == 0) break;
|
if (sc->adsr_cnt[note] == 0) break;
|
||||||
const float amp = vol * env;
|
const float amp = vol * env;
|
||||||
|
|
@ -188,7 +189,7 @@ static void synthesize_sineP (RSSynthChannel* sc,
|
||||||
left[i] += .080 * amp * sinf(2.0 * M_PI * phase * 4.0);
|
left[i] += .080 * amp * sinf(2.0 * M_PI * phase * 4.0);
|
||||||
//left[i] -= .007 * amp * sinf(2.0 * M_PI * phase * 5.0);
|
//left[i] -= .007 * amp * sinf(2.0 * M_PI * phase * 5.0);
|
||||||
//left[i] += .010 * amp * sinf(2.0 * M_PI * phase * 6.0);
|
//left[i] += .010 * amp * sinf(2.0 * M_PI * phase * 6.0);
|
||||||
//left[i] += .020 * amp * sinf(2.0 * M_PI * phase * 7.0);
|
left[i] += .020 * amp * sinf(2.0 * M_PI * phase * 7.0);
|
||||||
phase += fq;
|
phase += fq;
|
||||||
right[i] += amp * sinf(2.0 * M_PI * phase);
|
right[i] += amp * sinf(2.0 * M_PI * phase);
|
||||||
right[i] += .300 * amp * sinf(2.0 * M_PI * phase * 2.0);
|
right[i] += .300 * amp * sinf(2.0 * M_PI * phase * 2.0);
|
||||||
|
|
@ -196,13 +197,13 @@ static void synthesize_sineP (RSSynthChannel* sc,
|
||||||
right[i] -= .080 * amp * sinf(2.0 * M_PI * phase * 4.0);
|
right[i] -= .080 * amp * sinf(2.0 * M_PI * phase * 4.0);
|
||||||
//right[i] += .007 * amp * sinf(2.0 * M_PI * phase * 5.0);
|
//right[i] += .007 * amp * sinf(2.0 * M_PI * phase * 5.0);
|
||||||
//right[i] += .010 * amp * sinf(2.0 * M_PI * phase * 6.0);
|
//right[i] += .010 * amp * sinf(2.0 * M_PI * phase * 6.0);
|
||||||
//right[i] -= .020 * amp * sinf(2.0 * M_PI * phase * 7.0);
|
right[i] -= .020 * amp * sinf(2.0 * M_PI * phase * 7.0);
|
||||||
if (phase > 1.0) phase -= 2.0;
|
if (phase > 1.0) phase -= 2.0;
|
||||||
}
|
}
|
||||||
sc->phase[note] = phase;
|
sc->phase[note] = phase;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const ADSRcfg piano_adsr = {{ 5, 1300, 100}, { 1.0, 0.0}, {0,0,0}};
|
static const ADSRcfg piano_adsr = {{ 5, 800, 100}, { 1.0, 0.0}, {0,0,0}};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
|
@ -239,8 +240,8 @@ static void process_key (void *synth,
|
||||||
// note off
|
// note off
|
||||||
if (sc->adsr_cnt[note] <= sc->adsr.off[1]) {
|
if (sc->adsr_cnt[note] <= sc->adsr.off[1]) {
|
||||||
if (sc->adsr_cnt[note] != sc->adsr.off[1]) {
|
if (sc->adsr_cnt[note] != sc->adsr.off[1]) {
|
||||||
// x-fade to release
|
// x-fade to release
|
||||||
sc->adsr_amp[note] = adsr_env(sc, note);
|
sc->adsr_amp[note] = adsr_env(sc, note);
|
||||||
}
|
}
|
||||||
sc->adsr_cnt[note] = sc->adsr.off[1] + 1;
|
sc->adsr_cnt[note] = sc->adsr.off[1] + 1;
|
||||||
}
|
}
|
||||||
|
|
@ -272,9 +273,11 @@ static void synth_fragment (void *synth, const size_t n_samples, float *left, fl
|
||||||
memset (left, 0, n_samples * sizeof(float));
|
memset (left, 0, n_samples * sizeof(float));
|
||||||
memset (right, 0, n_samples * sizeof(float));
|
memset (right, 0, n_samples * sizeof(float));
|
||||||
uint8_t keycomp = 0;
|
uint8_t keycomp = 0;
|
||||||
|
int c,k;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
for (int c=0; c < 16; ++c) {
|
for (c=0; c < 16; ++c) {
|
||||||
for (int k=0; k < 128; ++k) {
|
for (k=0; k < 128; ++k) {
|
||||||
if (rs->sc[c].miditable[k] == 0) continue;
|
if (rs->sc[c].miditable[k] == 0) continue;
|
||||||
process_key(synth, c, k, n_samples, left, right);
|
process_key(synth, c, k, n_samples, left, right);
|
||||||
}
|
}
|
||||||
|
|
@ -286,7 +289,7 @@ static void synth_fragment (void *synth, const size_t n_samples, float *left, fl
|
||||||
if (kctgt < .5) kctgt = .5;
|
if (kctgt < .5) kctgt = .5;
|
||||||
if (kctgt > 1.0) kctgt = 1.0;
|
if (kctgt > 1.0) kctgt = 1.0;
|
||||||
const float _w = rs->kcfilt;
|
const float _w = rs->kcfilt;
|
||||||
for (unsigned int i=0; i < n_samples; ++i) {
|
for (i=0; i < n_samples; ++i) {
|
||||||
rs->kcgain += _w * (kctgt - rs->kcgain);
|
rs->kcgain += _w * (kctgt - rs->kcgain);
|
||||||
left[i] *= rs->kcgain;
|
left[i] *= rs->kcgain;
|
||||||
right[i] *= rs->kcgain;
|
right[i] *= rs->kcgain;
|
||||||
|
|
@ -296,7 +299,8 @@ static void synth_fragment (void *synth, const size_t n_samples, float *left, fl
|
||||||
}
|
}
|
||||||
|
|
||||||
static void synth_reset_channel(RSSynthChannel* sc) {
|
static void synth_reset_channel(RSSynthChannel* sc) {
|
||||||
for (int k=0; k < 128; ++k) {
|
int k;
|
||||||
|
for (k=0; k < 128; ++k) {
|
||||||
sc->adsr_cnt[k] = 0;
|
sc->adsr_cnt[k] = 0;
|
||||||
sc->adsr_amp[k] = 0;
|
sc->adsr_amp[k] = 0;
|
||||||
sc->phase[k] = -10;
|
sc->phase[k] = -10;
|
||||||
|
|
@ -307,7 +311,8 @@ static void synth_reset_channel(RSSynthChannel* sc) {
|
||||||
|
|
||||||
static void synth_reset(void *synth) {
|
static void synth_reset(void *synth) {
|
||||||
RSSynthesizer* rs = (RSSynthesizer*)synth;
|
RSSynthesizer* rs = (RSSynthesizer*)synth;
|
||||||
for (int c=0; c < 16; ++c) {
|
int c;
|
||||||
|
for (c=0; c < 16; ++c) {
|
||||||
synth_reset_channel(&(rs->sc[c]));
|
synth_reset_channel(&(rs->sc[c]));
|
||||||
}
|
}
|
||||||
rs->kcgain = 0;
|
rs->kcgain = 0;
|
||||||
|
|
@ -332,31 +337,31 @@ static void synth_process_midi_event(void *synth, struct rmidi_event_t *ev) {
|
||||||
switch(ev->type) {
|
switch(ev->type) {
|
||||||
case NOTE_ON:
|
case NOTE_ON:
|
||||||
if (rs->sc[ev->channel].miditable[ev->d.tone.note] <= 0)
|
if (rs->sc[ev->channel].miditable[ev->d.tone.note] <= 0)
|
||||||
rs->sc[ev->channel].miditable[ev->d.tone.note] = ev->d.tone.velocity;
|
rs->sc[ev->channel].miditable[ev->d.tone.note] = ev->d.tone.velocity;
|
||||||
break;
|
break;
|
||||||
case NOTE_OFF:
|
case NOTE_OFF:
|
||||||
if (rs->sc[ev->channel].miditable[ev->d.tone.note] > 0)
|
if (rs->sc[ev->channel].miditable[ev->d.tone.note] > 0)
|
||||||
rs->sc[ev->channel].miditable[ev->d.tone.note] *= -1.0;
|
rs->sc[ev->channel].miditable[ev->d.tone.note] *= -1.0;
|
||||||
break;
|
break;
|
||||||
case PROGRAM_CHANGE:
|
case PROGRAM_CHANGE:
|
||||||
break;
|
break;
|
||||||
case CONTROL_CHANGE:
|
case CONTROL_CHANGE:
|
||||||
if (ev->d.control.param == 0x00 || ev->d.control.param == 0x20) {
|
if (ev->d.control.param == 0x00 || ev->d.control.param == 0x20) {
|
||||||
/* 0x00 and 0x20 are used for BANK select */
|
/* 0x00 and 0x20 are used for BANK select */
|
||||||
break;
|
break;
|
||||||
} else
|
} else
|
||||||
if (ev->d.control.param == 121) {
|
if (ev->d.control.param == 121) {
|
||||||
/* reset all controllers */
|
/* reset all controllers */
|
||||||
break;
|
break;
|
||||||
} else
|
} else
|
||||||
if (ev->d.control.param == 120 || ev->d.control.param == 123) {
|
if (ev->d.control.param == 120 || ev->d.control.param == 123) {
|
||||||
/* Midi panic: 120: all sound off, 123: all notes off*/
|
/* Midi panic: 120: all sound off, 123: all notes off*/
|
||||||
synth_reset_channel(&(rs->sc[ev->channel]));
|
synth_reset_channel(&(rs->sc[ev->channel]));
|
||||||
break;
|
break;
|
||||||
} else
|
} else
|
||||||
if (ev->d.control.param >= 120) {
|
if (ev->d.control.param >= 120) {
|
||||||
/* params 122-127 are reserved - skip them. */
|
/* params 122-127 are reserved - skip them. */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -407,7 +412,7 @@ static uint32_t synth_sound (void *synth, uint32_t written, const uint32_t nfram
|
||||||
* @param data 8bit midi message
|
* @param data 8bit midi message
|
||||||
* @param size number of bytes in the midi-message
|
* @param size number of bytes in the midi-message
|
||||||
*/
|
*/
|
||||||
static void synth_parse_midi(void *synth, uint8_t *data, size_t size) {
|
static void synth_parse_midi(void *synth, const uint8_t *data, const size_t size) {
|
||||||
if (size < 2 || size > 3) return;
|
if (size < 2 || size > 3) return;
|
||||||
// All messages need to be 3 bytes; except program-changes: 2bytes.
|
// All messages need to be 3 bytes; except program-changes: 2bytes.
|
||||||
if (size == 2 && (data[0] & 0xf0) != 0xC0) return;
|
if (size == 2 && (data[0] & 0xf0) != 0xC0) return;
|
||||||
|
|
@ -454,14 +459,15 @@ static void synth_init(void *synth, double rate) {
|
||||||
rs->rate = rate;
|
rs->rate = rate;
|
||||||
rs->boffset = BUFFER_SIZE_SAMPLES;
|
rs->boffset = BUFFER_SIZE_SAMPLES;
|
||||||
const float tuning = 440;
|
const float tuning = 440;
|
||||||
for (int k=0; k < 128; k++) {
|
int c,k;
|
||||||
|
for (k=0; k < 128; k++) {
|
||||||
rs->freqs[k] = (2.0 * tuning / 32.0f) * powf(2, (k - 9.0) / 12.0) / rate;
|
rs->freqs[k] = (2.0 * tuning / 32.0f) * powf(2, (k - 9.0) / 12.0) / rate;
|
||||||
assert(rs->freqs[k] < M_PI/2); // otherwise spatialization may phase out..
|
assert(rs->freqs[k] < M_PI/2); // otherwise spatialization may phase out..
|
||||||
}
|
}
|
||||||
rs->kcfilt = 12.0 / rate;
|
rs->kcfilt = 12.0 / rate;
|
||||||
synth_reset(synth);
|
synth_reset(synth);
|
||||||
|
|
||||||
for (int c=0; c < 16; c++) {
|
for (c=0; c < 16; c++) {
|
||||||
synth_load(&rs->sc[c], rate, &synthesize_sineP, &piano_adsr);
|
synth_load(&rs->sc[c], rate, &synthesize_sineP, &piano_adsr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -487,4 +493,4 @@ static void * synth_alloc(void) {
|
||||||
static void synth_free(void *synth) {
|
static void synth_free(void *synth) {
|
||||||
free(synth);
|
free(synth);
|
||||||
}
|
}
|
||||||
/* vi:set ts=8 sts=2 sw=2: */
|
/* vi:set ts=8 sts=2 sw=2 et: */
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,9 @@ def options(opt):
|
||||||
def configure(conf):
|
def configure(conf):
|
||||||
conf.load('compiler_c')
|
conf.load('compiler_c')
|
||||||
autowaf.configure(conf)
|
autowaf.configure(conf)
|
||||||
autowaf.set_c99_mode(conf)
|
|
||||||
if Options.options.lv2:
|
if Options.options.lv2:
|
||||||
autowaf.check_pkg(conf, 'lv2', atleast_version='1.4.0',
|
autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0',
|
||||||
uselib_store='LV2_1_4_0')
|
uselib_store='LV2_1_0_0')
|
||||||
|
|
||||||
def build(bld):
|
def build(bld):
|
||||||
bundle = 'reasonablesynth.lv2'
|
bundle = 'reasonablesynth.lv2'
|
||||||
|
|
@ -41,7 +40,7 @@ def build(bld):
|
||||||
name = 'reasonablesynth',
|
name = 'reasonablesynth',
|
||||||
target = '../../LV2/%s/reasonablesynth' % bundle,
|
target = '../../LV2/%s/reasonablesynth' % bundle,
|
||||||
install_path = '${LV2DIR}/%s' % bundle,
|
install_path = '${LV2DIR}/%s' % bundle,
|
||||||
use = 'LV2_1_4_0'
|
use = 'LV2_1_0_0'
|
||||||
)
|
)
|
||||||
obj.env.cshlib_PATTERN = module_pat
|
obj.env.cshlib_PATTERN = module_pat
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,16 @@ def options(opt):
|
||||||
autowaf.set_options(opt)
|
autowaf.set_options(opt)
|
||||||
|
|
||||||
def configure(conf):
|
def configure(conf):
|
||||||
conf.load('compiler_cxx')
|
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
autowaf.configure(conf)
|
autowaf.check_pkg(conf, 'rubberband', uselib_store='RUBBERBAND', atleast_version='1.0', mandatory=True)
|
||||||
|
else:
|
||||||
|
conf.load('compiler_cxx')
|
||||||
|
autowaf.configure(conf)
|
||||||
|
|
||||||
def build(bld):
|
def build(bld):
|
||||||
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
return
|
||||||
|
|
||||||
# Library
|
# Library
|
||||||
obj = bld(features = 'cxx cxxshlib')
|
obj = bld(features = 'cxx cxxshlib')
|
||||||
prefix = 'libs/rubberband/'
|
prefix = 'libs/rubberband/'
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,16 @@ def options(opt):
|
||||||
autowaf.set_options(opt)
|
autowaf.set_options(opt)
|
||||||
|
|
||||||
def configure(conf):
|
def configure(conf):
|
||||||
conf.load('compiler_cxx')
|
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
autowaf.configure(conf)
|
autowaf.check_pkg(conf, 'taglib', uselib_store='TAGLIB', atleast_version="1.4", mandatory=True)
|
||||||
|
else:
|
||||||
|
conf.load('compiler_cxx')
|
||||||
|
autowaf.configure(conf)
|
||||||
|
|
||||||
def build(bld):
|
def build(bld):
|
||||||
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
return
|
||||||
|
|
||||||
# Library
|
# Library
|
||||||
obj = bld(features = 'cxx cxxshlib')
|
obj = bld(features = 'cxx cxxshlib')
|
||||||
sources = bld.path.ant_glob('taglib/*.cpp')
|
sources = bld.path.ant_glob('taglib/*.cpp')
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
#ifndef _AMPLITUDE_FOLLOWER_PLUGIN_H_
|
#ifndef _AMPLITUDE_FOLLOWER_PLUGIN_H_
|
||||||
#define _AMPLITUDE_FOLLOWER_PLUGIN_H_
|
#define _AMPLITUDE_FOLLOWER_PLUGIN_H_
|
||||||
|
|
||||||
#include "vamp-sdk/Plugin.h"
|
#include <vamp-sdk/Plugin.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Example plugin implementing the SuperCollider amplitude follower
|
* Example plugin implementing the SuperCollider amplitude follower
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
#ifndef _ONSET_PLUGIN_H_
|
#ifndef _ONSET_PLUGIN_H_
|
||||||
#define _ONSET_PLUGIN_H_
|
#define _ONSET_PLUGIN_H_
|
||||||
|
|
||||||
#include "vamp-sdk/Plugin.h"
|
#include <vamp-sdk/Plugin.h>
|
||||||
#include <aubio/aubio.h>
|
#include <aubio/aubio.h>
|
||||||
|
|
||||||
class Onset : public Vamp::Plugin
|
class Onset : public Vamp::Plugin
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
#ifndef _ONSET_DETECT_PLUGIN_H_
|
#ifndef _ONSET_DETECT_PLUGIN_H_
|
||||||
#define _ONSET_DETECT_PLUGIN_H_
|
#define _ONSET_DETECT_PLUGIN_H_
|
||||||
|
|
||||||
#include "vamp-sdk/Plugin.h"
|
#include <vamp-sdk/Plugin.h>
|
||||||
|
|
||||||
class OnsetDetectorData;
|
class OnsetDetectorData;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
#ifndef _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
|
#ifndef _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
|
||||||
#define _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
|
#define _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
|
||||||
|
|
||||||
#include "vamp-sdk/Plugin.h"
|
#include <vamp-sdk/Plugin.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Example plugin that detects percussive events.
|
* Example plugin that detects percussive events.
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
#ifndef _SPECTRAL_CENTROID_PLUGIN_H_
|
#ifndef _SPECTRAL_CENTROID_PLUGIN_H_
|
||||||
#define _SPECTRAL_CENTROID_PLUGIN_H_
|
#define _SPECTRAL_CENTROID_PLUGIN_H_
|
||||||
|
|
||||||
#include "vamp-sdk/Plugin.h"
|
#include <vamp-sdk/Plugin.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Example plugin that calculates the centre of gravity of the
|
* Example plugin that calculates the centre of gravity of the
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
#ifndef _ZERO_CROSSING_PLUGIN_H_
|
#ifndef _ZERO_CROSSING_PLUGIN_H_
|
||||||
#define _ZERO_CROSSING_PLUGIN_H_
|
#define _ZERO_CROSSING_PLUGIN_H_
|
||||||
|
|
||||||
#include "vamp-sdk/Plugin.h"
|
#include <vamp-sdk/Plugin.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Example plugin that calculates the positions and density of
|
* Example plugin that calculates the positions and density of
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,8 @@
|
||||||
#include "libvampplugins-config.h"
|
#include "libvampplugins-config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "vamp/vamp.h"
|
#include <vamp/vamp.h>
|
||||||
#include "vamp-sdk/PluginAdapter.h"
|
#include <vamp-sdk/PluginAdapter.h>
|
||||||
|
|
||||||
#include "ZeroCrossing.h"
|
#include "ZeroCrossing.h"
|
||||||
#include "SpectralCentroid.h"
|
#include "SpectralCentroid.h"
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,19 @@ def options(opt):
|
||||||
autowaf.set_options(opt)
|
autowaf.set_options(opt)
|
||||||
|
|
||||||
def configure(conf):
|
def configure(conf):
|
||||||
conf.load('compiler_cxx')
|
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
autowaf.configure(conf)
|
autowaf.check_pkg(conf, 'vamp-sdk', uselib_store='VAMPSDK', mandatory=True)
|
||||||
autowaf.check_pkg(conf, 'fftw3', uselib_store='FFTW3', mandatory=True)
|
autowaf.check_pkg(conf, 'vamp-hostsdk', uselib_store='VAMPHOSTSDK', mandatory=True)
|
||||||
autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True)
|
else:
|
||||||
conf.env.append_value('CXXFLAGS', '-DHAVE_FFTW3')
|
conf.load('compiler_cxx')
|
||||||
|
autowaf.configure(conf)
|
||||||
|
autowaf.check_pkg(conf, 'fftw3', uselib_store='FFTW3', mandatory=True)
|
||||||
|
autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True)
|
||||||
|
conf.env.append_value('CXXFLAGS', '-DHAVE_FFTW3')
|
||||||
|
|
||||||
def build(bld):
|
def build(bld):
|
||||||
|
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
return
|
||||||
# Host Library
|
# Host Library
|
||||||
obj = bld(features = 'cxx cxxshlib')
|
obj = bld(features = 'cxx cxxshlib')
|
||||||
obj.source = '''
|
obj.source = '''
|
||||||
|
|
|
||||||
14
tools/nofuzz.sh
Executable file
14
tools/nofuzz.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
## this script should be run from the top-level source dir
|
||||||
|
## it remove all fuzzy and obsolte translations and wraps
|
||||||
|
## long lines.
|
||||||
|
##
|
||||||
|
## update .po and .pot files:
|
||||||
|
./waf i18n_pot
|
||||||
|
|
||||||
|
TEMPFILE=`mktemp`
|
||||||
|
for file in `git ls-files | grep -e '.po$'`; do
|
||||||
|
cp $file $TEMPFILE
|
||||||
|
msgattrib -o $file --no-fuzzy --no-obsolete $TEMPFILE
|
||||||
|
done
|
||||||
|
rm $TEMPFILE
|
||||||
40
wscript
40
wscript
|
|
@ -304,13 +304,22 @@ def set_compiler_flags (conf,opt):
|
||||||
# prepend boiler plate optimization flags that work on all architectures
|
# prepend boiler plate optimization flags that work on all architectures
|
||||||
#
|
#
|
||||||
|
|
||||||
optimization_flags[:0] = [
|
optimization_flags[:0] = ["-pipe"]
|
||||||
"-O3",
|
|
||||||
"-fomit-frame-pointer",
|
# don't prepend optimization flags if "-O<something>" is present
|
||||||
"-ffast-math",
|
prepend_opt_flags = True
|
||||||
"-fstrength-reduce",
|
for flag in optimization_flags:
|
||||||
"-pipe"
|
if flag.startswith("-O"):
|
||||||
]
|
prepend_opt_flags = False
|
||||||
|
break
|
||||||
|
|
||||||
|
if prepend_opt_flags:
|
||||||
|
optimization_flags[:0] = [
|
||||||
|
"-O3",
|
||||||
|
"-fomit-frame-pointer",
|
||||||
|
"-ffast-math",
|
||||||
|
"-fstrength-reduce"
|
||||||
|
]
|
||||||
|
|
||||||
if opt.debug:
|
if opt.debug:
|
||||||
conf.env.append_value('CFLAGS', debug_flags)
|
conf.env.append_value('CFLAGS', debug_flags)
|
||||||
|
|
@ -431,6 +440,8 @@ def options(opt):
|
||||||
help='Build internal libs as shared libraries')
|
help='Build internal libs as shared libraries')
|
||||||
opt.add_option('--internal-static-libs', action='store_false', dest='internal_shared_libs',
|
opt.add_option('--internal-static-libs', action='store_false', dest='internal_shared_libs',
|
||||||
help='Build internal libs as static libraries')
|
help='Build internal libs as static libraries')
|
||||||
|
opt.add_option('--use-external-libs', action='store_true', default=False, dest='use_external_libs',
|
||||||
|
help='Use external/system versions of some bundled libraries')
|
||||||
opt.add_option('--lv2', action='store_true', default=True, dest='lv2',
|
opt.add_option('--lv2', action='store_true', default=True, dest='lv2',
|
||||||
help='Compile with support for LV2 (if Lilv+Suil is available)')
|
help='Compile with support for LV2 (if Lilv+Suil is available)')
|
||||||
opt.add_option('--no-lv2', action='store_false', dest='lv2',
|
opt.add_option('--no-lv2', action='store_false', dest='lv2',
|
||||||
|
|
@ -603,6 +614,9 @@ def configure(conf):
|
||||||
if Options.options.internal_shared_libs:
|
if Options.options.internal_shared_libs:
|
||||||
conf.define('INTERNAL_SHARED_LIBS', 1)
|
conf.define('INTERNAL_SHARED_LIBS', 1)
|
||||||
|
|
||||||
|
if Options.options.use_external_libs:
|
||||||
|
conf.define('USE_EXTERNAL_LIBS', 1)
|
||||||
|
|
||||||
if Options.options.boost_include != '':
|
if Options.options.boost_include != '':
|
||||||
conf.env.append_value('CXXFLAGS', '-I' + Options.options.boost_include)
|
conf.env.append_value('CXXFLAGS', '-I' + Options.options.boost_include)
|
||||||
|
|
||||||
|
|
@ -703,6 +717,7 @@ const char* const ardour_config_info = "\\n\\
|
||||||
write_config_text('Install prefix', conf.env['PREFIX'])
|
write_config_text('Install prefix', conf.env['PREFIX'])
|
||||||
write_config_text('Strict compiler flags', conf.env['STRICT'])
|
write_config_text('Strict compiler flags', conf.env['STRICT'])
|
||||||
write_config_text('Internal Shared Libraries', conf.is_defined('INTERNAL_SHARED_LIBS'))
|
write_config_text('Internal Shared Libraries', conf.is_defined('INTERNAL_SHARED_LIBS'))
|
||||||
|
write_config_text('Use External Libraries', conf.is_defined('USE_EXTERNAL_LIBS'))
|
||||||
|
|
||||||
write_config_text('Architecture flags', opts.arch)
|
write_config_text('Architecture flags', opts.arch)
|
||||||
write_config_text('Aubio', conf.is_defined('HAVE_AUBIO'))
|
write_config_text('Aubio', conf.is_defined('HAVE_AUBIO'))
|
||||||
|
|
@ -748,14 +763,17 @@ def build(bld):
|
||||||
# add directories that contain only headers, to workaround an issue with waf
|
# add directories that contain only headers, to workaround an issue with waf
|
||||||
|
|
||||||
bld.path.find_dir ('libs/evoral/evoral')
|
bld.path.find_dir ('libs/evoral/evoral')
|
||||||
bld.path.find_dir ('libs/vamp-sdk/vamp-sdk')
|
if not bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
bld.path.find_dir ('libs/vamp-sdk/vamp-sdk')
|
||||||
bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol')
|
bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol')
|
||||||
bld.path.find_dir ('libs/timecode/timecode')
|
bld.path.find_dir ('libs/timecode/timecode')
|
||||||
bld.path.find_dir ('libs/libltc/ltc')
|
if not bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
bld.path.find_dir ('libs/rubberband/rubberband')
|
bld.path.find_dir ('libs/libltc/ltc')
|
||||||
|
bld.path.find_dir ('libs/rubberband/rubberband')
|
||||||
bld.path.find_dir ('libs/gtkmm2ext/gtkmm2ext')
|
bld.path.find_dir ('libs/gtkmm2ext/gtkmm2ext')
|
||||||
bld.path.find_dir ('libs/ardour/ardour')
|
bld.path.find_dir ('libs/ardour/ardour')
|
||||||
bld.path.find_dir ('libs/taglib/taglib')
|
if not bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||||
|
bld.path.find_dir ('libs/taglib/taglib')
|
||||||
bld.path.find_dir ('libs/pbd/pbd')
|
bld.path.find_dir ('libs/pbd/pbd')
|
||||||
|
|
||||||
autowaf.set_recursive()
|
autowaf.set_recursive()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue