Forum
    • Categories
    • Register
    • Login

    Storing Special Preferences

    Scheduled Pinned Locked Moved General Questions
    9 Posts 2 Posters 360 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
      • David HealeyD
        David 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.

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

        FortuneF 1 Reply Last reply Reply Quote 1
        • FortuneF
          Fortune @David 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?

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @Fortune
            last edited by David 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.

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

            FortuneF 1 Reply Last reply Reply Quote 1
            • FortuneF
              Fortune @David 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.

              David HealeyD 1 Reply Last reply Reply Quote 0
              • David HealeyD
                David 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

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

                FortuneF 1 Reply Last reply Reply Quote 2
                • FortuneF
                  Fortune @David 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
                  
                  David HealeyD 1 Reply Last reply Reply Quote 1
                  • David HealeyD
                    David Healey @Fortune
                    last edited by David 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
                    

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

                    FortuneF 1 Reply Last reply Reply Quote 1
                    • FortuneF
                      Fortune @David 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

                      32

                      Online

                      2.1k

                      Users

                      13.0k

                      Topics

                      113.0k

                      Posts