HISE Logo Forum
    • Categories
    • Register
    • Login

    Pushing Messages onto an Array?

    Scheduled Pinned Locked Moved Solved Scripting
    30 Posts 5 Posters 1.1k 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.
    • NatanN
      Natan @Christoph Hart
      last edited by

      @Christoph-Hart
      Legend, Could you please Do an example for these?
      setUseTimestampInTicks()
      MidiPlayer.setSyncToMasterClock

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

        @Natan EDIT: What I've written below is approximate, not actual code. You'll need to create MIDI player in your Module Tree.

        const TH = Engine.createTransportHandler();
        TH.setEnableGrid(true, 4);
        TH.setSyncMode(TH.PreferExternal);
        TH.setOnGridChange(true, GridChange);
        const var yourMidiPlayer = Synth.getMidiPlayer("myMidiPlayer");
        yourMidiPlayer.setUseTimestampInTicks();
        yourMidiPlayer.setSyncToMasterClock(true);
        

        You'll need to either create a new sequence or load one.

        NatanN 1 Reply Last reply Reply Quote 1
        • clevername27C
          clevername27 @Christoph Hart
          last edited by

          @Christoph-Hart Thank you for the suggestion. I tried that first, actually, but the MIDI player, and particularly recording, seemed oriented to looping a couple bars (e.g., MidiPlayer.create(int nominator, int denominator, int barLength))?

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

            @clevername27 Thank you so Much Mate <3 :folded_hands:
            Is there any difference that I Can hear, I Mean the results of the above code are obvious or it's a daw and Midi Thing?

            IMPORTANT! And one Quick question, Let's say I have 3 MidiPlayers, is It safe to use the code three times? or Inside a Loop?

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

              @Natan Can you explain your first question in more detail? If you have three MIDI players, then you'd need to do this for all three—you'd call this at init, not inside a loop.

              ustkU 1 Reply Last reply Reply Quote 0
              • ustkU
                ustk @clevername27
                last edited by ustk

                @clevername27 except if they are stored in an array:

                const var yourMidiPlayers = [Synth.getMidiPlayer("myMidiPlayer1"),
                			     Synth.getMidiPlayer("myMidiPlayer2"),
                			     Synth.getMidiPlayer("myMidiPlayer3")];
                
                for (p in yourMidiPlayers)
                {
                	p.setUseTimestampInTicks();
                	p.setSyncToMasterClock();
                }
                

                Can't help pressing F5 in the forum...

                clevername27C 1 Reply Last reply Reply Quote 2
                • clevername27C
                  clevername27 @ustk
                  last edited by clevername27

                  @ustk Ah, OK cheers - I wasn't sure what @Natan meant by an array. Do you know what the error message "You have to enable the master clock before using this method" is?

                  ustkU 1 Reply Last reply Reply Quote 0
                  • ustkU
                    ustk @clevername27
                    last edited by

                    @clevername27 following this:

                    void ScriptingObjects::ScriptedMidiPlayer::setSyncToMasterClock(bool shouldSyncToMasterClock)
                    {
                    	if (shouldSyncToMasterClock && !getScriptProcessor()->getMainController_()->getMasterClock().isGridEnabled())
                    	{
                    		reportScriptError("You have to enable the master clock before using this method");
                    	}
                    	else
                    	{
                    		getPlayer()->setSyncToMasterClock(shouldSyncToMasterClock);
                    	}
                    }
                    

                    The grid has to be enabled

                    Can't help pressing F5 in the forum...

                    clevername27C 1 Reply Last reply Reply Quote 1
                    • clevername27C
                      clevername27 @ustk
                      last edited by

                      @ustk Cheers!

                      clevername27C 1 Reply Last reply Reply Quote 0
                      • clevername27C
                        clevername27 @clevername27
                        last edited by clevername27

                        @clevername27 Solved.

                        1 Reply Last reply Reply Quote 0
                        • clevername27C clevername27 has marked this topic as solved on
                        • First post
                          Last post

                        22

                        Online

                        1.8k

                        Users

                        11.9k

                        Topics

                        104.0k

                        Posts