monocasual / giada

Your Hardcore Loop Machine.
https://www.giadamusic.com
GNU General Public License v3.0
1.71k stars 98 forks source link

No VST plugins found #549

Open toofunkybeats opened 2 years ago

toofunkybeats commented 2 years ago

Environment

Describe the bug This might be related to #512, the behaviour is very similar - i didn't check with an older version (yet) though.

Basically i can't find a way to get giada to recognize any VST plugins.

To Reproduce Steps to reproduce the behavior:

Expected behavior

0 plugins found - there's quite a few VST2 and VST3 plugins in the directories.

Screenshots

[init] Giada 0.19.1
[init] Build date: Dec 16 2021
[init] Release build
[init] Dependencies:
[init]   FLTK - 1.3.7
[init]   RtAudio - 6.0.0beta1
[init]   RtMidi - 3.0.0
[init]   Libsamplerate
[init]   Libsndfile - libsndfile-1.0.31
[init]   JSON for modern C++ - 3.9.1
[init]   JUCE - 6.1.2
[KA] Compiled RtAudio APIs: 3
  ASIO
  WASAPI
  DirectSound
[MidiMapper::init] scanning midimaps directory '.\midimaps\'...
[MidiMapper::init] unable to scan midimaps directory!
[MidiMapper::read] midiMap not specified, nothing to do
[Engine::init] MIDI map read failed!
[KA] using system 0x3
[KA] Opening device out=2, in=-1, samplerate=44100
[KA] 11 device(s) found
  0) Primärer Soundtreiber
      ins=0 outs=2 duplex=0
      isDefaultOut=1 isDefaultIn=0
      sampleRates:
    4000 5512 8000 9600 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000 
  1) PLG2488H (NVIDIA High Definition Audio)
      ins=0 outs=2 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    4000 5512 8000 9600 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000 
  2) Lautsprecher (USB Audio CODEC )
      ins=0 outs=2 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    4000 5512 8000 9600 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000 
  3) VG259 (NVIDIA High Definition Audio)
      ins=0 outs=2 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    4000 5512 8000 9600 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000 
  4) Lautsprecher (Realtek High Definition Audio)
      ins=0 outs=2 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    4000 5512 8000 9600 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000 
  5) Lautsprecher (Steam Streaming Microphone)
      ins=0 outs=2 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    4000 5512 8000 9600 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000 
  6) Lautsprecher (Steam Streaming Speakers)
      ins=0 outs=2 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    4000 5512 8000 9600 11025 16000 22050 32000 44100 48000 88200 96000 176400 192000 
  7) Primärer Soundaufnahmetreiber
      ins=2 outs=0 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    11025 22050 44100 96000 
  8) Mikrofon (Realtek High Definition Audio)
      ins=2 outs=0 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    11025 22050 44100 96000 
  9) Mikrofon (Steam Streaming Microphone)
      ins=2 outs=0 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    11025 22050 44100 96000 
  10) Mikrofon (USB Audio CODEC )
      ins=2 outs=0 duplex=0
      isDefaultOut=0 isDefaultIn=0
      sampleRates:
    11025 22050 44100 96000 
[mixer::reset] buffers ready - maxFramesInLoop=529200, framesInBuffer=1024
[mixer::enable] enabled
[KA] Start stream - latency = 0
[pluginManager::scanDir] requested directories: 'C:\Program Files\Steinberg\VSTPlugins'
[pluginManager::scanDir] current plug-in types: 0
[pluginManager::scanDir] 0 plugin(s) found
[pluginManager::scanDir] requested directories: 'C:\Program Files\Steinberg\VSTPlugins;C:\Program Files\Native Instruments\VSTPlugins 64 bit'
[pluginManager::scanDir] current plug-in types: 0
[pluginManager::scanDir] 0 plugin(s) found
[ui] All windows closed
[Engine::shutdown] KernelAudio closed
[mixer::disable] disabled
[Engine::shutdown] Mixer closed
[Engine::shutdown] configuration saved

Additional context Please advide if you need more information

gvnnz commented 2 years ago

Thanks for reporting @toofunkybeats . ~Are you trying to load VST2.x plug-ins, that is the deprecated format, or VST3?~

