HISE Logo Forum
    • Categories
    • Register
    • Login

    Transport Handler ......

    Scheduled Pinned Locked Moved Scripting
    11 Posts 3 Posters 353 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 @Lindon
      last edited by

      @Lindon said in Transport Handler ......:

      Why does the transport handler fail when I change to 5/4 from 4/4 ? - it keeps to a strict 4/4 timing - so :

      Are you trying this inside Hise?
      If so, the Hise controller is buggy.
      https://forum.hise.audio/topic/10078/hise-controller-is-buggy

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

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

        @ulrik well yes - so thanks for that... now what is the HISE Controller pretending to be? The DAW?

        HISE Development for hire.
        www.channelrobot.com

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

          @Lindon Ok well Im capturing transport start and stop, so now...

          Given I want the transport handler to keep issuing pulses, how do I switch the transport handler between external and internal (which I assume will then do what I want)???

          HISE Development for hire.
          www.channelrobot.com

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

            @Lindon Right well some C++ diving gives us:

            Inactive, //> No syncing going on
            ExternalOnly, //< only reacts on external clock events
            InternalOnly, //< only reacts on internal clock events
            PreferInternal, //< override the clock value with the internal clock if it plays
            PreferExternal, //< override the clock value with the external clock if it plays
            SyncInternal, //< sync the internal clock when external playback starts
            

            Now how to start the internal clock.....

            guessing its:

            TransportHandler.startInternalClock(int timestamp)
            

            whats "timestamp" here? any one got any ideas?

            HISE Development for hire.
            www.channelrobot.com

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

              @Lindon so eventually I get to here:

              void ScriptingApi::TransportHandler::startInternalClock(int timestamp)
              {
              	auto& clock = getMainController()->getMasterClock();
              
              	if(clock.changeState(timestamp, true, true))
              	{
              		if(getMainController()->isInsideAudioRendering())
              		{
              			auto gi = clock.processAndCheckGrid(getMainController()->getBufferSizeForCurrentBlock(), {});
              			auto ph = clock.createInternalPlayHead();
              			getMainController()->handleTransportCallbacks(ph, gi);
              		}
              	}
              }
              

              but I still dont know if this is in ms or samples or something else? Anyone got any idea?

              HISE Development for hire.
              www.channelrobot.com

              J 1 Reply Last reply Reply Quote 1
              • ulrikU
                ulrik @Lindon
                last edited by ulrik

                @Lindon said in Transport Handler ......:

                Okay - I'm trying to use the transport handler in any way I can but I clearly dont have enough information and the documentation is frustrating....

                I want(eventually) to have the transport handler to run synced to the DAW, and when the DAW stops I want it to keep running using the last set of values it got from the DAW... but Im so far from that I'd have to stand on a chair to see it...

                In this example the transport handler will continue to run even after the daw playback has stopped
                and if starting the daw again, the transport handler will sync to the daw position again.

                transporthandler.gif

                HiseSnippet 1347.3ocsW01aaaCDlJIZX1acXcX+.H5mbB7RriccR5vP8ryaFqIwX1qXepEzRmrHhLo.EUc8F1+u8yY+C1NRIaI63tUDr5ODHRdu7vm6NdWFpjdPRhTQbpNdQLPb9R2QKD5v9gLtfL3bhy23NVwDIwRk9ZlvOBTjdKhYIIfOwwY2qLx4TYOh82e8xdrHlvCJ1hPdsj6AuhOiqK1cX2ehGEcIyGFymUR51cG3IE8kQxTDS651fDy7tmMEtkYDaGWx0rjPhyAtMddG.NoUfuOqUK+Nc5b1om09rlrfFsYSZ14r1G29jiO8j.hymcgOWKUizLMjPb1qmzewnP4bQlCdMOgOIBLKZRFgdNa6KkQ9lqnYWR+Pdj+vkjUBAsxvBpa2Lp6acug6yWseAE901CnEZTl.c1Yc3s6ZvqYY30nD71BjbJAo8xfzScG4o3w5hSL34KbGHzfJfgwoxPISVxN+oqaeIJgPe3L18vkJbwJMpcbiF0osZzX+uuZULVknoiul9CzKDS4B3POEf2iMSYpYDlKhPInAoBOMWJnSPIQRRLEpY9bfvGdecJO4VXdOlZ+p+d0JKgwTP2WNKVJvE0dVOT5WMI5Y6eXBfK0v60OqNckMPe8Gn6Fes436D8JbiVkB0K4WCpd.rzKwdtR7jgQrEbwTKhN5nJIy4ZuPzL54.Hnn2AkfEQ8hjd2Sq4yluOEu1Ttn7AVUwynwYVi9cFdaNVEPSVH7nZIUGxz0y1BuvVbZMTrLgaf1JSjnkwInAzgvFdghQDMWjBV6wwMBTxYz4gfBLhulIhA+RqYJsEancyLUA1lf0fY.DnnvIV4BAFpdFKiuY3cizuDYQeId8NbnBB.0EKYnWX1yH6fbPuQnZ7FTeV7Zi.hIngf1jYRSRsWKjmLPacFHwfXOYpPat9hkfeE1yXQquwOVhn9FabmXIjGgGUKfEkjkqXh9VhxnxVn+GjLIEiLxaspIYVIip4sLStN8crnTvlWY+JizrdXM7Tqw9Yb2CPZsF4T31qTJbdVwRND5yhhLwzZaAd4z6f.p..epLfNShjbrB73IfMenNMMwP67jWfxdfQbMf9jhuOHUXELEckg8adJ0j3g4zgbrhYFfARZyi5zdrQGd.cgL0ZKSMDV55Ss1oN83VYYen4T.F6wh.i4rZlmsbgfgOKdkh6mmlz7zs8HyTTf7rIaDpNkoldr8usV9DShLBNLVggxLYLTZQR4UEVHyQElDE7fipVsTz9VoFtSTyZYzHzMOJHXqmky81WJ2xwldjp+MEqIRmMATkSnLBh8AVu4h6Gt4R4dedYISkDTJFH356hAwGpiHIOCzzHJGUnnZaanuJuMTuTsVJHbe6bFqx7HVTWdjAxuL3bllszVnYQWECJM2bKbNGdGNRQVKtJtmCI2i0E3zAqx7wl9ebd98Ed87tKVsnKzcN2WGVb5a5FB7og5xxSJ4uJY96I496UrIPj0cUbyaWU1WsK4KbwF9xekubc7w0AHELh+akXnS6BXbkYCcHIikOFYylr5ACAfieH8SiX50mIwL4V9AXtzZCBXdhQf8bVTdxt+2FT4iEhO0cnoQ61w3NaAiX5xmBLlOd2SbuHH.7zE.bO2K+0OMyxQ9YYJ1Da5MLshi4Mt2lNaDNRrGXd3Q.QlZYmcLUcYqarL9OBeG0t3uwe4G1zr1I+vlKOjLi4oju0KqV0L.4ma2AwjvNrcE2aLqoMeX84Lbd1254stodfhG+XUr0iUw1OVEe9iUwNOVEO4wp3o+2JZ92M9wTsbVVYCgbyvKrum53j01zlsR9G.0.qgn
                

                so lets start with some basic questions:

                What's the HISE controller doing here? Pretending to be an external DAW?

                I think that is the purpose, yes

                Loading the snippet on the TH page:
                https://docs.hise.dev/scripting/scripting-api/transporthandler/index.html

                Why does the transport handler fail when I change to 5/4 from 4/4 ? - it keeps to a strict 4/4 timing

                bug in Hise Controller?
                Compile a plugin and try in your daw

                setLinkBpmToSyncMode
                If enabled, this will link the internal / external BPM to the sync mode.

                ...what does that even mean ?

                I have no idea

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

                J LindonL 2 Replies Last reply Reply Quote 3
                • J
                  jp3dr0 @Lindon
                  last edited by

                  @Lindon Christopher explained here what is timestamp in the onGridChange callback:
                  https://forum.hise.audio/post/59358

                  “timestamp is the sample position of the grid event in the current buffer so you could pass this onto any message you create to assure sample-accuracy”

                  So I’m guessing this one is the same? Measured in samples, used to start the clock at a specific position in the buffer.

                  I still don’t understand why in the Clocksynced Arpeggiator snippet the calls on TransportHandler that have a timestamp as a parameter seems to be almost interoperable between getting a specific timestamp value from a note or just putting it as zero. I’ve tried to swap it but can’t seem to note any difference in the execution of the code. Also I’m always having zero as the value of timestamp in the onGridChange callback.

                  1 Reply Last reply Reply Quote 0
                  • J
                    jp3dr0 @ulrik
                    last edited by

                    @ulrik I think it’s easier to just compile HISE as a VST and run it inside a DAW directly, faster then having to compile your project VST to debug and more reliable then the HISE Controller. that’s what I do anyways. I just have issues with compiling HISE as a multichannel VST (it crashes Reaper).

                    ulrikU 1 Reply Last reply Reply Quote 0
                    • ulrikU
                      ulrik @jp3dr0
                      last edited by

                      @jp3dr0 said in Transport Handler ......:

                      @ulrik I think it’s easier to just compile HISE as a VST and run it inside a DAW directly, faster then having to compile your project VST to debug and more reliable then the HISE Controller. that’s what I do anyways. I just have issues with compiling HISE as a multichannel VST (it crashes Reaper).

                      Yes if he has Hise compiled as a plugin, that will make it easier to check.

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

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

                        @ulrik As always mate ...perfect.

                        HISE Development for hire.
                        www.channelrobot.com

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

                        16

                        Online

                        1.8k

                        Users

                        11.9k

                        Topics

                        103.9k

                        Posts