Skip to content

Commit 0e21607

Browse files
committed
Update about page.
1 parent 4d72b43 commit 0e21607

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

css/index.scss

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ p {
2121
}
2222
}
2323

24+
h2 {
25+
margin-bottom: 0;
26+
padding-bottom: 0;
27+
}
28+
2429
.scroll-container {
2530
padding: 0;
2631
margin: 0;
@@ -44,9 +49,19 @@ header {
4449
margin: 0;
4550
padding: 0;
4651
}
52+
a {
53+
margin-left: 22px;
54+
margin-top: 13px;
55+
vertical-align: top;
56+
display: inline-block;
57+
text-decoration: underline;
58+
&:hover {
59+
cursor: pointer;
60+
}
61+
}
4762
.horizontal-slider {
4863
display: inline-block;
49-
margin: -14px 0 0 92px;
64+
margin: -14px 0 0 58px;
5065
vertical-align: middle;
5166
.slider-label {
5267
width: 53px;

src/App.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class App extends React.Component {
8383
<header>
8484
<div>
8585
<h1>Wavetable</h1>
86+
<a onClick={this.onOpenAboutModal.bind(this)}>About</a>
8687
<HorizontalSlider
8788
id='master'
8889
name='master gain'

src/views/Modals/AboutModal.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,17 @@ export default class AboutModal extends React.Component {
1616
X
1717
</div>
1818
<div>
19-
<h1 className='text-center'>About This Synth</h1>
20-
<p className='about'>Loosely based on Wavetable synthesis. More info to come...</p>
19+
<h2 className='text-center'>Using The Arpeggiator</h2>
20+
<p>This short video shows how to use the arpeggiator to play a long sequence of notes, it's fun!</p>
21+
<p>
22+
<iframe width='500' height='300' src='https://www.youtube.com/embed/jRgZfzzZiyE' frameBorder='0' allowFullScreen />
23+
</p>
24+
<h2 className='text-center'>Wavetable Synthesis</h2>
25+
<p>A wavetable, in the simplest use of the term, is a list of samples for one period of a wave. In practice, we store an array of 600 numbers for each waveform. The more complicated use of the term "wavetable" synthesis refers to interpolating from one table to another over time. Interpolating between these tables made it possible for digital synthesizers of the 1980s to generate complex and evolving sounds using very little processing power and memory.</p>
26+
<p>All the interpolated values are precomputed into a potentially fairly long waveform ( what you see beneath each pair of waveform samples ). The "cycles" slider controls the amount of time it takes to change from one waveform to another. The plus, minus, divide, and multiply buttons control the slope of interpolation. Since we're not interpolating in real-time the loop time of each oscillator will change depending on pitch. We would like to find a way to do this without it being dependent on pitch, if you happen to know please contact us!
27+
</p>
28+
<h2 className='text-center'>By No Means Perfect</h2>
29+
<p>To add texture in a few places we add a bit of randomness. On each note, the pitch is altered randomly between 0 and 6 cents per oscillator. Also, our square LFO uses a custom square waveform sample versus the preset square available in the web audio api, which does some very subtle ramping up and down and has some wobble to it. Our filter is actually using 10 filters in sequence, we figured it's a computer, so why not use 10 filters?</p>
2130
</div>
2231
</ReactModal>
2332
</div>

0 commit comments

Comments
 (0)