summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/relabi/index.js3
-rw-r--r--src/ui/App.jsx8
-rw-r--r--src/ui/Controls.jsx15
3 files changed, 17 insertions, 9 deletions
diff --git a/src/relabi/index.js b/src/relabi/index.js
index 9e649f2..b77a83f 100644
--- a/src/relabi/index.js
+++ b/src/relabi/index.js
@@ -22,6 +22,7 @@ const WAVE_SHAPES = {
square: (time) => (time % TWO_PI < Math.PI ? 1 : -1),
saw: (time) => (time % TWO_PI) / Math.PI - 1,
reverse_saw: (time) => 1 - (time % TWO_PI) / Math.PI,
+ noise: (time) => Math.random() * Math.random() * 2 - 1,
};
/**
@@ -94,7 +95,7 @@ export default class Relabi {
const waveOffset =
(wave.offset || 0) +
(wave.frequency * this.settings.speed) / this.steps +
- previousWaveValue * this.settings.feedback;
+ previousWaveValue * this.settings.chaos;
const waveValue = WAVE_SHAPES[wave.shape](waveOffset);
value += waveValue * wave.weight;
diff --git a/src/ui/App.jsx b/src/ui/App.jsx
index db3d762..a8edc0f 100644
--- a/src/ui/App.jsx
+++ b/src/ui/App.jsx
@@ -20,13 +20,13 @@ export default function App() {
const relabiGenerator = new Relabi({
settings: {
speed: 1.0,
- feedback: 0.2,
+ chaos: 0.2,
},
waves: [
- { shape: "sine", frequency: 0.75, weight: 1 },
+ { shape: "sine", frequency: 0.5, weight: 1 },
{ shape: "sine", frequency: 1.0, weight: 1 },
- { shape: "sine", frequency: 1.617, weight: 1 },
- { shape: "sine", frequency: 3.141, weight: 1 },
+ { shape: "sine", frequency: 1.5, weight: 1 },
+ { shape: "sine", frequency: 2.0, weight: 1 },
],
bounds: [
{
diff --git a/src/ui/Controls.jsx b/src/ui/Controls.jsx
index 3bc1c2e..e8dca45 100644
--- a/src/ui/Controls.jsx
+++ b/src/ui/Controls.jsx
@@ -10,7 +10,14 @@ import Slider from "rc-slider";
import TooltipSlider, { handleRender } from "./TooltipSlider.tsx";
import "rc-slider/assets/index.css";
-const WAVE_SHAPE_NAMES = ["sine", "triangle", "saw", "reverse_saw", "square"];
+const WAVE_SHAPE_NAMES = [
+ "sine",
+ "triangle",
+ "saw",
+ "reverse_saw",
+ "square",
+ "noise",
+];
export default function Controls({ relabi }) {
/**
@@ -130,7 +137,7 @@ export default function Controls({ relabi }) {
type="settings"
index="speed"
onChange={onChange}
- min={-2}
+ min={-3}
max={3}
step={0.01}
defaultValue={Math.log(relabi.settings.speed)}
@@ -145,12 +152,12 @@ export default function Controls({ relabi }) {
<SliderRow>
<ControlSlider
type="settings"
- index="feedback"
+ index="chaos"
onChange={onChange}
min={0}
max={0.5}
step={0.01}
- defaultValue={relabi.settings.feedback}
+ defaultValue={relabi.settings.chaos}
color={"#a88"}
/>
</SliderRow>