How to alter one event table with values from another one?

arno
arno Member Posts: 2 Noise
edited February 7 in Reaktor

I hope someone can help me with this...

I want to change values stored in one event table by adding or substracting values from another event table. Table 1 is the destination table that will get updated, Table 2 determines by how much the values of Table 1 will be updated. Like this:

Table 1, value X1 = 0,5

Table 2, value X1 - 0,1

Push a button --> T1X1 + T2X1 = 0,6

Save 0,6 to to Table 1, value X1

Repeat through values X2, X3... Xn.

The bigger idea is that Table 1 is a sequencer where Y is velocity and Table 2 will be used to increase velocity on downbeats or reduce velocity on 1/8 notes of the sequence in Table 1. Like Accentuator in XO or MIDI transform in Addictive Drums (yep, I'm XLN fanboy...)

I created an instrument which does this:

My problem is that it starts the process on loading of the ensemble and updates Table 1 immediately. I have no idea how to prevent other than creating additional button which will turn the instrument on and off with Routers. I don't to add the on/off button :-)

My basic idea was to use Single Delay to repeat of the process through values X1..Xn, but I think it's inevitably triggering the process on loading of the ensemble.

Is there another way to accomplish this? All suggestions will be appreciated :-)

Comments

  • Seqsual
    Seqsual Member Posts: 10 Sine

    Hi Arno,

    In Core you can have a counter going from 0-15 and staying at 15 until it will be reset (button press). You can Clip Max Int (macro) to 15 inside the counter so it does not go higher that 15. If you place Duplicate Filtering Int macro on its output it will not send any events (used for reading and writing) if the value is not changed (second, third 15 and so on).

    The counter will be triggering reading action (events 0 - first 15) from the two tables and at the same time its output (values 0-15) will be the index for positions in the tables. I suggest to write the calculated values to a third table/array - you can use the same counter's output for indexing and writing. Reading from the 3rd table will be done by sequencer I suppose.

    Big fan of XO myself.

    Btw the link in your post appears to be not working.

  • arno
    arno Member Posts: 2 Noise

    Thanks Seqsual, I'm afraid I won't be able to use your solution due to my non-existing Core skills.

    This link should work: https://wetransfer.com/downloads/85af44d56911564169eac55b544bd9bb20220205092449/4fb74a

    Meanwhile, I created a workaround/bodge which is blocking output on loading, but it requires a button which needs to be enabled to make the ensemble work. The challenge now is to find a solution which won't require "turn on" button.

    I think the main problem here is to synchronize read/write loops that go out to two tables and save data back in the first table recalculated with values from 2nd table. The way I did it is by creating small delays between each loop to make sure all read/write events go through before the next loop is triggered. But again, it fires on loading...

  • Seqsual
    Seqsual Member Posts: 10 Sine

    Managed to download but unfortunately Primary is not my forte/cup of tea...

  • colB
    colB Member Posts: 166 Saw

    To prevent a button firing on initialisation, you can change the button to gate mode and put it through a separator:


  • Quietschboy
    Quietschboy Member Posts: 2 Noise
    edited February 14

    Initialization issues...

    A link to the old Forum about Initialization in Reaktor 6:

    (interestingly the old forum search does not find "R6 Initialization info", which is the threads name...)

    Just dive into the shared Table, maybe it helps you.


    A link to the latest ACEW Debug tool (4.1) in the UL. Make Reaktor events visble, also in Core. Read the manual ;-)

    https://www.native-instruments.com/de/reaktor-community/reaktor-user-library/entry/show/10125/


    EDIT:

    I forgot to mention there are a lot of possibilities to block those different initialization events in Primary and Core.

Back To Top