Hey,
Anyone have an autotune patch or know how to do autotune in puredata?
If not, is there any Linux software I can use to autotune?
thanks
Autotune
Hey,
Anyone have an autotune patch or know how to do autotune in puredata?
If not, is there any Linux software I can use to autotune?
thanks
if I remember correctly, autotune shifts only the formants/harmonics and not the fundamental, so you'd need some complex FFT going on in the correction algorithm, the detection can be handled simply by taking the cooked output of [fiddle~] into a [+ 0.5] into an [int] (round up anything above .5, and chop off any decimal point value) since the cooked output outputs midi note value, this is handy, because only integers make up semi-tone intervals, then whack in a [mtof] and you have pitch corrected frequency values for your out of tune input.
the frequency value could operate some kind of transposition engine, but you'd have to do the maths that would subtract incoming frenquency from tuned frequency and apply that difference to the transposition algorithm (not difficult) but I doubt it will sound nice
Dual 1.8 IBM G5: Mac OSX 10.4.11 -- Asus eeePC 701: Pure:Dyne / eeeXubuntu GNU/Linux -- myspace.com/thearifd
Arif, I think it's the other way around. I believe the formants are retained but the frequencies are shifted. The problem with normal pitch shifters are that the formants go right along with the pitch, so they quickly sound unnatural. Assuming chipmunks aren't natural.
too right, brother! I was preoccupied when writing that
Dual 1.8 IBM G5: Mac OSX 10.4.11 -- Asus eeePC 701: Pure:Dyne / eeeXubuntu GNU/Linux -- myspace.com/thearifd
How would I begin to program such a thing?
i think the phase vocoder patch in pd's help files might be a good start? it's not too hard to change that to run realtime.
anyway if the question remains, on linux the LADSPA plugin "autotalent" works fairly well. I think another one does exist (younger), but I can't remember the name right now.
See the website (http://web.mit.edu/tbaran/www/autotalent.html) for a basic implementation scheme.
Here's something I made a while back, I didn't get far beyond sketching out the idea, maybe it'll be of some sort of use.
On pd-list, m.e.grimm linked to this external [autotuned~]:
http://deterritorialized.com/code/puredata/externals/autotuned~_v0.1.zip
[autotuned~] is a Pd port (by maxus germanus) of the autotalent LADSPA plugin written by Thomas Baran.
I've tried [autotuned~] with all sorts of test tones and voice. Latency is fixed (at 2048 samples with SR 44K1). The output does show artifacts, in the form of alias-like frequencies and slow amplitude- and phase-modulation. The artifacts differ from phase vocoder and naive time domain pitch shifters. The sound is not as clean as from [soundtouch~]. However, in contrast with [soundtouch~], [autotune~] can freely modulate pitch factor without producing crackling noises.
[autotuned~]'s C code shines a good light on the topic of pitch shifting and it's inherent problems. Pitch detection is done by windowed / unwindowed autocorrelation. Pitch is registered (and implemented) as a function of analyzed period length in integer number of samples. Of course, this is not very accurate, but on the other hand it wouldn't be possible to cut & paste signal segments with fractional period lengths anyway.
[soundtouch~] (my Pd port of Olli Parviainen's SoundTouch library) works different. It does not try to find pitch, but finds the ideal stitch point by correlation of signal tails intended for overlap. The best match is always selected, making the cut smaller or bigger, depending on the actual phase of the signal. When the user sets conditions correctly, according to (monophonic periodic) input material, no audible artifacts are produced.
I am now thinking that 'pitch detection' could better be interpreted as 'pitch indication'. A provisional period length indicator which could be used to guide a fine-tuned correlation process as is used in [soundtouch~]. It may then be possible to 'look ahead' for good stitching regions, and decrease latency time. Or is this a naive idea?
Katja
the link seems to be down, anychance of another Katja?
thanks,
Aaron
And where can [soundtouch~] be found? Thanks!
[soundtouch~] is not an autotune class by the way, only a pitch shifter. Anyway it's here:
http://www.katjaas.nl/pitchshift/soundtouch~.html
About [autotuned~], I don't know of any other link. I still have the the stuff on my computer, shall I post it here?
Katja
As long as it doesn't contradict the license, I say go ahead. Or maybe contact maxus germanus first if you don't have the license info.
[autotuned~] is GPL licensed. I'll attach it here, but when his site is up again I'll remove it.
Hi, I am about to get into Pd and I would like to start experimenting with these auto tune patches. However, the only one that I can get going is soundtouch~-help.pd.
I am sure I need to create an adc object and connect it to the right inlet. But I can not figure it out for autotuned~-help.pd and autotune%28vocoder%29.pd.
Very thankful for help!
[autotuned~] will only work if the binary executable for your platform is present in the same folder. It was compiled for OSX and that build is called autotuned~.pd_darwin. If you are on a different OS you have to compile for that platform. If Pd can not find the correct executable, the object is shown with red dashes on the patch as an indication of the error.
Katja
Thanks. I hope I get this quick to not clutter the threat.
I'm on OS X.
I put the autotuned~.pd_darwin in the src folder and click autotuned~-help.pd (the only file that Pd recognize) and double click. Object misc/playsound is red.
I set a new path in Pd to point to this folder. It does not show up in the browser.
I put the src file (with autotuned~.pd_darwin) inside Pd application /Content/Resources/extra. It shoes up in the Pd browser but the red box appears.
To test [autotuned~] you do not need [misc/playsound] (if it exists at all), so better delete it and concentrate on [adc~], or else do something with [readsf~] or [soundfiler].
If you put autotuned~.pd_darwin in Content/Resources/extra/, you should omit the containing folder with source file etc., or else set a path to this folder. Your problems are about search paths, check this page:
http://en.flossmanuals.net/pure-data/ch011_advanced-configuration/
Katja
Still on to this...
Is it possible to get fair results with [autotuned~]?
I am not able to control it further than pitch shift. When clicking the message boxes containing the different scales I can still play chromatic lines. I made a few test messages with just 12 0's'or 1's which I'd figure would make a drone note, but the result sound pretty random. It seems that it always try to repitch notes B and C, no matter what scale you have selected. I can not figure out how you set the root of the scale.
If it is just me that doing the wrongs and the patch actually is working, can someone please tell me how to use it?
lead's autotune(vocoder).pd I can not get to work "error: signal outlet connect to nonsignal inlet (ignored)" and it is too complex for me to work out, the in_ADC/out_MIDI window.
I found a few other patches that I can try to stitch together if I can not find a complete working patch. They are and audio to midi patch, and a midi to audio patch.
I'd like to ask for an opinion on a good solution for what I am trying to do, to make sure I am looking for the right solution in the right place:
I want to be able to decide what pitches are affected or bypassed, and all affected notes should be possible to be transposed by the same amount. Normal.
As for tone, realism is not important but it should not sound "destroyed" by default (ugly artifacts), and I actually want to have the wobbling between notes when the algoritm can not decide where to go.
So formant "truly correct" is not essential, solid basic functionality is more important.
Is there a better solution for this somewhere?
Thanks a lot!
N.
@nlundberg said:
lead's autotune(vocoder).pd I can not get to work "error: signal outlet connect to nonsignal inlet (ignored)" and it is too complex for me to work out, the in_ADC/out_MIDI window.
Try this one, noticed I'd left the test file chunk connected instead of the adc inside the sub-patch you mention (to avoid feedback).
I used the TimbreID library to make a noise filter, but if you don't have it, it shouldn't stop the bits you want working.
Let me know how you get on.
I did a quick try of autotune(vocoder)2.pd .. looks good. And input seem to work. However i didnt get any output.. did i miss something? I'm still a ambitious newbie to pure data.. Anyone got a good tip for a complete patch of an auto tuner? I will perhaps make an ios / android music app.. so this would be awesome to look closer at
Oops! Looks like something went wrong!