HISE Logo Forum
    • Categories
    • Register
    • Login

    Arpeggiator returns a sustained note

    Scheduled Pinned Locked Moved Bug Reports
    12 Posts 3 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.
    • ossian1961O
      ossian1961
      last edited by

      Well, though not everytimes, it happens that when I release the keys of the master, the arpeggiator stop but a note still playing and only with reset button it stops. Is that a bug or something on ChannelSelector or OutputChannelSelector should be put in the correct way? I'm using Channel1 on ChannelSelector and AllChannels on OutputChannelSelector (MPEStart and MPEEnd are Inactive).

      1 Reply Last reply Reply Quote 0
      • ossian1961O
        ossian1961
        last edited by ossian1961

        @Christoph-Hart and @d-healey is it possible put the Arpeggiator ResetButton action into the function onNoteOff() ?

        1 Reply Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart
          last edited by

          That would be a fix on the wrong level - it sounds like a bug in the arp code.

          Can you make a patch that reproduces the problem consistently?

          ossian1961O 1 Reply Last reply Reply Quote 0
          • ossian1961O
            ossian1961 @Christoph Hart
            last edited by

            @Christoph-Hart said in Arpeggiator returns a sustained note:

            That would be a fix on the wrong level - it sounds like a bug in the arp code.
            Can you make a patch that reproduces the problem consistently?

            Ok, I will do it.

            1 Reply Last reply Reply Quote 0
            • ossian1961O
              ossian1961
              last edited by

              @Christoph-Hart Well, I found where the Arpeggiator fails. When the LengthSliderPack note values are "100", the Arpeggiator returns sustained notes, if the value are below "100", everything work fine.
              Arpege.7z

              1 Reply Last reply Reply Quote 0
              • staiffS
                staiff
                last edited by staiff

                I already noticed this problem. Already with hise 1.5 and 1.6
                it depends on the created preset. I suspect the AHDSR. depending on the settings it does, or not.

                edit:
                ok, not read the last message.
                will try the length solution ;)
                maybe scripting it to go up to 90/95 % max. So you won't hit the 100 % and having the problem anymore

                Excuse me i'm French.

                ossian1961O 2 Replies Last reply Reply Quote 0
                • ossian1961O
                  ossian1961 @staiff
                  last edited by

                  @staiff said in Arpeggiator returns a sustained note:

                  I already noticed this problem. Already with hise 1.5 and 1.6
                  it depends on the created preset. I suspect the AHDSR. depending on the settings it does, or not.

                  edit:
                  ok, not read the last message.
                  will try the length solution ;)
                  maybe scripting it to go up to 90/95 % max. So you won't hit the 100 % and having the problem anymore

                  That's a forced solution. I hope @Christoph-Hart will find the bug... probably it will stay inside the .h or .cpp code of Arpeggiator. ;)

                  1 Reply Last reply Reply Quote 0
                  • ossian1961O
                    ossian1961 @staiff
                    last edited by

                    @staiff I'm not sure that just only change in a lower value the .cpp:

                    lengthSliderPack->set("max", 100);

                    it works. Probably the section on .h is the point where Cristoph could find the bug:

                    ...
                    bool curr_step_is_tied()
                    {
                    return getSliderValueWithoutDisplay(lengthSliderPack, currentStep) == 100.0f;
                    };

                    bool next_step_will_be_tied()
                    {
                    	int nextStep = incAndWrapValueFromZeroToMax(currentStep, stepSkipSlider->getValue(), lengthSliderPack->getNumSliders());
                    
                    	return getSliderValueWithoutDisplay(lengthSliderPack, nextStep) == 100.0f;
                    
                    };
                    
                    bool curr_step_is_skip()
                    {
                    	return getSliderValueWithoutDisplay(lengthSliderPack, currentStep) == 0.0f;
                    };
                    
                    bool next_step_will_be_skipped()
                    {
                    	int nextStep = incAndWrapValueFromZeroToMax(currentStep, stepSkipSlider->getValue(), lengthSliderPack->getNumSliders());
                    
                    	return getSliderValueWithoutDisplay(lengthSliderPack, nextStep) == 0.0f;
                    };
                    
                    static float getSliderValueWithoutDisplay(ScriptingApi::Content::ScriptSliderPack* sp, int index)
                    {
                    	auto array = sp->getSliderPackData()->getDataArray();
                    
                    	if (index < array.size())
                    		return (float)array[index];
                    	else
                    	{
                    		//jassertfalse;
                    		return 0.0f;
                    	}
                    		
                    }
                    
                    1 Reply Last reply Reply Quote 0
                    • Christoph HartC
                      Christoph Hart
                      last edited by

                      Actually the note length 100 indicates that the step should be tied (the previous note will continue to ring). The only problem was that the code that stops the tied notes was missing. Should be fixed now.

                      ossian1961O 2 Replies Last reply Reply Quote 1
                      • ossian1961O
                        ossian1961 @Christoph Hart
                        last edited by

                        @Christoph-Hart said in Arpeggiator returns a sustained note:

                        Actually the note length 100 indicates that the step should be tied (the previous note will continue to ring). The only problem was that the code that stops the tied notes was missing. Should be fixed now.

                        I'm downloading the HISE-Master fixed now. Thank you @Christoph-Hart :)

                        1 Reply Last reply Reply Quote 0
                        • ossian1961O
                          ossian1961
                          last edited by ossian1961

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • ossian1961O
                            ossian1961 @Christoph Hart
                            last edited by

                            @Christoph-Hart said in Arpeggiator returns a sustained note:

                            Actually the note length 100 indicates that the step should be tied (the previous note will continue to ring). The only problem was that the code that stops the tied notes was missing. Should be fixed now.

                            Well, I compiled HISE standalone from the last code you made and the Arpeggiator bug is fixed! :) <3

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

                            46

                            Online

                            1.7k

                            Users

                            11.7k

                            Topics

                            101.9k

                            Posts