jbclements / RSound

A cross-platform sound library for DrRacket
http://www.brinckerhoff.org/clements
Other
45 stars 11 forks source link

Issue with portaudio dependency #49

Closed jeffwack111 closed 2 years ago

jeffwack111 commented 2 years ago

After installing rsound and all dependencies, when I try (require rsound) I get the error message

....\Program Files\Racket\collects\ffi\unsafe.rkt:255:20: ffi-obj: could not find export from foreign library name: Pa_GetVersionInfo library: C:\Users\jeffw\AppData\Roaming\Racket\8.4\pkgs\portaudio-x86_64-win32\portaudio\lib\portaudio.dll system error: The specified procedure could not be found.; win_err=127

The file "portaudio.dll" is in fact exactly in the location specified.

soegaard commented 2 years ago

The user below on StackOverflow had a similar problem with PortAudio on Windows.

It seems the portaudio library were distributed in a version where Pa_GetVersionInfo wasn't exported. I think, the suggested solution requires to recompile the libary.

I suggest finding a newer version of portaudio.dll and replace the one currently on your system. [Or if you can't find a newer version, then try the version before the current]

https://stackoverflow.com/questions/64233135/portaudio-test-application-unresolved-external-symbol-pa-getversioninfo

jbclements commented 2 years ago

Sounds right to me. @soegaard , many thanks for this detective work!

jeffwack111 commented 2 years ago

I followed instructions here http://portaudio.com/docs/v19-doxydocs/compile_windows_mingw.html

to install portaudio and then copied the contents of lib from that installation to \AppData\Roaming\Racket\8.4\pkgs\portaudio-x86_64-win32\portaudio\lib\

The name of the dll file is "libportaudio-2.dll"

Now I can successfully use portaudio from DrRacket, but (require rsound) results in the new error: ....\Program Files\Racket\collects\ffi\unsafe.rkt:131:0: ffi-lib: could not load foreign library path: C:\Users\jeffw\AppData\Roaming\Racket\8.4\pkgs\rsound\rsound\private.\win32\x86_64\cs\buffer-add.dll system error: The specified module could not be found.; win_err=126

jeffwack111 commented 2 years ago

I got the package running! I created the folder called "cs" and placed into it "buffer-add.dll" Thanks for your initial help, I have very little experience with this kind of troubleshooting so this was quite an adventure. Excited to play with rsound!