Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

README.md

NanoSynth

A miniature tone generator written in Ruby, intended to show how to create a minimal Ruby program that generates sound.

For a detailed description of how it works, check out this blog post: https://www.joelstrait.com/nanosynth/

Installation

  • Download nanosynth.rb
  • Install the WaveFile gem: gem install wavefile --version 1.1.1

Example Usage

NanoSynth expects 3 arguments: the waveform, frequency, and amplitude. It will then generate 1 second of sound and write it to a file called mysound.wav in the current directory.

ruby nanosynth.rb <waveform> <frequency> <amplitude>

For example:

ruby nanosynth.rb square 440.0 0.2

The command above will generate a square wave of 440Hz, at 20% full volume, and write it to mysound.wav in the current directory.

The waveform can be one of sine, square, saw, triangle, or noise.

The amplitude should be between 0.0 (silence) and 1.0 (full volume). Amplitudes above 1.0 will result in clipping distortion.

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.