Forum

    • Register
    • Login
    • Search
    • Categories

    Engine.getPlayhead() functionality

    Feature Requests
    playhead transport
    4
    7
    241
    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.
    • amounra
      amounra last edited by amounra

      Hey guys,

      I was searching for a way to sync HISE to the host's playhead and came upon a post about modifying HISE source to un-comment some lines used for accomplishing this sort of thing in the hi-core main.cpp module. (originally from post: https://forum.hise.audio/topic/2307/the-things-we-all-want-to-see-in-hise-3-0/18).

      void MainController::storePlayheadIntoDynamicObject(AudioPlayHead::CurrentPositionInfo &/*newPosition*/)
      {
      	//static const Identifier bpmId("bpm");
      	//static const Identifier timeSigNumerator("timeSigNumerator");
      	//static const Identifier timeSigDenominator("timeSigDenominator");
      	//static const Identifier timeInSamples("timeInSamples");
      	//static const Identifier timeInSeconds("timeInSeconds");
      	//static const Identifier editOriginTime("editOriginTime");
      	//static const Identifier ppqPosition("ppqPosition");
      	//static const Identifier ppqPositionOfLastBarStart("ppqPositionOfLastBarStart");
      	//static const Identifier frameRate("frameRate");
      	//static const Identifier isPlaying("isPlaying");
      	//static const Identifier isRecording("isRecording");
      	//static const Identifier ppqLoopStart("ppqLoopStart");
      	//static const Identifier ppqLoopEnd("ppqLoopEnd");
      	//static const Identifier isLooping("isLooping");
      
      	//ScopedLock sl(getLock());
      
      	//hostInfo->setProperty(bpmId, newPosition.bpm);
      	//hostInfo->setProperty(timeSigNumerator, newPosition.timeSigNumerator);
      	//hostInfo->setProperty(timeSigDenominator, newPosition.timeSigDenominator);
      	//hostInfo->setProperty(timeInSamples, newPosition.timeInSamples);
      	//hostInfo->setProperty(timeInSeconds, newPosition.timeInSeconds);
      	//hostInfo->setProperty(editOriginTime, newPosition.editOriginTime);
      	//hostInfo->setProperty(ppqPosition, newPosition.ppqPosition);
      	//hostInfo->setProperty(ppqPositionOfLastBarStart, newPosition.ppqPositionOfLastBarStart);
      	//hostInfo->setProperty(frameRate, newPosition.frameRate);
      	//hostInfo->setProperty(isPlaying, newPosition.isPlaying);
      	//hostInfo->setProperty(isRecording, newPosition.isRecording);
      	//hostInfo->setProperty(ppqLoopStart, newPosition.ppqLoopStart);
      	//hostInfo->setProperty(ppqLoopEnd, newPosition.ppqLoopEnd);
      	//hostInfo->setProperty(isLooping, newPosition.isLooping);
      }
      

      I made these specific changes, recompiled HISE without issue, and tested things out, but I've been unable to get this to work. I always get "undefined" as a result of calling Engine.getPlayhead().isPlaying, for instance (I've tried all the available functions though, and have uncommented them all). I've made these experiments in the AU/VST versions of HISE running inside Live, Logic, and Bitwig.

      I looked around for other variables in the HISE code that could be preventing these features from working, but couldn't find anything obvious. Am I missing something obvious?

      Having MIDI playback functionality without any transport sync is fairly useless for my purposes. Has anyone gotten this particular change to work, or is there another way I should be going about this?

      Thanks in advance 🙂

      a

      1 Reply Last reply Reply Quote 1
      • lalalandsynth
        lalalandsynth last edited by

        Nothing to add really except that this is sorely needed , for LFO and modulation purposes as well 🙂

        https://lalalandaudio.com/

        https://lalalandsynth.com/

        https://www.facebook.com/lalalandsynth

        https://www.facebook.com/lalalandsynth

        Natan 1 Reply Last reply Reply Quote 1
        • amounra
          amounra last edited by

          For some reason, I couldn't get this to work before. I tried recompiling everything, and now it appears to be working for me. Go figure 😕

          I'll report back after I've had a while to do some testing and make sure it works correctly. Currently, all I've confirmed is that isPlaying() seems to report transport state correctly.

          a

          lalalandsynth 1 Reply Last reply Reply Quote 0
          • Natan
            Natan @lalalandsynth last edited by Natan

            @lalalandsynth +1 On Synced Lfo's
            Thanks, Lala For Mentioning This.

            1 Reply Last reply Reply Quote 0
            • lalalandsynth
              lalalandsynth @amounra last edited by

              @amounra Did this work for you eventually ? And if so , does it also work for modulators and lfos?

              https://lalalandaudio.com/

              https://lalalandsynth.com/

              https://www.facebook.com/lalalandsynth

              https://www.facebook.com/lalalandsynth

              1 Reply Last reply Reply Quote 0
              • amounra
                amounra last edited by

                It did work for me....after many tries to get the right combination of version + modifications to give me the features I needed.

                In what sense do you mean, "does it work for modulators and lfos"?

                All I'm using it for at the moment is to get the playing state of the host software, so that I can play/sync or stop MidiPlayer sequences based on what the host is doing.

                Y 1 Reply Last reply Reply Quote 0
                • Y
                  yall @amounra last edited by

                  @amounra since the time that I was waiting for this .. it would finally allow us to make sidechains hoping to have the least possible latency. Let us know if you make your version of hise available. Thanks for that

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

                  20
                  Online

                  1.1k
                  Users

                  6.8k
                  Topics

                  62.4k
                  Posts