Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
audio-contour
Advanced tools
Readme
A 5 stage audio envelope generator. You can see the demo here:
var Contour = require('audio-contour')
var ac = new AudioContext()
var vca = ac.createGain()
var osc = ac.createOscillator()
osc.connect(vca)
var env = Contour(ac, { t1: 0.2, t4: 0.5 })
env.connect(vca.gain)
env.start()
env.onstart = function (when) { osc.start(when) }
env.onended = function () { osc.stop() }
env.stop(ac.currentTime + 3)
This module implements a alpha-juno style envelope generator:
If you want to learn more about envelope generators, read this
There are a lot of envelope generator implementations. Here are the standalone ones I know (there are several audio libraries that implements them):
Why choose this library over the others:
onstart
and onended
eventsWhy don't choose this library:
Via npm: npm i --save audio-contour
Create an envelope
To create an envelope use the Contour
function:
var ac = new AudioContext()
var Contour = require('audio-contour')
var env = Contour(ac)
You can pass options to that function:
var env = Contour(ac, { t1: 1 })
or change them on the object before start:
var env = Contour(ac)
env.t1 = 1
env.t4 = 0.5
Apply the envelope
To apply the envelope, you have to connect it to something. For example, you can create a vca (voltage controlled amplifier) connecting it to a gain's gain param:
var vca = ac.createGain()
env.connect(vca.gain)
Or create a vcf (voltage controlled filter) ocnnecting it to a filter frequency param:
var vcf = ac.createBiquadFilter()
env.connect(vcf.frequency)
Start and stop the envelope
You can use start
and stop
function to the envelope:
var now = ac.currentTime
env.start(now)
// suppose your audio source is an oscillator
osc.start(now)
var finish = env.stop(now + 1)
The stop
function returns the time when the release phase ended. Can be used to stop the audio sources:
osc.start(finish)
Remeber that if duration is not Infinity
, the envelope will stop automatically:
var env = Contour(ac)
env.duration = 1
env.start() // => it will automatically stop after 1 second
Events
Two events are supported: onstart
and onended
. The onstart
event handler will be trigger at same time as the start
function of the envelope, so it receives a time parameter. The onended
event handler will be called when the envelope effectively stops:
env.duration = 1
env.onstart = function (when) { osc.start(when) }
env.onended = function () { osc.stop(ac.currentTime) }
env.start() // since duration is not Infinity, both envent handlers will be called
Create a standard ADSR
When t3
is 0, the audio-contour behaves like a normal ADSR envelope.
Additionally, you can use the standard attack
, decay
, sustain
and release
parameters in the constructor to build the envelope:
var env = Contour(ac, { attack: 0.1, decay: 0.2, sustain: 0.8, release: 0.5 })
env.t1 // => 0.1 (the attack)
env.t2 // => 0.2 (the decay)
env.t3 // => 0
env.t4 // => 0.5 (the release)
To run the tests, clone this repo and: npm install && npm test
.
To run the example you need watchify installed: npm install -g watchify
. Then, move to examples
directory and type: npm install && npm start
MIT License
FAQs
A 5 stage audio envelope generator
The npm package audio-contour receives a total of 6 weekly downloads. As such, audio-contour popularity was classified as not popular.
We found that audio-contour demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.