| 
    OpenShot Library | libopenshot
    0.4.0
    
   | 
 
 
 
 
Go to the documentation of this file.
   24     threshold(threshold), ratio(ratio), attack(attack),
 
   25     release(release), makeup_gain(makeup_gain), bypass(bypass)
 
   28     init_effect_details();
 
   32 void Expander::init_effect_details()
 
   40     info.
description = 
"Louder parts of audio becomes relatively louder and quieter parts becomes quieter.";
 
   52 std::shared_ptr<openshot::Frame> 
Expander::GetFrame(std::shared_ptr<openshot::Frame> frame, int64_t frame_number)
 
   55     const int num_input_channels = frame->audio->getNumChannels();
 
   56     const int num_output_channels = frame->audio->getNumChannels();
 
   57     const int num_samples = frame->audio->getNumSamples();
 
   68     for (
int channel = 0; channel < num_input_channels; ++channel)
 
   69         mixed_down_input.addFrom(0, 0, *frame->audio, channel, 0, num_samples, 1.0f / num_input_channels);
 
   71     for (
int sample = 0; sample < num_samples; ++sample) {
 
   79         const float average_factor = 0.9999f;
 
   87             yg = T + (
xg - T) * R;
 
   97         control = powf (10.0f, (gain - 
yl) * 0.05f);
 
  100         for (
int channel = 0; channel < num_input_channels; ++channel) {
 
  101             float new_value = frame->audio->getSample(channel, sample)*
control;
 
  102             frame->audio->setSample(channel, sample, new_value);
 
  106     for (
int channel = num_input_channels; channel < num_output_channels; ++channel)
 
  107         frame->audio->clear(channel, 0, num_samples);
 
  155     catch (
const std::exception& e)
 
  158         throw InvalidJSON(
"JSON is invalid (missing keys or invalid data types)");
 
  169     if (!root[
"threshold"].isNull())
 
  172     if (!root[
"ratio"].isNull())
 
  175     if (!root[
"attack"].isNull())
 
  178     if (!root[
"release"].isNull())
 
  181     if (!root[
"makeup_gain"].isNull())
 
  184     if (!root[
"bypass"].isNull())
 
  203     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.
 
void SetJsonValue(const Json::Value root) override
Load Json::Value into this object.
 
This namespace is the default namespace for all code in the openshot library.
 
void SetJson(const std::string value) override
Load JSON string into this object.
 
virtual Json::Value JsonValue() const
Generate Json::Value for this object.
 
Json::Value JsonValue() const override
Generate Json::Value for this object.
 
This class adds a expander (or noise gate) into the audio.
 
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...
 
void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
 
float calculateAttackOrRelease(float value)
 
juce::AudioBuffer< float > mixed_down_input
 
Json::Value JsonValue() const
Generate Json::Value for this object.
 
Json::Value BasePropertiesJSON(int64_t requested_frame) const
Generate JSON object of base properties (recommended to be used by all effects)
 
A Keyframe is a collection of Point instances, which is used to vary a number or property over time.
 
Exception for invalid JSON.
 
bool has_audio
Determines if this effect manipulates the audio of a frame.
 
Header file for Expander audio effect class.
 
Header file for Frame class.
 
std::string class_name
The class name of the effect.
 
std::string description
The description of this effect and what it does.
 
bool has_video
Determines if this effect manipulates the image of a frame.
 
Expander()
Default constructor.
 
std::string Json() const override
Generate JSON string of this object.
 
std::string name
The name of the effect.
 
float inverse_sample_rate
 
std::string PropertiesJSON(int64_t requested_frame) const override
 
Header file for all Exception classes.
 
virtual void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
 
double GetValue(int64_t index) const
Get the value at a specific index.