Closed Axel-Erfurt closed 2 years ago
There is a API change in fluidsynth 2.2.3
Fluida should check which version is in use and set those callbacks accordingly. That seems to not work in your case.
So what is your fluidsynth version?
fluidsynth --version
FluidSynth runtime version 2.1.8
Copyright (C) 2000-2021 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.
FluidSynth executable version 2.1.8
Sample type=double
umpf, I'm so stupid. I've forgotten to check the minor version. Should be fixed now, thanks for reporting the issue. regards hermann
It didn't work, the error messages were the same.
Based on the error messages, I changed the file XSynth.cpp, then it works.
/*
* 0BSD
*
* BSD Zero Clause License
*
* Copyright (c) 2020 Hermann Meyer
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*
*/
#include "XSynth.h"
#include <sstream>
namespace xsynth {
// check which fluidsynth version is in use
#if FLUIDSYNTH_VERSION_MAJOR > 1
#if FLUIDSYNTH_VERSION_MINOR > 1
#if FLUIDSYNTH_VERSION_MICRO > 2
#define USE_FLUID_API 2
#else
#define USE_FLUID_API 1
#endif
#endif
#else
#define USE_FLUID_API 1
#endif
/****************************************************************
** class XSynth
**
** create a fluidsynth instance and load sondfont
*/
XSynth::XSynth() {
sf_id = -1;
adriver = NULL;
mdriver = NULL;
synth = NULL;
settings = NULL;
for(int i = 0; i < 16; i++) {
channel_instrument[i] = i;
}
reverb_on = 0;
reverb_level = 0.7;
reverb_width = 10.0;
reverb_damp = 0.4;
reverb_roomsize = 0.6;
chorus_on = 0;
chorus_type = 0;
chorus_depth = 3.0;
chorus_speed = 0.3;
chorus_level = 3.0;
chorus_voices = 3;
channel_pressure = 0;
};
XSynth::~XSynth() {
unload_synth();
};
void XSynth::setup(unsigned int SampleRate) {
// we don't use a audio driver, so we register the file driver to avoid
// that fluidsynth register it's default audi drivers for jack and alsa
// and/or try to start the sdl2 audio driver
#if FLUIDSYNTH_VERSION_MAJOR > 1
const char* driver[] = { "file", NULL };
fluid_audio_driver_register(driver);
#endif
settings = new_fluid_settings();
fluid_settings_setnum(settings, "synth.sample-rate", SampleRate);
//fluid_settings_setint (settings, "synth.threadsafe-api", 0);
//fluid_settings_setstr(settings, "audio.driver", "jack");
//fluid_settings_setstr(settings, "audio.jack.id", "mamba");
//fluid_settings_setint(settings, "audio.jack.autoconnect", 1);
//fluid_settings_setstr(settings, "midi.driver", "jack");
//fluid_settings_setstr(settings, "midi.jack.id", "mamba");
}
void XSynth::init_synth() {
synth = new_fluid_synth(settings);
//adriver = new_fluid_audio_driver(settings, synth);
// mdriver = new_fluid_midi_driver(settings, fluid_synth_handle_midi_event, synth);
}
int XSynth::synth_note_on(int channel, int note, int velocity) {
if (!synth) return -1;
return fluid_synth_noteon(synth, channel, note, velocity);
}
int XSynth::synth_note_off(int channel, int note) {
if (!synth) return -1;
return fluid_synth_noteoff(synth, channel, note);
}
int XSynth::synth_send_cc(int channel, int num, int value) {
if (!synth) return -1;
return fluid_synth_cc(synth, channel, num, value);
}
int XSynth::synth_send_pitch_bend(int channel, int value) {
if (!synth) return -1;
return fluid_synth_pitch_bend(synth, channel, value);
}
int XSynth::synth_pgm_changed(int channel, int num) {
if (!synth) return -1;
if (num >= (int)instruments.size()) return -1;
return fluid_synth_program_change(synth, channel, num);
}
int XSynth::synth_bank_changed(int channel, int num) {
if (!synth) return -1;
return fluid_synth_bank_select(synth, channel, num);
}
int XSynth::synth_process(int count, float *outl, float *outr) {
if (!synth) return -1;
return fluid_synth_write_float(synth,count, outl, 0, 1, outr, 0, 1);
}
int XSynth::load_soundfont(const char *path) {
if (!synth) return -1;
if (sf_id != -1) fluid_synth_sfunload(synth, sf_id, 0);
sf_id = fluid_synth_sfload(synth, path, 0);
if (sf_id == -1) {
return 1;
}
if (reverb_on) set_reverb_on(reverb_on);
if (chorus_on) set_chorus_on(chorus_on);
print_soundfont();
return 0;
}
void XSynth::print_soundfont() {
instruments.clear();
fluid_sfont_t * sfont = fluid_synth_get_sfont_by_id(synth, sf_id);
int offset = fluid_synth_get_bank_offset(synth, sf_id);
if(sfont == NULL) {
fprintf(stderr, "inst: invalid font number\n");
return ;
}
#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t preset;
sfont->iteration_start(sfont);
while ((sfont->iteration_next(sfont, &preset)) != 0) {
char inst[100];
snprintf(inst, 100, "%03d %03d %s", preset.get_banknum(&preset) + offset,
preset.get_num(&preset),preset.get_name(&preset));
instruments.push_back(inst);
}
#else
fluid_preset_t *preset;
fluid_sfont_iteration_start(sfont);
while((preset = fluid_sfont_iteration_next(sfont)) != NULL) {
char inst[100];
snprintf(inst, 100, "%03d %03d %s", fluid_preset_get_banknum(preset) + offset,
fluid_preset_get_num(preset),fluid_preset_get_name(preset));
instruments.push_back(inst);
}
#endif
set_default_instruments();
}
void XSynth::set_default_instruments() {
int bank = 0;
int program = 0;
for (unsigned int i = 0; i < 16; i++) {
if (i >= instruments.size()) break;
if ((unsigned int)channel_instrument[i] > instruments.size()) continue;
if (i == 9) continue;
std::istringstream buf(instruments[channel_instrument[i]]);
buf >> bank;
buf >> program;
fluid_synth_program_select (synth, i, sf_id, bank, program);
}
}
void XSynth::set_instrument_on_channel(int channel, int i) {
if (i >= (int)instruments.size()) return;
if (channel >15) channel = 0;
int bank = 0;
int program = 0;
std::istringstream buf(instruments[i]);
buf >> bank;
buf >> program;
fluid_synth_program_select (synth, channel, sf_id, bank, program);
}
int XSynth::get_instrument_for_channel(int channel) {
if (!synth) return -1;
if (channel >15) channel = 0;
fluid_preset_t *preset = fluid_synth_get_channel_preset(synth, channel);
if (!preset) return -1;
int offset = fluid_synth_get_bank_offset(synth, sf_id);
char inst[100];
#if FLUIDSYNTH_VERSION_MAJOR < 2
snprintf(inst, 100, "%03d %03d %s", preset->get_banknum(preset) + offset,
preset->get_num(preset),preset->get_name(preset));
#else
snprintf(inst, 100, "%03d %03d %s", fluid_preset_get_banknum(preset) + offset,
fluid_preset_get_num(preset),fluid_preset_get_name(preset));
#endif
std::string name = inst;
int ret = 0;
for(std::vector<std::string>::const_iterator i = instruments.begin(); i != instruments.end(); ++i) {
if ((*i).find(name) != std::string::npos) {
return ret;
}
ret++;
}
return -1;
}
void XSynth::set_reverb_on(int on) {
if (synth) {
#if USE_FLUID_API == 1
fluid_synth_set_reverb_on(synth, on);
#else
fluid_synth_set_reverb_on(synth, on);
#endif
set_reverb_levels();
}
}
void XSynth::set_reverb_levels() {
if (synth) {
#if USE_FLUID_API == 1
fluid_synth_set_reverb (synth, reverb_roomsize, reverb_damp,
reverb_width, reverb_level);
#else
fluid_synth_set_reverb_damp(synth, reverb_damp);
fluid_synth_set_reverb_level(synth, reverb_level);
fluid_synth_set_reverb_roomsize(synth, reverb_roomsize);
fluid_synth_set_reverb_width(synth, reverb_width);
#endif
}
}
void XSynth::set_chorus_on(int on) {
if (synth) {
#if USE_FLUID_API == 1
fluid_synth_set_chorus_on(synth, on);
#else
fluid_synth_set_chorus_on(synth, on);
#endif
set_chorus_levels();
}
}
void XSynth::set_chorus_levels() {
if (synth) {
#if USE_FLUID_API == 1
fluid_synth_set_chorus (synth, chorus_voices, chorus_level,
chorus_speed, chorus_depth, chorus_type);
#else
fluid_synth_set_chorus_depth(synth, chorus_depth);
fluid_synth_set_chorus_level(synth, chorus_level);
fluid_synth_set_chorus_nr(synth, chorus_voices);
fluid_synth_set_chorus_speed(synth, chorus_speed);
fluid_synth_set_chorus_type(synth, chorus_type);
#endif
}
}
void XSynth::set_channel_pressure(int channel) {
if (synth) {
fluid_synth_channel_pressure(synth, channel, channel_pressure);
}
}
void XSynth::panic() {
if (synth) {
fluid_synth_all_sounds_off(synth, -1);
}
}
void XSynth::unload_synth() {
if (sf_id != -1) {
fluid_synth_sfunload(synth, sf_id, 0);
sf_id = -1;
}
if (mdriver) {
delete_fluid_midi_driver(mdriver);
mdriver = NULL;
}
if (adriver) {
delete_fluid_audio_driver(adriver);
adriver = NULL;
}
if (synth) {
delete_fluid_synth(synth);
synth = NULL;
}
if (settings) {
delete_fluid_settings(settings);
settings = NULL;
}
}
} // namespace xsynth
But that just removes the support for fluidsynth version > 2.2.2 Please give my latest commit a other try, so that we could fix it really.
Now it works, thank you
brian@Esprimo-P400:/tmp$ git clone https://github.com/brummer10/Fluida.lv2.git
Klone nach 'Fluida.lv2' ...
remote: Enumerating objects: 196, done.
remote: Counting objects: 100% (196/196), done.
remote: Compressing objects: 100% (133/133), done.
remote: Total 196 (delta 127), reused 126 (delta 62), pack-reused 0
Empfange Objekte: 100% (196/196), 95.97 KiB | 712.00 KiB/s, fertig.
Löse Unterschiede auf: 100% (127/127), fertig.
brian@Esprimo-P400:/tmp$ cd Fluida.lv2
brian@Esprimo-P400:/tmp/Fluida.lv2$ git submodule init
Submodul 'libxputty' (https://github.com/brummer10/libxputty.git) für Pfad 'libxputty' in die Konfiguration eingetragen.
brian@Esprimo-P400:/tmp/Fluida.lv2$ git submodule update
Klone nach '/tmp/Fluida.lv2/libxputty' ...
Submodul-Pfad: 'libxputty': '5c69824ff8cdd6a81511fae34dfe684d263da267' ausgecheckt
brian@Esprimo-P400:/tmp/Fluida.lv2$ make
Submodule up to date
make[1]: Verzeichnis „/tmp/Fluida.lv2/libxputty“ wird betreten
make[2]: Verzeichnis „/tmp/Fluida.lv2/libxputty/Build“ wird betreten
cd ../xputty/resources/ && xxd -i directory_open.png > ../../Build/directory_open.c
cc -c directory_open.c -o directory_open.o
cd ../xputty/resources/ && xxd -i save.png > ../../Build/save.c
cc -c save.c -o save.o
cd ../xputty/resources/ && xxd -i choice.png > ../../Build/choice.c
cc -c choice.c -o choice.o
cd ../xputty/resources/ && xxd -i directory_select.png > ../../Build/directory_select.c
cc -c directory_select.c -o directory_select.o
cd ../xputty/resources/ && xxd -i approved.png > ../../Build/approved.c
cc -c approved.c -o approved.o
cd ../xputty/resources/ && xxd -i midikeyboard.png > ../../Build/midikeyboard.c
cc -c midikeyboard.c -o midikeyboard.o
cd ../xputty/resources/ && xxd -i colors.png > ../../Build/colors.c
cc -c colors.c -o colors.o
cd ../xputty/resources/ && xxd -i error.png > ../../Build/error.c
cc -c error.c -o error.o
cd ../xputty/resources/ && xxd -i gear.png > ../../Build/gear.c
cc -c gear.c -o gear.o
cd ../xputty/resources/ && xxd -i grid.png > ../../Build/grid.c
cc -c grid.c -o grid.o
cd ../xputty/resources/ && xxd -i settings.png > ../../Build/settings.c
cc -c settings.c -o settings.o
cd ../xputty/resources/ && xxd -i message.png > ../../Build/message.c
cc -c message.c -o message.o
cd ../xputty/resources/ && xxd -i image_directory.png > ../../Build/image_directory.c
cc -c image_directory.c -o image_directory.o
cd ../xputty/resources/ && xxd -i question.png > ../../Build/question.c
cc -c question.c -o question.o
cd ../xputty/resources/ && xxd -i cancel.png > ../../Build/cancel.c
cc -c cancel.c -o cancel.o
cd ../xputty/resources/ && xxd -i info.png > ../../Build/info.c
cc -c info.c -o info.o
cd ../xputty/resources/ && xxd -i exit.png > ../../Build/exit.c
cc -c exit.c -o exit.o
cd ../xputty/resources/ && xxd -i xputty_logo.png > ../../Build/xputty_logo.c
cc -c xputty_logo.c -o xputty_logo.o
cd ../xputty/resources/ && xxd -i file.png > ../../Build/file.c
cc -c file.c -o file.o
cd ../xputty/resources/ && xxd -i directory.png > ../../Build/directory.c
cc -c directory.c -o directory.o
cd ../xputty/resources/ && xxd -i warning.png > ../../Build/warning.c
cc -c warning.c -o warning.o
rm -f ../xputty/resources/xresources.h
for f in directory_open_png save_png choice_png directory_select_png approved_png midikeyboard_png colors_png error_png gear_png grid_png settings_png message_png image_directory_png question_png cancel_png info_png exit_png xputty_logo_png file_png directory_png warning_png; do \
echo 'EXTLD('${f}')' >> ../xputty/resources/xresources.h ; \
done
cc -MMD -Wall -c ../xputty/xfilepicker.c -o xfilepicker.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xwidget_private.c -o xwidget_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xadjustment.c -o xadjustment.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xasprintf.c -o xasprintf.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xputty.c -o xputty.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xcolor.c -o xcolor.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xpngloader.c -o xpngloader.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xchildlist.c -o xchildlist.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xadjustment_private.c -o xadjustment_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xchildlist_private.c -o xchildlist_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/xwidget.c -o xwidget.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xplayhead.c -o xplayhead.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xwaveview_private.c -o xwaveview_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistbox_private.c -o xlistbox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlabel.c -o xlabel.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistview.c -o xlistview.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xknob_private.c -o xknob_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xbutton_private.c -o xbutton_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xplayhead_private.c -o xplayhead_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtooltip_private.c -o xtooltip_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xcombobox.c -o xcombobox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtooltip.c -o xtooltip.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmultilistview.c -o xmultilistview.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xframe_private.c -o xframe_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtabbox.c -o xtabbox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistview_private.c -o xlistview_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xvaluedisplay.c -o xvaluedisplay.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xframe.c -o xframe.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xslider.c -o xslider.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmenu.c -o xmenu.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmeter_private.c -o xmeter_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xcombobox_private.c -o xcombobox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtuner.c -o xtuner.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmultilistview_private.c -o xmultilistview_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtabbox_private.c -o xtabbox_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xwaveview.c -o xwaveview.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xvaluedisplay_private.c -o xvaluedisplay_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlistbox.c -o xlistbox.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xslider_private.c -o xslider_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xknob.c -o xknob.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmenu_private.c -o xmenu_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xlabel_private.c -o xlabel_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xmeter.c -o xmeter.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xbutton.c -o xbutton.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/widgets/xtuner_private.c -o xtuner_private.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xfile-dialog.c -o xfile-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xdirectory-dialog.c -o xdirectory-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xsavefile-dialoge.c -o xsavefile-dialoge.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xmidi_keyboard.c -o xmidi_keyboard.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -c ../xputty/dialogs/xmessage-dialog.c -o xmessage-dialog.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmime.c -o xdgmime.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimecache.c -o xdgmimecache.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeparent.c -o xdgmimeparent.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeint.c -o xdgmimeint.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeicon.c -o xdgmimeicon.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimeglob.c -o xdgmimeglob.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimealias.c -o xdgmimealias.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
cc -MMD -Wall -DHAVE_MMAP -c ../xputty/xdgmime/xdgmimemagic.c -o xdgmimemagic.o -I. -I../xputty/header/ -I../xputty/header/widgets/ -I../xputty/resources/ -I../xputty/header/dialogs/ -I../xputty/xdgmime/ -fPIC `pkg-config --cflags --libs cairo x11` -lm
ar rcs libxputty.a xfilepicker.o xwidget_private.o xadjustment.o xasprintf.o xputty.o xcolor.o xpngloader.o xchildlist.o xadjustment_private.o xchildlist_private.o xwidget.o xplayhead.o xwaveview_private.o xlistbox_private.o xlabel.o xlistview.o xknob_private.o xbutton_private.o xplayhead_private.o xtooltip_private.o xcombobox.o xtooltip.o xmultilistview.o xframe_private.o xtabbox.o xlistview_private.o xvaluedisplay.o xframe.o xslider.o xmenu.o xmeter_private.o xcombobox_private.o xtuner.o xmultilistview_private.o xtabbox_private.o xwaveview.o xvaluedisplay_private.o xlistbox.o xslider_private.o xknob.o xmenu_private.o xlabel_private.o xmeter.o xbutton.o xtuner_private.o xfile-dialog.o xdirectory-dialog.o xsavefile-dialoge.o xmidi_keyboard.o xmessage-dialog.o directory_open.o save.o choice.o directory_select.o approved.o midikeyboard.o colors.o error.o gear.o grid.o settings.o message.o image_directory.o question.o cancel.o info.o exit.o xputty_logo.o file.o directory.o warning.o xdgmime.o xdgmimecache.o xdgmimeparent.o xdgmimeint.o xdgmimeicon.o xdgmimeglob.o xdgmimealias.o xdgmimemagic.o
mkdir -p ../libxputty/include/
cp ../xputty/header/*.h ../libxputty/include/
cp ../xputty/header/widgets/*.h ../libxputty/include/
cp ../xputty/header/dialogs/*.h ../libxputty/include/
cp ../xputty/resources/xresources.h ../libxputty/include/
cp ../xputty/xdgmime/*.h ../libxputty/include/
cp -r ../xputty/lv2_plugin ../libxputty/
cp libxputty.a ../libxputty/
make[2]: Verzeichnis „/tmp/Fluida.lv2/libxputty/Build“ wird verlassen
make[1]: Verzeichnis „/tmp/Fluida.lv2/libxputty“ wird verlassen
make[1]: Verzeichnis „/tmp/Fluida.lv2/Fluida“ wird betreten
g++ -std=c++11 -D_FORTIFY_SOURCE=2 -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -funroll-loops -fstack-protector -ffast-math -fomit-frame-pointer -fstrength-reduce `pkg-config --cflags --libs fluidsynth` -fdata-sections -Wl,--gc-sections -Wl,-z,relro,-z,now -Wl,--exclude-libs,ALL -msse3 -mfpmath=sse -mfxsr fluida.cpp XSynth.cpp -I. -lm -pthread -lpthread -shared -lm -Wl,-z,noexecstack -Wl,--no-undefined -fvisibility=hidden `pkg-config --cflags --libs fluidsynth` -o Fluida.so
cc -D_FORTIFY_SOURCE=2 -I. -I./dsp -I./plugin -fPIC -DPIC -O2 -Wall -funroll-loops -fstack-protector -ffast-math -fomit-frame-pointer -fstrength-reduce `pkg-config --cflags --libs fluidsynth` -fdata-sections -Wl,--gc-sections -Wl,-z,relro,-z,now -Wl,--exclude-libs,ALL -msse3 -mfpmath=sse -mfxsr -Wl,-z,nodelete fluida_ui.c -I../libxputty/libxputty/include/ -Wl,-z,noexecstack -Wl,--no-undefined -fvisibility=hidden -L. ../libxputty/libxputty/libxputty.a -shared `pkg-config --cflags --libs cairo x11` -lm -o Fluida_ui.so
strip -s -x -X -R .comment -R .note.ABI-tag Fluida.so
strip -s -x -X -R .comment -R .note.ABI-tag Fluida_ui.so
build finish, now run make install
make[1]: Verzeichnis „/tmp/Fluida.lv2/Fluida“ wird verlassen
brian@Esprimo-P400:/tmp/Fluida.lv2$ make install
Submodule up to date
make[1]: Verzeichnis „/tmp/Fluida.lv2/libxputty“ wird betreten
make[1]: Für das Ziel „install“ ist nichts zu tun.
make[1]: Verzeichnis „/tmp/Fluida.lv2/libxputty“ wird verlassen
make[1]: Verzeichnis „/tmp/Fluida.lv2/Fluida“ wird betreten
cp -r ./Fluida.lv2/* ~/.lv2/Fluida.lv2
. . , done
make[1]: Verzeichnis „/tmp/Fluida.lv2/Fluida“ wird verlassen
Nice, thanks for testing again. So we could mark that as fixed and close this issue.
Linux Mint 20.2 (Ubuntu 20.04) 64-bit