-
Notifications
You must be signed in to change notification settings - Fork 745
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Plugins: Demand: Add Dconst UGen, with schelp
- Loading branch information
James Harkins
committed
Feb 3, 2015
1 parent
f312c5f
commit 84dcef8
Showing
3 changed files
with
124 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
TITLE:: Dconst | ||
summary:: Constrain a demand-rate stream to a given sum | ||
categories:: UGens>Demand | ||
|
||
DESCRIPTION:: | ||
A demand-rate analog to link::Classes/Pconst::. It outputs values from the child demand stream until the sum of those values reaches or exceeds a given total. The last value will be truncated so that the sum of Dconst's output values will match the total exactly. | ||
|
||
CLASSMETHODS:: | ||
|
||
METHOD:: new | ||
|
||
ARGUMENT:: sum | ||
The sum to reach. This may be a number, demand UGen or any other UGen. When a Dconst instance resets, one value will be taken for the sum, and it can't be modulated until the next reset. | ||
|
||
ARGUMENT:: in | ||
A demand-rate stream, providing the output values. | ||
|
||
ARGUMENT:: tolerance | ||
Because of floating point rounding error, it isn't safe to stop only when the output's running sum is equal to the desired total. teletype::tolerance:: is how close the running sum can get to stop the output: code::abs(runningsum - sum) <= tolerance::. | ||
|
||
returns:: A demand-rate stream. | ||
|
||
|
||
EXAMPLES:: | ||
|
||
code:: | ||
// fast notes of random duration for 0.5 seconds | ||
// then a single note for 0.5 seconds | ||
( | ||
a = { | ||
var freq = Duty.kr( | ||
Dseq([ | ||
Dconst(0.5, Dwhite(0.05, 0.08, inf)), | ||
0.5 | ||
], inf), | ||
0, | ||
// workaround for the lack of Dexprand | ||
Dwhite(0, 1, inf).linexp(0, 1, 200, 600) | ||
); | ||
VarSaw.ar(Lag.kr(freq, 0.02), 0, 0.3, 0.1).dup | ||
}.play; | ||
) | ||
|
||
a.free; | ||
:: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters