HISE Logo Forum
    • Categories
    • Register
    • Login

    Storing Special Preferences

    Scheduled Pinned Locked Moved General Questions
    9 Posts 2 Posters 295 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.
    • FortuneF
      Fortune
      last edited by Fortune

      Hey Hise family.

      I am sure it is very easy for most of you but I really need some help about object oriented programming.

      I need a special preferences system that can store various property values as JSON objects like: disable tooltip, enable oversampling, .....etc.

      I just need to store this values (to call on the init) like below and grab/modify them via scripting.

      {
        "Setting1": true,
        "Setting2": false,
        "Setting3": 2
      }
      

      I know I need Engine.dumpAsJSON and Engine.loadFromJSON but I can't figure out to process these data. Any help much appreciated!

      HiseSnippet 1093.3ocsVs0aaaCElxNpXR6BZGJ1C6Ih7jaQlultNrggkZGmBu0DaTm0MrWJnkni4hDofDUVLBLv9Iu+AamitXImXGmZrJCKQdt9wCO7b3nPkCOJRERLrNed.mX7YlimK0y5MiIjjAGSL9Ry9Wq4gRl2XtVKjWDQ5NOfEEwcIFFUeMJmg0djjm+4m5x7XRGdAIB4cJgC+MBegtf5ni9Egm2ILW94B+RRe3QCbTxdJOULfoplMIALmKYWvOighUwjX7n9tBsJbrlo4QDi85pbmOdl5ujox+NQjXhGGmzhLFLTJ4STdtHhQpjdyDdtixW6QDvJiJhDUSiDO07TgqXI8hHxiSXPKznb7vnxpvq5JvqUY30rD7VCjLJAo8RgzSLG6DJBzEbP77olCjvNzTFD1KCkTYIU9JSydJPBottO6R9IgvjkZT6vlMOf19EMe1OXaaCw9HM8JVHMaytE8Go4JeAW2S4GnjvjZ6mKv9fh2Qs1aSs1qUsNaSsN6m.SagzSH4zowRGsPIoJYNbP0CUd0bx08.vAdw7mYeisUdl7q8TSJxmqudx+Vn.HWCb3BvmaKHTOBYj36dLOuIPVas6fpTvaKgb4HHulSWumAnZSgmauJueblnxM1Tapkkmxg4Q8Tv4K2iYZFDW6Ku.LVcjFjA3+yiGdVs8qWuwFhI+YDFpWioNOD.tKXPMNnVAiTww+hozxzQRvJB+Xs70hkix+2341VzL24lhYfP1yMECwmh.+2C3Hlev5Y299Y2AX2NkTg.vl8xwEixhdtw9AuJJI1gP7.5Vif2xVOuQw3jMrE11V3uG1d8a4PTE2qsv.BFuPcW.ur+PRY5Mi6b4P4af8nk4MYFXQ9fFMnXhLUOSDAmunQZVnNNHg2CvpPldhorKcF8LklOTVK4nHvkdaVSmtVdYGd7RV32kM1.I79TrlL1eBOrbg.TPnp5pkpM2bo5xcRbRqDTRPkbfTnGFvkap+BIq7AVVOCUfn5jh5ONqnNTVYhpq5Zh.pdaalmiRRPco9oGQ90A34pbaAlEbU.OTKvUgww7qf9soMLrLOlGcoVE.daYYKXkl54uHyyci0ZkbU+1hb8Re92rilWt0cD6J9.4nPNTyKu80GjwauQi+Gaw3O5gEy1f4gI9LfmoQUXFT1zGBXes4v.Lgokc521Ye6XCq06zBFZ9qbi8X5UuQ.dMnLFfpqzFFa0JiD54kulz+aWS3gBwmXNRnclsdLVYMXDRu9XfwrKW84l8mNk6nK.3dlm76ebtIE4spXLs3TlNTf69mE6OFteoCG7tTx8vy9FUvSooyahywHvXtzMYx+BOYLagyMxX1JmIwm4DpduS5Ya75aeRBE.SxjatZYdJNm1J+7roYy5MI9vMIeuiCt7+Fnvw50o8NnSmcPmC2AcdwNny2tC57xcPmu6d0AuD+qh0J+ziC.gQ8SpqZXzWxfLqjrPx+AeZxlp.
      
      1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey
        last edited by

        What you're doing here is not OOP, so don't worry about that.

        Trace converts an object to a string, you don't want this. Just work with the object directly after it's been loaded.

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

        FortuneF 1 Reply Last reply Reply Quote 1
        • FortuneF
          Fortune @d.healey
          last edited by Fortune

          @d-healey Ok thanks, now I understand that trace is not used in this case. Let's say the user changed Setting 1 to false;

          • First I need to take the previously stored object - That's ok.
          • Then modify the Setting1 to its latest value (false) - This is the dizzy part for me
          • Then write it again - That's ok too.

          When I use append, it inserts the property again. In above chain I really can't figure it out how to take the data without appending and only modifying the property.

          Which documentation source do you suggest for me to learn these object data processing stuff for Hise?

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

            @Fortune
            https://www.w3schools.com/js/js_json_intro.asp
            https://www.w3schools.com/js/js_json_syntax.asp
            https://www.w3schools.com/js/js_json_objects.asp

            Not everything here will be exactly the same in HISE, but it's pretty close.

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

            FortuneF 1 Reply Last reply Reply Quote 1
            • FortuneF
              Fortune @d.healey
              last edited by Fortune

              @d-healey Thank you for the recommendations, I will check them out.

              By the way I've seen your "Scripting objects and curly braces" video, it is great.

              Could I ask for a video request? It would be very helpful to learn processing the JSON data like my example above in one of your awesome tutorial videos.

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

                @Fortune said in Storing Special Preferences:

                It would be very helpful to learn processing the JSON data like my example above in one of your awesome tutorial videos.

                Good idea, I'll add it to the list

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

                FortuneF 1 Reply Last reply Reply Quote 2
                • FortuneF
                  Fortune @d.healey
                  last edited by Fortune

                  @d-healey

                  Cool! By the way after hanging around a while, I succeeded to make it work, I am sharing it if someone can benefit from it. You can check the projects's AppData folder, it creates ExternalGlobalSettings.js file and checks on loading.

                  The only thing is lot's of same things in the code. If you guys show us a "less code way", it would be great.

                  HiseSnippet 1222.3oc0Xs0ahaDEdbHtZs6EksWjp5SV7DQJk.IYaq1zKrPHaocS.URY6aQC1CvzLdFK6wYCJJR8mR+ozeR8eP6Y7ErIXHTTSu3GfLmaymO23bROegMIHP3izLtXpGAo8N58mxkSZMAS4nNmfzde812HI9bLqOQJo7wAnlS8vAADGjlVoWpjSyXaTzyu+MMwLL2ljQBgFHn1jWQcoxLp8Z78TF6TrC4BpaNoOpQGaAukfIBALURuFxCaeEdL4brRrszQZuUaGpT32Whkj.j11MENS6OQ7Fdr7CnAzgLh5PcTevPwjOUvbTHVQE0ZBk4zK8cO.AVoWlmnTrm3C0Oi5PmQOyirSDCqLMx6Oz1Zd3UZN3UOO7pkCdE.IsbPZ6XH8T8919TOYFGEdda8NbHBMBCt87PIVVzVCLzaI.I3xpt3qHm5CGloQkipUaOqCdVscO1zzD78ARqqw9Vcul32G65wfH9kmPv1RJPw5qrRM0Xhrkv0SvgCUJWr3kAilYxKDBlj5sFVaAIm2PIIhGtT8SEnbzKEkCnhXMJjCFSvsD7hQqxV9BVE6TCsGbarPxtl2ZXZvD1XlES.orNmfkX3xayGCFtphF3Tc+t9cOuR4pU2Osf4kLwvrxlp+bfBOfonirpjYncMMt0v.HajQqpBgAIHLNlB2WDZ.KXjbwNgtduHH5ZyTcOqGFB2oPAgEPTWMXORgR+ZeJPtRjBFJDdG3M+qE9qFnDKxs1ByXCgZ4JOf6OJjUXTagrh+KEvR.2+ChUETbUbXZY96zHTAgnzBuUDY9mNvjqYw+hwjUDOxZVUbX3d9zkUerZLj42ch83lVvysQepdJuXCmxOeI+HfB+CTtxJ6tWlATYKWjV..5tP1SwpM6s+4yZqufffuyHUAyBBdNqUXyx7tBcbEqSqID6q5xeEjWT4QOqMMs0XIN7fTGxJ+EBkwMLVzuWj1y0tJVwYt+hjOk4tGGiz6L.OI3O2eeKUppkbBM.p+sBjXeYnm4Z3TONJ19.eXZlq6x4BIoKONb.Wt08YMZTg7RJbXo0A2isZ.T+UoXEdn6Phe9VXJAgoxleTO8kOpW9IQsi6BjSPAuCmJ65Q3Ka9TTRqC3u9wNp.hZ9vDZfbdDeIUAAsSHWCCaGOsng9IjfqjBOvpy52fzdhLh66kLKYyPoTvQTXjwOVu37OzMyFP+WFzXZ1gusgDZ6fz9n4TzJNqB8FpibxLg+sgMlPnimjaIfurQ.9ZRGdOeBjykNH75fzOPegz7kBxWm.xcR0Ysw2W+.3yHFe6jfOfyPQSwMQHzTOsjYY.6WwMbw.OcsRvInMsKD.+D8tdpru5lweePx2GZtgvcwkHf0WDNgLrb9cZTKxkv.tu4VjPsr.OfJmleQu+1VzYcg3S06Qk1SJFiaU.FgZjGCLlrd36p2dzHhsLCfaqe5O83rKH5GDgpboyvRepJk47P29vFx1D314bXRDUZzVp9DwmqoNq7.8IbmnC+A7jvrt5rVBy5oLQtXaewk1w87TKf9jHJ.l3Q6danel5rUcTTePPO8ZUqgbgcguz1V85+oPqqh04fMPmC2.cNZCz4YafNe1FnymuA57EqTG0+FhWDJEtwkC.gdsi9wAMs1bLjYEkEh9S.3e7RVA
                  
                  d.healeyD 1 Reply Last reply Reply Quote 1
                  • d.healeyD
                    d.healey @Fortune
                    last edited by d.healey

                    @Fortune

                    Here you go. I also cleaned up some of your code, gave your controls consistent naming, and added some comments.

                    You should read this - https://docs.hise.audio/scripting/scripting-in-hise/hise-script-coding-standards.html

                    HiseSnippet 1218.3ocsW0sSibCE1CvzcmosqXq5dSuZDWEjngDfssB5OYIIrMsKjnFJsRUqV4LiCwEO1iF6vRDBo9nzGk9H02f1imYRFmvL.MpL2jXe9wemOe7wG2KV3SjRQLxx4zIQDj0GY2eBWMp4HLki5zBY8I1suRQh4XVehRQ4mKQGNIBKkj.jk0puVqmkyZnju+96NDyvbeR9THzYBpO4MzPpJe1dM9QJicDNfbJMzP68ZzwWvaJXhw.lV0tFJB6eA9bxIXsZqXir9f1ATkHtuBqHRj0ZGJBlzej387T8OiJoCXD8f5n9fiRm9HAKPiX8rnlinrfdSicIB7RublX0Tl3SsOlFPmMeNirdh.ubKL4CqUlGdqNG7paBuZFvq.HYY.o0Rgzys66GSiT4Rz34Cs6vgcngXf1MgRptnUN9I1MEfFbU0P7EjihgAyrnxd0psk2Nur1lG35t81dCT7tWRh6iCiXvlcKB1WQuDCQjKrwHUdWhiKQIRr223MckNmnZJBiDbXPkMJyfMfUsLYUkZWvUwBVSLiM.xCpH3kocll5nfxAIDugi4fHA26dMph+TjtEDdrwjMcu1w0QBAM40LwfYo9U1P6FYlaR45MlZyAt2LiBOUHXJZzrEZdtaQo2EssntYL1hSWJYsnh2GOUh9+GnnLOrH6333Lkf7CGLsVxtFLi4zkRIlJo4BywESBlZjG8dED9EnYQwcwgcNptUBwQYKg71b9zZqy4LYyQD+K5xei.GTIYAYBeLyK.qv.wzleN3ipLPJbVN7G528jJaTs51E6qp+tTySvlEcnWEprEYHXcPEsy1bSWmq0aLNN20ovyzgShAUuc9u12NkjQZX3bYEI1r3NmgxlhRybbtw8laydErObAYh4N0iIwAwf9++FrjuE7dxhdfFoNDljjq.H6ZWurOmhJgreoUT0Y+oDylaY3CMad5ryX6WTQkRrLOMc+4NvYn9LsuIMZbcxHtfwgQuRlPa53ZKu6k7tYt7eOXufIce.47G3Zbr7DghzkmdP.7n2hhFNrPYYmfYj3BEq66H9tLrBeb3.RrY1jVQ3x34ug2t7a3Ma.wOsblghBdGNU0MhvKqsDTVMP3e+bmV.kqaKHaNPuHRrhpgfUKxkPOVoMI3X2hHuPIh.uNqvIx5opDoOKqEhCGqTBNhBcJ7Y1kk8gtZVmY+wYMljO36anHWAN8E1l14klOhdOMPMZlx+0fFiHzyGYz82W2Phujzg2Kl.G7m1AzCAquvtfT8Rg4ujAy0syL4Aivu8dPnSJBWOCgfjAhCEWkfwmYadvpLv8m3FgXPls0pvHphDJ0aEcizYg0cS+cmre20cIg7s6gD5dUDLlo6nyrkVce7YBf0at9H08JxkT0Dy97+eqO2GJDetcOpxeTwXbkBvHbV4w.iYuN3isaObHwWkCv0rO5WebdJ.5mDi0ISGiUwTcJyIiC6COPxm.qNmC21nSiVQWuHcbM8XMCzmvCRF7OvWlv55wVYBqOUHJD6GKdmeZsO86OdZxL.l3IO8xw9X8Xu5nj5gfc10pVCEBOE5c995v+ygRXEayNKgM6tD1r2RXyKWBa9hkvlubIr4qtSazuB8UiUhvziCvD8ZmbIgkUaNFxrRxBQ+6L1B7U
                    

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

                    FortuneF 1 Reply Last reply Reply Quote 1
                    • FortuneF
                      Fortune @d.healey
                      last edited by

                      @d-healey Thank you so much dude! I really appreciate that.

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

                      33

                      Online

                      1.8k

                      Users

                      12.0k

                      Topics

                      104.1k

                      Posts