HISE Logo Forum
    • Categories
    • Register
    • Login

    Midi Seq and Track to Display in Ui

    Scheduled Pinned Locked Moved Scripting
    10 Posts 3 Posters 68 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.
    • T
      toolife
      last edited by

      I try so Hard but noting Seen to be work although the code has no error.

      Content.makeFrontInterface(600, 600);
      
      // Reference existing components
      const var midiPlayer = Synth.getMidiPlayer("MIDI Player1");
      const var sequenceViewport = Content.getComponent("SequenceViewport");
      const var trackViewport = Content.getComponent("TrackViewport");
      
      // Get the actual panel we should add/remove children on.
      // If the component has getContentComponent(), use it (it's a Viewport).
      // If not, assume the component is already the inner panel and use it directly.
      const var sequencePanel = isDefined(sequenceViewport) && isDefined(sequenceViewport.getContentComponent)
          ? sequenceViewport.getContentComponent()
          : sequenceViewport;
      
      const var trackPanel = isDefined(trackViewport) && isDefined(trackViewport.getContentComponent)
          ? trackViewport.getContentComponent()
          : trackViewport;
          
          // Quick sanity checks (prints to console if something is wrong)
          if (!isDefined(sequencePanel))
              Console.print("ERROR: sequencePanel is not defined — check component name 'SequenceViewport'");
          
          if (!isDefined(trackPanel))
              Console.print("ERROR: trackPanel is not defined — check component name 'TrackViewport'");
              
              // Helper: clear all buttons before refreshing
              inline function clearPanel(panel)
              {
                  if (isDefined(panel))
                      panel.removeAllChildren();
              }
              
              // Helper: create a button inside a panel
              inline function createButton(panel, name, yPos, callback)
              {
                  local btn = Content.addButton(name, panel);
                  btn.set("text", name);
                  btn.set("x", 10);
                  btn.set("y", yPos);
                  btn.set("width", 160);
                  btn.set("height", 28);
                  btn.setControlCallback(callback);
                  return btn;
              }
              
       // --- Populate all MIDI sequences into the SequenceViewport ---
      inline function populateSequences()
      {
          clearPanel(sequencePanel);
      
          local seqList = midiPlayer.getSequenceList();
          local y = 10;
      
          if (seqList.length == 0)
          {
              Console.print("⚠️ No MIDI sequences found in the MIDI Player1.");
              return;
          }
      
          // Loop through all sequences
          for (i = 0; i < seqList.length; i++)
          {
              local seqName = seqList[i];
      
              // Create a button for each sequence
              local btn = Content.addButton("SeqBtn_" + i, sequencePanel);
              btn.set("text", seqName);
              btn.set("x", 10);
              btn.set("y", y);
              btn.set("width", 200);
              btn.set("height", 28);
      
              // Store sequence index and name inside the button data
              btn.data.seqIndex = i;
              btn.data.seqName = seqName;
      
              // Define callback outside of the local scope issue
              btn.setControlCallback(onSequenceButton);
      
              y += 34;
          }
      
          Console.print("✅ Loaded " + seqList.length + " sequences into the viewport.");
      }
      
      // --- Sequence button callback ---
      inline function onSequenceButton(component, value)
      {
          if (!value) return; 
          // trigger only when pressed
      
          local idx = component.data.seqIndex;
          local clickedName = component.data.seqName;
      
          Console.print("🎵 Selected sequence: " + clickedName);
      
          midiPlayer.setSelectedSequence(idx);
          populateTracks(clickedName);
      }
      
      inline function populateTracks(seqName)
      {
          clearPanel(trackPanel);
          Console.print("📂 Displaying tracks for: " + seqName);
      }
      
      d.healeyD HISEnbergH 2 Replies Last reply Reply Quote 0
      • T
        toolife
        last edited by

        HiseSnippet 7384.3ocu6kzrjikkVuHyJ5tqjtgpwXOdmK5JR7rToYWdkTVkZxkjK2kjqAeBCJz77fqIWRkUl0FlwVXArBCC3OAlwumdAao12Kfq+lh2KxHxJ6z.TX168z8dNm62Y7dORJzpKc8aZJqu6Meg4Xk+cu4O+sFiEsQrQ1wE2Iwc2a9G717Xu3YYwMs2wLVY2z36c2adymKbif27S+I2c+0e32vXmYW35+9gt6t8kwt9ahyiae+nZeqbbV1JaOey37WPM92J4VVvVlU1A.ym+V36prcSsC8UruQ1m816Dsaht6M+ydKJZfKELLEFFArsMlmsMNhO1R+.x.WB3kvdNDvf+Qd2a9S38haKqMZsa8at6M+DlRuQinxqEOr.6iahcx7ucCxcFfU9ggWUl4cSEuM5crQwYdZOYkZtCHEs2ay97GrY+Sd6VfI54weus6mc+DydOGuz.9lO60v6yeE7PdI7feA79HP5ydAj9SexMdOjxrG8quGJ+Ce6VINoYOLBxq.BaWcseQqg+kN+W4A+C+lGmxrF3Kd+3+Ye6lxxJ9Ba.77dI42jtCfTiJ+WOwa97ev5Jx2qtd2M0ZUbl+858S2.n9lNBBR3rasu6y969yeKJN0BnBSRYJ18Z6m1a.U.6BEFpqYexfFpuaw3UGwUXxdPKiyrNxmvhIq.GjpEAUZZ6r5h0g3q6553ZRpE3KmBRChNqcUCaq4wcU70PdWIxkjh0KM00uTqJtC83l41sS9ANzIGfp4CZHp2usw9RE40S9KLPYYa4qMGHnNbz0eojuZNL8YCxQMXp404HEyOQhT.aUJkyvQtuVWRDQY6I2EARKv1FtTYD4he7VT0QXqSizKOQsexwhDsVzY2Q+L0yESZQRiJRJnWfw87pWxUf6c.sjwL.w0cjdHxZ8HNkRwHUc.esBpx9AkEG8N2O4PWiRnm2gVm0jAKUtjL7RUrGwfWTYasq6jxprlQnMsDBtDgjalXOntXbdA1R2nS6GqPi6QtfyhdXRUlfJegqkcNGpElBT7nqS5FvnGnkS4oTNgDuiuM2Q8v00oI.pHGV1WxlVvdPx2xZSfbk.iDbqLQijigBOtefhiwxLwMmKVisE0gJrB83UQcplb9KrlLba4uXyKBWgIHHR.FzhWsWb+jsbvBYHbRDmNIlXlJlH5MNTA.l0jtXSatSd0tkJkHmb6bCz2cdscaE14jsGNj3MJEoF.g0VPdcHjkVUps.xQbyXHJCjyAQEmQ9JYoTVHUnVxnwVbF5HOMItRQNe9Bpx4QFRi6yZLh7IrO4pYetKayROhS3aCokYqGGHKqDvgG8ToF0xQ7No4yXt5hiOQ5ND5qTkAboAKhOx4oXMOXI64bPraXYXyJDEqTn8LGygb6QIbqVYKDuecrD69U0F9aNuoxnSZwlvbiq8kGDc1zqPyU.kjmLcorRqSy2HXulMsqQP7Q0HWCqUAzzsR8ZKBwrqzi1t4bYBGSCeDeJeS4bZO09KRGmlLFYi6J8Wj3iYd0Wcg4F4LW0EJ8GP7zvb8N0SX2aevJyWuME2cfpsK0kokF0Slr02j7HAfzD28StvKPkOVtYNdxjaWiuxHLB4nCpUy0LhbU6ZxoNstQAkqBc4H7rCJ93xhWlOHX3updbqCZO7Hjj6Zi8Y0F5mHrCyCP1eTXZXxlzduQZiZW15LuEnNSrywi81PyLhbJszPuQdxKavDFwSw.AAIWZbhjY+5lcjyWbkqP9Xkv1RgNLDJuc4qKNL4os2MvFiZyQXKIzxjPGxgBXplAkh7V0dzQqReNU3qr7WLUhbcWXRrKTdsabrCaNS2fxFac+KbSqokrv2oRQew0up4RiAiYNmnxQmrsiYbRqMHBoR6hMHvutOK4.ybdTiCGt1PRPLrPqJaDoX+5wSwbGq2nGPGxxbgsIbE0byUT77kkEtjQ6SV12UdAElLzWbGSbeagfNRuHR+buqVs0FfH5I+rw7Qxtrdvk2EU0UTEDRUBT4PjCfeY3u3jREDOFVhqyREh7x7wo79zT0AWJY87Iuycx5pUq7xaQZQ7vnD620fFSUjuhhSQ0LOCcGbgHbuvURB2SjEKOPT.EVRseI1V7v7st6GWAKnrb60SwiJUDWnV.ijlRcBqv67Qv+vhvJbDl21Npsc69xMljss6rBOkGSdsgcjfZAOrA690ktwmEMNI1pFDYecqouBtyfF8JaqZKMJZpV0voSMtMMB5gUH53wijwiUiUZTQcFWH5VFP3VlG5MdLU+vY0I1p00T0BqqaPY4q.gZl5jtdCfcHppvNfkOkz0qdwTvd8AGbpctcBHKQmCWWkYQ.AhNN.GseszgcqL1r2UUxasABYxQ2kqc522ziWo5s7X9BB39iGa64zYKwW55olYgbhaw9SThXoW1OkS5F.KMGUlImMYSbvl1b1sGIOrUo+nHCoAFnH6npg11NTnC3lVEL1nVqDJj86VDdY0XlN6YHzKmSqrvlv7VCR7sWmbEmXgehdGUzgqjMpLXm358vxkSprCTwnIrCPWtyJtpBxSuB1iuG0yc4DtAe8wQORoNicZRcshEnP9TUXqnWZpQRp3KjgXuhkL9feFpt5VpIA+hTl4BT5sWbOvVQ4NHSMFNwVRcxHvKv6fXCpgGnNzj4zj2QD9nVSWSqJ2VOUSeSXc3i33W5jzvNdRnH0ys2PV09f.o9bLUgy4QnBmIuVKGxlDv16t.jJKYjB7lja.PgZX4PE2Q0iodGO5i.KDUYlVPsYxVok5ZsfdhqtYVQsQhU4gUtHiM4WzmuvhYES0Pw17jTbmrSY5hPhAPhtYLhmGnCcLcDghqzF4NJJhyJNW0pGBJEV2dQN1FImCRYHSikC7DXZAjWCCoI0y3wNeJhYsPCHHunQOpZXWLC0Vcc9RMJSYNTQ94BxozbajC6ELI5k1EbJMbx6Dr1UIgvi5mVbdswY0At8lKGk8GjNx5gjq1jkGUsKAxhHwkahXUTIxBEgx0q024dkSF6Ppi1309q8FIbc3j3aZ4SmNqryLXdf47vHlSUiAomB1oO2id2.BQGrhjmop2vzoxcfXMJ6Ez9HqyCkMQlRCDnKNFp6qmjHKRvUuNMxJKnYpaXmlbf7RMdpXX0t0SWQVtRl6RRbObAZOa2hnAMMlv8aWdvyTF1ZMJ14iMalLtTiMtYQOCC7ggc9mrox0o2xuYXZ+7U9obktr1YcFmhBL0jTQ1VIzjzx2cZ0nFVL0QIZ8hSqjzcyuLTqOkJCwOeGsn+kgNLVGgywSGh1roqG0gwCDBzOBcFAGeXA44CM7rkyUTyfCCSVwJr2Wu.pfqt9blYg74cSAj6T1tq2KnG1Zy7U5WOkc0YXSZZ3dRg1P3f1R9Ea1mVMmUCQab0ghyYSAWjioO6wlIIikQ4N+zUmVmjnjzQ5DUaqKBNSVsqOlP4YjnxtCICNg9L9VwTLEdmbQIUX8UxPhhwYKZIK1io5qqbdM1Ugn0il1d1EoF0dv30acFnk1uYBDSDcpOlJbY.+TXiqhvZ1yddKtNbvs2J6H4JtXGZerCEpZX6OEheIEinJikDpq0czPqWLo4zRP.XckBeVbNo0BGkE0SaYH0nuLvMe7BpnNRj5QB7s4CEAlXY45g4398id7yOTHrLcy9DnENWXurL2zoTjpACshmMzKKgeudCAgjccRgU1hynIB0bTjvAVoxlmNkHtJsJMnJrcfLZckhjU4QcQzySEBj7jr6OyYe3nmHijLiDhHOu4ZQA283RCbshoACBxkWaO3ovwtdG2Y3w1JP.2jnM7wkH5sLkwvmVVSMOQesti655E8joGJOp1OgPTkyh3dZQ0NjyGWlwOet997SmCgpw3nWspQgk+3lyJlAIUa04ZMY737zIQtrhFteg2906vGPiTgnYEPWRQirgSiTYzoBpqZkemKFTA55SjGbl6bNuQX41UcZjkdF6GVOJvScxE2SUGtsU8x9.Z95x4MKoGqpYbY3mDR1oJsDwnRLDIq63fndzdWlEC9Vc3JcriEvM4aYbfErsK6YCwvikP1oKx30.ugsgKaYMVOmmvkjHuINOo4Yp2cqgnGZZ9e5a+cZ5pq4YM+sqT2vwq+6oCpK07qAPFzTOn2ua8faDGVX21UCX3OQoKmwFzm0KZcSoLOFL+sdKeZve12x4W7wF9VagfV7pae4SA3gdEeU6fl94Ukuef+Ue6cepN49ubqSNjm5jCYW9znNzQNeHCNnQcFnEym2dvxxRAZMT.CDj17syUHBySz1YHeZWFK9PJ7bzApnSWr2vFcNb+fCjVtl0JnyMkK4XR0kJ8ZZOQDB765lEFfCytFpgQqFZJxBKBAoPfYK6lNjMMGo2dzaG6QKariiEI8HEHc3FHGMUw4zFEAGBMBr65ofwiKT3hVa.uNTufqcQ6wiGUWcv2ylZeyBbp0FNHUNHWT6OcYnenbOENAThbnuSayHkxADbSSqNXzJSlTMoa+HM9zUrUn11flz8tbpabu4UuilCM4wLJnHCdcg5Jndcf19lqQmSgPhRVidVUfCBSkW2RWxTUomFmAaNkjoT5Ah1tSga6gBsXjCOYc0bCP7GcFyD1VGtRfIrvUoIqZGHVYXiTR8wgTqjdqDM89EoAsCilFYNWmHkBqZ61OeuL.VRJ1aqOmPtY4kUXNr1q5fOOsTzaD6TfJ5vQRTU9qwqtdc2PgDKyTKAY5IJtydsZbfNt5D2U1O0mxLNsopwabHH03X2ApP38SARwnq2Fm0XwRbFbbGS3MVYZ8Ir8pw87CY9ZWz2C5YYiEN6IwDgjalswAdzZTmy8a8Jt3rZKqqKqNwPX2U7qr4WtPwVi.V45CHrBzSvp1Awa8Tf10UNXB1UdZ+dzEQv4ZBwWsQv1lUPtc3rC6g3KttsTNmqp1dZLT4zH+xK0yEysOlnXXxSJi4veyq0WldNL3TohU8Y4UP7fhnHqnLqcHpr1sbUdpVxRygRwsWfMOd8nEJtYVVW+bt7fkLDS9Zq4AkEuxVsDew90XInKwYX2fkHgrjHe9VX1dRmpsVTpnchgyWmt6zlkYgWVe.GgkcUdvUoiNFgazkRM04z6FGVKwTtaZZsUDTxZH00XkAn9RXoAnWtjZrVxcaoQhRiNnspNnycWhgN3xdbeTN59nocmQ1GOAuV0Wv5bdbJJ6Z3IjcwZmnfDzNQWRvojaf2RtXejQi6TYoaqZx0C.2PwlyLi1WEyK5ovh10VdkK29Tm3JrE74BgNsxt8sK46ByjuDKsdxcKvnifmUhldxofUok0TGqmXS85Z79sWfFwAccFHFWMIS4DCAt3fzWGkGAsunnvqBbGmzNdIEFlQnMPwgz2n.RDBJH.hgA76wfXyrEHDt9vmc2KiCwXoZTGL0TzUyxxzFw.qyz3jTKmEZHsr4DnO2PNsKmajxJoRrK0UOuj5xlZNETfOx1tYT1fQdaambLzwssYjC6TBr3uZkjzjDZHN5mjaZg2yCM2eqPk7Bk7TlA7pdbshrsrYxkdKN.sZmeCNBwIH1P4vkyoVnpQxfVQhAGKbVEdYdM4NBFS6LM3k7m3jk4nY4fCNl4Worh0X8gMwWtljSOY4qQ.mdPWCiKbwkEmQpykVbrYkYB8NIWT34gaoqIzC2ZwLeeEQxdTPdA04MUtI5AgFLmG2zm26rmjV3.2JYw3MBdWVDxOwNg22ILs9zo55CwcklKEgh7mxK3VnyluCZZoaodjl7.jcWr5UqqEZZjcZrcWUoWN4PuQvJQWOvaRxsxGaxkQSjj.E8h77zCoCwSHxCnyQ6GFaWnf2pxAuhxoub273i3RUW62wA0eBuRocCGTfjdcy5AMahl.N4JqAldHmoBV1SJKNLTopt0.hj+TvJ507G0ZFNd3xF+J5gbDLSd+46o2ZthWjVKgA6ZceO2tbsfnNSnElvygBwtdIkqBrgdGbEJLM9FCVzbrVAsUqiPKbS5oNjEBOvBaapPTYD.1BhS.JbqC5f+JUQHkMg5p1SBhNhNGzc1dHlfEEEyvSSxXZuqbimfxg8NcVxC5XrB0Tx6qCp3ppBEI56vJhlORp3HUMoJy4H1jTvUIkP2JLosxultuShimCJrGgMlGiBRMJVE06b5pyqILkOJttkeSKqvRG1EhcqaWE.MT.U5ayeBNUiPe84U8VmAcpQEuYGLnSnDlR9XGAOL2ChVq1zLEIO5I2DaePoFpecsjmNJmU+YLyBnqyIRrMq4WxmfYPzBG1.w.ITk4HKELOwXgzXHJAzhIQbRONCDAkKKijQWJzMwbAYKj3gP44XPsGnn2uWbtQ2hkhDzI6G7ZiiAm0OWKSjridq3Fa4qIoainM1GUXalNNmQSNu+neWUT0RJFOlxi1LsTG8kNNdE6.hfWHAeD64FG0AFIwtnF5yVzGyLvnOtDzIYXpBBzNNuqfFJBjBZnYA6t0Ne8wb8LS6VNeYIBuczwBNPTEvKTMgmrrQSzIco3IWGOzIO+BZ4n1htUED4Fa4fVxcIT3hsWCpx3UG5UCI630y5D2WEmmgGJipbFre5N2pVW1t00VVg1G2oG1FckYqHzhyaYXYVpeUF1VnoLtmcIYYseWGOeG8PITPgi9I2NuTV5SEqYrsZ1EdTrUaKnZPrieQvxSbLkQUAkthqiwQuzXZR5pN+ZMqjhzZLFE9UWsGlu0ZsdRX40fn3p9QdIvdQDixjysKKuToyOJIOc334Kkm1XnxKn44TD4Z1cEQH3hAng7CmOhXeRdMOnVpYq8XTOkhkfpSXv0M46B5kGBSGMWYlBeHMgZpyZzjegTjUfN9R0joL1sNt0WjWRbLAb.JZXg4YgrLxFqVUXOeGzZbPmUdKBGPxRYHmSDRVwR3V0CgcYyttNB14NZahM2ZzXPXskU0b2bdoUhKKL.FCuwSCqwKwwcgTokJO4aIIpkxVdxTlvs9vN1kqkJthQgSdzbzJrhW1Adc+b8qIh9b5PngrqbFMPq7y4Tqj5z0WPCA5+RQtfmFZdsEg9wauXDmvq6ah82rsjutRjVtXDrmSv0CIKVO4gimSovts3fNE+9oVPmtbC6vOxSuekn3XDns5s6GCWfr8PiTZEoxU+MJ6XowOTkD6YOrwWlrN1pZOmnmFm1wSjDhKkWs35THypnKAyI1XvsEhJTqbuwdPeEFVHK4gQYhAsqT.hdJ2DnwiaIvddEWFrBlDUh+j3d3EcHN0XYdrWQiOlMmek+z.GxU677QuUUq6w4GiMOcFYPcNt19VW7M7mWUmclskh1ZAdUxAJRQyzc0HBFDmnVMhorYe7.ipK5UmSBPbtnNhdRqWz3gCExpOl22Rj2fKOFkBsqkMW+J0U50cmqIMLW2zkMFDsTOftneKJVDUJJbzhfE3cdbHmyOraWBmZ.13YVW+BZf5t6RbKKEiHquFpA2kX3Ph5dVKLDgyLm2fvr2fmi10HcqI1XeTK5H5tUI3xm52SottNvBTAhkq2US4fzYZ6zBHsKWaBX8w40Vfui0b91M9WwP3fhcohHI8xTJ1Vd.NbTe25EA6uJFxFv2NwzIunwtEwSpJf8rZEwYJPWgJkvKN6A8hls9q9tMak4VFUlcq0lensa8y91++S6Vu3EF9Sd3EF9W9VC253p12OyCu7WohV+5.aW+W8JCef169r+m+EuksDPQQKTtcp+pZvMOyw6Hgg+5Yfe7UeyW7E+xe4Lc+.+5augwY9CwMswEgybKAHq.vdyW3VVzzNq2tdV9yu4xY+5Y2+1ngB8ae+6y7ce4KeUleIP5um2lGeIl6i8uVUV2BjvS.DHC1mVt28kFe.guVLs2dgm+Qkg4Ko5KeTKE7am0F4Oy1ssyNaVkcge1rq9yZhJ6x7lY648Kq8yK68m4d6kaBLHyJKftwoTv8L9rMYVjcyr6Ww6W72uve0WOqqweVb6r2E29yalYO6IP7UOInhx1udFvc0k6+ABMFPeVsus238SDWT.ryOfR6BumDrWbsuaa1HzGw1pcOw+Zfj37ChK78d2GZ0+pY+0+0eOSC8QTpu5KlAt9My9gP66df3e02gXfG3C7geWr9JW6G.zWM22GJ+iR3yP7UT9M2O38+.3l10E6lNqwtHtcDDL36l1L6cU0wfrgYskytoIkY.uQvrlxb+1naIL.u2UPRV3ChGL069q9t146U5u5ARtcw9fjftW1u6K400U0+Uef6DHXPLyLuGD0r+1+l+iO.oWD4T.pyM6m+gIN+7aA9OqVe.hduO3OJbdg65GLVdUB3y.4Yv7ncVzOqxu9WMyMyGDVXmkMyoqsE.hYN9AfyaMq1On1u4l88Y1hKx.q8rftB213xhG38dz8t6yUdu176d9udR+eu5W8AZ9SW2ONzCkAnyxXerPv6dgB76+9UEPBbKnFyiZB.tMwd2t+dI+o0h6Yi4ddd.be88Vxud1nVYyWOyEXbt88a7oztrR.EybZKdQIQPAsGE3CR5Ac9adEe.NfZ7A95V+g1u7g07SQx.XdD3O0rie4CX8SM+0Xu1naRf7SJhH+3vnan.k5iSxMMqtLi8Qiw6d1p7Zpq8A6hWbioOtWC3t9E+hewLsxptr6cVf.u6235oDuFf+AjmeqJ7GlTciyu3C8dUOJomHtATj4A+yKhNecM.PAw262.SsAruKv289cXuU65I4caxmBAefiQ.sHvOJjag1OJBnL+BPSLy90+5YvODq769TY2+s+m9u8+5+w+9YJkentGT1A1tIt3d8+kanC8x73GLxOb+u+Kdpx4sy3.3qtrKL5d65yh8dJ.I0frP.1g+lYwy9mO60nFL174eHpe1Bc6vb.Nejk+Ew+KeT6ebkY+fDuaKkusazyH3K9gkqb67GLsE+1ub17Ywe8rOzq8oRbdDfeLJ9N4MuNm4iMwSIKnveT9dchxKsBFs2Ja9DnANQO+g6O8v8kkerXzM+5iVIO6V6WI+aC.VjKR2yIX64u4iN86cF29qWigGpw9bIqYkcs2urkObJpGcntkU..ANGj+W7GIKur3o7fGbQuTkGmM+WOCC+UggeXb9+4+sfvRaOv9U27oePhxbvfejz99mNAwsP9e+8Ge7VIim.xSlum0wOVUgOD2u64MI+Zvwfx57epHw8aM+vHOkV87QQZqiCCAmCrrHab10HvYRq.6HBNr+KqeD6cyU8r3esS7kkMby.Grw26Qu22kgW3L+.q3e3+5+t+6.0OCb1Sfg7IK1u5dS5Kj5S9lWTGq4VcrG36I6w6..9w35mJcd+AFZd2qEEvv+oJ09H8Ok18cK29hC37MebE5+v+lYbwMU.Td67a2S+she0+pmhSdFEuzmpT15qVbeA9e5GapffO5bOFTmAZR5iM8s9Oq+9X7cEc4N90uHx4dBAcI95uey29C662z8g5dufvxBIvwcUq7K9Tefs28XwxaeemOhJ.os22j5+3GaR026oMJu6Ve0fg+f8Ou6d7+x1hu6Gnr9G81WcnxOhfrjt+USBZC9QjBPO3PYsw2LLugyuO10+gdp+oukyuIssr5dU4wr.Pa++8UYFd+5u5aGe9l+Fwu89J3OOv2V8sOTy98jj9s28hU9O8uWp96W1+0MuXYuS5GxxdqzF3bZw2huN8xGFwG4YO7yd61Rua4au9am91WX9iS.Dxqd9C2dFCfcYZGe0GY7m8888d+I+fp+9+du+gB2+x2pE25F8ww6m8Qv6s36+eLde7yS+u3s7AAfJiuGr+j2t53262h9+2AJ5f8jAE81ZC1dADL8VktbixtZWe.RJ.kLuUH4Me1sbyGtG9182rLF9Ed2ey+av0iShb69273jHOM4c41t0k+V2GRtu8Qg+mc+H.LUb+ik6m91s2teFx2MS91tG+VW2WKpuCin+XYD6GKi3+XYj3GKij+XYbwOVFo9iy3sG3GcWaY9CoS2c2VM96q79l277+0Cdyme2+G.L6A22.
        

        @toolife said in Midi Seq and Track to Display in Ui:

        I try so Hard but noting Seen to be work although the code has no error.

        Content.makeFrontInterface(600, 600);
        
        // Reference existing components
        const var midiPlayer = Synth.getMidiPlayer("MIDI Player1");
        const var sequenceViewport = Content.getComponent("SequenceViewport");
        const var trackViewport = Content.getComponent("TrackViewport");
        
        // Get the actual panel we should add/remove children on.
        // If the component has getContentComponent(), use it (it's a Viewport).
        // If not, assume the component is already the inner panel and use it directly.
        const var sequencePanel = isDefined(sequenceViewport) && isDefined(sequenceViewport.getContentComponent)
            ? sequenceViewport.getContentComponent()
            : sequenceViewport;
        
        const var trackPanel = isDefined(trackViewport) && isDefined(trackViewport.getContentComponent)
            ? trackViewport.getContentComponent()
            : trackViewport;
            
            // Quick sanity checks (prints to console if something is wrong)
            if (!isDefined(sequencePanel))
                Console.print("ERROR: sequencePanel is not defined — check component name 'SequenceViewport'");
            
            if (!isDefined(trackPanel))
                Console.print("ERROR: trackPanel is not defined — check component name 'TrackViewport'");
                
                // Helper: clear all buttons before refreshing
                inline function clearPanel(panel)
                {
                    if (isDefined(panel))
                        panel.removeAllChildren();
                }
                
                // Helper: create a button inside a panel
                inline function createButton(panel, name, yPos, callback)
                {
                    local btn = Content.addButton(name, panel);
                    btn.set("text", name);
                    btn.set("x", 10);
                    btn.set("y", yPos);
                    btn.set("width", 160);
                    btn.set("height", 28);
                    btn.setControlCallback(callback);
                    return btn;
                }
                
         // --- Populate all MIDI sequences into the SequenceViewport ---
        inline function populateSequences()
        {
            clearPanel(sequencePanel);
        
            local seqList = midiPlayer.getSequenceList();
            local y = 10;
        
            if (seqList.length == 0)
            {
                Console.print("⚠️ No MIDI sequences found in the MIDI Player1.");
                return;
            }
        
            // Loop through all sequences
            for (i = 0; i < seqList.length; i++)
            {
                local seqName = seqList[i];
        
                // Create a button for each sequence
                local btn = Content.addButton("SeqBtn_" + i, sequencePanel);
                btn.set("text", seqName);
                btn.set("x", 10);
                btn.set("y", y);
                btn.set("width", 200);
                btn.set("height", 28);
        
                // Store sequence index and name inside the button data
                btn.data.seqIndex = i;
                btn.data.seqName = seqName;
        
                // Define callback outside of the local scope issue
                btn.setControlCallback(onSequenceButton);
        
                y += 34;
            }
        
            Console.print("✅ Loaded " + seqList.length + " sequences into the viewport.");
        }
        
        // --- Sequence button callback ---
        inline function onSequenceButton(component, value)
        {
            if (!value) return; 
            // trigger only when pressed
        
            local idx = component.data.seqIndex;
            local clickedName = component.data.seqName;
        
            Console.print("🎵 Selected sequence: " + clickedName);
        
            midiPlayer.setSelectedSequence(idx);
            populateTracks(clickedName);
        }
        
        inline function populateTracks(seqName)
        {
            clearPanel(trackPanel);
            Console.print("📂 Displaying tracks for: " + seqName);
        }
        
        1 Reply Last reply Reply Quote 0
        • T
          toolife
          last edited by

          please i need help here

          HiseSnippet 1757.3ocsX0sbaSDEVJohRMDFJCO.K9hNx8GirSSoMg.o0woXZRim3PKyjloyVoUwKUdWgzp15ISdEf63VdJfgK4YgW.5a.bNq92IoMMCXeg0t64rmuyu5b7vHoKKNVFYX1X2ogLCyOzZzTgZbuwTtvXv5FlWzRgeLt2zPZbLyyvzb96iGZdoKXn+75u9dz.pvkUtkgwijbW1l7IbU4tCW6A7ffMndrc4SpP8MWafqTzSFHS.fLukiQH084zCXOjhjMmkw2PiGaXdUqtc8cusiysWbwkbnzE8nza1gs3cX92x2cIm6338rkbfu2xv7856wUxnQJphEaXdg6I8lNZr7khTA7HdL+YALbQGiQfjS2dCYfGph3tF8FyC7FlaghMfaYXo8Z9T60mZsE2iWreoc6i0GPJ4npAzbt2D7571gmyIAu4p.uKl6N0vKfNkEog0GYs0f0GPR2oSMP0KIJhITiX+XBaFuY1Q6FA9kpN9Mkxv9BJ.Uupai29y.RGExpef470064Oa58w0UCTs1fGvvmqn1WHUsur0H2Hdnp7DT2+.qABEKxmBJWUEOkVi4tZCqdRfBgp8D5yYaDAKJ3v9VNNWmrjiSqUVnwBM97OmbiabCRO4jPo.3HFWtPCHNNVQdAMhfl4LqLYUhNop8ALUo6vtYUOQS7ZK49Qb1KCkQpNDBvcNp.9KDncyBZNEd6dF3sayZpync6OjzYYxNLpGovDS7w3tnY0vg6r821u2tOc8A6.xAobzzXEaBJJcjJnhGlSzFau45824nYfJZAd5Nau8tZnV4B0vEc530BVpbnjAWMfuOSQnAADeMF4BhZLKCpUkwjB0X0R4U692jGqrqCLOphBze3QqPZfxBWuWbVlAVVZe3z8TX9.tJtc616mAKLmfPEdDWYP.yUQjhfoj1.LRQ5BM7kQDaTJb3RbVA94KKQY6.l3.0XX2qcsVKz3vEZ.1FMl7ApKHaO99ZKAdH2mX62lGqsUsHW4JDesO.V1+UfyOlKE1sZqjaJeIKpGMFoZ0UIMgaqYqz6HSN4xBTUTu.IVbU35GyUikIpJ25Jk7kaiJLOM00KHcZdcR1icKebwl6C11bdKd.LfgAP513zPNsENNUFGsPiilMVs6xj6k.tQhKTP4.YzTR.3LmMRM6PtNFXOzvcRtfmylNq0GEaIysCShGaijAV+im2r3xjgxvj.fdvSGgxNKKKEOnapxkkJIxWQbxDTQ9b6XFjhxgToXvdUgkePxE1MehnYKT5rfX1ajylOTpi3yxP7kIBumHruqmWZ3HjxLaNdqSndvMWlzCxyvB5YU43h.t.TxDgqBhBfH7BDfkahjA1t40ZtN3ABRXkgxARWZPo+Z0JJ3dZR2ekxv5OKmtVjHlJIRTDzCBJVFvZGFwwBZu9W+oeiLhgIbLORdl5xjljqUHqVELqSSoHcYLTjdBFEUlUKsxbUPmSNZwN0pI1Ep10HMaqSwpnPUuh1rWAAqw1sNdNXk2dzN.Pp9hqxa0DuYLEnlApDp40jVk7X6V47eT5OkwRGdp2qVqERUZfzxmr.RBBFRUiqIfBaN9ldBGdWoNsVmpVO.ta8.XcEkby49yD9ej1aVKzOK3KOZ093wk0hte7XlfPy.COtLZ3sDj28cHHud7cIZAa0iPVrakGtmxBp5.O4Z990SIlwi7W+xu+2+wOWF1q0jTGi9df.PhejbRdVPsDf9uhNID7nTs5sLIVQgJUgYstkRV0vPv9l2W2PYLGYx1I2KWiP7hxI093tptuYWU2JtpJF+GJUrsgW3z3vFWpwQMHydju+IdV1kE.MibRGiChD8lXzVjL4YrnbGbNgPml06j05r0IqaZ2XUHTJFH3psCYhSarCirV3fm9tAqCAFPq9lY6AzExhTbDBlqydALzUZGvWxZcV7yUxPXrfh99fsU5S+jr9iYd4VcCtG1fbQ.pwqJ6a+AqMsXwZCW6kbO03xM7WaLiev3x47F9h0Rh0MUAXZNctrgYSqd4kE6zn3wtkOtnQL8ErAhgQLH7.aK23bf6tUv8eF9e.tur0.LSpiaC8uccONLO93GvreROrQf5CDhiMmc.DiUaDDbLCniJ0zZSKc1mRz4LOD6YEtW1ZHW4N9jw6bm.dwAP+eFuYybufUeeenhWIXuf0Fe+4c.62AnrCz6KWbvVTUDGhyrdXxjQxjHWFfDg.dGJrm4bXFa5ZGbMZYFwDd5E+C7I6vN3ZyrC6jenwDpaj7otoUevo5ee8N.lD5+MjKYsEtlzwPWQpp8GGN3ott0upiwX2yKiKddY7lmWFW57x3sNuL9EmWFu8amQrW66lnjSRSmLL1ZXec4bSyh+CEnbx+BjQpetG

          1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @toolife
            last edited by

            @toolife said in Midi Seq and Track to Display in Ui:

            Console.print("⚠️ No MIDI sequences found in

            Is this AI generated?

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

            T 1 Reply Last reply Reply Quote 1
            • HISEnbergH
              HISEnberg @toolife
              last edited by

              @toolife What are you trying to achieve? Just display the MIDI Player on the UI? If so you can use a floatingTile and set the ContentType to MidiOverlayPanel.

              There's also some examples online about displaying it in a Panel:
              https://forum.hise.audio/topic/13081/midi-player-overlay-panel-laf/4
              https://docs.hise.dev/tutorials/midi/index.html

              T 1 Reply Last reply Reply Quote 1
              • T
                toolife @d.healey
                last edited by

                @d-healey yes

                1 Reply Last reply Reply Quote 0
                • T
                  toolife @HISEnberg
                  last edited by

                  @HISEnberg i want midiplayer to select the sequencer and the tracks with difference like 12 seq and the tracks

                  1 Reply Last reply Reply Quote 0
                  • T
                    toolife
                    last edited by

                    even this type i can not figure it

                    HiseSnippet 1736.3ocsXssbaSDFVJIhRLGFJCO.KdX5HSac8gjPaBARiiSwPRim3PJyjlIyFoUwKQdWgzpz5ISdEf63VdJfgK4sf64Ef9F.+6pSqbcCgLsNyDqc+O88eZ0+59gbGRTDOzvrxdiCHFluq0fwLwvNCwTlQuMLLugkP9wX8wA3nHhqgo4rORRzb94LTedwWtN1GybHEaYXrOm5P1hNhJJ1s+ZeC02eSrKYO5HMtWXsdNbVGtOOF.xrVMLBvNmhOg7XrjsYrL9JbzPCyO0pUKOm62nw8a2dwFXbaWLdglj1Of3sjmyhMdPC2iWrA72RFluUWWpfGNPfEjHCy4Vm6NdvP9yXIFXeZD8XehbQSiAfkS1dStuqzEk6ZzYH02seVDJx.zR+h30rIwqOxZapKMe+h31GnHfJjPO.ZNSY3MaI30TGdMzf2TfzLZP5FYoPEj7wiIgJn79Va2aidnjcZVBHchCCILw.xODSlHClRZuPHWnmr2hyC5xv.7b02Vp8iAVGDPJSvb1qru17R8UCoasI0mHeVysmKwsuo0.mPZfnfhz2eGqdLAIzCCNmtimvqwL+47Vc3.GLQ8Q3SIaFBKxkvdoFMtCZwFMpsRkJ26dn6d26h5vGEvY.+QxkUfB2HA5LbHRFiSCwnUQptn5mPDE4B6p5ogpfNKDdeJ4YA7PQSDBDNCQf34lytZNOSWzVWAQaUUySFrW29nlKi1kfcQ4wVjmrGHbBmq+t670c6r2QazaWvHRFGLNRPFIsipoA7tyyXZyc1Zit6dQYXJ88i1cmc1SASM8ofpLWK0JDix.hBpRr9Hh.g88QdJ3QYHwPRJJAxEVXTtKrZg0Jo8snQB6RnxEKv.6mewJHksjqOHJsaPd7yg.0CDxd.4pn50qenhQYW.BybQNbeehi.wY9iQ0ALjfyJd7PjszDTPCMVA95yKPXceB6DwPX2ae6ZUNuBDSTvwC3MmoCnGBQ.IIpGx1qNMREgpgt0sPdp.Orr6ygzcDkyrqUWv2h+LRXGbjjqUWEUEzU0ZJUjXiL6.dnzc.qkqH45mPEC4wBMctRtXYQl7fR0G5Ex6SBcZV8Nn7EszWzt5gPbMSC4O.gu.en8ZXRklJ5FondQkKJWd1ZYz5wP1C4.GdbBObLxGxgSTblRipx7G.AsoE6OkLdhvtzfEhVOHNZnsjKHtOYWR6kQ84Aw9.2P5MTZ2zNJETj4GMMkXEzWfZjXj7F25QDnYjB8MQPXRShumSY1UeJqZMvxD+HxkIWQfG8TFJOvqun8SQUuyjNwBKi5.8QxCoSN6hx7oLvghYNBHaCkv4VTdLRH221I6Lj6.QZ+XRVwpO2A6WjTVUyYNPw3gqjW49wYrUCERDwgrzpZvFQbeR8fPp7LpW7K+3uhFPjMSDWTVO3xnpnamanZohpZ.wRtRYOuwCNePvQZGzpA2Ltkk6uxyHrycpaipVW0.U3J5ZnN44PoXjcsIavzdQPce.kJspKoVW0Dw.oSAdizkKYJsdT6Zoheg5+4EKm+pzoxaYbAbjYLyc4oq7Xe+9XwPMkmEmkuoFQg21oZSUsekJNaUt3TcLQVH7vxE1W.YuR0zoUYYUk1ubAnVM7SFRXHbJLnQE49KuTt0UtTtbUbAPg3y9RArqkVTmHgziAQxb3CKU2OQN3u94e6u+8epn5V4DIoBkZfRMDz5NJqXWqNu6ywiBfLHV4XKihDX3TmfzospLYAGDUylDqOOhJkwtQZRsDeR0jwo8DImVWdxoUQxQKf+XtfrC7JCHrNObLNZRRddSkVpt7gIHlFY4MEBuLAsYwiNlDpkTULBiEVdrSqq1XmNIyOowHm0iQE6DPXup6EXjNzE7z21aCnd.lK2LcOfu.RnfJgf4FjyfaEkLt57VaPhNUvCfY3ymTC1Vnn9goCyRbyB5FTW4zr4kkFOuXH6uYsw4KVq+ZOi5JFVrg2ZCIzSFVbQr9msVbjZXnDOR06ZX9IVEuXoh16UJdtMxHBeFoGqeHApPxFT++O5aog9+H30B5uoUOYmTSmJpua4LMn9x2Z.tlF2U9h8x2cSdC2TBP0VoaNHuc.LcjXboK4755BcWUHdSq9TgyvoiwYlBFk2U7M.FSuF76Y00yCNaq.fyYs428l4NuF6BynRYmrMVDRg5HqGGOZ.ONzg.Vmwf2HB6YNiruLYcC4ZYDX.g4pV7OvmThMkqMSI1LinwHrSH+HmjyXjWz9sU6.Xho9QIl2Za4ZTSC04N5wY4.7G43TVUujfsttB195J3BWWAW75J3RWWA+rqqf2++VP4ELeXrfOJoswvX69cUGZaZl+yZXNqw+xUjQhC

                    HISEnbergH 1 Reply Last reply Reply Quote 0
                    • HISEnbergH
                      HISEnberg @toolife
                      last edited by

                      @toolife AI isn't going to help you here either (the code your sharing is more confusing than it is helpful). It would be better to start from the documentation and exploring examples.

                      You really don't need code for a lot of what you are trying to achieve. Start small and build up from there.

                      HiseSnippet 1454.3oc6WszaabCDlqs2zXk9HosG5Qg.D.mV2Uue3VfVoUqjsrdsUR1RIGZ.0tTRzZWx0borrZP.5w7anGKP+SzS8mT9GjRtqjkTpShgQCPOTcQb9FNjyvONCm0jQsP99TFPIR24dHfxGq1YNgOtzXHl.pZ.T9T0FPeNhEMDRetGz2GYCTT19PIfxt6.B98peTG5.IVnUP.voTrEpN1EyWgZVnF1woBzF0E6t1rSWnpEkTh5PmJ7msUiC7fVSfiPMgxoskJ3Hn+XfxWqdP5bYGjyJexznDGDOa9AIfoQYSirRkOm8fCRiRkIdh3wg.k6T1FyorNbHG4CT1QmZOuyX5LR3FbJ1GOvAIER.5H14P3JTGaYHJQAkFicrMWdP4CDqh4pissCO19R0FXa7U3qN9tefhnqrX8CPks1z81dC2Kway8tFWZq0boOZISF3RNv4HVfqbW0EBq6BklxXHBuC57onM4tBKT0kIXg0o45TpWYBT3X1qCKW7Aho1wCsoBks+WJJAx.pB1AIi3sWJHFJiNw0CCHWP4+tZhD4zHcyVKeoKyMogll9o0KOTKyrit3nyyVRWGahm0sbMKL+v4MxZTiTqzQtyZUijqaesyxT7PRwLVZNiqXvNs8gicFerd+1buwMMHsyzdvkYexAUQ8OH+g06glk8IkazaVqQ5MpnUYRM3AI6gKqoqY7KOcDJkoVMX4lEKddiRFGSZ119hN40.R2N7R8OoF6DeDyOFhQP97XFH+IbpWrhSswzncftdhnMV934i1l533GSGxhlLPlIki9sQGHQD+uWpGq4hkbpLqpCdDAxmxDawcZN0UXl+JJYqBMotXgd4skkf2ufAhbcvR5VPcL9540g2A1fl6hb8nRf+D7aOR4WgE.uMF5ODLzAKXH8zwkLTuAkGqkoZQACU6X1vAmMaT2Fo6bblDylcdN5j9lsscv8a8Typ5yKNraqKzsYGmnRpyHPJsZ0ZM5wlLrnkwfiO+jx0q2qWt4zL4aU5n7o6kxZ5LZFt87Teild4yzZZhal2sRWS8C0LMKVztTxR8qepQiy6O3DSqyxMzMSwOLjT5+mj9.QR6+FjTc7.FjMOVIn0XA6bT0NkiwEQ++QN+CA94Bf0JbuSXg6Gn1whg83qzHIl6oVkHdFdHTTjd8B3gyEn7WpknhIP3ZtvInJLgvUFrWp3w2OZx3we72ObJwhiojnTRSJG0hr2ii77H6F4EQh9lpFN7Z0I2F48ZD6ZUKOXYuKC2iL0c.hsezKfNSQWMQQ3u4yD24l8LgUXTu1DojpDLukGZg7690bvhiMwSJJK7PwT4ALw8WvDkntCn5zKAxqN2ScoXBPPHr9alfSpFj9rXwDqqXu7PLNVFRJFnKD8CERy6ptnNhHoSrhdThzKTtGeQCEgacEGJjiIi5JSQka+motNTBvkq19env7UBMKLCayEsKop7Jg3XDdzXtTxdULG5HedPiBst.wDufaBIHGvfQKaCa26Hl9ijKHVj8rB8ku7kudSzjRXCCi.3vZHUUedjnQe3UG2Use32IDC5B4g6KUUkXitT.lHPRvTNzY8nrI9hV+PB7gPGeTjWH83qNgt6MjbtTFsBSAykC9Bw.WX.1Vhgdq7o05LxCxDESDYMRzGn9lMGICVAM9UpKQhlHxUCSFAbMIyh9+n1Scj0KVuoPYqyKTHRN1HgVl0R7w74azC0MuSw3u6dntgt3CTMwbqwWuOt003ixlP+.3iK5u9STKObHxhuxA2QsR+aayzumsuMcpL+pAjyvxKLh2F5HtfagD6NQjd3u7RzB43RY4IPGDwNP30heKTlPJqrPYhkJEWEsXzmYEVvQ1O6cCPD9DI34rcEe1kPN5+rFCP7.F9YVVatT+CCSdaML0s0vz2VCybaML6s0vb2VCy+9MTVLs3TN0MLsQ7UKlkCKGpb0WMorM3uAvTY0vI
                      
                      T 1 Reply Last reply Reply Quote 1
                      • T
                        toolife @HISEnberg
                        last edited by

                        @HISEnberg ok but i think there a way to make viewport and display both seq and track in order to select difference seq and difference tracks in midiplayer

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

                        14

                        Online

                        2.0k

                        Users

                        12.7k

                        Topics

                        110.5k

                        Posts