Closed joe-rouen closed 1 year ago
But the real thing which is missing is the availability to change its gain on the fly. If not, it's just impossible to deal with a lot of Midi files and SF2 soundfonts. The DSP volume is not enough.
not sure what you mean here
you have 0.53-0, please upgrade (but I'm supposed to have already 0.53-1 on my PC!)
are you sure? anyway, not really important in this issue
3- An other Pd Vanilla related issue Installing pd-0.53-1.windows-installer.exe (downloaded directly several times from Miller Puckette web site), uninstalling it and installing it again always give a wrong version: Pd version 0.53.0.
well, you should open an issue on vanilla's github then
@Lucarda can you help us with this one? He says that the 'sfont~.m_amd64' can't be found by Pd when it's there...
I installed else
via deken (help/find externals) on 2 Windows machines (win11 and win10) and the help patch from [sfont~] works fine for me.
Installing pd-0.53-1.windows-installer.exe (downloaded directly several times from Miller Puckette web site), uninstalling it and installing it again always give a wrong version: Pd version 0.53.0.
this bug has been reported a couple of hours ago:
https://lists.puredata.info/pipermail/pd-list/2022-12/131841.html
anyway i'm using the same Pd as @joe-rouen (also downloded it from Miller's site a couple of days ago)
@joe-rouen make sure that these files are also on the else
dir. these are dll dependecies for [sfont~]:
libgcc_s_seh-1.w64
libglib-2.0-0.w64
libgomp-1.w64
libiconv-2.w64
libintl-8.w64
libogg-0.w64
libopus-0.w64
libpcre-1.w64
libportaudio.w64
libreadline8.w64
libsndfile-1.w64
libssp-0.w64
libstdc++-6.w64
libtermcap-0.w64
libvorbis-0.w64
libvorbisenc-2.w64
libwinpthread-1.w64
SDL2.w64
libFLAC.w64
libfluidsynth-3.w64
@joe-rouen how did you install else, from deken?
But the real thing which is missing is the availability to change its gain on the fly. If not, it's just impossible to deal with a lot of Midi files and SF2 soundfonts. The DSP volume is not enough.
not sure what you mean here
It seems with [sfont~] you can only do like [sfont~ -g 0.3] but not e.g. [hslider] --- [gain $1( --- [sfont~].
I installed
else
via deken (help/find externals) on 2 Windows machines (win11 and win10) and the help patch from [sfont~] works fine for me.Installing pd-0.53-1.windows-installer.exe (downloaded directly several times from Miller Puckette web site), uninstalling it and installing it again always give a wrong version: Pd version 0.53.0.
this bug has been reported a couple of hours ago:
https://lists.puredata.info/pipermail/pd-list/2022-12/131841.html
anyway i'm using the same Pd as @joe-rouen (also downloded it from Miller's site a couple of days ago)
I have installed both Else 1.0-0 rc-5 and Cyclone 0.6-1 libraries thru Pd's Deken (help/find externals), as I did it for the GNU/Linux distributions.
For the latest Pd version I will see directly on the M. Puckette Git Issues site.
@joe-rouen make sure that these files are also on the
else
dir. these are dll dependecies for [sfont~]:libgcc_s_seh-1.w64 libglib-2.0-0.w64 libgomp-1.w64 libiconv-2.w64 libintl-8.w64 libogg-0.w64 libopus-0.w64 libpcre-1.w64 libportaudio.w64 libreadline8.w64 libsndfile-1.w64 libssp-0.w64 libstdc++-6.w64 libtermcap-0.w64 libvorbis-0.w64 libvorbisenc-2.w64 libwinpthread-1.w64 SDL2.w64 libFLAC.w64 libfluidsynth-3.w64
I have checked into my 'H:\JOE-W10\Documents\Pd\externals\else' directory and I have all these 20x *.w64 files. So, it should be okay, but.
When trying to create in an empty patch an [sfont~] object I'm getting the following errors (translated from French). Error window: pd.com - Entry point not found The DllMain procedure entry point is not found in the dynamic link library H:\JOE-W10\Documents\Pd\externals\libfluidsynth-3.w64. OK button.
Then in the Pd Console window the following error: H:\JOE-W10\Documents\Pd\externals\else\sfont~.m_amd64: La procédure spécifiée est introuvable. (The specified procedure is not found but the requested file is well present at the given place!). (127) sfont~ ... couldn't create
I just made a quick test with PlugData v.0.6.2 64-bit as of Nov. 2022 installed under Windows 10 which is using Pd 0.52.2, Else 1.0.0 rc-4 and Cyclone 0.6.1. I can create without any issue a [sfont~] object and open its help file. (Audio I/O not tested just the capability of creating this object.)
I am no windows expert, maybe @Lucarda can help. But maybe there is some issue with folder's permissions and file access? Does it make sense Lucas?
It seems with [sfont~] you can only do like [sfont~ -g 0.3] but not e.g. [hslider] --- [gain $1( --- [sfont~].
you can create an issue with a request just for that
I am no windows expert, maybe @Lucarda can help. But maybe there is some issue with folder's permissions and file access? Does it make sense Lucas?
This is making sense, at least to me. So, I will move all Pd's Externals to the same HDD than Pd and in the Preferences change the paths and the startup options. And we will see...
It seems with [sfont~] you can only do like [sfont~ -g 0.3] but not e.g. [hslider] --- [gain $1( --- [sfont~].
you can create an issue with a request just for that
Thanks. I will do it.
by the way, what about the other externals? I assume it's all fine, right?
I am no windows expert, maybe @Lucarda can help. But maybe there is some issue with folder's permissions and file access? Does it make sense Lucas?
This is making sense, at least to me. So, I will move all Pd's Externals to the same HDD than Pd and in the Preferences change the paths and the startup options. And we will see...
Well, it's done now under Pd 0.53.1 and I have everything on the same C:\ SSD C:\Program Files\Pd -and- C:\Users\Joe\Documents\Pd\externals\else ELSE 1.0-0 rc-5 needs at least Pd 0.53-1: (you have 0.53-1, you're good!) But this issue with [sfont~] is still the same.
Error window: pd.com - Entry point not found The DllMain procedure entry point is not found in the dynamic link library C:\Users\Joe\Documents\Pd\externals\else\libfluidsynth-3.w64. OK button.
And ONLY then in the Pd Console window the following error: C:\Users\Joe\Documents\Pd\externals\else\sfont~.m_amd64: La procédure spécifiée est introuvable. (The specified procedure is not found but the requested file is well present at the given place!) (127) sfont~ ... couldn't create
I'm completely lost! Bloody Windows with its DLLs!
The other Else (like [midi] - [keyboard]) and Cyclone (like [midiparse] ) and others objects from several libraries are working. I was able to open my SMS (Simple Midi Sequencer) Vanilla project (previously Pd patch window was out of the screen borders!). All the objects are there with only [sfont~] being with doted lines.
Thanks.
An idiot question... As Purr Data with its [fluid~] object is also installed on my Windows 10 machine and as it is also using FluidSynth, could it be some kind of bad interaction(s) between both, even when Purr Data is not running?
Note that under Windows 10 [fluid~] / Purr Data are working well.
As Purr Data with its [fluid~] object is also installed on my Windows 10 machine and as it is also using FluidSynth, could it be some kind of bad interaction(s) between both, even when Purr Data is not running?
Doubt it. But not sure. At least on mac, Purr Data carries the dynamic libraries in a dependency folder within its app's folder contents. Not sure how Purr Data is installed though, maybe it uses an installer.
But as I see it, the external tells Pd where to look for the dependencies and they are there. I don't know why it can't find it and why no one 'else' has ever had this issue you're having (so it doesn't seem like an 'else' issue).
I am no Windows expert and I can't really help you much. Maybe people on the Pd list and @Lucarda
As Purr Data with its [fluid~] object is also installed on my Windows 10 machine and as it is also using FluidSynth, could it be some kind of bad interaction(s) between both, even when Purr Data is not running?
Chances are low, I think, but (if possible) try uninstalling Purr-Data and we'll find out. As I said above [sfont~] is working fine for me on 2 Win machines.
Before uninstalling Purr-Data search your C:\
drive for file libfluidsynth-3.dll
. It is possible that Purr-data installs this file in some C:\Windows\..
dir. Note that else/sfont~
will try to load libfluidsynth-3.w64
but I don't know which search priority comes first: the c:/windows\..*dll
or the *.w64
.
As Purr Data with its [fluid~] object is also installed on my Windows 10 machine and as it is also using FluidSynth, could it be some kind of bad interaction(s) between both, even when Purr Data is not running?
Chances are low, I think, but (if possible) try uninstalling Purr-Data and we'll find out. As I said above [sfont~] is working fine for me on 2 Win machines.
Before uninstalling Purr-Data search your
C:\
drive for filelibfluidsynth-3.dll
. It is possible that Purr-data installs this file in someC:\Windows\..
dir. Note thatelse/sfont~
will try to loadlibfluidsynth-3.w64
but I don't know which search priority comes first: thec:/windows\..*dll
or the*.w64
.
After searching on my C:\ drive I found twice this .dll: C:\Program Files\Purr Data\bin\libfluidsynth-3.dll C:\Program Files\vmpk\libfluidsynth-3.dll (Virtual Midi Piano Keyboard)
Checking further, I found that C:\Users\Joe\Documents\Pd\externals\else folder has a lot of files with the same root name than in C:\Program Files\Purr Data\bin folder but with a different extension (.dll vs .w64). And the same with VMPK but with fewer numbers of common .dll files.
After uninstalling both Purr Data and WMPK, I rebooted my PC, cleaned the Registry with CCleaner Free and retested my project. But no luck at all, I'm still with this bloody DllMain issue!
So on my W10 PC, Purr Data (fluid~) and VMPK are both well working with their FluidSynth stuff but not Pd/Else/sfont~ ! :(
Q: If it's needed, what is the minimum version of Microsoft Visual C++ Redistributable (64-bit) to be installed on the machine?
So on my W10 PC, Purr Data (fluid~) and VMPK are both well working with their FluidSynth stuff but not Pd/Else/sfont~ ! :(
and working well with plugdata...
maybe @timothyschoen can help us too here.
even though we don't have this issue in all computers, maybe we need to do something for the way we're distributing this.
We can also bring this up in the pd mail list
Q: If it's needed, what is the minimum version of Microsoft Visual C++ Redistributable (64-bit) to be installed on the machine?
no idea :) I'd say nothing is needed
Well... I conducted the same tests on a 2nd Windows 10 PC who has never seen any MIDI application... And the result for [else/sfont~] is unfortunately the same. There is also an issue with DllMain.
The other Else objects, like [keyboard] and [midi], are working including other libraries, like Cyclone, Ggee, Jmmmp, List-abs, Pdogg and Zexy.
So, for the time being, I'm giving up trying to use Else under Windows 10 22H2. Thanks for your help.
Best Wishes and Happy Holidays!
@joe-rouen why did you close an issue that wasn't solved?
wouldn't you be able to keep helping us troubleshoot this and get this issue to other wizards?
@Lucarda is your windows also "Windows 10 22H2"?
Guess what? I'm at my parents' for the new year and my father has a windows laptop with 10 22H2! Just installed Pd and ELSE. All works fine!
I say we investigate what the errors you have mean and possible causes.
Now, if you are developing something you want to offer to people for all operating systems, I say you could not give this up as this doesn't seem to be an issue from ELSE but from your setup.
Well... Here is my Setup on my laptop under Windows 10 Pro 22H2 64-bit. The same on my 2nd desktop PC under W10 Std. What is / could be wrong ?
What is / could be wrong ?
nothing new here, we have no clue and have to try other channels for more input I guess, right @Lucarda ? I am asking in the pd list
This is what I found that can relate to your issue https://www.drivereasy.com/knowledge/fixed-entry-point-not-found-error-in-windows/#:~:text=When%20you%20see%20the%20error,startup%20process%20of%20the%20game.
1- Reference to your above link "Usually this problem is triggered by a faulty DLL file that plays an essential role in the startup process of the game. Given the file is likely missing, corrupted or unreadable, you should replace it with a new one that works properly..."
2- All Else's DLLs are with .w64 extension (with the right structure calls?) and not with .dll.
3- With the same Pd Vanilla configuration on my W10 laptop, [ceammc/fluid~] is working straight away as well as [pdogg/oggwrite~] which is already part of my SMS Vanilla project.
@joe-rouen what about anti-virus and things like that? someone called this...
It's a good idea but it was already checked several times on both W10 PCs. The anti-virus (Avast) totally OFF is giving the same bad behaviour for [sfont~]. I also verified the AV quarantine and there is not file in it as well as no exotic filter setup.
As said in my previous post: "With the same Pd Vanilla configuration on my W10 laptop, [ceammc/fluid~] is working straight away." with the anti-virus on or off.
I can understand that my 2 PCs could have a specific OS issue/setup but [ceammc/fluid~] and [else/sfont~] are using more or less the same DLLs architecture. But when Pd/Ceammc can deal with my 2 W10 PCs Pd/Else can't. Remember also that Purr Data [fluid~] and PlugData (but the DLLs are integrated) are also working with their FluidSynth stuff.
We can continue to struggle with my PCs BUT at least part of the solution should be on Else's side.
Are you on the mail list? See Christof's answer on the pd-list:
_Hi Alex,
happy new year! I have recently experienced the same issue! I am also using zexy and for some reason [sfont~] would only load if [sfont~] loaded before zexy. Here's a hacky solution:
[declare -lib else/sfont~ -lib zexy]
I think the reason for such problems is this:
Plugin A and plugin B both link dynamically to third-party library C.
A and B ship their own versions of C (C-a and C-b) If A is loaded first, C-a is loaded into memory and B will try to use C-a.
If B is loaded first, C-b is loaded into memory and A will try to use C-b.
This is ok if C-a and C-b are compatible, but it leads to problems if they are not.
In this particular case, the problem is the following: Both zexy and libfluidsynth link against libintl-8; zexy wants to import "libintl_gettext", libfluidsynth wants to import "DllMain". However, the libintl-8 version shipped with zexy does not export "DllMain", so libfluidsynth won't load.
If I replace zexy's libintl-8 with else's libintl-8, both objects load correctly, regardless of which is loaded first. Actually, I don't really understand why libfluidsynth's libintl-8 exports "DllMain" in the first place and why libfluidsynth wants to import it... According to the output of Dependencies, it does not seem to call any other function (see attachment).
Christof_
see attachment
About which Mail List are you talking about?
Christof's detailed explanation looks very promising. :) As it's over midnight here in France I will test his solution later on today...
I can understand that my 2 PCs could have a specific OS issue/setup but [ceammc/fluid~] and [else/sfont~] are using more or less the same DLLs architecture. But when Pd/Ceammc can deal with my 2 W10 PCs Pd/Else can't. Remember also that Purr Data [fluid~] and PlugData (but the DLLs are integrated) are also working with their FluidSynth stuff.
when you say ceammc, are you saying it's library under vanilla or the pd-ceammc distribution? It doesn't work for me above Pd 0.52, but I see it links statically. Not sure how Purr Data handles it...
Static linking is ideal and I wanted it, but the ones collaborating with me said it would be really hard, right @Lucarda ?
Static linking is ideal and I wanted it, but the ones collaborating with me said it would be really hard, right @Lucarda ?
From what I remember yes it will be hard. We can try it again. IIRC the compiler let us statically link libfluidsynth-3.dll
(this is the only thing sfont~.c
is aware of:
https://github.com/porres/pd-else/blob/ff92d1b5291153ca6317de4b674fdccee8902da1/sfont~/Makefile#L9
the rest of the .dll
s (.w64
) are libfluidsynth
dependencies that came dynamically linked in the MinGW package mingw64/mingw-w64-x86_64-fluidsynth
. We don't have control on that. Note that zexy
also does not statically link dependencies but that's another story.
I could give it another try but I need a couple of days to free and reset my main machine.
Are you on the mail list? See Christof's answer on the pd-list:
Hi Alex, happy new year! I have recently experienced the same issue! I am also using zexy and for some reason [sfont~] would only load if [sfont~] loaded before zexy. Here's a hacky solution: [declare -lib else/sfont~ -lib zexy] Christof
Not good at all. In fact for my case after applying this [declare -lib else/sfont~ -lib zexy] and testing it, the result is not working on my PC and introduces a new error when getting rid of the previous one!
maximum object loading depth 1000 reached else/sfont~ -g 0.3 ... couldn't create
So pursuing further, I removed all the Libraries in Load at startup and used in my patch: [declare -lib else/sfont~ -lib else/midi -lib else/keyboard -lib cyclone/midiparse -lib cyclone/midiformat -lib zexy/s2l -lib zexy/mux -lib zexy/demux], but still with the same new problem.
s2l / ... couldn't create mux 0 1 ... couldn't create maximum object loading depth 1000 reached else/midi ... couldn't create maximum object loading depth 1000 reached cyclone/midiparse ... couldn't create maximum object loading depth 1000 reached cyclone/midiformat ... couldn't create s2l / ... couldn't create demux 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... couldn't create maximum object loading depth 1000 reached cyclone/midiformat ... couldn't create maximum object loading depth 1000 reached else/keyboard 17 80 7 1 0 0 kbout kbin ... couldn't create s2l / ... couldn't create demux ... couldn't create s2l / ... couldn't create maximum object loading depth 1000 reached else/sfont~ -g 0.3 ... couldn't create s2l ... couldn't create
=> It looks like this new error message is not meaning at all what it is supposed to say!
I can understand that my 2 PCs could have a specific OS issue/setup but [ceammc/fluid~] and [else/sfont~] are using more or less the same DLLs architecture. But when Pd/Ceammc can deal with my 2 W10 PCs Pd/Else can't. Remember also that Purr Data [fluid~] and PlugData (but the DLLs are integrated) are also working with their FluidSynth stuff.
when you say ceammc, are you saying it's library under vanilla or the pd-ceammc distribution? It doesn't work for me above Pd 0.52, but I see it links statically. Not sure how Purr Data handles it...
=> Yes, it is Pd/Deken/Ceammc one and it's working for me (at least for my tests) under Pd Vanilla 0.53.1 / W10:
CEAMMC library Centre for Electroacoustic Music Moscow Conservatory, © 2016-2021 authors: Serge Poltavsky and Alex Nadzharov arch: 64-bit precision: float path: C:/Users/Joe/Documents/Pd/externals/ceammc version: 0.9.4 url: https://github.com/uliss/pure-data pd instance: false license: GPL-3 build date: 'Nov 20 2021'
[ceammc] distribution: external deken [ceammc] A-Chaos library, (c) 2004 André Sier
@joe-rouen try to get Pd back to normality (you don't need any [declare]). then do this hack which is the best we have for now:
"C:\Users\$you\Documents\Pd\externals\zexy\libintl-8.w64"
to libintl-8.w64.old
"C:\Users\$you\Documents\Pd\externals\else\libintl-8.w64"
to the the zexy
folder from the above step.:)
Note: I had tested this on my win11 machine. I didn't experience the bug myself because I did not had zexy
installed.
@Lucarda This is a very great workaround! It's working like a charm with my original Pd's setup! Thanks a lot. :) :) :)
@Porres But, because there is always a but, the reactivity of the GOP (user GUI) awa the Pd's Menu are now very slow compared to GNU/Linux. Fortunately there is no impact on neither [midi] traffic nor FluidSynth / DSP outputs. I need to further investigate for trying to determine the potential culprit-s...
Not good at all. In fact for my case after applying this [declare -lib else/sfont~ -lib zexy] and testing it, the result is not working on my PC and introduces a new error when getting rid of the previous one!
because you should create the object just as "sfont~", not "else/sfont~"
anyway, we found the issue, sfont~ won't work if zexy is loaded first, but this does work fine for me in macOS even so...
well, at least there's a simple way to manage this with [declare]
I will close this issue and open a new one for static linking
1- Following our discussion on the Pd-L2Ork channel, I confirm [sfont~] has much better functionalities than [fluid~] under the GNU/Linux distributions (Debian, Arch and their derivatives like RPi OS, Ubuntu Studio, Linux Mint, Manjaro). => But the real thing which is missing is the availability to change its gain on the fly. If not, it's just impossible to deal with a lot of Midi files and SF2 soundfonts. The DSP volume is not enough.
2- Now under Windows 10 22H2 64-bit, [sfont~] is not working at all, as [fluid~] too which was the starting of our discussion. Cyclone 0.6-1 needs at least Pd 0.52-0: you have 0.53-0, you're good!
ELSE 1.0-0 rc-5 needs at least Pd 0.53-1: you have 0.53-0, please upgrade (but I'm supposed to have already 0.53-1 on my PC!) H:\JOE-W10\Documents\Pd\externals\else\sfont~.m_amd64: La procédure spécifiée est introuvable. (The specified procedure is not found and the requested file is well present at the given place!). (127) else/sfont~ -g 0.3 ... couldn't create Even worse, under Windows 10 I can't open my patch, no way, when under GNU/Linux is all fine.
3- An other Pd Vanilla related issue Installing pd-0.53-1.windows-installer.exe (downloaded directly several times from Miller Puckette web site), uninstalling it and installing it again always give a wrong version: Pd version 0.53.0. Target: "C:\Program Files\Pd\bin\wish86.exe" "C:\Program Files\Pd\tcl\pd-gui.tcl"
Q: Any idea how to fix the [sfont~] object bug under Windows 10? Thank you.