morphing sounds
hello list,
is convolution the only way to morph two soundfiles in max?
thanks j
A few thoughts.
Morphing may be realized in different ways.
- a crossfade realized by a good sound engineer may sound better than any
fancily processed sound.
- a cross-synthesis with evolving parameters is a way.
- a spectral interpolation between sounds, with evolving parameters may
provide a good morphing quality.
- use a vst~ plugin for morphing and load it in Max vst~ (no, there is no
au~ object) - something like prosonic morph.
- something like:
-analyze (Ah, this good old Fourier) sound A and sound B: separate into
noisy part and sinusoidal partials
-interpolate the noisy part one way (maybe crossfade in time domain)
-interpolate partials in a better way (first simply, or taking into
account that 2 close partials in a sound may interpolate into just one
partial of the other sound...)
-I hope this version sounds good!
- improve by using other transforms than Fourier (wavelets...)
Actually, all of that and more is possible in Max (for the last 2 versions,
you may have to use java in max msp, that's kind of cheating).
By the way, how is convolution a way to morph two sound files?
> hello list,
>
> is convolution the only way to morph two soundfiles in max?
>
> thanks j
There is also a series of algorithms called 'mutation' that in specific configurations morph between two sounds.
Larry Polansky has written a good deal about this, most of it on dead trees. There is, however, a very complete introduction to the techniques in the SoundHack manual.
There are implementations of time-domain and spectral-domain mutation for Max/MSP in the Litter Power Package.
These are powerful tools, but probably more valuable for those who have an understanding of spectral processing.
Quote: stefantiedje wrote on Sat, 24 January 2009 14:13
----------------------------------------------------
> Java ... has
> the big advantage, that Java is cross platform as opposed to an external
> written in C, well worth the 10% penalty in efficiency...
----------------------------------------------------
Actually, C is pretty cross-platform, too. The difference to Java is you have to hit the 'compile' button twice with a C project. In the worst case with two different IDEs. But C code for plain-vanilla externals will cross-compile easily.
But, no, there's nothing 'cheating' about using Java either. It's main advantages, in my view, are that it has an arguably cleaner API to Max and a more convenient library for TCP/IP-based stuff.
And the efficiency issue is very much a YMMV thing.
You can take a look at FFTease by Eric Lyon and Christopher Penrose. There's a lot of weird morphing tools in there.
www.sarc.qub.ac.uk/~elyon/LyonSoftware/MaxMSP/FFTease
You can take a look at SoundHack for non-realtime tasks.
www.soundhack.com/freeware.php
Have fun.
On 26 Jan 2009, at 13:40, Peter Castine wrote:
> Actually, C is pretty cross-platform, too. The difference to Java is
> you have to hit the 'compile' button twice with a C project.
You also have to have a computer for each platform, and an IDE. I've
written Mac externals but have no way to generate Windows equivalents.
In Java, assuming I use the API properly, I don't have to worry.
-- N.
Nick Rothwell / Cassiel.com Limited
www.cassiel.com
www.myspace.com/cassieldotcom
www.last.fm/music/cassiel
www.reverbnation.com/cassiel
www.linkedin.com/in/cassiel
www.loadbang.net
Quote: nick rothwell / cassiel wrote on Mon, 26 January 2009 15:12
> > Actually, C is pretty cross-platform, too. The difference to Java is
> > you have to hit the 'compile' button twice with a C project.
>
> You also have to have a computer for each platform, and an IDE. I've
> written Mac externals but have no way to generate Windows equivalents.
> In Java, assuming I use the API properly, I don't have to worry.
>
Well... for the most part that is true but Java has its share of cross platform problems, particularly when interacting with the file system (mostly because Windows paths don't behave like any other OS out there). I had some weird issues in my mxj objects that I was not able to debug from a Mac. Ended up wasting a Max demo on my day job machine to fix Windows support. Of course, C would be no better in this respect.
Quote: nick rothwell / cassiel wrote on Tue, 27 January 2009 00:12
----------------------------------------------------
> You also have to have a computer for each platform,
Or one computer with Boot Camp.-
> and an IDE.
In the good old days I built all my cross-platform externals with a single IDE. CodeWarrior did very nicely until Apple stuck a knife in Metrowerk's back. (Admittedly, in those 'good old days' I _did_ need two computers… one point to you, Nick.)
If I've understood correctly, you might be able to set up Eclipse as a cross-platform Max-externals-in-C IDE. Haven't tried it though.
I still target Windows externals building on Mac. CW8 does the job more than adequately, reading from the same local source code tree as XCode for Mac OS externals. This setup won't last forever, but I doubt that anything more convenient is going to come around in the foreseeable.
The setup works for me.
On 28 Jan 2009, at 11:40, Peter Castine wrote:
>> You also have to have a computer for each platform,
>
> Or one computer with Boot Camp.-
I have that, but I don't have a copy of Windows. I suspect these days
that Windows OEM installs are so customised that the CD that comes
with one brand of machine - assuming it comes with a CD at all - is
of no use on any other, so "borrowing" one wouldn't help.
-- N.
nick rothwell -- composition, systems, performance -- http://
www.cassiel.com
On 26 Jan 2009, at 23:41, Adam Murray wrote:
> Well... for the most part that is true but Java has its share of
> cross platform problems, particularly when interacting with the
> file system (mostly because Windows paths don't behave like any
> other OS out there).
Really there's just the Unix way (everything starts with "/") and the
Windows way ("everything starts with C:, or maybe that's "E:", or
do you have a network drive, and can I say "\machine"?). But really,
my only problems with filename handling in Java have been in trying
to get my head around the whole Max conformpath business, which also
believes in a universe resembling Mac OS 9.
-- N.
nick rothwell -- composition, systems, performance -- http://
www.cassiel.com
Is partial interpolation an additive morphing method such the one mentioned here http://www.cerlsoundgroup.org/Kelly/soundmorphing.html ?