## Input Source:
	Shows scopes for the inputs of audio mono/stereo channels
	Hold left click on the scope to spawn the pop-up to configure the parameters for the AudioDevInCHOP


## Gain Stage:
	Shows a feedback scope of the input channels after being merged into mono and applying gain value set by user.


## Audio Artifacts / Bass & HIs:
	Scopes will display the short-term history of raw & normalized RMS values for the audio spectrum ranges set by the user.
	Green = Normalized  |  Red = Raw
	The RMS values for each band are normalized to a float from 0 to 1.
	The maximum value for normalization is derived from the short-term history of maximum RMS values for each band and displayed on the bar above each scope.
	A yellow bar on the HIs scope represents the 'threshhold' for a Treble Trigger pulse which can be set by the user.
	This threshhold is maintained as the scopes normalize for new maximum values and can be further updated by the user.
	A "Treble Exponential" value can be applied from ^1 to ^15 for the RMS values in the high spectrum, which serves to makes your loudest transients more "spikey" on demand.
	Left Click or scroll on the white "max history" bars for each scope to force an update step to clear old values out of memory.
	Middle click these bars to outright lock automatic normalization to the current state (normalized values will exceed 1 in loud segments).


## Monitor:
	UI which allows mouse/touch screen interaction with various sliders along with various visuals for feedback of data in realtime.


## BPM / Tapper / Typer:
	Features TapSync_V2.tox | I don't remember where I downloaded this TOX... derivative forum assets I think...
	Click on the Spectrum graph or Tap button to tap along and set the pace.
	First tap in the set will set the beat to 1; BPM will be set after 4 taps; Timeout in 800ms.
	Project also features a custom "type to BPM" feature. If the project is the active window, it will listen to keyboard presses for numbers 0 - 9 and the period [.] key.
	i.e. "9" -> "8" -> "." will set the project tempo to 98, and start on beat 1 as soon as "." is pressed.
	The "." key acts as a "submit" button for the typed number.
	If the "." key is not pressed after typing at least two numbers, after a short timeout, it will still apply the BPM, but it will not reset the beat timeline to 1.


## Options Menu:
	Next to the Exit button is the options menu where you can configure the apperance, audio analysis frame rate, ports for TouchOut data, and more


## Notes:
	The header's extra visual can be disabled... or changed!
	The project offers a "Pixel Shift" feature which will shift the dither texture around 1px at a time to the tempo set at that current time. This is handy for those OLED screens!
	The main ui textures and scopes only update at 48fps, as this project aims to be "light" and able to run along side additional TouchDesigner instances, or operate on cheaper hardware on a secondary system.
	Most of the time, a user's DAC will be set to a multiple of 44.1k or 48k. 176k, 192k and other higher resolutions are typically multiples of the two, which this project will attempt to detect when offering FPS options.
	If the project detects that the amount of samples in each frame of the AudioDevInCHOP is inconsistent (not set to one of these reset FPS stages or frames are dropped), the header will alert the user with a red message.
	During the creation and personal use of this project, I use 404.zero's Zerror TOX, with a license and a MIDIFighter Twister. This shared project has that Zerror TOX removed, is fully functional without it, and a BaseCOMP in place with a copy of parameters from the knobs. You can drop your own zerror or control solution onto this Comp's parameters as binds.
	This is one of my personal projects, which contains some better and many other worse examples of my TD skills. While this project never crashes, this is by no means accurate or empirical measurement of audio.
	There is an automatic update check the project makes with a WebClientDAT to api.repo.danii.io with the app name and version number in the request. No other information is sent and nothing is logged.
	Yes, there's is probably a better way to do that thing you want to tell me about. Do it and show me so we can make this even better c: Together