OpenShot Library | libopenshot
0.4.0
|
Go to the documentation of this file.
26 fft_size(fft_size), hop_size(hop_size),
27 window_type(window_type), stft(*this)
30 init_effect_details();
34 void Whisperization::init_effect_details()
42 info.
description =
"Transform the voice present in an audio track into a whispering voice effect.";
51 const std::lock_guard<std::recursive_mutex> lock(
mutex);
52 ScopedNoDenormals noDenormals;
54 const int num_input_channels = frame->audio->getNumChannels();
55 const int num_output_channels = frame->audio->getNumChannels();
56 const int num_samples = frame->audio->getNumSamples();
57 const int hop_size_value = 1 << ((int)
hop_size + 1);
58 const int fft_size_value = 1 << ((int)
fft_size + 5);
71 void Whisperization::WhisperizationEffect::modification(
const int channel)
75 for (
int index = 0; index <
fft_size / 2 + 1; ++index) {
77 float phase = 2.0f * M_PI * (float)rand() / (float)RAND_MAX;
82 if (index > 0 && index <
fft_size / 2) {
123 catch (
const std::exception& e)
126 throw InvalidJSON(
"JSON is invalid (missing keys or invalid data types)");
136 if (!root[
"fft_size"].isNull())
139 if (!root[
"hop_size"].isNull())
142 if (!root[
"window_type"].isNull())
177 return root.toStyledString();
Json::Value add_property_json(std::string name, float value, std::string type, std::string memo, const Keyframe *keyframe, float min_value, float max_value, bool readonly, int64_t requested_frame) const
Generate JSON for a property.
const Json::Value stringToJson(const std::string value)
EffectInfoStruct info
Information about the current effect.
std::string PropertiesJSON(int64_t requested_frame) const override
Json::Value JsonValue() const override
Generate Json::Value for this object.
This namespace is the default namespace for all code in the openshot library.
void SetJsonValue(const Json::Value root) override
Load Json::Value into this object.
Json::Value add_property_choice_json(std::string name, int value, int selected_value) const
Generate JSON choice for a property (dropdown properties)
virtual Json::Value JsonValue() const
Generate Json::Value for this object.
void SetJson(const std::string value) override
Load JSON string into this object.
std::unique_ptr< juce::dsp::FFT > fft
juce::HeapBlock< juce::dsp::Complex< float > > frequency_domain_buffer
Json::Value BasePropertiesJSON(int64_t requested_frame) const
Generate JSON object of base properties (recommended to be used by all effects)
std::recursive_mutex mutex
This class adds a whisperization effect into the audio.
Exception for invalid JSON.
std::string Json() const override
Generate JSON string of this object.
std::shared_ptr< openshot::Frame > GetFrame(int64_t frame_number) override
This method is required for all derived classes of ClipBase, and returns a new openshot::Frame object...
bool has_audio
Determines if this effect manipulates the audio of a frame.
FFTSize
This enumeration determines the FFT size.
void process(juce::AudioBuffer< float > &block)
Header file for Frame class.
openshot::WindowType window_type
std::string class_name
The class name of the effect.
std::string description
The description of this effect and what it does.
Whisperization()
Default constructor.
bool has_video
Determines if this effect manipulates the image of a frame.
openshot::HopSize hop_size
openshot::FFTSize fft_size
void updateParameters(const int new_fft_size, const int new_overlap, const int new_window_type)
juce::HeapBlock< juce::dsp::Complex< float > > time_domain_buffer
HopSize
This enumeration determines the hop size.
Header file for whisperization audio effect class.
std::string name
The name of the effect.
WhisperizationEffect stft
void setup(const int num_input_channels)
WindowType
This enumeration determines the window type.
Header file for all Exception classes.
virtual void SetJsonValue(const Json::Value root)
Load Json::Value into this object.