Retrigger Woes

Hey, I was looking to implement sample retriggers for Notes On Wheels, but there’s a slight problem: I want to keep the original volume level of a sample when I retrigger it, via the 0EXY command. Problem is the volume will increase dramatically, even when just repeated twice (I can understand why repeating sample 12x on each line will be loud, but this is not the case)

I use the 8 (“No change”), which I thought would leave the volume at it’s current level, the level specified as the note’s volume? The volume does appear to have an effect, but it’s hard to notice since the output volume already appear to have been multiplied by a factor of a hundreds

Quoting from the manual:

I never used the retrigger command much, so I thought, maybe a fellow tracking ninja can help me out?
Here’s an xrns example (try removing the second fx column to hear how loud the retriggers are)

i think it is because you retrigger the sample from the beginning, and it has a pretty loud sound at the very beginning so it retriggers just that beginning which is loud. try this and hear how much softer it is:

  
A#200 01 0910 0E86  
A#200 01 0910 0E86  
A#200 01 0910 0E86  
A#200 01 0910 0E86  
  

simply because you are retriggering a softer part of the sample.

Check your Instrument Settings maybe? If you have an envelope or NNA=Continue maybe retrigger doesn’t cut the currently playing sample.

Just guessing here…

This would be how I’d do it, if I was writing the stuff by hand, but even then, it would only work with some types of samples (the sample might become louder instead of more quiet)

Perhaps I’m looking for an explanation, not a workaround? In the context of writing automatically generated sequences, I need to understand what’s going on.

[s]Sorry didn’t see the example at first.

Definitely something fishy with retrigger!

If you use E6 in the Pan column it will work as expect, with the repeats at same level as initial note, and 0E06 and 0E86 I believed should be exactly the same but they are not![/s]

I have it! 0Exx operated on the whole Track. You are retriggering ALL FOUR NOTE Columns. If you put Note Offs in place it works as expected.

Kazakore, you nailed it!! I probably didn’t notice, because the sounds are so similar.

Putting the note-off will indeed cause the sample not to be retriggered. But - only when the sample is short, doesn’t have ‘continue’ as NNA action, or the volume envelope has a fast fadeout.

In Notes On Wheels, I would like it to be possible to have a sample playing, then a bunch of retriggered notes, but the first sample still playing. One workaround is to put a bunch of 00’s in the volume column of the original sample while the retriggered notes are being triggered. Then, afterwards, the original sample’s original volume could be written and things would resume. Sort of like, temporarily ‘muting’ all other note columns.
I think this would be an acceptable workaround - after all, we are talking about how much it’s possible to cram into a single track. It’s always possible to add another track…

Also, in N.O.W, notes can be aligned on the same line. In such a case, I guess it’s not possible to control re-triggering of samples in individual note-columns. But hey, this is already true for sample-offsets. So, when notes are aligned, sample-based effect commands (offset, retrigger etc.) would use the first step in the sequence, nothing else.

As long as a sample has finished playing it wont retrigger, whether it has naturally played to the end, or has had a note off (and come to the end of the release phase is applicable.)

How about using the Pan Column for Retriggering notes? Or is panning integrated into N.O.W?

It’s a different way of retriggering which will change the volume but not restart the sample. And yes, the panning columns are already put to work - it’s where the notecuts (FX) are located.
N.O.W’s already a bit of a puzzle really

Just found there is another difference between 0E06 and E6.

0E06 repeats the (all) note(s) from the beginning.

E6 will retrigger from the point currently playing.

Copy and Past this into the example you provided and watch the waveform for the sample triggered.

