chord pad



  • Hello family πŸ˜‰
    I would like to integrate in my plugin, a kind of pad which would allow to directly play a whole bunch of chords.
    so for now I'm using (if (value)
    {
    Synth.playNote (87, 64);
    Synth.playNote (94, 64);
    }
    else
    Engine.allNotesOff (); )

    everything works very well but ... according to my calculations I would like to create
    12 major pad
    12 minor pad
    12 pad 5 th
    12 pad 7 th

    making a total of 48 buttons and as many chord combinations.
    Is there not an easier way than to write everything manually?
    moreover, I already have a project which is quite big, won't adding 48 buttons make my plugin row too much?
    or is it possible for example to create 12 pad, and to assign directly via a list the chords for each pad? I like things that offer ready-made chords but I'm already sweating at the idea of ​​writing everything ^^



  • @yall - well you know the "shape" of each chord "type" (e.g. Major = 0,4,7) so all you need do is have two drop down menus - 1 with the chord types (Major, Minor etc.) and one with the root note (C2,C#2,D2 etc..) and you can work out the correct midi note numbers...



  • @Lindon I will do like that I think. is it possible to create 2 additional buttons (octave + and octoave -)? or do I have to write the chords over their entire octave?



  • @yall no you could have 3 drop downs:

    1. chord "shape"
    2. root note
    3. octave


  • @Lindon oh my god, this is going to be really long all this ^^



  • @yall why its pretty simple logic:

    Work out the midi note number for C in the octave selected(e.g. Octave = 1, then C= 60)
    Workout the addition you need for the root note selected (c=0,c#=1, D=2, d#=3 etc. etc.)

    Work out your required midi notes for the shape selected(e.g. Major = 0,4,7)

    so if the user selects D major in Octave 1 then

    start point = 60 (the value of C in Octave 1)
    root offset = 2 ( the distance from the start point of the selected root note)

    Major chord notes are :
    0, so this will be 60+2+0 = 62
    4, so this will be 60+2+4 = 66
    7, so this will be 60+2+7 = 69

    ..done..



  • Why do you need buttons, just use the keyboard. User selects major and clicks C they get a C major chord πŸ™‚



  • @Lindon @d-healey I would like the user to be directly a pad and not just the keyboard. (this is the fashion for pads ^^).
    I have fully understood how to create the chords I recreated a table which groups each note by chord to go faster. I expressed myself badly I think, I want the user to be able to play directly on the pad of chords maj min ... but without going to look in a list (which is not practical for those who want to play live by example).
    So yes ultimately it makes me well 48 buttons (12 notes x 4 chords).
    that's why I'm telling you that it's a lot of lines of code ^^



  • suddenly, create 2 button octave + or - I should write 144 buttons ^^



  • @yall please re-create this πŸ™‚ Casio PT30 was my first keyboard. Learned chords that way
    Still having it

    Screenshot_20210401-075031.png



  • @yall Do not use buttons. You can do this with a single panel. Watch my live stream video where I started creating a million buttons and Christoph popped in with some script to do it with a single panel πŸ˜›

    Around 1:43



  • @hisefilo when i will have finished this. I will drop the script here;)



  • @hisefilo

    @d-healey @Lindon
    So I just spent 2 hours writing everything. ^^ I tried the method with a panel but I got lost on the way. It is true that so many buttons can become restrictive but as I really wanted to have PADS I am quite happy with the result. (the pads change color on impulse).
    for those who want it, I just put down the snippet of the scales major minor 5th min / maj.
    if my work can help some it is with pleasure ^^



  • HiseSnippet 3536.3oc4c0saiabElZsYvZmtEIAIn8Rhr8BGfzc47CIkPQ5J+6FmXu1w1YSCPKR4JQaQrRjBRzahavBrnOI419VDf9Bzq6U4QXeCZ4HJYQJw4brIEEoa8dgWNCGxONemYN77Mmg93A9sbFNzefRs0N6p9NJ09UpmdkWPms6X65or+NJ09.091s0Z0wePasA1dW7O+GJacUe6gCcZqTq1JOUbd0VaUkQ+71mrkcWauVNSKRQ449tsbNvsmavzROt4W51s6d1scNysWryl2b+V9da620+xPLshptRe6Vuz9BmmYKNs6opT6c1ssaf+fSCrCbFpTa0s7ae0oc7+duny+4tCceQWGwADkSCuPQEume21BDKJUY6Ntcae7jm8gJJ0TOdZOwJQ8Den5gtscut7o8Hu2nJzl1h38G0tGD7Hwgm9MGd0hAuUif26qdZqAt8ClVi.auq59dANCN2NjBhCqnyU4d+6yT21O7L7BdTO6W5r2fvCttEaXpq+oZTc8O4O7f0ev5O9wZCCAtVeaOmtZO9whxBImgAZuxdf1VWFD36Qz9LsIWvKbB11uWeeuvC13iGW+GKtVSa0whqk7FEU8GGc+i9mqWWWOGsyuzqUfqumlu23qr3JLvu6Fslz7OM7Nz8RmO4Aq+iOX80htTOR7DL4LipN7Z+5QWeDb+nghxG0xss618Eg1gaL6MeJPC6r14HsC27K18qOYt9ps+7iNYG4O0QUe8S87OwQm.xCr64ZaL430zB+4GG+6QCneT+t1W8L+.AI+oZlbwMK0Z4f0ZAUKuNTsLyD0N9WuN72NcG5L9vc8tH7Y+Qg82h1L7nyOeCQKhZ.DsMoOLcVKQG30V2gD1CETV57EElunX7EcQwWDPFw.rVPFg2.jurJb9hBxWz4FjMh0NYW4bFGly3XbFeQwYTPVwDrVPVw.bzKqdgyYbPNiOCmEwWwGkMGmwf4LFFmwVTbFK6y7YAxJFfifYMJbNiAxYr44rC2GhwpCyX0wXr5KJFim849r.4DCvwub8BmwpCxX0m0S1daBwWVv7kEFeYsn3KirOumEHiX.N1kSJb9xBjurleD1daBNonILkYhQYlKJJyL6S6YARJFfCd4zBmxLAoLyYGhc5QG.QXFvDlAFgYrnHLqrOqmEHkX.N5kyJbBy.jvLRgv.Gh0.lwZfwXMVTLV8rOumEHmX.N3kyKbFqAHi0XVF6.PuXDcj.n0QifVeQQYMx97dVfjhAb.1FEeHz5vwPqOOoANJifI6AttGKJgOP7VAN4mEHuX.Gl8RP3CDkOHy+BHmB9J9DD0OHnxePVT5ef3yBbFPKPhw.bXLu30+f.K.BIMEPRnEhPxw8e10j37zHRv0DznqIrkirir6xxNBGeMgIQs3GhPdHpYQPkyhvWNZPxuCqAIAVPKBeVGdB8GAoMjX2HnAuQLWNxPZbGVFRBb3aDy4oMrgaHgvQPigiXrbjhz7NrTjD3n3HFoMWoPNRHpihDZ.EMz.p9xQSRq6vZRRgCMfpmF0ITlDbTGRX3Dz3vIMVNxSV+Nr7jD3HwIMlg5zlnP49OK80xFYI.HnqA.o9RQgx7DodoqPIAdU.H0Sg0FISoLVCYg.HnqD.wZ4HSo9cXYJIvqE.wRBqIezFEQCEJpFJTxxQrRxcXwJovZnPmOmezFqYoLZCKCRvSgD5xQvR5cXAKoHIQRZZnnMQ2RYLGhrITTYSnrkinkrkjnkKVJCVuDZR8RzFKVoLtBQkDJpJIT9xQoR9cXkJovpjP4RUpLRpKiy97zyXKFx6jvPemDlUkOwHK8IIYvuSByJU56wOdmidH.0gDD.CMH.V8JeNRV5KsCCNH.V8TyRxS1UNuwQTKgipVBWu5mmjk8LlbX0R35ysjbBEJkOXCQmDFpNIrFU9DkDdFXdwqpLCVmDViTj35v8AFpgkPx3YjLuxmrjvS9xKdMk4H4jLO0oH2aS.dCI..NZ..bVkOoIgm70n3ETlCGG.e9DSVnIobRCIdaNZ71bZkOsIgm70n3kRlCGuMmNyBuIj1RNkgnrEGUYKNoxm3jvy7ZT75HygU1hm1tYaT1SJm2PVqTN5ZkxMp7oOI7LuFEuRxb30JkajpesCf7qgjaBbzbSfaV4ygR3IeMJdkj4v4l.e1bS3.PuZHBjvQEHgaU4SfRD4SJdAR3vBjvmeGbbJzq8inLBGUYDd8Je1ShnaRwqLBGVYDdcfrmLRURKjzJAwKGE0KG0XAqM408j2tAP2l0VSxKbpkjIKDQlg82QMlOKlEBThwhH97nn97nlU9znLKJLWjLIrGPpYpaSXLhDYVUJ5rpz5U+DqLC5MWHLH7jqz5okekXDHxqxPQeUFpU0OCKyfvyEIOB+hMTqT272HDICQoEFpRKLZkOeKyhXzEhlzvBtvnos4hQYPDgWXnBuvHU9ztDduEXRVZLHr9KLR5INK57oLjExigtPdL8peVXpeKzvtHIQ30yikZ1OKD+DyoHxB6QQWXOZipeRYRtEZZWjdCgWeOZiT2D4XCCw9B1f+IrgU8SOS5sHzkhbXHx2xlT2qcGf6ODYgZYnKTKiW8yUS1sHpkhjCgWuVFOcNDefHhdMLT8ZXFU+z1jeKhboHIQXwZXFotkywXPDsZXnZ0vLq9IyowsHjkhjAgEogYlp9ow5vE2zi713SV+GWes0e85ZyVk.NoT23KaWmAoVs3CB6.nFtg2k8dgyfIz5jSTo1pI+zqpJ+SuZ7uLrsh5ghch9d664FbTeGOYePVUF2spnTaxKuGdpAi9vr9qG+gYM5KEphaakZ2WMZqenLBww+13pbyaMMWslkqVyyUqMxUqMyUqsxUqqmqV2HasdswVK54q4j70bZ9ZNKeMmmulajulalulakulWOeMOeVcz7Y0QymUGMeVcz7Y0QymUGMeVcz7Y0QymUGMeVcz7Y0wxmUGKeVcr7Y0wxmUGKeVcr7Y0wxmUGKeVcr7Y0wxmUGOeVc77Y0wymUGOeVc77Y0wymUGOeVc77Y0wyrU23u9+y1729Dkud+crCrE+oZXbnAggKz2YPfqHRjZ637J2VNQ+gaXM0cbF9x.+9J0t20gjoT6chtsOXxeVGD+4KX7KSF8mx.keHNduJ9Aeua6fNWWvO82a1ww8hNw9ysgSyZMicutOdjJ2za1aZN2M6yZ5N7P+dg2I6AWEEAUe6AgGFGASdnTtMvhFCVuYqlUEXwhAqe9OWYfEONrNox.KiXv5W5WYfkYLX0rWkAVVwf0O0ox.q5wgUqJCrZDCV+0gkOrlFJeLa9KqN3J9778+gpCthOQ+u72pN3hIyu3a1rYYhKtLGikLtLj4YrjwkoLWikLtrj4arjwUcYNGKYb0Pl2wxEWTcYtGKYbQj4erjwEUl+wRFWLY9GKYbwk4erjwkgL+iM+pREWlx7OVx3xRl+wRFW0k4erjwUCY9GKWbwzk4erjwEQl+wRFWTY9GKYbwj4erjwEWl+wRFWFx7OVx3xTl+wRFWVx7O9yeaohq5x7OVx3pgL+ikKt35x7OVx3hHy+XIiKpL+ikLtXx7OVx3hKy+XIiKCY9GKYbYJy+XIiKKY9GKYbUWl+wBEWqkbINOv9EWuDmi9+IV0w29jXdssmAUJ+wTPUfyODHfy1JNscCrGmpm5KHvkXsG2tY1.2ppa+vBAcLYNjztUcc6THfK9rYM+KYtqamhoqKgF0sxbW2tEB3RLwVmlYcHwdEB3hO61a5kwdtUU2qX303yw819YlWeZg.t3uX6aFl4ttmtf65Va7Dwwe+VsWk49tMKFzkPUiDqZ4spyayBpyS9hWdq571pXPWbOEMecbz81mjDc+7YRQmp5ga9EEC9h6r38RfuYk1FFe6+rhAewcWbbB78U2b7slpQPGsBCilx3327s2ZLlQdd0aPVzIasBbZpb8lsI7JEk1bum5g9surqcf+fs6X65or+NhBeZ3+cbEtg2fstpu8vgNg2lZqruHO7F5FjvDu18RtIgVU9lDRO1lDZO+tsEWUIaGnaHbee0icCZ0Ic7duTvqhRgi2UNarwztmetSqfofMzw7eJQ+YgCkOJBJuq52X+JmQaKtQ.4iFc749C5o8TGOmAh9TRBjILBl1o8udxV1cs8ZkH+NetuaKmCb64FyRueyuzsa28ra6H1yYSKm2b+VhcaVW+KGD8LbTqfPHb1.aug88G5PhekmoNZ751wI3RujmdTQINKwi2dgOdwNu62bRgz3EFNPKwEK73DWoCciMl5Wdxtdhgsm5D9zz9ngsBeXE8cwGNb7kcG57MhoDHwa3zhowK9ysGzNjWZkv.ckarUA4FaUT6cl2B8CUOzss60kGeR.QEZSawR0nsXmdZkaFbSoGrVLLt1DLdpau9cc106UNc8CKQfwOPcGmysuravjRSNz5PeO+9c78bSP5m3DLv8hKbRXKk5CzlAA1sd4zR9vlm3z0wdXrga+tlG354XOHrexIi8EjadeADe8aUifqlX9.s+2vsxJ+euaE3QngSYd2go+MpgSiS0FQ2ZkOeeh+kAtdWbnc3rAgNdTe1k8NMzmYKmPD6E9JghMgcs6I1bEQGqKNV.mSc7ZO5f+S3OiqjHNt13JISpbobO5Y2Zf+20JZGfHlv39iJI741ydzKFndn3Xsq23Gpp5ORWoWnamuqUKgM8uOr+I81PyPaXYnM7LzFiLzFyLzFqLzl5fsQ3weyKC76EY+GVvw6NZC3TqVzK8LZnfx+EHEbbiM
    


  • @hisefilo wow, that's what I'm talking about



  • That is some ugly code πŸ˜„ But it gets the job done!



  • @yall That is cool you found a way to make it work! πŸ™‚
    Now you should definitely find a way to make the 1255 lines of code doing the same thing in 50 lines πŸ˜‰



  • @d-healey indeed it's the ugliest code I've ever done πŸ˜‚ and still I wanted to do + but my eyes and brains are mush ^^ @ustk if you have something to offer me I m taker. πŸ™‚



  • @yall The best thing I can offer - https://docs.hise.audio/ - read everything 10 times and do all examples, follow all of the linked javascript tutorials and complete all of the exercises and examples. Repeat this for 5 years πŸ˜„ there is no shortcut.



  • @d-healey I am only 1 years old. It's already not bad πŸ˜‚ I have to work on adding an automatic button as in the example of your video above. I could reduce the code already with this. I have 48 line from constvar.button ..... It is at the level of the reminders that I have to work. I have already greatly reduced my plugin from 90MB to 8MB by resizing the images, by shortening the codes. but I haven't finished. πŸ™‚


Log in to reply
 

10
Online

1.2k
Users

3.8k
Topics

33.6k
Posts