diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2024-10-31 03:18:39 -0400 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2024-10-31 03:18:39 -0400 |
commit | 9e6838f0b0743b16c2f4de0a1d72fe3229913f6a (patch) | |
tree | 4b884d8727bd62a9ff0b09a131b401e33e2dc4d2 /about-additive.html | |
parent | ee08cd02833382c2716dbc97e88fc166d9510281 (diff) |
Diffstat (limited to 'about-additive.html')
-rw-r--r-- | about-additive.html | 25 |
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 |