2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 10:08:05 +02:00
<class name= "AudioEffectPitchShift" inherits= "AudioEffect" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 22:42:36 +02:00
<brief_description >
2022-06-20 01:11:11 +02:00
Adds a pitch-shifting audio effect to an audio bus.
2017-09-16 18:47:19 +02:00
Raises or lowers the pitch of original sound.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2017-09-16 18:47:19 +02:00
Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2022-06-20 01:11:11 +02:00
<link title= "Audio buses" > $DOCS_URL/tutorials/audio/audio_buses.html</link>
2017-09-12 22:42:36 +02:00
</tutorials>
<members >
2021-05-13 02:42:49 +02:00
<member name= "fft_size" type= "int" setter= "set_fft_size" getter= "get_fft_size" enum= "AudioEffectPitchShift.FFTSize" default= "3" >
2021-05-13 02:02:37 +02:00
The size of the [url=https://en.wikipedia.org/wiki/Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values smooth out the effect over time, but have greater latency. The effects of this higher latency are especially noticeable on sounds that have sudden amplitude changes.
2019-06-24 10:39:59 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "oversampling" type= "int" setter= "set_oversampling" getter= "get_oversampling" default= "4" >
2021-05-13 02:02:37 +02:00
The oversampling factor to use. Higher values result in better quality, but are more demanding on the CPU and may cause audio cracking if the CPU can't keep up.
2019-06-24 10:39:59 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "pitch_scale" type= "float" setter= "set_pitch_scale" getter= "get_pitch_scale" default= "1.0" >
2021-05-13 02:02:37 +02:00
The pitch scale to use. [code]1.0[/code] is the default pitch and plays sounds unaltered. [member pitch_scale] can range from [code]0.0[/code] (infinitely low pitch, inaudible) to [code]16[/code] (16 times higher than the initial pitch).
2017-09-12 22:42:36 +02:00
</member>
</members>
<constants >
2021-05-13 02:42:49 +02:00
<constant name= "FFT_SIZE_256" value= "0" enum= "FFTSize" >
2021-05-13 02:02:37 +02:00
Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.
2019-06-24 10:39:59 +02:00
</constant>
2021-05-13 02:42:49 +02:00
<constant name= "FFT_SIZE_512" value= "1" enum= "FFTSize" >
2021-05-13 02:02:37 +02:00
Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.
2019-06-24 10:39:59 +02:00
</constant>
2021-05-13 02:42:49 +02:00
<constant name= "FFT_SIZE_1024" value= "2" enum= "FFTSize" >
2021-05-13 02:02:37 +02:00
Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.
2019-06-24 10:39:59 +02:00
</constant>
2021-05-13 02:42:49 +02:00
<constant name= "FFT_SIZE_2048" value= "3" enum= "FFTSize" >
2021-05-13 02:02:37 +02:00
Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.
2019-06-24 10:39:59 +02:00
</constant>
2021-05-13 02:42:49 +02:00
<constant name= "FFT_SIZE_4096" value= "4" enum= "FFTSize" >
2021-05-13 02:02:37 +02:00
Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
2019-06-24 10:39:59 +02:00
</constant>
2021-05-13 02:42:49 +02:00
<constant name= "FFT_SIZE_MAX" value= "5" enum= "FFTSize" >
Represents the size of the [enum FFTSize] enum.
2019-06-24 10:39:59 +02:00
</constant>
2017-09-12 22:42:36 +02:00
</constants>
</class>