@@ -16,6 +16,7 @@ import {connect} from 'react-redux'
1616
1717import Synth from './audio/Synth.js'
1818import HorizontalSlider from './views/Components/HorizontalSlider.js'
19+ import ArpeggiatorSwitch from './views/Effects/ArpeggiatorSwitch'
1920import Keyboard from './views/Keyboard/Keyboard.js'
2021import EventEmitter from 'event-emitter'
2122
@@ -53,6 +54,10 @@ class App extends React.Component {
5354 let action = Actions . masterGainChanged ( e . target . value )
5455 this . props . dispatch ( action )
5556 }
57+ onArpTempoChange ( event ) {
58+ let action = Actions . arpTempoChanged ( Number ( event . target . value ) )
59+ this . props . dispatch ( action )
60+ }
5661
5762 render ( ) {
5863 // Shows a message if no audio support in the browser.
@@ -75,6 +80,11 @@ class App extends React.Component {
7580 < div >
7681 < h1 > Wavetable</ h1 >
7782 < a onClick = { this . onOpenAboutModal . bind ( this ) } > About</ a >
83+
84+ < MidiInput eventEmitter = { eventEmitter } />
85+ < Presets presetId = { this . props . Master . presetId } />
86+ </ div >
87+ < div className = "header-controls" >
7888 < HorizontalSlider
7989 id = 'master'
8090 name = 'master gain'
@@ -84,11 +94,19 @@ class App extends React.Component {
8494 step = { 1 }
8595 onChange = { this . onMasterGainChanged . bind ( this ) }
8696 value = { this . props . Master . volume } />
87- < MidiInput eventEmitter = { eventEmitter } />
88- < Presets presetId = { this . props . Master . presetId } />
97+ < ArpeggiatorSwitch
98+ arpIsOn = { this . props . Effects . arpIsOn } />
99+ < HorizontalSlider
100+ name = 'arpTempo'
101+ label = 'arp tempo'
102+ min = { 10 }
103+ max = { 160 }
104+ step = { 1 }
105+ onChange = { this . onArpTempoChange . bind ( this ) }
106+ value = { this . props . Effects . arpTempo } />
89107 </ div >
90-
91108 </ header >
109+
92110 < div className = 'scroll-contents' >
93111 {
94112 this . props . Oscillators . map ( ( oscillator ) => {
0 commit comments