diff --git a/src/features/timbre/Timbre.js b/src/features/timbre/Timbre.js
index 1db9b27..bfacb94 100644
--- a/src/features/timbre/Timbre.js
+++ b/src/features/timbre/Timbre.js
@@ -1,11 +1,13 @@
import React from 'react';
import VCO from './parameters/VCO';
+import Mixer from './parameters/Mixer';
export function Timbre(props) {
return (
+
);
}
diff --git a/src/features/timbre/parameters/Mixer.js b/src/features/timbre/parameters/Mixer.js
new file mode 100644
index 0000000..ccf13e5
--- /dev/null
+++ b/src/features/timbre/parameters/Mixer.js
@@ -0,0 +1,58 @@
+import React from 'react';
+import { useSelector, useDispatch } from 'react-redux';
+import { selectById, parameterUpdated } from './parameterSlice.js';
+
+const Slider = (props) => {
+ return (
+ props.onChange(e.target.value)}
+ />
+ );
+};
+
+export default function Mixer(props) {
+ const parameters = useSelector((state) => selectById(state, props.id));
+ const dispatch = useDispatch();
+
+ return (
+
+
+ dispatch(
+ parameterUpdated({
+ id: props.id,
+ changes: { vol1: value },
+ })
+ )
+ }
+ />
+
+ dispatch(
+ parameterUpdated({
+ id: props.id,
+ changes: { vol2: value },
+ })
+ )
+ }
+ />
+
+ dispatch(
+ parameterUpdated({
+ id: props.id,
+ changes: { vol3: value },
+ })
+ )
+ }
+ />
+
+ );
+}
diff --git a/src/features/timbre/parameters/Parameters.module.css b/src/features/timbre/parameters/Parameters.module.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/features/timbre/parameters/VCO.js b/src/features/timbre/parameters/VCO.js
index 398d05d..396e138 100644
--- a/src/features/timbre/parameters/VCO.js
+++ b/src/features/timbre/parameters/VCO.js
@@ -2,6 +2,23 @@ import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { selectById, parameterUpdated } from './parameterSlice.js';
+const SelectList = (props) => {
+ const options = props.list.map((option) =>
+ option === props.value ? (
+
+ ) : (
+
+ )
+ );
+ return (
+
+ );
+};
+
export default function VCO(props) {
const parameters = useSelector((state) => selectById(state, props.id));
@@ -19,8 +36,7 @@ export default function VCO(props) {
})
)
}>
- {' '}
- Set Waveform to Triangle{' '}
+ Set Waveform to Triangle
Current Mod Value {parameters.waveMod}
+
+ dispatch(
+ parameterUpdated({
+ id: props.id,
+ changes: { waveform: value },
+ })
+ )
+ }
+ />
);
}
diff --git a/src/features/timbre/parameters/parameterSlice.js b/src/features/timbre/parameters/parameterSlice.js
index 0b93bac..8e0ab1a 100644
--- a/src/features/timbre/parameters/parameterSlice.js
+++ b/src/features/timbre/parameters/parameterSlice.js
@@ -28,7 +28,7 @@ const parametersSlice = createSlice({
},
'vco2': {
id: 'vco2',
- waveform: 'Saw',
+ waveform: 'Square',
dwgsOrModType: 0,
waveMod: 0,
lfoMod: 0,