EDIT: sorry, missed this one:

0 plugins found - there's quite a few VST2 and VST3 plugins in the directories.

What if you try to scan a directory containing only VST3 plug-ins?

toofunkybeats commented 2 years ago

Thanks for the pointer!

Looks like it doesn't eat the folders containing the .dlls - instead I got it scan 1 plugin by pointing at a folder that contains a .vst3 file. Not used to this, as all other VST hosts I know work with the .dll folder, but at least it got me starting

unfortunately trying to load HALion 6 results in a crash:

[mixer::reset] buffers ready - maxFramesInLoop=529200, framesInBuffer=1024
[mixer::enable] enabled
[KA] Start stream - latency = 0
[KM] Device 'Giada MIDI input': 1 MIDI ports found
  0) microKEY2 0
[pluginManager::scanDir] requested directories: 'C:\Program Files\Common Files\VST3\Steinberg\HALion 6'
[pluginManager::scanDir] current plug-in types: 0
[pluginManager::scanDir] 1 plugin(s) found
[pluginManager::saveList] unable to save plugin list to .\plugins.xml
[pluginManager::makePlugin] plugin found, uid=VST3-HALion 6-6ddef5-dc766d8e, name=HALion 6...
[pluginManager::makePlugin] plugin instance with pid=VST3-HALion 6-6ddef5-dc766d8e created
[Plugin] plugin initialized and ready. MIDI input params: 9793

I'll see if i have more luck with NI VSTi, but it looks like some of their plugins (like Battery4 ) only exist as vst 2.4 - at least on my system. I'll investigate.

gvnnz commented 2 years ago

Looks like it doesn't eat the folders containing the .dlls - instead I got it scan 1 plugin by pointing at a folder that contains a .vst3 file.

This is interesting. It might be a limitation in JUCE, the library we are using for VST support. Or maybe it is the correct way to handle VST3 plug-ins, by keeping the dll files in their .vst3 folder.

unfortunately trying to load HALion 6 results in a crash:

Is it 100% reproducible every time you load it?

Also I see this one:

[pluginManager::saveList] unable to save plugin list to .\plugins.xml

it means the list of scanned plug-ins can't be saved. Are you running Giada inside a read-only directory?

toofunkybeats commented 2 years ago

No, definitely writable. i started testing with giada 0.20 - it looks like once I made it recognize a VST instrument, it won't save any configuration any more.

I started giada.exe from a terminal to make sure the current working directory is correct. It only saves if I didn't scan for plugins. Once I scan, it won't save settings any more.

Is there a way to get more detailed logs out of the application?

gvnnz commented 2 years ago

No, definitely writable. i started testing with giada 0.20 - it looks like once I made it recognize a VST instrument, it won't save any configuration any more.

All configuration files? The list of scanned plugins and the giada.conf file?

Is there a way to get more detailed logs out of the application?

What you see is the current maximum log level. You have to step through a debugger if you want to dig deeper.

toofunkybeats commented 2 years ago

No, definitely writable. i started testing with giada 0.20 - it looks like once I made it recognize a VST instrument, it won't save any configuration any more.

All configuration files? The list of scanned plugins and the giada.conf file?

yes. I can save any configuration, but only by exiting giada before scanning for plugins. After that, no config gets saved (which also means, plugins.xml can never contain more than just an empty xml node).

Is there a way to get more detailed logs out of the application?

What you see is the current maximum log level. You have to step through a debugger if you want to dig deeper.

Hmm... i don't have devtools installed on my system. I might kindly ask to log exceptions in the future :) that might help troubleshooting without having a debugger (or knowing how to use it).

gvnnz commented 2 years ago

yes. I can save any configuration, but only by exiting giada before scanning for plugins. After that, no config gets saved (which also means, plugins.xml can never contain more than just an empty xml node).

The configuration file is saved when you quit Giada: if it crashes -> no clean quit and so the configuration file is not saved.

I might kindly ask to log exceptions in the future :) that might help troubleshooting without having a debugger (or knowing how to use it).

This is a good idea! Also we should make plug-in crashes less "damaging" - maybe running them in a separate process? Needs investigation.