From f04f404bea4615b4110ef3a78a7fff0ba40c1309 Mon Sep 17 00:00:00 2001 From: Aoife Date: Mon, 5 Apr 2021 02:02:03 -0400 Subject: [PATCH] finish vocoder page redesign --- src/features/editor/Vocoder.js | 51 +++- src/features/editor/parameters/Amp.js | 120 +++++---- src/features/editor/parameters/EG.js | 87 ++++++ src/features/editor/parameters/Filter.js | 181 +++++++------ src/features/editor/parameters/LFO.js | 2 +- src/features/editor/parameters/Levels.js | 245 +++++++++-------- src/features/editor/parameters/Pans.js | 253 ++++++++++-------- src/features/editor/parameters/VCO.js | 128 +++++---- .../editor/parameters/parameterSlice.js | 3 +- src/features/editor/timbreSlice.js | 1 + src/features/menu/index.js | 21 +- src/features/utils/components.js | 18 +- src/index.css | 3 + 13 files changed, 647 insertions(+), 466 deletions(-) diff --git a/src/features/editor/Vocoder.js b/src/features/editor/Vocoder.js index 9f79232..dbf93c5 100644 --- a/src/features/editor/Vocoder.js +++ b/src/features/editor/Vocoder.js @@ -4,7 +4,7 @@ import { selectById } from './timbreSlice'; import VCO, { AudioIn } from './parameters/VCO'; import Mixer from './parameters/Mixer'; import Pitch from './parameters/Pitch'; -import EG from './parameters/EG'; +import { VocoderEG } from './parameters/EG'; import LFO from './parameters/LFO'; import { VocoderFilter, FCMod } from './parameters/Filter'; import { VocoderAmp } from './parameters/Amp'; @@ -14,8 +14,9 @@ import Pans from './parameters/Pans'; export default function Vocoder(props) { const ids = useSelector((state) => selectById(state, props.id)); return ( -
+
- - - - - - - -
- - - - + + + +
+
+ + + + +
+ + + +
); } diff --git a/src/features/editor/parameters/Amp.js b/src/features/editor/parameters/Amp.js index 2826042..7e68086 100644 --- a/src/features/editor/parameters/Amp.js +++ b/src/features/editor/parameters/Amp.js @@ -84,59 +84,71 @@ export const VocoderAmp = (props) => { const dispatch = useDispatch(); return ( -
- {`${props.name}`} - Amp Level - - dispatch( - parameterUpdated({ - id: props.id, - changes: { ampLevel: value }, - }) - ) - } - /> - Direct Level - - dispatch( - parameterUpdated({ - id: props.id, - changes: { directLevel: value }, - }) - ) - } - /> - Amp Keyboard Tracking - - dispatch( - parameterUpdated({ - id: props.id, - changes: { ampTrack: value }, - }) - ) - } - /> - - dispatch( - parameterUpdated({ - id: props.id, - changes: { distortion: value }, - }) - ) - } - /> -
+ +
+
+

Amp Level

+ + dispatch( + parameterUpdated({ + id: props.id, + changes: { ampLevel: value }, + }) + ) + } + /> +
+
+

Direct Level

+ + dispatch( + parameterUpdated({ + id: props.id, + changes: { directLevel: value }, + }) + ) + } + /> +
+
+
+
+

Keyboard Track

+ + dispatch( + parameterUpdated({ + id: props.id, + changes: { ampTrack: value }, + }) + ) + } + /> +
+
+

Distortion

+ + dispatch( + parameterUpdated({ + id: props.id, + changes: { distortion: value }, + }) + ) + } + /> +
+
+
); }; diff --git a/src/features/editor/parameters/EG.js b/src/features/editor/parameters/EG.js index 787ac3f..9063e13 100644 --- a/src/features/editor/parameters/EG.js +++ b/src/features/editor/parameters/EG.js @@ -168,3 +168,90 @@ export default function EG(props) { ); } + +export function VocoderEG(props) { + const parameters_eg_1 = useSelector((state) => selectById(state, props.id1)); + const dispatch = useDispatch(); + + return ( + +
+
+

Attack

+ + dispatch( + parameterUpdated({ + id: props.id1, + changes: { attack: value }, + }) + ) + } + /> +
+
+

Decay

+ + dispatch( + parameterUpdated({ + id: props.id1, + changes: { decay: value }, + }) + ) + } + /> +
+
+

Sustain

+ + dispatch( + parameterUpdated({ + id: props.id1, + changes: { sustain: value }, + }) + ) + } + /> +
+
+

Release

+ + dispatch( + parameterUpdated({ + id: props.id1, + changes: { release: value }, + }) + ) + } + /> +
+
+
+

EG Reset

+ + dispatch( + parameterUpdated({ + id: props.id1, + changes: { egReset: value }, + }) + ) + } + /> +
+
+ ); +} diff --git a/src/features/editor/parameters/Filter.js b/src/features/editor/parameters/Filter.js index 326bcb5..2a89a69 100644 --- a/src/features/editor/parameters/Filter.js +++ b/src/features/editor/parameters/Filter.js @@ -3,7 +3,7 @@ import Card from '../card'; import { Select, Knob } from '../../utils/components'; import { useSelector, useDispatch } from 'react-redux'; import { selectById, parameterUpdated } from './parameterSlice.js'; -import { Slider, SelectList } from '../../helpers/Helpers'; +import { Slider } from '../../helpers/Helpers'; export default function Filter(props) { const parameters = useSelector((state) => selectById(state, props.id)); @@ -38,7 +38,7 @@ export default function Filter(props) {

Cutoff

dispatch( parameterUpdated({ @@ -74,7 +74,7 @@ export default function Filter(props) { dispatch( parameterUpdated({ @@ -113,51 +113,55 @@ export const VocoderFilter = (props) => { const parameters = useSelector((state) => selectById(state, props.id)); const dispatch = useDispatch(); return ( -
- {`${props.name}`} - Cutoff - - dispatch( - parameterUpdated({ - id: props.id, - changes: { cutoff: value }, - }) - ) - } - /> - Resonance - - dispatch( - parameterUpdated({ - id: props.id, - changes: { resonance: value }, - }) - ) - } - /> - EF Sense - - dispatch( - parameterUpdated({ - id: props.id, - changes: { efSense: value }, - }) - ) - } - /> -
+ +
+
+

Cutoff

+ + dispatch( + parameterUpdated({ + id: props.id, + changes: { cutoff: value }, + }) + ) + } + /> +
+
+

Resonance

+ + dispatch( + parameterUpdated({ + id: props.id, + changes: { resonance: value }, + }) + ) + } + /> +
+
+

EF Sense

+ + dispatch( + parameterUpdated({ + id: props.id, + changes: { efSense: value }, + }) + ) + } + /> +
+
+
); }; @@ -165,43 +169,48 @@ export const FCMod = (props) => { const parameters = useSelector((state) => selectById(state, props.id)); const dispatch = useDispatch(); return ( -
- {`${props.name}`} - Source - - dispatch( - parameterUpdated({ - id: props.id, - changes: { source: value }, - }) - ) - } - /> - Intensity - - dispatch( - parameterUpdated({ - id: props.id, - changes: { intensity: value }, - }) - ) - } - /> -
+ +
+
+

Source

+