summaryrefslogtreecommitdiff
path: root/about-additive.html
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 /about-additive.html
parentee08cd02833382c2716dbc97e88fc166d9510281 (diff)
About pagesHEADmain
Diffstat (limited to 'about-additive.html')
-rw-r--r--about-additive.html25
1 files changed, 25 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