HISE Logo Forum
    • Categories
    • Register
    • Login

    Few questions from a newbie

    Scheduled Pinned Locked Moved Unsolved Newbie League
    drums samplerprogrammingroutingdesignervirtual drums
    22 Posts 4 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.
    • S
      ScreamingWaves
      last edited by ScreamingWaves

      Hello everyone!
      needless to say that i'm here because i finally decided to make my own plugins.
      I'm new to programming/developing and i don't know anything about coding/scripting so I'm already following the no coding HISE bootcamp. I'll be creating a virtual drums vst with A LOT of samples and I'll need 16 Outputs (which will be the containers in HISE, right?) thus I guess will need some more advanced features, I'm still thinking about the whole concept of the plugin and i collected some questions so far.

      1. On one stereo channel i will need a button that when pressed will change the routing and spread the signals to other pre-selected tracks (pre fader). But i'd like to have the same fader for button off and on. (How) can i program something like that with HISE?

      2. How can I have 2 "pages" of the plugin?

      3. Is there a way to spread all the imported plugins equally through velocities?

      4. Can I modify the colours of the default knobs? I tried with the editor but it changes only the background.

      I hope someone here can help out! [EDIT: even with scripting! just remember that you're talking to a newbie 😂 ]

      Thank you for reading and happy creating!

      It_UsedI d.healeyD 2 Replies Last reply Reply Quote 0
      • It_UsedI
        It_Used @ScreamingWaves
        last edited by It_Used

        @ScreamingWaves You wrote that you started studying the creation of plugins without using scripts, I want to say in advance that most issues cannot be solved with this approach, or the approach will be greatly complicated and the result may not be impressive at all.

        1. I don't know exactly how it's implemented there, but i think, it will definitely be impossible to link the button to audio routing without using scripts.
        2. it is definitely impossible to do this without scripts, your interface will be based on panels, each panel contains ui controls, if you want hide one any panel - you need change it's visibility parameters, and you can control parameters such as panel visibility or status (on/off) only through scripts.
        3. The question is not entirely clear, if we are talking about samples, then yes, Hise has an excellent Sample Mapper, to be honest, I only have such in the sampler from Steinberg (HALion). There you can sort all their characteristics by the name of the samples, from notes to velocity and proximity to a specific microphone position. And you won't even need scripts for that.
        4. This is what I was talking about, the result may not make the right impression, and too much effort may be put in. It is possible to style knobs, but it will be necessary to create a huge photo in which there will be frames on which it rotates, or how the progress is filled (its named filmstrip). this is very inconvenient, and you may not get a clear picture at the output.

        To do well, change your approach, start learning js.

        S 1 Reply Last reply Reply Quote 0
        • S
          ScreamingWaves @It_Used
          last edited by

          @It_Used Thanx for answering,

          Yeah i realised that i need scripting, maybe it was not clear that I'm actually asking how i can do those things even with scripting 😁

          1. yes i was meaning samples: for example i took 10 samples to try the mapping out (the files have 01, 02, 03 etc that stand for the velocity) and it spread 01 to 1v, 02 to 2v etc but the 10 from 10v to 127v. how can i get it to spread them all equally?
          It_UsedI 1 Reply Last reply Reply Quote 0
          • It_UsedI
            It_Used @ScreamingWaves
            last edited by

            @ScreamingWaves I think it will work, but I can't know in advance.
            I use this naming format:
            Mic1¹_21²_3³ [A-1]⁴.wav
            (You can use many of your custom separators into sample mapper).

            1. Mic position.
            2. Key (numberic type).
            3. Fixed velocity value.
            4. Key (string type).
            1 Reply Last reply Reply Quote 1
            • d.healeyD
              d.healey @ScreamingWaves
              last edited by

              @ScreamingWaves I would start simpler

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

              S 1 Reply Last reply Reply Quote 2
              • S
                ScreamingWaves @d.healey
                last edited by

                @d-healey i would start simpler as well, but that's what i need at the moment for a school project, and i have 5 months time to finish it. Would it be that hard for a newbie?

                It_UsedI d.healeyD 2 Replies Last reply Reply Quote 0
                • It_UsedI
                  It_Used @ScreamingWaves
                  last edited by

                  @ScreamingWaves said in Few questions from a newbie:

                  @d-healey i would start simpler as well, but that's what i need at the moment for a school project, and i have 5 months time to finish it. Would it be that hard for a newbie?

                  If you have such a small amount of time, then don't waste it creating a plugin without scripts, because you'll probably do it quickly without revealing your full idea, so learn programming, at least from the same videos from David Healey, he explains it perfectly, I only know two languages, it's Russian and Serbian, but even with the language barrier, I understand what he means. And I have experience using Hise/in programming - only a month, or even less. But I can already do many things that I couldn't before, and I'm proud of this result. Of course, this is mostly due to the participants of the forum, David, and all those who helped me, I am pleased with the fact that it works.

                  S 1 Reply Last reply Reply Quote 2
                  • d.healeyD
                    d.healey @ScreamingWaves
                    last edited by

                    @ScreamingWaves said in Few questions from a newbie:

                    i would start simpler as well, but that's what i need at the moment for a school project, and i have 5 months time to finish it.

                    A school set you this task?

                    Start simple
                    Finish the Bootcamp if you haven't already.
                    Check out the scripting documentation for HISE.
                    Check out my HISE scripting 101 video - it's not for complete beginners but will still be helpful.
                    I'll be releasing a scripting course soon that will help you.

                    Regarding the 2 pages, I have a video about building a tabbed interface which will show you how to do this.

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

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      ScreamingWaves @d.healey
                      last edited by

                      @d-healey they didnt exactly tell me to program a plugin, any audio -related big project is possible, but my plan A seems to be falling through so the plugin was my plan Z, so since i wanted to do it for myself anyway, i'm keeping in consideration submitting it for the school exam.

                      I'll definitely check the 101 scripting video and i'll be waiting for the scripting course! I appreciate all your work!

                      1 Reply Last reply Reply Quote 0
                      • S
                        ScreamingWaves @It_Used
                        last edited by

                        @It_Used that sounds motivating! i will look more into scripting then, step by step implementing in the plugin what i learn. Spasibo za tvoyi sovetyi ))

                        griffinboyG 1 Reply Last reply Reply Quote 0
                        • griffinboyG
                          griffinboy @ScreamingWaves
                          last edited by

                          @ScreamingWaves

                          If you want to get it done on a tight deadline, simplify the scope.
                          Probably don't do the multi output routing at first.
                          Prototype each part of the project separately so that you can learn how each bit works, then create your actual project.

                          S 1 Reply Last reply Reply Quote 1
                          • S
                            ScreamingWaves @griffinboy
                            last edited by ScreamingWaves

                            @griffinboy yeah i'll firstly try to import only one sample for each drum part, while trying to learn the basics of scripting, and hopefully i'll be able to grasp it fast enough.

                            But just out of curiosity, how long would an expert take to develop something like that?
                            15 channels, hundreds of sample each. To load and route them on the TX16Wx Sampler it took me 4-6 hours. But what about doing that on HISE and make a new plugin out of it? That's the part of the task that yet i can't comprehend.

                            I know I'm pretty ambitious 🤓

                            d.healeyD griffinboyG It_UsedI 3 Replies Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @ScreamingWaves
                              last edited by d.healey

                              @ScreamingWaves said in Few questions from a newbie:

                              15 channels, hundreds of sample each.

                              If the samples are named correctly, it should be a few clicks. But it depends on exactly how you want them to be mapped.

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

                              S 1 Reply Last reply Reply Quote 1
                              • griffinboyG
                                griffinboy @ScreamingWaves
                                last edited by

                                @ScreamingWaves

                                Adding to David's answer,
                                no time at all to import samples, if your samples are named properly (already organised) or have metadata etc.

                                If you need to organise all the samples etc, then it will take quite a while longer.

                                You should be able to find youtube videos (David Healy likely has multiple) about using the stock hise sampler and how sample import works.

                                1 Reply Last reply Reply Quote 0
                                • It_UsedI
                                  It_Used @ScreamingWaves
                                  last edited by It_Used

                                  @ScreamingWaves said in Few questions from a newbie:

                                  Но просто из любопытства: сколько времени потребуется эксперту, чтобы разработать что-то подобное?
                                  15 каналов, по сотне сэмплов в каждом. Чтобы загрузить и скомпоновать их на семплере TX16Wx, мне потребовалось 4-6 часов. А как насчёт того, чтобы сделать то же самое на HISE и сделать из этого новый плагин? Вот эту часть задачи я пока не могу понять.

                                  Advice (Soft):
                                  Channels split - Adobe Audition/Cockos Reaper. (10-30 min) (i have script for creating sampling template into reaper project).
                                  Auto mapping by sfz - sfz tools, or Manually write sfz with NotePad++, (1-3 h). Or Use Hise sample mapper (5-10 min). as I understand it, the idea is to create a vst based on Hise anyway, so the skills of using the built-in sample mapper will not be superfluous.
                                  And, the amount of time I wrote about can be spent even by a novice, the main thing is to get past the feeling when software new for you, and then the process will be more or less focused on specific actions to get a specific result, and when this feeling of novelty appears, then you spread through all functions trying to find the one you need. This is where most of the time is spent.

                                  1 Reply Last reply Reply Quote 1
                                  • S
                                    ScreamingWaves @d.healey
                                    last edited by

                                    @d-healey Kick in, Out. and Subkick, Snare Top, Bot, Tom, Floor, Dick Mic, HiHat, Crash L & R, Ride, OHs and Room and (Stereo), these are all the mics used, each of them should have their own output. When i program a snare hit, snare t&b will be triggered along with room and OH (same with kick, tom etc), but routed to different channels. An example of file name is "01 SNR_Snare T", "01 SNR_Snare B" or "01 SNR_OH" or "01 SNR_Room". "01" is the velocity (lowest), "SNR" should indicate the key, "OH" and "Snare T" is the mic and should indicate the output. The only problem maybe is that i have 80 velocities for the snare (close mic, room and OH), but 30 for the toms, so 01 should not mean only Vel 1, but rather from 1 to 3 for example, depending on the range it needs till all the sample occupy every velocity. I imported samples 01, 02 03 and 04 to try it out, the first three were put on velocity 1, 2 and 3, but the 04 from 4 to 127. With the other sampler i dragged those 4 and it automatically mapped them "equally": 01 from 1 to 33, 02 from 34 till 66, 03 from 34 till 99, 04 from 100 till 127. Is there such option on HISE? I haven't found it yet.

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

                                      @ScreamingWaves I'd take the time to improve the file naming, that way the auto-mapping will be super quick. I'd also put each drum type in a separate sampler.

                                      Example file name structure: drumType_micPosition_lowVelocity_highVelocity.wav

                                      Or if you want HISE to automatically calculate the low/high velocity for you, just put a single value for the velocity level starting at 1.

                                      For example: snare_mic1_vel1.wav, snare_mic1_vel2.wav, snare_mic1_vel3.wav

                                      But at this stage I wouldn't even think about mic positions. Just play around with two different drum types in two different samplers for now, with a few velocities and 1 mic.

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

                                      S 1 Reply Last reply Reply Quote 1
                                      • S
                                        ScreamingWaves @d.healey
                                        last edited by ScreamingWaves

                                        @d-healey

                                        I watched your multimic sampler tutorial and followed every step and i made the first scripts in the project, thank you so much!

                                        then i added another sampler for the snare, i thought it would work just by adding the reference to the new sampler but it didn't. so i copied all the previous scripts changing the name of the sampler but now no purge button is responding. what did i do wrong?
                                        KICK sampler has 3 channels, snare just 2

                                        Content.makeFrontInterface(1200, 800);

                                        //Get sampler
                                        const var smpKickin = Synth.getChildSynth("smpKickin");

                                        //Purge button
                                        const var btnPurge = [];

                                        for (i = 0; i < 3; i++)
                                        {
                                        btnPurge[i] = Content.getComponent("btnPurge" + i);
                                        btnPurge[i].setControlCallback(purgeMicPosition);
                                        }

                                        inline function purgeMicPosition(component, value)
                                        {
                                        local idx = btnPurge.indexOf(component);

                                        local micName = smpKickin.asSampler().getMicPositionName(idx);
                                        
                                        smpKickin.asSampler().purgeMicPosition(micName, value);
                                        
                                        local idx = btnPurge.indexOf(component);
                                        

                                        }

                                        //Get sampler
                                        const var smpSnare = Synth.getChildSynth("smpSnare");

                                        for (i = 0; i < 2; i++)
                                        {
                                        btnPurge[i] = Content.getComponent("btnPurge" + i);
                                        btnPurge[i].setControlCallback(purgeMicPosition);
                                        }

                                        inline function purgeMicPosition(component, value)
                                        {
                                        local idx = btnPurge.indexOf(component);

                                        local micName = smpSnare.asSampler().getMicPositionName(idx);
                                        
                                        smpSnare.asSampler().purgeMicPosition(micName, value);
                                        
                                        local idx = btnPurge.indexOf(component);
                                        
                                        Console.print(idx);
                                        

                                        }

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

                                          @ScreamingWaves Can you wrap all that code in code tags so it's easier to follow? This button bd6a81c2-ac09-4e9c-8b1e-b6dea89bf15d-image.png

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

                                          S 2 Replies Last reply Reply Quote 0
                                          • S
                                            ScreamingWaves @d.healey
                                            last edited by

                                            This post is deleted!
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            32

                                            Online

                                            2.0k

                                            Users

                                            12.6k

                                            Topics

                                            109.5k

                                            Posts