fix merge with master
This commit is contained in:
commit
ea1ccb869a
|
@ -722,7 +722,7 @@ int
|
|||
ARDOUR_UI::starting ()
|
||||
{
|
||||
Application* app = Application::instance ();
|
||||
char *nsm_url;
|
||||
const char *nsm_url;
|
||||
bool brand_new_user = ArdourStartup::required ();
|
||||
|
||||
app->ShouldQuit.connect (sigc::mem_fun (*this, &ARDOUR_UI::queue_finish));
|
||||
|
@ -734,9 +734,17 @@ ARDOUR_UI::starting ()
|
|||
|
||||
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;
|
||||
if (!nsm->init (nsm_url)) {
|
||||
nsm->announce (PROGRAM_NAME, ":dirty:", "ardour3");
|
||||
|
@ -746,19 +754,33 @@ ARDOUR_UI::starting ()
|
|||
for ( i = 0; i < 5000; ++i) {
|
||||
nsm->check ();
|
||||
usleep (i);
|
||||
if (nsm->is_active())
|
||||
if (nsm->is_active()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == 5000) {
|
||||
error << _("NSM server did not announce itself") << endmsg;
|
||||
return -1;
|
||||
}
|
||||
// wait for open command from nsm server
|
||||
for ( i = 0; i < 5000; ++i) {
|
||||
nsm->check ();
|
||||
usleep (1000);
|
||||
if (nsm->client_id ())
|
||||
if (nsm->client_id ()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == 5000) {
|
||||
error << _("NSM: no client ID provided") << endmsg;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (_session && nsm) {
|
||||
_session->set_nsm_state( nsm->is_active() );
|
||||
} else {
|
||||
error << _("NSM: no session created") << endmsg;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// nsm requires these actions disabled
|
||||
|
@ -777,10 +799,11 @@ ARDOUR_UI::starting ()
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
delete nsm;
|
||||
nsm = 0;
|
||||
error << _("NSM: initialization failed") << endmsg;
|
||||
return -1;
|
||||
}
|
||||
|
||||
} 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 */
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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
|
||||
ARDOUR_UI::add_route (Gtk::Window* float_window)
|
||||
{
|
||||
|
@ -3241,6 +3305,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
|||
}
|
||||
|
||||
if (float_window) {
|
||||
add_route_dialog->unset_transient_for ();
|
||||
add_route_dialog->set_transient_for (*float_window);
|
||||
}
|
||||
|
||||
|
@ -3260,6 +3325,8 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
|
|||
return;
|
||||
}
|
||||
|
||||
setup_order_hint();
|
||||
|
||||
PBD::ScopedConnection idle_connection;
|
||||
|
||||
if (count > 8) {
|
||||
|
|
|
@ -581,6 +581,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
|||
|
||||
void snapshot_session (bool switch_to_it);
|
||||
void rename_session ();
|
||||
void setup_order_hint ();
|
||||
|
||||
Mixer_UI *mixer;
|
||||
int create_mixer ();
|
||||
|
|
|
@ -335,7 +335,7 @@ ARDOUR_UI::goto_mixer_window ()
|
|||
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"));
|
||||
msg.run ();
|
||||
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_2 (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_release_dispatch (GdkEventButton*);
|
||||
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_remove ();
|
||||
void marker_menu_rename ();
|
||||
void rename_marker (Marker *marker);
|
||||
void toggle_marker_menu_lock ();
|
||||
void toggle_marker_menu_glue ();
|
||||
void marker_menu_hide ();
|
||||
|
|
|
@ -1340,12 +1340,23 @@ Editor::marker_menu_rename ()
|
|||
/*NOTREACHED*/
|
||||
}
|
||||
|
||||
|
||||
rename_marker (marker);
|
||||
}
|
||||
|
||||
void
|
||||
Editor::rename_marker(Marker *marker)
|
||||
{
|
||||
Location* loc;
|
||||
bool 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);
|
||||
string txt;
|
||||
|
@ -1380,6 +1391,7 @@ Editor::marker_menu_rename ()
|
|||
|
||||
dialog.get_result(txt);
|
||||
loc->set_name (txt);
|
||||
_session->set_dirty ();
|
||||
|
||||
XMLNode &after = _session->locations()->get_state();
|
||||
_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();
|
||||
}
|
||||
|
||||
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"));
|
||||
msg.run ();
|
||||
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_2BUTTON_PRESS) {
|
||||
gdk_pointer_ungrab (GDK_CURRENT_TIME);
|
||||
return button_double_click_handler (item, event, item_type);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1422,6 +1426,52 @@ Editor::button_release_dispatch (GdkEventButton* ev)
|
|||
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
|
||||
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;
|
||||
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);
|
||||
|
||||
return op (mrv.midi_region()->model(), pos_beats, v);
|
||||
|
|
|
@ -599,9 +599,24 @@ EditorRoutes::active_changed (std::string const & path)
|
|||
void
|
||||
EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
|
||||
{
|
||||
TreeModel::Row row;
|
||||
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 ();
|
||||
|
||||
_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());
|
||||
|
||||
row = *(_model->append ());
|
||||
TreeModel::Row row = *(_model->insert (insert_iter));
|
||||
|
||||
row[_columns.text] = (*x)->route()->name();
|
||||
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.name_editable] = true;
|
||||
|
||||
if (!from_scratch) {
|
||||
_editor->selection->add(*x);
|
||||
}
|
||||
|
||||
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());
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
#include "ardour/stretch.h"
|
||||
|
||||
#ifdef USE_RUBBERBAND
|
||||
#include "rubberband/RubberBandStretcher.h"
|
||||
#include <rubberband/RubberBandStretcher.h>
|
||||
using namespace RubberBand;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -313,6 +313,22 @@ Mixer_UI::hide_window (GdkEventAny *ev)
|
|||
void
|
||||
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;
|
||||
|
||||
try {
|
||||
|
@ -359,11 +375,15 @@ Mixer_UI::add_strips (RouteList& routes)
|
|||
|
||||
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.visible] = strip->route()->is_master() ? true : strip->marked_for_display();
|
||||
row[track_columns.route] = route;
|
||||
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());
|
||||
|
||||
|
|
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>"
|
||||
msgstr ""
|
||||
"<span weight=\"bold\">Stellen Sie Ihre Hardwarelautstärke auf einen sehr "
|
||||
"niedrigen "
|
||||
"Pegel ein.</span>"
|
||||
"niedrigen Pegel ein.</span>"
|
||||
|
||||
#: engine_dialog.cc:142
|
||||
msgid ""
|
||||
|
@ -12801,367 +12800,3 @@ msgstr ""
|
|||
"#export nach.\n"
|
||||
"\n"
|
||||
"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"
|
||||
msgstr ""
|
||||
|
||||
#: ardour_ui.cc:200
|
||||
#, fuzzy
|
||||
msgid "MIDI Connections"
|
||||
msgstr "Channel Colours"
|
||||
|
||||
#: ardour_ui.cc:202
|
||||
msgid "Errors"
|
||||
msgstr ""
|
||||
|
@ -3635,16 +3630,6 @@ msgstr ""
|
|||
msgid "Snap to Minutes"
|
||||
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
|
||||
msgid "Snap to Thirty Seconds"
|
||||
msgstr "Snap to demisemiquavers"
|
||||
|
@ -4611,36 +4596,6 @@ msgstr ""
|
|||
msgid "insert region"
|
||||
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
|
||||
msgid "lower regions to bottom"
|
||||
msgstr ""
|
||||
|
@ -6505,11 +6460,6 @@ msgstr "could not initialise %1."
|
|||
msgid "Cannot xinstall SIGPIPE error handler"
|
||||
msgstr ""
|
||||
|
||||
#: main.cc:528
|
||||
#, fuzzy
|
||||
msgid "could not create %1 GUI"
|
||||
msgstr "could not initialise %1."
|
||||
|
||||
#: main_clock.cc:51
|
||||
msgid "Display delta to edit cursor"
|
||||
msgstr ""
|
||||
|
@ -6532,11 +6482,6 @@ msgstr ""
|
|||
msgid "Force"
|
||||
msgstr ""
|
||||
|
||||
#: midi_channel_selector.cc:330 midi_channel_selector.cc:372
|
||||
#, fuzzy
|
||||
msgid "MIDI Channel Control"
|
||||
msgstr "Channel Colours"
|
||||
|
||||
#: midi_channel_selector.cc:332
|
||||
msgid "Playback all channels"
|
||||
msgstr ""
|
||||
|
@ -6625,26 +6570,6 @@ msgstr ""
|
|||
msgid "Triplet"
|
||||
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
|
||||
msgid "Sixty-fourth"
|
||||
msgstr ""
|
||||
|
@ -6673,11 +6598,6 @@ msgstr ""
|
|||
msgid "edit note velocity"
|
||||
msgstr ""
|
||||
|
||||
#: midi_list_editor.cc:258
|
||||
#, fuzzy
|
||||
msgid "edit note length"
|
||||
msgstr "Set note length to a minim"
|
||||
|
||||
#: midi_list_editor.cc:460
|
||||
msgid "insert new note"
|
||||
msgstr ""
|
||||
|
@ -6794,11 +6714,6 @@ msgstr ""
|
|||
msgid "Program "
|
||||
msgstr ""
|
||||
|
||||
#: midi_region_view.cc:3132
|
||||
#, fuzzy
|
||||
msgid "Channel "
|
||||
msgstr "Channel Colours"
|
||||
|
||||
#: midi_region_view.cc:3301 midi_region_view.cc:3303
|
||||
msgid "paste"
|
||||
msgstr ""
|
||||
|
@ -6843,11 +6758,6 @@ msgstr ""
|
|||
msgid "Note Mode"
|
||||
msgstr ""
|
||||
|
||||
#: midi_time_axis.cc:497
|
||||
#, fuzzy
|
||||
msgid "Channel Selector"
|
||||
msgstr "Channel Colours"
|
||||
|
||||
#: midi_time_axis.cc:502
|
||||
msgid "Color Mode"
|
||||
msgstr "Colour Mode"
|
||||
|
@ -11473,47 +11383,11 @@ msgstr ""
|
|||
msgid "Edit Tempo"
|
||||
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:287
|
||||
msgid "third"
|
||||
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:297
|
||||
msgid "sixty-fourth"
|
||||
|
@ -11855,11 +11729,6 @@ msgstr ""
|
|||
msgid "Abort"
|
||||
msgstr ""
|
||||
|
||||
#: transcode_video_dialog.cc:63
|
||||
#, fuzzy
|
||||
msgid "Height = "
|
||||
msgstr "quaver (8)"
|
||||
|
||||
#: transcode_video_dialog.cc:66
|
||||
msgid "Manual Override"
|
||||
msgstr ""
|
||||
|
@ -12049,11 +11918,6 @@ msgstr ""
|
|||
msgid "Set Aspect Ratio:"
|
||||
msgstr ""
|
||||
|
||||
#: export_video_dialog.cc:80
|
||||
#, fuzzy
|
||||
msgid "Normalize Audio"
|
||||
msgstr "Normalise to:"
|
||||
|
||||
#: export_video_dialog.cc:81
|
||||
msgid "2 Pass Encoding"
|
||||
msgstr ""
|
||||
|
@ -12145,11 +12009,6 @@ msgstr ""
|
|||
msgid "Audio Samplerate:"
|
||||
msgstr ""
|
||||
|
||||
#: export_video_dialog.cc:387
|
||||
#, fuzzy
|
||||
msgid "Normalizing audio"
|
||||
msgstr "Normalise values"
|
||||
|
||||
#: export_video_dialog.cc:391
|
||||
msgid "Exporting audio"
|
||||
msgstr ""
|
||||
|
@ -12212,9 +12071,3 @@ msgid ""
|
|||
"\n"
|
||||
"Open Manual in Browser? "
|
||||
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"
|
||||
|
||||
#ifdef USE_RUBBERBAND
|
||||
#include "rubberband/RubberBandStretcher.h"
|
||||
#include <rubberband/RubberBandStretcher.h>
|
||||
using namespace RubberBand;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -264,6 +264,8 @@ def configure(conf):
|
|||
|
||||
# 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',
|
||||
atleast_version='1.2.1')
|
||||
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.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',
|
||||
'libmidipp',
|
||||
'libtaglib',
|
||||
'libardour',
|
||||
'ardour',
|
||||
'libardour_cp',
|
||||
'libgtkmm2ext',
|
||||
'libtaglib',
|
||||
'libcanvas'
|
||||
]
|
||||
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||
obj.uselib += ' TAGLIB'
|
||||
else:
|
||||
obj.use.append('libtaglib')
|
||||
if sys.platform == 'darwin':
|
||||
obj.uselib += ' AUDIOUNITS OSX GTKOSX'
|
||||
obj.use += ' libappleutility'
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <ostream>
|
||||
#include <fstream>
|
||||
#include <boost/utility.hpp>
|
||||
#include "vamp-sdk/Plugin.h"
|
||||
#include <vamp-sdk/Plugin.h>
|
||||
#include "ardour/types.h"
|
||||
|
||||
namespace ARDOUR {
|
||||
|
|
|
@ -23,9 +23,9 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include "taglib/tag.h"
|
||||
#include "taglib/taglib.h"
|
||||
#include "taglib/xiphcomment.h"
|
||||
#include <taglib/tag.h>
|
||||
#include <taglib/taglib.h>
|
||||
#include <taglib/xiphcomment.h>
|
||||
|
||||
namespace ARDOUR
|
||||
{
|
||||
|
|
|
@ -51,8 +51,6 @@ class MidiControlUI : public AbstractUI<MidiUIRequest>
|
|||
|
||||
static MidiControlUI* instance() { return _instance; }
|
||||
|
||||
static BaseUI::RequestType PortChange;
|
||||
|
||||
void change_midi_ports ();
|
||||
|
||||
protected:
|
||||
|
@ -63,7 +61,6 @@ class MidiControlUI : public AbstractUI<MidiUIRequest>
|
|||
typedef std::list<GSource*> PortSources;
|
||||
PortSources port_sources;
|
||||
ARDOUR::Session& _session;
|
||||
PBD::ScopedConnection rebind_connection;
|
||||
|
||||
bool midi_input_handler (Glib::IOCondition, AsyncMIDIPort*);
|
||||
void reset_ports ();
|
||||
|
|
|
@ -96,12 +96,23 @@ class Plugin : public PBD::StatefulDestructible, public Latent
|
|||
|
||||
struct ParameterDescriptor {
|
||||
|
||||
/* XXX: it would probably be nice if this initialised everything */
|
||||
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 toggled;
|
||||
|
@ -116,7 +127,7 @@ class Plugin : public PBD::StatefulDestructible, public Latent
|
|||
bool min_unbound;
|
||||
bool max_unbound;
|
||||
bool enumeration;
|
||||
bool midinote;
|
||||
bool midinote; ///< only used if integer_step is also true
|
||||
};
|
||||
|
||||
XMLNode& get_state ();
|
||||
|
|
|
@ -117,10 +117,11 @@ class PortEngine {
|
|||
* does not exist, return an empty string.
|
||||
*/
|
||||
virtual std::string get_port_name (PortHandle) const = 0;
|
||||
|
||||
/** 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
|
||||
* specified values, place the names of each port into @param ports,
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
|
||||
#include <glibmm/threads.h>
|
||||
|
||||
#include <ltc.h>
|
||||
|
||||
#include "pbd/error.h"
|
||||
#include "pbd/event_loop.h"
|
||||
#include "pbd/rcu.h"
|
||||
|
@ -48,7 +50,6 @@
|
|||
#include "midi++/types.h"
|
||||
|
||||
#include "timecode/time.h"
|
||||
#include "ltc/ltc.h"
|
||||
|
||||
#include "ardour/ardour.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);
|
||||
};
|
||||
|
||||
void set_order_hint (uint32_t order_hint) {_order_hint = order_hint;};
|
||||
void notify_remote_id_change ();
|
||||
void sync_order_keys ();
|
||||
|
||||
|
@ -1594,6 +1596,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
|
|||
GraphEdges _current_route_graph;
|
||||
|
||||
uint32_t next_control_id () const;
|
||||
uint32_t _order_hint;
|
||||
bool ignore_route_processor_changes;
|
||||
|
||||
MidiClockTicker* midi_clock;
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
#include <glibmm/threads.h>
|
||||
|
||||
#include <jack/jack.h>
|
||||
#include <ltc.h>
|
||||
|
||||
#include "pbd/signals.h"
|
||||
|
||||
#include "timecode/time.h"
|
||||
#include "ltc/ltc.h"
|
||||
|
||||
#include "ardour/types.h"
|
||||
#include "midi++/parser.h"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#include <cstring>
|
||||
|
||||
#include "vamp-hostsdk/PluginLoader.h"
|
||||
#include <vamp-hostsdk/PluginLoader.h>
|
||||
|
||||
#include <glibmm/miscutils.h>
|
||||
#include <glibmm/fileutils.h>
|
||||
|
|
|
@ -1065,8 +1065,8 @@ AudioEngine::start_latency_detection ()
|
|||
|
||||
/* find the ports we will connect to */
|
||||
|
||||
PortEngine::PortHandle* out = pe.get_port_by_name (_latency_output_name);
|
||||
PortEngine::PortHandle* in = pe.get_port_by_name (_latency_input_name);
|
||||
PortEngine::PortHandle out = pe.get_port_by_name (_latency_output_name);
|
||||
PortEngine::PortHandle in = pe.get_port_by_name (_latency_input_name);
|
||||
|
||||
if (!out || !in) {
|
||||
stop (true);
|
||||
|
|
|
@ -24,12 +24,12 @@
|
|||
|
||||
#include "pbd/convert.h"
|
||||
|
||||
#include "taglib/fileref.h"
|
||||
#include "taglib/flacfile.h"
|
||||
#include "taglib/oggfile.h"
|
||||
#include "taglib/tag.h"
|
||||
#include "taglib/taglib.h"
|
||||
#include "taglib/xiphcomment.h"
|
||||
#include <taglib/fileref.h>
|
||||
#include <taglib/flacfile.h>
|
||||
#include <taglib/oggfile.h>
|
||||
#include <taglib/tag.h>
|
||||
#include <taglib/taglib.h>
|
||||
#include <taglib/xiphcomment.h>
|
||||
|
||||
/* Convert string to TagLib::String */
|
||||
#define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8)
|
||||
|
|
|
@ -39,7 +39,6 @@ using namespace Glib;
|
|||
|
||||
#include "i18n.h"
|
||||
|
||||
BaseUI::RequestType MidiControlUI::PortChange = BaseUI::new_request_type();
|
||||
MidiControlUI* MidiControlUI::_instance = 0;
|
||||
|
||||
#include "pbd/abstract_ui.cc" /* instantiate the template */
|
||||
|
@ -60,24 +59,7 @@ MidiControlUI::~MidiControlUI ()
|
|||
void
|
||||
MidiControlUI::do_request (MidiUIRequest* req)
|
||||
{
|
||||
if (req->type == PortChange) {
|
||||
|
||||
/* 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) {
|
||||
|
||||
if (req->type == Quit) {
|
||||
BaseUI::quit ();
|
||||
}
|
||||
}
|
||||
|
@ -117,23 +99,37 @@ MidiControlUI::clear_ports ()
|
|||
void
|
||||
MidiControlUI::reset_ports ()
|
||||
{
|
||||
if (port_sources.empty()) {
|
||||
AsyncMIDIPort* async = dynamic_cast<AsyncMIDIPort*> (_session.midi_input_port());
|
||||
if (!port_sources.empty()) {
|
||||
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) {
|
||||
return;
|
||||
}
|
||||
|
||||
int fd;
|
||||
|
||||
if ((fd = async->selectable ()) >= 0) {
|
||||
if ((fd = (*pi)->selectable ()) >= 0) {
|
||||
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());
|
||||
|
||||
|
||||
// glibmm hack: for now, store only the GSource*
|
||||
|
||||
|
||||
port_sources.push_back (psrc->gobj());
|
||||
g_source_ref (psrc->gobj());
|
||||
}
|
||||
|
|
|
@ -68,11 +68,11 @@ MidiPortManager::create_ports ()
|
|||
return;
|
||||
}
|
||||
|
||||
_midi_in = AudioEngine::instance()->register_input_port (DataType::MIDI, _("MIDI control in"), true);
|
||||
_midi_out = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MIDI control out"), true);
|
||||
_midi_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MIDI control in"), 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_out = AudioEngine::instance()->register_output_port (DataType::MIDI, _("MMC out"), true);
|
||||
_mmc_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MMC in"), true);
|
||||
_mmc_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MMC out"), true);
|
||||
|
||||
/* XXX nasty type conversion needed because of the mixed inheritance
|
||||
* required to integrate MIDI::IPMidiPort and ARDOUR::AsyncMIDIPort.
|
||||
|
@ -93,14 +93,14 @@ MidiPortManager::create_ports ()
|
|||
|
||||
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);
|
||||
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);
|
||||
|
||||
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);
|
||||
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);
|
||||
|
||||
/* 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 ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: Edgar Aichinger <edogawa@aon.at>\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
|
||||
#: midi_playlist_source.cc:144 midi_playlist_source.cc:152
|
||||
#: 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
|
||||
msgid "programming error: %1"
|
||||
msgstr "Programmierfehler: %1"
|
||||
|
@ -206,19 +206,19 @@ msgstr "kann VAMP-Plugin \"%1\" nicht laden"
|
|||
msgid "VAMP Plugin \"%1\" could not be loaded"
|
||||
msgstr "VAMP-Plugin \"%1\" konnte nicht geladen werden"
|
||||
|
||||
#: audioengine.cc:489
|
||||
#: audioengine.cc:488
|
||||
msgid "looking for backends in %1\n"
|
||||
msgstr "Suche nach Backends in %1\n"
|
||||
|
||||
#: audioengine.cc:512
|
||||
#: audioengine.cc:511
|
||||
msgid "AudioEngine: cannot load module \"%1\" (%2)"
|
||||
msgstr "AudioEngine: kann Modul \"%1\" nicht laden (%2)"
|
||||
|
||||
#: audioengine.cc:518
|
||||
#: audioengine.cc:517
|
||||
msgid "AudioEngine: backend at \"%1\" has no descriptor function."
|
||||
msgstr "AudioEngine: Backend an \"%1\" hat keine Beschreibungsfunktion."
|
||||
|
||||
#: audioengine.cc:580
|
||||
#: audioengine.cc:589
|
||||
msgid "Could not create backend for %1: %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 ""
|
||||
"AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 (%5)"
|
||||
msgstr ""
|
||||
"AudioSource[%1]: peak read - kann %2 Samples bei Offset %3 von %4 nicht "
|
||||
"lesen(%5)"
|
||||
"AudioSource[%1]: peak read - kann %2 Samples bei Offset %3 von %4 nicht lesen"
|
||||
"(%5)"
|
||||
|
||||
#: audiosource.cc:667
|
||||
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"
|
||||
msgstr "Audio"
|
||||
|
||||
#: data_type.cc:28 session.cc:1781 session.cc:1784
|
||||
#: data_type.cc:28 session.cc:1790 session.cc:1793
|
||||
msgid "MIDI"
|
||||
msgstr "MIDI"
|
||||
|
||||
|
@ -538,7 +538,7 @@ msgstr "Dreieck"
|
|||
msgid "Rectangular"
|
||||
msgstr "Rechteck"
|
||||
|
||||
#: export_formats.cc:52 session.cc:5002 session.cc:5018
|
||||
#: export_formats.cc:52 session.cc:5008 session.cc:5024
|
||||
msgid "None"
|
||||
msgstr "Kein"
|
||||
|
||||
|
@ -652,7 +652,7 @@ msgstr ""
|
|||
"% unterstützt nur %2 Kanäle, in Ihrer Kanalkonfiguration befinden sich "
|
||||
"jedoch %3 Kanäle"
|
||||
|
||||
#: file_source.cc:198 session_state.cc:2813
|
||||
#: file_source.cc:198 session_state.cc:2807
|
||||
msgid ""
|
||||
"there are already 1000 files with names like %1; versioning discontinued"
|
||||
msgstr ""
|
||||
|
@ -910,15 +910,15 @@ msgstr "%s in"
|
|||
msgid "%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"
|
||||
msgstr "Mono"
|
||||
|
||||
#: io.cc:1537 session.cc:689 session.cc:719
|
||||
#: io.cc:1537 session.cc:698 session.cc:728
|
||||
msgid "L"
|
||||
msgstr "L"
|
||||
|
||||
#: io.cc:1537 session.cc:691 session.cc:721
|
||||
#: io.cc:1537 session.cc:700 session.cc:730
|
||||
msgid "R"
|
||||
msgstr "R"
|
||||
|
||||
|
@ -1019,7 +1019,7 @@ msgstr ""
|
|||
msgid "incorrect XML mode passed to Locations::set_state"
|
||||
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"
|
||||
msgstr "Projekt"
|
||||
|
||||
|
@ -1166,38 +1166,6 @@ msgstr "Fehlende Eigenschaft \"state\" bei AutomationState"
|
|||
msgid "MIDI stretch created non-MIDI source"
|
||||
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
|
||||
msgid "monitor dim"
|
||||
msgstr "Monitor dämpfen"
|
||||
|
@ -1582,28 +1550,32 @@ msgstr "Import: Fehler in src_new() : %1"
|
|||
msgid "return %1"
|
||||
msgstr "Rückgabewert: %1"
|
||||
|
||||
#: route.cc:1105 route.cc:2581
|
||||
#: route.cc:1075 route.cc:2528
|
||||
msgid "unknown Processor type \"%1\"; ignored"
|
||||
msgstr "unbekannter Prozessortyp \"%1\"; ignoriert"
|
||||
|
||||
#: route.cc:1117
|
||||
#: route.cc:1087
|
||||
msgid "processor could not be created. Ignored."
|
||||
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]"
|
||||
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!"
|
||||
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."
|
||||
msgstr ""
|
||||
"schlecht geformte Zeichenkette für den Schlüssel der Sortierreihenfolge in "
|
||||
"der Projektdatei! [%1] ... ignoriert"
|
||||
|
||||
#: route.cc:2311
|
||||
msgid "Converting deprecated order key for %1 using Editor order %2"
|
||||
msgstr ""
|
||||
|
||||
#: route_group.cc:459
|
||||
msgid "You cannot subgroup MIDI tracks at this time"
|
||||
msgstr "MIDI-Spuren können zur Zeit nicht zu Subgruppen zusammengefasst werden"
|
||||
|
@ -1650,78 +1622,62 @@ msgstr "Klick einrichten"
|
|||
msgid "Set up standard connections"
|
||||
msgstr "Richte Standard-Verbindungen ein"
|
||||
|
||||
#: session.cc:561
|
||||
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
|
||||
#: session.cc:634
|
||||
msgid "could not setup Click I/O"
|
||||
msgstr "konnte Metronom-E/A nicht einrichten"
|
||||
|
||||
#: session.cc:673
|
||||
#: session.cc:682
|
||||
#, c-format
|
||||
msgid "out %<PRIu32>"
|
||||
msgstr "out %<PRIu32>"
|
||||
|
||||
#: session.cc:687
|
||||
#: session.cc:696
|
||||
#, c-format
|
||||
msgid "out %<PRIu32>+%<PRIu32>"
|
||||
msgstr "out %<PRIu32>+%<PRIu32>"
|
||||
|
||||
#: session.cc:702
|
||||
#: session.cc:711
|
||||
#, c-format
|
||||
msgid "in %<PRIu32>"
|
||||
msgstr "in %<PRIu32>"
|
||||
|
||||
#: session.cc:716
|
||||
#: session.cc:725
|
||||
#, c-format
|
||||
msgid "in %<PRIu32>+%<PRIu32>"
|
||||
msgstr "in %<PRIu32>+%<PRIu32>"
|
||||
|
||||
#: session.cc:780
|
||||
#: session.cc:789
|
||||
msgid "cannot connect master output %1 to %2"
|
||||
msgstr "kann Master-Ausgang %1 nicht mit %2 verbinden"
|
||||
|
||||
#: session.cc:839
|
||||
#: session.cc:848
|
||||
msgid "monitor"
|
||||
msgstr "Monitor"
|
||||
|
||||
#: session.cc:884
|
||||
#: session.cc:893
|
||||
msgid "cannot connect control input %1 to %2"
|
||||
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"
|
||||
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"
|
||||
msgstr "kann Kontrollausgang %1 nicht mit %2 verbinden"
|
||||
|
||||
#: session.cc:999
|
||||
#: session.cc:1008
|
||||
msgid "cannot create Auditioner: no auditioning of regions possible"
|
||||
msgstr ""
|
||||
"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)"
|
||||
msgstr ""
|
||||
"Session: Sie können diese Position nicht für Auto-Punch verwenden (Start <= "
|
||||
"Ende) "
|
||||
|
||||
#: session.cc:1223
|
||||
#: session.cc:1232
|
||||
msgid ""
|
||||
"You cannot use this location for auto-loop because it has zero or negative "
|
||||
"length"
|
||||
|
@ -1729,15 +1685,15 @@ msgstr ""
|
|||
"Sie können diese Position nicht für \"automatische Schleife\" verwenden, da "
|
||||
"sie keine oder eine negative Länge hat"
|
||||
|
||||
#: session.cc:1537
|
||||
#: session.cc:1546
|
||||
msgid "feedback loop setup between %1 and %2"
|
||||
msgstr "Feedbackschleife zwischen %1 und %2 erkannt"
|
||||
|
||||
#: session.cc:1833
|
||||
#: session.cc:1842
|
||||
msgid "Session: could not create new midi track."
|
||||
msgstr "Session: konnte keine neue MIDI-Spur erzeugen."
|
||||
|
||||
#: session.cc:1839
|
||||
#: session.cc:1848
|
||||
msgid ""
|
||||
"No more JACK ports are available. You will need to stop %1 and restart JACK "
|
||||
"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 "
|
||||
"Sie %1 stoppen und JACK mit mehr Ports neu starten."
|
||||
|
||||
#: session.cc:2016 session.cc:2019
|
||||
#: session.cc:2025 session.cc:2028
|
||||
msgid "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"
|
||||
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."
|
||||
msgstr "Session: konnte keine neue Audios.pur erzeugen"
|
||||
|
||||
#: session.cc:2106 session.cc:2109
|
||||
#: session.cc:2115 session.cc:2118
|
||||
msgid "Bus"
|
||||
msgstr "Bus"
|
||||
|
||||
#: session.cc:2159
|
||||
#: session.cc:2168
|
||||
msgid "Session: could not create new audio route."
|
||||
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!"
|
||||
msgstr "Session: UINT_MAX Routen? unmöglich!"
|
||||
|
||||
#: session.cc:2250
|
||||
#: session.cc:2259
|
||||
msgid "Session: cannot create track/bus from template description"
|
||||
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"
|
||||
msgstr "Session: konnte keine neue Route aus der Vorlage erzeugen."
|
||||
|
||||
#: session.cc:2305
|
||||
#: session.cc:2314
|
||||
msgid "Adding new tracks/busses failed"
|
||||
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"
|
||||
msgstr ""
|
||||
"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."
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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)"
|
||||
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\""
|
||||
msgstr "zu viele gebouncete Versionen der Wiedergabeliste \"%1\""
|
||||
|
||||
#: session.cc:4176
|
||||
#: session.cc:4183
|
||||
msgid "cannot create new audio file \"%1\" for %2"
|
||||
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"
|
||||
msgstr "Session: XML hat keinen Abschnitt \"click\""
|
||||
|
||||
#: session_state.cc:1366
|
||||
#: session_state.cc:1360
|
||||
msgid "Session: cannot create Route from XML description."
|
||||
msgstr "Session: Kann die Route aus der XML-Beschreibung nicht erzeugen"
|
||||
|
||||
#: session_state.cc:1370
|
||||
#: session_state.cc:1364
|
||||
msgid "Loaded track/bus %1"
|
||||
msgstr "Spur/Bus %1 wurde geladen"
|
||||
|
||||
#: session_state.cc:1468
|
||||
#: session_state.cc:1462
|
||||
msgid "Could not find diskstream for route"
|
||||
msgstr "Konnte Diskstream für Route nicht finden"
|
||||
|
||||
#: session_state.cc:1522
|
||||
#: session_state.cc:1516
|
||||
msgid "Session: cannot create Region from XML description."
|
||||
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'"
|
||||
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"
|
||||
msgstr ""
|
||||
"Regionen der Verbindungsbeschreibung nicht gefunden (IDs %1 and %2): "
|
||||
"ignoriert"
|
||||
|
||||
#: session_state.cc:1590
|
||||
#: session_state.cc:1584
|
||||
msgid "Nested source has no ID info in session file! (ignored)"
|
||||
msgstr ""
|
||||
"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"
|
||||
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)"
|
||||
msgstr ""
|
||||
"Session: XML-Knoten zur Beschreibung einer Audioregion ist unvollständig "
|
||||
"(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 ""
|
||||
"Session: XMLNode describing a AudioRegion references an unknown source id =%1"
|
||||
msgstr ""
|
||||
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
|
||||
"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 ""
|
||||
"Session: XMLNode describing a AudioRegion references a non-audio source id ="
|
||||
"%1"
|
||||
|
@ -2128,7 +2084,7 @@ msgstr ""
|
|||
"Session: XML-Knoten zur Beschreibung einer Audioregion referenziert eine "
|
||||
"Nicht-Audio Quell-ID =%1"
|
||||
|
||||
#: session_state.cc:1742
|
||||
#: session_state.cc:1736
|
||||
msgid ""
|
||||
"Session: XMLNode describing an AudioRegion is missing some master sources; "
|
||||
"ignored"
|
||||
|
@ -2136,27 +2092,27 @@ msgstr ""
|
|||
"Session: dem XML-Knoten zur Beschreibung einer Audioregion fehlen einige "
|
||||
"Hauptquellen; ignoriert"
|
||||
|
||||
#: session_state.cc:1776
|
||||
#: session_state.cc:1770
|
||||
msgid "Session: XMLNode describing a MidiRegion is incomplete (no source)"
|
||||
msgstr ""
|
||||
"Session: XML-Knoten zur Beschreibung einer MIDI-Region ist unvollständig "
|
||||
"(Quelle fehlt)"
|
||||
|
||||
#: session_state.cc:1784
|
||||
#: session_state.cc:1778
|
||||
msgid ""
|
||||
"Session: XMLNode describing a MidiRegion references an unknown source id =%1"
|
||||
msgstr ""
|
||||
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
|
||||
"unbekannte Quell-ID =%1"
|
||||
|
||||
#: session_state.cc:1790
|
||||
#: session_state.cc:1784
|
||||
msgid ""
|
||||
"Session: XMLNode describing a MidiRegion references a non-midi source id =%1"
|
||||
msgstr ""
|
||||
"Session: XML-Knoten zur Beschreibung einer MIDI-Region referenziert eine "
|
||||
"Nicht-MIDI Quell-ID =%1"
|
||||
|
||||
#: session_state.cc:1858
|
||||
#: session_state.cc:1852
|
||||
msgid ""
|
||||
"cannot create new file from region name \"%1\" with ident = \"%2\": too many "
|
||||
"existing files with similar names"
|
||||
|
@ -2164,109 +2120,109 @@ msgstr ""
|
|||
"kann keine neue Datei aus dem Regionennamen \"%1\" mit ident = \"%2\" "
|
||||
"erzeugen: zu viele Dateien mit ähnlichen Namen existieren"
|
||||
|
||||
#: session_state.cc:1881
|
||||
#: session_state.cc:1875
|
||||
msgid "Session: cannot create Source from XML description."
|
||||
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."
|
||||
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."
|
||||
msgstr ""
|
||||
"Eine nicht mit %1 benutzbare Audiodatei wurde gefunden. Sprechen Sie mit den "
|
||||
"Programmierern."
|
||||
|
||||
#: session_state.cc:1955
|
||||
#: session_state.cc:1949
|
||||
msgid "Could not create templates directory \"%1\" (%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"
|
||||
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)"
|
||||
msgstr "Konnte kein Verzeichnis für Projektvorlage \"%1\" erzeugen (%2)"
|
||||
|
||||
#: session_state.cc:1984
|
||||
#: session_state.cc:1978
|
||||
msgid "template not saved"
|
||||
msgstr "Vorlage nicht gesichert"
|
||||
|
||||
#: session_state.cc:1994
|
||||
#: session_state.cc:1988
|
||||
msgid "Could not create directory for Session template plugin state\"%1\" (%2)"
|
||||
msgstr ""
|
||||
"Konnte Verzeichnis für Projektvorlagen-Pluginstatus \"%1\" nicht erzeugen "
|
||||
"(%2)"
|
||||
|
||||
#: session_state.cc:2189
|
||||
#: session_state.cc:2183
|
||||
msgid "Unknown node \"%1\" found in Bundles list from session file"
|
||||
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)"
|
||||
msgstr "Kann Pfad %1 nicht expandieren (%2)"
|
||||
|
||||
#: session_state.cc:2790
|
||||
#: session_state.cc:2784
|
||||
msgid "Session: cannot create dead file folder \"%1\" (%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)"
|
||||
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)"
|
||||
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"
|
||||
msgstr ""
|
||||
"konnte kein Backup der alten Aktionsliste erstellen, momentane Aktionsliste "
|
||||
"ungesichert"
|
||||
|
||||
#: session_state.cc:3162
|
||||
#: session_state.cc:3156
|
||||
msgid "history could not be saved to %1"
|
||||
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)"
|
||||
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)"
|
||||
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."
|
||||
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\""
|
||||
msgstr "Konnte Projekt-Aktionslistendatei \"%1\" nicht verstehen"
|
||||
|
||||
#: session_state.cc:3242
|
||||
#: session_state.cc:3236
|
||||
msgid "Failed to downcast MidiSource for NoteDiffCommand"
|
||||
msgstr "MidiSource für NoteDiffCommand nicht auffindbar"
|
||||
|
||||
#: session_state.cc:3253
|
||||
#: session_state.cc:3247
|
||||
msgid "Failed to downcast MidiSource for SysExDiffCommand"
|
||||
msgstr "MidiSource für SysExDiffCommand nicht auffindbar"
|
||||
|
||||
#: session_state.cc:3264
|
||||
#: session_state.cc:3258
|
||||
msgid "Failed to downcast MidiSource for PatchChangeDiffCommand"
|
||||
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."
|
||||
msgstr "Konnte im XML-Knoten \"%1\" keinen Befehl erkennen."
|
||||
|
||||
#: session_state.cc:3524
|
||||
#: session_state.cc:3502
|
||||
msgid "Session: unknown diskstream type in XML"
|
||||
msgstr "Session: Unbekannter Diskstream im XML"
|
||||
|
||||
#: session_state.cc:3529
|
||||
#: session_state.cc:3507
|
||||
msgid "Session: could not load diskstream via XML state"
|
||||
msgstr "Session: konnte Diskstream nicht via XML-Status laden"
|
||||
|
||||
|
@ -2710,56 +2666,3 @@ msgstr "Programmierfehler: unbekanntes natives Dateikopfformat: %1"
|
|||
#: utils.cc:617
|
||||
msgid "cannot open directory %1 (%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 ""
|
||||
"Project-Id-Version: libardour 3\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"
|
||||
"Last-Translator: Александр Прокудин <alexandre.prokoudine@gmail.com>\n"
|
||||
"Language-Team: русский <>\n"
|
||||
|
@ -391,7 +391,7 @@ msgstr ""
|
|||
msgid "audio"
|
||||
msgstr ""
|
||||
|
||||
#: data_type.cc:28 session.cc:1788 session.cc:1791
|
||||
#: data_type.cc:28 session.cc:1790 session.cc:1793
|
||||
msgid "MIDI"
|
||||
msgstr ""
|
||||
|
||||
|
@ -503,7 +503,7 @@ msgstr "Треугольное"
|
|||
msgid "Rectangular"
|
||||
msgstr "Прямоугольное"
|
||||
|
||||
#: export_formats.cc:52 session.cc:5009 session.cc:5025
|
||||
#: export_formats.cc:52 session.cc:5008 session.cc:5024
|
||||
msgid "None"
|
||||
msgstr "Нет"
|
||||
|
||||
|
@ -859,15 +859,15 @@ msgstr ""
|
|||
msgid "%s out"
|
||||
msgstr ""
|
||||
|
||||
#: io.cc:1535 session.cc:683 session.cc:712
|
||||
#: io.cc:1535 session.cc:685 session.cc:714
|
||||
msgid "mono"
|
||||
msgstr ""
|
||||
|
||||
#: io.cc:1537 session.cc:696 session.cc:726
|
||||
#: io.cc:1537 session.cc:698 session.cc:728
|
||||
msgid "L"
|
||||
msgstr ""
|
||||
|
||||
#: io.cc:1537 session.cc:698 session.cc:728
|
||||
#: io.cc:1537 session.cc:700 session.cc:730
|
||||
msgid "R"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1094,38 +1094,6 @@ msgstr ""
|
|||
msgid "MIDI stretch created non-MIDI source"
|
||||
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
|
||||
msgid "monitor dim"
|
||||
msgstr ""
|
||||
|
@ -1486,26 +1454,30 @@ msgstr ""
|
|||
msgid "return %1"
|
||||
msgstr ""
|
||||
|
||||
#: route.cc:1107 route.cc:2584
|
||||
#: route.cc:1075 route.cc:2528
|
||||
msgid "unknown Processor type \"%1\"; ignored"
|
||||
msgstr ""
|
||||
|
||||
#: route.cc:1119
|
||||
#: route.cc:1087
|
||||
msgid "processor could not be created. Ignored."
|
||||
msgstr ""
|
||||
|
||||
#: route.cc:2010 route.cc:2237
|
||||
#: route.cc:1962 route.cc:2187
|
||||
msgid "Bad node sent to Route::set_state() [%1]"
|
||||
msgstr ""
|
||||
|
||||
#: route.cc:2070
|
||||
#: route.cc:2022
|
||||
msgid "Pannable state found for route (%1) without a panner!"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: route.cc:2311
|
||||
msgid "Converting deprecated order key for %1 using Editor order %2"
|
||||
msgstr ""
|
||||
|
||||
#: route_group.cc:459
|
||||
msgid "You cannot subgroup MIDI tracks at this time"
|
||||
msgstr ""
|
||||
|
@ -1550,127 +1522,111 @@ msgstr ""
|
|||
msgid "Set up standard connections"
|
||||
msgstr "Настройка обычных соединений"
|
||||
|
||||
#: session.cc:561
|
||||
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
|
||||
#: session.cc:634
|
||||
msgid "could not setup Click I/O"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:680
|
||||
#: session.cc:682
|
||||
#, c-format
|
||||
msgid "out %<PRIu32>"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:694
|
||||
#: session.cc:696
|
||||
#, c-format
|
||||
msgid "out %<PRIu32>+%<PRIu32>"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:709
|
||||
#: session.cc:711
|
||||
#, c-format
|
||||
msgid "in %<PRIu32>"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:723
|
||||
#: session.cc:725
|
||||
#, c-format
|
||||
msgid "in %<PRIu32>+%<PRIu32>"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:787
|
||||
#: session.cc:789
|
||||
msgid "cannot connect master output %1 to %2"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:846
|
||||
#: session.cc:848
|
||||
msgid "monitor"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:891
|
||||
#: session.cc:893
|
||||
msgid "cannot connect control input %1 to %2"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:911
|
||||
#: session.cc:913
|
||||
msgid "The preferred I/O for the monitor bus (%1) cannot be found"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:942
|
||||
#: session.cc:944
|
||||
msgid "cannot connect control output %1 to %2"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:1006
|
||||
#: session.cc:1008
|
||||
msgid "cannot create Auditioner: no auditioning of regions possible"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:1190
|
||||
#: session.cc:1192
|
||||
msgid "Session: you can't use that location for auto punch (start <= end)"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:1230
|
||||
#: session.cc:1232
|
||||
msgid ""
|
||||
"You cannot use this location for auto-loop because it has zero or negative "
|
||||
"length"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:1544
|
||||
#: session.cc:1546
|
||||
msgid "feedback loop setup between %1 and %2"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:1840
|
||||
#: session.cc:1842
|
||||
msgid "Session: could not create new midi track."
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:1846
|
||||
#: session.cc:1848
|
||||
msgid ""
|
||||
"No more JACK ports are available. You will need to stop %1 and restart JACK "
|
||||
"with more ports if you need this many tracks."
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2023 session.cc:2026
|
||||
#: session.cc:2025 session.cc:2028
|
||||
msgid "Audio"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2081
|
||||
#: session.cc:2083
|
||||
msgid "Session: could not create new audio track."
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2113 session.cc:2116
|
||||
#: session.cc:2115 session.cc:2118
|
||||
msgid "Bus"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2166
|
||||
#: session.cc:2168
|
||||
msgid "Session: could not create new audio route."
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2225 session.cc:2235
|
||||
#: session.cc:2227 session.cc:2237
|
||||
msgid "Session: UINT_MAX routes? impossible!"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2257
|
||||
#: session.cc:2259
|
||||
msgid "Session: cannot create track/bus from template description"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2283
|
||||
#: session.cc:2285
|
||||
msgid "Session: could not create new route from template"
|
||||
msgstr ""
|
||||
|
||||
#: session.cc:2312
|
||||
#: session.cc:2314
|
||||
msgid "Adding new tracks/busses failed"
|
||||
msgstr "Не удалось добавить новые дорожки/шины"
|
||||
|
||||
|
@ -2110,11 +2066,11 @@ msgstr ""
|
|||
msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
|
||||
msgstr ""
|
||||
|
||||
#: session_state.cc:3518
|
||||
#: session_state.cc:3502
|
||||
msgid "Session: unknown diskstream type in XML"
|
||||
msgstr ""
|
||||
|
||||
#: session_state.cc:3523
|
||||
#: session_state.cc:3507
|
||||
msgid "Session: could not load diskstream via XML state"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2528,66 +2484,3 @@ msgstr "programming error: unknown native header format: %1"
|
|||
#: utils.cc:617
|
||||
msgid "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
|
||||
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;
|
||||
|
||||
bool even;
|
||||
|
@ -72,10 +72,13 @@ Quantize::operator () (boost::shared_ptr<MidiModel> model,
|
|||
|
||||
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) {
|
||||
|
||||
double new_start = round ((*i)->time() / _start_grid) * _start_grid + offset;
|
||||
double new_end = round ((*i)->end_time() / _end_grid) * _end_grid + offset;
|
||||
double new_start = round (((*i)->time() - offset) / _start_grid) * _start_grid + offset;
|
||||
double new_end = round (((*i)->end_time() - offset) / _end_grid) * _end_grid + offset;
|
||||
|
||||
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_end = new_end + (2.0/3.0 * _swing * (next_grid - new_start));
|
||||
|
||||
} 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_end = new_end - (2.0/3.0 * _swing * (new_start - prev_grid));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
#include <algorithm>
|
||||
#include <cmath>
|
||||
|
||||
#include <rubberband/RubberBandStretcher.h>
|
||||
|
||||
#include "pbd/error.h"
|
||||
#include "rubberband/RubberBandStretcher.h"
|
||||
|
||||
#include "ardour/audioregion.h"
|
||||
#include "ardour/audiosource.h"
|
||||
|
|
|
@ -257,6 +257,7 @@ Session::Session (AudioEngine &eng,
|
|||
, _step_editors (0)
|
||||
, _suspend_timecode_transmission (0)
|
||||
, _speakers (new Speakers)
|
||||
, _order_hint (0)
|
||||
, ignore_route_processor_changes (false)
|
||||
, _midi_ports (0)
|
||||
, _mmc (0)
|
||||
|
@ -558,10 +559,10 @@ Session::setup_ltc ()
|
|||
{
|
||||
XMLNode* child = 0;
|
||||
|
||||
_ltc_input.reset (new IO (*this, _("LTC In"), IO::Input));
|
||||
_ltc_output.reset (new IO (*this, _("LTC Out"), IO::Output));
|
||||
_ltc_input.reset (new IO (*this, X_("LTC In"), IO::Input));
|
||||
_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);
|
||||
} else {
|
||||
{
|
||||
|
@ -571,7 +572,7 @@ Session::setup_ltc ()
|
|||
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);
|
||||
} else {
|
||||
{
|
||||
|
@ -585,15 +586,15 @@ Session::setup_ltc ()
|
|||
* IO style of NAME/TYPE-{in,out}N
|
||||
*/
|
||||
|
||||
_ltc_input->nth (0)->set_name (_("LTC-in"));
|
||||
_ltc_output->nth (0)->set_name (_("LTC-out"));
|
||||
_ltc_input->nth (0)->set_name (X_("LTC-in"));
|
||||
_ltc_output->nth (0)->set_name (X_("LTC-out"));
|
||||
}
|
||||
|
||||
void
|
||||
Session::setup_click ()
|
||||
{
|
||||
_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->activate ();
|
||||
if (state_tree) {
|
||||
|
@ -2335,6 +2336,11 @@ Session::add_routes_inner (RouteList& new_routes, bool input_auto_connect, bool
|
|||
ChanCount existing_outputs;
|
||||
uint32_t order = next_control_id();
|
||||
|
||||
if (_order_hint != 0) {
|
||||
order = _order_hint;
|
||||
_order_hint = 0;
|
||||
}
|
||||
|
||||
count_existing_track_channels (existing_inputs, existing_outputs);
|
||||
|
||||
{
|
||||
|
|
|
@ -333,9 +333,14 @@ def build(bld):
|
|||
obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID',
|
||||
'SNDFILE','SAMPLERATE','LRDF','AUDIOUNITS',
|
||||
'OSX','BOOST','CURL','DL']
|
||||
obj.use = ['libpbd','libmidipp','libevoral','libvamphost',
|
||||
'libvampplugin','libtaglib','librubberband',
|
||||
obj.use = ['libpbd','libmidipp','libevoral','libvampplugin',
|
||||
'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.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||
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']
|
||||
testcommon.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
|
||||
'SAMPLERATE','XML','LRDF','COREAUDIO']
|
||||
testcommon.use = ['libpbd','libmidipp','libevoral','libvamphost',
|
||||
'libvampplugin','libtaglib','librubberband',
|
||||
'libaudiographer','libltc','ardour']
|
||||
testcommon.use = ['libpbd','libmidipp','libevoral',
|
||||
'libvampplugin','libaudiographer','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 = [
|
||||
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
|
||||
'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.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
|
||||
'SAMPLERATE','XML','LRDF','COREAUDIO']
|
||||
testobj.use = ['libpbd','libmidipp','libevoral','libvamphost',
|
||||
'libvampplugin','libtaglib','librubberband',
|
||||
'libaudiographer','libltc','ardour','testcommon']
|
||||
testobj.use = ['libpbd','libmidipp','libevoral','libvampplugin',
|
||||
'libaudiographer','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.target = target
|
||||
# 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
|
||||
* automatically but it will be without our preferred options
|
||||
*/
|
||||
std::cerr << "get_jack_command_line_string () failed: using default settings." << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ class JACKAudioBackend : public AudioBackend {
|
|||
|
||||
int set_port_name (PortHandle, const std::string&);
|
||||
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;
|
||||
|
||||
|
|
|
@ -116,11 +116,11 @@ JACKAudioBackend::get_port_name (PortHandle port) const
|
|||
return jack_port_name ((jack_port_t*) port);
|
||||
}
|
||||
|
||||
PortEngine::PortHandle*
|
||||
PortEngine::PortHandle
|
||||
JACKAudioBackend:: get_port_by_name (const std::string& name) const
|
||||
{
|
||||
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
|
||||
|
|
|
@ -756,6 +756,9 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
|
|||
|
||||
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)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -763,60 +766,71 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
|
|||
args.push_back ("-d");
|
||||
args.push_back (command_line_driver_name);
|
||||
|
||||
if (options.output_device.empty() && options.input_device.empty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
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()) {
|
||||
if (options.driver != dummy_driver_name) {
|
||||
if (options.output_device.empty() && options.input_device.empty()) {
|
||||
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()) {
|
||||
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);
|
||||
// playback only
|
||||
if (options.output_device.empty()) {
|
||||
return false;
|
||||
}
|
||||
args.push_back ("-P");
|
||||
args.push_back (command_line_output_device_name);
|
||||
} else {
|
||||
return false;
|
||||
} else if (options.output_device.empty()) {
|
||||
// capture only
|
||||
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) {
|
||||
args.push_back ("-i");
|
||||
args.push_back (to_string (options.input_channels, std::dec));
|
||||
}
|
||||
if (options.input_channels) {
|
||||
args.push_back ("-i");
|
||||
args.push_back (to_string (options.input_channels, std::dec));
|
||||
}
|
||||
|
||||
if (options.output_channels) {
|
||||
args.push_back ("-o");
|
||||
args.push_back (to_string (options.output_channels, std::dec));
|
||||
}
|
||||
if (options.output_channels) {
|
||||
args.push_back ("-o");
|
||||
args.push_back (to_string (options.output_channels, std::dec));
|
||||
}
|
||||
|
||||
if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
|
||||
args.push_back ("-n");
|
||||
args.push_back (to_string (options.num_periods, std::dec));
|
||||
if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
|
||||
args.push_back ("-n");
|
||||
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");
|
||||
|
@ -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) {
|
||||
args.push_back ("-d");
|
||||
args.push_back (command_line_input_device_name);
|
||||
if (options.driver != dummy_driver_name) {
|
||||
if (options.input_device == options.output_device && options.input_device != default_device_name) {
|
||||
args.push_back ("-d");
|
||||
args.push_back (command_line_input_device_name);
|
||||
}
|
||||
}
|
||||
|
||||
if (options.driver == alsa_driver_name) {
|
||||
|
|
|
@ -20,11 +20,6 @@ msgstr ""
|
|||
msgid "Unknown action name: %1"
|
||||
msgstr ""
|
||||
|
||||
#: binding_proxy.cc:84
|
||||
#, fuzzy
|
||||
msgid "operate controller now"
|
||||
msgstr "λειτουργία ελεγκτή MIDI τώρα"
|
||||
|
||||
#: bindable_button.cc:48
|
||||
msgid "button cannot watch state of non-existing Controllable\n"
|
||||
msgstr ""
|
||||
|
@ -91,33 +86,3 @@ msgstr ""
|
|||
#: textviewer.cc:34
|
||||
msgid "Close"
|
||||
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
|
||||
msgid "Close"
|
||||
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"
|
||||
msgstr "Ctrl"
|
||||
|
||||
#: keyboard.cc:70 keyboard.cc:73 keyboard.cc:87 keyboard.cc:90
|
||||
#, fuzzy
|
||||
msgid "Key|Shift"
|
||||
msgstr "Maj"
|
||||
|
||||
#: keyboard.cc:71
|
||||
msgid "Option"
|
||||
msgstr "Option"
|
||||
|
@ -75,11 +70,6 @@ msgstr "Meta"
|
|||
msgid "Unknown"
|
||||
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
|
||||
msgid "Click to tear this into its own window"
|
||||
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
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#~ msgid "Mod1"
|
||||
#~ msgstr "Mod1"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -90,18 +90,3 @@ msgstr ""
|
|||
#: textviewer.cc:34
|
||||
msgid "Close"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: binding_proxy.cc:84
|
||||
#, fuzzy
|
||||
msgid "operate controller now"
|
||||
msgstr "Operar controladora de MIDI agora"
|
||||
|
||||
#: bindable_button.cc:48
|
||||
msgid "button cannot watch state of non-existing Controllable\n"
|
||||
msgstr ""
|
||||
|
@ -91,33 +86,3 @@ msgstr ""
|
|||
#: textviewer.cc:34
|
||||
msgid "Close"
|
||||
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
|
||||
msgid "Close"
|
||||
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)
|
||||
|
||||
def configure(conf):
|
||||
conf.load('compiler_c')
|
||||
autowaf.configure(conf)
|
||||
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||
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):
|
||||
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||
return
|
||||
obj = bld(features = 'c cshlib')
|
||||
obj.source = '''
|
||||
ltc.c
|
||||
|
@ -41,7 +46,7 @@ def build(bld):
|
|||
decoder.c
|
||||
'''
|
||||
|
||||
obj.export_includes = ['.']
|
||||
obj.export_includes = ['./ltc']
|
||||
obj.includes = ['.']
|
||||
obj.name = 'libltc'
|
||||
obj.target = 'ltc'
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
/* LV2 */
|
||||
#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/midi/midi.h"
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
|||
static void * synth_alloc (void);
|
||||
static void synth_init (void *, double rate);
|
||||
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);
|
||||
|
||||
#include "rsynth.c"
|
||||
|
@ -66,6 +66,9 @@ instantiate(const LV2_Descriptor* descriptor,
|
|||
const char* bundle_path,
|
||||
const LV2_Feature* const* features)
|
||||
{
|
||||
(void) descriptor; /* unused variable */
|
||||
(void) bundle_path; /* unused variable */
|
||||
|
||||
if (rate < 8000) {
|
||||
fprintf(stderr, "RSynth.lv2 error: unsupported sample-rate (must be > 8k)\n");
|
||||
return NULL;
|
||||
|
@ -131,18 +134,22 @@ run(LV2_Handle handle, uint32_t n_samples)
|
|||
|
||||
/* Process incoming MIDI events */
|
||||
if (self->midiin) {
|
||||
LV2_Atom_Event* ev = lv2_atom_sequence_begin(&(self->midiin)->body);
|
||||
while(!lv2_atom_sequence_is_end(&(self->midiin)->body, (self->midiin)->atom.size, ev)) {
|
||||
LV2_Atom_Event const* ev = (LV2_Atom_Event const*)((&(self->midiin)->body) + 1); // lv2_atom_sequence_begin
|
||||
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 (written + BUFFER_SIZE_SAMPLES < ev->time.frames
|
||||
&& ev->time.frames < n_samples) {
|
||||
/* first synthesize sound up until the message timestamp */
|
||||
written = synth_sound(self->synth, written, ev->time.frames, audio);
|
||||
}
|
||||
/* send midi message to synth */
|
||||
synth_parse_midi(self->synth, (uint8_t*)(ev+1), ev->body.size);
|
||||
if (written + BUFFER_SIZE_SAMPLES < ev->time.frames
|
||||
&& ev->time.frames < n_samples) {
|
||||
/* first synthesize sound up until the message timestamp */
|
||||
written = synth_sound(self->synth, written, ev->time.frames, audio);
|
||||
}
|
||||
/* send midi message to synth */
|
||||
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*
|
||||
extension_data(const char* uri)
|
||||
{
|
||||
(void) uri; /* unused variable */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -177,9 +185,9 @@ static const LV2_Descriptor descriptor = {
|
|||
|
||||
LV2_SYMBOL_EXPORT
|
||||
const LV2_Descriptor*
|
||||
lv2_descriptor(uint32_t index)
|
||||
lv2_descriptor(uint32_t idx)
|
||||
{
|
||||
switch (index) {
|
||||
switch (idx) {
|
||||
case 0:
|
||||
return &descriptor;
|
||||
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 size_t n_samples, float* left, float* right) {
|
||||
|
||||
size_t i;
|
||||
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);
|
||||
if (sc->adsr_cnt[note] == 0) break;
|
||||
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] -= .007 * amp * sinf(2.0 * M_PI * phase * 5.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;
|
||||
right[i] += amp * sinf(2.0 * M_PI * phase);
|
||||
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] += .007 * amp * sinf(2.0 * M_PI * phase * 5.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;
|
||||
}
|
||||
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
|
||||
if (sc->adsr_cnt[note] <= sc->adsr.off[1]) {
|
||||
if (sc->adsr_cnt[note] != sc->adsr.off[1]) {
|
||||
// x-fade to release
|
||||
sc->adsr_amp[note] = adsr_env(sc, note);
|
||||
// x-fade to release
|
||||
sc->adsr_amp[note] = adsr_env(sc, note);
|
||||
}
|
||||
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 (right, 0, n_samples * sizeof(float));
|
||||
uint8_t keycomp = 0;
|
||||
int c,k;
|
||||
size_t i;
|
||||
|
||||
for (int c=0; c < 16; ++c) {
|
||||
for (int k=0; k < 128; ++k) {
|
||||
for (c=0; c < 16; ++c) {
|
||||
for (k=0; k < 128; ++k) {
|
||||
if (rs->sc[c].miditable[k] == 0) continue;
|
||||
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 > 1.0) kctgt = 1.0;
|
||||
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);
|
||||
left[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) {
|
||||
for (int k=0; k < 128; ++k) {
|
||||
int k;
|
||||
for (k=0; k < 128; ++k) {
|
||||
sc->adsr_cnt[k] = 0;
|
||||
sc->adsr_amp[k] = 0;
|
||||
sc->phase[k] = -10;
|
||||
|
@ -307,7 +311,8 @@ static void synth_reset_channel(RSSynthChannel* sc) {
|
|||
|
||||
static void synth_reset(void *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]));
|
||||
}
|
||||
rs->kcgain = 0;
|
||||
|
@ -332,31 +337,31 @@ static void synth_process_midi_event(void *synth, struct rmidi_event_t *ev) {
|
|||
switch(ev->type) {
|
||||
case NOTE_ON:
|
||||
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;
|
||||
case NOTE_OFF:
|
||||
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;
|
||||
case PROGRAM_CHANGE:
|
||||
break;
|
||||
case CONTROL_CHANGE:
|
||||
if (ev->d.control.param == 0x00 || ev->d.control.param == 0x20) {
|
||||
/* 0x00 and 0x20 are used for BANK select */
|
||||
break;
|
||||
/* 0x00 and 0x20 are used for BANK select */
|
||||
break;
|
||||
} else
|
||||
if (ev->d.control.param == 121) {
|
||||
/* reset all controllers */
|
||||
break;
|
||||
/* reset all controllers */
|
||||
break;
|
||||
} else
|
||||
if (ev->d.control.param == 120 || ev->d.control.param == 123) {
|
||||
/* Midi panic: 120: all sound off, 123: all notes off*/
|
||||
synth_reset_channel(&(rs->sc[ev->channel]));
|
||||
break;
|
||||
/* Midi panic: 120: all sound off, 123: all notes off*/
|
||||
synth_reset_channel(&(rs->sc[ev->channel]));
|
||||
break;
|
||||
} else
|
||||
if (ev->d.control.param >= 120) {
|
||||
/* params 122-127 are reserved - skip them. */
|
||||
break;
|
||||
/* params 122-127 are reserved - skip them. */
|
||||
break;
|
||||
}
|
||||
break;
|
||||
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 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;
|
||||
// All messages need to be 3 bytes; except program-changes: 2bytes.
|
||||
if (size == 2 && (data[0] & 0xf0) != 0xC0) return;
|
||||
|
@ -454,14 +459,15 @@ static void synth_init(void *synth, double rate) {
|
|||
rs->rate = rate;
|
||||
rs->boffset = BUFFER_SIZE_SAMPLES;
|
||||
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;
|
||||
assert(rs->freqs[k] < M_PI/2); // otherwise spatialization may phase out..
|
||||
}
|
||||
rs->kcfilt = 12.0 / rate;
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -487,4 +493,4 @@ static void * synth_alloc(void) {
|
|||
static void synth_free(void *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):
|
||||
conf.load('compiler_c')
|
||||
autowaf.configure(conf)
|
||||
autowaf.set_c99_mode(conf)
|
||||
if Options.options.lv2:
|
||||
autowaf.check_pkg(conf, 'lv2', atleast_version='1.4.0',
|
||||
uselib_store='LV2_1_4_0')
|
||||
autowaf.check_pkg(conf, 'lv2', atleast_version='1.0.0',
|
||||
uselib_store='LV2_1_0_0')
|
||||
|
||||
def build(bld):
|
||||
bundle = 'reasonablesynth.lv2'
|
||||
|
@ -41,7 +40,7 @@ def build(bld):
|
|||
name = 'reasonablesynth',
|
||||
target = '../../LV2/%s/reasonablesynth' % bundle,
|
||||
install_path = '${LV2DIR}/%s' % bundle,
|
||||
use = 'LV2_1_4_0'
|
||||
use = 'LV2_1_0_0'
|
||||
)
|
||||
obj.env.cshlib_PATTERN = module_pat
|
||||
|
||||
|
|
|
@ -24,10 +24,16 @@ def options(opt):
|
|||
autowaf.set_options(opt)
|
||||
|
||||
def configure(conf):
|
||||
conf.load('compiler_cxx')
|
||||
autowaf.configure(conf)
|
||||
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||
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):
|
||||
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||
return
|
||||
|
||||
# Library
|
||||
obj = bld(features = 'cxx cxxshlib')
|
||||
prefix = 'libs/rubberband/'
|
||||
|
|
|
@ -24,10 +24,16 @@ def options(opt):
|
|||
autowaf.set_options(opt)
|
||||
|
||||
def configure(conf):
|
||||
conf.load('compiler_cxx')
|
||||
autowaf.configure(conf)
|
||||
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||
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):
|
||||
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||
return
|
||||
|
||||
# Library
|
||||
obj = bld(features = 'cxx cxxshlib')
|
||||
sources = bld.path.ant_glob('taglib/*.cpp')
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#ifndef _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
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#ifndef _ONSET_PLUGIN_H_
|
||||
#define _ONSET_PLUGIN_H_
|
||||
|
||||
#include "vamp-sdk/Plugin.h"
|
||||
#include <vamp-sdk/Plugin.h>
|
||||
#include <aubio/aubio.h>
|
||||
|
||||
class Onset : public Vamp::Plugin
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#ifndef _ONSET_DETECT_PLUGIN_H_
|
||||
#define _ONSET_DETECT_PLUGIN_H_
|
||||
|
||||
#include "vamp-sdk/Plugin.h"
|
||||
#include <vamp-sdk/Plugin.h>
|
||||
|
||||
class OnsetDetectorData;
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#ifndef _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.
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#ifndef _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
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#ifndef _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
|
||||
|
|
|
@ -38,8 +38,8 @@
|
|||
#include "libvampplugins-config.h"
|
||||
#endif
|
||||
|
||||
#include "vamp/vamp.h"
|
||||
#include "vamp-sdk/PluginAdapter.h"
|
||||
#include <vamp/vamp.h>
|
||||
#include <vamp-sdk/PluginAdapter.h>
|
||||
|
||||
#include "ZeroCrossing.h"
|
||||
#include "SpectralCentroid.h"
|
||||
|
|
|
@ -23,13 +23,19 @@ def options(opt):
|
|||
autowaf.set_options(opt)
|
||||
|
||||
def configure(conf):
|
||||
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')
|
||||
if conf.is_defined('USE_EXTERNAL_LIBS'):
|
||||
autowaf.check_pkg(conf, 'vamp-sdk', uselib_store='VAMPSDK', mandatory=True)
|
||||
autowaf.check_pkg(conf, 'vamp-hostsdk', uselib_store='VAMPHOSTSDK', mandatory=True)
|
||||
else:
|
||||
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):
|
||||
if bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||
return
|
||||
# Host Library
|
||||
obj = bld(features = 'cxx cxxshlib')
|
||||
obj.source = '''
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
||||
optimization_flags[:0] = [
|
||||
"-O3",
|
||||
"-fomit-frame-pointer",
|
||||
"-ffast-math",
|
||||
"-fstrength-reduce",
|
||||
"-pipe"
|
||||
]
|
||||
optimization_flags[:0] = ["-pipe"]
|
||||
|
||||
# don't prepend optimization flags if "-O<something>" is present
|
||||
prepend_opt_flags = True
|
||||
for flag in optimization_flags:
|
||||
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:
|
||||
conf.env.append_value('CFLAGS', debug_flags)
|
||||
|
@ -431,6 +440,8 @@ def options(opt):
|
|||
help='Build internal libs as shared libraries')
|
||||
opt.add_option('--internal-static-libs', action='store_false', dest='internal_shared_libs',
|
||||
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',
|
||||
help='Compile with support for LV2 (if Lilv+Suil is available)')
|
||||
opt.add_option('--no-lv2', action='store_false', dest='lv2',
|
||||
|
@ -603,6 +614,9 @@ def configure(conf):
|
|||
if Options.options.internal_shared_libs:
|
||||
conf.define('INTERNAL_SHARED_LIBS', 1)
|
||||
|
||||
if Options.options.use_external_libs:
|
||||
conf.define('USE_EXTERNAL_LIBS', 1)
|
||||
|
||||
if 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('Strict compiler flags', conf.env['STRICT'])
|
||||
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('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
|
||||
|
||||
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/timecode/timecode')
|
||||
bld.path.find_dir ('libs/libltc/ltc')
|
||||
bld.path.find_dir ('libs/rubberband/rubberband')
|
||||
if not bld.is_defined('USE_EXTERNAL_LIBS'):
|
||||
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/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')
|
||||
|
||||
autowaf.set_recursive()
|
||||
|
|
Loading…
Reference in New Issue