mirror of
https://github.com/schnitzeltony/meta-musicians.git
synced 2026-09-12 12:49:31 +02:00
muse: upgrade 3.1 / rework / fix build / re-add to packagegroups/musicians-world
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
From e65afafddba1872c9983e891df7f8a7276a638aa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Wed, 26 Feb 2020 21:57:06 +0100
|
||||
Subject: [PATCH] Do not try to find aeffectx.h - it is not found for unknown
|
||||
reasons
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Inappropriate [OE-specific]
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
muse3/CMakeLists.txt | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/muse3/CMakeLists.txt b/muse3/CMakeLists.txt
|
||||
index 2746a50f..ebf97d10 100644
|
||||
--- a/muse3/CMakeLists.txt
|
||||
+++ b/muse3/CMakeLists.txt
|
||||
@@ -451,7 +451,6 @@ SET (AEFFECT_H_FOUND FALSE)
|
||||
SET (VST_NATIVE_SUPPORT FALSE)
|
||||
|
||||
if (ENABLE_VST_NATIVE)
|
||||
- find_file(VST_HEADER_CHECK aeffectx.h PATHS ${VST_HEADER_PATH} NO_DEFAULT_PATH)
|
||||
if (VST_HEADER_CHECK STREQUAL "VST_HEADER_CHECK-NOTFOUND")
|
||||
message("Native VST support disabled")
|
||||
else (VST_HEADER_CHECK STREQUAL "VST_HEADER_CHECK-NOTFOUND")
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
From 6e352b874ddffc6185e499cda12c1731d14a3708 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Wed, 17 Oct 2018 23:17:31 +0200
|
||||
Subject: [PATCH] fluidsynth: Follow API change introduced in fluidsynth 2.0.0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Submitted [1]
|
||||
|
||||
[1] https://github.com/muse-sequencer/muse/pull/630
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
synti/fluidsynth/fluidsynti.cpp | 44 ++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 43 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/synti/fluidsynth/fluidsynti.cpp b/synti/fluidsynth/fluidsynti.cpp
|
||||
index 11f51e57..75322d7e 100644
|
||||
--- a/synti/fluidsynth/fluidsynti.cpp
|
||||
+++ b/synti/fluidsynth/fluidsynti.cpp
|
||||
@@ -155,16 +155,22 @@ FluidSynth::~FluidSynth()
|
||||
std::cerr << DEBUG_ARGS << "Error unloading soundfont!" << fluid_synth_error(fluidsynth) << std::endl;
|
||||
}
|
||||
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
int err = delete_fluid_synth (fluidsynth);
|
||||
+#else
|
||||
+ delete_fluid_synth (fluidsynth);
|
||||
+#endif
|
||||
if(gui)
|
||||
delete gui;
|
||||
|
||||
if (initBuffer)
|
||||
delete [] initBuffer;
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
if (err == -1) {
|
||||
std::cerr << DEBUG_ARGS << "error while destroying synth: " << fluid_synth_error(fluidsynth) << std::endl;
|
||||
return;
|
||||
- }
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
bool FluidSynth::init(const char* name)
|
||||
@@ -1368,7 +1374,11 @@ const char* FluidSynth::getPatchName(int i, int, bool /*drum*/) const
|
||||
else {
|
||||
fluid_preset_t *preset = fluid_synth_get_channel_preset(fluidsynth, i);
|
||||
if (!preset) return "<unknown>";
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
return preset->get_name(preset);
|
||||
+#else
|
||||
+ return fluid_preset_get_name(preset);
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------
|
||||
@@ -1414,12 +1424,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const
|
||||
if (!channels[channel].drumchannel) {
|
||||
for (unsigned bank = 0; bank < 128; ++bank) {
|
||||
for (unsigned patch = 0; patch < 128; ++patch) {
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
preset = sfont->get_preset (sfont, bank, patch);
|
||||
+#else
|
||||
+ preset = fluid_sfont_get_preset (sfont, bank, patch);
|
||||
+#endif
|
||||
if (preset) {
|
||||
midiPatch.hbank = bank;
|
||||
midiPatch.lbank = 0xff; // Off
|
||||
midiPatch.prog = patch;
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
midiPatch.name = preset->get_name (preset);
|
||||
+#else
|
||||
+ midiPatch.name = fluid_preset_get_name (preset);
|
||||
+#endif
|
||||
return &midiPatch;
|
||||
}
|
||||
}
|
||||
@@ -1429,12 +1447,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const
|
||||
else { //This is a drumchannel
|
||||
int bank = 128;
|
||||
for (unsigned patch = 0; patch < 128; ++patch) {
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
preset = sfont->get_preset (sfont, bank, patch);
|
||||
+#else
|
||||
+ preset = fluid_sfont_get_preset (sfont, bank, patch);
|
||||
+#endif
|
||||
if (preset) {
|
||||
midiPatch.hbank = 0xff; // Off
|
||||
midiPatch.lbank = 0xff; // Off
|
||||
midiPatch.prog = patch;
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
midiPatch.name = preset->get_name(preset);
|
||||
+#else
|
||||
+ midiPatch.name = fluid_preset_get_name (preset);
|
||||
+#endif
|
||||
return &midiPatch;
|
||||
}
|
||||
}
|
||||
@@ -1466,13 +1492,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch)
|
||||
|
||||
for (unsigned bank = patch->hbank; bank < 128; ++bank) {
|
||||
for ( ; prog < 128; ++prog) {
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
preset = sfont->get_preset (sfont, bank, prog);
|
||||
+#else
|
||||
+ preset = fluid_sfont_get_preset (sfont, bank, prog);
|
||||
+#endif
|
||||
if (preset) {
|
||||
//printf("Preset info: bank: %d prog: %d name: %s\n", bank, prog, preset->get_name(preset));
|
||||
midiPatch.hbank = bank;
|
||||
midiPatch.lbank = 0xff; // Off
|
||||
midiPatch.prog = prog;
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
midiPatch.name = preset->get_name (preset);
|
||||
+#else
|
||||
+ midiPatch.name = fluid_preset_get_name (preset);
|
||||
+#endif
|
||||
return &midiPatch;
|
||||
}
|
||||
}
|
||||
@@ -1483,13 +1517,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch)
|
||||
unsigned bank = 128;
|
||||
unsigned prog = patch->prog;
|
||||
for (prog = patch->prog + 1; prog < 128; ++prog) {
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
preset = sfont->get_preset (sfont, bank, prog);
|
||||
+#else
|
||||
+ preset = fluid_sfont_get_preset (sfont, bank, prog);
|
||||
+#endif
|
||||
if (preset) {
|
||||
//printf("Preset info: bank: %d prog: %d name: %s\n",bank, prog, preset->get_name(preset));
|
||||
midiPatch.hbank = 0xff; // Off
|
||||
midiPatch.lbank = 0xff; // Off
|
||||
midiPatch.prog = prog;
|
||||
+#if FLUIDSYNTH_VERSION_MAJOR < 2
|
||||
midiPatch.name = preset->get_name (preset);
|
||||
+#else
|
||||
+ midiPatch.name = fluid_preset_get_name (preset);
|
||||
+#endif
|
||||
return &midiPatch;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.14.4
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
From 73f7b916692a9d0a6fbdb2603cdcc6109b3198cd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Wed, 26 Feb 2020 22:12:35 +0100
|
||||
Subject: [PATCH] muse-find-unused-wavs: convert to pythomn3
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
muse3/utils/muse-find-unused-wavs | 46 +++++++++++++++----------------
|
||||
1 file changed, 23 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/muse3/utils/muse-find-unused-wavs b/muse3/utils/muse-find-unused-wavs
|
||||
index 5aaf2707..3bc4e009 100755
|
||||
--- a/muse3/utils/muse-find-unused-wavs
|
||||
+++ b/muse3/utils/muse-find-unused-wavs
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#=============================================================================
|
||||
# MusE
|
||||
@@ -31,29 +31,29 @@ dirlist = os.listdir(".")
|
||||
|
||||
wavs=[]
|
||||
|
||||
-print "muse-find-unused-wavs - check wav file usage in all *.med files in current dir."
|
||||
-print ""
|
||||
-print "This utility scans all med files in the current dir, maps their"
|
||||
-print "wave file usage to what is currently available in current dir."
|
||||
-print "The output is printed."
|
||||
-print "Files no longer used are moved to the subdir 'unused'"
|
||||
-print "Press enter to continue."
|
||||
-print ""
|
||||
-raw_input()
|
||||
+print("muse-find-unused-wavs - check wav file usage in all *.med files in current dir.")
|
||||
+print("")
|
||||
+print("This utility scans all med files in the current dir, maps their")
|
||||
+print("wave file usage to what is currently available in current dir.")
|
||||
+print("The output is printed.")
|
||||
+print("Files no longer used are moved to the subdir 'unused'")
|
||||
+print("Press enter to continue.")
|
||||
+print("")
|
||||
+input()
|
||||
|
||||
for line in dirlist:
|
||||
if (line.endswith( ".wav")):
|
||||
#print "HA!", line
|
||||
wavs.append(line)
|
||||
-print "===================================================="
|
||||
-print "===================================================="
|
||||
-print " These wave files were found in current directory:\n"
|
||||
+print("====================================================")
|
||||
+print("====================================================")
|
||||
+print(" These wave files were found in current directory:\n")
|
||||
if wavs == []:
|
||||
- print "No files were found."
|
||||
+ print("No files were found.")
|
||||
sys.exit(0)
|
||||
else:
|
||||
for f in wavs:
|
||||
- print f
|
||||
+ print(f)
|
||||
|
||||
for line in dirlist:
|
||||
if (line.endswith( ".med") ):
|
||||
@@ -65,16 +65,16 @@ for line in dirlist:
|
||||
#print "found %s removing %s"%(line, wav)
|
||||
wavs.remove(wav)
|
||||
|
||||
-print "===================================================="
|
||||
-print " These wave files were unused:\n"
|
||||
+print("====================================================")
|
||||
+print(" These wave files were unused:\n")
|
||||
if wavs == []:
|
||||
- print "None"
|
||||
+ print("None")
|
||||
else:
|
||||
for f in wavs:
|
||||
- print f
|
||||
+ print(f)
|
||||
|
||||
- print "moving to new subdir unused, press Enter to continue"
|
||||
- raw_input()
|
||||
+ print("moving to new subdir unused, press Enter to continue")
|
||||
+ input()
|
||||
|
||||
try:
|
||||
os.mkdir('unused')
|
||||
@@ -82,6 +82,6 @@ else:
|
||||
pass
|
||||
for f in wavs:
|
||||
shutil.move(f,'unused')
|
||||
-print "===================================================="
|
||||
-print "===================================================="
|
||||
+print("====================================================")
|
||||
+print("====================================================")
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
SUMMARY = "MusE is a digital audio workstation"
|
||||
HOMEPAGE = "http://muse-sequencer.org/"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=328283dc167a7b37ffdc59f524a7fc4d"
|
||||
LIC_FILES_CHKSUM = "file://muse3/COPYING;md5=328283dc167a7b37ffdc59f524a7fc4d"
|
||||
|
||||
DEPENDS += " \
|
||||
qtbase \
|
||||
@@ -15,37 +15,43 @@ DEPENDS += " \
|
||||
serd \
|
||||
lilv \
|
||||
lv2 \
|
||||
lmms \
|
||||
harfbuzz \
|
||||
rubberband \
|
||||
"
|
||||
# Note: lmms is in DEPENDS for supplying VST header aeffectx.h only
|
||||
|
||||
inherit cmake_qt5 pkgconfig gtk-icon-cache features_check mime qt5-translation
|
||||
inherit cmake_qt5 pkgconfig gtk-icon-cache features_check mime qt5-translation mime-xdg
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/muse-sequencer/muse.git \
|
||||
file://0001-fluidsynth-Follow-API-change-introduced-in-fluidsynt.patch \
|
||||
file://0001-Do-not-try-to-find-aeffectx.h-it-is-not-found-for-un.patch \
|
||||
file://0002-muse-find-unused-wavs-convert-to-pythomn3.patch \
|
||||
"
|
||||
SRCREV = "1fde7ca69b1b7988595f4cfb58eae5c566324cac"
|
||||
PV = "3.0.2+git${SRCPV}"
|
||||
S = "${WORKDIR}/git/muse3"
|
||||
SRCREV = "50f4b71eab801aa49f35b66fdfdca9ab02e08238"
|
||||
PV = "3.1.0"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
OECMAKE_SOURCEPATH = "${S}/muse3"
|
||||
|
||||
EXTRA_OECMAKE += " \
|
||||
-DLIB_INSTALL_DIR=${libdir} \
|
||||
-DMODULES_BUILD_STATIC=1 \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--no-undefined \
|
||||
-DVST_HEADER_PATH=${S}/muse3/vestige \
|
||||
-DENABLE_VST_VESTIGE=1 \
|
||||
\
|
||||
-DENABLE_LV2=1 \
|
||||
-DENABLE_DSSI=1 \
|
||||
-DENABLE_FLUID=1 \
|
||||
-DENABLE_VST_NATIVE=1 \
|
||||
"
|
||||
# -DENABLE_EXPERIMENTAL=1 won't work
|
||||
# -DENABLE_VST_NATIVE=1
|
||||
|
||||
# Have no idea where flags are lost. Anyway driver would fail
|
||||
# | driver/libmuse_driver.so: error: undefined reference to 'pthread_cancel'
|
||||
# | driver/libmuse_driver.so: error: undefined reference to 'pthread_create'
|
||||
# | driver/libmuse_driver.so: error: undefined reference to 'pthread_join'
|
||||
# | driver/libmuse_driver.so: error: undefined reference to 'dlsym'
|
||||
# | collect2: error: ld returned 1 exit status
|
||||
LDFLAGS += "-lpthread -ldl"
|
||||
|
||||
do_install_append() {
|
||||
# remove python script to convert songs from very old muse to avoid
|
||||
# python rdeps
|
||||
rm -f ${D}${datadir}/muse-3.1/utils/muse-song-convert.py
|
||||
}
|
||||
|
||||
QT_TRANSLATION_FILES = "${datadir}/*/locale/*.qm"
|
||||
FILES_${PN}-locale = "${datadir}/muse-3.0/locale"
|
||||
@@ -53,27 +59,8 @@ FILES_${PN}-locale = "${datadir}/muse-3.0/locale"
|
||||
FILES_${PN} += " \
|
||||
${datadir}/mime \
|
||||
${datadir}/metainfo \
|
||||
\
|
||||
${datadir}/muse-3.0/didyouknow.txt \
|
||||
${datadir}/muse-3.0/splash.png \
|
||||
\
|
||||
${datadir}/muse-3.0/demos \
|
||||
${datadir}/muse-3.0/drummaps \
|
||||
${datadir}/muse-3.0/instruments \
|
||||
${datadir}/muse-3.0/metronome \
|
||||
${datadir}/muse-3.0/plugins \
|
||||
${datadir}/muse-3.0/presets \
|
||||
${datadir}/muse-3.0/pybridge \
|
||||
${datadir}/muse-3.0/scoreglyphs \
|
||||
${datadir}/muse-3.0/scripts \
|
||||
${datadir}/muse-3.0/themes \
|
||||
${datadir}/muse-3.0/templates \
|
||||
${datadir}/muse-3.0/utils \
|
||||
${datadir}/muse-3.0/wallpapers \
|
||||
\
|
||||
${libdir}/muse-3.0/synthi \
|
||||
${libdir}/muse-3.0/modules \
|
||||
${libdir}/muse-3.0/plugins \
|
||||
${datadir}/muse-3.1 \
|
||||
${libdir}/muse-3.1 \
|
||||
"
|
||||
|
||||
RDEPENDS_${PN} += "python"
|
||||
RDEPENDS_${PN} += "python3-core"
|
||||
|
||||
@@ -86,6 +86,7 @@ RDEPENDS_${PN} += " \
|
||||
lrdf \
|
||||
lsp-plugins-standalone lsp-plugins-ladspa lsp-plugins-lv2 lsp-plugins-vst \
|
||||
mixxx \
|
||||
muse \
|
||||
nekobee \
|
||||
ninjas2-standalone ninjas2-lv2 ninjas2-vst \
|
||||
noise-repellent \
|
||||
|
||||
Reference in New Issue
Block a user