HISE Logo Forum
    • Categories
    • Register
    • Login

    Need Legato So bad....

    Scheduled Pinned Locked Moved Feature Requests
    15 Posts 3 Posters 3.6k 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.
    • M
      MIDIculous
      last edited by

      I so desperately need a Legato/Portamento script for Hise. Without it, you can't do any synth leads, flutes, solo strings, or any solo instrument at all with Hise.

      Thanks to the other user @d-healey that created, what looks to be, a great one. Unfortunately it's GPL licensed and I can't use it on my paid apps.

      Need one bad

      1 Reply Last reply Reply Quote 0
      • M
        MIDIculous
        last edited by

        Perhaps the Unisono Script from Kontakt can be converted to be used

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

          Do you need it to be polyphonic?

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

          1 Reply Last reply Reply Quote 0
          • M
            MIDIculous
            last edited by MIDIculous

            @d-healey Polyphonic legato would be almost darn near impossible if not a CPU drain. As for Polyphonic, all I need would be Polyphonic Portamento, but gliding between notes Polyphonically would not be needed.

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

              I've put together a little script that imitates the basic functionality of the unisono-portamento script in Kontakt but with much simpler controls. If you set the time knob to 0 you get the basic mono legato functionality and anything greater than 0 will give you the same as Kontakt's auto-portamento mode. It's only a simple script so I'm making it public domain :) should be a good starting point if you need to expand it further.

              /**
               * Title: Synth Legato/Portamento v1.0.0.js
               * Author: David Healey
               * Date: 02/07/2017
               * Modified: 02/07/2017
               * License: Public Domain
              */
              
              Content.setHeight(50);
              
              reg lastNote = -1;
              reg eventId;
              reg tuning;
              
              //GUI
              const var bypass = Content.addButton("Bypass", 0, 10);
              const var time = Content.addKnob("Time", 150, 0);
              time.setRange(0, 2000, 0.01);
              
              function onNoteOn()
              {
              	if (bypass.getValue() == 0)
              	{
              		if (lastNote == -1)
              		{	
              			lastNote = Message.getNoteNumber();
              			eventId = Message.getEventId();
              		}
              		else 
              		{
              			Message.ignoreEvent(true);
              			Synth.addPitchFade(eventId, time.getValue(), Message.getNoteNumber()-lastNote, 0);	
              		}
              	}	
              }
              
              function onNoteOff()
              {
              	if (bypass.getValue() == 0)
              	{
              		Message.ignoreEvent(true);
              
              		if (!Synth.getNumPressedKeys() && eventId != -1)
              		{
              			lastNote = -1;
              			eventId = -1;
              			Engine.allNotesOff();
              		}
              	}
              }
              
              function onController()
              {
              	
              }
              
              function onTimer()
              {
              	
              }
              
              function onControl(number, value)
              {
              }
              

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

              1 Reply Last reply Reply Quote 0
              • M
                MIDIculous
                last edited by MIDIculous

                @Christoph-Hart We think that we have made some segway on how to get a good legato, but @Hasan-Tata needs some documentation and source code on how to manipulate and control the following:

                1. Group Settings
                2. Playback Position, Settings
                3. Sample Start
                4. Playback positions

                In order to really do a good legato, we need to glide one note into the other at the second note's playback position some time into the the sample and not retrigger the attack portion.

                Any code snippets would be appreciated.

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

                  That's a lot more complex than Kontakt's script which just used retuning. If Hasan takes a look at my more complex legato script in the snippets section it should have all the info he needs. To change the playback offset you need to use a sample offset modulator and add some start mod time to the samples.

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

                  1 Reply Last reply Reply Quote 0
                  • Evan C.E
                    Evan C.
                    last edited by

                    That sounds good. Would you share your HISE snippet with me?

                    1 Reply Last reply Reply Quote 0
                    • M
                      MIDIculous
                      last edited by

                      Here is an example of what the Legato should sound like. I've heard very few keyboard manufacturers or sample libraries make samples with such glide.

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

                        It's just in the snippets section of the forum under Synthetic Legato - easy to find :)

                        The porta in that video just sounds like it's retuning like the script I posted above, it doesn't sound like it's using every sample in between but I could be wrong. The retuning/pitch bending method is the usual technique for synths I believe while the in-between sample method is more common for simulating glides on real instruments which was my intended purpose with that script.

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

                        1 Reply Last reply Reply Quote 0
                        • Evan C.E
                          Evan C.
                          last edited by

                          Thanks, but I already saw and read it.
                          It has only script code, and what I want is the whole HISE snippet.
                          I am going to make my own script codes to customize legato and so I want to know how to manage sampler with group settings and sample start points on HISE.

                          1 Reply Last reply Reply Quote 0
                          • M
                            MIDIculous
                            last edited by

                            @d-healey We are still new to Hise, so we don't quite understand completely how to apply everything to apply the scripts to Keygroups, Groups, Sampler, Offsets, SampleStarts...etc..

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

                              Ah I see, that's a fair bit more in depth and something I hope to cover in some future tutorial videos. But all the info is available on this site - that's how I did it. If you ask me specific questions I should be able to fill in the gaps for you :)

                              Sample start points is handled in the wave editor just like in Kontakt and you use the setModulatorAttribute function (if I remember correctly) to adjust the value of a sample start modulator - I think I used a constant modulator but I can't remember at the moment.

                              What group settings do you need to adjust?

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

                              1 Reply Last reply Reply Quote 0
                              • M
                                MIDIculous
                                last edited by

                                We are struggling to find documentation on these specific things. We have the math and the algorithm part, but need to know how to apply the math to stuff like

                                • SampleStart
                                • Playback position
                                • Groups
                                • Playback
                                  etc....Stuff needed to apply the math to.
                                1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey
                                  last edited by

                                  Something you might find helpful for educational purposes is the hardcoded scripts - https://github.com/christophhart/HISE/blob/master/hi_scripting/scripting/HardcodedScriptProcessor.h - these are all written in C++, I translated the release trigger one to javascript as a starting point for my own release trigger script. It was also an excellent way to learn HISE script. The built in API documentation has all the commands that you should need. What in particular do you want to know about Groups?

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

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

                                  48

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  101.9k

                                  Posts