Forum
    • Categories
    • Register
    • Login

    Linux Issues...

    Scheduled Pinned Locked Moved AI discussion
    22 Posts 2 Posters 139 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • MorphoiceM
      Morphoice @David Healey
      last edited by

      @David-Healey Synth.deferCallbacks(true) is called in Interface.js This means ALL MIDI callbacks (onNoteOn, onNoteOff, etc.) are deferred to the message thread via the deferredExecutioner, right? and from reading through various webs that has issues with JUCE on Linux... can't verify though

      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

      David HealeyD 1 Reply Last reply Reply Quote 0
      • David HealeyD
        David Healey @Morphoice
        last edited by

        @Morphoice said in Linux Issues...:

        Synth.deferCallbacks(true)

        The UI script should always use this, and all my plugins use it, so this is not the cause of the issue.

        Unless you can test and debug it I'd suggest pulling your Linux version.

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        MorphoiceM 2 Replies Last reply Reply Quote 0
        • MorphoiceM
          Morphoice @David Healey
          last edited by

          @David-Healey Agreed. I'm curious as to what the real cause is but given only 0.3% of all downloads is linux, that's not really something I have the capacity to invest my spare time into...

          https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

          1 Reply Last reply Reply Quote 0
          • MorphoiceM
            Morphoice @David Healey
            last edited by

            @David-Healey said in Linux Issues...:

            @Morphoice said in Linux Issues...:

            Synth.deferCallbacks(true)

            The UI script should always use this, and all my plugins use it, so this is not the cause of the issue.

            Unless you can test and debug it I'd suggest pulling your Linux version.

            the probably suspendState mechanism - suspends timers/deferredExecutioner when no editor is open
            KillStateHandler stuck in Suspended state
            which comes with the Silentsynth/Voicekiller construct I use to make faust-only synths

            https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

            David HealeyD 1 Reply Last reply Reply Quote 0
            • David HealeyD
              David Healey @Morphoice
              last edited by

              @Morphoice If your customer is willing to be your tester then make the change and get them to see if it fixes it. Otherwise, without being able to test it's all just guessing.

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - Public HISE tutorials
              My Patreon - HISE tutorials

              MorphoiceM 2 Replies Last reply Reply Quote 0
              • MorphoiceM
                Morphoice @David Healey
                last edited by

                @David-Healey right.

                https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                1 Reply Last reply Reply Quote 0
                • MorphoiceM
                  Morphoice @David Healey
                  last edited by

                  @David-Healey I've had a chance to look at it briefly at a friends PC who has Trixie installed and bitwig, the plugins load just fine and the ones with graphical drum pads do produce sound, but none receive midi... so i reckon the DSP and tone generation isnt the problem at all but the underlying JUCE framework isnt passing midi data along

                  one thing to note is that the midi indicator led i put in my guy does light up, but no sound. so actually the midi is not passed along to the faust automatically

                  https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                  David HealeyD 1 Reply Last reply Reply Quote 0
                  • David HealeyD
                    David Healey @Morphoice
                    last edited by

                    @Morphoice Must be something faust specific. Is it wrapped in a MIDI container? I could be talking nonsense here as I've not used it.

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - Public HISE tutorials
                    My Patreon - HISE tutorials

                    MorphoiceM 1 Reply Last reply Reply Quote 0
                    • MorphoiceM
                      Morphoice @David Healey
                      last edited by Morphoice

                      @David-Healey

                      The HISE export_ci process corrupted parameter values in the binary preset data (PresetData.cpp). All parameters within each HardcodedMasterFX/HardcodedPolyphonicFX node were overwritten with the last parameter's value. For one plugin, the Chorus effect's Volume was set to 0.0, which made pow(20, 2*0) - 1 = 0, multiplying all audio output by zero.

                      Fix: Wrote a Python script that decompresses the zstd-compressed binary preset (using HISE's custom dictionary), parses the JUCE ValueTree binary format, replaces corrupted values with correct ones from the XML backup, and writes back.

                      https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                      MorphoiceM 1 Reply Last reply Reply Quote 0
                      • MorphoiceM
                        Morphoice @Morphoice
                        last edited by

                        When running HISE export_ci on Linux (GCC 12, Debian), the generated PresetData.cpp contains corrupted parameter values for all HardcodedMasterFX and HardcodedPolyphonicFX nodes. Every parameter in each node is overwritten with the last parameter's value.

                        Reproduction: Export any project containing HardcodedMasterFX nodes on Linux. Compare the binary preset values against XmlPresetBackups/*.xml — they will differ.

                        Example (Chorus effect with 12 params):

                        XML has: Delay=5.23, ModAmount=1.0, ..., Volume=0.5, Noise=0.0
                        Binary preset has: Delay=0.0, ModAmount=0.0, ..., Volume=0.0, Noise=0.0 (all = last param value)
                        Impact: Plugins produce complete silence when a volume-like parameter gets zeroed.

                        Location: The bug appears to be in HardcodedSwappableEffect::writeHardcodedData() in HardcodedModuleBase.cpp, reading from the lastParameters MemoryBlock.

                        Workaround: Post-export script that decompresses the binary, patches values from the XML backup, and recompresses.

                        Platform: Linux only. macOS and Windows exports are correct.

                        https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                        MorphoiceM David HealeyD 2 Replies Last reply Reply Quote 0
                        • MorphoiceM
                          Morphoice @Morphoice
                          last edited by

                          @Christoph-Hart

                          There are two bugs in the "uncompiled effect" code path in restoreHardcodedData():

                          Bug 1 (Primary — line 982): v[up.getLast()] should be v[up[i]]

                          This reads the LAST property name for EVERY parameter index, causing all parameters to get the last parameter's value
                          Bug 2 (Secondary — lines 967, 563): lastParameters.setSize(numParameters) should be lastParameters.setSize(numParameters * sizeof(float))

                          The compiled path correctly uses numParameters * sizeof(float), but the uncompiled path allocates only numParameters bytes instead of numParameters * 4 bytes — a buffer underallocation
                          Why Linux-only: hasLoadedButUncompiledEffect() returns true when factory == nullptr || factory->getNumNodes() == 0. On Linux, during export_ci, the scriptnode factory has no compiled nodes, so this buggy code path is taken. On macOS/Windows, the factory can instantiate the nodes, so the correct opaqueNode path is used instead.

                          https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                          1 Reply Last reply Reply Quote 0
                          • David HealeyD
                            David Healey @Morphoice
                            last edited by

                            @Morphoice said in Linux Issues...:

                            Workaround: Post-export script that decompresses the binary, patches values from the XML backup, and recompresses.

                            That is not the solution. The fix needs to be made on the HISE side. But good that you tracked down the cause, I'll have to test.

                            Are you on the latest develop branch?

                            Free HISE Bootcamp Full Course for beginners.
                            YouTube Channel - Public HISE tutorials
                            My Patreon - HISE tutorials

                            MorphoiceM 1 Reply Last reply Reply Quote 0
                            • MorphoiceM
                              Morphoice @David Healey
                              last edited by

                              @David-Healey yes

                              https://instagram.com/morphoice - 80s inspired Synthwave Music, Arcade & Gameboy homebrew!

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              16

                              Online

                              2.4k

                              Users

                              13.8k

                              Topics

                              119.6k

                              Posts