LMMS
Loading...
Searching...
No Matches
juce_ResamplingAudioSource.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
35{
36public:
37 //==============================================================================
46 bool deleteInputWhenDeleted,
47 int numChannels = 2);
48
50 ~ResamplingAudioSource() override;
51
60 void setResamplingRatio (double samplesInPerOutputSample);
61
67
69 void flushBuffers();
70
71 //==============================================================================
72 void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override;
73 void releaseResources() override;
74 void getNextAudioBlock (const AudioSourceChannelInfo&) override;
75
76private:
77 //==============================================================================
79 double ratio = 1.0, lastRatio = 1.0;
82 double subSampleOffset = 0.0;
83 double coefficients[6];
86 const int numChannels;
89
90 void setFilterCoefficients (double c1, double c2, double c3, double c4, double c5, double c6);
91 void createLowPass (double proportionalRate);
92
94 {
95 double x1, x2, y1, y2;
96 };
97
99 void resetFilters();
100
101 void applyFilter (float* samples, int num, FilterState& fs);
102
104};
105
106} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_AudioSampleBuffer.h:34
AudioSource()=default
Definition juce_CriticalSection.h:43
Definition juce_HeapBlock.h:87
Definition juce_OptionalScopedPointer.h:38
OptionalScopedPointer< AudioSource > input
Definition juce_ResamplingAudioSource.h:78
HeapBlock< FilterState > filterStates
Definition juce_ResamplingAudioSource.h:98
AudioBuffer< float > buffer
Definition juce_ResamplingAudioSource.h:80
double subSampleOffset
Definition juce_ResamplingAudioSource.h:82
void setFilterCoefficients(double c1, double c2, double c3, double c4, double c5, double c6)
Definition juce_ResamplingAudioSource.cpp:215
double coefficients[6]
Definition juce_ResamplingAudioSource.h:83
int bufferPos
Definition juce_ResamplingAudioSource.h:81
const int numChannels
Definition juce_ResamplingAudioSource.h:86
HeapBlock< const float * > srcBuffers
Definition juce_ResamplingAudioSource.h:88
double lastRatio
Definition juce_ResamplingAudioSource.h:79
int sampsInBuffer
Definition juce_ResamplingAudioSource.h:81
CriticalSection callbackLock
Definition juce_ResamplingAudioSource.h:85
double getResamplingRatio() const noexcept
Definition juce_ResamplingAudioSource.h:66
void resetFilters()
Definition juce_ResamplingAudioSource.cpp:233
void applyFilter(float *samples, int num, FilterState &fs)
Definition juce_ResamplingAudioSource.cpp:239
SpinLock ratioLock
Definition juce_ResamplingAudioSource.h:84
void setResamplingRatio(double samplesInPerOutputSample)
Definition juce_ResamplingAudioSource.cpp:38
ResamplingAudioSource(AudioSource *inputSource, bool deleteInputWhenDeleted, int numChannels=2)
Definition juce_ResamplingAudioSource.cpp:26
HeapBlock< float * > destBuffers
Definition juce_ResamplingAudioSource.h:87
void createLowPass(double proportionalRate)
Definition juce_ResamplingAudioSource.cpp:198
double ratio
Definition juce_ResamplingAudioSource.h:79
Definition juce_SpinLock.h:42
static void c2(register WDL_FFT_COMPLEX *a)
Definition fft.c:270
static void c4(register WDL_FFT_COMPLEX *a)
Definition fft.c:283
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
Definition juce_AudioSource.h:33
Definition juce_ResamplingAudioSource.h:94
double y1
Definition juce_ResamplingAudioSource.h:95
double x1
Definition juce_ResamplingAudioSource.h:95
double y2
Definition juce_ResamplingAudioSource.h:95
double x2
Definition juce_ResamplingAudioSource.h:95
#define const
Definition zconf.h:137