HISE Logo Forum
    • Categories
    • Register
    • Login

    onNoteOn: Engage multiple MIDI events

    Scheduled Pinned Locked Moved Scripting
    onnoteonmidimultiple events
    5 Posts 2 Posters 302 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.
    • trillbillyT
      trillbilly
      last edited by

      Hey Gang,

      How can I engage multiple MIDI Events with a single MIDI note?

      Im trying to create a one-touch drum generator. I have samples loaded on C,D,E,F,G & A. When I press B, I would like it to engage the previous keys as well.

      I see how I can do it with a button on the GUI, but how can I do it via onNoteOn so its engaged via MIDI?

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

        @trillbilly said in onNoteOn: Engage multiple MIDI events:

        I see how I can do it with a button on the GUI, but how can I do it via onNoteOn so its engaged via MIDI?

        Same way you do it for a button. Just use the note on callback instead of the button's callback.

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        trillbillyT 1 Reply Last reply Reply Quote 0
        • trillbillyT
          trillbilly @d.healey
          last edited by

          @d-healey Hi David. Thanks but I couldn't get that to work.

          I forgot to note that all of the individual drum sounds are in their own sampler. So I have 6 samplers total that I'm trying to engage with MIDI #71.

          Here is the original from an old chord gen project:

          inline function onCHORD1Control(component, value)
          {
          	if (value)
          	    {
          	    Synth.playNote(60, 64);
          	    Synth.playNote(64, 64);
          	    Synth.playNote(67, 64);
          	    Synth.playNote(48, 64);
          	    Synth.playNote(36, 64);
          	    
          	    }
          	else
          	    Engine.allNotesOff();
              
          };
          
          Content.getComponent("CHORD1").setControlCallback(onCHORD1Control);
          

          Here is what I used in my onNoteOn:

          	if (Message.getNoteNumber() = 71)
          	    {
          	    Synth.playNote(60, 64);
          	    Synth.playNote(62, 64);
          	    Synth.playNote(64, 64);
          	    Synth.playNote(65, 64);
          	    Synth.playNote(67, 64);
          	    Synth.playNote(69, 64);
          	    
          	    }
          	else
          	    Engine.allNotesOff();
          

          I have a feeling this is way off.

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

            Take advantage of HISE's modularity. Note triggering should not be done from your UI script, this script should be deferred and the MIDI stuff handled by other, non-deferred, scripts.

            In this snippet I'm using sine wave gens instead of samplers. Each sine wave generator has a script called noteSetter. The script has two knobs, trigger and note. Set the trigger to 71, all other notes will be ignored, and set the note to the note number you want to play.

            This works by redirecting the incoming note number using Message.setNoteNumber.

            HiseSnippet 1232.3oc6YstaaaCElxNLX1YMXsnXX+TnX+vAHHvNqWFPPPct3TXz5DuH2r8u.FoisIrDolDsa7F1qwdcVA1KvdT5av1gRxQxIZINdcqoc1+PP7bg7biemifaGHsgvPY.wnTmw9.w3yoViEp960mwEjl6SLVk1hEpf.yXR6N1mEFBNDCihuPSvnzRjneu646xbYBaHkDgbhjaCuh6wUoTaW+kbW2CXNPGtWFoeb8l1RwdRW4PzdJRqR7Y1CX8fCYZwJPIFK2vgqjAVJlBBQY1U5L1pu7MhX4OgGxOyEzKpQrvMJlLYu9bWm1S70PBtQsS87hwd9Cos3N7KnmFA9hHFloZjMFXT35LoZ2BSxHiIsTrIcepkc.2WkxQaOqPaJvDRWFFpyZJwxRLdKcOIJfPsgGa.bP.t3BEp7zpUW2Der1VcGJrUbovTJNTpfiDUVq7OWtT4eor4kY0sat7zGSfz0EBxksN6FbcJVQLz6LHXcyQL2gvEBht+zwzkmsXpcrWmQPonofqNxGRVefz0QGqzue0L.IIrgu85l6yTLcRIgFJmODn3ZywXeXDVUGmhJQ2GBGnj9Xc8UxeXkizYnKSMc4j9dSBCLdLUNTmnDgb03r2qtE0XUu1ZrY0DuOsMWY2OearPN1HFo92vFStYdOZitcAaUpAtD8feXduFN6G+pwG+JTKt.hfEiN7uLZs42yFAlu.DPfN3U6ZPF+iYEYzelQFOxVgGem.lHzWFN0FaAd7NRgNJjR70gHP.7iGqylYoumjEjKq287CPmLWcrXpgAQkE63IGJTSUFTb57vRy1U2ouQjQ9bvIW5C.zc02SP22iJP7TKPgvwUyC7tvuaPwTcnxbf3rNA7d8vNuaaNAPm437Rg7rJOJg0iV2DgyQv7xohuQHnNlI5AUPV017Y3Cje4K1UMhddaolNte0dR5NpIk6182z6f20rRKzawd1azCTZVGFAwWYMys2NiKo4dhFzuxZqUtToI5DNkNSLfLxtU4RfaHjQEdOgL.ZLBckJp.rKxV2AafQee0.65ZZYTHwpPQUQ0fqlTCZ4xcf.BGKzVlpiGjH6M8d6g0IyftknIYuKo9a+t5yUCSsA64iHUZHjUtIS9bLLZ7q3wMV+h9bCUi0wvko55WhG2wwEZKwFS5FVo.Y+FN8puE+mfrfadrySs+SqGNraW94QyX1k65EpPanoGVeQLd.EwNMcftrgtJyvAHxhKWL.b5HijmLSNQZr67Il+cM+3t+3KSgyVZhMZw87cgFhQfKVxEYiO.qwh7yITmt6bKoP52WJ31YaccLnRRQYr8bcncTJ7CSRo7v5GCt.Kaa3ut9qv1mr.LNAyYr31+4B4lu9JZr4ZpQyL+3cryheZO14wxgJtnWKFVDpgHvdfV3zd1.d5BA1zSiVTPi2Gut5DzCKP3Ds3OweILqoWajvr1Dly6nsatXz17Fsk9Obz1iFAAi3vaR+nzpeJOtasEi6tXb26Fi619C+3tKOOi6dii+sXVzOBlEcyEyhtXVz+2OK5+EmgGyNPdpcLTutN8yhnf9sH5eTpDskdsYsK2ffnQ93mZaO8VcEE2bdU7alWEe77p3SlWEe57p3ylWE+1aVQ8Xt6LTI8huZRHsZ2HpirgQCACqxitQP9KPdFlyA
            

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            trillbillyT 1 Reply Last reply Reply Quote 0
            • trillbillyT
              trillbilly @d.healey
              last edited by

              @d-healey said in onNoteOn: Engage multiple MIDI events:

              HiseSnippet 1232.3oc6YstaaaCElxNLX1YMXsnXX+TnX+vAHHvNqWFPPPct3TXz5DuH2r8u.FoisIrDolDsa7F1qwdcVA1KvdT5av1gRxQxIZINdcqoc1+PP7bg7biemifaGHsgvPY.wnTmw9.w3yoViEp960mwEjl6SLVk1hEpf.yXR6N1mEFBNDCihuPSvnzRjneu646xbYBaHkDgbhjaCuh6wUoTaW+kbW2CXNPGtWFoeb8l1RwdRW4PzdJRqR7Y1CX8fCYZwJPIFK2vgqjAVJlBBQY1U5L1pu7MhX4OgGxOyEzKpQrvMJlLYu9bWm1S70PBtQsS87hwd9Cos3N7KnmFA9hHFloZjMFXT35LoZ2BSxHiIsTrIcepkc.2WkxQaOqPaJvDRWFFpyZJwxRLdKcOIJfPsgGa.bP.t3BEp7zpUW2Der1VcGJrUbovTJNTpfiDUVq7OWtT4eor4kY0sat7zGSfz0EBxksN6FbcJVQLz6LHXcyQL2gvEBht+zwzkmsXpcrWmQPonofqNxGRVefz0QGqzue0L.IIrgu85l6yTLcRIgFJmODn3ZywXeXDVUGmhJQ2GBGnj9Xc8UxeXkizYnKSMc4j9dSBCLdLUNTmnDgb03r2qtE0XUu1ZrY0DuOsMWY2OearPN1HFo92vFStYdOZitcAaUpAtD8feXduFN6G+pwG+JTKt.hfEiN7uLZs42yFAlu.DPfN3U6ZPF+iYEYzelQFOxVgGem.lHzWFN0FaAd7NRgNJjR70gHP.7iGqylYoumjEjKq287CPmLWcrXpgAQkE63IGJTSUFTb57vRy1U2ouQjQ9bvIW5C.zc02SP22iJP7TKPgvwUyC7tvuaPwTcnxbf3rNA7d8vNuaaNAPm437Rg7rJOJg0iV2DgyQv7xohuQHnNlI5AUPV017Y3Cje4K1UMhddaolNte0dR5NpIk6182z6f20rRKzawd1azCTZVGFAwWYMys2NiKo4dhFzuxZqUtToI5DNkNSLfLxtU4RfaHjQEdOgL.ZLBckJp.rKxV2AafQee0.65ZZYTHwpPQUQ0fqlTCZ4xcf.BGKzVlpiGjH6M8d6g0IyftknIYuKo9a+t5yUCSsA64iHUZHjUtIS9bLLZ7q3wMV+h9bCUi0wvko55WhG2wwEZKwFS5FVo.Y+FN8puE+mfrfadrySs+SqGNraW94QyX1k65EpPanoGVeQLd.EwNMcftrgtJyvAHxhKWL.b5HijmLSNQZr67Il+cM+3t+3KSgyVZhMZw87cgFhQfKVxEYiO.qwh7yITmt6bKoP52WJ31YaccLnRRQYr8bcncTJ7CSRo7v5GCt.Kaa3ut9qv1mr.LNAyYr31+4B4lu9JZr4ZpQyL+3cryheZO14wxgJtnWKFVDpgHvdfV3zd1.d5BA1zSiVTPi2Gut5DzCKP3Ds3OweILqoWajvr1Dly6nsatXz17Fsk9Obz1iFAAi3vaR+nzpeJOtasEi6tXb26Fi619C+3tKOOi6dii+sXVzOBlEcyEyhtXVz+2OK5+EmgGyNPdpcLTutN8yhnf9sH5eTpDskdsYsK2ffnQ93mZaO8VcEE2bdU7alWEe77p3SlWEe57p3ylWE+1aVQ8Xt6LTI8huZRHsZ2HpirgQCACqxitQP9KPdFlyA

              Ahhh, ok I see now. Thank you and best!

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

              53

              Online

              1.7k

              Users

              11.7k

              Topics

              102.1k

              Posts