This repository has been archived by the owner on Aug 31, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 75
/
help.html
338 lines (252 loc) · 15.5 KB
/
help.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
*
* Copyright (c) 2011-2013 Marcus Geelnard
*
* This file is part of SoundBox.
*
* SoundBox is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* SoundBox is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with SoundBox. If not, see <http://www.gnu.org/licenses/>.
*
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SoundBox - Help</title>
<meta name="viewport" content="width=device-width" />
<meta name="robots" content="noindex" />
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="help.css" />
<link rel="shortcut icon" href="favicon.ico" />
</head>
<body>
<div id="content"><div></div>
<h1>SoundBox</h1>
<h2>Contents</h2>
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#quickstart">Quick start</a></li>
<li><a href="#theeditor">The editor</a><ul>
<li><a href="#theeditor_import">Import/Export & Playback</a></li>
<li><a href="#theeditor_sequencer">Sequencer</a></li>
<li><a href="#theeditor_patterneditor">Pattern editor</a></li>
<li><a href="#theeditor_instrumenteditor">Instrument editor</a></li>
<li><a href="#theeditor_piano">Piano</a></li>
</ul></li>
<li><a href="#playingmusic">Playing music</a></li>
<li><a href="#loadingandsaving">Loading and saving</a></li>
<li><a href="#usinginproducts">Using songs in your own products</a></li>
<li><a href="#licenses">Licenses</a></li>
</ul>
<h2><a name="introduction" />Introduction</h2>
<p>SoundBox is a tool for composing synthetic music, in your browser. Its
design is basically that of a <a href="http://en.wikipedia.org/wiki/Music_tracker">music tracker</a>,
which essentially means that the music is organized in <em>tracks</em> and <em>patterns</em>.</p>
<h2><a name="quickstart" />Quick start</h2>
<p>Perhaps the quickest way to get started is to open one of the demo songs and
start playing with it.</p>
<p>Start by pressing the <img src="gui/open.png" alt="Open" /> button, and select
one of the songs. Once it has been opened, press the <img src="gui/play.png" alt="Play" />
button to start the song.</p>
<p class="note">Note: The entire song has to be generated (i.e. synthesized in software)
before it can be played. This can take some time, but on a fast computer it should
not take more than ten seconds or so for normal song.</p>
<h2><a name="theeditor" />The editor</h2>
<p>A song is made up of <strong>8 channels</strong>, where each channel has its
own <strong>instrument</strong>. Each channel has <strong>36 note patterns</strong>
(0-9,A-Z), and each note pattern has <strong>4 note tracks</strong> and
<strong>1 FX track</strong>.</p>
<div class="centered"><img src="help/ui-overview.png" width=900 height=451 alt="Overview"></img></div>
<h3><a name="theeditor_import" />1. Import/Export & Playback</h3>
<p>In this section you can import (open) and export (save) songs. Here you can
also play the song (or just a section of the song).</p>
<h3><a name="theeditor_sequencer" />2. Sequencer</h3>
<p>Each column in the sequencer represents one channel. Selecting a column will
show the instrument settings for the selected channel in the instrument
editor (4).</p>
<p>For each channel, there are 36 available note patterns. By typing a number
(0-9) or a letter (A-Z) in a sequencer cell (or by using the
<img class="smallButton" src="gui/plus-one.png" alt="+1" />/<img class="smallButton" src="gui/minus-one.png" alt="-1" />
buttons below the sequencer), the corresponding note pattern will be visible and
editable in the pattern editor (3). Holding shift while typing the character will
also advance the cursor to the next row. The cells can be navigated using the
arrow keys. Holding control down while navigating the table moves to the very
end (e.g. the top-most cell when pressing arrow up).</p>
<p>It is possible to select a range in the sequencer (by click+dragging), and
then copy the selected range with the <img class="smallButton" src="gui/edit-copy.png" alt="Copy" /> button,
and the copied range can then be pasted to any other position with the
<img class="smallButton" src="gui/edit-paste.png" alt="Paste" /> button.
A range can also be selected by holding shift down and navigating the table
with arrows. Alt-shift and arrows adjust the second corner of the selection range.</p>
<p>Hitting enter with a range selected fills the empty space in that range
by looping or interpolating the values at the top of the range. For example:
<ul>
<li>1,(empty),(empty),(empty),(empty) becomes 1,1,1,1,1.</li>
<li>1,2,(empty),(empty),(empty) becomes 1,2,3,4,5.</li>
<li>1,2,1,(empty),(empty) becomes 1,2,1,2,1.</li>
</ul>
</p>
<h3><a name="theeditor_patterneditor" />3. Pattern editor</h3>
<p>The pattern editor consists of four columns, which enables four notes to be
played simultaneously. There is also an effect track (FX track), that can be
used to dynamically control all aspects of an instrument during playback.</p>
<h4>The note editor</h4>
<p>To enter notes in the pattern editor, <em>a valid pattern (0-9,A-Z) must have been
selected in the sequencer</em>. Notes are entered with the piano (5), the keyboard
or a MIDI input device (see below).</p>
<p>Just as with the sequencer, it is possible to select a range and copy and
paste note data with the <img class="smallButton" src="gui/edit-copy.png" alt="Copy" /> &
<img class="smallButton" src="gui/edit-paste.png" alt="Paste" /> buttons.
It is also possible to transpose a selected range of notes with the
<img class="smallButton" src="gui/plus-one.png" alt="+1" />,
<img class="smallButton" src="gui/minus-one.png" alt="-1" />,
<img class="smallButton" src="gui/plus-twelve.png" alt="+12" /> and
<img class="smallButton" src="gui/minus-twelve.png" alt="-12" /> buttons.</p>
<p>Hitting enter with a range selected fills the empty space in that range
by looping the notes in the top part of that range.</p>
<h4>The FX editor</h4>
<p>To enter commands in the FX editor, select a row in the FX track, and modify
one of the instrument parameters. The corresponding command + value will be
entered into the selected row.</p>
<p><p>You can copy and paste FX commands with the
<img class="smallButton" src="gui/edit-copy.png" alt="Copy" /> &
<img class="smallButton" src="gui/edit-paste.png" alt="Paste" /> buttons.</p>
<p class="note">Please note that FX commands are persistent, so if a command for a specific
instrument parameter is issued in one pattern, it will remain active until
set to something else (either in the same or another pattern).</p>
<p>Hitting enter with a range selected interpolates between the effect
parameters. The range has to be empty and the command in the beginning and
in the end of the same type.</p>
<h3><a name="theeditor_instrumenteditor" />4. Instrument editor</h3>
<p>An instrument is synthetically generated using a few simple building blocks,
according to the chart below:</p>
<div class="centered"><img src="help/instrument-graph.png" width=790 height=360 alt="Overview"></img></div>
<p>Each part of the instrument chain is controlled by the instrument settings,
and with careful tuning you can produce many different kinds of sounds.</p>
<p>An easy way to get started with an instrument is to select one of the presets
from the drop-down box, and then change some settings until you get the sound
you are looking for.</p>
<h3><a name="theeditor_piano" />5. Piano</h3>
<p>The piano is used for entering notes into the selected note pattern. Pressing
keys on the piano will produce notes in the pattern.</p>
<p>A more efficient way to enter notes is to use the computer keyboard (if you
have one). The mapping of keyboard keys to piano keys are as follows:</p>
<div class="centered"><img src="help/keyboard-layout.png" width=626 height=204 alt="Keyboard layout"></img></div>
<p>Both the piano and the keyboard only covers two octaves. To reach more
octaves, use the <img class="smallButton" src="gui/button-prev.png" alt="Octave down" /> and
<img class="smallButton" src="gui/button-next.png" alt="Octave up" /> keys
next to the piano to change the base octave for the piano/keyboard.</p>
<h4>Using a MIDI device</h4>
<p>It is also possible to use a MIDI input device to enter notes. You can select
which input device to use in a drop down box above the instrument editor (if no
MIDI device is available, no drop down box will be shown).</p>
<p class="note">Note: In order for MIDI input to work, you currently have to
install the <a href="http://jazz-soft.net/">Jazz-Soft Jazz-Plugin</a>, which
at the time of writing works for Windows and Mac (a Linux version is on the
way).</p>
<h2><a name="playingmusic" />Playing music</h2>
<p>A tip: Playing the entire song over and over when editing music can be quite
tiresome. Use the <img src="gui/play-range.png" alt="Play range" /> button to
just play the selected range (e.g. a single pattern). You can also use the
keyboard short-cut: <strong>space</strong>.</p>
<h2><a name="loadingandsaving" />Loading and saving</h2>
<p>Songs can be saved as data URLs or as binary files.</p>
<p>You can deal with the data URLs in pretty much any way you want.
For instance, you can mail the song to a friend, bookmark it in your
browser, put it through an URL shortener and tweet it, or you can copy &
paste it to a local text file if you wish to save it for later.</p>
<p class="note">Note: The entire song is stored in the URL. Nothing is stored in
a file or on a server.</p>
<p>The binary files, that are saved if you press the "Save binary" button
in the Save dialog, can later be loaded by drag'n'dropping them onto the
editor.</p>
<h3>Importing Sonant songs</h3>
<p>It is also possible to import binary song files that have been exported from
the Sonant or Sonant Live sound editors. Simply drag'n'drop a file from your
computer onto the editor to load it.</p>
<p class="note">Note: Sonant songs are converted to the SoundBox format, which
means that some subtle differences from the original may be noticeable.</p>
<h2><a name="usinginproducts" />Using songs in your own products</h2>
<p>The real use case for SoundBox is to produce music that you can use in your
own products. To do so, export your song as a JavaScript data chunk using the
"Export song as JavaScript" button.</p>
<p>The player routine to use in your JavaScript product is:
<a href="player-small.js">player-small.js</a>.</p>
<p>For examples of how to use the player routine, see:
<a href="demo.html">demo.html</a> or
<a href="arpeggio-demo.html">arpeggio-demo.html</a>.</p>
<h2><a name="licenses" />Licenses</h2>
<p>SoundBox is an open source product. You can find the latest source code at
<a href="https://github.com/mbitsnbites/soundbox">GitHub / SoundBox</a>.</p>
<h3>The SoundBox tool</h3>
<p>SoundBox (including the GUI, the instrument presets and demo songs), is
released under the GNU General Public License v3.</p>
<h3>The player routine</h3>
<p>The stand-alone player routine (<a href="player-small.js">player-small.js</a>)
is released under the zlib/libpng license, making it easy to use and
adapt the player routine for your own products (e.g. demos). You'll find that
the "Export JS" function comes in handy if you want to use a song in your own
product.</p>
<h3>Third party code</h3>
<h4>Blob.js</h4>
<p><a href="https://github.com/eligrey/Blob.js/">https://github.com/eligrey/Blob.js/</a></p>
<div class="license">Copyright © 2011 Eli Grey.
<br /><br />
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
<br /><br />
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
<br /><br />
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</div>
<h4>FileSaver.js</h4>
<p><a href="https://github.com/eligrey/FileSaver.js/">https://github.com/eligrey/FileSaver.js/</a></p>
<div class="license">Copyright © 2011 Eli Grey.
<br /><br />
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
<br /><br />
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
<br /><br />
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</div>
<h4>js-deflate</h4>
<p><a href="https://github.com/dankogai/js-deflate">https://github.com/dankogai/js-deflate</a></p>
<div class="license">/* $Id: rawdeflate.js,v 0.3 2009/03/01 19:05:05 dankogai Exp dankogai $<br />
*<br />
* Original:<br />
* http://www.onicos.com/staff/iz/amuse/javascript/expert/deflate.txt<br />
*/<br />
<br />
/* Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp><br />
* Version: 1.0.1<br />
* LastModified: Dec 25 1999<br />
*/</div>
<h4>WebMIDIAPIShim</h4>
<p><a href="https://github.com/cwilso/WebMIDIAPIShim">https://github.com/cwilso/WebMIDIAPIShim</a></p>
<div class="license">Copyright 2013 Chris Wilson
<br /><br />
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
<br /><br />
<a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
<br /><br />
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.</div>
<h3>Credits</h3>
<p>Many thanks to Jake Taylor (a.k.a Ferris / Youth Uprising) for the
original C language synth that was the starting point and inspiration for this
tool.</p>
</div>
</body>
</html>