HISE Logo Forum
    • Categories
    • Register
    • Login

    Faust 2.58.11 to test

    Scheduled Pinned Locked Moved Faust Development
    17 Posts 4 Posters 1.4k 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.
    • ulrikU
      ulrik @sletz
      last edited by

      @sletz I got the same result as Christoph using the X64 version

      Hise Develop branch
      MacOs 15.3.1, Xcode 16.2
      http://musikboden.se

      1 Reply Last reply Reply Quote 0
      • S
        sletz
        last edited by sletz

        OK, I was able to reproduce the problem on a test program.

        @Christoph-Hart you'll have to explicitly set the target parameter to "x86_64-apple-darwin" when using the c reateDSPFactoryFromFile/createDSPFactoryFromString
        functions.
        (see https://github.com/grame-cncm/faust/blob/master-dev/architecture/faust/dsp/llvm-dsp.h#L179

        Can you test on your side and report?

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

          @sletz Now it compiles but crashes at createDspInstance() / llvm_dsp_factory::getWarningMessages()

          Log:

          Faust: Resizing buffers: nChannels=0, blockSize=0
          Faust: Resizing buffers: nChannels=0, blockSize=0
          Faust: Resizing buffers: nChannels=0, blockSize=0
          Faust: Resizing buffers: nChannels=0, blockSize=0
          Global Faust Path: /Users/christophhart/Development/faust
          Global Faust Path: /Users/christophhart/Development/faust
          Faust jit compilation successfu::
          

          Assembly stack trace (not expecting to be helpful, but anyways):

              0x1113b99f0 <+0>:  pushq  %rbp
              0x1113b99f1 <+1>:  movq   %rsp, %rbp
              0x1113b99f4 <+4>:  pushq  %rbx
              0x1113b99f5 <+5>:  pushq  %rax
              0x1113b99f6 <+6>:  movq   %rdi, %rbx
          ->  0x1113b99f9 <+9>:  movq   0x18(%rsi), %rsi
              0x1113b99fd <+13>: movq   (%rsi), %rax
              0x1113b9a00 <+16>: callq  *0x58(%rax)
              0x1113b9a03 <+19>: movq   %rbx, %rax
              0x1113b9a06 <+22>: addq   $0x8, %rsp
              0x1113b9a0a <+26>: popq   %rbx
              0x1113b9a0b <+27>: popq   %rbp
              0x1113b9a0c <+28>: retq   
              0x1113b9a0d <+29>: nopl   (%rax)
          
          1 Reply Last reply Reply Quote 0
          • S
            sletz
            last edited by sletz

            Same issue using the Interp backend, although this getWarningMessages method is not called at all.... No more idea for now. I see libfaust is still called in a separated thread ?

            And what happens on a real Intel machine ? (the compiled version is for macOS 10.15 minimum, and I still have a 10.13 here where I could not test).

            1 Reply Last reply Reply Quote 0
            • S
              sletz
              last edited by sletz

              I've found the problem: changes in the Faust dsp/dsp_factory API, and since HISE is maintaining it's own version, this make the thing quite fragile.. @Christoph-Hart I'll send you a patch.

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

                @sletz Yes I can confirm that the patch you send me works now (I had to add the darwin flag but apart from that everything loaded fine).

                However now it won't compile against the old Faust (2.50.6 or whatever it was) because the old API doesn't have the getWarningMessage() function. Is there a preprocessor macro in the faust headers that I can query for the version and conditionally include the getWarningMessage() function definition? I would love to not force everybody to update their Faust installation to keep using it.

                1 Reply Last reply Reply Quote 1
                • S
                  sletz
                  last edited by sletz

                  Would FAUSTVERSION work for that?

                  See: https://github.com/grame-cncm/faust/blob/master-dev/architecture/faust/export.h#L28

                  Function added in 2.54.0, see: https://github.com/grame-cncm/faust/commit/a962231a9ca985cfa2ba513c01028872af62b115

                  BTW: now I understand why the latest published 2.54.9 version was also crashing !?

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

                    @sletz The problem is that this is a preprocessor string and it's impossible to use it in a conditional expression. I've added a manual projucer flag in the hi_faust_types module that the user has to switch on if he wants to keep using the old faust version (OLD_FAUST_API_SUPPORT), but this is only a very low level solution that only removes the getWarningMessage() function from the Faust wrappers and will probably cause issues again with the next breaking API change.

                    If you could add integer versions of the version, this would allow people to check the library version conditionally (and I could remove that flag and let the system figure it out automatically). Usually it's done like this:

                    #define FAUSTMAJORVERSION 2
                    #define FAUSTMINORVERSION 50
                    #define FAUSTPATCHVERSION 6
                    

                    then I could use

                    #if  FAUSTMAJORVERSION <= 2 && FAUSTMINORVERSION <= 54
                    #define OLD_FAUST_API_SUPPORT 1
                    #else
                    #define OLD_FAUST_API_SUPPORT 0
                    #endif
                    
                    1 Reply Last reply Reply Quote 1
                    • S
                      sletz
                      last edited by

                      OK, fixed in https://github.com/grame-cncm/faust/commit/fd8b6fa2496f55f3de0c531455f4cf9a8339586a.

                      1 Reply Last reply Reply Quote 0
                      • S
                        sletz
                        last edited by

                        Add classInit method in dsp_factory class, https://github.com/grame-cncm/faust/commit/90d40d425dac7557667387e3a8a5f4b44ce1ae43.

                        Version raised to 2.59.0, possible breaking for HISE integration.

                        1 Reply Last reply Reply Quote 0
                        • S
                          sletz
                          last edited by

                          Working with 2.59.1 without changes.

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

                            @sletz said in Faust 2.58.11 to test:

                            Working with 2.59.1 without changes.

                            so are we saying 2.59.1 works with HISE?

                            HISE Development for hire.
                            www.channelrobot.com

                            LindonL 1 Reply Last reply Reply Quote 0
                            • S
                              sletz
                              last edited by

                              Yes indeed.

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

                                @Lindon said in Faust 2.58.11 to test:

                                @sletz said in Faust 2.58.11 to test:

                                Working with 2.59.1 without changes.

                                so are we saying 2.59.1 works with HISE?

                                Could someone please point me at Faust release 2.59.1 - the latest I can find is 2.54.9....

                                HISE Development for hire.
                                www.channelrobot.com

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

                                  for those looking....

                                  https://github.com/DBraun/faust/actions/runs/4788344768

                                  down the bottom of the page 2.59.2

                                  HISE Development for hire.
                                  www.channelrobot.com

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

                                  13

                                  Online

                                  1.7k

                                  Users

                                  11.8k

                                  Topics

                                  102.6k

                                  Posts