You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(27) |
Nov
(120) |
Dec
(16) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(65) |
Feb
(2) |
Mar
(53) |
Apr
(15) |
May
|
Jun
(19) |
Jul
(8) |
Aug
(35) |
Sep
(17) |
Oct
(70) |
Nov
(87) |
Dec
(94) |
2004 |
Jan
(133) |
Feb
(28) |
Mar
(45) |
Apr
(30) |
May
(113) |
Jun
(132) |
Jul
(33) |
Aug
(29) |
Sep
(26) |
Oct
(11) |
Nov
(21) |
Dec
(60) |
2005 |
Jan
(108) |
Feb
(153) |
Mar
(108) |
Apr
(44) |
May
(72) |
Jun
(90) |
Jul
(99) |
Aug
(67) |
Sep
(117) |
Oct
(38) |
Nov
(40) |
Dec
(27) |
2006 |
Jan
(16) |
Feb
(18) |
Mar
(21) |
Apr
(71) |
May
(26) |
Jun
(48) |
Jul
(27) |
Aug
(40) |
Sep
(20) |
Oct
(118) |
Nov
(69) |
Dec
(35) |
2007 |
Jan
(76) |
Feb
(98) |
Mar
(26) |
Apr
(126) |
May
(94) |
Jun
(46) |
Jul
(9) |
Aug
(89) |
Sep
(18) |
Oct
(27) |
Nov
|
Dec
(49) |
2008 |
Jan
(117) |
Feb
(40) |
Mar
(18) |
Apr
(30) |
May
(40) |
Jun
(10) |
Jul
(30) |
Aug
(13) |
Sep
(29) |
Oct
(23) |
Nov
(22) |
Dec
(35) |
2009 |
Jan
(19) |
Feb
(39) |
Mar
(17) |
Apr
(2) |
May
(6) |
Jun
(6) |
Jul
(8) |
Aug
(11) |
Sep
(1) |
Oct
(46) |
Nov
(13) |
Dec
(5) |
2010 |
Jan
(21) |
Feb
(3) |
Mar
(2) |
Apr
(7) |
May
(1) |
Jun
(26) |
Jul
(3) |
Aug
(10) |
Sep
(13) |
Oct
(35) |
Nov
(10) |
Dec
(17) |
2011 |
Jan
(26) |
Feb
(27) |
Mar
(14) |
Apr
(32) |
May
(8) |
Jun
(11) |
Jul
(4) |
Aug
(7) |
Sep
(27) |
Oct
(25) |
Nov
(7) |
Dec
(2) |
2012 |
Jan
(20) |
Feb
(17) |
Mar
(59) |
Apr
(31) |
May
|
Jun
(6) |
Jul
(7) |
Aug
(10) |
Sep
(11) |
Oct
(2) |
Nov
(4) |
Dec
(17) |
2013 |
Jan
(17) |
Feb
(2) |
Mar
(3) |
Apr
(4) |
May
(8) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
2014 |
Jan
(6) |
Feb
(26) |
Mar
(12) |
Apr
(14) |
May
(8) |
Jun
(7) |
Jul
(6) |
Aug
(6) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2015 |
Jan
(9) |
Feb
(5) |
Mar
(4) |
Apr
(9) |
May
(3) |
Jun
(2) |
Jul
(4) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(3) |
2016 |
Jan
(2) |
Feb
(4) |
Mar
(5) |
Apr
(4) |
May
(14) |
Jun
(31) |
Jul
(18) |
Aug
|
Sep
(10) |
Oct
(3) |
Nov
|
Dec
|
2017 |
Jan
(39) |
Feb
(5) |
Mar
(2) |
Apr
|
May
(52) |
Jun
(11) |
Jul
(36) |
Aug
(1) |
Sep
(7) |
Oct
(4) |
Nov
(10) |
Dec
(8) |
2018 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
(8) |
May
(28) |
Jun
(11) |
Jul
(2) |
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(2) |
Dec
(25) |
2019 |
Jan
(12) |
Feb
(50) |
Mar
(14) |
Apr
(3) |
May
(8) |
Jun
(17) |
Jul
(10) |
Aug
(2) |
Sep
(21) |
Oct
(10) |
Nov
|
Dec
(28) |
2020 |
Jan
(4) |
Feb
(10) |
Mar
(7) |
Apr
(16) |
May
(10) |
Jun
(7) |
Jul
(2) |
Aug
(5) |
Sep
(3) |
Oct
(3) |
Nov
(2) |
Dec
(1) |
2021 |
Jan
|
Feb
(5) |
Mar
(13) |
Apr
(13) |
May
(7) |
Jun
|
Jul
(1) |
Aug
(11) |
Sep
(12) |
Oct
(7) |
Nov
(26) |
Dec
(41) |
2022 |
Jan
(23) |
Feb
|
Mar
(8) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(1) |
2023 |
Jan
|
Feb
(5) |
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(11) |
Sep
(5) |
Oct
(1) |
Nov
|
Dec
|
2024 |
Jan
(2) |
Feb
(4) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(10) |
Dec
|
2025 |
Jan
|
Feb
(4) |
Mar
(1) |
Apr
(2) |
May
|
Jun
(17) |
Jul
(1) |
Aug
(4) |
Sep
(7) |
Oct
(1) |
Nov
|
Dec
|
From: Jan F. <fl...@ze...> - 2021-12-29 20:59:29
|
Christian, Thanks for your explanation. I conclude that it is only needed to set notes on/off. Stops do not need on/off. If you do not need a instrument, do not sent notes to it. The next file sample-release-060-C.wav contains a sinus tone 220 hz. The file sample-Default-060-C.wav a normal principal. Using Fantasia / Linuxsampler works well. jOrgan / Linuxsampler does not work for the release part (only note on/off!) jOrgan / sForzando works correct sForzando is not advisable because it cannot handle large organs. Linuxsampler provides for me a beautiful organ with 150 instruments/stops. Of course they are not needed all at one time, but LS can handle them, load them. Kind regards, Jan Flikweert ------------------------------------- Test.sfz <group> lokey=36 hikey=96 <region> sample=release-060-C.wav trigger=release loop_mode=one_shot <region> sample=Default-060-C.wav loop_mode=loop_sustain loop_start=97041 loop_end=163161 ------------------------------------------- Kind regards, Jan Flikweert -----Original Message----- From: Christian Schoenebeck [mailto:sch...@li...] Sent: woensdag 29 december 2021 18:44 To: lin...@li... Subject: Re: [Linuxsampler-devel] midi message fantasia note off On Dienstag, 28. Dezember 2021 08:01:06 CET Jan Flikweert wrote: > Christian, > > Probably more clear I translated the midi messages I send from jOrgan to > LSCP: > > Note on: > > "SEND CHANNEL MIDI_DATA NOTE_ON 0 60 127" > > Note off: > > "SEND CHANNEL MIDI_DATA NOTE_OFF 0 60 0" That's a note-off, hence release triggered samples *are* played at this point. > Instrument/Stop on: > > "SEND CHANNEL MIDI_DATA CC 0 7 127" That means "set channel volume to maximum". No release sample played. > Instrument/Stop off: > > "SEND CHANNEL MIDI_DATA CC 0 1 0" That means "set Modulation Wheel to minimum". No release sample played. > "SEND CHANNEL MIDI_DATA CC 0 7 0" That means "set channel volume to minimum". No release sample played. Release triggered samples are only played if *notes* are released, which is e.g. on note-off, sustain release CC, exclusive groups conflicts. That's the expected behaviour, not a bug, and is consistent among all players, not just LS. If you turn the volume down to zero, the notes are still there. They continue to play and still advance their playback positions accordingly. You just can't hear them, but that's it. If you want to play samples on CCs, you have to use CC triggered samples instead. That's supported on patch level both by SFZ and gig format. Additionally you can also write an NKSP script if you really want some fancy behaviour that goes beyond of what the built-in patch CC triggered mechanisms can do. CU Christian _______________________________________________ Linuxsampler-devel mailing list Lin...@li... https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel |
From: Christian S. <sch...@li...> - 2021-12-29 17:44:27
|
On Dienstag, 28. Dezember 2021 08:01:06 CET Jan Flikweert wrote: > Christian, > > Probably more clear I translated the midi messages I send from jOrgan to > LSCP: > > Note on: > > "SEND CHANNEL MIDI_DATA NOTE_ON 0 60 127" > > Note off: > > "SEND CHANNEL MIDI_DATA NOTE_OFF 0 60 0" That's a note-off, hence release triggered samples *are* played at this point. > Instrument/Stop on: > > "SEND CHANNEL MIDI_DATA CC 0 7 127" That means "set channel volume to maximum". No release sample played. > Instrument/Stop off: > > "SEND CHANNEL MIDI_DATA CC 0 1 0" That means "set Modulation Wheel to minimum". No release sample played. > "SEND CHANNEL MIDI_DATA CC 0 7 0" That means "set channel volume to minimum". No release sample played. Release triggered samples are only played if *notes* are released, which is e.g. on note-off, sustain release CC, exclusive groups conflicts. That's the expected behaviour, not a bug, and is consistent among all players, not just LS. If you turn the volume down to zero, the notes are still there. They continue to play and still advance their playback positions accordingly. You just can't hear them, but that's it. If you want to play samples on CCs, you have to use CC triggered samples instead. That's supported on patch level both by SFZ and gig format. Additionally you can also write an NKSP script if you really want some fancy behaviour that goes beyond of what the built-in patch CC triggered mechanisms can do. CU Christian |
From: Quick K. <hep...@ya...> - 2021-12-29 04:37:47
|
--- a/src/common/RTMath.cpp 2021-12-25 18:37:48.733719298 +0800 +++ b/src/common/RTMath.cpp 2021-12-25 21:54:21.914927577 +0800 @@ -73,6 +73,10 @@ return t; #elif defined(__APPLE__) return (time_stamp_t) mach_absolute_time(); + #elif defined(__loongarch64) + uint64_t t,tmpAAA; + __asm__ __volatile__ ("rdtime.d %0, %1":"=r"(t),"=r"(tmpAAA)); + return time_stamp_t(t>>8); #else // we don't want to use a slow generic solution # error "Sorry, LinuxSampler lacks time stamp code for your system." # error "Please report this error and the CPU you are using to the LinuxSampler developers mailing list!" --- a/linuxsampler/src/common/atomic.h 2021-12-29 04:22:34.535260312 +0800 +++ b/linuxsampler/src/common/atomic.h 2021-12-29 03:43:41.403752006 +0800 @@ -1186,6 +1186,63 @@ #endif /* __ARCH_M68K_ATOMIC __ */ #else +#ifdef __loongarch64 + +typedef struct { volatile int counter; } atomic_t; +#define ATOMIC_INIT(i) { (i) } + +#define atomic_read(v) ((v)->counter) +#define atomic_set(v,i) (((v)->counter) = (i)) + +static __inline__ void atomic_add(int i, volatile atomic_t *v) +{ + __asm__ __volatile__( + "amadd_db.w $zero, %1, %0" + :"+ZB" (v->counter) + :"r"(i) + :"memory"); +} + +static __inline__ void atomic_sub(int i, volatile atomic_t *v) +{ + __asm__ __volatile__( + "amadd_db.w $zero, %1, %0" + :"+ZB" (v->counter) + :"r"(-i) + :"memory"); +} + +#define atomic_inc(v) (atomic_add(1, (v))) +#define atomic_dec(v) (atomic_sub(1, (v))) + +static __inline__ int haha(int i, volatile atomic_t *v) +{ + int result; + __asm__ __volatile__( + "amadd_db.w %1, %2, %0" + :"+ZB"(v->counter),"=&r"(result) + :"r"(-i) + :"memory"); + return (result-i)==0; +} +#define atomic_dec_and_test(v) haha(1,(v)) + +static inline int atomic_add_negative(int i, volatile atomic_t *v) +{ + int result; + __asm__ __volatile__( + "amadd_db.w %1, %2, %0" + :"+ZB"(v->counter),"=&r"(result) + :"r"(i) + :"memory"); + return (result+i)<0; +} + +#define mb() __asm__ __volatile__("dbar 0" : : : "memory") +#define rmb() mb() +#define wmb() mb() + +#else #warning libs/pbd has no implementation of strictly atomic operations for your hardware. @@ -1231,6 +1288,7 @@ } # endif /* __NO_STRICT_ATOMIC */ +# endif /* loongarch64 */ # endif /* m68k */ # endif /* mips */ # endif /* s390 */ @@ -1288,3 +1346,4 @@ #endif /* linux */ #endif /* __linuxsampler_atomic_h__ */ + |
From: Andrew C <cou...@gm...> - 2021-12-28 10:21:48
|
Hi Christian, Thanks a bunch for setting me on the right track with this. I can now see that the engine is indeed successfully loading the instrument plugin, both at startup and when an instrument editor is requested: // load the DLL (the plugins should register themselfes automatically) void* pDLL = dlopen(sPath.c_str(), RTLD_NOW); if (pDLL) { LoadedDLLs.push_back(pDLL); fprintf (stderr, "Successfully loaded: %s\n", sPath.c_str() ); } else { std::cerr << "Failed to load instrument editor plugin: '" << sPath << "', cause: " << dlerror() << std::endl; } } closedir(hDir); This is the fprintf'ed bit of code + a force reload of the plugins for testing I'm using in AvailableEditors to track what's happening: std::vector<String> InstrumentEditorFactory::AvailableEditors() { // make sure plugins were loaded already bPluginsLoaded = false; //force reload them fprintf (stderr, "Trying to find an available editor.\n"); LoadPlugins(); // render result std::vector<String> result; std::map<String, InnerFactory*>::iterator iter = InnerFactories.begin(); fprintf (stderr, "iterate InnerFactories.begin.\n"); for (; iter != InnerFactories.end(); iter++) { fprintf(stderr, "Iterating through editors..\n "); result.push_back(iter->first); } fprintf (stderr, "Returning available editors result.\n"); return result; } Registered sampler engines: 'GIG','SF2','SFZ' Registered MIDI input drivers: ALSA,JACK Registered audio output drivers: ALSA,JACK Trying to find an available editor. Loading instrument editor plugins...Successfully loaded: /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so OK Iterating through editors.. Returning available editors result. Registered instrument editors: 'gigedit' This is the output when the instrument editor is successfully loaded ("interactively" using "EDIT CHANNEL INSTRUMENT 0" the LSCP shell): Data type is libgig and data version is 4.3.0.svn34 Trying to find an available editor. Loading instrument editor plugins...Successfully loaded: /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so OK InnerFactories.begin. Iterating through editors.. Returning available editors result. Instrument plugin is 'gigedit' Searching for matching editors now... Trying to find an editor that can support: libgig and 4.3.0.svn34 Found a matching editor. :) Trying to find an available editor. Loading instrument editor plugins...Successfully loaded: /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so OK InnerFactories.begin. Iterating through editors.. Returning available editors result. Registered instrument editors again: 'gigedit' Searched finished for matching editors... Found matching editor 'gigedit' for instrument ('/home/andrew/Desktop/Samples/1 Woodwinds/Dan Dean Solo Woodwinds/Dan Dean Cl arinet 5.1.gig', 0) having data structure ('libgig','4.3.0.svn34') InstrumentEditor::Launch(instr=0x7f41b042b9d0,type=libgig,version=4.3.0.svn34) This is the output when I, shall we say, non-interactively (i.e netcat) send a command to Linuxsampler: Data type is libgig and data version is 4.3.0.svn34 Trying to find an available editor. Loading instrument editor plugins...Successfully loaded: /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so OK InnerFactories.begin. Returning available editors result. Instrument plugin is Searching for matching editors now... Trying to find an editor that can support: libgig and 4.3.0.svn34 Trying to find an available editor. Loading instrument editor plugins...Successfully loaded: /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so OK InnerFactories.begin. Returning available editors result. Registered instrument editors again: Searched finished for matching editors... vEditors looks empty. What about available editors string?Trying to find an available editor. Loading instrument editor plugins...Successfully loaded: /usr/local/lib/linuxsampler/plugins/libgigeditlinuxsamplerplugin.so OK InnerFactories.begin. Returning available editors result. ERROR: There is not any instrument editor registered to the sampler! It looks like the iterating through the previously registered editors gets "forgotten" or otherwise the 'InnerFactories.begin()' loop is empty in the 'non-interactive' example.. Phew.. That's enough wall of text then! Cheers, Andrew. On Mon, Dec 27, 2021 at 2:41 PM Christian Schoenebeck < sch...@li...> wrote: > On Sonntag, 26. Dezember 2021 21:57:12 CET Andrew C wrote: > > *Diff patch for debugging/illustration purposes:* > > > > Index: LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp > > =================================================================== > > --- LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp (revision > > 4010) > > +++ LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp (working > > copy) > > @@ -216,6 +216,8 @@ > > InstrumentEditor* > > > InstrumentResourceManager::LaunchInstrumentEditor(LinuxSampler::EngineChanne > > l* pEngineChannel, instrument_id_t ID, > > void* pUserData) throw (InstrumentManagerException) { > > const String sDataType = GetInstrumentDataStructureName(ID); > > const String sDataVersion = > GetInstrumentDataStructureVersion(ID); > > + fprintf (stderr, "Data type is %s and data version is %s\n", > > sDataType.c_str(), sDataVersion.c_str()); > > + fprintf (stderr, "Instrument plugin is %s\n", > > InstrumentEditorFactory::AvailableEditorsAsString().c_str()); > > The output of this was an empty string there, which means the sampler did > not > load *any* plugin DLL at all. > > > // find instrument editors capable to handle given instrument > > std::vector<String> vEditors = > > InstrumentEditorFactory::MatchingEditors(sDataType, > > sDataVersion); > > @@ -224,10 +226,16 @@ > > fprintf(stderr, > > "ERROR: There is not any instrument editor registered > > to the sampler!\n" > > "[Cause: Make sure an instrument editor is installed > to > > the sampler's plugin dir (%s)]\n", > > - > InstrumentEditorFactory::PluginDirsAsString().c_str() > > - ); > > + > > > InstrumentEditorFactory::PluginDirsAsString().c_str()); > > + if (InstrumentEditorFactory::FoundPlugins) { > > + fprintf (stderr, > > + "We found and registered plugins in %s at startup, > but > > currently available plugins are:%s \n", > > + > InstrumentEditorFactory::PluginDirsAsString().c_str(), > > + > > > > InstrumentEditorFactory::AvailableEditorsAsString().c_str() > > > > + ); > > + }; > > throw InstrumentManagerException( > > - "There is not any instrument editor installed and > > registered to the sampler" > > + "netcat seems to cause issues." > > ); > > Has nothing to do with netcat. > > > } > > fprintf(stderr, > > Index: LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp > > =================================================================== > > --- LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp (revision 4010) > > +++ LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp (working copy) > > @@ -44,6 +44,7 @@ > > std::map<String, InstrumentEditorFactory::InnerFactory*> > > InstrumentEditorFactory::InnerFactories; > > > > bool InstrumentEditorFactory::bPluginsLoaded = false; > > + bool InstrumentEditorFactory::FoundPlugins = false; > > > > std::list<void*> InstrumentEditorFactory::LoadedDLLs; > > > > @@ -287,6 +288,7 @@ > > } > > closedir(hDir); > > #endif > > + InstrumentEditorFactory::FoundPlugins = true; > > return true; > > } > > Wrong assumption. At this point it just *tried* to load plugins. It does > not > mean it was able to actually load any plugin successfully. > > You should rather debug what happens in the loop above. > > for (dirent* pEntry = readdir(hDir); pEntry; pEntry = readdir(hDir)) { > ... > } > > That loops iterares over all files found in the plugin dir and then tries > to > load every file that is actually a DLL file (i.e. filename ending with > ".so"). > > > Index: LS-DEBUG/src/plugins/InstrumentEditorFactory.h > > =================================================================== > > --- LS-DEBUG/src/plugins/InstrumentEditorFactory.h (revision 4010) > > +++ LS-DEBUG/src/plugins/InstrumentEditorFactory.h (working copy) > > @@ -98,6 +98,7 @@ > > static String PluginDirsAsString(); > > static std::vector<String> AvailableEditors(); > > static String AvailableEditorsAsString(); > > + static bool FoundPlugins; > > static std::vector<String> MatchingEditors(String sTypeName, > String > > sTypeVersion); > > static void LoadPlugins(); > > static void ClosePlugins(); > > > > > > _______________________________________________ > Linuxsampler-devel mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel > |
From: Jan F. <fl...@ze...> - 2021-12-28 07:01:25
|
Christian, Probably more clear I translated the midi messages I send from jOrgan to LSCP: Note on: "SEND CHANNEL MIDI_DATA NOTE_ON 0 60 127" Note off: "SEND CHANNEL MIDI_DATA NOTE_OFF 0 60 0" Instrument/Stop on: "SEND CHANNEL MIDI_DATA CC 0 7 127" Instrument/Stop off: "SEND CHANNEL MIDI_DATA CC 0 1 0" "SEND CHANNEL MIDI_DATA CC 0 7 0" Kind regards, Jan Flikweert -----Original Message----- From: Christian Schoenebeck [mailto:sch...@li...] Sent: maandag 27 december 2021 16:29 To: lin...@li... Subject: Re: [Linuxsampler-devel] midi message fantasia note off On Sonntag, 26. Dezember 2021 22:13:05 CET Jan Flikweert wrote: > Hi, > > I will explain my problem. > > I am working with release samples/sfz. This works good using fantasia. Not > good using jOrgan. jOrgan/Linuxsampler works very good, but without > release. JSampler and QSampler both control the sampler purely via network protocol (called "LSCP"), in this case it is this LSCP command: SEND CHANNEL MIDI_DATA <midi-msg> <sampler-chan> <arg1> <arg2> http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#rfc.section .6.4.39 > I suppose it has to do with the note_off/note_on messages in > jOrgan. Note on in jorgan is only set 144,set 36, set velocity. Note off is > set 128,set 36,.. and set 176,set 1, set 0 which is cc 1. MIDI note-off is [1]: 1000nnnn 0kkkkkkk 0vvvvvvv MIDI note-on is: 1001nnnn 0kkkkkkk 0vvvvvvv MIDI control change is: 1011nnnn 0ccccccc 0vvvvvvv Where nnnn is the MIDI channel number (0..15) kkkkkkk is the key/note number (0..127) ccccccc is the controller number (0..127) vvvvvvv is velocity (note-on / note-off) or the new controller value (0..127) (control change) Note: - Note-On with velocity 0 means "note-off". - MIDI allows to omit the status byte on subsequent messages, which is called "running status". That's basically just a simple way of data compression [2]. [1] https://www.midi.org/specifications-old/item/table-1-summary-of-midi-message [2] http://midi.teragonaudio.com/tech/midispec/run.htm CU Christian _______________________________________________ Linuxsampler-devel mailing list Lin...@li... https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel |
From: Jan F. <fl...@ze...> - 2021-12-28 06:07:59
|
Christian, Thanks. Your explanation of binary midi is clear to me and is equal to the decimal jOrgan midi. jOrgan uses the LSCP protocol through localhost/8888 to send the .lscp file. jOrgan uses midi protocol through an midiport to toggle note on/off and toggle stops on/off. Fantasia/QSampler use LSCP protocol to toggle note on/off and toggle stops on/off. That works fine in jOrgan, but not using in SFZ trigger=release to play a given release part of a sample. Is this an error of Linuxsampler? How to play a given release part of a sample GIG/SFZ through MIDI? Kind regards, Jan Flikweert -------------------------- -----Original Message----- From: Christian Schoenebeck [mailto:sch...@li...] Sent: maandag 27 december 2021 16:29 To: lin...@li... Subject: Re: [Linuxsampler-devel] midi message fantasia note off On Sonntag, 26. Dezember 2021 22:13:05 CET Jan Flikweert wrote: > Hi, > > I will explain my problem. > > I am working with release samples/sfz. This works good using fantasia. Not > good using jOrgan. jOrgan/Linuxsampler works very good, but without > release. JSampler and QSampler both control the sampler purely via network protocol (called "LSCP"), in this case it is this LSCP command: SEND CHANNEL MIDI_DATA <midi-msg> <sampler-chan> <arg1> <arg2> http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#rfc.section .6.4.39 > I suppose it has to do with the note_off/note_on messages in > jOrgan. Note on in jorgan is only set 144,set 36, set velocity. Note off is > set 128,set 36,.. and set 176,set 1, set 0 which is cc 1. MIDI note-off is [1]: 1000nnnn 0kkkkkkk 0vvvvvvv MIDI note-on is: 1001nnnn 0kkkkkkk 0vvvvvvv MIDI control change is: 1011nnnn 0ccccccc 0vvvvvvv Where nnnn is the MIDI channel number (0..15) kkkkkkk is the key/note number (0..127) ccccccc is the controller number (0..127) vvvvvvv is velocity (note-on / note-off) or the new controller value (0..127) (control change) Note: - Note-On with velocity 0 means "note-off". - MIDI allows to omit the status byte on subsequent messages, which is called "running status". That's basically just a simple way of data compression [2]. [1] https://www.midi.org/specifications-old/item/table-1-summary-of-midi-message [2] http://midi.teragonaudio.com/tech/midispec/run.htm CU Christian _______________________________________________ Linuxsampler-devel mailing list Lin...@li... https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel |
From: Christian S. <sch...@li...> - 2021-12-27 15:28:47
|
On Sonntag, 26. Dezember 2021 22:13:05 CET Jan Flikweert wrote: > Hi, > > I will explain my problem. > > I am working with release samples/sfz. This works good using fantasia. Not > good using jOrgan. jOrgan/Linuxsampler works very good, but without > release. JSampler and QSampler both control the sampler purely via network protocol (called "LSCP"), in this case it is this LSCP command: SEND CHANNEL MIDI_DATA <midi-msg> <sampler-chan> <arg1> <arg2> http://www.linuxsampler.org/api/draft-linuxsampler-protocol.html#rfc.section.6.4.39 > I suppose it has to do with the note_off/note_on messages in > jOrgan. Note on in jorgan is only set 144,set 36, set velocity. Note off is > set 128,set 36,.. and set 176,set 1, set 0 which is cc 1. MIDI note-off is [1]: 1000nnnn 0kkkkkkk 0vvvvvvv MIDI note-on is: 1001nnnn 0kkkkkkk 0vvvvvvv MIDI control change is: 1011nnnn 0ccccccc 0vvvvvvv Where nnnn is the MIDI channel number (0..15) kkkkkkk is the key/note number (0..127) ccccccc is the controller number (0..127) vvvvvvv is velocity (note-on / note-off) or the new controller value (0..127) (control change) Note: - Note-On with velocity 0 means "note-off". - MIDI allows to omit the status byte on subsequent messages, which is called "running status". That's basically just a simple way of data compression [2]. [1] https://www.midi.org/specifications-old/item/table-1-summary-of-midi-message [2] http://midi.teragonaudio.com/tech/midispec/run.htm CU Christian |
From: Christian S. <sch...@li...> - 2021-12-27 14:40:11
|
On Sonntag, 26. Dezember 2021 21:57:12 CET Andrew C wrote: > *Diff patch for debugging/illustration purposes:* > > Index: LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp > =================================================================== > --- LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp (revision > 4010) > +++ LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp (working > copy) > @@ -216,6 +216,8 @@ > InstrumentEditor* > InstrumentResourceManager::LaunchInstrumentEditor(LinuxSampler::EngineChanne > l* pEngineChannel, instrument_id_t ID, > void* pUserData) throw (InstrumentManagerException) { > const String sDataType = GetInstrumentDataStructureName(ID); > const String sDataVersion = GetInstrumentDataStructureVersion(ID); > + fprintf (stderr, "Data type is %s and data version is %s\n", > sDataType.c_str(), sDataVersion.c_str()); > + fprintf (stderr, "Instrument plugin is %s\n", > InstrumentEditorFactory::AvailableEditorsAsString().c_str()); The output of this was an empty string there, which means the sampler did not load *any* plugin DLL at all. > // find instrument editors capable to handle given instrument > std::vector<String> vEditors = > InstrumentEditorFactory::MatchingEditors(sDataType, > sDataVersion); > @@ -224,10 +226,16 @@ > fprintf(stderr, > "ERROR: There is not any instrument editor registered > to the sampler!\n" > "[Cause: Make sure an instrument editor is installed to > the sampler's plugin dir (%s)]\n", > - InstrumentEditorFactory::PluginDirsAsString().c_str() > - ); > + > InstrumentEditorFactory::PluginDirsAsString().c_str()); > + if (InstrumentEditorFactory::FoundPlugins) { > + fprintf (stderr, > + "We found and registered plugins in %s at startup, but > currently available plugins are:%s \n", > + InstrumentEditorFactory::PluginDirsAsString().c_str(), > + > > InstrumentEditorFactory::AvailableEditorsAsString().c_str() > > + ); > + }; > throw InstrumentManagerException( > - "There is not any instrument editor installed and > registered to the sampler" > + "netcat seems to cause issues." > ); Has nothing to do with netcat. > } > fprintf(stderr, > Index: LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp > =================================================================== > --- LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp (revision 4010) > +++ LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp (working copy) > @@ -44,6 +44,7 @@ > std::map<String, InstrumentEditorFactory::InnerFactory*> > InstrumentEditorFactory::InnerFactories; > > bool InstrumentEditorFactory::bPluginsLoaded = false; > + bool InstrumentEditorFactory::FoundPlugins = false; > > std::list<void*> InstrumentEditorFactory::LoadedDLLs; > > @@ -287,6 +288,7 @@ > } > closedir(hDir); > #endif > + InstrumentEditorFactory::FoundPlugins = true; > return true; > } Wrong assumption. At this point it just *tried* to load plugins. It does not mean it was able to actually load any plugin successfully. You should rather debug what happens in the loop above. for (dirent* pEntry = readdir(hDir); pEntry; pEntry = readdir(hDir)) { ... } That loops iterares over all files found in the plugin dir and then tries to load every file that is actually a DLL file (i.e. filename ending with ".so"). > Index: LS-DEBUG/src/plugins/InstrumentEditorFactory.h > =================================================================== > --- LS-DEBUG/src/plugins/InstrumentEditorFactory.h (revision 4010) > +++ LS-DEBUG/src/plugins/InstrumentEditorFactory.h (working copy) > @@ -98,6 +98,7 @@ > static String PluginDirsAsString(); > static std::vector<String> AvailableEditors(); > static String AvailableEditorsAsString(); > + static bool FoundPlugins; > static std::vector<String> MatchingEditors(String sTypeName, String > sTypeVersion); > static void LoadPlugins(); > static void ClosePlugins(); |
From: Jan F. <fl...@ze...> - 2021-12-26 21:13:11
|
Hi, I will explain my problem. I am working with release samples/sfz. This works good using fantasia. Not good using jOrgan. jOrgan/Linuxsampler works very good, but without release. I suppose it has to do with the note_off/note_on messages in jOrgan. Note on in jorgan is only set 144,set 36, set velocity. Note off is set 128,set 36,.. and set 176,set 1, set 0 which is cc 1. Kind regards, Jan Flikweert From: Andrew C [mailto:cou...@gm...] Sent: zondag 26 december 2021 17:48 To: Jan Flikweert Cc: linuxsampler-devel Subject: Re: [Linuxsampler-devel] midi message fantasia note off Hi Jan, I would imagine it's a simple enough NOTE_OFF event is all. Just to illustrate the code from jlscp's event/MidiDataEvent: ackage org.linuxsampler.lscp.event; /** * A semantic event which indicates that MIDI data has arrived. * @author Grigor Iliev */ public class MidiDataEvent extends java.util.EventObject { public static enum Type { NOTE_ON ("NOTE_ON"), NOTE_OFF ("NOTE_OFF"), CC ("CC"); Andrew. On Sun, Dec 26, 2021 at 11:58 AM Jan Flikweert <fl...@ze...> wrote: Hi all, Which midi messages does Fantasia send for a note-off event after releasing a key on the keyboard from its main screen? I tried with midi-ox but that did not work. Kind regards, Jan Flikweert _______________________________________________ Linuxsampler-devel mailing list Lin...@li... https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel |
From: Andrew C <cou...@gm...> - 2021-12-26 20:57:35
|
Hi Christian, I come bearing diff patches :) I've done a bunch of debugging of this and I'm fairly certain my installation is fine. The latest SVN versions of libgig, linuxsampler and gigedit are the only ones I have on my PC right now. If I type each of the following LSCP commands into the LSCP shell directly, the instrument editor opens fine. Same happens if I open the editor on a loaded instrument through the JSampler GUI. This does not work if netcat (or socat) is used to send the commands to Linuxsampler. For whatever reason, InstrumentEditorFactory::AvailableEditorsAsString().c_str() returns empty in InstrumentResourceManager::LaunchInstrumentEditor when netcat is used and I don't understand why. I understand that when an 'EDIT CHANNEL INSTRUMENT <num>' command is sent, there'll be a check of the datatype and dataversion the instrument reports against the output of matchingeditors(), but it appears it's hit or miss. *LSCP commands: * RESET SET VOLUME 1.0 CREATE MIDI_INPUT_DEVICE JACK SET MIDI_INPUT_DEVICE_PARAMETER 0 PORTS=1 SET VOLUME 1.0 CREATE AUDIO_OUTPUT_DEVICE JACK ACTIVE=TRUE CHANNELS=2 SAMPLERATE=48000 SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 0 NAME='Left' SET AUDIO_OUTPUT_CHANNEL_PARAMETER 0 1 NAME='Right' SET STREAMS 90 REMOVE MIDI_INSTRUMENT_MAP ALL ADD CHANNEL ADD CHANNEL MIDI_INPUT 0 0 0 SET CHANNEL MIDI_INPUT_CHANNEL 0 0 LOAD ENGINE GIG 0 SET CHANNEL VOLUME 0 1.0 SET CHANNEL AUDIO_OUTPUT_DEVICE 0 0 LOAD INSTRUMENT '/home/andrew/Desktop/Samples/Booms/trailerhits.gig' 0 0 SET STREAMS 90 SET VOICES 90 EDIT CHANNEL INSTRUMENT 0 *Sampler output from doing "linuxsampler && cat lscpcommands.lscp | netcat localhost 8888"* LinuxSampler 2.2.0.svn9 Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck Copyright (C) 2005-2021 Christian Schoenebeck Binary built: Dec 24 2021 Detected features: MMX SSE SSE2 Automatic Stacktrace: Off Creating Sampler...OK Registered sampler engines: 'GIG','SF2','SFZ' Registered MIDI input drivers: ALSA,JACK Registered audio output drivers: ALSA,JACK Loading instrument editor plugins...OK *Registered instrument editors: 'gigedit' * Registered internal effect systems: LADSPA no more csLADSPA plugins failed to load DLL: '/usr/lib/ladspa/autotalent.so', cause: /usr/lib/ladspa/autotalent.so: undefined symbol: __exp_finite Registered internal effects: 354 Starting LSCP network server (0.0.0.0:8888)...OK LinuxSampler initialization completed. :-) LSCPServer: Client connection established on socket:4. Unloading instrument editor plugins...OK libjackBufferSizeCallback(1024) jack_port_set_name: deprecated jack_port_set_name: deprecated Starting disk thread...OK EQ support: no Loading gig file '/home/andrew/Desktop/Samples/Booms/trailerhits.gig'...OK Loading gig instrument ('/home/andrew/Desktop/Samples/Booms/trailerhits.gig',0)...OK Caching initial samples...OK Stopping disk thread...OK Starting disk thread...OK EQ support: no Data type is libgig and data version is 4.3.0.svn34Loading instrument editor plugins...OK *Instrument plugin is * *ERROR: There is not any instrument editor registered to the sampler! [Cause: Make sure an instrument editor is installed to the sampler's plugin dir ('/usr/local/lib/linuxsampler/* *plugins')] We found and registered plugins in '/usr/local/lib/linuxsampler/plugins' at startup, but currently available plugins are: netcat seems to cause issues.* *Diff patch for debugging/illustration purposes:* Index: LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp =================================================================== --- LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp (revision 4010) +++ LS-DEBUG/src/engines/gig/InstrumentResourceManager.cpp (working copy) @@ -216,6 +216,8 @@ InstrumentEditor* InstrumentResourceManager::LaunchInstrumentEditor(LinuxSampler::EngineChannel* pEngineChannel, instrument_id_t ID, void* pUserData) throw (InstrumentManagerException) { const String sDataType = GetInstrumentDataStructureName(ID); const String sDataVersion = GetInstrumentDataStructureVersion(ID); + fprintf (stderr, "Data type is %s and data version is %s\n", sDataType.c_str(), sDataVersion.c_str()); + fprintf (stderr, "Instrument plugin is %s\n", InstrumentEditorFactory::AvailableEditorsAsString().c_str()); // find instrument editors capable to handle given instrument std::vector<String> vEditors = InstrumentEditorFactory::MatchingEditors(sDataType, sDataVersion); @@ -224,10 +226,16 @@ fprintf(stderr, "ERROR: There is not any instrument editor registered to the sampler!\n" "[Cause: Make sure an instrument editor is installed to the sampler's plugin dir (%s)]\n", - InstrumentEditorFactory::PluginDirsAsString().c_str() - ); + InstrumentEditorFactory::PluginDirsAsString().c_str()); + if (InstrumentEditorFactory::FoundPlugins) { + fprintf (stderr, + "We found and registered plugins in %s at startup, but currently available plugins are:%s \n", + InstrumentEditorFactory::PluginDirsAsString().c_str(), + InstrumentEditorFactory::AvailableEditorsAsString().c_str() + ); + }; throw InstrumentManagerException( - "There is not any instrument editor installed and registered to the sampler" + "netcat seems to cause issues." ); } fprintf(stderr, Index: LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp =================================================================== --- LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp (revision 4010) +++ LS-DEBUG/src/plugins/InstrumentEditorFactory.cpp (working copy) @@ -44,6 +44,7 @@ std::map<String, InstrumentEditorFactory::InnerFactory*> InstrumentEditorFactory::InnerFactories; bool InstrumentEditorFactory::bPluginsLoaded = false; + bool InstrumentEditorFactory::FoundPlugins = false; std::list<void*> InstrumentEditorFactory::LoadedDLLs; @@ -287,6 +288,7 @@ } closedir(hDir); #endif + InstrumentEditorFactory::FoundPlugins = true; return true; } Index: LS-DEBUG/src/plugins/InstrumentEditorFactory.h =================================================================== --- LS-DEBUG/src/plugins/InstrumentEditorFactory.h (revision 4010) +++ LS-DEBUG/src/plugins/InstrumentEditorFactory.h (working copy) @@ -98,6 +98,7 @@ static String PluginDirsAsString(); static std::vector<String> AvailableEditors(); static String AvailableEditorsAsString(); + static bool FoundPlugins; static std::vector<String> MatchingEditors(String sTypeName, String sTypeVersion); static void LoadPlugins(); static void ClosePlugins(); |
From: Andrew C <cou...@gm...> - 2021-12-26 16:48:24
|
Hi Jan, I would imagine it's a simple enough NOTE_OFF event is all. Just to illustrate the code from jlscp's event/MidiDataEvent: ackage org.linuxsampler.lscp.event; /** * A semantic event which indicates that MIDI data has arrived. * @author Grigor Iliev */ public class MidiDataEvent extends java.util.EventObject { public static enum Type { NOTE_ON ("NOTE_ON"), NOTE_OFF ("NOTE_OFF"), CC ("CC"); Andrew. On Sun, Dec 26, 2021 at 11:58 AM Jan Flikweert <fl...@ze...> wrote: > Hi all, > > > > Which midi messages does Fantasia send for a note-off event after > releasing a key on the keyboard from its main screen? > > > > I tried with midi-ox but that did not work. > > > > Kind regards, > > > > Jan Flikweert > _______________________________________________ > Linuxsampler-devel mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel > |
From: Jan F. <fl...@ze...> - 2021-12-26 11:57:50
|
Hi all, Which midi messages does Fantasia send for a note-off event after releasing a key on the keyboard from its main screen? I tried with midi-ox but that did not work. Kind regards, Jan Flikweert |
From: Quick K. <hep...@ya...> - 2021-12-24 17:56:09
|
<div>Relevant lines from build log:</div><div>-------------------------------</div><div>libtool: compile: loongarch64-linux-gnu-g++ -std=gnu++14 -DHAVE_CONFIG_H -I. -I../.. -Wreturn-type -ffast-math -g -O2 -pthread -MT RTMath.lo -MD -MP -MF .deps/RTMath.Tpo -c RTMath.cpp -fPIC -DPIC -o .libs/RTMath.o<br />RTMath.cpp:77:8: error: #error "Sorry, LinuxSampler lacks time stamp code for your system." <br /></div><div> # error "Sorry, LinuxSampler lacks time stamp code for your system." <br /></div><div> ^~~~~ <br /></div><div>RTMath.cpp:78:8: error: #error "Please report this error and the CPU you are using to the LinuxSampler developers mailing list!" <br /></div><div> # error "Please report this error and the CPU you are using to the LinuxSampler developers mailing list!" <br /></div><div> ^~~~~ <br /></div><div><br /></div><div>-------------------</div><div>version 4010</div><div><br /></div><div>model: Loongson-3A5000LL</div><div><br /></div><div>Thanks,</div><div>Quick Kormos<br /></div> |
From: Christian S. <sch...@li...> - 2021-12-23 15:37:44
|
On Mittwoch, 22. Dezember 2021 21:09:39 CET Andrew C wrote: > Hi Christian, > > Not trying to be intentionally obtuse here. :) > > I started completely from scratch again. Totally cleaned out /usr/local/ > (fresh ubuntu distro, so only Linuxsampler and co was living there from the > last install attempt), deleted the LS SVN directories and redownloaded > them. > > Still getting the same error from Linuxsampler regarding no matching editor > for a gig instrument. The plugin paths do appear to match too: I just committed additional, more verbose error messages: http://svn.linuxsampler.org/cgi-bin/viewvc.cgi?view=revision&revision=4010 There is now a clear distinguishment between whether there are any instrument editor plugins installed at all, or whether there are some but are binary incompatible, and also what to do about. The sampler also prints you the exact expected directory for the instrument editor plugins. You should now have all the tools you need to resolve this installation issue. If you still cannot, then you have to debug it. I provided you all the code locations involved on both sides (LS and Gigedit). Good luck! CU Christian |
From: Andrew C <cou...@gm...> - 2021-12-22 20:10:01
|
Hi Christian, Not trying to be intentionally obtuse here. :) I started completely from scratch again. Totally cleaned out /usr/local/ (fresh ubuntu distro, so only Linuxsampler and co was living there from the last install attempt), deleted the LS SVN directories and redownloaded them. Still getting the same error from Linuxsampler regarding no matching editor for a gig instrument. The plugin paths do appear to match too: andrew@andrewlaptop:~/LSBuild$ cd gigedit/ andrew@andrewlaptop:~/LSBuild/gigedit$ grep LINUXSAMPLER_PLUGIN_DIR config.lo g LINUXSAMPLER_PLUGIN_DIR='${libdir}/linuxsampler/plugins' andrew@andrewlaptop:~/LSBuild/gigedit$ grep '^libdir=' config.log libdir='${exec_prefix}/lib' andrew@andrewlaptop:~/LSBuild/gigedit$ grep '^exec_prefix=' config.log exec_prefix='${prefix}' andrew@andrewlaptop:~/LSBuild/gigedit$ grep '^prefix=' config.log prefix='/usr/local' andrew@andrewlaptop:~/LSBuild/gigedit$ cd ../linuxsampler/ andrew@andrewlaptop:~/LSBuild/linuxsampler$ grep config_plugin_dir config.log config_plugin_dir='/usr/local/lib/linuxsampler/plugins' andrew@andrewlaptop:~/LSBuild/linuxsampler$ ls -l /usr/local/lib/linuxsample r/plugins total 2480 -rw-r--r-- 1 root root 1610998 Dec 22 19:28 libgigeditlinuxsamplerplugin.a -rwxr-xr-x 1 root root 1561 Dec 22 19:28 libgigeditlinuxsamplerplugin.la -rwxr-xr-x 1 root root 920904 Dec 22 19:28 libgigeditlinuxsamplerplugin.so andrew@andrewlaptop:~/LSBuild/linuxsampler$ Many thanks! Andrew. On Wed, Dec 22, 2021 at 5:35 PM Christian Schoenebeck < sch...@li...> wrote: > On Mittwoch, 22. Dezember 2021 17:04:14 CET Andrew C wrote: > > Hi Christian, > > > > Thanks for the increased verbose output with that patch. I recompiled all > > three of them again and I'm getting this in the console output of > > Linuxsampler now: > > > > ERROR: Did not find a matching editor for instrument > > ('/home/andrew/Desktop/S > > amples/Booms/trailerhits.gig', 0) having data structure > > ('libgig','4.3.0.svn3 > > 4') > > There is no instrument editor capable to handle this instrument > > Yep, which proofs that you are using a mixed installation of an old > gigedit > version in combination with a new LS version. Otherwise gigedit would have > barked as well now, which it didn't, right? > > Please read my other emails that I already sent on this topic. This is > very > unlikely a bug in LS, but simply a messy installation there. I know it's > inconvenient, but that's how it is. > > To avoid confusion, I would start by getting rid of the other LS version > that > you obviously have installed somewhere in parallel on your system, > otherwise > you would not get two different behaviours when requesting to launch an > instrument editor with JSampler when LS was already running vs. not > running. > > QSampler and JSampler really just send a "EDIT CHANNEL INSTRUMENT > <number>" > command as ASCII text line to the sampler. There is absolutely no magic > about > it. The only thing that you could do wrong with netcat here was to supply > a > wrong channel number, which you can also very easily verify by sending > "LIST > CHANNELS" to get the current valid channel IDs. > > After you got rid of the other LS installation, make sure that the LS > plugin > path of gigedit and LS match. By default they do, but if you are fiddling > with > installation pathes then they might not: > > $ cd YOUR_GIGEDIT_SOURCEDIR > $ grep LINUXSAMPLER_PLUGIN_DIR config.log > LINUXSAMPLER_PLUGIN_DIR='${libdir}/linuxsampler/plugins > $ grep '^libdir=' config.log > libdir='${exec_prefix}/lib' > $ grep '^exec_prefix=' config.log > exec_prefix='${prefix}' > $ grep '^prefix=' config.log > prefix='/usr' > > $ cd YOUR_LS_SOURCEDIR > $ grep config_plugin_dir config.log > config_plugin_dir='/usr/lib/linuxsampler/plugins' > $ ls -l /usr/lib/linuxsampler/plugins > -rw-r--r-- 1 root root 1877636 May 9 2021 > libgigeditlinuxsamplerplugin.a > -rw-r--r-- 1 root root 1538 May 9 2021 > libgigeditlinuxsamplerplugin.la > -rw-r--r-- 1 root root 1004320 May 9 2021 > libgigeditlinuxsamplerplugin.so > > CU > Christian > > > > > _______________________________________________ > Linuxsampler-devel mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel > |
From: Christian S. <sch...@li...> - 2021-12-22 17:34:49
|
On Mittwoch, 22. Dezember 2021 17:04:14 CET Andrew C wrote: > Hi Christian, > > Thanks for the increased verbose output with that patch. I recompiled all > three of them again and I'm getting this in the console output of > Linuxsampler now: > > ERROR: Did not find a matching editor for instrument > ('/home/andrew/Desktop/S > amples/Booms/trailerhits.gig', 0) having data structure > ('libgig','4.3.0.svn3 > 4') > There is no instrument editor capable to handle this instrument Yep, which proofs that you are using a mixed installation of an old gigedit version in combination with a new LS version. Otherwise gigedit would have barked as well now, which it didn't, right? Please read my other emails that I already sent on this topic. This is very unlikely a bug in LS, but simply a messy installation there. I know it's inconvenient, but that's how it is. To avoid confusion, I would start by getting rid of the other LS version that you obviously have installed somewhere in parallel on your system, otherwise you would not get two different behaviours when requesting to launch an instrument editor with JSampler when LS was already running vs. not running. QSampler and JSampler really just send a "EDIT CHANNEL INSTRUMENT <number>" command as ASCII text line to the sampler. There is absolutely no magic about it. The only thing that you could do wrong with netcat here was to supply a wrong channel number, which you can also very easily verify by sending "LIST CHANNELS" to get the current valid channel IDs. After you got rid of the other LS installation, make sure that the LS plugin path of gigedit and LS match. By default they do, but if you are fiddling with installation pathes then they might not: $ cd YOUR_GIGEDIT_SOURCEDIR $ grep LINUXSAMPLER_PLUGIN_DIR config.log LINUXSAMPLER_PLUGIN_DIR='${libdir}/linuxsampler/plugins $ grep '^libdir=' config.log libdir='${exec_prefix}/lib' $ grep '^exec_prefix=' config.log exec_prefix='${prefix}' $ grep '^prefix=' config.log prefix='/usr' $ cd YOUR_LS_SOURCEDIR $ grep config_plugin_dir config.log config_plugin_dir='/usr/lib/linuxsampler/plugins' $ ls -l /usr/lib/linuxsampler/plugins -rw-r--r-- 1 root root 1877636 May 9 2021 libgigeditlinuxsamplerplugin.a -rw-r--r-- 1 root root 1538 May 9 2021 libgigeditlinuxsamplerplugin.la -rw-r--r-- 1 root root 1004320 May 9 2021 libgigeditlinuxsamplerplugin.so CU Christian |
From: Andrew C <cou...@gm...> - 2021-12-22 16:04:32
|
Hi Christian, Thanks for the increased verbose output with that patch. I recompiled all three of them again and I'm getting this in the console output of Linuxsampler now: ERROR: Did not find a matching editor for instrument ('/home/andrew/Desktop/S amples/Booms/trailerhits.gig', 0) having data structure ('libgig','4.3.0.svn3 4') There is no instrument editor capable to handle this instrument Andrew. On Wed, Dec 22, 2021 at 3:06 PM Christian Schoenebeck < sch...@li...> wrote: > On Mittwoch, 22. Dezember 2021 14:15:20 CET Christian Schoenebeck wrote: > > On Dienstag, 21. Dezember 2021 19:18:44 CET Andrew C wrote: > > > Thanks for that, Christian, I'll give some other netcat variants a go > and > > > see what I can get back. > > > > > > My Instrument Editor plugins are definitely being picked up by > > > LInuxsampler > > > on start: > > > > > > andrew@andrewlaptop:~/LSBuild$ linuxsampler > > > LinuxSampler 2.2.0.svn7 > > > Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck > > > Copyright (C) 2005-2021 Christian Schoenebeck > > > Binary built: Dec 20 2021 > > > Detected features: MMX SSE SSE2 > > > Automatic Stacktrace: Off > > > Creating Sampler...OK > > > Registered sampler engines: 'GIG','SF2','SFZ' > > > Registered MIDI input drivers: ALSA,JACK > > > Registered audio output drivers: ALSA,JACK > > > Loading instrument editor plugins...OK > > > Registered instrument editors: 'gigedit' > [...] > > > Loading instrument editor plugins...OK > > > There is no instrument editor capable to handle this instrument > > > > Most likely reason for this: you compiled LS, but are using a third-party > > compiled gigedit version. For live-editing support with gigedit all > involved > > components need to be binary compatible, because in live-editing mode > they > > share the same process and in memory data. > > > > I recommend you recompile > > > > 1. libgig > > 2. linuxsampler > > 3. gigedit > > > > in this order. And make sure that you have actually installed the > respective > > component (in the same order) before compiling the next one, because in > > that sequence they will access the header files of the former during > > compilation. > > I just made this more clear by showing more detailed error messages on > terminal, both on gigedit side: > http://svn.linuxsampler.org/cgi-bin/viewvc.cgi?view=revision&revision=4008 > > and on linuxsampler side: > http://svn.linuxsampler.org/cgi-bin/viewvc.cgi?view=revision&revision=4009 > > CU > Christian > > > > > _______________________________________________ > Linuxsampler-devel mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel > |
From: Christian S. <sch...@li...> - 2021-12-22 15:05:40
|
On Mittwoch, 22. Dezember 2021 14:15:20 CET Christian Schoenebeck wrote: > On Dienstag, 21. Dezember 2021 19:18:44 CET Andrew C wrote: > > Thanks for that, Christian, I'll give some other netcat variants a go and > > see what I can get back. > > > > My Instrument Editor plugins are definitely being picked up by > > LInuxsampler > > on start: > > > > andrew@andrewlaptop:~/LSBuild$ linuxsampler > > LinuxSampler 2.2.0.svn7 > > Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck > > Copyright (C) 2005-2021 Christian Schoenebeck > > Binary built: Dec 20 2021 > > Detected features: MMX SSE SSE2 > > Automatic Stacktrace: Off > > Creating Sampler...OK > > Registered sampler engines: 'GIG','SF2','SFZ' > > Registered MIDI input drivers: ALSA,JACK > > Registered audio output drivers: ALSA,JACK > > Loading instrument editor plugins...OK > > Registered instrument editors: 'gigedit' [...] > > Loading instrument editor plugins...OK > > There is no instrument editor capable to handle this instrument > > Most likely reason for this: you compiled LS, but are using a third-party > compiled gigedit version. For live-editing support with gigedit all involved > components need to be binary compatible, because in live-editing mode they > share the same process and in memory data. > > I recommend you recompile > > 1. libgig > 2. linuxsampler > 3. gigedit > > in this order. And make sure that you have actually installed the respective > component (in the same order) before compiling the next one, because in > that sequence they will access the header files of the former during > compilation. I just made this more clear by showing more detailed error messages on terminal, both on gigedit side: http://svn.linuxsampler.org/cgi-bin/viewvc.cgi?view=revision&revision=4008 and on linuxsampler side: http://svn.linuxsampler.org/cgi-bin/viewvc.cgi?view=revision&revision=4009 CU Christian |
From: Christian S. <sch...@li...> - 2021-12-22 14:05:30
|
On Mittwoch, 22. Dezember 2021 14:45:59 CET Andrew C wrote: > Hi Christian, > > Can confirm that is the order I compiled and installed the 3 pieces on this > new Linux installation. > > JSampler opens the editor in real-time mode, as does the LSCP commandline > **but** only when JSampler has previously connected to LinuxSampler. In a > standalone mode with simply netcatting the same lscp commands JSampler uses > to set up the midi, audio and sampler channels, using the LSCP commandline > "EDIT INSTRUMENT CHANNEL 0" produces the error about no suitable instrument > editor being found. And that in turn sounds like you have two different LS versions somewhere (e.g. /usr/bin vs. /usr/local/bin/, etc.). Both QSampler and JSampler are able to launch linuxsampler automatically if needed. If the sampler is not running yet, they will try to start linuxsampler by their configurable linuxsampler binary path, e.g. "/usr/bin/linuxsampler". If the sampler is already running (i.e. if they can connect to TCP port 8888), then the will not start linuxsampler and just use the already running sampler instance. Which is handy, because you can quickly play around with a developer version of LS for instance without needing to install it anywhere. I am using that a lot. CU Christian |
From: Andrew C <cou...@gm...> - 2021-12-22 13:46:21
|
Hi Christian, Can confirm that is the order I compiled and installed the 3 pieces on this new Linux installation. JSampler opens the editor in real-time mode, as does the LSCP commandline **but** only when JSampler has previously connected to LinuxSampler. In a standalone mode with simply netcatting the same lscp commands JSampler uses to set up the midi, audio and sampler channels, using the LSCP commandline "EDIT INSTRUMENT CHANNEL 0" produces the error about no suitable instrument editor being found. Thanks, Andrew. On Wed, Dec 22, 2021 at 1:15 PM Christian Schoenebeck < sch...@li...> wrote: > On Dienstag, 21. Dezember 2021 19:18:44 CET Andrew C wrote: > > Thanks for that, Christian, I'll give some other netcat variants a go and > > see what I can get back. > > > > My Instrument Editor plugins are definitely being picked up by > LInuxsampler > > on start: > > > > andrew@andrewlaptop:~/LSBuild$ linuxsampler > > LinuxSampler 2.2.0.svn7 > > Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck > > Copyright (C) 2005-2021 Christian Schoenebeck > > Binary built: Dec 20 2021 > > Detected features: MMX SSE SSE2 > > Automatic Stacktrace: Off > > Creating Sampler...OK > > Registered sampler engines: 'GIG','SF2','SFZ' > > Registered MIDI input drivers: ALSA,JACK > > Registered audio output drivers: ALSA,JACK > > Loading instrument editor plugins...OK > > Registered instrument editors: 'gigedit' > > Registered internal effect systems: LADSPA > > no more csLADSPA plugins > > failed to load DLL: '/usr/lib/ladspa/autotalent.so', cause: > > /usr/lib/ladspa/a > > utotalent.so: undefined symbol: __exp_finite > > Registered internal effects: 354 > > Starting LSCP network server (0.0.0.0:8888)...OK > > LinuxSampler initialization completed. :-) > > > > and if I use a previously saved lscp commands from jsampler and simply > > netcat it into linuxsampler, the engine cannot find a compatible > instrument > > editor for a gig file (I also tried to see what would happen if I edited > > the nonexistant sampler channel 1). > > and also, it will hang on attempting to control-C out of the server > itself: > > libjackBufferSizeCallback(1024) > > jack_port_set_name: deprecated > > libjackBufferSizeCallback(1024) > > jack_port_set_name: deprecated > > Jack: Cannot connect port 'AO-Strings:0' to port 'NONE' > > jack_port_set_name: deprecated > > Jack: Cannot connect port 'AO-Strings:1' to port 'NONE' > > Starting disk thread...OK > > EQ support: no > > Scheduling '/home/andrew/Desktop/Samples/String_ensemble.gig' (Index=1) > to > > be > > loaded in background (if not loaded yet). > > Loading gig file '/home/andrew/Desktop/Samples/String_ensemble.gig'...OK > > Loading gig instrument > > ('/home/andrew/Desktop/Samples/String_ensemble.gig',1) > > ...OK > > Caching initial samples...OK > > LSCPServer: Client connection established on socket:26. > > Loading instrument editor plugins...OK > > There is no instrument editor capable to handle this instrument > > Most likely reason for this: you compiled LS, but are using a third-party > compiled gigedit version. For live-editing support with gigedit all > involved > components need to be binary compatible, because in live-editing mode they > share the same process and in memory data. > > I recommend you recompile > > 1. libgig > 2. linuxsampler > 3. gigedit > > in this order. And make sure that you have actually installed the > respective > component (in the same order) before compiling the next one, because in > that > sequence they will access the header files of the former during > compilation. > > CU > Christian > > > > > _______________________________________________ > Linuxsampler-devel mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel > |
From: Grigor I. <gr....@gm...> - 2021-12-22 13:26:20
|
On Wed, Dec 22, 2021 at 3:07 PM Christian Schoenebeck <sch...@li...> wrote: > Any clue which JRE version starts to make this necessary? I think it is Java 9 - when the module system was introduced (Jigsaw). |
From: Christian S. <sch...@li...> - 2021-12-22 13:15:28
|
On Dienstag, 21. Dezember 2021 19:18:44 CET Andrew C wrote: > Thanks for that, Christian, I'll give some other netcat variants a go and > see what I can get back. > > My Instrument Editor plugins are definitely being picked up by LInuxsampler > on start: > > andrew@andrewlaptop:~/LSBuild$ linuxsampler > LinuxSampler 2.2.0.svn7 > Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck > Copyright (C) 2005-2021 Christian Schoenebeck > Binary built: Dec 20 2021 > Detected features: MMX SSE SSE2 > Automatic Stacktrace: Off > Creating Sampler...OK > Registered sampler engines: 'GIG','SF2','SFZ' > Registered MIDI input drivers: ALSA,JACK > Registered audio output drivers: ALSA,JACK > Loading instrument editor plugins...OK > Registered instrument editors: 'gigedit' > Registered internal effect systems: LADSPA > no more csLADSPA plugins > failed to load DLL: '/usr/lib/ladspa/autotalent.so', cause: > /usr/lib/ladspa/a > utotalent.so: undefined symbol: __exp_finite > Registered internal effects: 354 > Starting LSCP network server (0.0.0.0:8888)...OK > LinuxSampler initialization completed. :-) > > and if I use a previously saved lscp commands from jsampler and simply > netcat it into linuxsampler, the engine cannot find a compatible instrument > editor for a gig file (I also tried to see what would happen if I edited > the nonexistant sampler channel 1). > and also, it will hang on attempting to control-C out of the server itself: > libjackBufferSizeCallback(1024) > jack_port_set_name: deprecated > libjackBufferSizeCallback(1024) > jack_port_set_name: deprecated > Jack: Cannot connect port 'AO-Strings:0' to port 'NONE' > jack_port_set_name: deprecated > Jack: Cannot connect port 'AO-Strings:1' to port 'NONE' > Starting disk thread...OK > EQ support: no > Scheduling '/home/andrew/Desktop/Samples/String_ensemble.gig' (Index=1) to > be > loaded in background (if not loaded yet). > Loading gig file '/home/andrew/Desktop/Samples/String_ensemble.gig'...OK > Loading gig instrument > ('/home/andrew/Desktop/Samples/String_ensemble.gig',1) > ...OK > Caching initial samples...OK > LSCPServer: Client connection established on socket:26. > Loading instrument editor plugins...OK > There is no instrument editor capable to handle this instrument Most likely reason for this: you compiled LS, but are using a third-party compiled gigedit version. For live-editing support with gigedit all involved components need to be binary compatible, because in live-editing mode they share the same process and in memory data. I recommend you recompile 1. libgig 2. linuxsampler 3. gigedit in this order. And make sure that you have actually installed the respective component (in the same order) before compiling the next one, because in that sequence they will access the header files of the former during compilation. CU Christian |
From: Christian S. <sch...@li...> - 2021-12-22 13:07:10
|
On Dienstag, 21. Dezember 2021 19:00:00 CET Andrew C wrote: > Hi Grigor, > > Thanks a bunch for that add-exports switch. JSampler is working fine now, > save for some creaky warning messages on JRE 18. > > Andrew. > > On Tue, Dec 21, 2021 at 5:04 PM Grigor Iliev <gr....@gm...> wrote: > > Hi Andrew, > > You should be able to launch JSampler with latest JRE using the > > following command: > > > > java --add-exports java.desktop/sun.swing.plaf.synth=ALL-UNNAMED -jar > > /path/to/Fantasia-0.9.jar Good to know that this is working, thanks Grigor! Any clue which JRE version starts to make this necessary? CU Christian |
From: Andrew C <cou...@gm...> - 2021-12-21 18:19:02
|
Thanks for that, Christian, I'll give some other netcat variants a go and see what I can get back. My Instrument Editor plugins are definitely being picked up by LInuxsampler on start: andrew@andrewlaptop:~/LSBuild$ linuxsampler LinuxSampler 2.2.0.svn7 Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck Copyright (C) 2005-2021 Christian Schoenebeck Binary built: Dec 20 2021 Detected features: MMX SSE SSE2 Automatic Stacktrace: Off Creating Sampler...OK Registered sampler engines: 'GIG','SF2','SFZ' Registered MIDI input drivers: ALSA,JACK Registered audio output drivers: ALSA,JACK Loading instrument editor plugins...OK Registered instrument editors: 'gigedit' Registered internal effect systems: LADSPA no more csLADSPA plugins failed to load DLL: '/usr/lib/ladspa/autotalent.so', cause: /usr/lib/ladspa/a utotalent.so: undefined symbol: __exp_finite Registered internal effects: 354 Starting LSCP network server (0.0.0.0:8888)...OK LinuxSampler initialization completed. :-) and if I use a previously saved lscp commands from jsampler and simply netcat it into linuxsampler, the engine cannot find a compatible instrument editor for a gig file (I also tried to see what would happen if I edited the nonexistant sampler channel 1). and also, it will hang on attempting to control-C out of the server itself: libjackBufferSizeCallback(1024) jack_port_set_name: deprecated libjackBufferSizeCallback(1024) jack_port_set_name: deprecated Jack: Cannot connect port 'AO-Strings:0' to port 'NONE' jack_port_set_name: deprecated Jack: Cannot connect port 'AO-Strings:1' to port 'NONE' Starting disk thread...OK EQ support: no Scheduling '/home/andrew/Desktop/Samples/String_ensemble.gig' (Index=1) to be loaded in background (if not loaded yet). Loading gig file '/home/andrew/Desktop/Samples/String_ensemble.gig'...OK Loading gig instrument ('/home/andrew/Desktop/Samples/String_ensemble.gig',1) ...OK Caching initial samples...OK LSCPServer: Client connection established on socket:26. Loading instrument editor plugins...OK There is no instrument editor capable to handle this instrument Invalid sampler channel number 1 LSCPServer: Client connection terminated on socket:4. LSCPServer: Client connection terminated on socket:26. ^CFreeing gig file '/home/andrew/Desktop/Samples/String_ensemble.gig' from me mory ...OK Stopping disk thread...OK Unloading instrument editor plugins...OK ^C^C JSampler, for example, doesn't exhibit this behaviour with the instrument editor, strangely enough. I fear I may be opening up a vast debugging can of worms here!! On Tue, Dec 21, 2021 at 5:13 PM Christian Schoenebeck < sch...@li...> wrote: > On Dienstag, 21. Dezember 2021 17:42:29 CET Andrew C wrote: > > Hi Christian, > > > > Unfortunately no, I wasn't running a command in parallel to the GET > > command, all my instruments had already loaded by the time I tried the > GET > > command. > > The LSCP shell/CLI utility works absolutely fine every time I send such a > > GET command, so perhaps it's my netcatting that's the issue here for some > > reason. Not sure if there would be more scriptable methods of reliably > > getting the data from Linuxsampler. > > Ok, then you might just try some of the numerous other netcat derivates. > Altough it sounds a bit strange that you got a much different latency with > the > LSCP shell than with nc. > > As this is really a simple text based network protocol, there are endless > of > other possibilities, like writing a simple Python script or whatever. > > > Also, on the note of using the lscp CLI/netcat commands to Linuxsampler > for > > the instrument editor, it seems it doesn't work on my end: > > lscp=# EDIT CHANNEL INSTRUMENT 1 > > ERR:0:There is no instrument editor capable to handle this instrument > > lscp=# EDIT CHANNEL INSTRUMENT 0 > > ERR:0:There is no instrument editor capable to handle this instrument > > > > Both files were loaded using the GIG engine and gigedit/Linuxsampler are > > installed in /usr/local.. Perhaps my PATH or ldconfig needs updating? > > When linuxsampler is launched, you see a bunch of information, which also > includes the following line: > > Registered instrument editors: 'gigedit' > > If "gigedit" is missing in that line, then because the sampler did not > find > gigedit's plugin in the sampler's plugin directory. You can change the > sampler's default plugin path at compile time: > > ./configure --enable-plugin-dir=/some/where > > As well as overriding it by environment variable before launching > linuxsampler. From "man linuxsampler": > > ENVIRONMENT VARIABLES > LINUXSAMPLER_PLUGIN_DIR > Allows to override the directory where LinuxSampler shall > look > for instrument editor plugins. > > Note, there is also --exec-after-init BTW. > > CU > Christian > > > > > _______________________________________________ > Linuxsampler-devel mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel > |
From: Andrew C <cou...@gm...> - 2021-12-21 18:00:30
|
Hi Grigor, Thanks a bunch for that add-exports switch. JSampler is working fine now, save for some creaky warning messages on JRE 18. Andrew. On Tue, Dec 21, 2021 at 5:04 PM Grigor Iliev <gr....@gm...> wrote: > Hi Andrew, > You should be able to launch JSampler with latest JRE using the > following command: > > java --add-exports java.desktop/sun.swing.plaf.synth=ALL-UNNAMED -jar > /path/to/Fantasia-0.9.jar > > There might also be other module permission/access issues, which > should be easy to fix by using additional --add-exports and > --add-opens options, if needed. > > Unfortunately, I don't have spare time for free projects anymore and I > don't think that I'll be able to find time to work on JSampler in near > future. > > Regards, > Grigor. > > On Mon, Dec 20, 2021 at 11:53 AM Andrew C <cou...@gm...> wrote: > > > > Hi all, > > > > I'm running into some critical errors with openJDK/JRE versions 16/18 > and trying to run JSampler. It appears there are some older classes that > are no longer supported in these versions or perhaps need a bit more > wriggling to accommodate the JSampler code? > > > > Exception in thread "AWT-EventQueue-0" java.lang.IllegalAccessError: > class > > org.jsampler.view.fantasia.basic.PixmapPane (in unnamed module > @0x248d4f4a) > > cannot access class sun.swing.plaf.synth.Paint9Painter (in module > java.des > > ktop) because module java.desktop does not export sun.swing.plaf.synth > to u > > nnamed module @0x248d4f4a > > > > I know this is/was(?) Grishata's project and I lack the knowledge to > even begin trying to fix this up, but was wondering if anyone else has > encountered this and if there are workarounds for it? > > > > The alternative, if I cannot get it working would have to be diving into > sending LSCP commands to Linuxsampler via Netcat. That should be fun! ;) > > > > A question for Christian, but is it possible through LSCP to tell > Linuxsampler to open gigedit "Live" on an instrument, so as to edit in > real-time, or was that a special function of JSampler? > > > > Cheers, > > > > Andrew. > > _______________________________________________ > > Linuxsampler-devel mailing list > > Lin...@li... > > https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel > |