Author : Nick von Kaenel

License : EULA

ReaPack Repository : https://nvk.tools/index.xml

First of all, thank you so much for your support. You are awesome! I hope you enjoy this product and make some amazing sounds with it :)

Your license key will activate up to 3 computers that you own and use. If your key is shared with others, it will be revoked and you will not get a refund.

All scripts come with a free 14-day trial. In order to start the trial, follow the instructions below to install the script and leave the license key field blank when prompted.

This script is only guaranteed to work on the latest version of REAPER along with the latest version of the required extensions. 32-bit and Linux are not supported. Make sure you are up to date before contacting support.




1. Install ReaPack

In Reaper, navigate to Options  Show REAPER resource path in explorer/finder to access the UserPlugins folder.

Download the latest ReaPack version for your operating system from ReaPack.com and place it in the UserPlugins folder.

For Mac users: Right-click the ReaPack extension, select "open," and bypass the security warning if prompted. This step ensures Reaper can load the extension.

Restart Reaper and look for Extensions  ReaPack.

2. Import the ReaPack Repository

Navigate to Extensions  ReaPack  Import repositories in Reaper.

Enter the repository URL: https://nvk.tools/index.xml and confirm.

3. Install the scripts and required extensions

Go to Extensions  ReaPack  Browse packages, search for 'nvk', select all scripts, and install them via Actions  Install, then click Apply.

Install the following extensions using the same process (and restart Reaper if prompted):

  • SWS/S&M extension

  • ReaImgui

  • js_ReaScript API

These extensions are available in the ReaTeam Extensions Repository, included by default with ReaPack.

To automatically update scripts, navigate to Extensions  ReaPack  Manage repositories, enable Options  Install new packages when synchronizing, and then use Extensions  ReaPack  Synchronize packages.

4. Run the script and activate the license key

After installation, open the actions list, search for "nvk" to find the script. Run it by double-clicking or assigning a hotkey. Enter your license key when prompted.



nvk_LOOPMAKER 2 is a script for REAPER which allows you to automatically create zero-crossing loops from selected items. It also has the ability to create multiple loops out of a single item which will blend seamlessly into each other. This is especially useful for game audio, where you might want to randomly play different loops for a sound with sample-accurate transitions.

With this latest version, you can now preview the loop you are making in real-time. This makes it much easier to fine-tune your loop to be the exact way you want it. One thing to keep in mind is that this preview can only be active while the script is focused. If you click away from the script, the selected items will return to normal.

nvk_LOOPMAKER makes use of the time selection in REAPER in order to determine the length of the loop. If you don’t have a time selection, the script will use the entire item. Make sure to remove any time selection before running the script if you don’t want to match the loop to the time selection.

How To Use

  1. Select the item(s) you want to loop.

  2. Run the script.

  3. Make any changes you want to the settings.

  4. Preview the loop with spacebar while the script is focused.

  5. Click "Apply" or press Enter.




  • Glue: The glue button at the top will determine if the loop is glued into a single file when you press Apply.

  • Loops: The number of loops to make for each selected item.


  • Space: Space (in seconds) to add between loops when creating more than 1.

  • Shuffle variation positions: When creating more than a single loop inside of a time selection, this can be used to shuffle the positions of the loops. This is useful for creating random variations of a loop.

  • Second snap: This snaps the start and end positions of the loop to the nearest second.

  • Match length of overlapping items: If you have items on separate tracks that overlap, this will make the length of the resulting loops match the length of the shortest item.


  • Length: This setting determines the proportional amount of crossfade length to use when making the loop. Higher times will have smoother transitions, but the resulting loops will be shorter.

  • Curve: The shape of the crossfade curve.

  • Max: The max length of a crossfade. This is useful for not creating unnecessarily long crossfades on longer loops > 1 minute.

Shepard Tone

By opening the Shepard tone header, the script will enter into Shepard Tone mode. This disables certain setting since the loop length is going to be exactly equal to the original loop length divided by 2 to the power of the number of loops.

When in Shepard Tone mode, create a Shepard Tone by adding a pitch envelope to the item and crossfading between two different pitches. If you change the number of loops in the main section, it will make the loop length shorter but also increase the amount of simultaneous pitch ramps.

  • Pitch: The amount of pitch movement up or down in the loop.


This section will disable Shepard Tone when it’s opened and return the script into the normal loop mode. It will also show a list of the zero-crossings found in each of your selected items.

  • Offset: This setting determines where in the item the zero-crossing will be searched for. A value of 0 will search in the center of the item. This is helpful for determining the content that gets used for the crossfades.


  • Color items: If enabled, the resulting loops will be colored differently in order to help distinguish between them and the original items.

  • Remove extensions: This setting will automatically remove any extensions from the filenames before they are renamed, resulting in cleaner filenames.

  • Prefix: Text to add to the beginning of the filename.

  • Suffix: Text to add to the end of the filename.

  • Separator: This is the character that will be used to separate the prefix, suffix, numbers, and original filename.

  • Number: This will enable automatic numbering of the resulting filenames.

  • Starting number: The number to start the numbering at.

  • Leading zeros: The number of leading zeros to use for the numbering.

Known Issues

  • Occasionally, the script won’t be able to find a zero-crossing. This almost always is the case with surround files. It can still make perfect loops, but they won’t start at a zero-crossing.

  • The Shepard tone mode is still a bit experimental and can be somewhat finicky. You might need to play around a bit with the settings before finding something that works well.

  • Switching project tabs while the script is open will not properly reset the loop preview. For now, it’s recommended to close the script before switching tabs.


    + Fixed: when glueing loops in a time selection, the glued items were duplicated for no reason
    + Link to documentation when clicking on logo
    + Show warning about time selection when opening script for the first time with a time selection
    + Trial improvements
    + Removing prefix/suffix from existing name before renaming so that it doesn't get added multiple times
    + Testing Osara support
    + Remove playback solo and time selection when closing script while playing
    - Fixed: crash when changing project (unfortunately selected item is left in looped state, but this is better than crashing)
    - Fixed: issue with certain keyboard shortcuts not working after opening preferences
    - Theme import not working on Windows
    - Incorrect colors of items on macOS
    - Fixed: crash on upgrade popup
    + Support for import/export and global themes in theme editor
    + Disable match length of overlapping items setting while in shepard tone mode
    + Changing name of "disable auto updates" setting to "disable real-time updates" to be more clear
    - Fixed: global actions run while script is focused should no longer cause unexpected behavior unless they directly modify the selected loop items. Note: it's still not recommended to use global actions while the script is focused.
    + Improved behavior when playing back loop (solos item tracks).
    + Playback is now stopped when script is refocused in order to prevent unexpected behavior.
    + New Play and Stop actions can be assigned to user hotkeys.
    - Fixed: second snap setting shouldn't be applied to loops matching a time selection.
    + Refactoring debugging code
    + Pin button to allow script to remain open. Processed loops are unselected after applying.
    + New action: Apply (keep open)
    + UI improvements/changes to account for pin button
    - Fixed: author name in reapack description
    - Fixed: possible crash on load with certain machines
2.0.0 Initial release of nvk_LOOPMAKER 2
1.2.7 Refactoring
1.2.6 Fixed: auto-crossfade on split setting caused loops to have fades when they shouldn't
1.2.3 Minor bug fixes
1.2.2 Fix issue where length floor setting wouldn't work if rendering multiple loops per item
1.2.1 Compatibility with new Render Smart script
1.2 New experimental feature: Shepard Tone
   -If shepard tone is set to value other than 0, a special loop will be created which sounds as though the loop is constantly pitching up or down depending on the setting. All other settings are ignored while using this option, and only one loop is created per selected item.
   -Fix issues if ripple editing is enabled
   -Licensing improvements - trial
1.1.7 Fixed bug if "Trim content behind media items when editing" is enabled when making multiple loops (requires SWS Extension)
1.1.6 More licensing improvements
1.1.5 Licensing improvements
1.1.4 Experimental option in script flags to not remove loop points with mouse click while script is running. Fixing bug when no zero crossings are found in item.
1.1.3 Minor fixes
1.1.2 Fixing bugs with multiple loops and time selection
1.1.1 Time selection now works with multiple loops per item
1.1 New feature: if you make a time selection and only have one item per track selected (and are only making one loop per item), nvk_LOOPMAKER will automatically fit your loops to the time selection, extending and duplicating if necessary.