const displayRgb = (fadeEffect, { isCurrentStep, isDisplayedInEditWindow, isSelected, hasNote, velocity, recording }) => { if (isDisplayedInEditWindow) return Colours.yellow if (isSelected) return Colours.orange if (isCurrentStep) return hasNote ? Colours.turquoise : (recording ? Colours.red : Colours.green) return hasNote ? fadeEffect(Colours.blue, velocity) : Colours.off }
connect( ({ sequencer: { deleteModeTrackIds } }, { trackId }) => ({ rgb: deleteModeTrackIds.includes(trackId) ? Colours.red.map(x => x + 30) : Colours.red.map(x => x - 30) }), (dispatch, { trackId }) => ({ padPressed () { dispatch(muteOn(trackId)) }, padReleased () { dispatch(muteOff(trackId)) } }) )(RealtimeStepDeleteButton)
render() { const {button, rgb} = this.props switch (rgb) { case Colours.off: button.ledOff() break case Colours.green: button.ledOn('green') break case Colours.red: button.ledOn('red') break case Colours.yellow: button.ledOn('yellow') break case Colours.orange: default: button.ledOn('orange') break } return null }
turnOff={disarmSequencer} keypress='a' rgb={Colours.red} /> <TransportButton
const StepResetButtons = ({buttons, resetDecay, resetPitch, resetVelocity, style}) => ( <div style={style} > {[resetPitch, noop, resetDecay, noop, noop, noop, noop, resetVelocity].map((action, index) => ( <DomGridButton key={index} active={true} onPressed={action} rgb={Colours.red} > <PushChannelSelectButton button={buttons[index]} onPressed={action} rgb={Colours.red} /> </DomGridButton> ))} </div> )
const VoiceResetButtons = ({buttons, resetDecay, resetFilter, resetPitch, resetVolume, style}) => ( <div style={style} > {[resetPitch, noop, resetDecay, noop, noop, noop, resetFilter, resetVolume].map((action, index) => ( <DomGridButton key={index} active={true} onPressed={action} rgb={Colours.red} > <PushChannelSelectButton button={buttons[index]} onPressed={action} rgb={Colours.red} /> </DomGridButton> ))} </div> )