85 void drawGrain(Graphics& graphicContext, Graphics& overlayContext,
float x,
float y,
float diameter,
86 float sprite,
float envelope = 0.f);
97 void drawGrainPerspective(Graphics& graphicContext, Graphics& overlayContext,
float x,
float y,
float z,
98 float q,
const AffineTransform& transform,
float envelope = -1.f);
148 void drawProgressTracker(juce::Graphics& g,
ProgressTracker& progessTracker);
167 void paint(Graphics& g)
override;
236 if (engine->getNumAudioSegments() > 0)
A component to display the grains of the reformer engine.
Definition GrainVisualiser.h:66
std::vector< KrotosImage > m_backgroundCache
Definition GrainVisualiser.h:312
std::vector< KrotosImage > m_grainImages
Definition GrainVisualiser.h:332
Image m_displayBuffer
Definition GrainVisualiser.h:330
const float BACKGROUND_INTERPOLATION_SPAN
Definition GrainVisualiser.h:310
void setPerformMode(bool val)
Set the visualiser into display mode.
Definition GrainVisualiser.h:253
void drawInterpolatedBackground(juce::Graphics &g, float parallax)
Draw the background from the backgound frames store The final image will be interpolated from the two...
Definition GrainVisualiser.cpp:165
const int NUM_BACKGROUND_FRAMES
Definition GrainVisualiser.h:308
volatile std::atomic< float > m_puckPositionY
Definition GrainVisualiser.h:283
void setPuckPosition(Point< float > position)
Definition GrainVisualiser.h:243
void requestBackgroundCacheRegeneration()
Sets a flag to request regeneration of the background cache.
Definition GrainVisualiser.h:179
const float Z_SEPARATION_SCALING
Definition GrainVisualiser.h:299
float m_overlayAlpha
Definition GrainVisualiser.h:319
const int DISPLAY_HEIGHT
Definition GrainVisualiser.h:315
std::vector< SampleEngineShallow > m_shallowEngineArray
Definition GrainVisualiser.h:336
void drawBackdropGradient(juce::Graphics &g)
Draw a gradient for the display background.
Definition GrainVisualiser.cpp:180
const float SMALLEST_FLOAT_VALUE
Definition GrainVisualiser.h:309
const float ROTATION_RANGE
Definition GrainVisualiser.h:289
bool m_performMode
Definition GrainVisualiser.h:279
void drawGrainPerspective(Graphics &graphicContext, Graphics &overlayContext, float x, float y, float z, float q, const AffineTransform &transform, float envelope=-1.f)
Draw a grain blob into the grain display 3D.
Definition GrainVisualiser.cpp:130
float m_grainDiameter
Definition GrainVisualiser.h:317
bool m_advancedGraphics
Definition GrainVisualiser.h:322
const float NUM_GLOBAL_FADE_UP_FRAMES
Definition GrainVisualiser.h:275
const GrainRenderStyle DEFAULT_GRAIN_RENDER_STYLE
Definition GrainVisualiser.h:277
CriticalSection objectLock
Definition GrainVisualiser.h:285
float m_parallaxFromPuck
Definition GrainVisualiser.h:281
void markBackgroundFramesDirty()
Sets the dirty flag true for every background frame.
Definition GrainVisualiser.cpp:473
int m_numActiveEngines
Definition GrainVisualiser.h:337
const float TWO_PI
Definition GrainVisualiser.h:297
GrainRenderStyle
Enumerate the sets of PNGs used to render grains.
Definition GrainVisualiser.h:259
@ NUM_GRAIN_STYLES
Definition GrainVisualiser.h:262
@ Compound
Definition GrainVisualiser.h:260
@ DotsWithLines
Definition GrainVisualiser.h:261
float m_overlayHue
Definition GrainVisualiser.h:318
int m_redrawFrameIndex
Definition GrainVisualiser.h:334
float m_grainZ
Definition GrainVisualiser.h:321
float m_grainAlpha
Definition GrainVisualiser.h:320
void drawDisplayBuffer(juce::Graphics &g)
Draw the display buffer into a graphics context.
Definition GrainVisualiser.cpp:141
void finishedAddingSampleEngines()
Called to indicate that you have finished adding sample engines to the grain visualiser Checks to see...
Definition GrainVisualiser.h:215
void paintPlayingGrains(SampleEngineShallow *sampleEngine)
Paint the grain display into the display buffer.
Definition GrainVisualiser.cpp:377
float m_indicatorHue
Definition GrainVisualiser.h:287
volatile std::atomic< float > m_puckPositionX
Definition GrainVisualiser.h:282
Image m_backdropImage
Definition GrainVisualiser.h:324
const int DISPLAY_WIDTH
Definition GrainVisualiser.h:314
void drawBackgroundFrame(Graphics &graphicContext, Graphics &overlayContext, SampleEngineShallow *sampleEngine, float parallax)
Draws all the grain display components - background.
Definition GrainVisualiser.cpp:231
static constexpr int ReformerMaxDisplayedInstances
Definition GrainVisualiser.h:70
const AffineTransform makeParallaxRotationTransform(float parallax)
Make an affine transform to rotate X & Z around the Y axis.
Definition GrainVisualiser.cpp:372
const float PERSPECTIVE_SCALING_MAX
Definition GrainVisualiser.h:293
float m_globalDisplayOpacity
Definition GrainVisualiser.h:273
int calcBaseFrame(const float parallax, float &interFrame)
Calculates which frame index into the background cache for a given parallax value.
Definition GrainVisualiser.cpp:148
~GrainVisualiser() override
Definition GrainVisualiser.cpp:73
void shallowCopy(KrotosSampleOscillatorSound *sound)
Set which sound is to be displayed.
Definition GrainVisualiser.h:229
void drawGrain(Graphics &graphicContext, Graphics &overlayContext, float x, float y, float diameter, float sprite, float envelope=0.f)
Draw a grain blob into the grain display 2D.
Definition GrainVisualiser.cpp:75
const float LEGACY_MODE_ALPHA_VALUE
Definition GrainVisualiser.h:301
bool m_requestBackgroundCacheRegeneration
Definition GrainVisualiser.h:311
void updateBackgroundCacheFrame(SampleEngineShallow *sampleEngine, int index)
Regenerate a frame in the background cache.
Definition GrainVisualiser.cpp:451
const float PERSPECTIVE_SCALING_MIN
Definition GrainVisualiser.h:292
const float ASPECT_RATIO
Definition GrainVisualiser.h:295
void prepareToAddSampleEngines()
Called to indicate that you are about to start adding sample engines to the grain visualiser.
Definition GrainVisualiser.h:204
void loadBinaryAssetGrainGraphics(GrainRenderStyle style)
Loads the PNGs for display of grains from binary assets.
Definition GrainVisualiser.cpp:485
void drawBackdrop(juce::Graphics &g)
The backdrop is graphic which is drawn into the background of the display This method draws it into t...
Definition GrainVisualiser.cpp:146
GrainVisualiser()
Definition GrainVisualiser.cpp:6
void paint(Graphics &g) override
Paints in the grains display This method is called when the component is asked to re-paint itself Thi...
Definition GrainVisualiser.cpp:259
Definition KrotosSynthesiserSound.h:19
SampleEngine * getSampleEngine() override
Definition KrotosSynthesiserSound.h:44
ProgressTracker - a class to help with display of a progresas bar during audio analysis.
Definition KrotosAudioBufferDSP.h:64
Definition SampleEngine.h:84
A structure to hold a "shallow" copy of a SampleEngine structure It contains only the data from a Sam...
Definition GrainVisualiser.h:24
std::vector< Grain > m_grains
Definition GrainVisualiser.h:50
std::vector< Grain > & getGrainArray()
Definition GrainVisualiser.h:46
std::vector< AudioDescriptor > & getGrainDescriptionByZ()
Definition GrainVisualiser.h:40
void shallowCopy(SampleEngine *sampleEngine)
Make a shallow copy of a sample engine This might have been this class's constructor,...
Definition GrainVisualiser.cpp:351
AnalysisCoefficients & getAnalysisCoefficients()
Definition GrainVisualiser.h:48
bool m_shouldRegenerateDisplayCache
Definition GrainVisualiser.h:54
std::vector< AudioDescriptor > m_grainDescriptionByZ
Definition GrainVisualiser.h:53
AnalysisCoefficients m_analysisCoefficients
Definition GrainVisualiser.h:55
bool shouldRegenerateDisplayCache()
Definition GrainVisualiser.h:42
bool analysisResultsAreValid()
Definition GrainVisualiser.h:44
bool m_analysisResultsAreValid
Definition GrainVisualiser.h:56
Enables zooming of a painted component using special drawing methods.
Definition ZoomableComponent.h:7
Definition AirAbsorptionFilter.cpp:2
AnalysisCoefficients - A class containing attributes used during analysis of audio.
Definition KrotosAudioBufferDSP.h:42
A structure to associate a Juce image with any other required variables.
Definition GrainVisualiser.h:11
Image image
Definition GrainVisualiser.h:14
bool dirty
Definition GrainVisualiser.h:15
KrotosImage(Image initImage)
Definition GrainVisualiser.h:13