diff --git a/.gitignore b/.gitignore index d143afedb7..280357c86a 100644 --- a/.gitignore +++ b/.gitignore @@ -140,6 +140,9 @@ tags /icons/win32/msvc_resources.rc /tools/osx_packaging/Ardour/*.app +/tools/osx_packaging/Ardour/*.dmg +/tools/osx_packaging/file_list.txt + /tools/doxy2json/doxy2json /tools/icons/icon diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index cbbac7adac..700fad7774 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -242,6 +242,7 @@ ARDOUR_UI::set_session (Session *s) start_clocking (); map_transport_state (); + set_punch_sensitivity (); second_connection = Timers::second_connect (sigc::mem_fun(*this, &ARDOUR_UI::every_second)); point_one_second_connection = Timers::rapid_connect (sigc::mem_fun(*this, &ARDOUR_UI::every_point_one_seconds)); diff --git a/gtk2_ardour/ghostregion.h b/gtk2_ardour/ghostregion.h index bf516cae30..6c869f49e0 100644 --- a/gtk2_ardour/ghostregion.h +++ b/gtk2_ardour/ghostregion.h @@ -28,6 +28,7 @@ #include #include +#include "evoral/Note.h" #include "pbd/signals.h" #include "gtkmm2ext/colors.h" diff --git a/gtk2_ardour/insert_remove_time_dialog.h b/gtk2_ardour/insert_remove_time_dialog.h index dfb88dd0eb..f20cc2ebd5 100644 --- a/gtk2_ardour/insert_remove_time_dialog.h +++ b/gtk2_ardour/insert_remove_time_dialog.h @@ -20,6 +20,7 @@ #include "public_editor.h" #include "editing.h" #include "audio_clock.h" +#include class InsertRemoveTimeDialog : public ArdourDialog { diff --git a/gtk2_ardour/note_base.cc b/gtk2_ardour/note_base.cc index a6ad6e6bc9..bf75c1a4a7 100644 --- a/gtk2_ardour/note_base.cc +++ b/gtk2_ardour/note_base.cc @@ -29,10 +29,14 @@ #include "note_base.h" #include "public_editor.h" -#include "editing_syms.h" #include "keyboard.h" #include "midi_region_view.h" +/* clang-format off */ +// Include last, when GRIDTYPE has been defined by editing.h via midi_region_view.h +#include "editing_syms.h" +/* clang-format on */ + using namespace std; using namespace Gtkmm2ext; using ARDOUR::MidiModel; diff --git a/gtk2_ardour/playlist_selection.h b/gtk2_ardour/playlist_selection.h index fa351d8a3d..540e2f93a2 100644 --- a/gtk2_ardour/playlist_selection.h +++ b/gtk2_ardour/playlist_selection.h @@ -20,13 +20,11 @@ #ifndef __ardour_gtk_playlist_selection_h__ #define __ardour_gtk_playlist_selection_h__ +#include "ardour/playlist.h" + #include #include -namespace ARDOUR { - class Playlist; -} - struct PlaylistSelection : std::list > { public: const_iterator diff --git a/gtk2_ardour/po/de.po b/gtk2_ardour/po/de.po index db8bd875e6..1cf0e86279 100644 --- a/gtk2_ardour/po/de.po +++ b/gtk2_ardour/po/de.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: gtk-ardour 0.347.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-07-02 10:34+0200\n" -"PO-Revision-Date: 2024-07-03 09:38+0200\n" +"PO-Revision-Date: 2024-07-17 11:28+0200\n" "Last-Translator: Edgar Aichinger \n" "Language-Team: German \n" "Language: de\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 24.05.1\n" +"X-Generator: Lokalize 24.05.2\n" "X-Poedit-Basepath: ../..\n" "X-Poedit-SearchPath-0: gtk2_ardour\n" @@ -12622,9 +12622,9 @@ msgid "" "\n" "(You can put new sessions anywhere, this is just a default)" msgstr "" -"Jedes Projekt, an dem Sie mit %1 arbeiten, hat seinen " -"eigenen Ordner.\n" -"Das kann eine Menge Speicherplatz verbrauchen, wnn Sie Audio aufnehmen.\n" +"Jedes Projekt, an dem Sie mit %1 arbeiten, hat seinen eigenen " +"Ordner.\n" +"Falls Sie Audio aufnehmen, kann das sehr viel Festplatten-Speicherplatz benötigen.\n" "\n" "Wo wollen Sie neue %1-Projekte speichern?\n" "\n" @@ -17257,7 +17257,6 @@ msgid "" "Note: This only affects newly added plugins and is applied to plugin on " "session-reload. Already automated parameters are retained." msgstr "" -"" "Manche Plugins präsentieren eine unverhältnismäßig große Zahl von " "Kontrolleingängen. Diese Option begrenzt die als automatisierbar " "angezeigten Parameter, ohne die Gesamtanzahl der Kontrollelemente zu " @@ -21938,4 +21937,3 @@ msgstr "" #: export_video_dialog.cc:815 msgid "Input Video File" msgstr "Quell-Videodatei" - diff --git a/gtk2_ardour/port_group.h b/gtk2_ardour/port_group.h index 79856b071e..74767144d4 100644 --- a/gtk2_ardour/port_group.h +++ b/gtk2_ardour/port_group.h @@ -31,12 +31,12 @@ #include #include +#include "ardour/bundle.h" #include "ardour/data_type.h" #include "ardour/types.h" namespace ARDOUR { class Session; - class Bundle; class Processor; class IO; } diff --git a/gtk2_ardour/port_matrix_grid.h b/gtk2_ardour/port_matrix_grid.h index afdaf5607b..21f98e2e91 100644 --- a/gtk2_ardour/port_matrix_grid.h +++ b/gtk2_ardour/port_matrix_grid.h @@ -31,10 +31,6 @@ class PortMatrix; class PortMatrixBody; -namespace ARDOUR { - class Bundle; -} - /** The grid part of the port matrix */ class PortMatrixGrid : public PortMatrixComponent { diff --git a/gtk2_ardour/sys_ex.h b/gtk2_ardour/sys_ex.h index 48ac5cced2..2dea6110bd 100644 --- a/gtk2_ardour/sys_ex.h +++ b/gtk2_ardour/sys_ex.h @@ -20,12 +20,9 @@ #ifndef __SYSEX_H__ #define __SYSEX_H__ +#include "canvas/flag.h" #include "midi_region_view.h" -namespace ArdourCanvas { - class Flag; -} - class SysEx { public: diff --git a/libs/ardour/ardour/midi_buffer.h b/libs/ardour/ardour/midi_buffer.h index 6538ec37f1..a6b0e8e63b 100644 --- a/libs/ardour/ardour/midi_buffer.h +++ b/libs/ardour/ardour/midi_buffer.h @@ -71,11 +71,17 @@ public: class iterator_base { public: - iterator_base(BufferType& b, samplecnt_t o) - : buffer(&b), offset(o) {} + iterator_base (BufferType& b, samplecnt_t o) + : buffer (&b) + , offset (o) + { + } - iterator_base(const iterator_base& o) - : buffer (o.buffer), offset(o.offset) {} + iterator_base (const iterator_base& o) + : buffer (o.buffer) + , offset (o.offset) + { + } inline iterator_base operator= (const iterator_base& o) { if (&o != this) { diff --git a/libs/ardour/ardour/minimp3.h b/libs/ardour/ardour/minimp3.h index b2c289928e..16c69a2c3f 100644 --- a/libs/ardour/ardour/minimp3.h +++ b/libs/ardour/ardour/minimp3.h @@ -1,5 +1,8 @@ #ifndef MINIMP3_H #define MINIMP3_H + +/* clang-format off */ + /* https://github.com/lieff/minimp3 To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. diff --git a/libs/ardour/ardour/operations.h b/libs/ardour/ardour/operations.h index 81a392ae8a..a661fbfa76 100644 --- a/libs/ardour/ardour/operations.h +++ b/libs/ardour/ardour/operations.h @@ -18,6 +18,7 @@ */ #include "ardour/libardour_visibility.h" +#include "pbd/properties.h" /** These are GQuarks for a subset of UI operations. We use these * so that the undo system can be queried to find out what operations diff --git a/libs/ardour/ardour/port_set.h b/libs/ardour/ardour/port_set.h index a9aba4ca1a..413160825b 100644 --- a/libs/ardour/ardour/port_set.h +++ b/libs/ardour/ardour/port_set.h @@ -89,8 +89,12 @@ public: private: friend class PortSet; - iterator_base(PS& list, DataType type, size_t index) - : _set(list), _type(type), _index(index) {} + iterator_base (PS& list, DataType type, size_t index) + : _set (list) + , _type (type) + , _index (index) + { + } PS& _set; DataType _type; ///< Ignored if NIL (to iterator over entire set) diff --git a/libs/ardour/ardour/route_group_member.h b/libs/ardour/ardour/route_group_member.h index b3023fe5cf..73f303b30a 100644 --- a/libs/ardour/ardour/route_group_member.h +++ b/libs/ardour/ardour/route_group_member.h @@ -21,6 +21,7 @@ #ifndef __libardour_route_group_member_h__ #define __libardour_route_group_member_h__ +#include "ardour/libardour_visibility.h" #include "pbd/controllable.h" #include "pbd/signals.h" diff --git a/libs/ardour/ardour/session_configuration.h b/libs/ardour/ardour/session_configuration.h index d9b55c9742..f100ca4667 100644 --- a/libs/ardour/ardour/session_configuration.h +++ b/libs/ardour/ardour/session_configuration.h @@ -24,6 +24,7 @@ #include #include +#include "ardour/types.h" #include "pbd/configuration.h" namespace ARDOUR { @@ -44,6 +45,7 @@ public: /* define accessor methods */ + /* clang-format off */ #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL #define CONFIG_VARIABLE(Type,var,name,value) \ @@ -55,11 +57,13 @@ public: #include "ardour/session_configuration_vars.h" #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL + /* clang-format on */ private: /* declare variables */ + /* clang-format off */ #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL #define CONFIG_VARIABLE(Type,var,name,value) PBD::ConfigVariable var; @@ -67,6 +71,7 @@ public: #include "ardour/session_configuration_vars.h" #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL + /* clang-format on */ int foo; diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index dfc62da49b..6393eac02e 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -321,8 +321,6 @@ Region::Region (const SourceList& srcs) { register_properties (); - _type = srcs.front()->type(); - use_sources (srcs); assert(_sources.size() > 0); diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 2aadecd723..90b6d674a3 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -6285,7 +6285,7 @@ Route::monitoring_state () const * TODO: FIXME */ - if (_session.config.get_punch_in() || _session.config.get_punch_out()) { + if ((_session.config.get_punch_in() || _session.config.get_punch_out()) && 0 != _session.locations()->auto_punch_location ()) { session_rec = _session.actively_recording (); } else { session_rec = _session.get_record_enabled(); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index b941c98304..408a025e1b 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2324,7 +2324,7 @@ Session::maybe_enable_record (bool rt_context) if (_transport_fsm->transport_speed() != 0) { maybe_allow_only_punch (); - if (!config.get_punch_in()) { + if (!config.get_punch_in() || 0 == locations()->auto_punch_location ()) { enable_record (); } /* When rolling, start recording immediately. @@ -7094,7 +7094,7 @@ Session::source_search_path (DataType type) const break; } - return std::move(sp); + return sp; } void diff --git a/libs/ardour/session_configuration.cc b/libs/ardour/session_configuration.cc index cb5c323804..b6984c2a1d 100644 --- a/libs/ardour/session_configuration.cc +++ b/libs/ardour/session_configuration.cc @@ -41,6 +41,8 @@ using namespace ARDOUR; using namespace PBD; +/* clang-format off */ + SessionConfiguration::SessionConfiguration () : /* construct variables */ @@ -151,6 +153,7 @@ SessionConfiguration::map_parameters (boost::function& funct #undef CONFIG_VARIABLE_SPECIAL } +/* clang-format on */ bool SessionConfiguration::load_state () diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 6d17ecd532..a965c127cf 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -521,7 +521,7 @@ Session::start_transport (bool after_loop) switch (record_status()) { case Enabled: - if (!config.get_punch_in()) { + if (!config.get_punch_in() || 0 == locations()->auto_punch_location ()) { /* This is only for UIs (keep blinking rec-en before * punch-in, don't show rec-region etc). The UI still * depends on SessionEvent::PunchIn and ensuing signals. diff --git a/libs/ardour/triggerbox.cc b/libs/ardour/triggerbox.cc index 0e33dadd28..9c4baf688f 100644 --- a/libs/ardour/triggerbox.cc +++ b/libs/ardour/triggerbox.cc @@ -4184,6 +4184,7 @@ TriggerBox::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp all_triggers[_active_scene]->bang (); } else { stop_all_quantized (); //empty slot, this should work as a Stop for the running clips + //TODO: can we set a flag so the UI reports that we are stopping? } } diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc index e5d9b65b40..9887e74680 100644 --- a/libs/ardour/vst_plugin.cc +++ b/libs/ardour/vst_plugin.cc @@ -191,10 +191,9 @@ VSTPlugin::set_parameter (uint32_t which, float newval, sampleoffset_t when) if (0 != rv) { _eff_bypassed = (value == 1); } else { - cerr << "effSetBypass failed rv=" << rv << endl; // XXX DEBUG -#ifdef ALLOW_VST_BYPASS_TO_FAIL // yet unused, see also vst_plugin.cc - // emit signal.. hard un/bypass from here?! -#endif + /* TODO: hard-bypass effect, emit signal, and ensure that the + * plugin is reactivated on the next call to this function.. + */ } return; } diff --git a/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h b/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h index b51a2c50fa..434ace298e 100644 --- a/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h +++ b/libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h @@ -22,6 +22,7 @@ #include +#include #include "gtkmm2ext/visibility.h" namespace Gtkmm2ext { diff --git a/libs/lua/LuaBridge/detail/Userdata.h b/libs/lua/LuaBridge/detail/Userdata.h index d86969d716..11e048d0e6 100644 --- a/libs/lua/LuaBridge/detail/Userdata.h +++ b/libs/lua/LuaBridge/detail/Userdata.h @@ -361,8 +361,8 @@ template class UserdataValue : public Userdata { private: - UserdataValue (UserdataValue const&); - UserdataValue operator= (UserdataValue const&); + UserdataValue (UserdataValue const&); + UserdataValue operator= (UserdataValue const&); char m_storage [sizeof (T)]; diff --git a/libs/surfaces/faderport/faderport.cc b/libs/surfaces/faderport/faderport.cc index b25b201298..c58c686115 100644 --- a/libs/surfaces/faderport/faderport.cc +++ b/libs/surfaces/faderport/faderport.cc @@ -321,13 +321,8 @@ FaderPort::handle_midi_pitchbend_message (MIDI::Parser &, MIDI::pitchbend_t pb) ButtonState trim_modifier; ButtonState width_modifier; - if (Profile->get_mixbus()) { - trim_modifier = ShiftDown; - width_modifier = ButtonState (0); - } else { - trim_modifier = UserDown; - width_modifier = ShiftDown; - } + trim_modifier = ShiftDown; + width_modifier = ButtonState (0); if ((button_state & trim_modifier) == trim_modifier ) { // mod+encoder = input trim std::shared_ptr trim = _current_stripable->trim_control (); diff --git a/libs/surfaces/faderport/faderport.h b/libs/surfaces/faderport/faderport.h index 88b886a3e3..62931dc15e 100644 --- a/libs/surfaces/faderport/faderport.h +++ b/libs/surfaces/faderport/faderport.h @@ -131,7 +131,7 @@ class FaderPort : public MIDISurface { ShiftDown = 0x1, RewindDown = 0x2, StopDown = 0x4, - UserDown = 0x8, + /* gap when we removed UserMode as a modifier */ LongPress = 0x10 }; diff --git a/libs/surfaces/faderport/gui.cc b/libs/surfaces/faderport/gui.cc index 34a82aff98..a11eba78e4 100644 --- a/libs/surfaces/faderport/gui.cc +++ b/libs/surfaces/faderport/gui.cc @@ -436,10 +436,6 @@ FPGUI::build_foot_action_combo (Gtk::ComboBox& cb, FaderPort::ButtonState bs) void FPGUI::build_user_action_combo (Gtk::ComboBox& cb, FaderPort::ButtonState bs) { -#ifndef MIXBUS - bs = FaderPort::ButtonState (bs|FaderPort::UserDown); -#endif - /* set the active "row" to the right value for the current button binding */ string current_action = fp.get_action (FaderPort::User, false, bs); /* lookup release action */ diff --git a/libs/surfaces/us2400/control_group.h b/libs/surfaces/us2400/control_group.h index debfe26b0f..40c1a2d0a4 100644 --- a/libs/surfaces/us2400/control_group.h +++ b/libs/surfaces/us2400/control_group.h @@ -19,6 +19,7 @@ #ifndef __ardour_us2400_control_protocol_control_group_h__ #define __ardour_us2400_control_protocol_control_group_h__ +#include #include namespace ArdourSurface { diff --git a/luasession/luasession.cc b/luasession/luasession.cc index 37a4d53ffe..6d42102956 100644 --- a/luasession/luasession.cc +++ b/luasession/luasession.cc @@ -57,9 +57,9 @@ static bool keep_running = true; static bool terminate_when_halted = false; /* extern VST functions */ -int vstfx_init (void*) { return 0; } -void vstfx_exit () {} -void vstfx_destroy_editor (VSTState*) {} +int vstfx_init (void*) { return 0; } +void vstfx_exit () { } +void vstfx_destroy_editor (VSTState*) { } class LuaReceiver : public Receiver { @@ -109,7 +109,7 @@ public: run_loop_thread = Glib::Threads::Thread::self (); } - bool call_slot (InvalidationRecord* ir, const boost::function& f) + bool call_slot (InvalidationRecord* ir, const boost::function& f) { if (Glib::Threads::Thread::self () == run_loop_thread) { cout << string_compose ("%1/%2 direct dispatch of call slot via functor @ %3, invalidation %4\n", event_loop_name (), pthread_name (), &f, ir); @@ -146,7 +146,8 @@ static void init () { if (!ARDOUR::init (true, localedir)) { - cerr << "Ardour failed to initialize\n" << endl; + cerr << "Ardour failed to initialize\n" + << endl; console_madness_end (); ::exit (EXIT_FAILURE); } @@ -449,7 +450,7 @@ setup_lua () AudioEngine::instance ()->stop (); - AudioEngine::instance()->Halted.connect_same_thread (engine_connections, boost::bind (&engine_halted, _1)); + AudioEngine::instance ()->Halted.connect_same_thread (engine_connections, boost::bind (&engine_halted, _1)); } static int @@ -542,6 +543,7 @@ usage () { printf ("ardour-lua - interactive Ardour Lua interpreter.\n\n"); printf ("Usage: ardour-lua [ OPTIONS ] [ file [args] ]\n\n"); + /* clang-format off */ /* 1 2 3 4 5 6 7 8 *2345678901234567890123456789012345678901234567890123456789012345678901234567890*/ printf ("Options:\n\ @@ -555,6 +557,7 @@ usage () printf ("\n\ Ardour at your finger tips...\n\ \n"); + /* clang-format on */ printf ("Report bugs to \n" "Website: \n"); console_madness_end (); @@ -566,12 +569,14 @@ main (int argc, char** argv) { const char* optstring = "hiVX"; + /* clang-format off */ const struct option longopts[] = { { "help", 0, 0, 'h' }, { "interactive", 0, 0, 'i' }, { "version", 0, 0, 'V' }, { "exit-when-halted", 0, 0, 'X' }, }; + /* clang-format on */ bool interactive = false; console_madness_begin (); @@ -612,7 +617,7 @@ main (int argc, char** argv) { /* push arguments to script, use scoped LuaRef */ - lua_State* L = lua->getState (); + lua_State* L = lua->getState (); luabridge::LuaRef arg (luabridge::newTable (L)); for (int i = 1; i < argc - optind; ++i) { arg[i] = std::string (argv[i + optind]); diff --git a/tools/linux_packaging/build b/tools/linux_packaging/build index a6dd741cd2..6f9f43d325 100755 --- a/tools/linux_packaging/build +++ b/tools/linux_packaging/build @@ -20,6 +20,7 @@ fi MIXBUS= WITH_HARRISON_LV2= +WITH_HARRISON_VBM= WITH_COMMERCIAL_X42_LV2= WITH_GRATIS_X42_LV2= WITH_GMSYNYTH= @@ -33,6 +34,7 @@ VENDOR=Ardour ; EXENAME=ardour BUILDTYPE="" NOSTRIP="libsuil|libserd|libsord|liblilv|libsratom|liblrdf|libardour|libpbd|libevoral" +X42PLUGINS="x42-autotune x42-midifilter x42-stereoroute setBfree x42-avldrums x42-limiter x42-tuner" : ${HARRISONCHANNELSTRIP=harrison_channelstrip} : ${HARRISONLV2=harrison_lv2s-n} @@ -75,6 +77,20 @@ while [ $# -gt 0 ] ; do WITH_NLS=1 ; APPNAME=LiveTrax ; shift ;; + --vbm) + VBM=1 + WITH_HARRISON_LV2=1 ; + WITH_HARRISON_VBM=1 ; + WITH_COMMERCIAL_X42_LV2=1 + WITH_GRATIS_X42_LV2=1 + WITH_NLS=1 ; + STRIP=all + APPNAME=MixbusVBM ; + VENDOR=Harrison ; + EXENAME=mixbusvbm ; + major_version="" + X42PLUGINS="$X42PLUGINS x42-testsignal x42-nodelay" + shift ;; --public) WITH_HARRISON_LV2=1 ; WITH_GMSYNYTH=1 @@ -710,6 +726,17 @@ if test x$WITH_HARRISON_LV2 != x ; then unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/${HARRISONLV2}.${HARCH}.zip" fi +if test x$WITH_HARRISON_VBM != x ; then + echo "Including Harrison VBM Channelstrip LV2" + mkdir -p $APPLIB/LV2 + + curl -s -S --fail -# \ + -z "${CACHEDIR}/harrison_vbm.${HARCH}.zip" \ + -o "${CACHEDIR}/harrison_vbm.${HARCH}.zip" \ + "${HARRISONDSPURL}/harrison_vbm.${HARCH}.zip" + unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/harrison_vbm.${HARCH}.zip" +fi + if test -n "$MIXBUS"; then echo "Adding Mixbus Channelstrip" @@ -746,7 +773,7 @@ if test -n "$MIXBUS"; then rm -f "${MediaClips}/"*.* unzip -q -o -d "${MediaClips}" "${CACHEDIR}/MixbusBundledMedia.zip" fi -elif test -z "$LIVETRAX"; then +elif test -z "$LIVETRAX" -a -z "$VBM"; then echo "Fetching Ardour bundled content" curl -s -S --fail -# \ @@ -798,7 +825,17 @@ if test x$WITH_GRATIS_X42_LV2 != x ; then echo "Adding gratis x42 Plugins" - for proj in x42-autotune x42-midifilter x42-stereoroute setBfree x42-avldrums x42-limiter x42-tuner; do + for proj in $X42PLUGINS; do + + if test -n "$VBM"; then + if test "$proj" = "setBfree"; then + continue + fi + if test "$proj" = "x42-avldrums"; then + continue + fi + fi + X42_VERSION=$(curl -s -S http://x42-plugins.com/x42/linux/${proj}.latest.txt) rsync -a -q --partial \ rsync://x42-plugins.com/x42/linux/${proj}-lv2-linux-${WARCH}-${X42_VERSION}.zip \ diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build index 6938b7a66a..4951526454 100755 --- a/tools/osx_packaging/osx_build +++ b/tools/osx_packaging/osx_build @@ -14,15 +14,18 @@ fi mkdir -p "$CACHEDIR" MIXBUS= +VBM= WITH_HARVID=1 WITH_XJADEO=1 WITH_HARRISON_LV2= +WITH_HARRISON_VBM= WITH_COMMERCIAL_X42_LV2= WITH_GRATIS_X42_LV2= WITH_GMSYNTH= STRIP=1 PRINT_SYSDEPS= WITH_NLS=1 +X42PLUGINS="x42-autotune x42-midifilter x42-stereoroute setBfree x42-avldrums x42-limiter x42-tuner" : ${HARRISONCHANNELSTRIP=harrison_channelstrip} : ${HARRISONLV2=harrison_lv2s-n} @@ -58,6 +61,19 @@ while [ $# -gt 0 ] ; do lower_case_appname=livetrax; BUNDLE_ID_BASE=com.harrisonconsoles shift ;; + --vbm) + VBM=1 + WITH_HARRISON_LV2=1 ; + WITH_HARRISON_VBM=1 ; + WITH_COMMERCIAL_X42_LV2=1 + WITH_GRATIS_X42_LV2=1 + STRIP= ; + PRODUCT_PKG_DIR=MixbusVBM; + lower_case_appname=mixbusvbm; + APPNAME=MixbusVBM ; + BUNDLENAME=MixbusVBM${major_version} ; + X42PLUGINS="$X42PLUGINS x42-testsignal x42-nodelay" + shift ;; --public) WITH_HARRISON_LV2=1 ; WITH_GMSYNTH=1 @@ -170,10 +186,13 @@ mkdir -p $ExportFormats mkdir -p $Etc mkdir -p $MackieControl mkdir -p $OSC -mkdir -p $PatchFiles mkdir -p $LuaScripts mkdir -p $Themes +if test -z "$VBM"; then +mkdir -p $PatchFiles +fi + EXECUTABLE=${BUNDLENAME} # @@ -233,6 +252,8 @@ if test x$MIXBUS != x ; then cp Mixbus.icns $Resources/appIcon.icns elif test x$LIVETRAX != x ; then cp LiveTrax.icns $Resources/appIcon.icns +elif test x$VBM != x ; then + cp MixbusVBM.icns $Resources/appIcon.icns else cp Ardour.icns $Resources/appIcon.icns fi @@ -345,9 +366,11 @@ done # MIDNAM Patch Files # got to be careful with names here -for x in $BUILD_ROOT/../share/patchfiles/*.midnam ; do - cp "$x" $PatchFiles -done +if test -z "$VBM"; then + for x in $BUILD_ROOT/../share/patchfiles/*.midnam ; do + cp "$x" $PatchFiles + done +fi # Lua Script Files # got to be careful with names here @@ -635,11 +658,11 @@ mkdir $PRODUCT_PKG_DIR DMGWINBOTTOM=440 DMGBACKGROUND=dmgbg -if test -n "$MIXBUS" -o -n "$LIVETRAX"; then +if test -n "$MIXBUS" -o -n "$LIVETRAX" -o -n "$VBM" ; then DMGBACKGROUND=dmgbgMB fi -echo "Creating Mixbus packaging directory" +echo "Creating $APPNAME packaging directory" mv $APPDIR $PRODUCT_PKG_DIR/ ################################################################################ @@ -692,6 +715,17 @@ if test x$WITH_HARRISON_LV2 != x ; then "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip" fi +if test x$WITH_HARRISON_VBM != x ; then + curl -s -S --fail -# \ + -z "${CACHEDIR}/harrison_vbm.${OSX_BENSID}.zip" \ + -o "${CACHEDIR}/harrison_vbm.${OSX_BENSID}.zip" \ + "${HARRISONDSPURL}/harrison_vbm.${OSX_BENSID}.zip" + + mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2" + bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ + "${CACHEDIR}/harrison_vbm.${OSX_BENSID}.zip" +fi + if test x$WITH_HARVID != x ; then echo "installing harvid..." HARVID_VERSION=$(curl -s -S http://ardour.org/files/video-tools/harvid_version.txt) @@ -768,7 +802,17 @@ if test x$WITH_GRATIS_X42_LV2 != x ; then echo "Adding gratis x42 plugins" mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2" - for proj in x42-autotune x42-midifilter x42-stereoroute setBfree x42-avldrums x42-limiter x42-tuner; do + for proj in $X42PLUGINS; do + + if test -n "$VBM"; then + if test "$proj" = "setBfree"; then + continue + fi + if test "$proj" = "x42-avldrums"; then + continue + fi + fi + X42_VERSION=$(curl -s -S http://${OSX_X42URI}/${proj}.latest.txt) rsync -a -q --partial \ rsync://${OSX_X42URI}/${proj}-lv2-${OSX_X42ID}-${X42_VERSION}.zip \ @@ -821,7 +865,7 @@ if test -n "$MIXBUS"; then bsdtar -C "${PRODUCT_PKG_DIR}/${MediaClips}" -xf \ "${CACHEDIR}/MixbusBundledMedia.zip" fi -elif test -z "$LIVETRAX"; then +elif test -z "$LIVETRAX" -a -z "$VBM" ; then echo "Fetching Ardour bundled content" curl -s -S --fail -# \ -z "${CACHEDIR}/ArdourBundledMedia.zip" \ diff --git a/tools/x-win/package.sh b/tools/x-win/package.sh index 715bac1d01..3b192d722c 100755 --- a/tools/x-win/package.sh +++ b/tools/x-win/package.sh @@ -30,12 +30,14 @@ PROGRAM_VERSION=${major_version} PRODUCT_NAME=Ardour PRODUCT_VERSION=${major_version} -WITH_HARRISON_LV2=1 ; +WITH_HARRISON_LV2=1 +WITH_HARRISON_VBM= WITH_COMMERCIAL_X42_LV2= WITH_GRATIS_X42_LV2= WITH_GMSYNTH=1 WITH_HARVID=1 WITH_XJADEO=1 +X42PLUGINS="x42-autotune x42-midifilter x42-stereoroute setBfree x42-avldrums x42-limiter x42-tuner" # TODO: grep from build/config.log instead while [ $# -gt 0 ] ; do @@ -61,6 +63,20 @@ while [ $# -gt 0 ] ; do PRODUCT_NAME=LiveTrax MANUAL_URL="https://rsrc.harrisonconsoles.com/livetrax/livetrax-live-manual/" shift ;; + --vbm) + VBM=1 + WITH_HARRISON_LV2=1 ; + WITH_HARRISON_VBM=1 ; + WITH_COMMERCIAL_X42_LV2=1 + WITH_GRATIS_X42_LV2=1 + WITH_GMSYNTH="" ; + PRODUCT_NAME=MixbusVBM + PROGRAM_KEY=MixbusVBM + PROGRAM_NAME=MixbusVBM-${PROGRAM_VERSION} + PROGRAM_VERSION="" + MANUAL_NAME="mixbusvbm-${major_version}-live-manual" + X42PLUGINS="$X42PLUGINS x42-testsignal x42-nodelay" + shift ;; --chanstrip) HARRISONCHANNELSTRIP=$2 ; shift; shift ;; esac done @@ -338,7 +354,17 @@ if test x$WITH_GRATIS_X42_LV2 != x ; then echo "Adding gratis x42 Plugins" - for proj in x42-autotune x42-midifilter x42-stereoroute setBfree x42-avldrums x42-limiter x42-tuner; do + for proj in $X42PLUGINS; do + + if test -n "$VBM"; then + if test "$proj" = "setBfree"; then + continue + fi + if test "$proj" = "x42-avldrums"; then + continue + fi + fi + X42_VERSION=$(curl -s -S http://x42-plugins.com/x42/win/${proj}.latest.txt) rsync -a -q --partial \ rsync://x42-plugins.com/x42/win/${proj}-lv2-${WARCH}-${X42_VERSION}.zip \ @@ -359,6 +385,21 @@ if test x$WITH_HARRISON_LV2 != x ; then unzip -q -d "$DESTDIR/LV2/" "${SRCCACHE}/${HARRISONLV2}.${WARCH}.zip" fi +if test x$WITH_HARRISON_VBM != x ; then + mkdir -p $DESTDIR/LV2 + + echo "Including Harrison VBM Channelstrip LV2" + + curl -s -S --fail -# \ + -z "${SRCCACHE}/harrison_vbm.${WARCH}.zip" \ + -o "${SRCCACHE}/harrison_vbm.${WARCH}.zip" \ + "${HARRISONDSPURL}/harrison_vbm.${WARCH}.zip" + unzip -q -d "$DESTDIR/LV2/" "${SRCCACHE}/harrison_vbm.${WARCH}.zip" + + # use mingw-11 gcc-12's libstdc++-6.dll (channelstrip compat) + cp -v "${SRCCACHE}/libstdc++-6.dll" $DESTDIR/bin/ +fi + if test -n "$MIXBUS"; then echo "Deploying Harrison Mixbus Channelstrip" @@ -392,7 +433,7 @@ if test -n "$MIXBUS"; then rm -f $DESTDIR/share/${LOWERCASE_DIRNAME}/media/*.* unzip -q -o -d "$DESTDIR/share/${LOWERCASE_DIRNAME}/media/" "${SRCCACHE}/MixbusBundledMedia.zip" fi -elif test -z "$LIVETRAX"; then +elif test -z "$LIVETRAX" -a -z "$VBM"; then echo "Fetching Ardour bundled media" curl -s -S --fail -# \ -z "${SRCCACHE}/ArdourBundledMedia.zip" \ @@ -465,7 +506,7 @@ InstallDirRegKey HKLM "Software\\${PRODUCT_NAME}\\${PRODUCT_ID}\\$WARCH" "Instal EOF -if test -n "$MIXBUS" -o -n "$LIVETRAX" ; then +if test -n "$MIXBUS" -o -n "$LIVETRAX" -o -n "$VBM"; then # TODO: proper welcome/finish text. cat >> $NSISFILE << EOF @@ -534,7 +575,7 @@ EOF fi if test x$WITH_HARRISON_LV2 != x ; then -if test -n "$MIXBUS"; then +if [ -n "$MIXBUS" ] || [ -n "$VBM" ]; then cat >> $NSISFILE << EOF Section "Harrison XT plugins (required)" SecXT SectionIn RO