DBraun / DawDreamer

Digital Audio Workstation with Python; VST instruments/effects, parameter automation, FAUST, JAX, Warp Markers, and JUCE processors
GNU General Public License v3.0
929 stars 66 forks source link

Issues about SamplerProcessor, rendered audio, and VST3 plugins loading .fxp presets #199

Open heqi201255 opened 6 months ago

heqi201255 commented 6 months ago

Hi, I'm working on my project that uses DawDreamer as the render engine. Here are some issues I met:

  1. SamplerProcessor does not work properly: initially I found the rendered audio from SamplerProcessor are all click sounds like this:

    Screenshot 2024-04-25 at 09 35 49

    The midi is an arp loop and the audio data is a short guitar sample in "wav" format, so I think the midi is loaded properly, then I thought it might be the initial parameter states got wrong, so I checked them and I tried to set the parameters, but it didn't work:

    Screenshot 2024-04-25 at 09 39 46 Screenshot 2024-04-25 at 09 40 11

    I tried "1", "1.0", "True" for the "Amp Active" parameter to get it turned on, but all of them didn't work.

  2. PlaybackWarpProcessor will cut the transient of the audio: I gave a kick sample to the playbackwarp processor and I set the clip positions so that it renders a kick loop, but I found the transient of the kick got reduced a lot, don't know if it's a rubberband issue but I did not change the transpose and tempo_ratio settings: Original Kick:

    Screenshot 2024-04-25 at 09 47 59

    Rendered Kick:

    Screenshot 2024-04-25 at 09 48 34
  3. Loading Serum plugin in VST3 format could not load .fxp preset files: I think Serum's presets are all in "fxp" format, and I can load them into VST3 Serum in other DAWs. Calling "load_preset()" won't throw any errors but the preset is just not loaded into the plugin, I haven't tested this on other plugins with dawdreamer.

DBraun commented 2 months ago

Sorry for replying so late.

1) This might happen if you're playing MIDI notes several octaves above the center note (set to 60). The sampler test is working well for me. It plays three notes of a cymbal at different pitches and they sound pretty ordinary.

2) The Playback Warp Processor's Rubber Band features can be set. These ones should do minimal modification to the audio.

    drums = engine.make_playback_warp_processor("drums", data)
    rb_option = daw.PlaybackWarpProcessor.option
    drums.reset_options()
    # set_options will totally replace anything previously done.
    drums.set_options(
        rb_option.OptionTransientsCrisp |
        rb_option.OptionDetectorPercussive |
        rb_option.OptionPitchHighQuality |
        rb_option.OptionChannelsApart
    )

3) I've only used the VST2 of Serum from Splice. If you're using the VST3, hopefully plugin_processor.load_vst3_preset(filepath) works?

If the issues persist please upload scripts for testing. Thanks.