summaryrefslogtreecommitdiff
path: root/src/libs/sig/sig.c
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2020-02-04 17:17:15 -0800
committerVito Caputo <vcaputo@pengaru.com>2020-02-04 18:07:38 -0800
commit64a0fe99038b9c58a815a92db2eb2ded1fd2801a (patch)
treeafe3d6f56df7e39aba85529984dd810092d84fb3 /src/libs/sig/sig.c
parent0b4c227a210dd5edc6186c0050a1d67baf958b98 (diff)
libs/sig: square wave; sig_ops_sqr / sig_new_sqr()
This builds minimally upon the existing sine wave code, just use the sign to drive the signal high or low. Wikipedia shows a third state for 0 values, but that's for a -1..+1 signal. I'm producing all 0-1 signals as it's more convenient for this application, but it seems like it would be awkward to return .5f for the 0 case. So 0 is being treated as just another positive value; high.
Diffstat (limited to 'src/libs/sig/sig.c')
-rw-r--r--src/libs/sig/sig.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libs/sig/sig.c b/src/libs/sig/sig.c
index 2c3452c..87a76c4 100644
--- a/src/libs/sig/sig.c
+++ b/src/libs/sig/sig.c
@@ -234,6 +234,12 @@ sig_t * sig_new_sin(sig_t *hz)
}
+sig_t * sig_new_sqr(sig_t *hz)
+{
+ return sig_new(&sig_ops_sqr, hz);
+}
+
+
sig_t * sig_new_sub(sig_t *a, sig_t *b)
{
return sig_new(&sig_ops_sub, a, b);
© All Rights Reserved