<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.reaperaccessibility.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chessel</id>
	<title>Reaper Accessibility Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.reaperaccessibility.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chessel"/>
	<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/wiki/Special:Contributions/Chessel"/>
	<updated>2026-04-24T08:22:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Useful_Links_and_Resources&amp;diff=628</id>
		<title>Useful Links and Resources</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Useful_Links_and_Resources&amp;diff=628"/>
		<updated>2023-11-28T18:01:27Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* Toni barth&amp;#039;s reaPack Repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Useful Links and Resources =&lt;br /&gt;
&lt;br /&gt;
== Other Reaper Specific Resources ==&lt;br /&gt;
&lt;br /&gt;
In addition to the already mentioned sws extensions, there are some more packs and sites (usually created by users) that further extend the functionality and knowledge of reaper. A (hopefully) comprehensive list of these follows. Please note that the accessibility of some of those is not thoroughly tested  and cannot be guaranteed. However, you might find something fun or useful here, Who knows?&lt;br /&gt;
*mentioned in the manual and elsewhere, there is the [http://stash.reaper.fm reaper stash,] where you can download presets, scripts, instrument banks, themes, language packs and so on.&lt;br /&gt;
*The cockos wiki has documentation available for [http://wiki.cockos.com/wiki/index.php/Jesusonic_Effects_Documentation many of the other supplied effects]  that are not in the [[ReaEffects guide]]&lt;br /&gt;
* [https://reapack.com/ ReaPack] is a freeware utility which manages and installs user created scripts for a really vast number of tricks and functions. Its interface is accessible.&lt;br /&gt;
* [https://www.helgoboss.org/projects/playtime/ playtime] is a paid vst especially designed for Reaper which claims to add Ableton Live like features and functionality. Currently not an accessible utility.&lt;br /&gt;
*For some nice free sampled acoustic drums there are several versions of  [https://smmdrums.wordpress.com this kit,] which was originally and especially designed to use reaper&#039;s only stock plug-ins. And [https://groovemonkee.com/blogs/blog/megareaper-sm-drums-freebie a few complementary professionally designed free grooves from groovemonkee] to go with it.&lt;br /&gt;
* [http://vordio.net/ Vordio] is a free audio post production workflow tool that converts XML exported from an NLE video project from programs like Final cut Pro, Premiere Pro, or DaVinci Resolve, into a REAPER audio project for audio post production.&lt;br /&gt;
*[https://reaperblog.net/ the reaper blog] provides paid one on one support, lots of free learning materials for reaper, plug-in reviews, tips, tutorials and more.&lt;br /&gt;
* [http://www.ambisonictoolkit.net/ The Ambisonic Toolkit] &amp;quot;brings together a number of classic and novel tools for the artist working with Ambisonic surround sound.&amp;quot; A set of reaper js effects scripts are available from their site.&lt;br /&gt;
* [http://www.aatranslator.com.au/ AA translator] is a paid utility that aims to convert sessions or projects files from different DAWS.&lt;br /&gt;
*Last but not least, there are [https://www.tb-software.com/TBProAudio/accessiblemeter.html accessible spectrum (frequency) analysis, phase analysis and peak meter vst tools] you can use in reaper.&lt;br /&gt;
&lt;br /&gt;
This wiki also has been [https://drive.google.com/uc?export=download&amp;amp;id=17MaD9YjSEguxWzKVO3-0XTQ-cxev-FiS archived offline in wikiSyntax form only, for now].&lt;br /&gt;
&lt;br /&gt;
== User Groups, Community Support and Resources focused on accessibility ==&lt;br /&gt;
&lt;br /&gt;
=== Reapers Without Peepers (an email list hosted on groups.io) ===&lt;br /&gt;
&lt;br /&gt;
The RWP (Reapers Without Peepers) mailing list, is a very helpful place for those learning or using Reaper. Discussion of Reaper&#039;s accessibility via any means on either the Windows or Mac platforms is welcome. You can [https://groups.io/g/rwp join RWP here.]&lt;br /&gt;
&lt;br /&gt;
=== Reaper Access (a friendly, active group on WhatsApp) ===&lt;br /&gt;
&lt;br /&gt;
This WhatsApp group is another source of assistance for people who are interested in learning or indeed already using Reaper. It tends to be higher traffic than RWP. It&#039;s a fairly loose, friendly hang, and has proven to be a great place to collaborate and/or get critique. Most of the messages being exchanged day-to-day are voice notes, but people who prefer to text are equally welcome.&lt;br /&gt;
&lt;br /&gt;
To minimize spam, we&#039;ve unfortunately had to pull down the direct link. Instead, we&#039;re going to give you an easy-to-follow description of how you can join. This measure keeps the group readily available to humans, whilst slamming the door firmly in the face of spam bots.&lt;br /&gt;
&lt;br /&gt;
To join the group, you&#039;ll need a device with WhatsApp installed (iPhone, Android etc).&lt;br /&gt;
&lt;br /&gt;
Open the browser on your device, and assemble the shortened link described below in your address bar.&lt;br /&gt;
&lt;br /&gt;
*The link starts with www and a dot, as usual.&lt;br /&gt;
*Then you&#039;ll want to type the word tiny, another dot, and the letters cc.&lt;br /&gt;
*Next comes a forward slash.&lt;br /&gt;
*After the forward slash, type the word ReaperAccess exactly as it is written here.&lt;br /&gt;
*Notice that there are no spaces anywhere in the link, and you&#039;ll want to make sure that the first letter of Reaper and the first letter of Access are both uppercase.&lt;br /&gt;
&lt;br /&gt;
If you get stuck following those instructions, just subscribe to RWP and let them know that you&#039;d like to be added to the WhatsApp group. Someone will get you hooked up.&lt;br /&gt;
&lt;br /&gt;
=== REAPER Dropbox ===&lt;br /&gt;
&lt;br /&gt;
This is a community-maintained, accessibility-focused Dropbox folder that&#039;s choc full of useful content, including custom actions, audio and text tutorials, templates, preset libraries and free instruments that can all be used to some extent with screen reader software. Some of the content is mirrored on this here site, but new stuff tends to hit the Dropbox first. If you&#039;d like to subscribe, just ask for an invitation on RWP or WhatsApp.&lt;br /&gt;
&lt;br /&gt;
Right now, the resource is a bit bigger than Dropbox&#039;s space allowance on their free plan. Migration to a different service will be completed soon. In the meantime, if you&#039;re on the free plan, you can [https://seafile.mur.org.uk/f/2a9546217f304002b89d/?dl=1 download November&#039;s Dropbox snapshot] instead of subscribing.&lt;br /&gt;
&lt;br /&gt;
=== Reaper Accessible Archive ===&lt;br /&gt;
&lt;br /&gt;
Lee Julien, along with others, compiles a growing archive of useful resources. It includes:&lt;br /&gt;
* Excellent tutorials in French language&lt;br /&gt;
* An alternative to the default OSARA keymap&lt;br /&gt;
* [http://reaperaccessible.fr/archives/LBL%20Add-On%20For%20NVDA.zip LBL, a free NVDA add-on which provides bolt-on accessibility support for a growing number of software instruments (also includes overlays from the SIBIAC add-on)]&lt;br /&gt;
* Steven Slate Drums Accessibility bundle for NVDA&lt;br /&gt;
* SessionDrummer3 accessibility info &lt;br /&gt;
* The free instrument and plugins library, ReaLibrary&lt;br /&gt;
* Audio and MIDI loops &lt;br /&gt;
And much more.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
[https://en.reaperaccessible.fr Here is the English list of resources shared by reaperaccessible.fr]&lt;br /&gt;
&lt;br /&gt;
[https://reaperaccessible.fr Go to reaperaccessible.fr home page for French content]&lt;br /&gt;
&lt;br /&gt;
== Tutorials and Presentations ==&lt;br /&gt;
&lt;br /&gt;
=== Reaper Made Easy: free training from The Global Voice ===&lt;br /&gt;
&lt;br /&gt;
This is the most recently recorded series of free screen reader focused tutorial content that we know of. The first batch of lessons starts right at the beginning, covering concepts and installation of everything you&#039;ll need on Windows and Mac. There&#039;s plenty more to come over time, you&#039;d be wise to bookmark the [https://theglobalvoice.info/reaper Reaper Made Easy landing page.]&lt;br /&gt;
&lt;br /&gt;
=== Ten Typical Tasks with Scott ===&lt;br /&gt;
&lt;br /&gt;
These are bite-size tutorials covering the basics of editing, recording and using effects. Reaper on Windows is what you&#039;ll hear being demoed, but keystrokes and notes for Mac folk are also included all the way through.&lt;br /&gt;
&lt;br /&gt;
You can either [https://nextcloud.danielwproductions.com/index.php/s/aLPkZka2Yk2Pk9H/download grab a zip file containing the whole series], or [https://nextcloud.danielwproductions.com/index.php/s/aLPkZka2Yk2Pk9H browse and download individual files as required.]&lt;br /&gt;
&lt;br /&gt;
Shout out to Daniel Wolak for hosting the content.&lt;br /&gt;
&lt;br /&gt;
This series took a considerable amount of time and effort to make. If it proves to be useful to you, and you&#039;re in a position to be able to support its author, [https://paypal.me/ScottChesworth donations sent here will reach Scott, its presenter.] Any amount will be massively appreciated, but rest assured that donation is completely optional.&lt;br /&gt;
&lt;br /&gt;
=== ReaProducer Podcast ===&lt;br /&gt;
&lt;br /&gt;
This free set of audio tutorials by Garth Humphreys and occasional guests can be found at [http://reaproducer.com The ReaProducer Standalone Site]. If you&#039;d prefer to subscribe, [https://itunes.apple.com/podcast/id1170942901?mt=2&amp;amp;ls=1 here&#039;s the ReaProducer Podcast feed for Apple Podcasts], or [http://reaproducer.com/index.php/feed/ here&#039;s the RSS feed for other podcast catchers.] Most of these episodes have been produced on the Mac, however Garth has always been mindful to make sure that his content is applicable to both platforms.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re new to Reaper, it is recommended that you work through the first few tutorials in order. They start with installation, and move through important concepts, such as importing media, recording, and editing with both time selections and items. How to Save and Render projects is also covered, along with side-chaining and an introduction to automation. There really is a ton of useful info contained within these bite-sized tutorials.&lt;br /&gt;
&lt;br /&gt;
===Audio Access Youtube Videos===&lt;br /&gt;
&lt;br /&gt;
Mohomed Rashad,  has made many videos on how to use Reaper with a screen reader some with thousands of views.  He covers a wide range of topics which start from the very beginning of how to get set up.&lt;br /&gt;
[https://www.youtube.com/channel/UCRGSnf4c1Wps8_dAm-s5x-w Audio Access channel home page.]&lt;br /&gt;
&lt;br /&gt;
=== Recordings of Live Streams and Presentations ===&lt;br /&gt;
&lt;br /&gt;
==== Sound Design With Justin Macleod ====&lt;br /&gt;
&lt;br /&gt;
Justin Macleod (a Reaper power user from the UK with serious sound design chops) has taken to live streaming deep dives into various topics. These sessions are part presentation, part exploration, part Q&amp;amp;A. Here&#039;s a folder containing [https://nextcloud.danielwproductions.com/index.php/s/BwcC2mdPPtNjfiz recordings of previous live streams] (shout out to Daniel Wolak for hosting).&lt;br /&gt;
&lt;br /&gt;
The topics covered are loosely voted on by members of RWP. Keep a lookout for emails with #Demo in the subject line to find out when the next stream will be.&lt;br /&gt;
&lt;br /&gt;
Justin streams on TeamTalk. If you&#039;re new to that platform and need help getting hooked up, just ask.&lt;br /&gt;
&lt;br /&gt;
If you appreciate his efforts, [http://www.paypal.me/jmacleod Justin massively appreciates donations via PayPal.]&lt;br /&gt;
&lt;br /&gt;
==== Toni Barth Music ==== &lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCY9gmULHVuRSMsymsrMmwdw/videos The Toni barth Music Youtube channel] is a series of posts with each one focusing on a specific topic.  Many are about Reaper accessibility and include the stock EQ plug-in, the media explorer, the peak watcher and many more.&lt;br /&gt;
&lt;br /&gt;
==== CAVI Courses (aging, but still useful resources)====&lt;br /&gt;
&lt;br /&gt;
For a few years, CAVI (Cisco Academy for the Vision Impaired) ran popular courses designed for people who were getting started with Audio Production and more specifically, Reaper.&lt;br /&gt;
&lt;br /&gt;
In March 2018, all of the previously available audio related course materials were released for free. The links to the actual audio content have since been pulled, but Daniel Wolak has once again saved the day. Use the following links to browse and download the audio content from his server:&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/jX94eGtoJJ5Neqo Audio Essentials (2017, Semester 1]&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/m9ZG46GyMEjsAQw Reaper Beginners]&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/mNkpX9AimyAAAR6 Reaper Advanced]&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/RLff77YRjjNB7p9 Reaper MIDI]&lt;br /&gt;
&lt;br /&gt;
The wiki content from previous courses can still be found [http://wiki.cucat.org/index.php/Main/AudioInsAndOuts here.]&lt;br /&gt;
&lt;br /&gt;
Nowadays the materials therein are getting a little long in the tooth, but there&#039;s still plenty to be learned, so grab &#039;em while you can. We&#039;ll only be linking to them until they&#039;re superseded by free content that&#039;s more current.&lt;br /&gt;
&lt;br /&gt;
==== Chris Belle&#039;s Tutorials ====&lt;br /&gt;
&lt;br /&gt;
Reaper user Chris Belle has very generously offered a set of free tutorials, which can be downloaded from these two mirrors [https://drive.google.com/uc?export=download&amp;amp;id=1RCHImJg6WQMPjcjArR1JxxUCrhPJNzhl (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/reaper+free.zip (mirror link 2)]&lt;br /&gt;
They contain the following: &lt;br /&gt;
*About the actions list&lt;br /&gt;
*making custom actions&lt;br /&gt;
*Editing basics, and an explanation of the [[chapter 7: Editing Tracks and Items#7.31 Ripple Editing|reaper ripple editing modes]]&lt;br /&gt;
*[[ReaEffects guide#6.6 Subtract Mode|noise reduction]] with reaper&lt;br /&gt;
&lt;br /&gt;
*Using [[Chapter 10: Pitch and Time Manipulation#10.8 Stretch Markers|stretch markers]]&lt;br /&gt;
* [[Sidechaining_with_ReaComp|Side-chaining with ReaComp]]&lt;br /&gt;
&lt;br /&gt;
==== Patrick Perdue&#039;s Tutorials ====&lt;br /&gt;
&lt;br /&gt;
Patrick Perdue recorded a tutorial on using vocoders with reaper. The stock ReaVocode plugin is explained first, then Patrick demonstrates other third-party vocoders.&lt;br /&gt;
Download: [https://drive.google.com/uc?export=download&amp;amp;id=1nx7LXb5Q5UQikbGKEKPugyna1OP4tcyZ (mirror 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/UsingVocodersWithReaper.mp3 (mirror 2)]&lt;br /&gt;
&lt;br /&gt;
==== Podcasts on CoolBlindTech.com ====&lt;br /&gt;
&lt;br /&gt;
A growing set of podcasts have been done by members of the CoolBlindTech.com team, mostly by Alex Hiironen. They cover many things, from basics to using some effects and virtual instruments. &lt;br /&gt;
They are somewhat scattered, but the first of them are presented in a (hopefully) organized manner. &lt;br /&gt;
Note: they seem to be applicable to windows only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [https://coolblindtech.com/reaper-on-windows-episode-1-general-introduction-why-reaper-is-awesome/ part 1, why is reaper awesome]&lt;br /&gt;
* [https://coolblindtech.com/reaper-part-2-rudimentary-recording-for-windows/ part 2, rudimentary recording]&lt;br /&gt;
* [https://coolblindtech.com/reaper-windows-part-3-configure-play/ part 3, recommended configurations] &lt;br /&gt;
* [https://coolblindtech.com/reaper-windows-part-4-tracking-next-single/ part 4 tracking your next single] &lt;br /&gt;
* [https://coolblindtech.com/?s=reaper and so on and so on]&lt;br /&gt;
&lt;br /&gt;
== Accessibility Enhancing Scripts ==&lt;br /&gt;
&lt;br /&gt;
Now follows a large collection of utilities and scripts created mostly by blind reaper users. Most of these are windows based, though you might find useful reaper presets and tricks  as well.&lt;br /&gt;
&lt;br /&gt;
=== Access4Music Scripts and Utilities ===&lt;br /&gt;
&lt;br /&gt;
This is a collection of links that point to scripts that allow the user to access [http://access4music.com/en/script various third-party software instruments] and [http://access4music.com/en/script/utilities as well as enhancing the accessibility of Reaper&#039;s MIDI Event List]. Access4Music is a small Italian team of visually impaired programmers.&lt;br /&gt;
&lt;br /&gt;
=== Free NumPad and Applications Key Emulation Scripts ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using a laptop that doesn&#039;t have an embedded numeric keypad but you&#039;d still like to use those keys in Reaper, here is a [https://www.sendspace.com/pro/dl/yffgb7 numpad key emulator script by Andrew Downie] &lt;br /&gt;
[https://drive.google.com/uc?export=download&amp;amp;id=1e52FT7Qf2EKtcBvujKohgaHx86BPyaXQ (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/andrew&#039;s+numpad-keys-v22.exe (mirror link 2)]along with its corresponding [https://www.sendspace.com/pro/dl/s7dl6n auto hotkey source code] [https://drive.google.com/uc?export=download&amp;amp;id=1N4NH8mm5SpGsGzWoe9H6dk2SEAD4yLJS (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/andrews+sourceCode+numpad-keys-v22.ahk (mirror link 2)]. This nifty script reminds you if you&#039;ve accidentally left the NumPad emulation turned on by a series of beeps, and you can configure how often you get reminded. The script activates the NumPad emulation by default as soon as it is opened. It also displays a dialog box with configuration options and a list of the hotkeys used. Quite self-explanatory by design, but if you get stuck, Andrew has been known to haunt RWP from time to time.&lt;br /&gt;
&lt;br /&gt;
On Windows, Shift+F10 doesn&#039;t always work as a substitute for the Applications key inside Reaper. If you&#039;re stuck on a keyboard without an Applications key, here is an [https://www.dropbox.com/s/rnzv0abmf7cqu7b/AppsKey4Reaper.exe?dl=1 Applications key emulation script] [https://drive.google.com/uc?export=download&amp;amp;id=1b6hIV-V_emIouVuRpAdPL2KbdodlQCJl (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/Matej+Golians+AppsKey4Reaper.exe (mirror link 2)] available (written by Matej Golian). launch it every time you want to work in REAPER. You can&lt;br /&gt;
 then use the right CTRL key instead of the applications key. So for&lt;br /&gt;
 example the shortcut alt+applications will become alt+right CTRL.&lt;br /&gt;
&lt;br /&gt;
The Access4Music team also has [http://www.access4music.com/en/script/utilities their own version of an Applications key script] along with another handy utility which makes it possible to read columns in Reaper&#039;s MIDI Event List individually.&lt;br /&gt;
&lt;br /&gt;
Last but by no means least, [https://www.sendspace.com/pro/dl/3ut3tk here is Andrew Downie&#039;s version of an Applications key emulation script] [https://drive.google.com/uc?export=download&amp;amp;id=1DhAb6ljrgu9t_gohBqubxQAD3dj2_98h (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/Andrew+Downie&#039;s+appskey.exe (mirror link 2)]&lt;br /&gt;
&lt;br /&gt;
=== Sibiac NVDA Add-on ===&lt;br /&gt;
&lt;br /&gt;
A sighted programmer from Germany, known as [http://azslow.com/ Az,] (Alexey Zhelezov) has very generously created the [[SIBIAC add-on for NVDA]] which aims to make a growing list of third-party fx or instrument plugins accessible. These include addictive drums 2, toontrack EzMix 2, and the worldwide renowned Melodyne, among many others.&lt;br /&gt;
&lt;br /&gt;
=== accessibility bundle (Sonorous Arts Group) ===&lt;br /&gt;
&lt;br /&gt;
Accessibility Bundle is a set of screen reader independent, easy to&lt;br /&gt;
use helpers packed into one application which aims at making different&lt;br /&gt;
pieces of software more accessible for the blind and visually&lt;br /&gt;
impaired.&lt;br /&gt;
This set was created with integrity and portability in mind; No&lt;br /&gt;
installers and no launching a bunch of scripts to get your software&lt;br /&gt;
working (Run once, Use anywhere).&lt;br /&gt;
It currently supports Xfer Serum, Tone2 Icarus (version 1.x), Native&lt;br /&gt;
Instruments Kontakt 6 and Native Instruments Kontakt 7 (Only partially&lt;br /&gt;
supported).&lt;br /&gt;
For more information, Refer to the readme file present in the&lt;br /&gt;
compressed archive.&lt;br /&gt;
You may always [https://sonorousarts.com/product-manager/products/download/3/ download the latest version of the accessibility bundle here].&lt;br /&gt;
&lt;br /&gt;
===Toni barth&#039;s reaPack Repository===&lt;br /&gt;
There are a bunch of useful scripts and plugins available from Toni barth&#039;s reaPack repository.  Add the following URL to your reaPack:&lt;br /&gt;
https://github.com/Timtam/reapack/raw/master/index.xml&lt;br /&gt;
&lt;br /&gt;
== a list of third party accessible instruments and effects ==&lt;br /&gt;
&lt;br /&gt;
Note: this probably needs its own page if it grows too much? (see or start a discussion on this topic)&lt;br /&gt;
&lt;br /&gt;
Even though most virtual instruments and effects are highly visually oriented, some of those are being successfully controlled and used by blind and visually impaired people via a combination of automation parameters, OCR and various bolt-on scripted solutions. The choices mentioned on this page are a loosely organized, non-exhaustive list of feedback compiled from all corners of the Reaper accessibility community. Discussing automation parameters from the ground up is certainly beyond the scope of this page, instead, you&#039;re more likely to find hints on which parameters of an instrument or plugin can be manipulated using OSARA&#039;s Parameters dialog, or tips on parameters that are misleadingly labelled, to take a few examples at random. It is recommended, but not always necessary that plugins are opened in bridged mode with dedicated process per plugin (most often the case if you&#039;re attempting to access a plugin with an AutoHotkey script from the likes of Access4Music). Brace yourselves, there are MANY of them. User reports follow:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Waves Accessibility ===&lt;br /&gt;
&lt;br /&gt;
The presets for most Waves plugins are accessible when loaded in VST3 mode. Parameters are labeled correctly and most will provide real-world values. Notable (but likely not the only) exceptions are Waves Tune LT, GTR3 Stomps and GTR3 Tool Rack (where the stomp box parameters are not labeled because they are interchangeable). Sibiac provides some accessibility to the GTR3 Tool Rack plugin.&lt;br /&gt;
&lt;br /&gt;
* All of the reverbs, including renaissance, trueVerb, echo. Built in Presets are selectable from the slider as well, but cannot be edited from the text box. Also, when setting parameters like frequency ranges (in hertz) or room sizes for the reverbs the editable field shows values that do not correspond at all with the reported parameters so its better to just stick to the slider when manipulating those effects.&lt;br /&gt;
* RVox (a vocal compressor) and C6 (a multi-band compressor/equalizer) can be used without any problems as well.&lt;br /&gt;
*GTR3: The accessibility isn’t quite as good as some of their other plugs (not all the parameters show formatted values) The only  labeled parameter is the on/off switch for each box, so that will help you find out which box is which.  The GTR3 Tool Rack requires a golden cursor location to load presets properly, but is doable with no problems, which when loaded will prompt an accessible context menu. It’s also very modular, so you can access just stomps, just amps/cabs etc as separate plugs and use the fx chain to switch around the order of those boxes if you want. Reaper user Gerad Deuvall has created [https://www.youtube.com/watch?v=Ez490lJaFX8 a youtube video demonstrating its use]&lt;br /&gt;
&lt;br /&gt;
=== PianoTeq 6 ===&lt;br /&gt;
&lt;br /&gt;
All of the presets for pianos, harps ETC are now visible to reaper. Just go to the FX window by hitting F on the track that has PianoTeq instantiated on it, tab to the Presets combo box and use your ArrowUp and ArrowDown keys to navigate the choices.&lt;br /&gt;
&lt;br /&gt;
Since version 6.1, automatable parameters are accessible in the OSARA Parameters dialog.&lt;br /&gt;
However, changing between the different pianos is a bit tricky. Here&#039;s a suggested way of doing it:&lt;br /&gt;
Press F on the relevant track to open the FX window, make sure PianoTeq is selected in the FX chain list box, then tab until you find an unlabelled check box. Using NVDA&#039;s object navigation, go to the next object (note that you need to use object nav, you can&#039;t tab to this area of the screen). It&#039;s reported as &amp;quot;unknown&amp;quot; by NVDA. Using NVDA+Shift+NumPadMinus, set focus to that &amp;quot;unknown&amp;quot; object. That object is the PianoTeq GUI itself, and it isn&#039;t accessible, but once focused, it does react to some key presses. Control+N switches between categories of instruments, and N switches from instrument to instrument. Your controller will continue working while you are interacting with the inaccessible GUI, so you can play a few notes, hit N, play some more, and so on until you&#039;ve found a preset you like. Performing OCR may even tell you which preset that was.&lt;br /&gt;
&lt;br /&gt;
=== Omnisphere 2 ===&lt;br /&gt;
&lt;br /&gt;
Omnisphere is partially accessible if you&#039;re comfortable with concepts like review cursor in screen mode, object navigation with the use of the number pad, simulated clicking and relocating cursor. This also means that expansions like Keyscape, Trilion, ETC. will work too. You can change preset banks, select visible lists and some other settings. To navigate more presets, you will have to scroll with a mouse wheel.&lt;br /&gt;
&lt;br /&gt;
After the plugin is instantiated in REAPER’s FX Window, use Shift+Tab to move to the “Add” button, then press UpArrow to get into Omnisphere’s GUI.&lt;br /&gt;
Use NVDA’s screen review to navigate to the area where NVDA will report “software version x.x, or sound sources version x.x&amp;quot; (where x is the version you’re using). Move the mouse pointer to this information with NVDA+NumPad+Slash, and press the NumPad+Slash to click. You’ll be taken to the library tab of the plugin GUI.&lt;br /&gt;
Using screen review, you’ll find some category filters such as type of sound, (for example, bells and vibs, ARP+BPM, etc). Filter the sounds as needed by selecting the appropriate filter using the above commands. Once again, they&#039;re NVDA+NumPad+Slash to move the mouse pointer to the desired item, and NumPad+Slash to click. The list of sounds in the category you&#039;ve chosen will appear on the right of the screen, after where NVDA says: “normal”.&lt;br /&gt;
Still using screen review, select your first sound and play your keyboard to see whether you like it. Once the first sound has been clicked, you&#039;ll be able to navigate through other sounds in that category using UpArrow and DownArrow. Note that the sound list wraps; that means if you have reached the last sound on the list, when you press DownArrow again, you’ll be at the very first sound.&lt;br /&gt;
&lt;br /&gt;
Hint: if you need to open another instance of Omnisphere during your session, from that instance of the plugin onward, you’ll be taken directly to the Library tab. It&#039;s recommended to save any sounds you like as user presets by hitting Shift+Space on the Plus button in REAPER&#039;s FX window. This will enable you to recall them quickly without having to muck about in the plugin GUI as described above every time.&lt;br /&gt;
&lt;br /&gt;
=== Addictive Drums 2 ===&lt;br /&gt;
&lt;br /&gt;
You can make some changes and preset selections with OCR. You can also change kit pieces and presets, but it&#039;s limited.&lt;br /&gt;
&lt;br /&gt;
For NVDA, the [[SIBIAC add on for NVDA|Sibiac framework]] allows almost complete operation (except for MIDI groove selection). You can [http://www.azslow.com/index.php?topic=372.0 get more info on Sibiac here]&lt;br /&gt;
&lt;br /&gt;
=== iZotope Plugins ===&lt;br /&gt;
&lt;br /&gt;
* Nectar 2 and Neutron 2: once you find the Presets menu with OCR, you can browse the subcategories with NVDA speech, using the arrow keys, however, the main category title is not announced.   It behaves like a folder tree though. &lt;br /&gt;
* Nectar elements: in addition to parameters being reported correctly, there is a user created rpl (reaper presets library) file which allows these to be selected just like any other preset from the regular effects dialog. It contains all presets of Nectar Elements, plus two special packs: Styles 1 and Utility pack. Many thanks to Alan Escola. The file can be  found [https://www.dropbox.com/s/6wm7uodb2euigrl/NectarElements%20RPL%20Pack.zip?dl=1 via this dropbox link] [https://drive.google.com/uc?export=download&amp;amp;id=18cmrukS_JvN8vm0xMQ_NccaTWCHhmBHB (mirror 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/NectarElements+RPL+Pack.zip (mirror 2)] &lt;br /&gt;
* iZotope OZone 8: Once you find the preset menu with OCR, a dialog box will pop up and you can arrow through the presets with speech.&lt;br /&gt;
*The iZotope DDLY Dynamic Delay and iZotope Vinyl plugins are all properly labeled from the parameter list. The DDLY plugin allows two different delays to be applied to the same track, and can be downloaded as a trial if you want to see it for yourself. The Vinyl plugin is free, and adds a vinyl noise effect to the track which you apply it to.&lt;br /&gt;
&lt;br /&gt;
=== Cakewalk Dimension Pro ===&lt;br /&gt;
&lt;br /&gt;
Use OCR to find the preset selection, and when you hit enter, an accessible dialog box will pop up. Scripts are also available at the [http://access4music.com/en/script music access site].&lt;br /&gt;
&lt;br /&gt;
=== Superior Drummer 2 ===&lt;br /&gt;
&lt;br /&gt;
OCR works okay with this in Classic Mode since all kit pieces are stationary, no matter the expansion selected.  Problem is, you have to use OCR to go to some menus to select classic mode, then from there, you have to find some text, move your cursor slightly above, and right click  and you will be able to read the context menus with speech for kit selection pieces.  The Learn button is also somewhat visible, making this extremely tricky but can be done.  Probably not worth the headaches though.&lt;br /&gt;
&lt;br /&gt;
Scripts are also available at the [http://access4music.com/en/script music access site].&lt;br /&gt;
&lt;br /&gt;
=== SoniVox VSTs ===&lt;br /&gt;
&lt;br /&gt;
I&#039;ve noticed that SoniVox VSTs are accessible.  You can just tab down to the presets menus, and it lists all the different instruments there.  I have SoniVox Orchestra companion Strings, Brass, and woodwinds, and they all work in that exact same way.  I also have SoniVox&#039;s Harpsichord, session drummer, classic bass, big band percussion, and singles taylor acoustic guitar and they all work perfectly accessibility wise.&lt;br /&gt;
Also The classic series of plugs work well, the free ones you can download from Mixcraft - classic delay, reverb, eq,  chorus, that entire set of plugs.&lt;br /&gt;
&lt;br /&gt;
=== Sugar Bytes ===&lt;br /&gt;
&lt;br /&gt;
The Sugar Bytes Unique virtual synthesizer is a virtual synth that specializes in vowel sounds. The parameters are visible in the list but are not labeled, but the preset list is accessible from the dropdown list that is found in the FX chain window. It can be downloaded as a trial as well.&lt;br /&gt;
&lt;br /&gt;
=== Versilian Studios ===&lt;br /&gt;
&lt;br /&gt;
Versilian Studios makes a ton of free and extremely affordable plugins that all seem to be fully accessible. I&#039;ve purchased a couple and have all the free ones, and have had no issues with the standalone versions, and I believe there are Kontakt versions of many of the plugins as well. However, note that the VSCO instruments are strictly Kontakt instruments, except for the community edition which is a free library of raw wave files from the Kontakt versions.&lt;br /&gt;
http://vis.versilstudios.net/products.html&lt;br /&gt;
&lt;br /&gt;
=== Korg Virtual Instruments ===&lt;br /&gt;
&lt;br /&gt;
* KORG Legacy: when I modify some parameters they do not cause any effect. Example, with KORG MS-20. It is a monophonic (or polyphonic) analog synthesizer from the 70s. There are some presets that are polyphonic, when I modify the parameter that is used to change the polyphony, I can not do it even though I used the slide bar in the corresponding parameter. It is something strange. The same happens with other parameters. Almost all parameters have a name, but some do not. Not only happens with the MS-20, it also happens with MonoPoly and Polysix. they are all from KORG Legacy.&lt;br /&gt;
* WaveStation and M1, there are no problems. WaveStation parameters are accessible through the GUI, while some can be accessed in the FX parameters box.&lt;br /&gt;
&lt;br /&gt;
== Using Yamaha SYXG 50 on Modern Machines ==&lt;br /&gt;
&lt;br /&gt;
For those wanting a gm compatible synth, [http://veg.by/en/projects/syxg50/ there is a recently updated version of this once popular Yamaha soft synth] [https://drive.google.com/uc?export=download&amp;amp;id=1Sl0n74XtxzDgxHIYSkzq1d_zOQmjB2Hk (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/yamaha_syxg50_vsti.7z (mirror link 2)]. Since newer windows systems do not have the ability to allow a particular midi device to be selected as the system default (older windows versions did), you must install [http://coolsoft.altervista.org/en/forum/post/2052/attachment?fid=473 this midi mapper] [https://drive.google.com/uc?export=download&amp;amp;id=1elnFGAFZdcCzUYI4QXO1I7_v_gVCuyBL (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/CoolSoft_MIDIMapper_0.9.0-beta5.exe (mirror link 2)] (you can log in with a google account or create one to be able to download it or just use the mirror links). After installing the [https://kode54.net/vstmididrv.exe VST midi system  synth driver] first according to the procedure described on the first link, you should be ready to go. It basically  acts as a midi mapper just like it did on the older windows  installations so that you can select the VST midi system synth as the system default. &lt;br /&gt;
The response of this VST is just as good. It tends to stutter a little especially when some new patches come in,  but no major issues have been reported. &lt;br /&gt;
If you plan to make music or do music production with it, then you should instantiate this by choosing the &amp;quot;Virtual instrument on new track&amp;quot; option from Reaper&#039;s Insert top menu.&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Useful_Links_and_Resources&amp;diff=627</id>
		<title>Useful Links and Resources</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Useful_Links_and_Resources&amp;diff=627"/>
		<updated>2023-11-28T17:58:44Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* accessibility bundle (Sonorous Arts Group) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Useful Links and Resources =&lt;br /&gt;
&lt;br /&gt;
== Other Reaper Specific Resources ==&lt;br /&gt;
&lt;br /&gt;
In addition to the already mentioned sws extensions, there are some more packs and sites (usually created by users) that further extend the functionality and knowledge of reaper. A (hopefully) comprehensive list of these follows. Please note that the accessibility of some of those is not thoroughly tested  and cannot be guaranteed. However, you might find something fun or useful here, Who knows?&lt;br /&gt;
*mentioned in the manual and elsewhere, there is the [http://stash.reaper.fm reaper stash,] where you can download presets, scripts, instrument banks, themes, language packs and so on.&lt;br /&gt;
*The cockos wiki has documentation available for [http://wiki.cockos.com/wiki/index.php/Jesusonic_Effects_Documentation many of the other supplied effects]  that are not in the [[ReaEffects guide]]&lt;br /&gt;
* [https://reapack.com/ ReaPack] is a freeware utility which manages and installs user created scripts for a really vast number of tricks and functions. Its interface is accessible.&lt;br /&gt;
* [https://www.helgoboss.org/projects/playtime/ playtime] is a paid vst especially designed for Reaper which claims to add Ableton Live like features and functionality. Currently not an accessible utility.&lt;br /&gt;
*For some nice free sampled acoustic drums there are several versions of  [https://smmdrums.wordpress.com this kit,] which was originally and especially designed to use reaper&#039;s only stock plug-ins. And [https://groovemonkee.com/blogs/blog/megareaper-sm-drums-freebie a few complementary professionally designed free grooves from groovemonkee] to go with it.&lt;br /&gt;
* [http://vordio.net/ Vordio] is a free audio post production workflow tool that converts XML exported from an NLE video project from programs like Final cut Pro, Premiere Pro, or DaVinci Resolve, into a REAPER audio project for audio post production.&lt;br /&gt;
*[https://reaperblog.net/ the reaper blog] provides paid one on one support, lots of free learning materials for reaper, plug-in reviews, tips, tutorials and more.&lt;br /&gt;
* [http://www.ambisonictoolkit.net/ The Ambisonic Toolkit] &amp;quot;brings together a number of classic and novel tools for the artist working with Ambisonic surround sound.&amp;quot; A set of reaper js effects scripts are available from their site.&lt;br /&gt;
* [http://www.aatranslator.com.au/ AA translator] is a paid utility that aims to convert sessions or projects files from different DAWS.&lt;br /&gt;
*Last but not least, there are [https://www.tb-software.com/TBProAudio/accessiblemeter.html accessible spectrum (frequency) analysis, phase analysis and peak meter vst tools] you can use in reaper.&lt;br /&gt;
&lt;br /&gt;
This wiki also has been [https://drive.google.com/uc?export=download&amp;amp;id=17MaD9YjSEguxWzKVO3-0XTQ-cxev-FiS archived offline in wikiSyntax form only, for now].&lt;br /&gt;
&lt;br /&gt;
== User Groups, Community Support and Resources focused on accessibility ==&lt;br /&gt;
&lt;br /&gt;
=== Reapers Without Peepers (an email list hosted on groups.io) ===&lt;br /&gt;
&lt;br /&gt;
The RWP (Reapers Without Peepers) mailing list, is a very helpful place for those learning or using Reaper. Discussion of Reaper&#039;s accessibility via any means on either the Windows or Mac platforms is welcome. You can [https://groups.io/g/rwp join RWP here.]&lt;br /&gt;
&lt;br /&gt;
=== Reaper Access (a friendly, active group on WhatsApp) ===&lt;br /&gt;
&lt;br /&gt;
This WhatsApp group is another source of assistance for people who are interested in learning or indeed already using Reaper. It tends to be higher traffic than RWP. It&#039;s a fairly loose, friendly hang, and has proven to be a great place to collaborate and/or get critique. Most of the messages being exchanged day-to-day are voice notes, but people who prefer to text are equally welcome.&lt;br /&gt;
&lt;br /&gt;
To minimize spam, we&#039;ve unfortunately had to pull down the direct link. Instead, we&#039;re going to give you an easy-to-follow description of how you can join. This measure keeps the group readily available to humans, whilst slamming the door firmly in the face of spam bots.&lt;br /&gt;
&lt;br /&gt;
To join the group, you&#039;ll need a device with WhatsApp installed (iPhone, Android etc).&lt;br /&gt;
&lt;br /&gt;
Open the browser on your device, and assemble the shortened link described below in your address bar.&lt;br /&gt;
&lt;br /&gt;
*The link starts with www and a dot, as usual.&lt;br /&gt;
*Then you&#039;ll want to type the word tiny, another dot, and the letters cc.&lt;br /&gt;
*Next comes a forward slash.&lt;br /&gt;
*After the forward slash, type the word ReaperAccess exactly as it is written here.&lt;br /&gt;
*Notice that there are no spaces anywhere in the link, and you&#039;ll want to make sure that the first letter of Reaper and the first letter of Access are both uppercase.&lt;br /&gt;
&lt;br /&gt;
If you get stuck following those instructions, just subscribe to RWP and let them know that you&#039;d like to be added to the WhatsApp group. Someone will get you hooked up.&lt;br /&gt;
&lt;br /&gt;
=== REAPER Dropbox ===&lt;br /&gt;
&lt;br /&gt;
This is a community-maintained, accessibility-focused Dropbox folder that&#039;s choc full of useful content, including custom actions, audio and text tutorials, templates, preset libraries and free instruments that can all be used to some extent with screen reader software. Some of the content is mirrored on this here site, but new stuff tends to hit the Dropbox first. If you&#039;d like to subscribe, just ask for an invitation on RWP or WhatsApp.&lt;br /&gt;
&lt;br /&gt;
Right now, the resource is a bit bigger than Dropbox&#039;s space allowance on their free plan. Migration to a different service will be completed soon. In the meantime, if you&#039;re on the free plan, you can [https://seafile.mur.org.uk/f/2a9546217f304002b89d/?dl=1 download November&#039;s Dropbox snapshot] instead of subscribing.&lt;br /&gt;
&lt;br /&gt;
=== Reaper Accessible Archive ===&lt;br /&gt;
&lt;br /&gt;
Lee Julien, along with others, compiles a growing archive of useful resources. It includes:&lt;br /&gt;
* Excellent tutorials in French language&lt;br /&gt;
* An alternative to the default OSARA keymap&lt;br /&gt;
* [http://reaperaccessible.fr/archives/LBL%20Add-On%20For%20NVDA.zip LBL, a free NVDA add-on which provides bolt-on accessibility support for a growing number of software instruments (also includes overlays from the SIBIAC add-on)]&lt;br /&gt;
* Steven Slate Drums Accessibility bundle for NVDA&lt;br /&gt;
* SessionDrummer3 accessibility info &lt;br /&gt;
* The free instrument and plugins library, ReaLibrary&lt;br /&gt;
* Audio and MIDI loops &lt;br /&gt;
And much more.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
[https://en.reaperaccessible.fr Here is the English list of resources shared by reaperaccessible.fr]&lt;br /&gt;
&lt;br /&gt;
[https://reaperaccessible.fr Go to reaperaccessible.fr home page for French content]&lt;br /&gt;
&lt;br /&gt;
== Tutorials and Presentations ==&lt;br /&gt;
&lt;br /&gt;
=== Reaper Made Easy: free training from The Global Voice ===&lt;br /&gt;
&lt;br /&gt;
This is the most recently recorded series of free screen reader focused tutorial content that we know of. The first batch of lessons starts right at the beginning, covering concepts and installation of everything you&#039;ll need on Windows and Mac. There&#039;s plenty more to come over time, you&#039;d be wise to bookmark the [https://theglobalvoice.info/reaper Reaper Made Easy landing page.]&lt;br /&gt;
&lt;br /&gt;
=== Ten Typical Tasks with Scott ===&lt;br /&gt;
&lt;br /&gt;
These are bite-size tutorials covering the basics of editing, recording and using effects. Reaper on Windows is what you&#039;ll hear being demoed, but keystrokes and notes for Mac folk are also included all the way through.&lt;br /&gt;
&lt;br /&gt;
You can either [https://nextcloud.danielwproductions.com/index.php/s/aLPkZka2Yk2Pk9H/download grab a zip file containing the whole series], or [https://nextcloud.danielwproductions.com/index.php/s/aLPkZka2Yk2Pk9H browse and download individual files as required.]&lt;br /&gt;
&lt;br /&gt;
Shout out to Daniel Wolak for hosting the content.&lt;br /&gt;
&lt;br /&gt;
This series took a considerable amount of time and effort to make. If it proves to be useful to you, and you&#039;re in a position to be able to support its author, [https://paypal.me/ScottChesworth donations sent here will reach Scott, its presenter.] Any amount will be massively appreciated, but rest assured that donation is completely optional.&lt;br /&gt;
&lt;br /&gt;
=== ReaProducer Podcast ===&lt;br /&gt;
&lt;br /&gt;
This free set of audio tutorials by Garth Humphreys and occasional guests can be found at [http://reaproducer.com The ReaProducer Standalone Site]. If you&#039;d prefer to subscribe, [https://itunes.apple.com/podcast/id1170942901?mt=2&amp;amp;ls=1 here&#039;s the ReaProducer Podcast feed for Apple Podcasts], or [http://reaproducer.com/index.php/feed/ here&#039;s the RSS feed for other podcast catchers.] Most of these episodes have been produced on the Mac, however Garth has always been mindful to make sure that his content is applicable to both platforms.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re new to Reaper, it is recommended that you work through the first few tutorials in order. They start with installation, and move through important concepts, such as importing media, recording, and editing with both time selections and items. How to Save and Render projects is also covered, along with side-chaining and an introduction to automation. There really is a ton of useful info contained within these bite-sized tutorials.&lt;br /&gt;
&lt;br /&gt;
===Audio Access Youtube Videos===&lt;br /&gt;
&lt;br /&gt;
Mohomed Rashad,  has made many videos on how to use Reaper with a screen reader some with thousands of views.  He covers a wide range of topics which start from the very beginning of how to get set up.&lt;br /&gt;
[https://www.youtube.com/channel/UCRGSnf4c1Wps8_dAm-s5x-w Audio Access channel home page.]&lt;br /&gt;
&lt;br /&gt;
=== Recordings of Live Streams and Presentations ===&lt;br /&gt;
&lt;br /&gt;
==== Sound Design With Justin Macleod ====&lt;br /&gt;
&lt;br /&gt;
Justin Macleod (a Reaper power user from the UK with serious sound design chops) has taken to live streaming deep dives into various topics. These sessions are part presentation, part exploration, part Q&amp;amp;A. Here&#039;s a folder containing [https://nextcloud.danielwproductions.com/index.php/s/BwcC2mdPPtNjfiz recordings of previous live streams] (shout out to Daniel Wolak for hosting).&lt;br /&gt;
&lt;br /&gt;
The topics covered are loosely voted on by members of RWP. Keep a lookout for emails with #Demo in the subject line to find out when the next stream will be.&lt;br /&gt;
&lt;br /&gt;
Justin streams on TeamTalk. If you&#039;re new to that platform and need help getting hooked up, just ask.&lt;br /&gt;
&lt;br /&gt;
If you appreciate his efforts, [http://www.paypal.me/jmacleod Justin massively appreciates donations via PayPal.]&lt;br /&gt;
&lt;br /&gt;
==== Toni Barth Music ==== &lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/channel/UCY9gmULHVuRSMsymsrMmwdw/videos The Toni barth Music Youtube channel] is a series of posts with each one focusing on a specific topic.  Many are about Reaper accessibility and include the stock EQ plug-in, the media explorer, the peak watcher and many more.&lt;br /&gt;
&lt;br /&gt;
==== CAVI Courses (aging, but still useful resources)====&lt;br /&gt;
&lt;br /&gt;
For a few years, CAVI (Cisco Academy for the Vision Impaired) ran popular courses designed for people who were getting started with Audio Production and more specifically, Reaper.&lt;br /&gt;
&lt;br /&gt;
In March 2018, all of the previously available audio related course materials were released for free. The links to the actual audio content have since been pulled, but Daniel Wolak has once again saved the day. Use the following links to browse and download the audio content from his server:&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/jX94eGtoJJ5Neqo Audio Essentials (2017, Semester 1]&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/m9ZG46GyMEjsAQw Reaper Beginners]&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/mNkpX9AimyAAAR6 Reaper Advanced]&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.danielwproductions.com/index.php/s/RLff77YRjjNB7p9 Reaper MIDI]&lt;br /&gt;
&lt;br /&gt;
The wiki content from previous courses can still be found [http://wiki.cucat.org/index.php/Main/AudioInsAndOuts here.]&lt;br /&gt;
&lt;br /&gt;
Nowadays the materials therein are getting a little long in the tooth, but there&#039;s still plenty to be learned, so grab &#039;em while you can. We&#039;ll only be linking to them until they&#039;re superseded by free content that&#039;s more current.&lt;br /&gt;
&lt;br /&gt;
==== Chris Belle&#039;s Tutorials ====&lt;br /&gt;
&lt;br /&gt;
Reaper user Chris Belle has very generously offered a set of free tutorials, which can be downloaded from these two mirrors [https://drive.google.com/uc?export=download&amp;amp;id=1RCHImJg6WQMPjcjArR1JxxUCrhPJNzhl (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/reaper+free.zip (mirror link 2)]&lt;br /&gt;
They contain the following: &lt;br /&gt;
*About the actions list&lt;br /&gt;
*making custom actions&lt;br /&gt;
*Editing basics, and an explanation of the [[chapter 7: Editing Tracks and Items#7.31 Ripple Editing|reaper ripple editing modes]]&lt;br /&gt;
*[[ReaEffects guide#6.6 Subtract Mode|noise reduction]] with reaper&lt;br /&gt;
&lt;br /&gt;
*Using [[Chapter 10: Pitch and Time Manipulation#10.8 Stretch Markers|stretch markers]]&lt;br /&gt;
* [[Sidechaining_with_ReaComp|Side-chaining with ReaComp]]&lt;br /&gt;
&lt;br /&gt;
==== Patrick Perdue&#039;s Tutorials ====&lt;br /&gt;
&lt;br /&gt;
Patrick Perdue recorded a tutorial on using vocoders with reaper. The stock ReaVocode plugin is explained first, then Patrick demonstrates other third-party vocoders.&lt;br /&gt;
Download: [https://drive.google.com/uc?export=download&amp;amp;id=1nx7LXb5Q5UQikbGKEKPugyna1OP4tcyZ (mirror 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/UsingVocodersWithReaper.mp3 (mirror 2)]&lt;br /&gt;
&lt;br /&gt;
==== Podcasts on CoolBlindTech.com ====&lt;br /&gt;
&lt;br /&gt;
A growing set of podcasts have been done by members of the CoolBlindTech.com team, mostly by Alex Hiironen. They cover many things, from basics to using some effects and virtual instruments. &lt;br /&gt;
They are somewhat scattered, but the first of them are presented in a (hopefully) organized manner. &lt;br /&gt;
Note: they seem to be applicable to windows only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [https://coolblindtech.com/reaper-on-windows-episode-1-general-introduction-why-reaper-is-awesome/ part 1, why is reaper awesome]&lt;br /&gt;
* [https://coolblindtech.com/reaper-part-2-rudimentary-recording-for-windows/ part 2, rudimentary recording]&lt;br /&gt;
* [https://coolblindtech.com/reaper-windows-part-3-configure-play/ part 3, recommended configurations] &lt;br /&gt;
* [https://coolblindtech.com/reaper-windows-part-4-tracking-next-single/ part 4 tracking your next single] &lt;br /&gt;
* [https://coolblindtech.com/?s=reaper and so on and so on]&lt;br /&gt;
&lt;br /&gt;
== Accessibility Enhancing Scripts ==&lt;br /&gt;
&lt;br /&gt;
Now follows a large collection of utilities and scripts created mostly by blind reaper users. Most of these are windows based, though you might find useful reaper presets and tricks  as well.&lt;br /&gt;
&lt;br /&gt;
=== Access4Music Scripts and Utilities ===&lt;br /&gt;
&lt;br /&gt;
This is a collection of links that point to scripts that allow the user to access [http://access4music.com/en/script various third-party software instruments] and [http://access4music.com/en/script/utilities as well as enhancing the accessibility of Reaper&#039;s MIDI Event List]. Access4Music is a small Italian team of visually impaired programmers.&lt;br /&gt;
&lt;br /&gt;
=== Free NumPad and Applications Key Emulation Scripts ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re using a laptop that doesn&#039;t have an embedded numeric keypad but you&#039;d still like to use those keys in Reaper, here is a [https://www.sendspace.com/pro/dl/yffgb7 numpad key emulator script by Andrew Downie] &lt;br /&gt;
[https://drive.google.com/uc?export=download&amp;amp;id=1e52FT7Qf2EKtcBvujKohgaHx86BPyaXQ (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/andrew&#039;s+numpad-keys-v22.exe (mirror link 2)]along with its corresponding [https://www.sendspace.com/pro/dl/s7dl6n auto hotkey source code] [https://drive.google.com/uc?export=download&amp;amp;id=1N4NH8mm5SpGsGzWoe9H6dk2SEAD4yLJS (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/andrews+sourceCode+numpad-keys-v22.ahk (mirror link 2)]. This nifty script reminds you if you&#039;ve accidentally left the NumPad emulation turned on by a series of beeps, and you can configure how often you get reminded. The script activates the NumPad emulation by default as soon as it is opened. It also displays a dialog box with configuration options and a list of the hotkeys used. Quite self-explanatory by design, but if you get stuck, Andrew has been known to haunt RWP from time to time.&lt;br /&gt;
&lt;br /&gt;
On Windows, Shift+F10 doesn&#039;t always work as a substitute for the Applications key inside Reaper. If you&#039;re stuck on a keyboard without an Applications key, here is an [https://www.dropbox.com/s/rnzv0abmf7cqu7b/AppsKey4Reaper.exe?dl=1 Applications key emulation script] [https://drive.google.com/uc?export=download&amp;amp;id=1b6hIV-V_emIouVuRpAdPL2KbdodlQCJl (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/Matej+Golians+AppsKey4Reaper.exe (mirror link 2)] available (written by Matej Golian). launch it every time you want to work in REAPER. You can&lt;br /&gt;
 then use the right CTRL key instead of the applications key. So for&lt;br /&gt;
 example the shortcut alt+applications will become alt+right CTRL.&lt;br /&gt;
&lt;br /&gt;
The Access4Music team also has [http://www.access4music.com/en/script/utilities their own version of an Applications key script] along with another handy utility which makes it possible to read columns in Reaper&#039;s MIDI Event List individually.&lt;br /&gt;
&lt;br /&gt;
Last but by no means least, [https://www.sendspace.com/pro/dl/3ut3tk here is Andrew Downie&#039;s version of an Applications key emulation script] [https://drive.google.com/uc?export=download&amp;amp;id=1DhAb6ljrgu9t_gohBqubxQAD3dj2_98h (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/Andrew+Downie&#039;s+appskey.exe (mirror link 2)]&lt;br /&gt;
&lt;br /&gt;
=== Sibiac NVDA Add-on ===&lt;br /&gt;
&lt;br /&gt;
A sighted programmer from Germany, known as [http://azslow.com/ Az,] (Alexey Zhelezov) has very generously created the [[SIBIAC add-on for NVDA]] which aims to make a growing list of third-party fx or instrument plugins accessible. These include addictive drums 2, toontrack EzMix 2, and the worldwide renowned Melodyne, among many others.&lt;br /&gt;
&lt;br /&gt;
=== accessibility bundle (Sonorous Arts Group) ===&lt;br /&gt;
&lt;br /&gt;
Accessibility Bundle is a set of screen reader independent, easy to&lt;br /&gt;
use helpers packed into one application which aims at making different&lt;br /&gt;
pieces of software more accessible for the blind and visually&lt;br /&gt;
impaired.&lt;br /&gt;
This set was created with integrity and portability in mind; No&lt;br /&gt;
installers and no launching a bunch of scripts to get your software&lt;br /&gt;
working (Run once, Use anywhere).&lt;br /&gt;
It currently supports Xfer Serum, Tone2 Icarus (version 1.x), Native&lt;br /&gt;
Instruments Kontakt 6 and Native Instruments Kontakt 7 (Only partially&lt;br /&gt;
supported).&lt;br /&gt;
For more information, Refer to the readme file present in the&lt;br /&gt;
compressed archive.&lt;br /&gt;
You may always [https://sonorousarts.com/product-manager/products/download/3/ download the latest version of the accessibility bundle here].&lt;br /&gt;
&lt;br /&gt;
===Toni barth&#039;s reaPack Repository===&lt;br /&gt;
There are a bunch of useful scripts and plugins available from Toni barth&#039;s reaPack repository.  Add the following URL to your reaPack:&lt;br /&gt;
\\https://github.com/Timtam/reapack/raw/master/index.xml&lt;br /&gt;
&lt;br /&gt;
== a list of third party accessible instruments and effects ==&lt;br /&gt;
&lt;br /&gt;
Note: this probably needs its own page if it grows too much? (see or start a discussion on this topic)&lt;br /&gt;
&lt;br /&gt;
Even though most virtual instruments and effects are highly visually oriented, some of those are being successfully controlled and used by blind and visually impaired people via a combination of automation parameters, OCR and various bolt-on scripted solutions. The choices mentioned on this page are a loosely organized, non-exhaustive list of feedback compiled from all corners of the Reaper accessibility community. Discussing automation parameters from the ground up is certainly beyond the scope of this page, instead, you&#039;re more likely to find hints on which parameters of an instrument or plugin can be manipulated using OSARA&#039;s Parameters dialog, or tips on parameters that are misleadingly labelled, to take a few examples at random. It is recommended, but not always necessary that plugins are opened in bridged mode with dedicated process per plugin (most often the case if you&#039;re attempting to access a plugin with an AutoHotkey script from the likes of Access4Music). Brace yourselves, there are MANY of them. User reports follow:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Waves Accessibility ===&lt;br /&gt;
&lt;br /&gt;
The presets for most Waves plugins are accessible when loaded in VST3 mode. Parameters are labeled correctly and most will provide real-world values. Notable (but likely not the only) exceptions are Waves Tune LT, GTR3 Stomps and GTR3 Tool Rack (where the stomp box parameters are not labeled because they are interchangeable). Sibiac provides some accessibility to the GTR3 Tool Rack plugin.&lt;br /&gt;
&lt;br /&gt;
* All of the reverbs, including renaissance, trueVerb, echo. Built in Presets are selectable from the slider as well, but cannot be edited from the text box. Also, when setting parameters like frequency ranges (in hertz) or room sizes for the reverbs the editable field shows values that do not correspond at all with the reported parameters so its better to just stick to the slider when manipulating those effects.&lt;br /&gt;
* RVox (a vocal compressor) and C6 (a multi-band compressor/equalizer) can be used without any problems as well.&lt;br /&gt;
*GTR3: The accessibility isn’t quite as good as some of their other plugs (not all the parameters show formatted values) The only  labeled parameter is the on/off switch for each box, so that will help you find out which box is which.  The GTR3 Tool Rack requires a golden cursor location to load presets properly, but is doable with no problems, which when loaded will prompt an accessible context menu. It’s also very modular, so you can access just stomps, just amps/cabs etc as separate plugs and use the fx chain to switch around the order of those boxes if you want. Reaper user Gerad Deuvall has created [https://www.youtube.com/watch?v=Ez490lJaFX8 a youtube video demonstrating its use]&lt;br /&gt;
&lt;br /&gt;
=== PianoTeq 6 ===&lt;br /&gt;
&lt;br /&gt;
All of the presets for pianos, harps ETC are now visible to reaper. Just go to the FX window by hitting F on the track that has PianoTeq instantiated on it, tab to the Presets combo box and use your ArrowUp and ArrowDown keys to navigate the choices.&lt;br /&gt;
&lt;br /&gt;
Since version 6.1, automatable parameters are accessible in the OSARA Parameters dialog.&lt;br /&gt;
However, changing between the different pianos is a bit tricky. Here&#039;s a suggested way of doing it:&lt;br /&gt;
Press F on the relevant track to open the FX window, make sure PianoTeq is selected in the FX chain list box, then tab until you find an unlabelled check box. Using NVDA&#039;s object navigation, go to the next object (note that you need to use object nav, you can&#039;t tab to this area of the screen). It&#039;s reported as &amp;quot;unknown&amp;quot; by NVDA. Using NVDA+Shift+NumPadMinus, set focus to that &amp;quot;unknown&amp;quot; object. That object is the PianoTeq GUI itself, and it isn&#039;t accessible, but once focused, it does react to some key presses. Control+N switches between categories of instruments, and N switches from instrument to instrument. Your controller will continue working while you are interacting with the inaccessible GUI, so you can play a few notes, hit N, play some more, and so on until you&#039;ve found a preset you like. Performing OCR may even tell you which preset that was.&lt;br /&gt;
&lt;br /&gt;
=== Omnisphere 2 ===&lt;br /&gt;
&lt;br /&gt;
Omnisphere is partially accessible if you&#039;re comfortable with concepts like review cursor in screen mode, object navigation with the use of the number pad, simulated clicking and relocating cursor. This also means that expansions like Keyscape, Trilion, ETC. will work too. You can change preset banks, select visible lists and some other settings. To navigate more presets, you will have to scroll with a mouse wheel.&lt;br /&gt;
&lt;br /&gt;
After the plugin is instantiated in REAPER’s FX Window, use Shift+Tab to move to the “Add” button, then press UpArrow to get into Omnisphere’s GUI.&lt;br /&gt;
Use NVDA’s screen review to navigate to the area where NVDA will report “software version x.x, or sound sources version x.x&amp;quot; (where x is the version you’re using). Move the mouse pointer to this information with NVDA+NumPad+Slash, and press the NumPad+Slash to click. You’ll be taken to the library tab of the plugin GUI.&lt;br /&gt;
Using screen review, you’ll find some category filters such as type of sound, (for example, bells and vibs, ARP+BPM, etc). Filter the sounds as needed by selecting the appropriate filter using the above commands. Once again, they&#039;re NVDA+NumPad+Slash to move the mouse pointer to the desired item, and NumPad+Slash to click. The list of sounds in the category you&#039;ve chosen will appear on the right of the screen, after where NVDA says: “normal”.&lt;br /&gt;
Still using screen review, select your first sound and play your keyboard to see whether you like it. Once the first sound has been clicked, you&#039;ll be able to navigate through other sounds in that category using UpArrow and DownArrow. Note that the sound list wraps; that means if you have reached the last sound on the list, when you press DownArrow again, you’ll be at the very first sound.&lt;br /&gt;
&lt;br /&gt;
Hint: if you need to open another instance of Omnisphere during your session, from that instance of the plugin onward, you’ll be taken directly to the Library tab. It&#039;s recommended to save any sounds you like as user presets by hitting Shift+Space on the Plus button in REAPER&#039;s FX window. This will enable you to recall them quickly without having to muck about in the plugin GUI as described above every time.&lt;br /&gt;
&lt;br /&gt;
=== Addictive Drums 2 ===&lt;br /&gt;
&lt;br /&gt;
You can make some changes and preset selections with OCR. You can also change kit pieces and presets, but it&#039;s limited.&lt;br /&gt;
&lt;br /&gt;
For NVDA, the [[SIBIAC add on for NVDA|Sibiac framework]] allows almost complete operation (except for MIDI groove selection). You can [http://www.azslow.com/index.php?topic=372.0 get more info on Sibiac here]&lt;br /&gt;
&lt;br /&gt;
=== iZotope Plugins ===&lt;br /&gt;
&lt;br /&gt;
* Nectar 2 and Neutron 2: once you find the Presets menu with OCR, you can browse the subcategories with NVDA speech, using the arrow keys, however, the main category title is not announced.   It behaves like a folder tree though. &lt;br /&gt;
* Nectar elements: in addition to parameters being reported correctly, there is a user created rpl (reaper presets library) file which allows these to be selected just like any other preset from the regular effects dialog. It contains all presets of Nectar Elements, plus two special packs: Styles 1 and Utility pack. Many thanks to Alan Escola. The file can be  found [https://www.dropbox.com/s/6wm7uodb2euigrl/NectarElements%20RPL%20Pack.zip?dl=1 via this dropbox link] [https://drive.google.com/uc?export=download&amp;amp;id=18cmrukS_JvN8vm0xMQ_NccaTWCHhmBHB (mirror 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/NectarElements+RPL+Pack.zip (mirror 2)] &lt;br /&gt;
* iZotope OZone 8: Once you find the preset menu with OCR, a dialog box will pop up and you can arrow through the presets with speech.&lt;br /&gt;
*The iZotope DDLY Dynamic Delay and iZotope Vinyl plugins are all properly labeled from the parameter list. The DDLY plugin allows two different delays to be applied to the same track, and can be downloaded as a trial if you want to see it for yourself. The Vinyl plugin is free, and adds a vinyl noise effect to the track which you apply it to.&lt;br /&gt;
&lt;br /&gt;
=== Cakewalk Dimension Pro ===&lt;br /&gt;
&lt;br /&gt;
Use OCR to find the preset selection, and when you hit enter, an accessible dialog box will pop up. Scripts are also available at the [http://access4music.com/en/script music access site].&lt;br /&gt;
&lt;br /&gt;
=== Superior Drummer 2 ===&lt;br /&gt;
&lt;br /&gt;
OCR works okay with this in Classic Mode since all kit pieces are stationary, no matter the expansion selected.  Problem is, you have to use OCR to go to some menus to select classic mode, then from there, you have to find some text, move your cursor slightly above, and right click  and you will be able to read the context menus with speech for kit selection pieces.  The Learn button is also somewhat visible, making this extremely tricky but can be done.  Probably not worth the headaches though.&lt;br /&gt;
&lt;br /&gt;
Scripts are also available at the [http://access4music.com/en/script music access site].&lt;br /&gt;
&lt;br /&gt;
=== SoniVox VSTs ===&lt;br /&gt;
&lt;br /&gt;
I&#039;ve noticed that SoniVox VSTs are accessible.  You can just tab down to the presets menus, and it lists all the different instruments there.  I have SoniVox Orchestra companion Strings, Brass, and woodwinds, and they all work in that exact same way.  I also have SoniVox&#039;s Harpsichord, session drummer, classic bass, big band percussion, and singles taylor acoustic guitar and they all work perfectly accessibility wise.&lt;br /&gt;
Also The classic series of plugs work well, the free ones you can download from Mixcraft - classic delay, reverb, eq,  chorus, that entire set of plugs.&lt;br /&gt;
&lt;br /&gt;
=== Sugar Bytes ===&lt;br /&gt;
&lt;br /&gt;
The Sugar Bytes Unique virtual synthesizer is a virtual synth that specializes in vowel sounds. The parameters are visible in the list but are not labeled, but the preset list is accessible from the dropdown list that is found in the FX chain window. It can be downloaded as a trial as well.&lt;br /&gt;
&lt;br /&gt;
=== Versilian Studios ===&lt;br /&gt;
&lt;br /&gt;
Versilian Studios makes a ton of free and extremely affordable plugins that all seem to be fully accessible. I&#039;ve purchased a couple and have all the free ones, and have had no issues with the standalone versions, and I believe there are Kontakt versions of many of the plugins as well. However, note that the VSCO instruments are strictly Kontakt instruments, except for the community edition which is a free library of raw wave files from the Kontakt versions.&lt;br /&gt;
http://vis.versilstudios.net/products.html&lt;br /&gt;
&lt;br /&gt;
=== Korg Virtual Instruments ===&lt;br /&gt;
&lt;br /&gt;
* KORG Legacy: when I modify some parameters they do not cause any effect. Example, with KORG MS-20. It is a monophonic (or polyphonic) analog synthesizer from the 70s. There are some presets that are polyphonic, when I modify the parameter that is used to change the polyphony, I can not do it even though I used the slide bar in the corresponding parameter. It is something strange. The same happens with other parameters. Almost all parameters have a name, but some do not. Not only happens with the MS-20, it also happens with MonoPoly and Polysix. they are all from KORG Legacy.&lt;br /&gt;
* WaveStation and M1, there are no problems. WaveStation parameters are accessible through the GUI, while some can be accessed in the FX parameters box.&lt;br /&gt;
&lt;br /&gt;
== Using Yamaha SYXG 50 on Modern Machines ==&lt;br /&gt;
&lt;br /&gt;
For those wanting a gm compatible synth, [http://veg.by/en/projects/syxg50/ there is a recently updated version of this once popular Yamaha soft synth] [https://drive.google.com/uc?export=download&amp;amp;id=1Sl0n74XtxzDgxHIYSkzq1d_zOQmjB2Hk (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/yamaha_syxg50_vsti.7z (mirror link 2)]. Since newer windows systems do not have the ability to allow a particular midi device to be selected as the system default (older windows versions did), you must install [http://coolsoft.altervista.org/en/forum/post/2052/attachment?fid=473 this midi mapper] [https://drive.google.com/uc?export=download&amp;amp;id=1elnFGAFZdcCzUYI4QXO1I7_v_gVCuyBL (mirror link 1)] [https://f001.backblazeb2.com/file/rwp-resources/useful+resourcesFiles/CoolSoft_MIDIMapper_0.9.0-beta5.exe (mirror link 2)] (you can log in with a google account or create one to be able to download it or just use the mirror links). After installing the [https://kode54.net/vstmididrv.exe VST midi system  synth driver] first according to the procedure described on the first link, you should be ready to go. It basically  acts as a midi mapper just like it did on the older windows  installations so that you can select the VST midi system synth as the system default. &lt;br /&gt;
The response of this VST is just as good. It tends to stutter a little especially when some new patches come in,  but no major issues have been reported. &lt;br /&gt;
If you plan to make music or do music production with it, then you should instantiate this by choosing the &amp;quot;Virtual instrument on new track&amp;quot; option from Reaper&#039;s Insert top menu.&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=626</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=626"/>
		<updated>2023-11-20T21:18:09Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* JSFX Programming */ General read through and tidy up.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=JSFX Programming=&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
js plugins are Reaper&#039;s own plugin format similar in many ways to VST plugins.  A js plugin can process and generate audio and midi data and expose parameters to the user which can be automated.&lt;br /&gt;
&lt;br /&gt;
js plugins have a number of advantages such as easy to start writing, all parameters are exposed and these parameters are easy to interact with via a keyboard either directly in the user interface or by the OSARA parameter dialogue.  They also support graphics making them good for sighted users and it is also possible to add keyboard support though this is almost vanishingly rare.  &lt;br /&gt;
&lt;br /&gt;
== View Existing JSFX Plugins ==&lt;br /&gt;
JSFX plugins are written in plain text files and there are plenty to take a look at.  From the Reaper Help Options menu select Resource path.  In here is a folder called &amp;quot;Effects&amp;quot; in which are all the js plugins that come with Reaper.&lt;br /&gt;
&lt;br /&gt;
Typically a JSFX plugin either has no file extension or an extension of jsfx.  Use your favourite plain text editor to open up any of the files to see what they look like.&lt;br /&gt;
&lt;br /&gt;
It is useful to turn the vebosity of your screen reader so it speaks all characters.  It is important to capture all the code when programming.  For example, a semicolon is required at the end of each command and most people dont set their screen reader to announce these.&lt;br /&gt;
&lt;br /&gt;
In NVDA, the verbosity can be cycled with NVDA+P.(What is VoiceOver equivalent?)&lt;br /&gt;
&lt;br /&gt;
== Structure of a plugin ==&lt;br /&gt;
A JSFX plugin is made up of a header and then a series of sections which have a predefined named and purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header can be as short as a declaration of the name of the plugin but can also hold much more information such as the author, date, version, release notes, instructions on usage and other information that helps with reaPack integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header is followed by definition of the plugin parameters which is done by defining a slider for each parameter.  A slider has a min value, a max value, an increment value and a default value.  These are seen by the user in the plugin user interface as a slider and edit box for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @init block is run when the plugin first starts which is typically when it is first loaded onto an FX chain and when play starts. It is used to initialise variables to default values.  Note that the js plugin language does not require variables to be declared before they are used so this section does not need to include initialisation of all variables if this is done elsewhere.  Also, the default initialisation of a variable is to set it to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @slider block is run whenever a parameter is changed either through automation or by the user.  For example, a parameter might be presented to the user as a percentage from 0 to 100 but the code needs this rescaling from -1 to 1.&lt;br /&gt;
&lt;br /&gt;
Note the @slider section runs even when a slider gains focus - i.e. when you tab to it. Thus, it is often helpful to copy slider contents into variables and then in the @slider section, compare the variable with the slider&#039;s current value to see if it has changed. If it has then update the variable and run any additional code necessary.  For instance:&lt;br /&gt;
&lt;br /&gt;
//code start&lt;br /&gt;
// we define a slider called s_lowpassCutoff, with initial value of 50, min and max of 20 and 100, and label &amp;quot;lowpass cutoff&amp;quot;&lt;br /&gt;
slider1:s_lowpassCutoff=50 &amp;lt;20, 100, 1&amp;gt;lowpass cutoff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@init&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // store the initial slider value to compare with later&lt;br /&gt;
// do other initialization like initialize your filter, etc&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
// if slider has changed&lt;br /&gt;
lowpassCutoff != s_lowpassCutoff ? (&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // update the variable&lt;br /&gt;
// set filter cutoff etc&lt;br /&gt;
//...&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
This will set the filter cutoff only if the user actually changed the slider.&lt;br /&gt;
&lt;br /&gt;
Importantly the case of variable names are ignored.  So the variable myfrequency (all lower case) and the variable MyFrequency (first letter capitalised) are processed as the same variable.  Using mixed case to improve pronunciation is a good idea.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @block code is run as a new block of samples arrives.  The block size as defined in Reaper preferences in the devices section dictates how many samples This is.  It is  an area of code commonly used to process MIDI as all the MIDI notes and events coming up in the next block of samples can be processed here. Also, MIDI notes and events can be inserted so they are played once the block enters Reaper&#039;s play buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The@sample block is run every sample.  So yes, many thousands of times a second.  Commonly used to process audio as there is easy access to the value of the audio in each channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @gfx block is used to draw graphics and process keyboard input.  I&#039;m not sure when it is run.&lt;br /&gt;
&lt;br /&gt;
== First Audio Plugin ==&lt;br /&gt;
Let&#039;s dive in with a very simple js plugin that includes a volume control for audio.  Open up a plain text editor and copy and paste the following code into it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first audio plugin &lt;br /&gt;
&lt;br /&gt;
slider1:100&amp;lt;0,100,1&amp;gt;Volume &lt;br /&gt;
&lt;br /&gt;
@slider  &lt;br /&gt;
&lt;br /&gt;
scaler = slider1/100; &lt;br /&gt;
&lt;br /&gt;
@sample  &lt;br /&gt;
&lt;br /&gt;
spl0 *= scaler;  &lt;br /&gt;
&lt;br /&gt;
spl1 *= scaler; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save this in the Reaper resources Effects folder, ideally in a new subfolder to contain all your plugins.  Start up Reaper and it should do a rescan and make your new js plugin available to use.&lt;br /&gt;
&lt;br /&gt;
Create a track and add some audio to it for example recording yourself speaking, by inserting an audio file or selecting something from media explorer.  Hit F on the track to bring up the FX chain dialogue and use the Add button to add your plugin.  Type in &amp;quot;first&amp;quot; as this is text included in the first line of the code copied into the plugin and is the name given to the plugin.  Arrow down and you should find the plugin.  Hit enter and it will get loaded onto the FX chain for the track.  Press tab to work your way through the plugin and you will come to the slider and edit controls for the volume parameter.&lt;br /&gt;
&lt;br /&gt;
Press space to play the audio and then adjust the volume with either the slider or entering a new value in the edit field.  The volume changes.  Your first plugin.&lt;br /&gt;
&lt;br /&gt;
A slider is defined  at the top of the file which ranges from 0 to 100 with step sizes of 1 and an initial value of 100.&lt;br /&gt;
Whenever the slider is moved the variable scaler is calculated based on the slider value.  The slider ranges from 0 to 100 but scaler ranges from 0 to 1.&lt;br /&gt;
Every time a sample is about to be played, the left and right channels get multiplied by the scaler variable.&lt;br /&gt;
You can try playing around with this.  What happens if you comment out the calculation for spl0?  Add a double forward slash to that line.  Save the file and reload the plugin on your track.  You don&#039;t need to rescan, just press control R when the plugin is selected in the FX chain.&lt;br /&gt;
Could you add another slider called Pan that ranges from -100 to +100 and changes the balance of the audio?&lt;br /&gt;
&lt;br /&gt;
== First MIDI Plugin ==&lt;br /&gt;
Here is a simple plugin that has a slider to change the pitch of any incoming MIDI notes.  The minimum code for MIDI is a little more than for audio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
desc:My first Midi &lt;br /&gt;
&lt;br /&gt;
slider1:0&amp;lt;-24,24,1&amp;gt;Offset&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
shift = slider1;&lt;br /&gt;
&lt;br /&gt;
@block&lt;br /&gt;
&lt;br /&gt;
while( midirecv( offset, msg1, msg2, msg3 ) )&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
  msg1 &amp;amp; 0xF0 == 0x90 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  : msg1 &amp;amp; 0xF0 == 0x80 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  : midisend( offset, msg1, msg2, msg3 );&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the same way as with the audio plugin, copy this code into a plain text file and save it in the Effects subfolder in the Reaper resource path ideally in your own subfolder holding all your plugins. Start up Reaper so it does a rescan and then insert reaSynth onto a track as as a VSTi.  Test you can play notes.  Now add your first MIDI plugin onto this track as well.  Before it has any effect thugh yu need to move reaSynth so it is below your first MIDI plugin since the plugin needs to update the MIDI data between it being played and it arriving at reaSynth.  Do this by either cutting and pasting reaSynth so it is second in the chain, or using the action bound to control-shift alt page down (Windows).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tab to the Semitone shift slider in your new plugin. Play a note and then change the slider.  The pitch of notes is shifted.&lt;br /&gt;
&lt;br /&gt;
== Tools to help write plugins ==&lt;br /&gt;
The most basic tool is your plain text editor of choice.  Reaper does have an inbuilt editor but it is not easily accessible.  So writing code in a plain text editor is the next best thing.  If you make a change to your code and save it though, you will need to return to Reaper and the FX chain , press control R on your plugin and replace the plugin with a new instance of itself to for the changes take effect.  Or have a project saved and reload it using alt F, R for recent projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to view all the variables used in a plugin along with their values.  This can be done with NVDA object navigation by tabbing to the edit button in the FX dialogue, hitting enter , and uing object navigation to move right until a list control is reached.  Go down one and you can then review each variable.  Using NVDA num pad enter to activate this window also gives you first letter navigation.  On each line the name of the variable is given, then its value and then the number of times the variable is used in the code.&lt;br /&gt;
&lt;br /&gt;
Reviewing the list of variables is particularly useful to check if there is a typo in the code.  A screen reader will not pronounce the two variables ChekX and CheckX differently but if you notice two variables in the list where you would expect only one then there is probably a typo in one of the variable names.  Or sometimes you might call a variable NoteOn and somewhere else call it OnNote.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging is difficult though in js plugins.  There is no option to display a message box or output diagnostic info to a file. And some variables will change their value with every sample or every block making them impossible to track.  You cannot step through the code one line at a time reviewing variable values like you can in more complex IDE&#039;s.&lt;br /&gt;
&lt;br /&gt;
It is possible to write debug messages to the screen as the program runs. This might help in determining if a certain bit of code was executed for instance. Unfortunately, because you only see the last mesage written, it isn&#039;t as useful as it could be.&lt;br /&gt;
&lt;br /&gt;
Use a statement like the following:&lt;br /&gt;
&lt;br /&gt;
sprintf(#dbg_desc, &amp;quot;a message, which may include values of integers %d, or floats %f&amp;quot;, integerVar, floatVar);&lt;br /&gt;
&lt;br /&gt;
However, monitoring the list of variables as described above does reflect the value real-time so it can be useful particularly on slowly changing variables or those driven by user activity.&lt;br /&gt;
&lt;br /&gt;
Another trick is to have a slider which is written to when a particular bit of code is executed and perhaps only once:&lt;br /&gt;
&lt;br /&gt;
condition == 1 &amp;amp;&amp;amp; !done ?&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
done = 1;&lt;br /&gt;
&lt;br /&gt;
slider64 = TestVariable;&lt;br /&gt;
&lt;br /&gt;
);  &lt;br /&gt;
&lt;br /&gt;
==Resources ==&lt;br /&gt;
&lt;br /&gt;
Probably the most comprehensive source of information are all the plugins that come with Reaper and found in the Effects folder.  But these can be complex and difficult to work out how they work.&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial made by [https://www.admiralbumblebee.com/music/2018/02/08/Write-a-Reaper-MIDI-JSFX-from-scratch.html Admiral Bumblebeee] which goes through a modestly complex project to write a MIDI plugin.  There is also other useful content on this web site.&lt;br /&gt;
&lt;br /&gt;
[https://www.reaper.fm/sdk/js/basiccode.php#js_basic The JSFX Programming Reference - Language Essentials] is on Reaper&#039;s web site.  It is a reference manual though and not a tutorial but if you get into JSFX programming you will come to appreciate this resource.&lt;br /&gt;
&lt;br /&gt;
The Reaper community are a helpful bunch.  [https://forum.cockos.com/forumdisplay.php?f=3 The JSFX forum]. Use the search feature or search with something like Google putting reaper jsfx forum in as part of your search.  Sign up to post a question. &lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=625</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=625"/>
		<updated>2023-11-20T20:46:09Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* First MIDI Plugin */ Corrected code for My First MIDI so it runs though not sure about formatting on wiki page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=JSFX Programming=&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
js plugins are Reaper&#039;s own plugin format similar in many ways to VST plugins.  A js plugin can process and generate audio and midi data and expose parameters to the user which can be automated.&lt;br /&gt;
&lt;br /&gt;
js plugins have a number of advantages such as easy to start writing, all parameters are exposed and these parameters are easy to interact with via a keyboard either directly in the user interface or by the OSARA parameter dialogue.  They also support graphics making them good for sighted users and it is also possible to add keyboard support though this is almost vanishingly rare.  Disadvantages are around limited to non-existent file handling.&lt;br /&gt;
&lt;br /&gt;
== View and existing js plugin ==&lt;br /&gt;
js plugins are written in plain text files and there are plenty to take a look at.  From the Reaper Help Options menu select Resource path.  In here is a folder called &amp;quot;Effects&amp;quot; in which are all the js plugins that come with Reaper.&lt;br /&gt;
&lt;br /&gt;
Typically a js plugin either has no file extension or an extension of jsfx.  Use your favourite plain text editor to open up any of the files to see what they look like.&lt;br /&gt;
&lt;br /&gt;
It is useful to turn the vebosity of your screen reader so it speaks all characters.  It is important to capture all the code when programming.  For example, a semicolon is required at the end of each command and most people dont set their screen reader to announce these.&lt;br /&gt;
&lt;br /&gt;
In NVDA, the verbosity can be cycled with NVDA+P.&lt;br /&gt;
&lt;br /&gt;
== Structure of a plugin ==&lt;br /&gt;
A js plugin is made up of a header and then a series of sections which have a predefined named and purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header can be as short as a declaration of the name of the plugin but can also hold much more information such as the author, date, version, release notes, instructions on usage and other information that helps with reaPack integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header is followed by definition of the plugin parameters which is done by defining a slider for each parameter.  A slider has a min value, a max value, an increment value and a default value.  These are seen by the user in the plugin user interface as a slider and edit box for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @init block is run when the plugin first starts which is typically when it is first loaded onto an FX chain and when play starts. It is used to initialise variables to default values.  Note that the js plugin language does not require variables to be declared before they are used so this section does not need to include initialisation of all variables if this is done elsewhere.  Also, the default initialisation of a variable is to set it to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @slider block is run whenever a parameter is changed either through automation or by the user.  For example, a parameter might be presented to the user as a percentage from 0 to 100 but the code needs this rescaling from -1 to 1.&lt;br /&gt;
&lt;br /&gt;
One thing I&#039;ve noticed is that the @slider section runs even when a slider gains focus - i.e. when you tab to it. Thus, it is often helpful to copy slider contents into variables and then in the @slider section, compare the variable with the slider&#039;s current value to see if it has changed. If it has then update the variable and run any additional code necessary.  For instance:&lt;br /&gt;
&lt;br /&gt;
//code start&lt;br /&gt;
// we define a slider called s_lowpassCutoff, with initial value of 50, min and max of 20 and 100, and label &amp;quot;lowpass cutoff&amp;quot;&lt;br /&gt;
slider1:s_lowpassCutoff=50 &amp;lt;20, 100, 1&amp;gt;lowpass cutoff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@init&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // store the initial slider value to compare with later&lt;br /&gt;
// do other initialization like initialize your filter, etc&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
// if slider has changed&lt;br /&gt;
lowpassCutoff != s_lowpassCutoff ? (&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // update the variable&lt;br /&gt;
// set filter cutoff etc&lt;br /&gt;
//...&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
This will set the filter cutoff only if the user actually changed the slider.&lt;br /&gt;
&lt;br /&gt;
Note that variable names can be mixed case, but they are case folded by the compiler. This means that MyVariable is the same as myvariable however screen reader pronounciation is better with mixed case, so that&#039;s what I tend to use. Underscores can also be used in variable names, i.e. my_variable is valid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @block code is run as a new block of samples arrives.  The block size as defined in Reaper preferences in the devices section dictates how many sampless.  This is an area of code commonly used to process MIDI as all the MIDI notes and events coming up in the next block of samples can be processed and action taken accordingly.  Also, MIDI notes and events can be inserted so they are played once the block enters Reaper&#039;s play buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The@sample block is run every sample.  So yes, many thousands of times a second.  Commonly used to process audio as there is easy access to the value of the audio in each channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @gfx block is used to draw graphics and process keyboard input.  I&#039;m not sure when it is run.&lt;br /&gt;
&lt;br /&gt;
== First Audio Plugin ==&lt;br /&gt;
Let&#039;s dive in with a very simple js plugin that includes a volume control for audio.  Open up a plain text editor and copy and paste the following code into it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first audio plugin &lt;br /&gt;
&lt;br /&gt;
slider1:100&amp;lt;0,100,1&amp;gt;Volume &lt;br /&gt;
&lt;br /&gt;
@slider  &lt;br /&gt;
&lt;br /&gt;
scaler = slider1/100; &lt;br /&gt;
&lt;br /&gt;
@sample  &lt;br /&gt;
&lt;br /&gt;
spl0 *= scaler;  &lt;br /&gt;
&lt;br /&gt;
spl1 *= scaler; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save this in the Reaper resources Effects folder, ideally in a new subfolder to contain all your plugins.  Start up Reaper and it should do a rescan and make your new js plugin available to use.&lt;br /&gt;
&lt;br /&gt;
Create a track and add some audio to it for example recording yourself speaking, by inserting an audio file or selecting something from media explorer.  Hit F on the track to bring up the FX chain dialogue and use the Add button to add your plugin.  Type in &amp;quot;first&amp;quot; as this is text included in the first line of the code copied into the plugin and is the name given to the plugin.  Arrow down and you should find the plugin.  Hit enter and it will get loaded onto the FX chain for the track.  Press tab to work your way through the plugin and you will come to the slider and edit controls for the volume parameter.&lt;br /&gt;
&lt;br /&gt;
Press space to play the audio and then adjust the volume with either the slider or entering a new value in the edit field.  The volume changes.  Your first plugin.&lt;br /&gt;
&lt;br /&gt;
A slider is defined  at the top of the file which ranges from 0 to 100 with step sizes of 1 and an initial value of 100.&lt;br /&gt;
Whenever the slider is moved the variable scaler is calculated based on the slider value.  The slider ranges from 0 to 100 but scaler ranges from 0 to 1.&lt;br /&gt;
Every time a sample is about to be played, the left and right channels get multiplied by the scaler variable.&lt;br /&gt;
You can try playing around with this.  What happens if you comment out the calculation for spl0?  Add a double forward slash to that line.  Save the file and reload the plugin on your track.  You don&#039;t need to rescan, just press control R when the plugin is selected in the FX chain.&lt;br /&gt;
Could you add another slider called Pan that ranges from -100 to +100 and changes the balance of the audio?&lt;br /&gt;
&lt;br /&gt;
== First MIDI Plugin ==&lt;br /&gt;
Here is a simple plugin that has a slider to change the pitch of any incoming MIDI notes.  The minimum code for MIDI is a little more than for audio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
desc:My first Midi &lt;br /&gt;
&lt;br /&gt;
slider1:0&amp;lt;-24,24,1&amp;gt;Offset&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
shift = slider1;&lt;br /&gt;
&lt;br /&gt;
@block&lt;br /&gt;
&lt;br /&gt;
while( midirecv( offset, msg1, msg2, msg3 ) )&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
  msg1 &amp;amp; 0xF0 == 0x90 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  : msg1 &amp;amp; 0xF0 == 0x80 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  : midisend( offset, msg1, msg2, msg3 );&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the same way as with the audio plugin, copy this code into a plain text file and save it in the Effects subfolder in the Reaper resource path ideally in your own subfolder holding all your plugins. Start up Reaper so it does a rescan and then insert reaSynth onto a track as as a VSTi.  Test you can play notes.  Now add your first MIDI plugin onto this track as well.  Before it has any effect thugh yu need to move reaSynth so it is below your first MIDI plugin since the plugin needs to update the MIDI data between it being played and it arriving at reaSynth.  Do this by either cutting and pasting reaSynth so it is second in the chain, or using the action bound to control-shift alt page down (Windows).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tab to the Semitone shift slider in your new plugin. Play a note and then change the slider.  The pitch of notes is shifted.&lt;br /&gt;
&lt;br /&gt;
== Tools to help write plugins ==&lt;br /&gt;
The most basic tool is your plain text editor of choice.  Reaper does have an inbult editor but it is not easily accessible.  So writing code in a plain text editor is the next best thing.  If you make a change to your code and save it though, you will need to return to Reaper and the FX chain , press control R on your plugin and replace the plugin with a new instance of itself to for the changes take effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to view all the variables used in a plugin along with their values.  This can be done with NVDA object navigation by tabbing to the edit button in the FX dialogue, hitting enter , and uing object navigation to move right until a list control is reached.  Gone down and you can then review each variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging is difficult though in js plugins.  There is no option to display a message box or output diagnostic info to a file. And some variables will change their value with every sample or every block making them impossible to track.  You cannot step through the code one line at a time reviewing variable values like you can in more complex IDE&#039;s.&lt;br /&gt;
&lt;br /&gt;
It is possible to write debug messages to the screen as the program runs. THis might help in determining if a certain bit of code was executed for instance. Unfortunately, because you only see the last mesage written, it isn&#039;t as useful as it could be.&lt;br /&gt;
&lt;br /&gt;
Use a statement like the following:&lt;br /&gt;
&lt;br /&gt;
sprintf(#dbg_desc, &amp;quot;a message, which may include values of integers %d, or floats %f&amp;quot;, integerVar, floatVar);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resources ==&lt;br /&gt;
&lt;br /&gt;
There are not a whole bunch of great resources for writing js plugins.  Probably the most comprehensive source of information are all the plugins that come with Reaper and found in the Effects folder.  But these can be complex and difficult to work out how they work.&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial made by [https://www.admiralbumblebee.com/music/2018/02/08/Write-a-Reaper-MIDI-JSFX-from-scratch.html Admiral Bumblebeee] which goes through a modestly complex project to write a MIDI plugin.  There is also other useful content on this web site.&lt;br /&gt;
&lt;br /&gt;
[https://www.reaper.fm/sdk/js/basiccode.php#js_basic The JSFX Programming Reference - Language Essentials] is on Reaper&#039;s web site.  It is a reference manual though and not a tutorial but if you get into JSFX programming you will come to appreciate this resource.&lt;br /&gt;
&lt;br /&gt;
The Reaper community are a helpful bunch.  [https://forum.cockos.com/forumdisplay.php?f=3 The JSFX forum]. Use the search feature or search with something like Google putting reaper jsfx forum in as part of your search.  Sign up to post a question. &lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=624</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=624"/>
		<updated>2023-11-20T20:13:46Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* The Reaper Accessibility Wiki */ Changed title of link for JSFX programming&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
= The Reaper Accessibility Wiki  = &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
REAPER is a complete digital audio production application for Windows and Mac OS X, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset. This wiki provides information for blind Reaper users. Whether you&#039;re a musician, songwriter, podcaster or audio/video editor, Reaper can more than serve your needs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
To start, you may wish to [[Special:MyLanguage/Getting_Started|read how to download and install Reaper, Osara and SWS.]] You can  also  [[Special:MyLanguage/Useful_Links_and_Resources|checkout these useful links and resources]] and the [[:Category:ArchivedSites|archived sites]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Also, we are starting to make accessible and adapt the following official documents, found on the reaper website and some others:&lt;br /&gt;
*official reaper user guide. Thanks to the author of the users guide, Geoffrey Francis&#039; abundant generosity and patience the document is now properly tagged and can be read using your preferred screen reader and pdf reader. [http://reaper.fm/userguide.php download from reaper&#039;s official site]&lt;br /&gt;
* [[Special:MyLanguage/ReaEffects guide|ReaEffects guide]]&lt;br /&gt;
*the [[Special:MyLanguage/Reaper plus! the power of sws extensions|Reaper plus! the power of sws extensions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Below you will find a contents section that lists every Reaper Accessibility article on this site written for users, by users of the reaper accessibility community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents (user written articles) == &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*[[Special:MyLanguage/Getting_Started|Getting Started (Downloading and Installing Reaper With accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Keyboard_Shortcuts|Keyboard Shortcuts]]&lt;br /&gt;
**[[Special:MyLanguage/Reaper shortcut key list by headings|Reaper shortcut key list by headings]]&lt;br /&gt;
*[[Special:MyLanguage/Making_Your_First_Recording|Making Your First Recording In Reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Basic_editing|basic editing tasks in reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Enabling_Midi_Devices|Enabling Midi Devices]]&lt;br /&gt;
*some ideas for [[Special:MyLanguage/editing midi in reaper using osara|editing midi in reaper using osara]]&lt;br /&gt;
*[[Special:MyLanguage/Using_Reaper_Under_MacOs|tips for mac users]]&lt;br /&gt;
*[[Special:MyLanguage/Monitoring levels when you can&#039;t see the meters|Monitoring levels when you can&#039;t see the meters]]&lt;br /&gt;
*[[Special:MyLanguage/Tracks_and_Track_Folders|Tracks And Track Folders]]&lt;br /&gt;
*[[Special:MyLanguage/Track_Templates|Track Templates]]&lt;br /&gt;
*[[Special:MyLanguage/Project_Templates|Project Templates]]&lt;br /&gt;
*[[Special:MyLanguage/The fast and easy way to understand compression and reaComp accessibility|The fast and easy way to understand compression and reaComp accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Sidechaining_with_ReaComp|Setting Up a Side Chain with Reacomp]]&lt;br /&gt;
*[[Special:MyLanguage/tapeStop effect using stretch markers|tapeStop effect using stretch markers]]&lt;br /&gt;
*[[Special:MyLanguage/Implementing accessible automation|Implementing accessible automation]]&lt;br /&gt;
*[[Special:MyLanguage/The_render_and_Consolidate/Export_Tracks_Dialogs|Rendering and Exporting Tracks and Projects]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_to_save_Disc_Space|Reaper Preferences To Save Disc Space]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_General|overview of Reaper Preferences (General)]]&lt;br /&gt;
*[[Special:MyLanguage/Loop or beat slicing using reaSamploMatic|Loop or beat slicing using reaSamploMatic]]&lt;br /&gt;
*[[Special:MyLanguage/Ideas_for_video_editing|Ideas for video editing]]&lt;br /&gt;
*[[Special:MyLanguage/SIBIAC add on for NVDA|SIBIAC add on for NVDA]] an addon which aims to make third party fx or instrument plug-ins accessible&lt;br /&gt;
*[[Special:MyLanguage/Reaper_and_Osara_Cookbook|Reaper and Osara Cookbook]] A problem and solution style guide to many tasks using Reaper with the Osara extension.&lt;br /&gt;
*[[Special:MyLanguage/js_programming|JSFX Programming]]&lt;br /&gt;
*[[Special:MyLanguage/Useful_Links_and_Resources|Useful Links and resources]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=621</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=621"/>
		<updated>2023-11-18T08:06:37Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* js Programming */ Changed title and looked at formatting on first example.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=JSFX Programming=&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
js plugins are Reaper&#039;s own plugin format similar in many ways to VST plugins.  A js plugin can process and generate audio and midi data and expose parameters to the user which can be automated.&lt;br /&gt;
&lt;br /&gt;
js plugins have a number of advantages such as easy to start writing, all parameters are exposed and these parameters are easy to interact with via a keyboard either directly in the user interface or by the OSARA parameter dialogue.  They also support graphics making them good for sighted users and it is also possible to add keyboard support though this is almost vanishingly rare.  Disadvantages are around limited to non-existent file handling.&lt;br /&gt;
&lt;br /&gt;
== View and existing js plugin ==&lt;br /&gt;
js plugins are written in plain text files and there are plenty to take a look at.  From the Reaper Help Options menu select Resource path.  In here is a folder called &amp;quot;Effects&amp;quot; in which are all the js plugins that come with Reaper.&lt;br /&gt;
&lt;br /&gt;
Typically a js plugin either has no file extension or an extension of jsfx.  Use your favourite plain text editor to open up any of the files to see what they look like.&lt;br /&gt;
&lt;br /&gt;
It is useful to turn the vebosity of your screen reader so it speaks all characters.  It is important to capture all the code when programming.  For example, a semicolon is required at the end of each command and most people dont set their screen reader to announce these.&lt;br /&gt;
&lt;br /&gt;
In NVDA, the verbosity can be cycled with NVDA+P.&lt;br /&gt;
&lt;br /&gt;
== Structure of a plugin ==&lt;br /&gt;
A js plugin is made up of a header and then a series of sections which have a predefined named and purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header can be as short as a declaration of the name of the plugin but can also hold much more information such as the author, date, version, release notes, instructions on usage and other information that helps with reaPack integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header is followed by definition of the plugin parameters which is done by defining a slider for each parameter.  A slider has a min value, a max value, an increment value and a default value.  These are seen by the user in the plugin user interface as a slider and edit box for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @init block is run when the plugin first starts which is typically when it is first loaded onto an FX chain and when play starts. It is used to initialise variables to default values.  Note that the js plugin language does not require variables to be declared before they are used so this section does not need to include initialisation of all variables if this is done elsewhere.  Also, the default initialisation of a variable is to set it to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @slider block is run whenever a parameter is changed either through automation or by the user.  For example, a parameter might be presented to the user as a percentage from 0 to 100 but the code needs this rescaling from -1 to 1.&lt;br /&gt;
&lt;br /&gt;
One thing I&#039;ve noticed is that the @slider section runs even when a slider gains focus - i.e. when you tab to it. Thus, it is often helpful to copy slider contents into variables and then in the @slider section, compare the variable with the slider&#039;s current value to see if it has changed. If it has then update the variable and run any additional code necessary.  For instance:&lt;br /&gt;
&lt;br /&gt;
//code start&lt;br /&gt;
// we define a slider called s_lowpassCutoff, with initial value of 50, min and max of 20 and 100, and label &amp;quot;lowpass cutoff&amp;quot;&lt;br /&gt;
slider1:s_lowpassCutoff=50 &amp;lt;20, 100, 1&amp;gt;lowpass cutoff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@init&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // store the initial slider value to compare with later&lt;br /&gt;
// do other initialization like initialize your filter, etc&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
// if slider has changed&lt;br /&gt;
lowpassCutoff != s_lowpassCutoff ? (&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // update the variable&lt;br /&gt;
// set filter cutoff etc&lt;br /&gt;
//...&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
This will set the filter cutoff only if the user actually changed the slider.&lt;br /&gt;
&lt;br /&gt;
Note that variable names can be mixed case, but they are case folded by the compiler. This means that MyVariable is the same as myvariable however screen reader pronounciation is better with mixed case, so that&#039;s what I tend to use. Underscores can also be used in variable names, i.e. my_variable is valid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @block code is run as a new block of samples arrives.  The block size as defined in Reaper preferences in the devices section dictates how many sampless.  This is an area of code commonly used to process MIDI as all the MIDI notes and events coming up in the next block of samples can be processed and action taken accordingly.  Also, MIDI notes and events can be inserted so they are played once the block enters Reaper&#039;s play buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The@sample block is run every sample.  So yes, many thousands of times a second.  Commonly used to process audio as there is easy access to the value of the audio in each channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @gfx block is used to draw graphics and process keyboard input.  I&#039;m not sure when it is run.&lt;br /&gt;
&lt;br /&gt;
== First Audio Plugin ==&lt;br /&gt;
Let&#039;s dive in with a very simple js plugin that includes a volume control for audio.  Open up a plain text editor and copy and paste the following code into it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first audio plugin &lt;br /&gt;
&lt;br /&gt;
slider1:100&amp;lt;0,100,1&amp;gt;Volume &lt;br /&gt;
&lt;br /&gt;
@slider  &lt;br /&gt;
&lt;br /&gt;
scaler = slider1/100; &lt;br /&gt;
&lt;br /&gt;
@sample  &lt;br /&gt;
&lt;br /&gt;
spl0 *= scaler;  &lt;br /&gt;
&lt;br /&gt;
spl1 *= scaler; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save this in the Reaper resources Effects folder, ideally in a new subfolder to contain all your plugins.  Start up Reaper and it should do a rescan and make your new js plugin available to use.&lt;br /&gt;
&lt;br /&gt;
Create a track and add some audio to it for example recording yourself speaking, by inserting an audio file or selecting something from media explorer.  Hit F on the track to bring up the FX chain dialogue and use the Add button to add your plugin.  Type in &amp;quot;first&amp;quot; as this is text included in the first line of the code copied into the plugin and is the name given to the plugin.  Arrow down and you should find the plugin.  Hit enter and it will get loaded onto the FX chain for the track.  Press tab to work your way through the plugin and you will come to the slider and edit controls for the volume parameter.&lt;br /&gt;
&lt;br /&gt;
Press space to play the audio and then adjust the volume with either the slider or entering a new value in the edit field.  The volume changes.  Your first plugin.&lt;br /&gt;
&lt;br /&gt;
A slider is defined  at the top of the file which ranges from 0 to 100 with step sizes of 1 and an initial value of 100.&lt;br /&gt;
Whenever the slider is moved the variable scaler is calculated based on the slider value.  The slider ranges from 0 to 100 but scaler ranges from 0 to 1.&lt;br /&gt;
Every time a sample is about to be played, the left and right channels get multiplied by the scaler variable.&lt;br /&gt;
You can try playing around with this.  What happens if you comment out the calculation for spl0?  Add a double forward slash to that line.  Save the file and reload the plugin on your track.  You don&#039;t need to rescan, just press control R when the plugin is selected in the FX chain.&lt;br /&gt;
Could you add another slider called Pan that ranges from -100 to +100 and changes the balance of the audio?&lt;br /&gt;
&lt;br /&gt;
== First MIDI Plugin ==&lt;br /&gt;
Here is a simple plugin that has a slider to change the pitch of any incoming MIDI notes.  The minimum code for MIDI is a little more than for audio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first MIDI js plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:0&amp;lt;-24,24,1&amp;gt;Semitone shift&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
shift = slider1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@block&lt;br /&gt;
&lt;br /&gt;
while( midirecv( offset, msg1, msg2, msg3 ) )&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
  msg1 &amp;amp; 0xF0 = 0x90 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  :&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2, msg3 );&lt;br /&gt;
&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the same way as with the audio plugin, copy this code into a plain text file and save it in the Effects subfolder in the Reaper resource path ideally in your own subfolder holding all your plugins. Start up Reaper so it does a rescan and then insert reaSynth onto a track as as a VSTi.  Test you can play notes.  Now add your first MIDI plugin onto this track as well.  Before it has any effect thugh yu need to move reaSynth so it is below your first MIDI plugin since the plugin needs to update the MIDI data between it being played and it arriving at reaSynth.  Do this by either cutting and pasting reaSynth so it is second in the chain, or using the action bound to control-shift alt page down (Windows).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tab to the Semitone shift slider in your new plugin. Play a note and then change the slider.  The pitch of notes is shifted.&lt;br /&gt;
&lt;br /&gt;
== Tools to help write plugins ==&lt;br /&gt;
The most basic tool is your plain text editor of choice.  Reaper does have an inbult editor but it is not easily accessible.  So writing code in a plain text editor is the next best thing.  If you make a change to your code and save it though, you will need to return to Reaper and the FX chain , press control R on your plugin and replace the plugin with a new instance of itself to for the changes take effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to view all the variables used in a plugin along with their values.  This can be done with NVDA object navigation by tabbing to the edit button in the FX dialogue, hitting enter , and uing object navigation to move right until a list control is reached.  Gone down and you can then review each variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging is difficult though in js plugins.  There is no option to display a message box or output diagnostic info to a file. And some variables will change their value with every sample or every block making them impossible to track.  You cannot step through the code one line at a time reviewing variable values like you can in more complex IDE&#039;s.&lt;br /&gt;
&lt;br /&gt;
It is possible to write debug messages to the screen as the program runs. THis might help in determining if a certain bit of code was executed for instance. Unfortunately, because you only see the last mesage written, it isn&#039;t as useful as it could be.&lt;br /&gt;
&lt;br /&gt;
Use a statement like the following:&lt;br /&gt;
&lt;br /&gt;
sprintf(#dbg_desc, &amp;quot;a message, which may include values of integers %d, or floats %f&amp;quot;, integerVar, floatVar);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resources ==&lt;br /&gt;
&lt;br /&gt;
There are not a whole bunch of great resources for writing js plugins.  Probably the most comprehensive source of information are all the plugins that come with Reaper and found in the Effects folder.  But these can be complex and difficult to work out how they work.&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial made by [https://www.admiralbumblebee.com/music/2018/02/08/Write-a-Reaper-MIDI-JSFX-from-scratch.html Admiral Bumblebeee] which goes through a modestly complex project to write a MIDI plugin.  There is also other useful content on this web site.&lt;br /&gt;
&lt;br /&gt;
[https://www.reaper.fm/sdk/js/basiccode.php#js_basic The JSFX Programming Reference - Language Essentials] is on Reaper&#039;s web site.  It is a reference manual though and not a tutorial but if you get into JSFX programming you will come to appreciate this resource.&lt;br /&gt;
&lt;br /&gt;
The Reaper community are a helpful bunch.  [https://forum.cockos.com/forumdisplay.php?f=3 The JSFX forum]. Use the search feature or search with something like Google putting reaper jsfx forum in as part of your search.  Sign up to post a question. &lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=620</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=620"/>
		<updated>2023-11-11T09:38:27Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* First Audio Plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=js Programming=&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
js plugins are Reaper&#039;s own plugin format similar in many ways to VST plugins.  A js plugin can process and generate audio and midi data and expose parameters to the user which can be automated.&lt;br /&gt;
&lt;br /&gt;
js plugins have a number of advantages such as easy to start writing, all parameters are exposed and these parameters are easy to interact with via a keyboard either directly in the user interface or by the OSARA parameter dialogue.  They also support graphics making them good for sighted users and it is also possible to add keyboard support though this is almost vanishingly rare.  Disadvantages are around limited to non-existent file handling.&lt;br /&gt;
&lt;br /&gt;
== View and existing js plugin ==&lt;br /&gt;
js plugins are written in plain text files and there are plenty to take a look at.  From the Reaper Help Options menu select Resource path.  In here is a folder called &amp;quot;Effects&amp;quot; in which are all the js plugins that come with Reaper.&lt;br /&gt;
&lt;br /&gt;
Typically a js plugin either has no file extension or an extension of jsfx.  Use your favourite plain text editor to open up any of the files to see what they look like.&lt;br /&gt;
&lt;br /&gt;
It is useful to turn the vebosity of your screen reader so it speaks all characters.  It is important to capture all the code when programming.  For example, a semicolon is required at the end of each command and most people dont set their screen reader to announce these.&lt;br /&gt;
&lt;br /&gt;
In NVDA, the verbosity can be cycled with NVDA+P.&lt;br /&gt;
&lt;br /&gt;
== Structure of a plugin ==&lt;br /&gt;
A js plugin is made up of a header and then a series of sections which have a predefined named and purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header can be as short as a declaration of the name of the plugin but can also hold much more information such as the author, date, version, release notes, instructions on usage and other information that helps with reaPack integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header is followed by definition of the plugin parameters which is done by defining a slider for each parameter.  A slider has a min value, a max value, an increment value and a default value.  These are seen by the user in the plugin user interface as a slider and edit box for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @init block is run when the plugin first starts which is typically when it is first loaded onto an FX chain and when play starts. It is used to initialise variables to default values.  Note that the js plugin language does not require variables to be declared before they are used so this section does not need to include initialisation of all variables if this is done elsewhere.  Also, the default initialisation of a variable is to set it to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @slider block is run whenever a parameter is changed either through automation or by the user.  For example, a parameter might be presented to the user as a percentage from 0 to 100 but the code needs this rescaling from -1 to 1.&lt;br /&gt;
&lt;br /&gt;
One thing I&#039;ve noticed is that the @slider section runs even when a slider gains focus - i.e. when you tab to it. Thus, it is often helpful to copy slider contents into variables and then in the @slider section, compare the variable with the slider&#039;s current value to see if it has changed. If it has then update the variable and run any additional code necessary.  For instance:&lt;br /&gt;
&lt;br /&gt;
//code start&lt;br /&gt;
// we define a slider called s_lowpassCutoff, with initial value of 50, min and max of 20 and 100, and label &amp;quot;lowpass cutoff&amp;quot;&lt;br /&gt;
slider1:s_lowpassCutoff=50 &amp;lt;20, 100, 1&amp;gt;lowpass cutoff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@init&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // store the initial slider value to compare with later&lt;br /&gt;
// do other initialization like initialize your filter, etc&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
// if slider has changed&lt;br /&gt;
lowpassCutoff != s_lowpassCutoff ? (&lt;br /&gt;
lowpassCutoff = s_lowpassCutoff; // update the variable&lt;br /&gt;
// set filter cutoff etc&lt;br /&gt;
//...&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
This will set the filter cutoff only if the user actually changed the slider.&lt;br /&gt;
&lt;br /&gt;
Note that variable names can be mixed case, but they are case folded by the compiler. This means that MyVariable is the same as myvariable however screen reader pronounciation is better with mixed case, so that&#039;s what I tend to use. Underscores can also be used in variable names, i.e. my_variable is valid.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @block code is run as a new block of samples arrives.  The block size as defined in Reaper preferences in the devices section dictates how many sampless.  This is an area of code commonly used to process MIDI as all the MIDI notes and events coming up in the next block of samples can be processed and action taken accordingly.  Also, MIDI notes and events can be inserted so they are played once the block enters Reaper&#039;s play buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The@sample block is run every sample.  So yes, many thousands of times a second.  Commonly used to process audio as there is easy access to the value of the audio in each channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @gfx block is used to draw graphics and process keyboard input.  I&#039;m not sure when it is run.&lt;br /&gt;
&lt;br /&gt;
== First Audio Plugin ==&lt;br /&gt;
Let&#039;s dive in with a very simple js plugin that includes a volume control for audio.  Open up a plain text editor and copy and paste the following code into it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first audio plugin &lt;br /&gt;
&lt;br /&gt;
slider1:100&amp;lt;0,100,1&amp;gt;Volume &lt;br /&gt;
&lt;br /&gt;
@slider &lt;br /&gt;
scaler = slider1/100; &lt;br /&gt;
&lt;br /&gt;
@sample &lt;br /&gt;
spl0 *= scaler; &lt;br /&gt;
spl1 *= scaler; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save this in the Reaper resources Effects folder, ideally in a new subfolder to contain all your plugins.  Start up Reaper and it should do a rescan and make your new js plugin available to use.&lt;br /&gt;
&lt;br /&gt;
Create a track and add some audio to it for example recording yourself speaking, by inserting an audio file or selecting something from media explorer.  Hit F on the track to bring up the FX chain dialogue and use the Add button to add your plugin.  Type in &amp;quot;first&amp;quot; as this is text included in the first line of the code copied into the plugin and is the name given to the plugin.  Arrow down and you should find the plugin.  Hit enter and it will get loaded onto the FX chain for the track.  Press tab to work your way through the plugin and you will come to the slider and edit controls for the volume parameter.&lt;br /&gt;
&lt;br /&gt;
Press space to play the audio and then adjust the volume with either the slider or entering a new value in the edit field.  The volume changes.  Your first plugin.&lt;br /&gt;
&lt;br /&gt;
A slider is defined  at the top of the file which ranges from 0 to 100 with step sizes of 1 and an initial value of 100.&lt;br /&gt;
Whenever the slider is moved the variable scaler is calculated based on the slider value.  The slider ranges from 0 to 100 but scaler ranges from 0 to 1.&lt;br /&gt;
Every time a sample is about to be played, the left and right channels get multiplied by the scaler variable.&lt;br /&gt;
You can try playing around with this.  What happens if you comment out the calculation for spl0?  Add a double forward slash to that line.  Save the file and reload the plugin on your track.  You don&#039;t need to rescan, just press control R when the plugin is selected in the FX chain.&lt;br /&gt;
Could you add another slider called Pan that ranges from -100 to +100 and changes the balance of the audio?&lt;br /&gt;
&lt;br /&gt;
== First MIDI Plugin ==&lt;br /&gt;
Here is a simple plugin that has a slider to change the pitch of any incoming MIDI notes.  The minimum code for MIDI is a little more than for audio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first MIDI js plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:0&amp;lt;-24,24,1&amp;gt;Semitone shift&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
shift = slider1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@block&lt;br /&gt;
&lt;br /&gt;
while( midirecv( offset, msg1, msg2, msg3 ) )&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
  msg1 &amp;amp; 0xF0 = 0x90 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  :&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2, msg3 );&lt;br /&gt;
&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the same way as with the audio plugin, copy this code into a plain text file and save it in the Effects subfolder in the Reaper resource path ideally in your own subfolder holding all your plugins. Start up Reaper so it does a rescan and then insert reaSynth onto a track as as a VSTi.  Test you can play notes.  Now add your first MIDI plugin onto this track as well.  Before it has any effect thugh yu need to move reaSynth so it is below your first MIDI plugin since the plugin needs to update the MIDI data between it being played and it arriving at reaSynth.  Do this by either cutting and pasting reaSynth so it is second in the chain, or using the action bound to control-shift alt page down (Windows).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tab to the Semitone shift slider in your new plugin. Play a note and then change the slider.  The pitch of notes is shifted.&lt;br /&gt;
&lt;br /&gt;
== Tools to help write plugins ==&lt;br /&gt;
The most basic tool is your plain text editor of choice.  Reaper does have an inbult editor but it is not easily accessible.  So writing code in a plain text editor is the next best thing.  If you make a change to your code and save it though, you will need to return to Reaper and the FX chain , press control R on your plugin and replace the plugin with a new instance of itself to for the changes take effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to view all the variables used in a plugin along with their values.  This can be done with NVDA object navigation by tabbing to the edit button in the FX dialogue, hitting enter , and uing object navigation to move right until a list control is reached.  Gone down and you can then review each variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging is difficult though in js plugins.  There is no option to display a message box or output diagnostic info to a file. And some variables will change their value with every sample or every block making them impossible to track.  You cannot step through the code one line at a time reviewing variable values like you can in more complex IDE&#039;s.&lt;br /&gt;
&lt;br /&gt;
It is possible to write debug messages to the screen as the program runs. THis might help in determining if a certain bit of code was executed for instance. Unfortunately, because you only see the last mesage written, it isn&#039;t as useful as it could be.&lt;br /&gt;
&lt;br /&gt;
Use a statement like the following:&lt;br /&gt;
&lt;br /&gt;
sprintf(#dbg_desc, &amp;quot;a message, which may include values of integers %d, or floats %f&amp;quot;, integerVar, floatVar);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Resources ==&lt;br /&gt;
&lt;br /&gt;
There are not a whole bunch of great resources for writing js plugins.  Probably the most comprehensive source of information are all the plugins that come with Reaper and found in the Effects folder.  But these can be complex and difficult to work out how they work.&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial made by [https://www.admiralbumblebee.com/music/2018/02/08/Write-a-Reaper-MIDI-JSFX-from-scratch.html Admiral Bumblebeee] which goes through a modestly complex project to write a MIDI plugin.  There is also other useful content on this web site.&lt;br /&gt;
&lt;br /&gt;
[https://www.reaper.fm/sdk/js/basiccode.php#js_basic The JSFX Programming Reference - Language Essentials] is on Reaper&#039;s web site.  It is a reference manual though and not a tutorial but if you get into JSFX programming you will come to appreciate this resource.&lt;br /&gt;
&lt;br /&gt;
The Reaper community are a helpful bunch.  [https://forum.cockos.com/forumdisplay.php?f=3 The JSFX forum]. Use the search feature or search with something like Google putting reaper jsfx forum in as part of your search.  Sign up to post a question. &lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=618</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=618"/>
		<updated>2023-11-07T19:45:46Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* Tools to help write plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=js Programming=&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
js plugins are Reaper&#039;s own plugin format similar in many ways to VST plugins.  A js plugin can process and generate audio and midi data and expose parameters to the user which can be automated.&lt;br /&gt;
&lt;br /&gt;
js plugins have a number of advantages such as easy to start writing, all parameters are exposed and these parameters are easy to interact with via a keyboard either directly in the user interface or by the OSARA parameter dialogue.  They also support graphics making them good for sighted users and it is also possible to add keyboard support though this is almost vanishingly rare.  Disadvantages are around limited to non-existent file handling.&lt;br /&gt;
&lt;br /&gt;
== View and existing js plugin ==&lt;br /&gt;
js plugins are written in plain text files and there are plenty to take a look at.  From the Reaper Help Options menu select Resource path.  In here is a folder called &amp;quot;Effects&amp;quot; in which are all the js plugins that come with Reaper.&lt;br /&gt;
&lt;br /&gt;
Typically a js plugin either has no file extension or an extension of jsfx.  Use your favourite plain text editor to open up any of the files to see what they look like.&lt;br /&gt;
&lt;br /&gt;
It is useful to turn the vebosity of your screen reader so it speaks all characters.  It is important to capture all the code when programming.  For example, a semicolon is required at the end of each command and most people dont set their screen reader to announce these.&lt;br /&gt;
&lt;br /&gt;
In NVDA, the verbosity can be cycled with NVDA+P.&lt;br /&gt;
&lt;br /&gt;
== Structure of a plugin ==&lt;br /&gt;
A js plugin is made up of a header and then a series of sections which have a predefined named and purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header can be as short as a declaration of the name of the plugin but can also hold much more information such as the author, date, version, release notes, instructions on usage and other information that helps with reaPack integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header is followed by definition of the plugin parameters which is done by defining a slider for each parameter.  A slider has a min value, a max value, an increment value and a default value.  These are seen by the user in the plugin user interface as a slider and edit box for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @init block is run when the plugin first starts which is typically when it is first loaded onto an FX chain and when play starts. It is used to initialise variables to default values.  Note that the js plugin language does not require variables to be declared before they are used so this section does not need to include initialisation of all variables if this is done elsewhere.  Also, the default initialisation of a variable is to set it to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @slider block is run whenever a parameter is changed either through automation or by the user.  For example, a parameter might be presented to the user as a percentage from 0 to 100 but the code needs this rescaling from -1 to 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @block code is run as a new block of samples arrives.  The block size as defined in Reaper preferences in the devices section dictates how many sampless.  This is an area of code commonly used to process MIDI as all the MIDI notes and events coming up in the next block of samples can be processed and action taken accordingly.  Also, MIDI notes and events can be inserted so they are played once the block enters Reaper&#039;s play buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The@sample block is run every sample.  So yes, many thousands of times a second.  Commonly used to process audio as there is easy access to the value of the audio in each channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @gfx block is used to draw graphics and process keyboard input.  I&#039;m not sure when it is run.&lt;br /&gt;
&lt;br /&gt;
== First Audio Plugin ==&lt;br /&gt;
Let&#039;s dive in with a very simple js plugin that includes a volume control for audio.  Open up a plain text editor and copy and paste the following code into it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first audio plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:100&amp;lt;0,100,1&amp;gt;Volume&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
scaler = slider1/100;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@sample&lt;br /&gt;
&lt;br /&gt;
spl0 *= scaler;&lt;br /&gt;
&lt;br /&gt;
spl1 *= scaler;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save this in the Reaper resources Effects folder, ideally in a new subfolder to contain all your plugins.  Start up Reaper and it should do a rescan and make your new js plugin available to use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a track and add some audio to it for example recording yourself speaking, by inserting an audio file or selecting something from media explorer.  Hit F on the track to bring up the FX chain dialogue and use the Add button to add your plugin.  Type in &amp;quot;first&amp;quot; as this is text included in the first line of the code copied into the plugin and is the name given to the plugin.  Arrow down and you should find the plugin.  Hit enter and it will get loaded onto the FX chain for the track.  Press tab to work your way through the plugin and you will come to the slider and edit controls for the volume parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press space to play the audio and then adjust the volume with either the slider or entering a new value in the edit field.  The volume changes.  Your first plugin.&lt;br /&gt;
&lt;br /&gt;
== First MIDI Plugin ==&lt;br /&gt;
Here is a simple plugin that has a slider to change the pitch of any incoming MIDI notes.  The minimum code for MIDI is a little more than for audio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first MIDI js plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:0&amp;lt;-24,24,1&amp;gt;Semitone shift&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
shift = slider1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@block&lt;br /&gt;
&lt;br /&gt;
while( midirecv( offset, msg1, msg2, msg3 ) )&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
  msg1 &amp;amp; 0xF0 = 0x90 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  :&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2, msg3 );&lt;br /&gt;
&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the same way as with the audio plugin, copy this code into a plain text file and save it in the Effects subfolder in the Reaper resource path ideally in your own subfolder holding all your plugins. Start up Reaper so it does a rescan and then insert reaSynth onto a track as as a VSTi.  Test you can play notes.  Now add your first MIDI plugin onto this track as well.  Before it has any effect thugh yu need to move reaSynth so it is below your first MIDI plugin since the plugin needs to update the MIDI data between it being played and it arriving at reaSynth.  Do this by either cutting and pasting reaSynth so it is second in the chain, or using the action bound to control-shift alt page down (Windows).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tab to the Semitone shift slider in your new plugin. Play a note and then change the slider.  The pitch of notes is shifted.&lt;br /&gt;
&lt;br /&gt;
== Tools to help write plugins ==&lt;br /&gt;
The most basic tool is your plain text editor of choice.  Reaper does have an inbult editor but it is not easily accessible.  So writing code in a plain text editor is the next best thing.  If you make a change to your code and save it though, you will need to return to Reaper and the FX chain , press contrl R on your plugin and replace the plugin with a new instance of itself to for the changes take effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to view all the variables used in a plugin along with their values.  This can be done with NVDA object navigation by tabbing to the edit button in the FX dialogue, hitting enter , and uing object navigation to move right until a list control is reached.  Gone down and you can then review each variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging is difficult though in js plugins.  There is no option to display a message box or output diagnostic info to a file. And some variables will change their value with every sample or every block making them impossible to track.  You cannot step through the code one line at a time reviewing variable values like you can in more complex IDE&#039;s.&lt;br /&gt;
&lt;br /&gt;
==Resources ==&lt;br /&gt;
&lt;br /&gt;
There are not a whole bunch of great resources for writing js plugins.  Probably the most comprehensive source of information are all the plugins that come with Reaper and found in the Effects folder.  But these can be complex and difficult to work out how they work.&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial made by [https://www.admiralbumblebee.com/music/2018/02/08/Write-a-Reaper-MIDI-JSFX-from-scratch.html Admiral Bumblebeee] which goes through a modestly complex project to write a MIDI plugin.  There is also other useful content on this web site.&lt;br /&gt;
&lt;br /&gt;
[https://www.reaper.fm/sdk/js/basiccode.php#js_basic The JSFX Programming Reference - Language Essentials] is on Reaper&#039;s web site.  It is a reference manual though and not a tutorial but if you get into JSFX programming you will come to appreciate this resource.&lt;br /&gt;
&lt;br /&gt;
The Reaper community are a helpful bunch.  [https://forum.cockos.com/forumdisplay.php?f=3 The JSFX forum]. Use the search feature or search with something like Google putting reaper jsfx forum in as part of your search.  Sign up to post a question. &lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=617</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=617"/>
		<updated>2023-11-02T22:38:10Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* js Programming */  Corrected headings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=js Programming=&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
js plugins are Reaper&#039;s own plugin format similar in many ways to VST plugins.  A js plugin can process and generate audio and midi data and expose parameters to the user which can be automated.&lt;br /&gt;
&lt;br /&gt;
js plugins have a number of advantages such as easy to start writing, all parameters are exposed and these parameters are easy to interact with via a keyboard either directly in the user interface or by the OSARA parameter dialogue.  They also support graphics making them good for sighted users and it is also possible to add keyboard support though this is almost vanishingly rare.  Disadvantages are around limited to non-existent file handling.&lt;br /&gt;
&lt;br /&gt;
== View and existing js plugin ==&lt;br /&gt;
js plugins are written in plain text files and there are plenty to take a look at.  From the Reaper Help Options menu select Resource path.  In here is a folder called &amp;quot;Effects&amp;quot; in which are all the js plugins that come with Reaper.&lt;br /&gt;
&lt;br /&gt;
Typically a js plugin either has no file extension or an extension of jsfx.  Use your favourite plain text editor to open up any of the files to see what they look like.&lt;br /&gt;
&lt;br /&gt;
It is useful to turn the vebosity of your screen reader so it speaks all characters.  It is important to capture all the code when programming.  For example, a semicolon is required at the end of each command and most people dont set their screen reader to announce these.&lt;br /&gt;
&lt;br /&gt;
In NVDA, the verbosity can be cycled with NVDA+P.&lt;br /&gt;
&lt;br /&gt;
== Structure of a plugin ==&lt;br /&gt;
A js plugin is made up of a header and then a series of sections which have a predefined named and purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header can be as short as a declaration of the name of the plugin but can also hold much more information such as the author, date, version, release notes, instructions on usage and other information that helps with reaPack integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header is followed by definition of the plugin parameters which is done by defining a slider for each parameter.  A slider has a min value, a max value, an increment value and a default value.  These are seen by the user in the plugin user interface as a slider and edit box for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @init block is run when the plugin first starts which is typically when it is first loaded onto an FX chain and when play starts. It is used to initialise variables to default values.  Note that the js plugin language does not require variables to be declared before they are used so this section does not need to include initialisation of all variables if this is done elsewhere.  Also, the default initialisation of a variable is to set it to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @slider block is run whenever a parameter is changed either through automation or by the user.  For example, a parameter might be presented to the user as a percentage from 0 to 100 but the code needs this rescaling from -1 to 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @block code is run as a new block of samples arrives.  The block size as defined in Reaper preferences in the devices section dictates how many sampless.  This is an area of code commonly used to process MIDI as all the MIDI notes and events coming up in the next block of samples can be processed and action taken accordingly.  Also, MIDI notes and events can be inserted so they are played once the block enters Reaper&#039;s play buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The@sample block is run every sample.  So yes, many thousands of times a second.  Commonly used to process audio as there is easy access to the value of the audio in each channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @gfx block is used to draw graphics and process keyboard input.  I&#039;m not sure when it is run.&lt;br /&gt;
&lt;br /&gt;
== First Audio Plugin ==&lt;br /&gt;
Let&#039;s dive in with a very simple js plugin that includes a volume control for audio.  Open up a plain text editor and copy and paste the following code into it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first audio plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:100&amp;lt;0,100,1&amp;gt;Volume&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
scaler = slider1/100;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@sample&lt;br /&gt;
&lt;br /&gt;
spl0 *= scaler;&lt;br /&gt;
&lt;br /&gt;
spl1 *= scaler;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save this in the Reaper resources Effects folder, ideally in a new subfolder to contain all your plugins.  Start up Reaper and it should do a rescan and make your new js plugin available to use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a track and add some audio to it for example recording yourself speaking, by inserting an audio file or selecting something from media explorer.  Hit F on the track to bring up the FX chain dialogue and use the Add button to add your plugin.  Type in &amp;quot;first&amp;quot; as this is text included in the first line of the code copied into the plugin and is the name given to the plugin.  Arrow down and you should find the plugin.  Hit enter and it will get loaded onto the FX chain for the track.  Press tab to work your way through the plugin and you will come to the slider and edit controls for the volume parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press space to play the audio and then adjust the volume with either the slider or entering a new value in the edit field.  The volume changes.  Your first plugin.&lt;br /&gt;
&lt;br /&gt;
== First MIDI Plugin ==&lt;br /&gt;
Here is a simple plugin that has a slider to change the pitch of any incoming MIDI notes.  The minimum code for MIDI is a little more than for audio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first MIDI js plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:0&amp;lt;-24,24,1&amp;gt;Semitone shift&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
shift = slider1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@block&lt;br /&gt;
&lt;br /&gt;
while( midirecv( offset, msg1, msg2, msg3 ) )&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
  msg1 &amp;amp; 0xF0 = 0x90 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  :&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2, msg3 );&lt;br /&gt;
&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the same way as with the audio plugin, copy this code into a plain text file and save it in the Effects subfolder in the Reaper resource path ideally in your own subfolder holding all your plugins. Start up Reaper so it does a rescan and then insert reaSynth onto a track as as a VSTi.  Test you can play notes.  Now add your first MIDI plugin onto this track as well.  Before it has any effect thugh yu need to move reaSynth so it is below your first MIDI plugin since the plugin needs to update the MIDI data between it being played and it arriving at reaSynth.  Do this by either cutting and pasting reaSynth so it is second in the chain, or using the action bound to control-shift alt page down (Windows).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tab to the Semitone shift slider in your new plugin. Play a note and then change the slider.  The pitch of notes is shifted.&lt;br /&gt;
&lt;br /&gt;
== Tools to help write plugins ==&lt;br /&gt;
The most basic tool is your plain text editor of choice.  Reaper does have an inbult editor but it is not easily accessible.  So writing code in a plain text editor is the next best thing.  If you make a change to your code and save it though, you will need to return to Reaper and the FX chain , press contrl R on your plugin and replace the plugin with a new instance of itself to for the changes take effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to view all the variables used in a plugin along with their values.  This can be done with NVDA object navigation by tabbing to the edit button in the FX dialogue, hitting enter , and uing object navigation to move right until a list control is reached.  Gone down and you can then review each variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging is difficult though in js plugins.  There is no option to display a message box or output diagnostic info to a file. And some variables will change their value with every sample or every block making them impossible to track.  You cannot step through the code one line at a time reviewing variable values like you can in more complex IDE&#039;s.&lt;br /&gt;
&lt;br /&gt;
Resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are not a whole bunch of great resources for writing js plugins.  Probably the most comprehensive source of information are all the plugins that come with Reaper and found in the Effects folder.  But these can be complex and difficult to work out how they work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial made by Admirable Bumble Bee which goes through a modestly complex project to write a MIDI plugin.  There is also other content on this web site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The user manual for the js plugin language is on Reaper&#039;s web site.  It is a reference manual though and not a tutorial.&lt;br /&gt;
&lt;br /&gt;
The Reaper community are a helpful bunch.  Click on the Forum link from the Reaper homepage and sign up.  There is a js plugin and reaScript forum  where you can ask questions and see other questions and answers.  There is a search option for each forum or include &amp;quot;Reaper js plugin forum&amp;quot; in a search engine query.&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=616</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=616"/>
		<updated>2023-11-02T22:32:50Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* js Programming */ First draft of majority of initial content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=js Programming=&lt;br /&gt;
&lt;br /&gt;
== Introduction == ==&lt;br /&gt;
js plugins are Reaper&#039;s own plugin format similar in many ways to VST plugins.  A js plugin can process and generate audio and midi data and expose parameters to the user which can be automated.&lt;br /&gt;
&lt;br /&gt;
js plugins have a number of advantages such as easy to start writing, all parameters are exposed and these parameters are easy to interact with via a keyboard either directly in the user interface or by the OSARA parameter dialogue.  They also support graphics making them good for sighted users and it is also possible to add keyboard support though this is almost vanishingly rare.  Disadvantages are around limited to non-existent file handling.&lt;br /&gt;
&lt;br /&gt;
== View and existing js plugin== ==&lt;br /&gt;
js plugins are written in plain text files and there are plenty to take a look at.  From the Reaper Help Options menu select Resource path.  In here is a folder called &amp;quot;Effects&amp;quot; in which are all the js plugins that come with Reaper.&lt;br /&gt;
&lt;br /&gt;
Typically a js plugin either has no file extension or an extension of jsfx.  Use your favourite plain text editor to open up any of the files to see what they look like.&lt;br /&gt;
&lt;br /&gt;
It is useful to turn the vebosity of your screen reader so it speaks all characters.  It is important to capture all the code when programming.  For example, a semicolon is required at the end of each command and most people dont set their screen reader to announce these.&lt;br /&gt;
&lt;br /&gt;
In NVDA, the verbosity can be cycled with NVDA+P.&lt;br /&gt;
&lt;br /&gt;
== Structure of a plugin== ==&lt;br /&gt;
A js plugin is made up of a header and then a series of sections which have a predefined named and purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header can be as short as a declaration of the name of the plugin but can also hold much more information such as the author, date, version, release notes, instructions on usage and other information that helps with reaPack integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The header is followed by definition of the plugin parameters which is done by defining a slider for each parameter.  A slider has a min value, a max value, an increment value and a default value.  These are seen by the user in the plugin user interface as a slider and edit box for each parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @init block is run when the plugin first starts which is typically when it is first loaded onto an FX chain and when play starts. It is used to initialise variables to default values.  Note that the js plugin language does not require variables to be declared before they are used so this section does not need to include initialisation of all variables if this is done elsewhere.  Also, the default initialisation of a variable is to set it to zero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @slider block is run whenever a parameter is changed either through automation or by the user.  For example, a parameter might be presented to the user as a percentage from 0 to 100 but the code needs this rescaling from -1 to 1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @block code is run as a new block of samples arrives.  The block size as defined in Reaper preferences in the devices section dictates how many sampless.  This is an area of code commonly used to process MIDI as all the MIDI notes and events coming up in the next block of samples can be processed and action taken accordingly.  Also, MIDI notes and events can be inserted so they are played once the block enters Reaper&#039;s play buffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The@sample block is run every sample.  So yes, many thousands of times a second.  Commonly used to process audio as there is easy access to the value of the audio in each channel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The @gfx block is used to draw graphics and process keyboard input.  I&#039;m not sure when it is run.&lt;br /&gt;
&lt;br /&gt;
== First Audio Plugin== ==&lt;br /&gt;
Let&#039;s dive in with a very simple js plugin that includes a volume control for audio.  Open up a plain text editor and copy and paste the following code into it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first audio plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:100&amp;lt;0,100,1&amp;gt;Volume&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
scaler = slider1/100;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@sample&lt;br /&gt;
&lt;br /&gt;
spl0 *= scaler;&lt;br /&gt;
&lt;br /&gt;
spl1 *= scaler;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save this in the Reaper resources Effects folder, ideally in a new subfolder to contain all your plugins.  Start up Reaper and it should do a rescan and make your new js plugin available to use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Create a track and add some audio to it for example recording yourself speaking, by inserting an audio file or selecting something from media explorer.  Hit F on the track to bring up the FX chain dialogue and use the Add button to add your plugin.  Type in &amp;quot;first&amp;quot; as this is text included in the first line of the code copied into the plugin and is the name given to the plugin.  Arrow down and you should find the plugin.  Hit enter and it will get loaded onto the FX chain for the track.  Press tab to work your way through the plugin and you will come to the slider and edit controls for the volume parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Press space to play the audio and then adjust the volume with either the slider or entering a new value in the edit field.  The volume changes.  Your first plugin.&lt;br /&gt;
&lt;br /&gt;
== First MIDI Plugin== ==&lt;br /&gt;
Here is a simple plugin that has a slider to change the pitch of any incoming MIDI notes.  The minimum code for MIDI is a little more than for audio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desc: My first MIDI js plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
slider:0&amp;lt;-24,24,1&amp;gt;Semitone shift&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@slider&lt;br /&gt;
&lt;br /&gt;
shift = slider1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@block&lt;br /&gt;
&lt;br /&gt;
while( midirecv( offset, msg1, msg2, msg3 ) )&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
&lt;br /&gt;
  msg1 &amp;amp; 0xF0 = 0x90 ?&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2 + shift, msg3 );&lt;br /&gt;
&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  :&lt;br /&gt;
&lt;br /&gt;
  (&lt;br /&gt;
&lt;br /&gt;
   midisend( offset, msg1, msg2, msg3 );&lt;br /&gt;
&lt;br /&gt;
  );&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the same way as with the audio plugin, copy this code into a plain text file and save it in the Effects subfolder in the Reaper resource path ideally in your own subfolder holding all your plugins. Start up Reaper so it does a rescan and then insert reaSynth onto a track as as a VSTi.  Test you can play notes.  Now add your first MIDI plugin onto this track as well.  Before it has any effect thugh yu need to move reaSynth so it is below your first MIDI plugin since the plugin needs to update the MIDI data between it being played and it arriving at reaSynth.  Do this by either cutting and pasting reaSynth so it is second in the chain, or using the action bound to control-shift alt page down (Windows).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tab to the Semitone shift slider in your new plugin. Play a note and then change the slider.  The pitch of notes is shifted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;==Tools to help write plugins==&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most basic tool is your plain text editor of choice.  Reaper does have an inbult editor but it is not easily accessible.  So writing code in a plain text editor is the next best thing.  If you make a change to your code and save it though, you will need to return to Reaper and the FX chain , press contrl R on your plugin and replace the plugin with a new instance of itself to for the changes take effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to view all the variables used in a plugin along with their values.  This can be done with NVDA object navigation by tabbing to the edit button in the FX dialogue, hitting enter , and uing object navigation to move right until a list control is reached.  Gone down and you can then review each variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging is difficult though in js plugins.  There is no option to display a message box or output diagnostic info to a file. And some variables will change their value with every sample or every block making them impossible to track.  You cannot step through the code one line at a time reviewing variable values like you can in more complex IDE&#039;s.&lt;br /&gt;
&lt;br /&gt;
Resources&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are not a whole bunch of great resources for writing js plugins.  Probably the most comprehensive source of information are all the plugins that come with Reaper and found in the Effects folder.  But these can be complex and difficult to work out how they work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial made by Admirable Bumble Bee which goes through a modestly complex project to write a MIDI plugin.  There is also other content on this web site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The user manual for the js plugin language is on Reaper&#039;s web site.  It is a reference manual though and not a tutorial.&lt;br /&gt;
&lt;br /&gt;
The Reaper community are a helpful bunch.  Click on the Forum link from the Reaper homepage and sign up.  There is a js plugin and reaScript forum  where you can ask questions and see other questions and answers.  There is a search option for each forum or include &amp;quot;Reaper js plugin forum&amp;quot; in a search engine query.&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=615</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=615"/>
		<updated>2023-11-02T21:59:57Z</updated>

		<summary type="html">&lt;p&gt;Chessel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=js Programming=&lt;br /&gt;
This page is an introduction to programming js plugins.&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=614</id>
		<title>Js programming</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Js_programming&amp;diff=614"/>
		<updated>2023-11-02T21:54:14Z</updated>

		<summary type="html">&lt;p&gt;Chessel: Created page with &amp;quot;&amp;lt;-js Programming-&amp;gt; This page is an introduction to programming js plugins.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;-js Programming-&amp;gt;&lt;br /&gt;
This page is an introduction to programming js plugins.&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=612</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=612"/>
		<updated>2023-10-29T21:53:51Z</updated>

		<summary type="html">&lt;p&gt;Chessel: Made js programming a title&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
= The Reaper Accessibility Wiki  = &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
REAPER is a complete digital audio production application for Windows and Mac OS X, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset. This wiki provides information for blind Reaper users. Whether you&#039;re a musician, songwriter, podcaster or audio/video editor, Reaper can more than serve your needs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
To start, you may wish to [[Special:MyLanguage/Getting_Started|read how to download and install Reaper, Osara and SWS.]] You can  also  [[Special:MyLanguage/Useful_Links_and_Resources|checkout these useful links and resources]] and the [[:Category:ArchivedSites|archived sites]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Also, we are starting to make accessible and adapt the following official documents, found on the reaper website and some others:&lt;br /&gt;
*official reaper user guide. Thanks to the author of the users guide, Geoffrey Francis&#039; abundant generosity and patience the document is now properly tagged and can be read using your preferred screen reader and pdf reader. [http://reaper.fm/userguide.php download from reaper&#039;s official site]&lt;br /&gt;
* [[Special:MyLanguage/ReaEffects guide|ReaEffects guide]]&lt;br /&gt;
*the [[Special:MyLanguage/Reaper plus! the power of sws extensions|Reaper plus! the power of sws extensions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Below you will find a contents section that lists every Reaper Accessibility article on this site written for users, by users of the reaper accessibility community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents (user written articles) == &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*[[Special:MyLanguage/Getting_Started|Getting Started (Downloading and Installing Reaper With accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Keyboard_Shortcuts|Keyboard Shortcuts]]&lt;br /&gt;
**[[Special:MyLanguage/Reaper shortcut key list by headings|Reaper shortcut key list by headings]]&lt;br /&gt;
*[[Special:MyLanguage/Making_Your_First_Recording|Making Your First Recording In Reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Basic_editing|basic editing tasks in reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Enabling_Midi_Devices|Enabling Midi Devices]]&lt;br /&gt;
*some ideas for [[Special:MyLanguage/editing midi in reaper using osara|editing midi in reaper using osara]]&lt;br /&gt;
*[[Special:MyLanguage/Using_Reaper_Under_MacOs|tips for mac users]]&lt;br /&gt;
*[[Special:MyLanguage/Monitoring levels when you can&#039;t see the meters|Monitoring levels when you can&#039;t see the meters]]&lt;br /&gt;
*[[Special:MyLanguage/Tracks_and_Track_Folders|Tracks And Track Folders]]&lt;br /&gt;
*[[Special:MyLanguage/Track_Templates|Track Templates]]&lt;br /&gt;
*[[Special:MyLanguage/Project_Templates|Project Templates]]&lt;br /&gt;
*[[Special:MyLanguage/The fast and easy way to understand compression and reaComp accessibility|The fast and easy way to understand compression and reaComp accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Sidechaining_with_ReaComp|Setting Up a Side Chain with Reacomp]]&lt;br /&gt;
*[[Special:MyLanguage/tapeStop effect using stretch markers|tapeStop effect using stretch markers]]&lt;br /&gt;
*[[Special:MyLanguage/Implementing accessible automation|Implementing accessible automation]]&lt;br /&gt;
*[[Special:MyLanguage/The_render_and_Consolidate/Export_Tracks_Dialogs|Rendering and Exporting Tracks and Projects]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_to_save_Disc_Space|Reaper Preferences To Save Disc Space]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_General|overview of Reaper Preferences (General)]]&lt;br /&gt;
*[[Special:MyLanguage/Loop or beat slicing using reaSamploMatic|Loop or beat slicing using reaSamploMatic]]&lt;br /&gt;
*[[Special:MyLanguage/Ideas_for_video_editing|Ideas for video editing]]&lt;br /&gt;
*[[Special:MyLanguage/SIBIAC add on for NVDA|SIBIAC add on for NVDA]] an addon which aims to make third party fx or instrument plug-ins accessible&lt;br /&gt;
*[[Special:MyLanguage/Reaper_and_Osara_Cookbook|Reaper and Osara Cookbook]] A problem and solution style guide to many tasks using Reaper with the Osara extension.&lt;br /&gt;
*&amp;lt;nowiki&amp;gt;[[js programming]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*[[Special:MyLanguage/Useful_Links_and_Resources|Useful Links and resources]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=611</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=611"/>
		<updated>2023-10-29T09:26:55Z</updated>

		<summary type="html">&lt;p&gt;Chessel: Added js programming bullet point&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
= The Reaper Accessibility Wiki  = &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
REAPER is a complete digital audio production application for Windows and Mac OS X, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset. This wiki provides information for blind Reaper users. Whether you&#039;re a musician, songwriter, podcaster or audio/video editor, Reaper can more than serve your needs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
To start, you may wish to [[Special:MyLanguage/Getting_Started|read how to download and install Reaper, Osara and SWS.]] You can  also  [[Special:MyLanguage/Useful_Links_and_Resources|checkout these useful links and resources]] and the [[:Category:ArchivedSites|archived sites]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Also, we are starting to make accessible and adapt the following official documents, found on the reaper website and some others:&lt;br /&gt;
*official reaper user guide. Thanks to the author of the users guide, Geoffrey Francis&#039; abundant generosity and patience the document is now properly tagged and can be read using your preferred screen reader and pdf reader. [http://reaper.fm/userguide.php download from reaper&#039;s official site]&lt;br /&gt;
* [[Special:MyLanguage/ReaEffects guide|ReaEffects guide]]&lt;br /&gt;
*the [[Special:MyLanguage/Reaper plus! the power of sws extensions|Reaper plus! the power of sws extensions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Below you will find a contents section that lists every Reaper Accessibility article on this site written for users, by users of the reaper accessibility community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents (user written articles) == &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*[[Special:MyLanguage/Getting_Started|Getting Started (Downloading and Installing Reaper With accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Keyboard_Shortcuts|Keyboard Shortcuts]]&lt;br /&gt;
**[[Special:MyLanguage/Reaper shortcut key list by headings|Reaper shortcut key list by headings]]&lt;br /&gt;
*[[Special:MyLanguage/Making_Your_First_Recording|Making Your First Recording In Reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Basic_editing|basic editing tasks in reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Enabling_Midi_Devices|Enabling Midi Devices]]&lt;br /&gt;
*some ideas for [[Special:MyLanguage/editing midi in reaper using osara|editing midi in reaper using osara]]&lt;br /&gt;
*[[Special:MyLanguage/Using_Reaper_Under_MacOs|tips for mac users]]&lt;br /&gt;
*[[Special:MyLanguage/Monitoring levels when you can&#039;t see the meters|Monitoring levels when you can&#039;t see the meters]]&lt;br /&gt;
*[[Special:MyLanguage/Tracks_and_Track_Folders|Tracks And Track Folders]]&lt;br /&gt;
*[[Special:MyLanguage/Track_Templates|Track Templates]]&lt;br /&gt;
*[[Special:MyLanguage/Project_Templates|Project Templates]]&lt;br /&gt;
*[[Special:MyLanguage/The fast and easy way to understand compression and reaComp accessibility|The fast and easy way to understand compression and reaComp accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Sidechaining_with_ReaComp|Setting Up a Side Chain with Reacomp]]&lt;br /&gt;
*[[Special:MyLanguage/tapeStop effect using stretch markers|tapeStop effect using stretch markers]]&lt;br /&gt;
*[[Special:MyLanguage/Implementing accessible automation|Implementing accessible automation]]&lt;br /&gt;
*[[Special:MyLanguage/The_render_and_Consolidate/Export_Tracks_Dialogs|Rendering and Exporting Tracks and Projects]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_to_save_Disc_Space|Reaper Preferences To Save Disc Space]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_General|overview of Reaper Preferences (General)]]&lt;br /&gt;
*[[Special:MyLanguage/Loop or beat slicing using reaSamploMatic|Loop or beat slicing using reaSamploMatic]]&lt;br /&gt;
*[[Special:MyLanguage/Ideas_for_video_editing|Ideas for video editing]]&lt;br /&gt;
*[[Special:MyLanguage/SIBIAC add on for NVDA|SIBIAC add on for NVDA]] an addon which aims to make third party fx or instrument plug-ins accessible&lt;br /&gt;
*[[Special:MyLanguage/Reaper_and_Osara_Cookbook|Reaper and Osara Cookbook]] A problem and solution style guide to many tasks using Reaper with the Osara extension.&lt;br /&gt;
*js programming&lt;br /&gt;
*[[Special:MyLanguage/Useful_Links_and_Resources|Useful Links and resources]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=610</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=610"/>
		<updated>2023-10-29T09:23:33Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* Contents (user written articles) */ Added bullet point for js programming&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
= The Reaper Accessibility Wiki  = &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
REAPER is a complete digital audio production application for Windows and Mac OS X, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset. This wiki provides information for blind Reaper users. Whether you&#039;re a musician, songwriter, podcaster or audio/video editor, Reaper can more than serve your needs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
To start, you may wish to [[Special:MyLanguage/Getting_Started|read how to download and install Reaper, Osara and SWS.]] You can  also  [[Special:MyLanguage/Useful_Links_and_Resources|checkout these useful links and resources]] and the [[:Category:ArchivedSites|archived sites]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Also, we are starting to make accessible and adapt the following official documents, found on the reaper website and some others:&lt;br /&gt;
*official reaper user guide. Thanks to the author of the users guide, Geoffrey Francis&#039; abundant generosity and patience the document is now properly tagged and can be read using your preferred screen reader and pdf reader. [http://reaper.fm/userguide.php download from reaper&#039;s official site]&lt;br /&gt;
* [[Special:MyLanguage/ReaEffects guide|ReaEffects guide]]&lt;br /&gt;
*the [[Special:MyLanguage/Reaper plus! the power of sws extensions|Reaper plus! the power of sws extensions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Below you will find a contents section that lists every Reaper Accessibility article on this site written for users, by users of the reaper accessibility community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents (user written articles) == &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*[[Special:MyLanguage/Getting_Started|Getting Started (Downloading and Installing Reaper With accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Keyboard_Shortcuts|Keyboard Shortcuts]]&lt;br /&gt;
**[[Special:MyLanguage/Reaper shortcut key list by headings|Reaper shortcut key list by headings]]&lt;br /&gt;
*[[Special:MyLanguage/Making_Your_First_Recording|Making Your First Recording In Reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Basic_editing|basic editing tasks in reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Enabling_Midi_Devices|Enabling Midi Devices]]&lt;br /&gt;
*some ideas for [[Special:MyLanguage/editing midi in reaper using osara|editing midi in reaper using osara]]&lt;br /&gt;
*[[Special:MyLanguage/Using_Reaper_Under_MacOs|tips for mac users]]&lt;br /&gt;
*[[Special:MyLanguage/Monitoring levels when you can&#039;t see the meters|Monitoring levels when you can&#039;t see the meters]]&lt;br /&gt;
*[[Special:MyLanguage/Tracks_and_Track_Folders|Tracks And Track Folders]]&lt;br /&gt;
*[[Special:MyLanguage/Track_Templates|Track Templates]]&lt;br /&gt;
*[[Special:MyLanguage/Project_Templates|Project Templates]]&lt;br /&gt;
*[[Special:MyLanguage/The fast and easy way to understand compression and reaComp accessibility|The fast and easy way to understand compression and reaComp accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Sidechaining_with_ReaComp|Setting Up a Side Chain with Reacomp]]&lt;br /&gt;
*[[Special:MyLanguage/tapeStop effect using stretch markers|tapeStop effect using stretch markers]]&lt;br /&gt;
*[[Special:MyLanguage/Implementing accessible automation|Implementing accessible automation]]&lt;br /&gt;
*[[Special:MyLanguage/The_render_and_Consolidate/Export_Tracks_Dialogs|Rendering and Exporting Tracks and Projects]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_to_save_Disc_Space|Reaper Preferences To Save Disc Space]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_General|overview of Reaper Preferences (General)]]&lt;br /&gt;
*[[Special:MyLanguage/Loop or beat slicing using reaSamploMatic|Loop or beat slicing using reaSamploMatic]]&lt;br /&gt;
*[[Special:MyLanguage/Ideas_for_video_editing|Ideas for video editing]]&lt;br /&gt;
*[[Special:MyLanguage/SIBIAC add on for NVDA|SIBIAC add on for NVDA]] an addon which aims to make third party fx or instrument plug-ins accessible&lt;br /&gt;
*[[Special:MyLanguage/Reaper_and_Osara_Cookbook|Reaper and Osara Cookbook]] A problem and solution style guide to many tasks using Reaper with the Osara extension.&lt;br /&gt;
*[[Special:MyLanguage/Project_Templates|js programming]]&lt;br /&gt;
* [[Special:MyLanguage/Useful_Links_and_Resources|Useful Links and resources]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=609</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Main_Page&amp;diff=609"/>
		<updated>2023-10-29T09:09:08Z</updated>

		<summary type="html">&lt;p&gt;Chessel: /* Contents (user written articles) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
= The Reaper Accessibility Wiki  = &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
REAPER is a complete digital audio production application for Windows and Mac OS X, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset. This wiki provides information for blind Reaper users. Whether you&#039;re a musician, songwriter, podcaster or audio/video editor, Reaper can more than serve your needs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
To start, you may wish to [[Special:MyLanguage/Getting_Started|read how to download and install Reaper, Osara and SWS.]] You can  also  [[Special:MyLanguage/Useful_Links_and_Resources|checkout these useful links and resources]] and the [[:Category:ArchivedSites|archived sites]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Also, we are starting to make accessible and adapt the following official documents, found on the reaper website and some others:&lt;br /&gt;
*official reaper user guide. Thanks to the author of the users guide, Geoffrey Francis&#039; abundant generosity and patience the document is now properly tagged and can be read using your preferred screen reader and pdf reader. [http://reaper.fm/userguide.php download from reaper&#039;s official site]&lt;br /&gt;
* [[Special:MyLanguage/ReaEffects guide|ReaEffects guide]]&lt;br /&gt;
*the [[Special:MyLanguage/Reaper plus! the power of sws extensions|Reaper plus! the power of sws extensions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Below you will find a contents section that lists every Reaper Accessibility article on this site written for users, by users of the reaper accessibility community.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents (user written articles) == &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
*[[Special:MyLanguage/Getting_Started|Getting Started (Downloading and Installing Reaper With accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Keyboard_Shortcuts|Keyboard Shortcuts]]&lt;br /&gt;
**[[Special:MyLanguage/Reaper shortcut key list by headings|Reaper shortcut key list by headings]]&lt;br /&gt;
*[[Special:MyLanguage/Making_Your_First_Recording|Making Your First Recording In Reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Basic_editing|basic editing tasks in reaper]]&lt;br /&gt;
*[[Special:MyLanguage/Enabling_Midi_Devices|Enabling Midi Devices]]&lt;br /&gt;
*some ideas for [[Special:MyLanguage/editing midi in reaper using osara|editing midi in reaper using osara]]&lt;br /&gt;
*[[Special:MyLanguage/Using_Reaper_Under_MacOs|tips for mac users]]&lt;br /&gt;
*[[Special:MyLanguage/Monitoring levels when you can&#039;t see the meters|Monitoring levels when you can&#039;t see the meters]]&lt;br /&gt;
*[[Special:MyLanguage/Tracks_and_Track_Folders|Tracks And Track Folders]]&lt;br /&gt;
*[[Special:MyLanguage/Track_Templates|Track Templates]]&lt;br /&gt;
*[[Special:MyLanguage/Project_Templates|Project Templates]]&lt;br /&gt;
*[[Special:MyLanguage/The fast and easy way to understand compression and reaComp accessibility|The fast and easy way to understand compression and reaComp accessibility]]&lt;br /&gt;
*[[Special:MyLanguage/Sidechaining_with_ReaComp|Setting Up a Side Chain with Reacomp]]&lt;br /&gt;
*[[Special:MyLanguage/tapeStop effect using stretch markers|tapeStop effect using stretch markers]]&lt;br /&gt;
*[[Special:MyLanguage/Implementing accessible automation|Implementing accessible automation]]&lt;br /&gt;
*[[Special:MyLanguage/The_render_and_Consolidate/Export_Tracks_Dialogs|Rendering and Exporting Tracks and Projects]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_to_save_Disc_Space|Reaper Preferences To Save Disc Space]]&lt;br /&gt;
*[[Special:MyLanguage/Reaper_Preferences_General|overview of Reaper Preferences (General)]]&lt;br /&gt;
*[[Special:MyLanguage/Loop or beat slicing using reaSamploMatic|Loop or beat slicing using reaSamploMatic]]&lt;br /&gt;
*[[Special:MyLanguage/Ideas_for_video_editing|Ideas for video editing]]&lt;br /&gt;
*[[Special:MyLanguage/SIBIAC add on for NVDA|SIBIAC add on for NVDA]] an addon which aims to make third party fx or instrument plug-ins accessible&lt;br /&gt;
*[[Special:MyLanguage/Reaper_and_Osara_Cookbook|Reaper and Osara Cookbook]] A problem and solution style guide to many tasks using Reaper with the Osara extension.&lt;br /&gt;
*js plugin programming &lt;br /&gt;
* [[Special:MyLanguage/Useful_Links_and_Resources|Useful Links and resources]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
	<entry>
		<id>https://www.reaperaccessibility.com/index.php?title=Reaper_Preferences_General&amp;diff=39</id>
		<title>Reaper Preferences General</title>
		<link rel="alternate" type="text/html" href="https://www.reaperaccessibility.com/index.php?title=Reaper_Preferences_General&amp;diff=39"/>
		<updated>2023-05-30T16:46:06Z</updated>

		<summary type="html">&lt;p&gt;Chessel: Testing of ability to edit. Changed stick to are sticky&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Preferences=&lt;br /&gt;
&lt;br /&gt;
Below are some of the options in the preferences dialogue (control + P) which are commonly changed from their default values.  Useful to review when learning Reaper or after a reset to factory defaults.&lt;br /&gt;
&lt;br /&gt;
Note that changes to preferences are sticky from one load of Reaper to another.  There are other options in Reaper, such as metronome settings, which are part of the default project settings and only persist once the Save As Default button is used in project settings (alt _+ enter).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*General&lt;br /&gt;
** There are tick boxes for what creates an undo item.  Untick to shorten the undo history.&lt;br /&gt;
** Option to preserve undo history when saving a project.&lt;br /&gt;
** Several options on how Reaper behaves when starting up such as load last project, start a new project or prompt.  Also can check for new versions of Reaper and an option to allow multiple instances of Reaper to be run.&lt;br /&gt;
*Paths&lt;br /&gt;
** Option to set a specific folder to store peak files (reapeaks).  Can then clear this folder out from time to time.&lt;br /&gt;
*Keyboard / multitouch&lt;br /&gt;
** Recommend ticking Allow space key  to be used for navigation in various windows&lt;br /&gt;
*Projects&lt;br /&gt;
** Option to define a default project template &lt;br /&gt;
** Prompt to save on new project.  Tick this if you want to be forced to define a path for all your projects which means you know where your media is going.&lt;br /&gt;
** Options to autosave project backups into a defined subfolder.  Suggestion is to store to a subfolder called Backups every 10 or 15 minutes.  Backup files are generally small.&lt;br /&gt;
** Option to save the undo history.&lt;br /&gt;
*Media Item defaults&lt;br /&gt;
** Default fade in and fade out time is 10ms.  Can reduce to 3ms to be less obtrusive.  Is If looping and splitting samples may want to reduce this to zero to avoid dips in volume between samples.  Alternatively, can raise these values to get modulation effects when splitting an item at grid lines.&lt;br /&gt;
*Audio&lt;br /&gt;
** Recommended to turn off tiny fade in and fade out on start and stop.&lt;br /&gt;
*Devices and MIDI&lt;br /&gt;
** Fundamental section specific to equipment set up for input and output of audio and MIDI&lt;br /&gt;
*Buffering&lt;br /&gt;
** Can reduce Default Media Buffer size from 1200 to around 100 for more responsivness on playback.&lt;br /&gt;
*Playback&lt;br /&gt;
**  Recommend ticking Stop playback at end of loop if repeat is disabled.  This links with other settings in Edditing.&lt;br /&gt;
*Recording&lt;br /&gt;
**  Recommend disabling Show preview of recording items while recording &lt;br /&gt;
** Options to prompt to save or discard newly recorded material on stop.  Often easier to disable this and use control + Z to undo recorded media if new material isn&#039;t wanted.&lt;br /&gt;
** Option to define the name given to newly recorded items&lt;br /&gt;
*Rendering&lt;br /&gt;
** Option to override the default buffer size when rendering which can speed up render times e.g. Can set to 1024.&lt;br /&gt;
** Options to set a tail duration  and when it is applied to capture effects like reverb.&lt;br /&gt;
*Editting&lt;br /&gt;
** Can set Move edit cursor to start of time selection on time selection change.  So when ending a time selection with right bracket edit cursor moves to the start of the time selection.&lt;br /&gt;
** Option to set moving edit cursor to end of item when pasting.  Useful if pasting multiple copies of an item one after another.  Can also cause confusion though as means have to rewind to hear newly pasted content.&lt;br /&gt;
** Link loop points to time selection.  Set this to on so that option in Playback section  works effectively.  Can unlink loop points and time selection in the options menu if needed for a particular workflow.&lt;br /&gt;
*Envelope display&lt;br /&gt;
** Options here to change the range of volume and pitch envelopes.&lt;br /&gt;
*Media&lt;br /&gt;
** Option on copying  media to project directory &lt;br /&gt;
** Options for rendering tails on item FX.  Defaults are quite short.  Values of 5000 to 10,000 more useful.&lt;br /&gt;
** Can untick Show status window when generating peaks as this is just annoying.&lt;br /&gt;
*MIDI&lt;br /&gt;
** Some default options for how to treat MIDI files being imported&lt;br /&gt;
*Plugins&lt;br /&gt;
** Numerous options on how to display FX windows.  Typically do want to auto-resize,  uncheck auto-float newly created windows, don&#039;t want to dock, and tick display only one window at a time but this last doesn&#039;t really work very well.&lt;br /&gt;
*Compatibility&lt;br /&gt;
** Options in here on how to treat 32-bit plugins by default but can also do this each plugin at a time using the context menu when highlighting a plugin in the FX search dialogue.&lt;br /&gt;
*VST&lt;br /&gt;
** Fundamental option to define the paths that Reaper uses when searching for and loading VST&#039;s.&lt;br /&gt;
*External editors&lt;br /&gt;
** Define the path of external editors&lt;/div&gt;</summary>
		<author><name>Chessel</name></author>
	</entry>
</feed>