summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2024-10-31 03:18:39 -0400
committerKyle Gunger <kgunger12@gmail.com>2024-10-31 03:18:39 -0400
commit9e6838f0b0743b16c2f4de0a1d72fe3229913f6a (patch)
tree4b884d8727bd62a9ff0b09a131b401e33e2dc4d2
parentee08cd02833382c2716dbc97e88fc166d9510281 (diff)
About pagesHEADmain
-rw-r--r--about-additive.html25
-rw-r--r--about-effects.html20
-rw-r--r--style.css1
3 files changed, 46 insertions, 0 deletions
diff --git a/about-additive.html b/about-additive.html
index 7068b55..e6fa4ff 100644
--- a/about-additive.html
+++ b/about-additive.html
@@ -7,5 +7,30 @@
<link rel="stylesheet" href="./style.css" />
</head>
<body>
+ <h1>Additive Instrument Component</h1>
+ <span>Code written by Kyle Gunger</span>
+ <p>
+ CAdditiveInstrument is first initialized by a pointer to the parameter xml node,<br>
+ which it uses to populate the parameters such as sound definitions. Afterward it<br>
+ is given the Note, from which it reads things like the starting and ending frequency<br>
+ as well as the starting and ending sound definition. Internally it uses a vector of<br>
+ CSoundDef classes to hold the sound definitions, each represents a summation of sin<br>
+ waves. It also uses a CCrossFade and CADSR node to represent the fading between<br>
+ CSoundDef and Envelope, respectively. It uses the proper CSoundDefs as sources for<br>
+ the CCrossFade node and the CCrossFade node as source for the CADSR node. When<br>
+ Generate is called on the CADSR node it is called recursivly on the child nodes and<br>
+ then interpolated via the ADSR rules.<br><br>
+ In generating the soundwave, it checks the envelope to see how far along we are, and uses<br>
+ that percentage to interpolate both the frequency and cross-fading.
+ </p>
+ <span class="attr">Supported grading elements:</span>
+ <ul>
+ <li>Sinusoid playback - Yes</li>
+ <li>Harmonic definition - Yes</li>
+ <li>Envelope - Yes</li>
+ <li>Polyphony - Yes (via synthesizer controller)</li>
+ <li>Sound cross-fading - Yes</li>
+ <li>Glissando - Yes (only between two notes at a time)</li>
+ </ul>
</body>
</html> \ No newline at end of file
diff --git a/about-effects.html b/about-effects.html
index 60ea6fb..9956eb3 100644
--- a/about-effects.html
+++ b/about-effects.html
@@ -7,5 +7,25 @@
<link rel="stylesheet" href="./style.css" />
</head>
<body>
+ <h1>Effects Component</h1>
+ <span>Code written by Kyle Gunger</span>
+ <p>
+ A CEffects class is generated for each instrument tag in the XML score file.<br>
+ It is then given the tag to parse all the effects and ordering before being<br>
+ pushed into a vector within CSynthesizer. The index is saved and eventually<br>
+ coupled with both the note and instrument created later down the line. Each<br>
+ effect controller has a list of source nodes, which must be generated prior to<br>
+ calling generate on the effect controller. These nodes are pulled from, added<br>
+ together, and sent through the defined order of effects as in the XML. After<br>
+ this is done, the audio is added in to the synthesizer's output.
+ </p>
+ <span class="attr">Supported grading elements:</span>
+ <ul>
+ <li>Passes Audio - Yes</li>
+ <li>1 Effect - Yes</li>
+ <li>3 Effects - No</li>
+ <li>Controllable effects send - Yes</li>
+ <li>4 Effects - No</li>
+ </ul>
</body>
</html> \ No newline at end of file
diff --git a/style.css b/style.css
index 9d4297c..6f2d63f 100644
--- a/style.css
+++ b/style.css
@@ -2,6 +2,7 @@ body {
background: #404040;
color: white;
min-height: 100vh;
+ font-size: large;
}
span {