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 | |
| parent | ee08cd02833382c2716dbc97e88fc166d9510281 (diff) | |
| -rw-r--r-- | about-additive.html | 25 | ||||
| -rw-r--r-- | about-effects.html | 20 | ||||
| -rw-r--r-- | style.css | 1 | 
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 @@ -2,6 +2,7 @@ body {      background: #404040;      color: white;      min-height: 100vh; +    font-size: large;  }  span {  |