<?xml version="1.0" encoding="UTF-8"?>  
<patternclipboard.blockbuffer doc_version="0"><br>
  <trackcolumns><br>
    <trackcolumn><br>
      <trackcolumn><br>
        <lines><br>
          <line index="0"><br>
            <notecolumns><br>
              <notecolumn><br>
                <note>E-2</note><br>
                <instrument>00</instrument><br>
                <volume>E6</volume><br>
              </notecolumn><br>
            </notecolumns><br>
          </line><br>
          <line index="1"><br>
            <notecolumns><br>
              <notecolumn><br>
                <volume>E6</volume><br>
              </notecolumn><br>
            </notecolumns><br>
          </line><br>
          <line index="2"><br>
            <notecolumns><br>
              <notecolumn><br>
                <volume>E6</volume><br>
              </notecolumn><br>
            </notecolumns><br>
          </line><br>
          <line index="3"><br>
            <notecolumns><br>
              <notecolumn><br>
                <volume>E6</volume><br>
              </notecolumn><br>
            </notecolumns><br>
          </line><br>
          <line index="4"></line><br>
          <line index="5"></line><br>
          <line index="6"></line><br>
          <line index="7"></line><br>
          <line index="8"><br>
            <notecolumns><br>
              <notecolumn><br>
                <note>E-2</note><br>
                <instrument>00</instrument><br>
              </notecolumn><br>
            </notecolumns><br>
          </line><br>
          <line index="9"></line><br>
          <line index="10"></line><br>
          <line index="11"></line><br>
          <line index="12"></line><br>
          <line index="13"></line><br>
          <line index="14"></line><br>
          <line index="15"></line><br>
          <line index="16"><br>
            <notecolumns><br>
              <notecolumn><br>
                <note>E-2</note><br>
                <instrument>00</instrument><br>
              </notecolumn><br>
            </notecolumns><br>
          </line><br>
          <line index="17"></line><br>
          <line index="18"><br>
            <notecolumns><br>
              <notecolumn><br>
                <volume>E6</volume><br>
              </notecolumn><br>
            </notecolumns><br>
          </line><br>
          <line index="19"></line><br>
          <line index="20"></line><br>
        </lines><br>
        <columntype>NoteColumn</columntype><br>
      </trackcolumn><br>
      <trackcolumn><br>
        <lines><br>
          <line index="0"></line><br>
          <line index="1"></line><br>
          <line index="2"></line><br>
          <line index="3"></line><br>
          <line index="4"></line><br>
          <line index="5"></line><br>
          <line index="6"></line><br>
          <line index="7"></line><br>
          <line index="8"></line><br>
          <line index="9"></line><br>
          <line index="10"></line><br>
          <line index="11"></line><br>
          <line index="12"></line><br>
          <line index="13"></line><br>
          <line index="14"></line><br>
          <line index="15"></line><br>
          <line index="16"></line><br>
          <line index="17"></line><br>
          <line index="18"></line><br>
          <line index="19"></line><br>
          <line index="20"></line><br>
        </lines><br>
        <columntype>NoteColumn</columntype><br>
      </trackcolumn><br>
      <trackcolumn><br>
        <lines><br>
          <line index="0"></line><br>
          <line index="1"></line><br>
          <line index="2"></line><br>
          <line index="3"></line><br>
          <line index="4"></line><br>
          <line index="5"></line><br>
          <line index="6"></line><br>
          <line index="7"></line><br>
          <line index="8"></line><br>
          <line index="9"></line><br>
          <line index="10"><br>
            <effectcolumns><br>
              <effectcolumn><br>
                <value>06</value><br>
                <number>0E</number><br>
              </effectcolumn><br>
            </effectcolumns><br>
          </line><br>
          <line index="11"></line><br>
          <line index="12"></line><br>
          <line index="13"></line><br>
          <line index="14"></line><br>
          <line index="15"></line><br>
          <line index="16"></line><br>
          <line index="17"></line><br>
          <line index="18"></line><br>
          <line index="19"></line><br>
          <line index="20"></line><br>
        </lines><br>
        <columntype>EffectColumn</columntype><br>
      </trackcolumn><br>
    </trackcolumn><br>
  </trackcolumns><br>
</patternclipboard.blockbuffer>

If there is a sample triggered on the line itself the retrigger point is the start of the sample as far as I can tell. But if the column is already used then it’s a moot point anyway.

You’re right, I should have looked closer. Let me just explain what I want to achieve:
The basic idea is to be able to say that “I want to repeat this note X number of times during it’s time in the sequence”

If the sequence has a line spacing of 8 (each step is 8 lines apart), and I’ve decided to repeat the note 4 times, this is simple - the sequence will output the note four times, on every second row.
Same is true if the sequence had 6 lines - thanks to clever use of the delay column, it would be possible to distribute those four notes equally into the six lines.

But once line spacing gets below the number of repeats, N.O.W would need to switch into a different mode. Distribute four notes equally into three lines? We have to work with retriggering to achieve this. Maybe it’s too much to ask - as we’ve clearly established that there are certain limitations.

Alternatively, they could become two separate modes (retrigger and repeat), instead of one big unified mode.

Well you NEVER need Note Cut and Retrigger at the same time do you? If you’re repeating a note at more than once per line you are already playing it at less than a lines length, and a Note Off on the following line would be a cut of that length too.

I say use both Note Cut and Retrigger in the Delay column. I don’t think you’ll actually get many problems from it. Although it might make programming slightly hard if somebody selects settings that seem like it requires both (eg if sample nna is set to continue so you want to cut while retriggering) But generally retriggered notes are so short it doesn’t overly matter or retriggering is going to be increasing the volume due to the sample doubling.

Dunno mate. I would probably try both in Delay with Retrigger taking priority if both exist and see how it works out on testing. It’s not a perfect world but think it will work for most situations the best.

Yes, this absolutely makes sense. Theoretically, I could miss out on a couple of the last retrigs due to the FX being there, but in practice that probably wouldn’t mean a thing. It’s just a matter of writing the note-cut command to the pattern after the retrigger ones has been output, I guess.

Indeed. And perhaps the definition of “repeat this X number of times” doesn’t have to be so damn strict. If I wanted to repeat something four times in the course of three lines - sorry mate, can’t be done. Not in the context of N.O.W, which assign notes to individual note columns (and without this restriction, it wouldn’t be able to ‘learn’ a sequence). But six would be possible - by retriggering each note twice.

You’d also need to use Dx in Pan if you wanted to do that. I would say restrict it to divisions of a single line only. So 2, 3, 4 times a line is fine. 3 times over 2 lines isn’t.

Although it is technically possible…

Mind there are values where you will have to change the Tick value of the song to fit. But then again that would be true if you tried to do say 5 repeats in a line to, so doesn’t only come into account with the more complex (eg 5 repeats over 2 line.)

Hey, before I forget it - thanks for sparring with me, greatly appreciated. We’ve pretty much nailed how retriggering could be done

I’m actually quite fond of such dilemmas. On one side, we have the pattern editor where mostly everything can be done. On the other side, we have this tool (Notes On Wheels), a sequencer which write notes to the pattern editor. They are not the same thing.

To guide me, I have some ‘unwritten’ rules about how it should behave, when something become too convoluted and unpractical to use. Hopefully, I’m not the only one who thinks that N.O.W is great fun, or even sees the potential in making more applications that generate pattern data in realtime?