Last updated:

ReaScripts: Advanced Renamers (Items-Takes, Tracks, Markers, Regions)

Update (2020-09-20): These scripts have now a Version 2 demo, more flexible, and with new wildcards. Take a look!
Update (2020-11-13): These scripts now support Save Last Input and Preset files (you can deactivate popup and add custom values, without modifying the script).


The following scripts are meant to quickly rename various kind of REAPER elements.

With this system, with one single line of input, you can add prefix and suffix, but you also have access to a large access of wildcards (values that will be replaced with specific elements values (like the volume for items).

The most advanced feature is the counter system: you can have several sets of counters, linked together. This feature was meant for samples pack naming. More details below.

The items version of this scripts was sponsored by Soundiron. Thanks!

Pack Content


Items versions

Items version is very useful for virtual instrument designers. It works on selected items active take.

Regions version

Regions version works with time selection.

NEW (2020-11-12)

This version works on regions selected in region and marker manager.

Markers version

Marker version.

Tracks version

Tracks naming with two digits counter.


The scripts works by detecting patterns separated by a separator characters chosen right in the user input window (usually, _). Words followed by =*number* like word=1 create a counter. When the ending number is reached during the count, it will cause the previous counter on the left to increment by 1.

Here are some common cases. Only symbols and wildcards have to match.





Simple Counter


Offset Counter


Reverse Counter


Multiple Counters


Leading Zeros Counters


Unnamed Counters




The following wildcards are common to all scripts in this pack:

  • $name = insert the current element name.
  • $number = insert the sequential number from selection order
  • $project = the name of the project file, without the .rpp extension.
  • $bpm = the rounded bpm of the project
  • $blank = extra blank line if needed
  • !_ and ! = these are deleted. it can be used for deleting sep characters or creating unnamed counters


The item version as few more wildcards:

  • $itemnumber = insert the sequential number of the item on its track
  • $track = insert the track name that the item is on
  • $tracknumber = insert the track number that the item is on, starting from 1 (the top track)
  • $parenttrack = the name of the parent track that the item’s track is foldered under.
  • $marker = comma separated list of markers names for markers inside the item edges
  • $region = last region from item pos if item pos is inside it (aka, current region from item position)
  • $notes = item notes

Items order

There is several ways to determine items order for your counters:

  • time = uses absolute timeline position across all tracks. If two items start at the same time, the item on the higher track (lower track number) comes first.
  • track = counts all items on a single track, then restarts all counters when it moves to items on the next track
  • wrap = counts all items on a single track from left to right, then continues the count where it left off at the beginning of the next track


Here is a complex case, with one word, three named counters, limits, reverse and leading zeros.


will output:



You can mod this script by duplicating and renaming it.

Then, edit the the user config area in the top of the file. Here are easily customizable value:

-- USER CONFIG AREA -----------------------------------------------------------

line = "prefix_n=01-10_v=1-8_r=01-12_suffix"
sep = "_"

popup = true -- true/false: display a pop up box

console = false -- true/false: display debug messages in the console

------------------------------------------------------- END OF USER CONFIG AREA

The items active take version has few more options:

order = "timeline"

order_timeline_aliases = {"timeline", "time", "1"}
order_tracks_aliases = {"tracks", "track", "2"}
order_selection_aliases = {"selection", "wrap", "3"}

decimal_number = 1 -- Number of decimals for dB values

New Pattern Format (2020-09-20)

I just released version 2 of this scripts as new actions. They have similar name but “_v2” as suffix. Note: I didn’t made the track version for now, cause I didn’t have the need for it but you can request it if needed. Here form the changelog:

+ New counter engine. Not backward compatible: limits is not longer a destination value, but a counter (see below).
# Limit (restart condition) can be increment count or time distance if time unit if specified
+ Repeatitor (increment condition) can be increment count or time distance if time unit if specified
+ Incrementation value parameter, for decrementation or incrementation by an absolute value greater than 1.
+ Restart jump added as fifth parameter

There is also new wildcard

  • iregion for index in region (markers version only currently)
  • $scale for musical notes like G# etc
  • @itemnote (item version) first empty item notes. @ are pre-abstraction wildcards (it replaces a part of your input).

This new pattern format is far more flexible. I’ll only update v2 of the script from now. All this settings can be quite confusing, so you can find examples on this Gist page.

Feature Requests

Miss a wildcard? Let me know!


After purchase, installation instructions will be provided here and on the dedicated Purchase Confirmation page. License are valid lifetime. You will be able to enjoy updates and new scripts added to the pack.


By purchasing this product, you are supporting my free scripting. Thanks!

Thanks to Nofish for having set SWS Loudness functions available from ReaScripts!


  • Personnal use, you are an individual, a student, or a non-profit organization, and you will not use this pack on commercial projects.

  • Your work for a small business company or commercial projects.

  • You are a big business company with a team of more than 5 people. Consider one purchase per team.

Add to Cart