Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
The commit removes unuseful comments about retrieving data
from RubberBand.
|
|
The commit adds the description of rounding to fraction to keep
the resulting pitch value in the semitone chromatic scale.
|
|
The commit adds a closer explanation of how the resulting pitch value
is changing based on the range value with a couple of real examples.
|
|
The commit changes the comment of the pitch value setting
with a more detailed explanation of why the pow is needed,
and the formula of the calculation is added.
|
|
This commit removes the unnecessary comment of the setting the formant
preserving for the RubberBand processing based on that it just repeats
the code.
|
|
|
|
This commit adds the comments, primarily for the usage
of the RubberBand API, for the Pitch shift effect processing.
|
|
This commits creates literal constants in the anonymous namespace.
The constants values are the same as the manifest
parameter identifiers. The constants are created to avoid grammar bugs
due to the value has to be used twice on the other code places. Due to
the literal being used, the segmentation fault has occurred
without previous warnings or errors if the entered identifier names
for the specific parameter are not the same.
|
|
The commit updates the version of the effect manifest from version 1.0
onto version 2.0.
|
|
The commit fixes the segmentation fault due to a bug
in the name of the parameter value (the old id "formant" was used
instead of the new one, which is "formatPreserving").
|
|
This commit replaces flip-flopping approach to the boolean value
assignment with a cleaner value directly from the parameter.
The init-statement is included in the if statement before the condition
to reduce the variable scope (supported since C++17).
|
|
This commit renames the kSemitones constant into the kSemitonesPerOctave
name because of its more appropriate meaning.
|
|
|
|
The commit changes the formant parameter Id onto the formantPreserving
name. Every dependent variable on this option is renamed
in the same way.
|
|
The commit extends the description of the Formant option
with a more exact version and with an easy-to-understand hint.
|
|
The commit updates the description of the semitones mode.
To be more concrete, the word "smoothly" is replaced with "continuously"
and some grammar updates are added too.
|
|
This commit adds the Range knob for the Pitch shift effect.
The Range option changes the range of the Pitch knob. The Range knob
works linearly and the Pitch knob range is from 0 to 2 octaves.
The default Range knob position is in the middle, which means
that the range of the Pitch knob is from -1 octave to +1 octave.
|
|
This commit removes the Range Mode option and Wide Range option
for the Pitch shift effect. These options should be replaced with
only one option which will handle the Range of the Pitch knob.
|
|
This commit replaces the Formant toggle description
with a more intuitive version.
|
|
This commit replaces the Semitones Mode toggle description
with a more intuitive version.
|
|
This commit removes the forgotten TODO for the Range Mode option
description.
|
|
This commit adds the Formant Preserving option for the Pitch shift
effect. This option changes the settings of formant processing
using the RubberBand library. The default option doesn't use
any special formant processing. When the option is turned on,
the handling of the formant shape is activated and the spectral envelope
of the unshifted signal is preserved.
|
|
This will select the new preset in WEffectChainMenuButton and
WEffectChainPresetSelector
|
|
This commit adds the Range option for the Pitch shift effect.
This option changes the range of the pitch knob. There are three
possible options based on the knob position. The neutral mode (knob
in the default position) keeps the range from the lowest pitch
to the highest pitch. The positive mode (knob in the maximum position)
keeps the range from the default pitch to the highest pitch.
The negative mode (knob in the minimum position) keeps the range
from the default pitch to the lowest pitch. Every mode works correctly
with set the Wide Range option too.
|
|
This commit adds the Semitones option for the Pitch shift effect.
This option switches the pitch scale into the semitones mode
in a musical approach known. So, turning the Pitch knob is moved
along the chromatic scale.
|
|
This commit adds the Wide Range option for the Pitch shift effect.
This option doubles the scale of the pitch knob, which means,
that with the toggle on, the knob range is not in -1 octave
and +1 octave, but in doubled range, so in range -2 octaves
and +2 octaves. Based on the changes, the knob now works
for both situations in the exponential scale of the power of 2.
|
|
EngineEffectsDelay: effects chain delay handling
|
|
This commit removes the Pitch shift effect delay reporting based
it needed a deeper investigation and will be implemented
in the separated PR (branch).
|
|
|
|
|
|
|
|
The commit moves the PitchShiftEffect::getGroupDelayFrames
from the cpp file into the header file. The method is moved
into the header for the reason that it is a basic getter.
|
|
This commit fixes the documentation
of the EffectProcessor::getGroupDelayFrames. The changes are,
that the documentation describes dry and wet signals instead of working
with audio buffers.
|
|
The commit changes the type of a value which represents
propagated delay. This commit changes the code to use frames
for propagating delay instead of samples. The reason, why propagating
frames is better than samples is that it doesn't depend on the number
of channels. However, the inner EngineEffectsDelay structure uses
samples for calculations still, so the number of samples is recalculated
by propagated number of frames and a current number of channels.
To clean up the workflow, the input buffer isn't used as the output
buffer too and the temporary buffer replaces it. The size of the delay
buffer is known in the compile time.
|
|
C++20
|
|
This commit solves the delay issue for the effects chain. The solution
is useful for the dry/wet or dry+wet mode. If the effects chain
has a specific delay based on the effects processing latency,
the dry signal is delayed to ensure dry and wet signals overlap.
To delay the dry signal, the sum of all chain effects group delay
is calculated.
|
|
|
|
PitchShiftEffect: add independent effect
|
|
Clean up some DEBUG_ASSERTS
|
|
|
|
|
|
The commit removes duplicated RubberBandStretcher::reset() call
from the PitchShiftGroupState destructor. The functionality
of the reset method is done by RubberBandStretcher on its own.
|
|
This commit changes m_pRubberBand stereo buffer size to the count
of the frames per buffer for current engine parameters.
|
|
This commit fixes destructor exception specification error
and refactors code. The code changes are based on the discussion
for the previous PitchShiftEffect commit. Major changes in this commit
are: fix destructor explicit exception specification error, complex
methods movement from the header file into the .cpp file
for PitchShiftGroupState class, use lambda expression for the pitch
value assignment, remove unnecessary casts, add the QStringLiteral
to the getId method and the PitchShiftEffect the class was set
as final.
|