Bleuzen / FFaudioConverter

Graphical audio convert and filter tool
GNU General Public License v3.0
87 stars 6 forks source link

Change pitch filter #5

Open ohcdh opened 4 years ago

ohcdh commented 4 years ago

Would it be possible to add a change pitch filter, allow the user to specify the percentage change or from x hz to y hz?

Bleuzen commented 4 years ago

Hi, well, ffmpeg has no really good option built in for this. But you could try something like this:

Option 1

grafik

aresample=48000
asetrate=48000*2
aresample=48000
atempo=0.5

This will double the tone frequency by keeping the original length of the track.

Off course you can change these numbers around. Another example would be to cut the frequency in half:

aresample=48000
asetrate=48000*0.5
aresample=48000
atempo=2.0

The lines explained:

1)

aresample=48000

Resample the audio to a fixed rate (because we do not know the sample rate of the input files and want to process all files the same).

2)

asetrate=48000*0.5

Tune the audio down to 50 %. Change this (0.5) as you want, but keep in mind to change the value in line 4 indirectly proportional to this.

3)

aresample=48000

Resample back up to the original samplerate.

4)

atempo=2.0

Double the tempo to keep the original duration of the track and not make it slower. You have to change this too if you changed the value in line 2.

Option 2

Use rubberband (if you have it installed on your system). See: https://ffmpeg.org/ffmpeg-filters.html#rubberband

Btw. you can use any audio filter that ffmpeg supports. Have a look at the list here: https://ffmpeg.org/ffmpeg-filters.html