File Exchange

image thumbnail

AutoTune Toy

version 1.2 (1.49 MB) by

Allows you to record and graphically manipulate and pitch correct your voice.



View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

The AutoTune Toy was written to demonstrate pitch correction using Matlab. To be exact, I was watching Nova one night on PBS and there was a segment on Antares AutoTune software. I thought “I can do that in Matlab!” so this is my attempt at just that. This tool allows you to record short segments of your voice and interactively correct the pitch. Given that the tool uses memory to store the audio data, it is only practical to record short (20 second or less) audio fragments, but it is still a lot of fun to play around with!

Comments and Ratings (14)

Is anyone able to help me fix this playback problem?

"Undefined function or variable 'wavplay'.

Error in AutoTuneToy>play_button_Callback (line 672)

Error in gui_mainfcn (line 95)

Error in AutoTuneToy (line 42)
    gui_mainfcn(gui_State, varargin{:});
Error while evaluating UIControl Callback"

Jayden Cho

How do I use this


I like this toy!!!


John Blommers

This app is not cross-platform yet. On my Macintosh the following message emits after recording and then pressing the Play button:

Elapsed time is 2.332205 seconds.
Error using wavplay (line 37)
WAVPLAY is only for use with Windows machines.

Error in AutoTuneToy>play_button_Callback (line 672)

Error in gui_mainfcn (line 96)

Error in AutoTuneToy (line 42)
    gui_mainfcn(gui_State, varargin{:});
Error while evaluating uicontrol Callback

According to the documentation

Note: wavplay will be removed in a future release. Use audioplayer instead.


Shahab (view profile)



Carl (view profile)

Hi all, thanks for the comments/suggestions! I've submitted a new version of the file which should fix the issues... Glad everyone likes it!!

Jiro Doke

Jiro Doke (view profile)

You can change your call to "wavplay" from



p = audioplayer(A, handles.sound.Fs);

Jiro Doke

Jiro Doke (view profile)

Great App. A couple of suggestions:

1. To Seth's point, since the App install location (where the README.pdf exists) may not necessarily be where you currently are, I suggest changing the call to open the PDF from



   open(fullfile(fileparts(which(mfilename)), 'README.pdf'));

Notice the use of "open" instead of "winopen". "open" will work on non-Windows as well.

2. Use "audioplayer" instead of "wavplay". This makes it cross-platform.

This is awesome, and so easy to use. There is an error with the App install where the PDF is not found when you click on the help menu.

Seth DeLand

Seth DeLand (view profile)


Duc (view profile)

How long did you do it? Thank you !


Bryan (view profile)

This is very nicely done. Have you thought about making a version that can import and work on a wav (and save the result as a new wav) rather than requiring an active recording?


Jason (view profile)

Simple to use and excellent programming. Looking forward to possible a T-Pain sub routine.



Changed "wavplay" to "audioplayer" command for cross-platform functionality.

Changed "winopen" to "open" command to ensure README.PDF could be found on all installs

Remove erroneous tic/toc.


Updated to include an App file for R2012b

MATLAB Release
MATLAB 8.0 (R2012b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video