-
Notifications
You must be signed in to change notification settings - Fork 23
/
guide.htm
620 lines (538 loc) · 30.9 KB
/
guide.htm
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
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
<!--
____ _
/ ___| ___ __ _| | ___
\___ \ / __/ _` | |/ _ \
___) | (_| (_| | | __/
|____/ \___\__,_|_|\___|
__ __ _ _
\ \ / /__ _ __| | _____| |__ ___ _ __
\ \ /\ / / _ \| '__| |/ / __| '_ \ / _ \| '_ \
\ V V / (_) | | | <\__ \ | | | (_) | |_) |
\_/\_/ \___/|_| |_|\_\___/_| |_|\___/| .__/
|_|
-->
<!DOCTYPE html>
<html lang="en">
<head>
<title>Scale Workshop User Guide</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Open Graph -->
<meta property="og:title" content="Scale Workshop User Guide" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://sevish.com/scaleworkshop/guide.htm" />
<meta property="og:image" content="https://sevish.com/scaleworkshop/src/assets/img/scale-workshop-og-image.png" />
<meta property="og:description"
content="Scale Workshop is a tool that allows you to create microtonal tunings within your web browser. You can export these tunings to your device and use them to tune various synthesizers." />
<meta property="og:site_name" content="Sevish Music" />
<!-- Styles -->
<link rel="stylesheet" href="src/lib/bootstrap-3.3.7-dist/css/bootstrap.min.css">
<link rel="stylesheet" href="src/lib/jquery-ui-1.12.1/jquery-ui.min.css">
<link rel="stylesheet" href="src/lib/socicon/style.css">
<!-- Scripts -->
<script src="src/lib/jquery-3.2.1.min.js"></script>
<script src="src/lib/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="180x180" href="src/assets/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="src/assets/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="src/assets/favicon/favicon-16x16.png">
<link rel="manifest" href="src/assets/favicon/manifest.json">
<link rel="mask-icon" href="src/assets/favicon/safari-pinned-tab.svg" color="#9bd03b">
<meta name="theme-color" content="#ffffff">
<style>
body {
max-width: 1160px;
position: relative;
}
img {
max-width: 100%;
}
header,
article {
padding: 2em 15px;
}
nav {
margin-bottom: 2em;
padding: 0px 15px;
}
nav a:link {
color: unset;
}
nav ul {
padding-left: 0px;
list-style-type: none;
font-weight: bold;
}
nav ul li ul {
padding-left: 1em;
}
nav ul li ul li {
font-weight: normal;
}
nav .btn {
margin-top: 0.5em;
width: 100%;
}
h1 {
margin-top: 0px;
padding-top: 0.8em;
}
h2 {
margin-top: 2em;
padding-top: 1em;
}
h3 {
margin-top: 1em;
padding-top: 1em;
}
h4 {
margin-top: 1em;
padding-top: 1em;
}
header h1 {
padding-top: 0.6em;
}
header h2,
header h3,
header h4 {
padding: 0;
margin-top: 0;
}
p.lead {
clear: both;
font-weight: normal;
}
nav a:visited {
color: black;
}
#logo {
width: 9.5em;
max-width: 100%;
height: auto;
text-align: center;
display: block;
margin: auto;
}
/* Non-smartphone devices (tablet size and up) */
@media (min-width: 768px) {
header,
article {
width: calc(100% - 300px);
margin-left: 300px;
}
nav {
position: fixed !important;
width: 300px;
height: 100vh;
overflow-y: scroll;
top: 0px;
left: 0px;
padding: 2em 15px;
}
img {
max-width: 340px;
/*margin-left: auto;
margin-right: auto;
display: block;*/
}
p.lead {
font-weight: 300;
}
#logo {
float: left;
margin: auto 1.5em 1.5em 0px;
}
}
</style>
</head>
<body>
<header>
<p><img src="src/assets/favicon/apple-touch-icon.png" alt="Scale Workshop logo" id="logo" /></p>
<h1>Scale Workshop</h1>
<h4>User guide 1.5</h4>
<p class="lead">Scale Workshop allows you to design microtonal scales and play them in your web browser. Export your
scales for use with VST instruments. Convert Scala files to various tuning formats.</p>
<a href="#overview" class="sr-only">Skip to main content</a>
</header>
<nav id="main-nav">
<ul>
<li style="font-size:1.2em;"><a href="#">Scale Workshop User Guide</a></li>
<li><a href="#overview">Overview</a></li>
<li><a href="#import-export-tunings">Import/export tunings</a>
<ul>
<li><a href="#import">Import</a></li>
<li><a href="#convert">Convert</a></li>
<li><a href="#export">Export</a>
<ul>
<li><a href="#anamark-tun">Anamark TUN (.tun)</a></li>
<li><a href="#scala-scl">Scala scale (.scl)</a></li>
<li><a href="#scala-kbm">Scala keyboard mapping (.kbm)</a></li>
<li><a href="#maxmsp">Max/MSP coll (.txt)</a></li>
<li><a href="#puredata">PureData text (.txt)</a></li>
<li><a href="#kontakt">Kontakt script (.txt)</a></li>
<li><a href="#soniccouture">Soniccouture tuning file (.nka)</a></li>
<li><a href="#harmor">Harmor Pitch Map (.fnv)</a></li>
<li><a href="#sytrus">Sytrus Pitch Map (.fnv)</a></li>
<li><a href="#korg-logue">Korg Sound Librarian Scale/Octave (.mnlgtuns/mnlgtuno)</a></li>
<li><a href="#deflemask">Deflemask 'fine tune' reference</a></li>
<li><a href="#reaper-note-names">Reaper Note Name Map (.txt)</a></li>
</ul>
</li>
<li><a href="#presets">Presets</a></li>
</ul>
</li>
<li><a href="#scale-design">Scale design</a>
<ul>
<li><a href="#equal-temperaments">Equal temperaments</a></li>
<li><a href="#rank-2-temperaments">Rank-2 temperaments</a></li>
<li><a href="#harmonic-series-segments">Harmonic series segments</a></li>
<li><a href="#subharmonic-series-segments">Subharmonic series segments</a></li>
<li><a href="#enumerate-chord">Enumerate chord</a></li>
<li><a href="#cps">Combination product set</a></li>
<li><a href="#manual-data-entry">Manual data entry</a>
<ul>
<li><a href="#just-intonation">Just intonation</a></li>
<li><a href="#equal-temperament">Equal temperament</a></li>
<li><a href="#misc">Misc</a></li>
</ul>
</li>
<li><a href="#modify-scales">Modify scales</a>
<ul>
<li><a href="#sort-ascending">Sort ascending</a></li>
<li><a href="#reduce">Reduce</a></li>
<li><a href="#rotate">Rotate</a></li>
<li><a href="#subset">Subset</a></li>
<li><a href="#stretch-compress">Stretch/compress</a></li>
<li><a href="#random-variance">Random variance</a></li>
<li><a href="#tempo-sync-beating">Tempo-sync beating</a></li>
<li><a href="#approximate-by-ratios">Approximate by ratios</a></li>
<li><a href="#approximate-by-harmonics">Approximate by harmonics</a></li>
<li><a href="#approximate-by-subharmonics">Approximate by subharmonics</a></li>
<li><a href="#equalize">Equalize</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#synthesizer">Synthesizer</a>
<ul>
<li><a href="#playing-with-midi">Playing with a MIDI controller</a></li>
<li><a href="#playing-with-qwerty">Playing with QWERTY</a></li>
<li><a href="#playing-with-touch-screen">Playing with mouse / touch screen</a></li>
<li><a href="#isomorphic-mapping">Isomorphic mapping</a></li>
<li><a href="#changing-the-sound-of-the-synth">Changing the sound of the synth</a></li>
</ul>
</li>
<li><a href="#midi">MIDI I/O</a></li>
<li><a href="#misc-tips">Misc. tips</a></li>
</ul>
<a class="btn btn-default" href="index.htm" target="_blank">Launch Scale Workshop</a>
</nav>
<article>
<h2 id="overview">Overview</h2>
<p class="text-center"><a href="src/assets/img/scale-workshop-og-image.png" target="_blank"><img
src="src/assets/img/scale-workshop-og-image.png" style="width:100%; max-width:100%;" /></a></p>
<p>The interface is split in to 4 sections.</p>
<ul>
<li>Top bar: access the main functions of the software</li>
<li>Left column: manual entry of scale data</li>
<li>Center column: table of tuning data</li>
<li>Right column: options and configuration</li>
</ul>
<p>The top bar provides many useful functions.</p>
<ul>
<li>New: generate a new scale or load one from a file</li>
<li>Modify: apply some transformation to a scale that is currently loaded</li>
<li>Export: save your work in one of many formats</li>
<li>About: about Scale Workshop</li>
</ul>
<h2 id="import-export-tunings">Import/export tunings</h2>
<h3 id="import">Import</h3>
<p>Scale Workshop supports import of <strong>Scala .scl</strong> files, <strong>AnaMark .tun</strong> files and Korg 'logue .mnlgtuns/.mnlgtuno'.
Click 'New' on the top menu bar and then click 'Import .scl' or 'Import .tun'</p>
<p class="text-center"><a href="src/assets/img/guide/menu-new.png" target="_blank"><img
src="src/assets/img/guide/menu-new.png" /></a></p>
<p><strong>Note:</strong> AnaMark .tun import is incomplete, but it should be able to import .tun V2.00 files exported by
Scale Workshop and Scala.</p>
<h3 id="convert">Convert</h3>
<p>Convert .scl or convert .tun tunings by importing them and then exporting.</p>
<h3 id="export">Export</h3>
<p>Many synthesizers support microtonal scales. Usually they will require some format of tuning file. Scale Workshop
supports many of the popular formats.</p>
<p>To see a list of synths that support microtonal scales, see the <a
href="https://en.xen.wiki/w/List_of_Microtonal_Software_Plugins" target="_blank">List of Microtonal Software
Plugins</a> on the Xenharmonic Wiki.</p>
<p class="text-center"><a href="src/assets/img/guide/menu-export.png" target="_blank"><img
src="src/assets/img/guide/menu-export.png" /></a></p>
<h4 id="anamark-tun">AnaMark TUN (.tun)</h4>
<p>If your synth supports .tun format, then please refer to its manual to find how to load the .tun file.</p>
<h4 id="scala-scl">Scala scale (.scl)</h4>
<p>If your synth supports .scl format, then please refer to its manual to find how to load the .scl file.</p>
<h4 id="scala-kbm">Scala keyboard mapping (.kbm)</h4>
<p>Scale Workshop does not support arbitrary keyboard mappings, however it can output a .kbm file with linear
mapping that has your chosen base MIDI note and base frequency.</p>
<h4 id="maxmsp">Max/MSP coll (.txt)</h4>
<p>When building synths in Max/MSP try using a coll object rather than an mtof object. Coll can load a
specially-formatted text file containing a list of frequencies. Scale Workshop exports this kind of text file for
you. Set up your coll object as below, and click the 'read' button to bring up a load file dialog.</p>
<p class="text-center"><a href="src/assets/img/guide/maxmsp-coll.png" target="_blank"><img
src="src/assets/img/guide/maxmsp-coll.png" /></a></p>
<p>Then when you input MIDI note numbers to the coll object, it will output the desired frequency.</p>
<h4 id="puredata">PureData text (.txt)</h4>
<p>When building synths in PureData try using a text object rather than an mtof object. The text object can load a
specially-formatted text file containing a list of frequencies. Scale Workshop exports this kind of text file for
you. Then when you input MIDI note numbers to the text object, it will output the desired frequency.</p>
<h4 id="kontakt">Kontakt script (.txt)</h4>
<p>Kontakt's scripting environment allows you to retune each key to any pitch. Scale Workshop can export this script
for you automatically. Once exported, copy and paste the contents of the script into the script editor of your
Kontakt instrument.</p>
<h4 id="soniccouture">Soniccouture tuning file (.nka)</h4>
<p>Tuning format for Soniccouture's sampled instruments for Kontakt.</p>
<h4 id="harmor">Harmor Pitch Map (.fnv)</h4>
<p>Harmor allows retuning keys from C0 to C10 for up to 5 octaves up or down from 12 EDO.
To do so, go to the "Pitch" tab, then "Keyboard mapping".
Click the small arrow at the bottom left and select "Open State File...".
From there, open the file that you exported from Scale Workshop.
You will have to do this for every part that you use (A and/or B).</p>
<h4 id="sytrus">Sytrus Pitch Map (.fnv)</h4>
<p>Sytrus allows retuning keys from C0 to C10 for up to 4 octaves up or down from 12 EDO.
<b>Warning: You won't be able to slide notes. If you do, the pitch will be incorrect.</b>
To do so, go to operator you want to retune, select the "Pitch" tab, then "Keyboard mapping".
Click the small arrow at the bottom left and select "Open State File...".
From there, open the file that you exported from Scale Workshop.
Then, turn PE (Pitch Envelope) knob to the maximum value.</p>
<h4 id="korg-logue">Korg Sound Librarian Scale/Octave (.mnlgtuns/.mnlgtuno)</h4>
<p>These are for the Sound Librarian software associated with Korg's Monologue, Minilogue, and Prologue synths,
and can be loaded with the "File > Load Single Scale" menu option. The "Scale" format follows the MIDI 1.0
"Bulk Tuning Dump" specification that allows for a 128-note table defined in semitones plus .0061 cents
of precision with a supported frequency range of 8.1758 Hz to 12543.875 Hz. The "Octave" format follows
the "Scale/Octave Tuning Dump" MIDI specification and only allows for 12 defined notes that will automatically
repeat at the octave. Scales with more than 12 notes will be cut off, and pitches can only deviate from standard
tuning by -64/+63 cents.</p>
<h4 id="deflemask">Deflemask 'fine tune' reference (.txt)</h4>
<p>Exports a reference sheet to help you make microtonal music using the Deflemask tracker. Notes in Deflemask can have a 'fine tune' property. This reference sheet will show you the data you need to input.</p>
<h4 id="reaper-note-names">Reaper Note Name Map (.txt)</h4>
<p>Reaper allows all 128 rows in its piano roll MIDI editor to have a custom label. This export option gives
each note a label based on its pitch, with some other properties depending on the selected options.
"Scala Data" will preserve the notes' notation, keeping ratios when possible and allowing for mixed notations.
For "Cents", "Frequencies", and "Decimals", each interval will be converted to the chosen format. "Degrees"
will simply use "N\D" notation where N is the scale degree and D is the number of notes
the scale has.</br>
<b>Show Period Number</b> will put the octave/period number of the interval after the pitch label.</br>
<b>Calculate Period in Pitch</b> will transpose each interval by the number of periods it is from the base note.
It will try to preserve the notation of the interval, but will fallback to cents if it's not possible.</br>
<b>Base Period Number</b> will shift the base note from unison by this many periods. For example if you want your
the base note & frequency to be note 48 at 256 Hz, but want unison to be an octave higher with note 60 at 512 Hz,
you can set this to -1 period, meaning the base note & frequency is shifted one period below unison.</br>
<b>Base Cents Value</b> and <b>Base Degree Number</b> allow you to set a different value for the base note in
cents or degrees respectively, similar to the "Base Period Number" option. In most cases this should be 0.</p>
<p>Reaper will look for these files by default in:<ul>
<li>Windows - C:\Users\[username]\AppData\Roaming\REAPER\MIDINoteNames</li>
<li>macOS - /Users/[username]/Library/Application Support/REAPER/MIDINoteNames</li></ul>
A shortcut to the REAPER folder is in Reaper's Option menu, "Show REAPER resource folder in explorer/finder".</br>
To use a note name map, select the "Named notes" view in the MIDI editor (the option next to the piano icon
in the toolbar) and load the file with "File > Note/CC names > Load Note/CC names from file".</br>
<i>Note: These are only labels - you must retune the synth to hear the displayed notes in the piano roll.</i></p>
<p class="text-center"><a href="src/assets/img/guide/reaper-named-notes.png" target="_blank"><img
src="src/assets/img/guide/reaper-named-notes.png"></a></p>
<h3 id="presets">Presets</h3>
<p>A selection of preset scales are provided as examples.</p>
<p class="text-center"><a href="src/assets/img/guide/preset-scales.png" target="_blank"><img
src="src/assets/img/guide/preset-scales.png" /></a></p>
<h2 id="scale-design">Scale design</h2>
<p>Scale Workshop allows you to create musical scales either by manual data input or by selecting menu options.
We'll cover the menu options first.</p>
<p>Start by clicking the <strong>New</strong> option on the top menu bar. Select from equal temperament, rank-2
temperament, etc.</p>
<p class="text-center"><a href="src/assets/img/guide/menu-new.png" target="_blank"><img
src="src/assets/img/guide/menu-new.png" /></a></p>
<h3 id="equal-temperaments">Equal temperaments</h3>
<p><a href="https://en.xen.wiki/w/Equal-step_tuning" target="_blank">Equal temperaments</a> are scales where every
step is of equal size. The most well-known example perhaps is 12-tone equal temperament (12edo) which divides an
octave into 12 equal parts and is the standard tuning in the West. Other well known equal tempered scales include
24edo (quartertones), 19edo and 31edo.</p>
<p>To create a new equal temperament scale click <strong>New > Equal temperament</strong> and then enter values
to create the scale.</p>
<p class="text-center"><a href="src/assets/img/guide/equal-temperament.png" target="_blank"><img
src="src/assets/img/guide/equal-temperament.png" /></a></p>
<p>Number of divisions refers to the number of notes in your scale. Interval to divide will usually be 2/1 (octave)
but could be a different value, for example to make Bohlen-Pierce you would have 13 divisions of 3/1.</p>
<h3 id="rank-2-temperaments">Rank-2 temperaments</h3>
<p>Create a rank-2 temperament using a generator and period.</p>
<p class="text-center"><a href="src/assets/img/guide/rank-2-temperament.png" target="_blank"><img
src="src/assets/img/guide/rank-2-temperament.png" /></a></p>
<h3 id="harmonic-series-segments">Harmonic series segments</h3>
<p>Generate a segment of the harmonic series by specifying the lowest and highest harmonics to be part of the scale.
If the highest harmonic is double that of the lowest harmonic then the scale will repeat at the octave.</p>
<p class="text-center"><a href="src/assets/img/guide/harmonic-series.png" target="_blank"><img
src="src/assets/img/guide/harmonic-series.png" /></a></p>
<h3 id="subharmonic-series-segments">Subharmonic series segments</h3>
<p>Generate a segment of the subharmonic series by specifying the lowest and highest subharmonics to be part of the
scale. If the highest subharmonic is double that of the lowest subharmonic then the scale will repeat at the
octave.</p>
<p class="text-center"><a href="src/assets/img/guide/subharmonic-series.png" target="_blank"><img
src="src/assets/img/guide/subharmonic-series.png" /></a></p>
<h3 id="enumerate-chord">Enumerate chord</h3>
<p>Create a scale from a list of harmonics separated by colons.<br/>E.g. 4:5:6:7:8</p>
<p class="text-center"><a href="src/assets/img/guide/enumerate-chord.png" target="_blank"><img src="src/assets/img/guide/enumerate-chord.png" /></a></p>
<h3 id="cps">Combination product set</h3>
<p>Create a scale by multiplying harmonics in different combinations. Optionally, the resulting scale can be reduced by 2/1 and sorted in ascending order.</p>
<p><a href="https://en.xen.wiki/w/Combination_product_set" target="_blank">Combination product set (Xenharmonic Wiki)</a></p>
<p class="text-center"><a href="src/assets/img/guide/cps.png" target="_blank"><img src="src/assets/img/guide/cps.png" /></a></p>
<h3 id="manual-data-entry">Manual data entry</h3>
<p>Scales can be written manually by typing them in to the <strong>Scale data</strong> text field. Enter one
interval per line. Do not enter 1/1 on the first line as it is already assumed that the first note is 1/1.</p>
<p class="text-center"><a href="src/assets/img/guide/scale-entry.png" target="_blank"><img
src="src/assets/img/guide/scale-entry.png" /></a></p>
<p>Values with a . are cents values: e.g. 701.955<br />
Values with slash (/) are ratios: e.g. 3/2<br />
Values with a backslash (n\m) are n degrees of m-EDO: e.g. 7\12<br />
Values with comma (,) are decimals: e.g. 1,5<br />
The final value is your octave or pseudo-octave: e.g. 2/1</p>
<h4 id="just-intonation">Just intonation examples</h4>
<p>5-limit just major:</p>
<pre>9/8
5/4
4/3
3/2
5/3
15/8
2/1</pre>
<p>Harmonics 8-16:</p>
<pre>9/8
10/8
11/8
12/8
13/8
14/8
15/8
16/8</pre>
<h4 id="equal-temperament">Equal temperament examples</h4>
<p>Blackwood[10] in 15edo:</p>
<pre>2\15
3\15
5\15
6\15
8\15
9\15
11\15
12\15
14\15
15\15</pre>
<p>8edo in cents:</p>
<pre>150.
300.
450.
600.
750.
900.
1050.
1200.</pre>
<h4 id="misc">Misc examples</h4>
<p>You can combine any of the above styles in the same scale if needed:</p>
<pre>1,2
3\9
700.1
2/1</pre>
<h3 id="modify-scales">Modify scales</h3>
<p>There are menu options to help you modify your current scale. Note you must have some scale data loaded already
in order to modify it. Click 'Modify' on the top menu bar to see the options.</p>
<p class="text-center"><a href="src/assets/img/guide/menu-modify.png" target="_blank"><img
src="src/assets/img/guide/menu-modify.png" /></a></p>
<h3 id="sort-ascending">Sort ascending</h3>
<p>Sorts your scale ascendingly.</p>
<h3 id="reduce">Reduce</h3>
<p>Makes your entire scale fit within a desired 'modulus' interval, typically 2/1. Intervals in your scale which are larger than the modulus will wrap around, leaving only a remainder.</p>
<h3 id="rotate">Rotate</h3>
<p>Allows you to choose an interval of your scale to become 1/1.</p>
<h3 id="subset">Subset</h3>
<p>Takes a subset of the current scale. Subsets are entered numerically.</p>
<p class="text-center"><a href="src/assets/img/guide/subset.png" target="_blank"><img
src="src/assets/img/guide/subset.png" /></a></p>
<h3 id="stretch-compress">Stretch/compress</h3>
<p>Applies a linear stretch across the current scale. Enter a stretch factor, where 1 is no stretch at all.</p>
<p class="text-center"><a href="src/assets/img/guide/stretch-compress.png" target="_blank"><img
src="src/assets/img/guide/stretch-compress.png" /></a></p>
<h3 id="random-variance">Random variance</h3>
<p>Applies a random detuning of each note in the scale. If the checkbox is ticked, this will also detune the octave.
If unticked, the octave will remain unchanged.</p>
<p class="text-center"><a href="src/assets/img/guide/random-variance.png" target="_blank"><img
src="src/assets/img/guide/random-variance.png" /></a></p>
<h3 id="tempo-sync-beating">Tempo-sync beating</h3>
<p>This retunes each note of your scale to the nearest harmonic and then tunes the base frequency to match the BPM.
This can result in LFO-like pulsations when playing chords.</p>
<p>The effect is most effective when using "rich" harmonic sounds (e.g. sawtooth waves) on a synth with excellent
intonation accuracy (e.g. almost all digital synths).</p>
<p class="text-center"><a href="src/assets/img/guide/tempo-sync-beating.png" target="_blank"><img
src="src/assets/img/guide/tempo-sync-beating.png" /></a></p>
<p>Resolution allows you to control how much retuning is applied. Low values will result in a more drastic retuning
of your original scale; in some cases this will result in notes converging on the same note, resulting in
duplicates. For more obvious tempo-synced effects, choose a resolution that is a power of 2, e.g. 32, 64, or 128.
</p>
<h3 id="approximate-by-ratios">Approximate by ratios</h3>
<p>This steps you through each interval of your scale, shows you a selection of ratios that are close to your interval, and allows you to choose the ratio for each.</p>
<h3 id="approximate-by-harmonics">Approximate by harmonics</h3>
<p>This retunes each interval in your scale to the nearest harmonic. You select the denominator.</p>
<h3 id="approximate-by-subharmonics">Approximate by subharmonics</h3>
<p>This retunes each interval in your scale to the nearest subharmonic. You select the numerator.</p>
<h3 id="equalize">Equalize</h3>
<p>This retunes each interval in your scale to the nearest equal step. You select the number of steps to equally divide the interval of equivalence.</p>
<h2 id="synthesizer">Synthesizer</h2>
<p>Scale Workshop has a built-in synth so that you can play and hear your scales. This is useful for auditioning the
scale you're working on, however it is very simple and isn't recommended for live performance.</p>
<h3 id="playing-with-midi">Playing with a MIDI controller</h3>
<p>Play notes on any connected MIDI device in order to hear your current scale. This requires you to use a web-MIDI capable browser. Must be enabled first by clicking
the 'MIDI I/O' menu option then clicking the 'MIDI on' button while your controller is connected.</p>
<h3 id="playing-with-qwerty">Playing with QWERTY</h3>
<p>Use your computer keyboard to play your current scale, much like an isomorphic keyboard.</p>
<p><strong>Note:</strong> QWERTY note input is disabled any time that a text or input field has focus. An indicator
can be seen at the top-right of the screen to show you if you are able to play the QWERTY keyboard currently:</p>
<p class="text-center"><a href="src/assets/img/guide/qwerty-enabled.png" target="_blank"><img
src="src/assets/img/guide/qwerty-enabled.png" /></a></p>
<p class="text-center"><a href="src/assets/img/guide/qwerty-disabled.png" target="_blank"><img
src="src/assets/img/guide/qwerty-disabled.png" /></a></p>
<p>Not all international keyboard layouts are supported. Users who wish to see their keyboard layout supported are
encouraged to contribute to the project by adding their own layout to keymap.js in the project source.</p>
<h3 id="playing-with-touch-screen">Playing with mouse / touch screen</h3>
<p>On the top menu, click Virtual Kbd to display a grid overlay. Click / Touch the grid to hear your scale. The mapping on the
grid is the same as the mapping on the QWERTY keys.</p>
<p class="text-center"><a href="src/assets/img/guide/virtual-keyboard.png" target="_blank"><img
src="src/assets/img/guide/virtual-keyboard.png" /></a></p>
<h3 id="isomorphic-mapping">Isomorphic mapping</h3>
<p>When using the QWERTY or the Virtual keyboard, by default each note along a horizontal axis is 1 scale degree
apart and each note along vertical axis is 5 scale degrees apart. This can be changed by using the
<strong>Isomorphic keyboard settings</strong> shown on the right column of the Scale Workshop interface.</p>
<p class="text-center"><a href="src/assets/img/guide/isomorphic-settings.png" target="_blank"><img
src="src/assets/img/guide/isomorphic-settings.png" /></a></p>
<h3 id="changing-the-sound-of-the-synth">Changing the sound of the synth</h3>
<p>The synth has the following options:</p>
<ul>
<li><strong>Main Volume</strong></li>
<li><strong>Waveform</strong>: Semisine (default), Octaver, Triangle, Square, Sawtooth, Brightness, Harmonic Bell, Warm, Sine</li>
<li><strong>Amplitude envelope</strong>: Organ, Pad, Percussive (Short, Medium and Long)</li>
<li><strong>Delay effect</strong>: feedback delay echo</li>
<li><strong>Max polyphony</strong>: maximum number of voices that can be played at one time. Use a low value if you're on a low powered device. Many devices will be capable of 64 or more simultaneous voices. Must refresh the page for changes to take effect.</li>
</ul>
<p class="text-center"><a href="src/assets/img/guide/synth-settings.png" target="_blank"><img
src="src/assets/img/guide/synth-settings.png" /></a></p>
<h2 id="midi">MIDI I/O</h2>
<p>Scale Workshop can behave like a MIDI tuning box, allowing for MIDI input into the app and then outputting MIDI notes plus multichannel pitch bend messages, thereby allowing you to hear your scale on a supported MIDI synth.</p>
<p>Before getting started, make sure that your web browser is web-MIDI compatible. Not all browsers support MIDI I/O.</p>
<p>On your MIDI synth device, you should set pitch bend range to +/- 1 octave.</p>
<p>Connect your MIDI device(s) to your computer, then click the MIDI I/O option in the top menu. Then click the red 'MIDI on' button. If this was successful, the button will turn green and you will see a list of your MIDI devices below.</p>
<p class="text-center"><a href="src/assets/img/guide/midi-io-settings.png" target="_blank"><img src="src/assets/img/guide/midi-io-settings.png" /></a></p>
<p>MIDI devices can be enabled or disabled by selecting the check boxes next to each device. Each individual channel can also be enabled or disabled by the check boxes.</p>
<h2 id="misc-tips">Misc. tips</h2>
<p><strong>General settings</strong> can be found on the right side of the Scale Workshop interface.</p>
<p class="text-center"><a href="src/assets/img/guide/general-settings.png" target="_blank"><img
src="src/assets/img/guide/general-settings.png" /></a></p>
<p>If an exported tuning file doesn't seem to load into a softsynth properly, then try changing the value of
<strong>Line endings format</strong> and re-saving the file. If you're using a Windows computer it's recommended
to set this to Microsoft, otherwise set this to Unix.</p>
<p><strong>Dark mode</strong> makes the Scale Workshop interface dark.</p>
<p class="text-center"><a href="src/assets/img/guide/dark-mode.png" target="_blank"><img
src="src/assets/img/guide/dark-mode.png" /></a></p>
<p>Undo/redo your tuning changes by using the back/forward browser navigation buttons.</p>
<p>If the synth gets too noisy, you can kill all sound by clicking the <strong>Quiet</strong> button.</p>
</article>
</body>
</html>