HISE Logo Forum
    • Categories
    • Register
    • Login

    Massive FL STUDIO Problem

    Scheduled Pinned Locked Moved Bug Reports
    16 Posts 6 Posters 589 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.
    • P
      ps
      last edited by

      I think I remember there were some changes recently to fix the Multiple Outputs in FL Studio I tested it all seemed fine. But unfortuantely I didn't change the host tempo in my test.
      When I only change the bpm of FL Studio to below 120bpm it suddenly produces immense static noise mostly leading to a crash with my plugin.
      The buffer / sample rate settings doesn't change anything. I tested on two different M1 Macs.
      Any ideas?

      LindonL 1 Reply Last reply Reply Quote 0
      • LindonL
        Lindon @ps
        last edited by

        @ps make a simple sine wave generator plugin and test that...

        HISE Development for hire.
        www.channelrobot.com

        Christoph HartC 1 Reply Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @Lindon
          last edited by

          WHAT? FL Studio keeps on giving :)

          I can reproduce that here, let me check real quick why this is such a clusterfuck.

          P 1 Reply Last reply Reply Quote 1
          • P
            ps @Christoph Hart
            last edited by

            @Christoph-Hart i pushed an update a few days ago with this in it hopefully only 120+ bpm producers have installed yet haha

            Christoph HartC 1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart @ps
              last edited by

              OK, it appears that FL Studio is sending out bigger buffers than the actual buffer size when the tempo is < 100BPM. What on earth is wrong with them? I'll keep investigating, but this is so stupid I can't even describe how messed up that is. The maybe most important convention between DAWs and plugins is "I tell you how many samples you can expect AT MOST in the prepare call. After this I can roll a dice and send you any fucked up number between zero and this amount but I promise I won't exceed this number". FL Studio manages to violate even this basic foundation of how all plugins work, that's amazing. Even better that it only does it when a random condition is true (BPM < 100), so that it increases the chances of not being detected while debugging & testing.

              Fixing this will take a bit longer, but I'm on it.

              Casey KolbC 1 Reply Last reply Reply Quote 3
              • d.healeyD
                d.healey
                last edited by

                Maybe someone should inform FL Studio :)

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                Christoph HartC 1 Reply Last reply Reply Quote 0
                • Christoph HartC
                  Christoph Hart @d.healey
                  last edited by

                  Yeah, maybe someone who isn't as grumpy as me can do it, but if I write them, it'll be in ALL CAPS!

                  P 1 Reply Last reply Reply Quote 4
                  • P
                    ps @Christoph Hart
                    last edited by

                    @Christoph-Hart damn. interesting that in my case it's below 120bpm - what could the correlation between bpm and this fuckup be?

                    1 Reply Last reply Reply Quote 0
                    • Casey KolbC
                      Casey Kolb @Christoph Hart
                      last edited by

                      @Christoph-Hart said in Massive FL STUDIO Problem:

                      OK, it appears that FL Studio is sending out bigger buffers than the actual buffer size when the tempo is < 100BPM. What on earth is wrong with them? I'll keep investigating, but this is so stupid I can't even describe how messed up that is. The maybe most important convention between DAWs and plugins is "I tell you how many samples you can expect AT MOST in the prepare call. After this I can roll a dice and send you any fucked up number between zero and this amount but I promise I won't exceed this number". FL Studio manages to violate even this basic foundation of how all plugins work, that's amazing. Even better that it only does it when a random condition is true (BPM < 100), so that it increases the chances of not being detected while debugging & testing.

                      Fixing this will take a bit longer, but I'm on it.

                      This is so wack! I can't believe FL Studio does this. Just confirmed this is happening for me too.

                      Casey Kolb
                      Founder & CEO of Lunacy Audio
                      Composer | Producer | Software Developer

                      Christoph HartC 1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart @Casey Kolb
                        last edited by

                        what could the correlation between bpm and this fuckup be?

                        I just looked in the source code of FL Studio and I could find the line in question:

                        if(bpm < (120.0 - Math.random() * 20.0))
                        {
                           trollPluginDevelopers(true);
                        }
                        
                        Dan KorneffD 1 Reply Last reply Reply Quote 8
                        • Dan KorneffD
                          Dan Korneff @Christoph Hart
                          last edited by

                          @Christoph-Hart :beaming_face_with_smiling_eyes: :beaming_face_with_smiling_eyes: :beaming_face_with_smiling_eyes: :beaming_face_with_smiling_eyes:

                          Dan Korneff - Producer / Mixer / Audio Nerd

                          Christoph HartC 1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart @Dan Korneff
                            last edited by

                            OK, I think I've fixed it now.

                            To be fair, this wasn't FL Studio's fault (this time), but I still had some old code in the prepare call that set a fixed blocksize of 256 back from the time when I added a 256 sample delay to have a consistent buffer size in FL Studio. I mean, of course it's FL Studio's fault because it sucks, but you know what I mean :)

                            With this fix I've also added a Engine.setMaximumBlockSize() call that you can use to limit the maximum block size that HISE uses in its process callback. It's basically the same logic as a container.fix64_block etc, but on the global HISE level. This might come in handy for various purposes (eg. the macro modulation system gets a better resolution if you use lower block sizes etc), so depending on your project it might justify the increased CPU load.

                            Be aware that these fixes to FL Studio only work with instrument plugins, however if you're exporting a FX plugin, you can just set HISE_EVENT_RASTER to 1, then it should bypass this entire topic (maybe I'll set that as default for FX plugin exports...)

                            LindonL 1 Reply Last reply Reply Quote 4
                            • LindonL
                              Lindon @Christoph Hart
                              last edited by

                              @Christoph-Hart said in Massive FL STUDIO Problem:

                              maybe I'll set that as default for FX plugin exports...

                              Yes please.

                              HISE Development for hire.
                              www.channelrobot.com

                              Christoph HartC 1 Reply Last reply Reply Quote 0
                              • Christoph HartC
                                Christoph Hart @Lindon
                                last edited by

                                Ah, smart me in the past already did that:

                                #ifndef HISE_EVENT_RASTER
                                #if FRONTEND_IS_PLUGIN
                                #define HISE_EVENT_RASTER 1 // Do not downsample the control rate for effect plugins
                                #else
                                #define HISE_EVENT_RASTER 8
                                #endif
                                #endif
                                
                                LindonL 1 Reply Last reply Reply Quote 4
                                • LindonL
                                  Lindon @Christoph Hart
                                  last edited by

                                  @Christoph-Hart win win!

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    ps @Lindon
                                    last edited by

                                    @Christoph-Hart thanks!!! Time to compile again :)

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

                                    53

                                    Online

                                    1.7k

                                    Users

                                    11.7k

                                    Topics

                                    102.1k

                                    Posts