Isochronic Tones Generator for Reaper JSFX

March 17, 2023

I am always looking to build a better engine for audio and resonant frequency-based support for mental, physical, emotional, and spiritual states. After scouring the landscape for a good working solution, I realized I would have to roll my own. While an isochronic tone – a series of pulses – isn’t complicated in and of itself, I wanted to ensure that this one would sound good, handle changes smoothly, and help to experiment with pre-established, studied and proven ranges, for better experimentation and faster deployment.

Here is the one sheet:


The Isochronic Tones Generator plugin is a versatile audio tool designed to produce beats of specific frequencies for brainwave entrainment, relaxation, meditation, and other purposes. It comes with numerous customizable options and presets, making it accessible to both novice and experienced users.

The plugin features sliders to customize the carrier frequency, beat frequency, duty cycle, fade length, gain, beat mix, limiter type, threshold, low-pass filter (LPF) cutoff, resonance, and LPF on/off. Users can choose preset options or manually set the carrier and beat frequencies. The duty cycle and fade length sliders modify the intensity and duration of the beats.

To prevent clipping, the plugin includes a limiter function with the option to set it to hard or soft limiting and adjust the threshold. The LPF cutoff and resonance sliders enable users to adjust the low-pass filter’s characteristics for a desired sound output.

The plugin’s graphical user interface displays the carrier and beat frequencies, associated cosmic names, and the LPF cutoff frequency. Additionally, it has a gain control function that displays the gain reduction value for users to monitor the amount of limiting applied.

Other features of the Isochronic Tones Generator plugin include smooth transitions for gain, fade length, duty cycle, beat mix, and LPF toggling, a low-pass filter with on/off option, and a tone generator on/off toggle for easy comparison of the processed and unprocessed audio.

The Isochronic Tones Generator plugin offers a comprehensive set of features to cater to various use cases, including carrier frequency presets, adjustable duty cycle and fade length, gain control, limiter type, LPF cutoff and resonance, and smooth transitions. Its intuitive interface and quality-of-life enhancements make it a powerful tool for creating custom isochronic tones.

Feature set:

  • Carrier frequency presets
  • Beat frequency presets
  • Adjustable duty cycle
  • Fade length control
  • Gain control
  • Beat mix customization
  • Limiter type selection (hard/soft)
  • Low-pass filter with adjustable cutoff frequency and resonance
  • Smooth transitions for gain, fade length, duty cycle, beat mix, and LPF toggling
  • Tone generator on/off toggle for easy comparison of processed and unprocessed audio

Changelog:

March 18th – 19th 2023
Updates to Waveform stage:
NEW Waveform selection!

  • Now able to smoothly interpolate between adjacent waveforms: Sine, Square, Triangle, Saw
  • Added gain balancing between the various waveforms so they are more or less at parity (square and saw tend to be much louder by nature)
  • Add smoothing fading between waveforms

Improved LPF:

    Improved LFO behavior

  • Fixed gain reduction meter and smoothed it out

March 17 2023
Updates to Limiter stage:

  • Improved peak control: The limiter will now use a threshold value in dB instead of a linear value. This allows for a more accurate and precise control over the output signal’s peaks

Improved LPF:

  • Limit the maximum Q value to prevent the resonance from becoming too high

Added new Presets:

  • Carrier Frequency – 999hz forĀ  (highest of the angelic frequencies)
  • Beat Frequency – 0.2hz

Notes about the JSFX programming language and syntax:

    • JSFX uses a custom language called EEL2, which is similar to C.
    • Variables are double-precision floating point by default and do not need to be declared.
    • Variable names are not case sensitive.
    • Basic operations include addition, subtraction, multiplication, division, and exponential.
    • Bitwise operations are available, such as OR, AND, XOR, shift-left, and shift-right-sign-extend.
    • Parentheses can be used to clarify precedence and contain parameters for functions.
    • A semicolon is used to separate statements.
    • The language provides a virtual local address space and a shared global address space.
    • You can create user-defined functions with private variables and parameters.
    • Numbers can be specified in decimal or hexadecimal format, and you can use ASCII values of characters.
    • Comments can be written using // or /* */ syntax.
    • The language provides various operators, including assignment, arithmetic, bitwise, and comparison operators.
    • There are simple math functions available, such as sin, cos, tan, sqrt, pow, log, and abs.
    • Loops can be created using loop() and while() functions

.

  • Time functions are available to get the current time and system-specific timestamps.

No Comments

Comments are closed.