Mac OS 9 Lives

Classic Mac OS Hardware => DAW - Sampler Hardware => Topic started by: WhiteWarlock on June 15, 2018, 02:34:20 PM

Title: Sample Morphing
Post by: WhiteWarlock on June 15, 2018, 02:34:20 PM
found this digging around doing some R&D:
Quote
The best tool for morphing one sound into another that I've used are the mac-only standalone soundhack FFT tools from the 90's and not much else I've heard comes close, IMO
Any clue what they are talking about and/or if it's somewhere in the "Archives"?
sort of recall "SoundHack" yet not sure what exactly he is referencing
current working on project called "ZenoMorphicResonator"
that does "morphing" between single cycle waves
created core engine using Ensoniq "tranwaves method" using SCI Prophet VS waves
looking for some way of "morphing" samples that can be utilized as custom sound library
not sure where this topic fits on forum
have sneaky suspicion some of you here may have some helpful insights on such topics
(http://www.n01ze.com/synthwizards/ARKIVE/XenoMorphResonator.png)
SynthWizards/N01ZE ZMR"ZenoMorphicResonator"
 
Title: Re: Sample Morphing
Post by: IIO on June 15, 2018, 03:28:14 PM
to morph from one sound into another using soundhack you first apply fade in on A and a fade out on B, then you can linearily morph the two files in different ways.

same procedure can be used for similar effects with marcohack, lemur, spear, deconvolution processors and SDIF apps.
they all offer a form of analysis which splits the file into two parts, lets you merge them again, but dont have a "built-in" control input for the mix envelope. (tau remains unbeaten, but i am not sure if the OS9 client for the capy already had it?)

for certain materials prosonic morph is a nice all in one solution, but i am not big fan. (well, i am fan somehow, but i am not a big user of it.)

when i am talking bout "fade in and fade out" in the first line, you may as well read "any envelope and its inversion".

p.s. most important point is, that you have to decide yourself from which input you want to keep the transients (or if at all) and stuff like that. nd if you create a custom DSP, dont forget the latency compensation when searching for the transients.
Title: Re: Sample Morphing
Post by: WhiteWarlock on June 15, 2018, 03:40:30 PM
investigating method in "Audio-Term" for doing spectral morphing between 2 samples with "Formant" & "Envelopes"
that may be best for me making up some more experimental sounds
need making another 32+ samples for filling basic bank
UGH....
all of this because old friend got Synthesis Technology E370 module
was attempting helping him with "wavetables"
started digging through manuals
thus attempting creating some "morphing" system
my only other real experience with it is "Transwaves"
if that's even actually considered "morphing"
thanks for responding
Title: Re: Sample Morphing
Post by: IIO on June 16, 2018, 12:07:40 AM
whats the maximum number of partials in that audioterm app?

transwaves is nice way of implementation, because it allows bidirectional modulation "envelopes" in realtime, but you still have to generate the content first.
Title: Re: Sample Morphing
Post by: WhiteWarlock on June 16, 2018, 04:45:00 PM
made 64 "morphed" samples using "interpolation" for getting 2 banks of 32
used same method before making up Ensoniq " Transwaves"
one bank is "interpolated" SCI PRO VS single cycles A to B=X
second bank is "morphed" samples A to B=X
(SQ1 Wavestation & Roland partials)
both with envelopes and fomants
then using the "fake X Morph" method between both sample banks
~shrug~
searching way for getting XYZ morphing
like the Piston Honda & E370
seems like they are just using OSC wavetables
then X fade between via CV
experimenting
Reactor supposedly does "morphing"
need taking time for reviewing how they do it
have it "morphing" yet sounds like an "Alien" screaming sometimes:P

Does this info help?:

Quote
KTERM<> is an additive synth: 33 slots with 64 bipolar sine partials each. It's an emulation of the Terratec Komplexer wavetable osc, all other formats are derived from that model.

I chose this model because it has the right ratio of data amount and quality. Further many products beside Komplexer can use the results (converting wavetables which make full use of proprietary features of a certain product is much more difficult than converting normal audio data for different samplers).

AT has an automated file recognition and sorting system. It can distinguish a Komplexer *.WT file from a Dune2 *.WT file or from a Surge *.WT file... . Different file types are stored in different directories to keep track of which *.WT file belongs to a certain synth. Damaged and/or unknown formats are moved to a special 'recycle bin' folder (button RECBIN<> in the start page, here you get also information about the error).

Further the sound data folders can be individually moved to an abritrary location (because some synths require their files stored to a developer-defined location). This moving can be done using UTILITY<> and then selcting the PATHS<> page.

Regarding the proprietary wavetable formats (Surge, WaveGenerator, Dune2, EPS/ASR, Blofeld): AT can only load it's own files. This is a required limitation, because the formats are VERY different (in data type, size, content, number of slots). All of these formats hold special synthesis data for reloading and instant playback in the browser pages. In some cases this additional dataset is encoded in the wavetable data itself (Blofeld, Komplexer). In other cases it's appended. Editing these files outside Audio-Term will destroy these data, so don't try that if you want to reload them later in AT.

Regarding the GUI: The lower button row holds the main pages and the playback buttons. The upper row holds the functions of a page and further sub pages / input options ( in that case the button name has an <> appendix)

The KTERM main pages:

SYSTEM<>

Here you can access the playback volume and playback speed of a wavetable. you also can empty all loaded data in RAM using FLUSH.

DISK<>

Depending on the file type you have different options. For all files you can switch the pages, search for a file name (FIND<>), rename and delete a file. You further can switch between the directories of the different file types using F_TYPE<> and call the windows explorer to get direct and full access to the current directory.

Further options depend on the file type. Wavetable files can be loaded directly, samples have to be analysed first. Single cycle waves are loaded from the assembling page ASSEM<> (see below).

VIEW<>

Here you can have a look on the ram data in different modes (waveform and spectral data). Some eye candy...

SLICE<>

This is the slice editor. You have access to the 64 bipolar partials (log scaling). WDRAW<> is a sub menu to draw the content as wave. The drawing then is analyzed and resynthesized. TOOLS<> hold some makro options for the partials (like normalizing or inverting). You should try the buttons and see what happens - the app won't get broken. ;) If you don't like the result you see/hear, press UNDO - it keeps track of the last 512 changes of the partial data.

ASSEM<>

Here the single cycles and wavetables in the different directories are used as 'library' to assemble new wavetables. Select source and destination slice with the SRC and DST buttons and transfer the data with SRC>DST.

ENV<>

On this page you also have access to the partials (bipolar, log scale), this time not 64 of a slice but a single partial over 33 slices of a wavetable. This is the envelope of a partial. The selected one has a fat line, all others are represented by thin lines. Very similar to the harmonic envelopes of the Fairlight CMI. On complex sounds this can look annoying. In this circumstance you can use VIEW to focus on the selcted envelope.

TEF<>

This is a special page which holds a lot of sub functions regarding

- polarity of the partials (PLOAR<>),

- amplitude scaling (SCALE<>),

- slice reordering (ORDER<>),

- a filter (FILTER<> - basically an additional "filter" slice with 64 partials, an envelope for shifting and access to the 'library' on disk to import spectral data)

- a formant shifter (SHIFT<>),

- a generator for filling the table with symmetry-modulated waves (SYMOD<>),

- and the interpolation function (IPOL<>).

The latter is very flexible - the goal is alwas to create a fully filled table from waves on arbitrary positions - even from a single wave. There are two interpolation algorithms: IPOL simply fills empty slices. STRETCH+IPOL fills the table by scaling the time base, which can be important especially for analyzed samples.

Two further additions:

OPTIMIZE button:

KTERM has an internal resolution of +-127 steps, but the dynamic of a 64 partial additive engine is much larger. Too large to use it without artificial limiting, a saw would be 50 times the amplitude if a single sine. OPTIMIZE adapts the partials to the limited waveform amplitude. In most cases this can be done automatically, but sometimes manual correction is required to get the best results out of the limted dynamic range.

POL_LOCK button:

KTERM uses bipolar sine waves, which improves the quality especially on sample resynthesis (otherwise everything would have a 'sawtooth touch'). POL_LOCK tracks each of the 64 envelopes and corrects polarity jumps. In most cases this is usefull as it makes the spectral evolution over time more stable, but it changes the sound slightly. So whenever this button appears, you should try if it sounds better with or without POL_LOCK.

Okay, this short explanation isn't a manual by far, but it explains some of my thoughts when I coded Audio-Term. I hope it was understandable a bit - I'm not a native speaker and also no sound engineer.

Mathias Gurk



Title: Re: Sample Morphing
Post by: IIO on June 17, 2018, 02:26:55 AM
no idea what the piston does, but using 3 sources instead of 2 usually only requires to add some weighting to the process. (such as * 0.66,  in best case)

you said your trget is fixed (your friends hardware module?) so i´d suggest not to try to recreate something else, but create content specifically for this application.

if you feed PPG wave content to a korg wavestation ROM or the other way round, it will no longer sound the same anyway :D so you can as well create samples on your own, avoid depth and length conversion and choose a generation method which fits to the synthesis engine.

actually i would do something like this only in enviroments such as MSP or kyma, using aanalog synths or complex filters or factory ccontent of  third party and stuff like that is useless for most applications.

and btw, morphing cyclic waveforms is in my opinion another field than morphing arbitrary audio material (drumloop/thunderstorm/glass bells). since overall it is easier (dont need to care about transients...) you can concentrate more on the details (oversampling, distribution (across the wavetable), bandlimiting...)
Title: Re: Sample Morphing
Post by: IIO on June 17, 2018, 02:33:31 AM
ah, the piston is 3d.
Title: Re: Sample Morphing
Post by: IIO on June 17, 2018, 03:13:03 AM

haha, but it is impossible to tell what that does.

https://www.kickstarter.com/projects/697230891/e370-quad-morphing-vco?ref=user_menu

Title: Re: Sample Morphing
Post by: WhiteWarlock on June 17, 2018, 02:37:04 PM
not attempting replication Piston Honda or E370...
was merely researching those manuals
took so long yet have wave "index" modulating partials
sort of suspect piston and e370 are using wavetable DCO chips
(sort of like like for instance Electric Druids's VCDO)
https://electricdruid.net/product/vcdo-wavetable-oscillator/ (https://electricdruid.net/product/vcdo-wavetable-oscillator/)
then merely doing VCA X Mix Between chips
his DCVO was originally "Open Source" at one time for modifying/burning code on chips
could be completely wrong
yet merely saying some methods that popped in my head for prototyping hardware module
yet that is wavetable of 16 & 8 subs @ 8bit
prototyping in software so actually have good grasp of wave morphing
Bjorked up recently batches of waves in AudioTerm
because forgot step of re-synthesis with root pitch
anyways guess need going back for doing that
actually have been using PPG waves for source mutating
didn't realize what they were anymore because not marked accordingly
anyways
the morphing engine is working in transwave style/index modulation & X mix between wave banks plus modulating sample banks
Title: Re: Sample Morphing
Post by: IIO on June 18, 2018, 02:20:18 AM
Quote
because forgot step of re-synthesis with root pitch

that is what always made me wonder about the rudimentary "resynthesis" in PPG 2.2 / PPG 2.3 /Wave/ Microwave ... the longer the waves in the wavetables are, the better the quality, but the more shitty the possibility to shift the modulation (from wave 1 to wave 64) as needed when playing notes other than middle C. :)


Title: Re: Sample Morphing
Post by: Syn-Fi on June 20, 2018, 08:24:41 AM
Cool thing about the PPG/Waldorf wavetable synthesis is that interpolates between point A to B.  So its not strictly Wavetable synthesis where there is a 'look-up' table specifying waveforms through period x to period y or static for that matter cf. Ensoniq ESQ-1/SQ 80.

The PPG has much smoother changes, it sounds more organic, tapey than digital and spiky.

Also the PPG 2 and 2.3 had DACS free running at really hi-frequencies...eg. waveforms were not downsampled to a fixed 44.1khz

More details on https://en.wikipedia.org/wiki/Wavetable_synthesis

note the paper : http://www.aes.org/e-lib/browse.cfm?elib=2920

I have a Waveterm and there is a program where you can draw a basic Waveform and then let the Waveterm compute the rest of the table - 64 frames.   I should try using it....

Title: Re: Sample Morphing
Post by: IIO on June 20, 2018, 08:54:56 AM
back in the days i could never figure out if the wave/microwave is interpolating in realtime or if it is simply flilling the emtpy waves in between. i think it does the latter?
Title: Re: Sample Morphing
Post by: WhiteWarlock on June 20, 2018, 04:08:30 PM
figured out why wasn't getting smooth wavetable "scan" modulation
made some banks from PPG & Prophet VS waves/samples/single cycle
spent days doing research on "Wolfgang"/PPG
read the Waveterm manuals
rebuilt my wavetable engine pretty much from scratch
all that work for learning exactly why & how of wavetables
when could have just made some trax with my "Virus"
hmmm
still sort of clumsy in Audio-Term thus doing "repetition" experimenting making wavetables/morphs
either way it's a trillion times better than "Tranzillion" for Ensoniq
Title: Re: Sample Morphing
Post by: IIO on June 22, 2018, 07:12:53 AM
damn now i deleted my own post. :(

you could avoid interpolation when you limit yourself to one liner, full scle modultion input.

i.e. you take the incomming modulation signal and truncate it down to a list of integers, which re the point between filled waves in the wavetable.

in the original PPGs you will find presets where the modwheel goes through all 128 waves. position 15,337 will never be asked for.

if you need an example for max i am happy to help :)
Title: Re: Sample Morphing
Post by: systemseven on June 23, 2018, 03:16:24 PM
current working on project called "ZenoMorphicResonator"

i like the aliens interface, looks fun!  what platform is this going to end up on?
Title: Re: Sample Morphing
Post by: WhiteWarlock on June 23, 2018, 09:34:23 PM
here are some custom "morphing" wavetable samples you can experiment with if so inclined
ZMR engine banks
containing 32 samples each from Audio-Term using Prophet VS/PPG data
http://www.n01ze.com/synthwizards/ARKIVE/MORFwav.rar
http://www.n01ze.com/synthwizards/ARKIVE/ZMRwav.rar
Title: Re: Sample Morphing
Post by: orgo98 on October 22, 2020, 11:13:43 AM
here are some custom "morphing" wavetable samples you can experiment with if so inclined
ZMR engine banks
containing 32 samples each from Audio-Term using Prophet VS/PPG data
http://www.n01ze.com/synthwizards/ARKIVE/MORFwav.rar
http://www.n01ze.com/synthwizards/ARKIVE/ZMRwav.rar

very interesting! could you please tell many samples long the single cycles in these files are? I will try loading them into my ensoniq sampler. :)