HISE Logo Forum
    • Categories
    • Register
    • Login

    New API: Server and FileSystem

    Scheduled Pinned Locked Moved General Questions
    71 Posts 8 Posters 5.3k 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.
    • B
      BWSounds @Christoph Hart
      last edited by

      @Christoph-Hart said in New API: Server and FileSystem:

      You need to create a reference to the folder first:

      const var audioFiles = FileSystem.getFolder(FileSystem.AudioFiles);
      
      FileSystem.findFiles(audioFiles, "*.wav", true);
      

      Also use the constant FileSystem.AudioFiles instead of "AudioFiles".

      Can we do this with MIDI FILES?

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

        Are you talking about embedded Midi files or files on the user‘s disk?

        Embedded files should be retrievable with MidiPlayer.getMidiFileList() - it‘s not implemented yet but it will follow the same logic as Sampler.getSampleMapList().

        B 1 Reply Last reply Reply Quote 1
        • A
          arminh
          last edited by

          @Christoph-Hart you had a chance to check why consts not working properly?

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

            @Christoph-Hart said in New API: Server and FileSystem:

            Are you talking about embedded Midi files or files on the user‘s disk?

            Embedded files should be retrievable with MidiPlayer.getMidiFileList() - it‘s not implemented yet but it will follow the same logic as Sampler.getSampleMapList().

            Files on a user's disk. Really a way to save or create a path for midi files.

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

              @arminh I've just committed the fix, it should work now.

              @BWSounds Now you can pass in scriptfile objects into MidiPlayer.saveAsMidiFile / MidiPlayer.setFile (Plus you got MidiPlayer.getMidiFileList()` for all internal references).

              A B 2 Replies Last reply Reply Quote 1
              • A
                arminh @Christoph Hart
                last edited by arminh

                @Christoph-Hart ok audio files work but desktop not :)

                constant not found: FileSystem.Desktop {SW50ZXJmYWNlfHwyMzJ8MTB8NjU=}
                
                

                Is there option to show file name of object?

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

                  Damn that‘s annoying ;)

                  Change line 4389 from 6 to 9, it ran out of the predefined slots...

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

                    Never mind, I've fixed it, so you can just pull.

                    A 1 Reply Last reply Reply Quote 1
                    • A
                      arminh @Christoph Hart
                      last edited by arminh

                      @Christoph-Hart thanks! :) And how to exctract name or path from object? I don't see any method in API to do this :)
                      Using trace gives me empty Interface log.

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

                        Link Preview Image
                        HISE | Docs

                        favicon

                        (docs.hise.audio)

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          arminh @Christoph Hart
                          last edited by arminh

                          @Christoph-Hart thanks a lot. I also used Filename but the result is the same as with FullPath.

                          Using this

                          for (f in files)
                          {
                              var p = f.toString(Filename);
                              audioArr.push(p);
                          }
                          

                          gives me links like this

                          "/Users/armin/Library/Application Support/My Company/test/filez/pluck5.wav",
                          
                          1 Reply Last reply Reply Quote 1
                          • B
                            BWSounds @Christoph Hart
                            last edited by BWSounds

                            This post is deleted!
                            1 Reply Last reply Reply Quote 0
                            • A
                              arminh
                              last edited by

                              @Christoph-Hart can you add option to set own headers in Server API?

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

                                There already is Server.setHttpHeader:

                                Link Preview Image
                                HISE | Docs

                                favicon

                                (docs.hise.audio)

                                1 Reply Last reply Reply Quote 1
                                • Dan KorneffD
                                  Dan Korneff
                                  last edited by

                                  Is there a way to set the FileSystem.browse() startFolder to be a sub-folder?
                                  I'm looking to use a button to browse to the UserPresets folder of an Expansion.

                                  FileSystem.Expansions
                                  

                                  gets me to the root..

                                  I've tried:

                                  FileSystem.Expansions.UserPresets
                                  FileSystem.Expansions/UserPresets
                                  

                                  no go.

                                  Dan Korneff - Producer / Mixer / Audio Nerd

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

                                    @dustbro

                                    I think you just need to do something like this:

                                    var folder = FileSystem.getFolder(FileSystem.Expansions).getChildFile("UserPresets");
                                    FileSystem.browse(folder, false, "", function() {});
                                    

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

                                    1 Reply Last reply Reply Quote 1
                                    • Dan KorneffD
                                      Dan Korneff
                                      last edited by

                                      Is there anything special I have to do while using getParentDirectory?

                                      I'm trying to get the directory of a file, but it's returning the full file path with file name.
                                      e.g. C://Folder/audio.wav

                                      Same as if I call FullFilePath

                                      Dan Korneff - Producer / Mixer / Audio Nerd

                                      d.healeyD 1 Reply Last reply Reply Quote 0
                                      • d.healeyD
                                        d.healey @Dan Korneff
                                        last edited by

                                        @dustbro Example please

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

                                        Dan KorneffD 1 Reply Last reply Reply Quote 0
                                        • Dan KorneffD
                                          Dan Korneff @d.healey
                                          last edited by

                                          @d-healey Trying to get a label to display the parent directory of some audio files.

                                          const var DirectoryLabel = Content.getComponent("DirectoryLabel");
                                          const var Browse = Content.getComponent("Browse");
                                          
                                          const var FullPath = [];
                                          const var ParentDirectory = [];
                                          
                                          inline function onBrowseControl(component, value)
                                          {
                                              if(value) //if button clicked
                                              {
                                                  //open file broswer
                                                  FileSystem.browseForDirectory("", function(directory)
                                                      {
                                                          
                                                          local files = FileSystem.findFiles(directory, "*.wav", false);
                                          
                                                          for(f in files)
                                                          {
                                                              FullPath.push(f.toString(File.FullPath));                   //push full path
                                                              ParentDirectory.push(f.toString(File.getParentDirectory));  //push parent directory
                                                          }
                                                      });     
                                                         
                                              }
                                          	
                                          };
                                          
                                          Content.getComponent("Browse").setControlCallback(onBrowseControl);
                                          
                                          HiseSnippet 1096.3ocsV01aaaCDlxwpH1cdnEXec.B9SxCY9kt1tADTTu3DODrlTi3rhALLzRKQESDJRAR5jYTDf8Sa+j1+fsihRVx1JYsFX7a26O2wi2wIRQ.QoDRjSiKWlPPNeg6zkb87QywTN5ziMLRvRBWeIQoQGsLAqTjPjiyd+jQCmF0Qom+90GgYXd.ofEB8NAMf7FZLUWvcxvelxXiwgjKowkz94COMPvGIXhE.Z1ysOJAGbM9Jx4XiZ0bQNO5jPpVHmpwZhBz4HQ3xoyE2xs5+NphNiQLDCPSAGYYiFMmxBmjmoJDxo9jh7dOad+UtmQCoq3Wj+OIUfWgEkqAN0VGR0WCRCtOHMVvBMN3dfmSI3U2Bum5NMPRSzERLX6wtmx0DYDFJ6kgkUWTsWT2cj.zfq6FiulLVBDqrv+k86ef2y52uygsZ1pIT7UZuavRuioRR.jTKeCdFg48JubebEQORDmH3.ge60UqswKE93Ho3VE4ds0Jt8lQd7BFaBVOGr6298072jzdvUgLWgVMobFkS7hVvCzTA2Svs91DWof4GjGzC.+vVP5zp4Ga0zCNzHeKGud8nQdyVn0f8ALZv0jPqJYZZN85IRHbuHJi3MSJT2RjEBGCbmtToIwcmkF8wB4Jr52t8AqvmeXN6NEluQnxOaygIBvrTLnfJPonFQ4gFRUg+Ovq82z8V7MlfiYJhsVuoGiDR+HOpMwTc1VgJvUZFmcS0MYgZteTWsXpVR4W4aPQ2boc5bXE11qmwHnjvXdIfVUGgMtwqNPPW0F5kFxrHXGb4spjrUbta8PeWFb2BPVFf1MZ07tz53C2V2UYXm1.NByXyfAY9azX14vRsrmKzj2x86z7iMaz7tldaJJJpRYYthQjUJ1LeU9PF5yWDOiHyeYjqHLzY8oZO9SapVfslTRQA+TNU+V3giktXtmQlMqyk1GsJYKypHGKyMM0pPsBVaOVEkcmYFvloNnpNc75WlMd8nzg.HJfw8cs2WnzhS4sZne4ziwZbte.WBgIgH0TSwx4XxMvVO6X6FtGSTWqEIvBrU8IHG2+6n9GEQb3vkqH9qKFRUmIhA2fk.amZnR9ceqeak42zAyot8ItqOstj6+PTI2+mWL7VZndN.QmqcPn4D5UyM.14qAoDnq.mdw6rGlQuhGmF0G4xHQPYc6sVvtSQ3BFVu9BUyOGxD.8iqs4xrchqn5kk+YwmwV19UtkcPUsCehv8otSn5f4Ui2ZUfWnu3+a7l8mkVtmDEA2pEfst63ecW+fxmATtPrPCyfOCCihgNI2yWDOE91V.APBmSXJSGSMySNKceCsoxLkvCSI9G3jIbfg1IS3fbgnXbfT79.6CUyuh1OkCfId5GBa3dlg1aP9CTW29c6ihgOq89f.So3aArWsMOaGr461Aad9NXyK1Aad4NXy2uC17COnMl+I+iKzhX6yDfwjSRGT53bB2L2HsiD8uvBkWeC
                                          

                                          Dan Korneff - Producer / Mixer / Audio Nerd

                                          1 Reply Last reply Reply Quote 0
                                          • d.healeyD
                                            d.healey
                                            last edited by

                                            The toString() function takes a single number as a parameter, for example File.FullPath is a built in constant that returns 0 - you can test this with Console.print(File.FullPath);. Docs - https://docs.hise.audio/scripting/scripting-api/file/index.html#tostring

                                            File.getParentDirectory() returns a file object. Passing this to the toString() function which expects an integer is going to give the same result as passing the number 0 or undefined to toString() because it doesn't know what to do with a file object.

                                            What you probably want is ParentDirectory.push(f.getParentDirectory().toString(File.FullPath));

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

                                            Dan KorneffD 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            10

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.5k

                                            Posts