-
Notifications
You must be signed in to change notification settings - Fork 260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No sound plays on win10 x64 build using CMake and VS2015 #563
Comments
Clean the build folder, run cmake again and provide the cmake log output pls. |
@maestrocoder . Just for infos:
The result of cmake output should be: Audio / MIDI driver support: When build with FluidSynth runtime version 2.0.6 fluidsynth: debug: Testing audio device: SB Live! Audio [CE00] You can use the settings command to see what is actual
|
Cleaned build folder; ran again for VS2015 - here's the output: I did this twice and I think I was careful to make sure Debug is in the Config, both the CMAKE_BUILD_TYPE = Debug and enable-dsound checked -
But I don't see Debug info in the fluidsynth like you show - no fluidsynth: debug: lines... there are a few "No package 'x' found" like "No package 'sndfile' found" but not sure if I need that on PC? I installed the MinGW packages into c:\freesw\bin and added to PATH. I also checked I have this C:> pkg-config --list-all Lastly, I am running config and compiling as x64 - which is the version of libraries in my freesw/bin. Now I'm even more stumped, why I don't get Debug when building debug. And on the info audio.driver i do not see "waveout"? ===============================================
|
The way you've built it looks correct. DSound is found, Debug build type and configuration is selceted. You should at least get some
log output. If not, delete the build folder and restart from scratch, this time, by setting If you don't get sound try starting fluidsynth.exe with the If you still don't get any sound, download, compile and test fluidsynth 1.1.8 please. |
Actually in you case you don't need
|
Also, before invoking fluidsynth, maybe it worth to check that your audio subsystem works as expected. |
same issues on 2.0.6 version - and still unable to get Debug output even with setting the CMake CMAKE_BUILD_TYPE and enable_debug before running any Configure. I still hear a "click" sound when fluidsynth starts and exits but no actual real sound fonts with "noteon 0 60 100". Also -o audio.sample-format=float did not work. But when I run the exact same steps I get sound working on version 1.1.8. SUCCESS!! :-) Also my subsystem sound is working find for web, music, etc.. Curious what's different between the versions where it works on old version but not new version because of your suggestion to try the old version? Happy to continue to help troubleshoot and test as I learn this cool project. |
Also, what is curious is why the new version (2.0.6) on your system (Windows 10) have issues that doesn't occur on my system (Windows XP) when using Please, have you tried and got the same issues with |
Ok, I wasn't aware about this ! I have made some try here with 2.0.6 (
|
It seems these issues are introduced by commit |
Ok, forget about the debug messages, this is trivial. After looking into this, I think 4f2be10 is to blame. I found that turning off reverb makes the sound work again. It seems that reverb continuously overflows the synthesized audio. But you are right, this only happens when loading the soundfont via |
The parameters (roomsize, level, etc.) of the reverb effects unit are initialized at the very end of `new_fluid_synth()` with `fluid_synth_set_reverb_full_LOCAL()`. This however only adds an update-event to the `rvoice_mixer` queue. The call to `fluid_synth_process_event_queue()` in `new_fluid_synth()` should make sure, that this event is dispatched and triggers the actual update, but it is not dispatched, because a call to the rvoice event queue has not been committed yet, that is, a call to `fluid_rvoice_eventhandler_flush()` is missing. So, although a reverb param initialization event has been queued, the reverb params still are garbage initialized to some `-6.2774385622041925e+66`. The next call to through the synth's public API will flush the queue and finally dispatch the update event, but when will it happen? 1. If the soundfont is specified as command-line argument, this call will happen before the audio driver starts rendering 2. If the soundfont is loaded via shell command `load`, the audio driver will first start rendering audio, after updating the reverb. Case 1. is trivial, not change is noticeable / audible. Case 2. is interesting. Since the synth already started rendering audio by using that uninitialized reverb unit, the reverb engine's internal buffer is completely filled up with noise. Before outputting that signal to sound card, the sound is clipped to `1.0f`. That's the click we hear at the beginning. And because the reverb is so loud, the rendered audio signal stays 1.0f for quite a long time (...or always, can't tell). Why is it not reproducible on Linux? Because GCC and Clang (AFAIK) leave all values uninitialized after memory allocation. And because malloc() often return zero-initialized memory, the reverb params seem to be nicely zero-initialized. MSVC however, always initializes memory with garbage, which is why we "hear" this resonance disaster. Solution: Just update the reverb params via public API, which implicitly calls `fluid_rvoice_eventhandler_flush()`. Fixes #563.
Fix is ready. Short story: The reverb model may be partially uninitialized. Long story, see #565. @maestrocoder Thx for the report. Pls. feel free to test: |
|
I was successful building and playing SF2 using fluidsynth on MAC.
On Windows10, I cannot and wondering what my problem is. When I start the fluidsynth.exe program I hear a small "click" when it starts and again when it ends, so it's trying to work but when I run a simple "load myfont.sf2" and "noteon 0 60 100" I do not hear any piano note.
Here's what I did.
3a) note* i tried this 2 ways
3a.1) with copy of dsound.h into c:\freesw\include - BUT not sure how this is getting LINKED?
3a.2) already have DirectX SDK 2010 installed from some VS install before because when I tried to install again gave an "DirectX Error S1023" have existing VC++ 2010 redistributable
get the "click" sound.
Thanks in advance!
The text was updated successfully, but these errors were encountered: