28#ifdef WITH_CONVOLUTION
29# include "AUD_Sound.h"
43#ifdef WITH_CONVOLUTION
44static bool sequencer_refresh_sound_length_recursive(
Main *bmain,
Scene *scene,
ListBase *seqbase)
50 if (sequencer_refresh_sound_length_recursive(bmain, scene, &seq->seqbase)) {
63 seq->len = std::max(1,
int(
round((info.
length - seq->sound->offset_time) *
FPS)));
68 seq->start += (old - seq->startofs);
79#ifdef WITH_CONVOLUTION
81 sequencer_refresh_sound_length_recursive(bmain, scene, &scene->ed->seqbase);
132 if (seq->scene_sound && sound == seq->sound) {
149 if (meta_parent !=
nullptr) {
168 eqcmd = MEM_cnew<EQCurveMappingData>(
"Equalizer");
199 else if (number == 2) {
203 else if (number == 3) {
214 if (min_freq < 0.0) {
217 if (max_freq < 0.0) {
220 if (max_freq <= min_freq) {
263 eqcmd_n->
next = eqcmd_n->
prev =
nullptr;
270#ifdef WITH_CONVOLUTION
291 eq_mapping = &mapping->curve_mapping;
296 int idx =
int(
ceil(minX / interval));
299 float freq = i * interval;
305 if (i == idx && i > 2) {
306 buf[i - 1] = 0.5 * (buf[i] + buf[i - 1]);
311 buf[i] = 0.5 * (buf[i] + buf[i - 1]);
314 AUD_Sound *equ = AUD_Sound_equalize(sound,
bool BKE_sound_info_get(struct Main *main, struct bSound *sound, SoundInfo *sound_info)
void BKE_sound_move_scene_sound_defaults(struct Scene *scene, struct Sequence *sequence)
void BKE_sound_move_scene_sound(const struct Scene *scene, void *handle, int startframe, int endframe, int frameskip, double audio_offset)
void BKE_sound_update_scene_sound(void *handle, struct bSound *sound)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
bool BLI_remlink_safe(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
@ CURVE_PRESET_CONSTANT_MEDIAN
@ seqModifierType_SoundEqualizer
Read Guarded memory(de)allocation.
#define SOUND_EQUALIZER_DEFAULT_MAX_FREQ
#define SOUND_EQUALIZER_SIZE_CONVERSION
#define SOUND_EQUALIZER_SIZE_DEFINITION
#define SOUND_EQUALIZER_DEFAULT_MIN_FREQ
#define SOUND_EQUALIZER_DEFAULT_MAX_DB
draw_view in_light_buf[] float
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_dupallocN)(const void *vmemh)
ccl_device_inline float2 fabs(const float2 a)
ccl_device_inline float3 ceil(const float3 a)
Sequence * seq_sequence_lookup_meta_by_seq(const Scene *scene, const Sequence *key)
EQCurveMappingData * SEQ_sound_equalizermodifier_add_graph(SoundEqualizerModifierData *semd, float min_freq, float max_freq)
static void seq_update_sound_recursive(Scene *scene, ListBase *seqbasep, bSound *sound)
void SEQ_sound_equalizermodifier_free(SequenceModifierData *smd)
void SEQ_sound_update_bounds_all(Scene *scene)
EQCurveMappingData * SEQ_sound_equalizer_add(SoundEqualizerModifierData *semd, float minX, float maxX)
void SEQ_sound_equalizermodifier_set_graphs(SoundEqualizerModifierData *semd, int number)
void * SEQ_sound_modifier_recreator(Sequence *seq, SequenceModifierData *smd, void *sound)
const SoundModifierWorkerInfo * SEQ_sound_modifier_worker_info_get(int type)
void SEQ_sound_update(Scene *scene, bSound *sound)
float SEQ_sound_pitch_get(const Scene *scene, const Sequence *seq)
void SEQ_sound_update_bounds(Scene *scene, Sequence *seq)
void SEQ_sound_equalizermodifier_init_data(SequenceModifierData *smd)
void * SEQ_sound_equalizermodifier_recreator(Sequence *seq, SequenceModifierData *smd, void *sound)
void SEQ_sound_equalizermodifier_copy_data(SequenceModifierData *target, SequenceModifierData *smd)
void SEQ_sound_update_length(Main *bmain, Scene *scene)
const SoundModifierWorkerInfo workersSoundModifiers[]
void SEQ_sound_equalizermodifier_remove_graph(SoundEqualizerModifierData *semd, EQCurveMappingData *eqcmd)
void seq_update_sound_bounds_recursive(const Scene *scene, Sequence *metaseq)
int SEQ_time_left_handle_frame_get(const Scene *, const Sequence *seq)
int SEQ_time_right_handle_frame_get(const Scene *scene, const Sequence *seq)
struct EQCurveMappingData * next
struct EQCurveMappingData * prev
struct CurveMapping curve_mapping
void *(* recreator)(Sequence *seq, SequenceModifierData *smd, void *sound)