HISE Logo Forum
    • Categories
    • Register
    • Login

    Midi Player?

    Scheduled Pinned Locked Moved Documentation Discussions
    36 Posts 8 Posters 4.0k 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.
    • JayJ
      Jay @Christoph Hart
      last edited by

      @Christoph-Hart but it only play 1 bar, and the example you said you'll do?

      Joansi Villalona

      1 Reply Last reply Reply Quote 0
      • JayJ
        Jay @Christoph Hart
        last edited by

        @Christoph-Hart said in Midi Player?:

        I'll write a proper documentation for the MIDI Player ecosystem when I merge it back to the master branch, it's not 100% finalised yet.
        This opens a can of new possibilities, you can embed MIDI files, play them back, modify them using scripting calls, you can even build your own piano roll from a script panel.

        This?

        Joansi Villalona

        1 Reply Last reply Reply Quote 0
        • Dan KorneffD
          Dan Korneff @Christoph Hart
          last edited by

          @Christoph-Hart any chance you can throw together some quick notes on this function? I ready to use this in my next project.

          Dan Korneff - Producer / Mixer / Audio Nerd

          DalartD 1 Reply Last reply Reply Quote 0
          • DalartD
            Dalart @Dan Korneff
            last edited by

            @dustbro Following

            1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart
              last edited by

              @Dominik-Mayer is closing in on the new documentation system and I‘ll make sure it contains a few words about the Midi Player.

              Dan KorneffD 2 Replies Last reply Reply Quote 3
              • Dan KorneffD
                Dan Korneff @Christoph Hart
                last edited by

                @Christoph-Hart yes!

                Dan Korneff - Producer / Mixer / Audio Nerd

                1 Reply Last reply Reply Quote 0
                • Dan KorneffD
                  Dan Korneff @Christoph Hart
                  last edited by

                  @Christoph-Hart Is there a way to add multiple events to a track? I'd love to see a snip on how you would paint a timeline as well 🙏

                  Dan Korneff - Producer / Mixer / Audio Nerd

                  1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart
                    last edited by

                    @dustbro said in Midi Player?:

                    Is there a way to add multiple events to a track? I'

                    Yes, but I realise there is one puzzle piece missing.

                    1. Create a list of MessageHolders which contain the MIDI messages
                    2. Set the MIDI properties for each message
                    3. Call flush() to pass it to the MIDI player.

                    But you can't set the Type for the MessageHolder object (it was initially created to hold a reference to actual MIDI input so there was no need to change its type, but now we need MessageHolder.setType(MessageHolder.NoteOn);

                    What do you mean with timeline? Any graphic representation grabs the rectangle list from the MIDI player, then applies some transformations and displays the information in some way, so if you can show me an example I can check how to realise it.

                    Dan KorneffD 1 Reply Last reply Reply Quote 1
                    • Dan KorneffD
                      Dan Korneff @Christoph Hart
                      last edited by

                      @Christoph-Hart I'm trying to incorporate this into a drum sampler...
                      So file browser to drag n drop midi into a player, and an associated midi track to arrange parts.

                      SD3_grooves-1506170664982.jpg

                      Dan Korneff - Producer / Mixer / Audio Nerd

                      1 Reply Last reply Reply Quote 2
                      • Christoph HartC
                        Christoph Hart
                        last edited by

                        Alright, a snippet how to use the MIDI API to create notes programatically is available here:

                        404 Not Found

                        favicon

                        (docs.hise.audio)

                        Now the other thing you want to achieve is a little bit more complex, as it would require to divide the notes into multiple "clips", which is not supported ATM (and chances are tiny that it will be added in the future since it requires a full rework of how the MIDI files are handled).

                        Dan KorneffD 1 Reply Last reply Reply Quote 4
                        • Dan KorneffD
                          Dan Korneff @Christoph Hart
                          last edited by Dan Korneff

                          @Christoph-Hart said in Midi Player?:

                          it would require to divide the notes into multiple "clips"

                          I'm thumbing thru the MidiPlayer API and found:

                          getNoteRectangleList(var targetBounds)
                          
                          This converts the MIDI data in the current sequence to a list of rectangles for each note scaled to fill the rectangle supplied as argument.
                          

                          The description says

                          The most simple application of this is to draw a piano-roll content into a Panel. 
                          

                          @Christoph-Hart Can you use a panel as a "clip" with this? I'm checking out the example code, but unsure how to properly populate "note". @Dominik-Mayer any insight on this?

                              for(note in list)
                              {
                                  // `note` is a array with 4 numbers and can be passed
                                  // into all Graphic API functions pretty conveniently.
                                  g.fillRect(note);
                              }
                          

                          I'm also seeing

                          setRepaintOnPositionChange(var shouldRepaintPanel)
                          
                          If true, the panel will get a repaint() call whenever the playback position changes.
                          

                          description:

                          By default this is off, but if you need your connected Panel to repaint during playback (eg. to display a ruler that indicates the position), set this to true and it repaint() will be called periodically during playback
                          

                          would this Ruler be similar to the timeline ruler in the pic above?

                          Dan Korneff - Producer / Mixer / Audio Nerd

                          1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart
                            last edited by

                            Making a ruler and showing the contents of a clip is the smallest problem (in fact these are trivial to achieve with the API calls you listed above).

                            The problem which you won't be able to overcome is to combine multiple MIDI files into a timeline, and drag them around as entity.

                            I've modified the example from the docs to use a panel to display the position and content of the MIDI file which should get you started on the basics:

                            HiseSnippet 2049.3oc4Y8+aabaE+NaeE0JyEoaEC6GIBFvNuncQxeIN.EEwxx1wZI1VUxMMnEEAz2wSGStiTkGkc0Jx9ab+oj+C1dOxS5NYq5ooktgto3.K936Q995mGIcWkLjkmKUNtqew3gLG2ekW+wBcR6DJW3z4PG2Ow6TZtloHVRGLdHMOmE435t5yPBtquli4y6e5AzTpHjURxw4kRdH6E7LttjZ28eNOM8XZD6BdVEt2Y+NgRQaYpbDnOq50vYHM7szArynHaq3439QGEw0RUeMUyxcbW6.Yz39IxqEV9eIOmeYJCGzzoOrPVxGKSiPMFo5zNgmF0chcm63350szKrp0K7Ydmxi3SoW5MtuYBRoDU8GtqbWpWy+4pWi4odqVQ89nIAIi5kRGyTSBRcNrCwRo4LJU6QJESn6y99QrYBNu+oEScgBbyUo+Bob3QBJnpQUI6t5rl2pKl4caSxA09i4oLz7bmL.3FMEHLeHUScby8dxVAhKd7yeR6d85zIH3zu7nu4MsBBBdUPPqftAY7d8unyVeCPIXbPva1ausFDz5jyggu4g6sUbbqsMeu0SxhiCdU2fSD+4tm8WXsO3331shia1pSuGFdR2fjCCB16gOOHvA0ixrMWL+rOeffpGo.ZdmMJ6.JXAUbJmIy3v7lJnBh2e+CYh4QF8qfySoqVgXc1y3ncpDwWyFw+Tu9gJ9Pc4Lnu52TPsLeb1XucVmUjddjMpEORDp4RAgFEclTy7S4455jvDpPvRqSD.MwnrKYp5jqXoxPtdbcxPYNGkpNIkIFnS1r1OVi.ethpHYjufbjX.WvBBULHq3TPIfB1SvLZk+letgyrfblFMC+r.beOWTcBjxYlc0uTApxvKKTE+I5T0IaaUd+BiXlcDBd4ZZ1P+BUb.S2GFBocGKUe4HHNvTG.Zct+DabyB4mZfxEx.kSMPo0.iiqNycYgxeZiPtjFA4gShTUsFLVGLbTdheVA4RJRfx61nF9uG8HxEI7bx0.BMIArRB.FaxLH4EHHA0POSJ3Y91u6yqgRzJJhPIWBoWIDYrg67ZSSxpSZVm73Fvu1Zu5D72v1ciY2tXV36MB181yu6j4C1E4X6aywdEbrUPyehEYusJXYaiJL0deFSCZuhEyTn4QzRhNgQL.pCM.pA0f9R4ZSFARt.lE7.ldkXLoDO1+AUghevlVWTm3atnjHIKW7GzjD5ULBULl.aBjcnIoRn0XTcx0LTRAiEg5jM+CzTV1P83oQCRLWkqqwi8qnYA77iPt72bR0JrPssKfTvHWBFx0bcBYmGsCQCoXj7InbFtqtT180em5jcrgt2YLnyjWCJH4Mi.+BB3XLOLkZN9Ov5hfbRMgqKLCbEnjgJ4Pl0kVwdTxLfwfZUUh3THOsn16Evl3mhAvo.ZRgEWwGM20AMjbyohim6bsAWtRllh0xyYZr5ScWB5OEujlNhMkQ.1d1Vk0VrVkEY.UXTJ5H35yGxlN1ZoSnzvYpAVkTocUkpwblCakjlSu51VcB91W0wzXFZrTPqqI9o4nE5dH6J3nd1tUq6cHK+sZ4PmEtU1875.qoJlBGQYdsvZtlWwtFjQeK6XELXpD9OtAfqraiF1x5xp0tT.OEKTmHKTp1VlMDJBDZ+GXm9A2Tp+0qwQ4monQB.4g5Kjlcv2tOHaUYBf26wFBmrTetnaA3M1JX.yWqfrIypZEE4sKxYO4HMzFveRpn+.SR2ffX.vtUZpu83y4AWpfbHbIVG9w.Xi0lewLk1Cr8l5AZJrqo1JqusgAjVCcAPF9ZdjNweyRBmv3CRz9a9cSVb3mXos0FgKL6ylaXfQ9Q6uJverLjavZK1PXQo.jfDNFZNDShxQvCpEP.YeF4QPDP77PZpEQDQYFhtmbRDjYKxA+QdPoLyHcLikBXKLC9dnwKaLInI20rq.TnwxQft+VVkEXfo4rwgN0udcBWaBMkLgtdHtH.P6otRi6.6W0nJulu7NiOqPsdlhdowPDRUFE7cfogflWBGIe5Qu1X54Q.J2NF1sf+I4P9aR9i2L9UnDS22HE8Zy9pFAfDVxCBPpu.Suf8wbxOrSZiaG6KLrZuC9+ub.gu2GJP3p2m7WZ.xHuE3ev0I0lY2XBhLVL4vAK6i8r3NN+P48RNY+wkCd89WiIVvchbux0wIwjXfi9qla3eKPe3dyxnQo3MhpdYZ7EDJl.Boy.7if6PIsd7LWAcwugciE9A.VT08S85x0gIyWeWYN5KDY94VeKduhM7NJNFvdJU107N9UK6iSrbpxmXUk640GPPLMMMJxu0Ll703obeFSvTnSs4c7NR+sE8cjFtvuiz4.p7UrKTTAzlIelEtOKieATNjWk3WkCGvf888vnbU5skvs+m2Tu+oGCF4bkoOdrZS5RqLnIwL28+lunxGlGLZs+K7dVe3q192GbX0EScmiGzs6sdWz6Cow30tORfOCAPA0weM.qFSGkpmPc175SkB4vDofGVMn2ioU7ACXpp59bMnVZ8LuL2mseOVJiVMA92uO1ulp.+DaI8EMWbewcEu9cdV0kfEij+2.Te0++DT2dIiAmRgD0ev9rm8ArzPVwCUkiM5WAwCsiafisfohHyf+N7oXxl3X2hIaNYx+irGYzPk70g1yTg4xergBX2Bya7tt2o3XRSGyIGA47fi65jAHhuNLDc2+Iv+LeY1ZIjY6kPlcVBY1cIj4wKgL6sDx7j6TFrYTqQZYlsTDHz8H6eM.2o+AIbW04evx051q
                            
                            Dan KorneffD 1 Reply Last reply Reply Quote 1
                            • Dan KorneffD
                              Dan Korneff @Christoph Hart
                              last edited by Dan Korneff

                              @Christoph-Hart Thanks for the update!
                              I'm doing a little tinkering but can't quite wrap my head around it's functionality.
                              I've added a play + stop button to your example (using the property editor), but get unexpected results. Pressing play will only play 1 random note, and when I hit stop, the midi player switches to an empty sequence.
                              What's the proper way to to add controls to the player?

                              HiseSnippet 2167.3oc4Y8+aaabEmz1LqVcNHcqXX+3gfAL5EOFI+k3.TTDKK+MsDaqJ4lFzhtryjGkXB4crGOYEsh.r+M1+I6Oi8mR9OX68tijhxVwUUsaCqU1Fh26du6806y634NRgOKKSHsrW8hwoLK6eoSuwb0fVCnQbq1GXYeWmSoYJljXHs+3TZVFKvx1d4iQB1qthk9y6dx9zXJ2mMgjk0yEQ9rmEkDolPsydOMJN9HZ.6hnjJbu8ds8E7VhXwPvdV1otUJ0+0z9rynHaK4XYemCChTBYOEUwxrrWYeQv3dCDi3F9edTVzkwLbPCqdvBYHejHN.sXjpUqAQwAcJ76LKKamNShBKahBeryoQAQkzmDMtmdBxDIpFOrW51LuFe2lW8YYdKWw7tSQRRadwzwLYQRp8AsIFJMlxnZMTJYbUO12LjMUx4cOIepKjPXtJ8mIDoGxofoFTkr8xS6dKOet2McIKz5OJJlgtmcw.fazUfz7ATE0xNy4wa5wu3QO8ws51scaOuS+rC+xW0zyy6EddM853kD0s2Es27KAJdi87d0t6tYeulmbNL7UOX2MCCatk94lONILz6Ec7Ng+m5b1ek0Z+iBa0LLrQy1cef+Ic7Fbfm2tO3oddVncLoZyFqO6E0mSUCk.MmyFlrOE7fJAkyDIQv75cP4Du2dGv3yhLFWgfmTUcGhIXOUf1pRFeESF+ib54KiRUSlAiU+5bpSpGmN2al0ZIgiCYsZgC49pHAmPCBNSnXtwQYpMH9CnbNKdCBGnwGlbIStA4JVrvORMdCRpHKBkZCRLi2WMX8ZeaMB74JpjjP9Txg79QblmujAUEmBFArg8DrhV5t9mn4LwKioP2vMwC0647pSfTNSqU2IFPUFddto3VXSUmrkw3cychozHj7xTzjT2bSrOS0CFBkcGIje1PHOvj6CVclagOtdt7kNnXtbPQoCJLNXXX0YtMOT79cBwB5DjGTjop5MXt1KcX1.2jbxSnH.JucsZ3OO7gjKFDkQFAHzjAfWR.vXckAIKGAwqFFYhgHyW80eRMThlAADJ4Rn7Z.QDp4NqVYQ1FjFaPdTc3qM2cCB9MntqM6V4yBOW2amaN+NEy6sCxwV2jicy4XSuFumEY2MyYYKsIT5uGyTf0KYgLI5dDkfnFvHZ.0TMfpWMnuTlRWQfjygYgHftWIlSlfG6d+pPw2ecSHpc30WTRffkw+8Jx.5ULBkOl.JApNTjXAzZLXCxHFJImwBPaxT+AVJKIUMtLaPBijYpZQgtUrLunrCQtbWuX2JrPsLKffyHWBNxnH0.x1ObahBJwHYEnbZtqtTF85t8FjsMot2pcnyDi.Cj7pgPbAAbztGVRMi3G3cAPMohDoxcCbEnjToHkYBoU7GoHAXzqVUiHLFpSy268LPItwXBrDPSvM3Jtn6tJXgjqOUX3LmqEDxkh3Xbu7LlF28IuMAcKwKowCYkLBv1S2pr170pLuBnBiBdadj57TV4XimVPotUoCVkzD+pJUs6LC1lPZF8paYrI3oOustwLzXImVGc9SEgdn8Arqfi5Y5VspyArrWqDoVycqrOzoMrlxPJbDkY0BqwJN4Z0Kg9Z1QRXPoDtOpNfqrS85ls0S1s1gB3o3F0BYgspsDIovl.tx89lou+0k56+dbT9o1zH.fbe0EBsFbM5AYqJS.7dWVJbxR047N4f2Xqf9LWkDplzqpQTj2NHmcECUPa.2hRQ295ht9dg.fcy3XWywmy7tTB0P3RrJ7qFvF2a9oSs0tuo2TWvRAsFa1Y8U00fzJnK.xvWDEnF3t9DBmvh5OP4t9WWr3vugBSqMRDWqm0WSCi7sluxweLLjowZyUHrnT.RP.GCMCxIAYH3A0.HfrOk7HHBHdlOM1fHhnLoX3IiD.U17LHdj4MQlojNjwhArElFe2WGk0tDzjaD6J.EZrXHX6ulUYA5qaNqCnkw0QChT5TyDlvPOjW3.ncYnTGNv9U0qxq9g2piY4l0wR5kZGgKjITH1AtFBZdIbj7xidsV44Q.J2LG1Im+hZH20I+gqm+xMhR8FHoiz5UND.ILj66gTeFVdA5QexOrSZ8al6ycrZuE96+e.gc9wBD91PIsWJ2p.VUZ7t6li2s+PkRvsh.Xs63f4LKs8N0A+mKY6g.q4x5XqEcQflgWMr.Izx9WXz2ZEXy31Js59.GCBj0aPkcWPWiwG9GvCivRqRy+uLZuA5xiRJ+sWtGMNVL5.IsOb109fkrj0M046O9nU4etPk+cvUkzfHwwRwvTSlHsHGzN3FuDbJUBuIGzgn8jUbdUuND+lIoFwdiKGjNdue.lQu2SWw64bpHXXL9JiUusA7JVxm.p4mpyH18Cv7Tim5czm+qfn9beCIyq49QNchT9Cls8tzLrWb6x+gs27KzYMmCCCAv4IF6JNG8hE81aVLS4tFS4Cc5APr5SUnMjeidL4KvWC3XFmIwfZia4h19my6EskN2Wz14PaqqXWHobnOb1TKbOVRzEvVlrpD+7L3DXruoKlkqRukfJm4Tu6IGAN4LkoG9dG5xklIPWzotbjqekSeuuQsYdgeq7+fK76G+ca+vAGVd9L2YDAs6biKN9dPYLduDGxw6oAnf13uB51DRGFqJnNcc8oBtHcffG4WMo2kojQ86yjUs8Y5PMUpot5xOdutrXFsZA7uaO7.MTIDmXKXrnw7GKts70u0wXtDbyH4mFf5K+ySPcyag0+TJTn9Fy8B2CvR8Y42jGdXS3rNnn5w0KNnVOFOPO3eAexmrAN1NexFES9eEcjP8khW5aNzIVK+AZJfey0WB9pNmhiIMJOtoC79.VI.h3K88wv8eDhOyVlMW.Y1ZAjY6EPlcV.YdzBHytKfLO9VkAaF0bnRjX1JBD5bn4eWhc4+wF6ks92.YvWttA

                              Dan Korneff - Producer / Mixer / Audio Nerd

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

                                @dustbro if you use the "create generic script reference" on the MidiPlayer
                                and paste it in initCallback

                                const var MIDIPlay = Synth.getMidiProcessor("MIDI Player1");
                                

                                you can use this code to enable disable the play function

                                inline function onPlayControl(component, value)
                                {
                                	MIDIPlay.setAttribute(1, value);
                                	MIDIPlay.setAttribute(0, !value);
                                };
                                

                                Attribut 1 is Play and 0 is Stop

                                However you have to disconnect the "Play" btn from "Property editor"

                                this function above make only use of the Play btn value, but you've set the buttons in a radio group so the stopbtn will set the playbtn to value = 0

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

                                Dan KorneffD 3 Replies Last reply Reply Quote 1
                                • Dan KorneffD
                                  Dan Korneff @ulrik
                                  last edited by

                                  @ulrik Thanks for that! What about changing the sequence? Could I make an array of sequences and push that to a combobox?

                                  Dan Korneff - Producer / Mixer / Audio Nerd

                                  1 Reply Last reply Reply Quote 0
                                  • Dan KorneffD
                                    Dan Korneff @ulrik
                                    last edited by Dan Korneff

                                    @ulrik the suggested code is two thumbs up here.
                                    @Christoph-Hart When the STOP command is selected, the midi player removes the sequence. Any insight on that?

                                    HiseSnippet 2221.3oc4Y8+aaabEmzNLqVcNHcqXX+3sfAL5EMFIam3.DTTKKamnkXGUK2jfVTjcl7nDSHui83IqpEDf9mv9Sa+oz+C1du632jsrqfZ1FVqhCr36du68488im6KE9rrLgzxdsSmlxrr+0NClxUi5NhFws5suk8sbNhloXRhgzdSSoYYr.Ka6UeLRvdsaXo+7Ce9dzXJ2mUQxx5EhHe1yhRhTUT6u6SihiOjFvNMJoF2auaOeAuqHVLFvypNsrRo9ukNjcLEYaEGK6adPPjRHGnnJVlk8M1SDLcvHwDtg+WDkEcVLCens0.XiLjOTDGfHFoZ0cTTbP+B6Nyxx1oekWXUiW3ScNJJHpjdk2315EHURT2eXux0Au1+3vq07f2p0f2MKBRZ3ESmxjEAod62iXnzdFP0crTx3pArucL6BAm7kNUBt45wwmIDoGvo.TCpS1d0YMuUWLy6xljEh9CihYn4YW7.vMZJPXdephZYm47vM83m9fm9vtmbRudddG8EG7Uuoimm2q775302KI5jAm1ayuBn3M0y6M6rylC857jmCO9l6tylggc1R+8NOLILz6U88dB+u1+3+Nq6dGF1sSXX6N8N4t9Oou2n88714tO0yyBwQU1lMleNHZHmpFKAZNGONYOJXA0bJGKRhf00UP4Du8t6y3yiL5WAmmTUOHXb1y3nspEwugIh+INC7kQoppUPe0uMmZU93rwdypVqHcbVuA9uvwbeUjfSnAAGKTL23nLUSh+HJmyhaR3.M93jyXxljyYwB+H0zljTQVDJUSRLiOTMZiFuqAA9bNURRHeF4.9vHNyyWxfDii.b.0rOASpkta7HMmIdYLEZItIdndeNu9BHki0Z0sB.0Y3E4Pws.S0WrqA7t4FwLZDheYJZRpaNDGxTCfGgLuCExuXLDJXx8.Tm4VXiajKeoAJVHCTTZfBiAFFVekqyBEWsQHVRifb2hHUcqAi0doiyF4ljSthh.n7dSNx8tG4zQQYjIPSZxHvJIP+XclAIKuIhWCzyDCdlu9adTCThNAADJ4LH8ZDQDp4NqQYRVSR6ljGzB90l6zjf+FT2EVcq7Ugu2x69Wd86Wrt28QN15xbrSNGa509J1jc1LmkszPnzdeLSAnWxBYRz7HJAQMhQz8TS08T8Z.ilxT5LBjbdmVvCnGWhwjpVxt2od236rgwE0K7haJIPvx3+IEYD8bFgxmR.k.YGJRr.lNFzjLggRxYr.DSl7O.orjT0zxnAILRloZDE5VCYdQYGfb4tQQ0JrQcMaffyHmAFxjH0Hx12aahBRwHYEM5zbWeqL50c6ljsMgt2qMniES..RdyXvuf8bzlGlRMG+GXcAPNohDoxMCbGnjToHkYbo0rGoHAXzqQcPDFC4o40dOCThaLF.KanI3l9Jtn4tFfPxEWJLbtq0Eb4RQbLVKOmkwpO40InaY+RZ7XVIiPm6YmV1XwlVlmATiQAuGOR87TV4yFKsfRKqRCrNoJ6pNUs4LG1pHMmw0cMXB91W1SOaFlsjSquN9ohPKzde14vo8LCrVyYeV1aUhTqEdZ1G6zC1SYHENkx7lhk33jqUuD5aYGJgGJkv8Asf9J2uUKSYcU0ZeJzOEKTKjEJU6JRRgh.tx8NlkuCJ0OkJbSqjYJZDPibe0oBsFbM5AYrNSP68SXovgKUOm2Ou4MNJXHyUIgrI89ZDE4sOx4IhwJXLfaQpn6PcR2PuPngcm3XWyIny7NSB4P3VrF7itgMVa9YyTZOzLa5D.ofViMUVecKcSZELE.Y3kQApQtaTQ3IrngiTta7MEaN7SnvLZiDw05Yi00sQdm4W48eLLjo60lqPXSoPKAAbRzLHlDjgMOnlFBH6yHO1DADOymFa5HhcYRQ2SFI.xr4Yf+HyqRlYjNjwhgdKLc+cesWVaRvPtIrygtPSEiAr+VVsMXnd3r1gV5WmLJRoCMULgtdHtvgl1ktRs6.mW0pNu5u7dsOKGVOVROSaHbgLgB9NvzvllmAmJu7nWqWddDfxkig8y4uHGxcCxe9hwubPTp2.IchVuxwPSBC4gdH0mgoWfdzm7Cmj15xw9bCqw6g+OS4FfjqtXCV7JJ0tTcVQqgqnTKhGCnrd+Xjihdx9E5rns75MdGJ0ZEpCCqcTJYzYigIasKX6QWIKfK3OTxy60f35rQSZiFLcowwXrwcFHVXG++y.LmOTCvttIL1qjiJfUkdVwsxmUr2XkRvshfQB2zAcjVZ7B3x17xrKhbCvAR4xU68sVlwZvaVWDzsr+UFctdwbMrkjVkejio6s02Uovl6Ns5gg6NAKOKI72lr6HcIVIku+06BYPhI6KoCgy+ODPzJV0zsyOlepR0e+Kqo5+wzckzfHwikhwoy3NVvMW6LqYWhZad5Ut4W9z.214HQv3X7skqeQK3sKku.juNyIBvo9Pud0zYtdhE+1WZsvWNzhB2Owoejxez7w6JyAuXp9+gwa9cYstyAggvPoJvdCmCe0xdwUKGTtkAJery.nostOuFH+N8yjWhu9yiYblDcpsul6X7etn2wX5BeGiOGFWeN6TIkCm+HalMd.KI5TnPHqNwuLCN4I6aOAixybYZBpbtK8Ce9gfQNWYFfuukNcoSBb5gYtWnKdaaeXtLwa7+f657Ce01O8lCqtXvcNdP69W5NyuMjFi2GyAb79o.JHF+MvjhP53XUA0YyqORvEoiD7H+5A8SXv4MFNjIqi84ZPvISl4Va+zcOgEyn0Sf+i6hGjiJA+DaI8EsWbew0Eu98NF3RvhQxOOZpu5uLapad6ygGQgD0uybk3Cfdo9r7avDOnHb9DTT8ysJNf1.FOP+v+B9juXa7Y67EaWr3+UzQB0WJdsu4PiXt7Goo.1MWe++q4bD9Loc4wLcf2CxJA5H9Zeezc+W.+y7kYykPlsVBY1dIj49KgLOXIjYmkPlGdsxfCi5LVIRLkh.g9GX9KEYW9GqxdUq+Md7mAJ.
                                    

                                    it also throws this in the console

                                    Interface:! Line 17, column 18: no iterable type

                                    Dan Korneff - Producer / Mixer / Audio Nerd

                                    1 Reply Last reply Reply Quote 0
                                    • Dan KorneffD
                                      Dan Korneff @ulrik
                                      last edited by

                                      @ulrik any insight on how to script the midi player to playback different sequences?
                                      Like if I drag in 5 different midi files, it creates 5 sequences.. how do you get it to play the different sequences back to back?
                                      The end game is to be able to assemble an entire song and have playback follow the DAW timeline.
                                      I saw @Christoph-Hart added a bunch of new midiplayer functionality the other day. Very thankful for that!

                                      Dan Korneff - Producer / Mixer / Audio Nerd

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

                                        @dustbro I've never used multitrack but I guess you should make use of

                                        MidiPlayer.setFile();
                                        

                                        .... for loading
                                        and use

                                        getPlaybackPosition()
                                        

                                        together with a timer to check when

                                        MidiPlayer.getPlaybackPosition()
                                        

                                        reached -0, the file is ended and then use "

                                        MidiPlay.setTrack(int trackIndex)
                                        

                                        to start next sequence

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

                                        Dan KorneffD 1 Reply Last reply Reply Quote 1
                                        • Dan KorneffD
                                          Dan Korneff @ulrik
                                          last edited by

                                          @ulrik thanks for that! I saw in the API that it recommended not hot swapping tracks. Maybe there's a similar call for sequence?

                                          Dan Korneff - Producer / Mixer / Audio Nerd

                                          1 Reply Last reply Reply Quote 0
                                          • Christoph HartC
                                            Christoph Hart
                                            last edited by

                                            Now there is :)

                                            Dan KorneffD 1 Reply Last reply Reply Quote 2
                                            • First post
                                              Last post

                                            27

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.8k

                                            Posts