Gin
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 CADSRLinear ADSR
 CADSRComponentComponent for adjuting ADSR curves
 CAirWindowsDistortionDistortion based on AirWindows plugins
 CAnalogADSRAnalog ADSR
 CAsyncDownloadAsync Download
 CAsyncLambdaValueTreeListenerListen to value tree changes with std::function<>, but Async
 CAsyncWebsocket
 CAudioEquationParserEnhances the EquationParser with math related functions like filters and oscilllators
 CAudioFifoFIFO - stuff audio in one end and it pops out the other
 CAudioFunctionHostState managment for audio functions
 CBandLimitedLookupTableLookup tables for holding bandlimited waveforms
 CBandLimitedLookupTablesGenerate and hold bandlimited lookup tabkes for all the common waveforms
 CBLLTVoicedStereoOscillatorStereo Oscillator with multiple voices, pan, spread, detune, etc
 CBMPImageFormatSupport for reading and writing Windows Bitmap files
 CBoxAreaA group of control boxes
 CBP12StateState for band pass filter
 CBP24StateState for band pass filter
 CCatenaryA catenary is the shape a wire, cable, rope etc
 CCoalescedTimerRun multiple timers from one juce::Timer per rate
 CColourPropertyComponent
 CCommentMetadata
 CComponentGrid
 CComponentViewerShows the component under the mouse and component hierarchy
 CControlBoxA box for holding controls on a grid
 CCopperLookAndFeelPlugin specific addition to GinLookAndFeel Still black and white
 CCopperLookAndFeelWrapperAuto sets and clears CopperLookAndFeel as default
 CDCBlocker
 CDelayLineAudio Delay with linear interpolation
 CDownloadManagerDownloads files to a memory block and then calls a lambda on the message thread with the results
 CDynamicsCompressor / Gate / Expander / Limiter based on algorithm from Designing Audio Effect Plug-ins in C++ by Will Pirkle
 CDynamicsMeterDraws a comp, gate, limiter, expander graph Draws input > output curve Draws input and output levels
 CEasedValueSmootherLinearly smooths a value in a 0 to 1 range at a constant rate
 CElevatedFileCopyCopies files, creating folders where required requesting admin access only if required
 CEllipseEquations to calculate the shape of an ellipse and to calculate points on the edge of the ellipse and to see if points are inside or outside
 CEnvelopeDetectorEnvelopeDetector for Dynamics
 CEQBasic multi channel / multi band EQ
 CEquationParser
 CExifMetadata
 CFastMath
 CFilePropertyComponent
 CFileSystemWatcherWatches a folder in the file system for changes
 CFilterBasic multi channel filter
 CFuncStateBase class to store an audio functions state But you say "functions don't have state!" Well, that's true, but to make things like filters act as functions, I need to hide a bit of state in them
 CGainProcessor
 CGateEffectGate effect
 CGateEffectComponentAn editor for the gate effect pattern
 CGinLookAndFeelThe GinLookAndFeel
 CGlideInfoInfo on how the voice should glide
 CHeaderButtonA header button with title text
 CHeaderItemA header with power button, name and mod destinations
 CHeaderRowHolds a row of headers
 CHorizontalFaderHorizontal slider wth text for controlling a param
 CHP12StateState for high pass filter
 CHP24StateState for high pass filter
 CHttp
 CImageMetadata
 CImages
 CIntegratorCalculates the integral of a function defined by a series of points
 CIptcMetadata
 CKnobSlider + editable text for showing a param
 CLambdaAsyncUpdaterLike juce::AsyncUpdater, but it calls a std::function<>
 CLambdaMouseListenerIf you add a mouse listener to yourself to get nested mouse messages, then you get them all twice, so use a lambda mouse listener instead
 CLambdaTimerLike juce::Timer, but it calls a std::function<>
 CLambdaValueTreeListenerListen to value tree changes with std::function<>
 CLayoutLayout components with json, supports hot reloading
 CLeastSquaresRegressionSee https://www.codeproject.com/Articles/63170/Least-Squares-Regression-for-Quadratic-Curve-Fitti for original code
 CLevelMeterDraws a simple level meter
 CLevelTrackerTrack audio levels with decay in dB
 CLFOLFO with many shapes
 CLFOComponentDraws an LFO curve and shows a little dot moving long
 CLinearRegressionCalculates linear regression from a set of points
 CLocationManager
 CLP12StateState for low pass filter
 CLP24StateState for low pass filter
 CMapViewerDraws an map, etting tiles fom one of many OpenStreetMapsServers
 CMessagePackConverts to/from MessagePack and juce::var
 CMidiFifoFIFO - stuff midi in one end and it pops out the other
 CModCurveButtonA button that displays mod curve
 CModDstId
 CModMatrixAdd one of these to you Synth if you want to support modulation
 CModMatrixBoxA list box of all assigned
 CModSrcId
 CModSrcListBoxA list box of all mod sources
 CModulationAudio modulation, for a chorus or phaser etc
 CModulationDepthSliderA button for the modulation destination
 CModulationOverviewA button and text readout that shows the current modulation source
 CModulationSourceButtonA button for enabling modulation learn
 CModVoiceMake your synth voice inherit from this if it supports modulation
 CMSEGMSEG LFO
 CMSEGComponentDraws an MSEG LFO curve and shows a little dot moving long
 CMultiParamComponentA base component for controlling multiple parameters at once
 CNewsCheckerChecks Wordpress feed for plugin news
 CNoiseStateState for noise
 CNotch12StateState for notch filter
 CNotch24StateState for notch filter
 CNoteDurationHow long is a note?
 COpenStreetMapsFetches map files from OSM servers
 COscStateState for an oscillator
 CPagedControlBoxA control for holding pags of controls on a grid Pages slide over top of each other to make room
 CParamAreaA box for graphs without a header
 CParamBoxA box for knobs with a header
 CParamComponentBase class for a control showing a parameter with label
 CParameterA parameter with user values, real time safe callbacks, modulation, and all sorts of other fancy stuff
 CParamHeaderA header with title text
 CPatchBrowser
 CPerlinNoisePerlin noise - realistic looking noise Based on reference implementation of Perlin Noise by Ken Perlin http://mrl.nyu.edu/~perlin/paper445.pdf
 CPinkNoise
 CPlateReverbPlate reverb from Dattorro's paper
 CPluginAlertWindowAn alert window that doesn't add itself to the desktop
 CPluginButtonButton for toggling a parameter
 CPluginComboBoxA control for selecting param values from a dropbox
 CPluginLookAndFeelPlugin specific addition to GinLookAndFeel Still black and white
 CPluginLookAndFeelWrapperAuto sets and clears PluginLookAndFeel as default
 CPluginSliderA slider for controlling a parameter
 CPointLike the juce::Point, useful for project that don't use juce_graphics
 CPolygonPolygon with multiple points
 CPowerButtonButton for toggling a parameter, drawn as a power button
 CProcessorA process with internal and external params
 CProcessorEditorPlugin editor
 CProcessorEditorBaseBase for plugin editor
 CProcessorOptionsUse this class to customize your plugin
 CProgramSaves your plugin state to XML
 CPropertyComponentBase
 CReadoutA control for displaying a parameter
 CRealtimeAsyncUpdaterLike juce::AsyncUpdater but it doesn't use the message queue
 CResamplingFifoResamplingFifo - uses secret rabbit code
 CRIFFParserParse all the chunks in RIFF files (like wav, aiff, etc)
 CRollingAverageKeeps a rolling average of a series of numbers
 CSampleHolds an audio sample
 CSampleOscillatorOscillator for playing samples
 CScaledPluginEditorIf you want your plugin editor to scale, just wrap it in this
 CScratchBufferA temporay buffer provided from a list
 CSecureStreamingSocket
 CSelectControl for picking param value with label
 CSharedMemoryCreates a block of shared memory
 CSimpleVerbSimple Reverb
 CSingleLineTextEditorAn editable text box
 CSmoothedParameterA silky smooth parameter
 CSmoothingTypeHow do you want you params smoothed?
 CSplineCubic spline interpolation is a simple way to obtain a smooth curve from a set of discrete points
 CStepLFOLFO with editable number of steps
 CStepLFOComponentDraws a step LFO curve and shows a little dot moving long
 CStereoDelayStereo delay with feedback and cross feedback
 CStereoEnhancerStereo Enhancer
 CStereoOscillatorStereo oscillator
 CStereoProcessorStereo Processor
 CSVGButtonButton that draws an SVG
 CSVGPluginButtonButton for toggling a parameter
 CSwitchControl for toggling param with label
 CSynthesiserMPESynthesiser with better fast kill, mono and glide support
 CSynthesiserUsageControl for synth usage
 CSynthesiserVoiceA voice with glide info and fast kill support
 CSystemSemaphoreA semaphore that works across processes and in one process This is not finished / implemented
 CTextHistory
 CTextRendererRender audio to ascii waveforms
 CTimeProfilerTime Profiler – get a quick idea how long something takes
 CTitleBar
 CTriggeredScopeTriggered Scope that it can be set to start on a rising or falling signal
 CUpdateCheckerChecks for plugin updates
 CValueSmootherLinearly smooths a value in a 0 to 1 range at a constant rate
 CValueTreeObjectMirrors a ValueTree in Objects
 CVoicedOscillatorParams
 CVoicedStereoOscillatorStereo Oscillator with multiples voices, pan, spread, detune, etc
 CVoicedStereoOscillatorParams
 CWaveformComponentDraws a waveform
 CWavetableComponentDraws a wavetable
 CWEBPImageFormatSupport for reading and writing Webp
 CWebSocket
 CWetDryMixMix between wet and dry with a nice curve
 CWhiteNoise
 CWSHeaderType
 CWTOscillatorWT Oscillator
 CWTVoicedStereoOscillatorStereo Wavetable Oscillator with multiples voices, pan, spread, detune, etc
 CWTVoicedStereoOscillatorParams
 CXmpMetadata
 CXYScopeDraws an XY Scope