Coder Social home page Coder Social logo

Comments (8)

rfomin avatar rfomin commented on September 23, 2024

MusicCMD_Play() can be problematic: libsdl-org/SDL_mixer#415

I suggest removing this feature.

from chocolate-doom.

KynikossDragonn avatar KynikossDragonn commented on September 23, 2024

Is there a way to use "Native MIDI" on Linux and have it just talk to a fluidsynth process I spawn in a terminal like I do with DOSBox? Because the docs tell me to attempt using snd_musiccmd otherwise I have no choice but to make a timidity.cfg for Chocolate Doom to find.

And the soundfont I use does not like TiMidity++ at all, atleast from what happened when I tried to use it under GZDoom.

from chocolate-doom.

rfomin avatar rfomin commented on September 23, 2024

Is there a way to use "Native MIDI" on Linux and have it just talk to a fluidsynth process I spawn in a terminal like I do with DOSBox?

But why do you need a FluidSynth process? SDL_Mixer can work with FluidSynth directly, you can change the sound font using the SDL_SOUNDFONTS environment variable.

Also in current master you can set FluidSynth soundfont via chocolate-setup:
image

from chocolate-doom.

KynikossDragonn avatar KynikossDragonn commented on September 23, 2024

Having access to a separate process allows me to run the "reset" command if notes get stuck, and I can fine tune the gain, chorus, reverb properties in real time when needed.

I guess the Chocolate Doom package on Void Linux isn't being built with fluidsynth support because I don't see that in my setup:
Screenshot_2022-12-22_20-39-10

EDIT: Just to clarify when I run a fluidsynth process interactively the following stuff is read in ~/.fluidsynth

gain 0.6
interp 1
set synth.chorus.active 1
set synth.chorus.level 1.0
set synth.chorus.nr 2
set synth.chorus.speed 0.6
set synth.polyphony 512
set synth.reverb.active 0
set synth.reverb.damp 0.1
set synth.reverb.level 0.9
set synth.reverb.room-size 0.8
set synth.reverb.width 100.0

These are options that are always read when the fluidsynth process itself is started but anything using fluidsynth as a library will never read these commands. If stuff starts clipping inside of the synth itself I can't re-adjust the gain to compensate (because for some reason FluidSynth has no concept of automatic gain control) and certain soundfonts sound better with different settings for the chorus and reverb units as well. Some soundfonts I prefer to not even have to reverb on whatsoever.

from chocolate-doom.

rfomin avatar rfomin commented on September 23, 2024

Well, this looks like an issue with SDL_Mixer that is out of our control.

I guess the Chocolate Doom package on Void Linux isn't being built with fluidsynth support because I don't see that in my setup

It looks like version v3.0.1, I was talking about the latest development version. However, the developing version also does not have the ability to fine-tune the chorus, reverb, etc.

from chocolate-doom.

KynikossDragonn avatar KynikossDragonn commented on September 23, 2024

Oh sorry I completely misread you were talking about a git build instead.

It's a bummer though that SDL_Mixer doesn't allow changing FluidSynth's parameters, but I guess it's a PSA to not use snd_musiccmd unless it's a process that does what that issue says it has to do? (The whole "call exec*() or _exit() immediately" part)

from chocolate-doom.

rfomin avatar rfomin commented on September 23, 2024

I guess it's a PSA to not use snd_musiccmd unless it's a process that does what that issue says it has to do? (The whole "call exec*() or _exit() immediately" part)

I'm not sure, I'm not a Linux development expert. I can't reproduce these issues on the old Debian VM I have.

from chocolate-doom.

mikeday0 avatar mikeday0 commented on September 23, 2024

If you select Native Midi in chocolate-setup and set the environmental variable SDL_SOUNDFONTS to your soundfont path, SDL_Mixer should use FluidSynth. (Assuming it was compiled with FluidSynth support.) As noted, you can't currently adjust the FluidSynth parameters when using it through SDL_Mixer.

from chocolate-doom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.