Octamed note echo

Octamed Soundstudio used to have a note echo feature where you could input the number of steps after which a note would be echoed, set the volume drop for each echo. You would then select a range or track where you had some notes input already and apply it by hitting the ‘echo’ button. New notes would be generated in the selected range which would act like echoes of the original notes. For instance if I selected a track with just a C written in position 1, echoing it with a delay of 3 would put in a new note every 3 steps thereafter, each with the specified volume drop. By layering multiple note echoes with different delays you could make some really cool effects. Something like this would be a great feature on Renoise, especially if you could also apply it to things like VST parameters or MIDI control codes etc.

5 Likes

You could do this with a Tool i think.

happy Tracking :slight_smile:

Yeah, but I find it way more easy to simply use the delay device.

the advanced edit panel allows for such effects (and much more). duplicate note column > nudge > vol fx modify by sub >copy > mix paste (if desired), lather, rinse, repeat :slight_smile:

although it wouldn’t hurt anything to have a dedicated note echo tool or fxn

2 Likes

are you able to tell me how to run the Note Echo features in OctaMED v4.0?
i am running OctaMED v4.0 in FS-UAE and i just can’t seem to create a range selection. if i could get a range selection going, i could run the Note Echo command a few times and be able to script it into Renoise/Paketti, but i just can’t, for the life of me, figure out how to create a range selection. @SubMek

Or some LUA live coding for automatically generating/transforming pattern data, with snippet presets? I’m thinking like xStream but much more barebones and accessible.

PS. My formula one tool can do automatic note echoes, but the interface is ass.

1 Like

@joule

need to tweak the ui for better but it is working nicely now.

2 Likes

Nice!!

This looks better now and has added Logic of changing Distance to hit the selection that was selected. Next step is to make it updaye dynamically when selection in pattern changes

I much prefer to generalize such solutions. Instead of making a tool for every special case, those can be snippets of a general framework.

Summary

patterncode

NoteColumnSequence – Transformation Methods and Other Functions

-- Returns a duplicate of the entire sequence object.
:clone()

-- Fills empty lines with the most recently encountered note data. Use case: chord following with minimum amount of code.
:pad()

-- Retains only lines in the range [start_line..end_line].
:crop(start_line [number], end_line [number])

-- Rotates note data by steps, optionally in multiple segments/windows.
:rotate(steps [number], num_segments [number])

-- Sets the pitch (note_value) for valid notes.
:pitch(value [number])

-- Shifts all valid pitches by the specified amount.
:transpose(value [number])

-- Sets the instrument index to value.
:instrument(value [number])

-- Writes the sequence to a track, optionally clearing the target first.
:output(track_idx [number], column_idx [number], clear [boolean])

-- Fetches a sequence from a track.
:input(track_idx [number])

-- Invokes fn(line_idx, line_object, sequence_object) for each line in the sequence.
:line_callback(fn [function])

-- Returns an array of line indices (not objects!) where the line is not empty. Invert will return empty indices.
:get_hits(invert [boolean])

-- Expands or compresses the sequence length by factor, applying fractional delays.
:stretch(factor [number])

-- Creates a new sequence from a simple hit-pattern string ('1' = note, '0' = rest).
.create_sequence(hits [string], len [number], rep [number])

-- Copies note data from the Renoise song into this sequence.
:copy_from_song(pat_idx [number], track_idx [number], line_idx [number], ncol_idx [number], len [number])

-- Writes the sequence back into the song, optionally clearing track data first.
:copy_to_song(pat_idx [number], track_idx [number], line_idx [number], ncol_idx [number], clear [boolean])

2 Likes

i get what you’re after, and i like it, sure.
but this does not speak to specific OctaMED users looking to migrate from OctaMED to Renoise.
or ImpulseTracker/Schism Tracker users who wanna dip their toes in Renoise.

unless if you provide for presets in that tool of yours, it will require them to learn a bunch of stuff to be able to do it. it’s really cool, of course. but, in this way that I’m doing it, I just have a submenu for Other Trackers, and people can go “Oh I still want this feature from OctaMED” and i can cover that feature next.

yours looks pretty powerful tho, i do like it. just different life-situations.

… and here’s OctaMED Note Echo. - as requested multiple times from various people. such as:

@SubMek

and here’s @Ledger 's request from 2003, Numpad To Control Track On/off
done into mixer, phrase editor, pattern editor and global.


etc.

and here’s OctaMED Note Spread:
octamed note spread

as far as i can remember, this was requested by @hooligan - – oh so both note spread and note echo in this post:

1 Like

I still don’t understand what this is good for… Is it for some kind of xrns-to-demoscene-format? So avoiding dsp devices or a midi generator vsti / midi echo (e.g. Protoplug)? Isn’t a data-destructive echo quite annoying to handle?

it’s fine if you don’t like it
but originally stuff like this was good for synths that didn’t have effects, you could do echoes with midi + velocity.

same with samples. it’s just fun. and after you have this going in the tracker pattern, you can then feed it into delay effects as you please.

it’s just a different thing to do. i’m not sure why there’s such a “oh, don’t do it like that, i refuse to accept that anyone does anything that isn’t done my way” thing going on witchoo.

edit: p.s. you could easily mess around with the fading out echo and then do interpolation volume increases to bring it back again. explain how you do that in a controlled fashion with delay plugins

1 Like

No no, please do whatever you want, I just didn’t get it, really. Maybe you could kind of “mark” the generated echo notes, for example with “EC00” in the note fx column. Then it could be non-destructive…

Also maybe it would be helpful, if for each echo repetition, the next track could be used? Or optionally increase instrument number…?

Or maybe using a recursive algorithm would lead into more natural results? What about a fractal echo?

i think the thing with effect columns having EC00 would mean that the note effects that are in the selection wouldn’t be replicated (they might be important). in fact, let’s see.

but yeah, a next track or next column would be neat idea, i’ll stash that to a future todo.

it would be trivial to provide an option for setting a different instrument. i can add that to the todo, too.

however, i’m not sure what recursive algorithm and fractal echo are or mean

That’s what I generally do when tracking chiptune. I prefer my delays to be detuned though, so I use a delay in the fx chain in the instrument for the detuned samples 100% wet.

After this I realize that I want to use round robin for some “fake S&H modulation”, and my whole approach breaks down. Back to handling it in the main pattern editor…

Maybe I don’t know all the tricks yet.

A delay feedback, if pre-calculated in this case here, can be done with a recursive algorithm. Might be interesting.

Also maybe a phrase is the right place for a note delay. So like a one-note-delay phrase. Maybe your tool could support writing into a phrase?

Ah yes, I remember that from Protracker days.

Detuned like “chorused”, or really a different note or slight, constant pitch change?

Finetuned, like -10 in left channel and +10 in right. I duplicate the original sample inside the instrument, and route the detuned duplicate to a 100% wet delay inside the instrument.

Detuned delays are very cheesy when combined with vibrato sweep/attack :slight_smile:

1 Like

@joule why not just use a pitchstepper device

that’s what i’ve configured into Paketti’s Unison Generator.

first i draw a chiptune

then i run the unison generator:

  • it creates 8 of them, each of them detuned and hardpanned slightly
    then also incorporates the pitchstepper device.

and that’s it.
every hit will play different