Page 1 of 1

Harmor

PostPosted: Tue Jan 23, 2018 9:34 am
by Spogg
I’ve been playing around with Image-Line’s Harmor. This thing is quite something.

https://www.image-line.com/plugins/Synths/Harmor/

It re-synthesises a wave file (not just one wave) using additive synthesis employing up to 516 partials each with a defined frequency, phase and amplitude and tracks the partials in very short frames (sounds like about 20-50 mS if you freeze it). When you play the keyboard the whole partial set is re-pitched polyphonically and sounds nearly perfect across most of the keyboard. It uses very little CPU too and sounds great.

This magic would need low level programming and was written in Delphi. In Flowstone the whole engine would have to be in ASM, if indeed it could be done.

Cheers

Spogg

Re: Harmor

PostPosted: Tue Jan 23, 2018 11:15 pm
by KG_is_back
You can't quite do it in flowstone though... Harmor's core is multi-treaded - each voice (or group of voices) is calculated in separate thread and joined in a single stream later. Flowstone's streams are strictly single-threaded. Only way to truly make new thread in flowstone is via "new thread" prim which is green.

In theory one could do multi-threaded stream processing if you trigger signal analyser in new thread and have ASM code run in infinite loop, reading and writing to a shared memory buffer, but that would still be half-ass solution since you can't pause a thread from ASM. Well, technically you can... there is "call reg;" instruction available, but good luck actually hacking in the correct memory address of the relevant system function. I don't think anyone here has the right mix of genius and crazy to pull that off.... MartinVicanek, Trog, MyCo... challenge accepted?!

Re: Harmor

PostPosted: Tue Jan 23, 2018 11:24 pm
by martinvicanek
I haven't really looked into that product, but Spogg's description it sounds to me like a phase vocoder. Why would lack of multithreading prevent one from building it in FS?

Re: Harmor

PostPosted: Wed Jan 24, 2018 12:11 am
by KG_is_back
martinvicanek wrote:I haven't really looked into that product, but Spogg's description it sounds to me like a phase vocoder. Why would lack of multithreading prevent one from building it in FS?


Yes, It's pretty much a phase-vocoder-and-subtractive-sythetizer-adopted-an-additive-synthesizer-baby-and-raised-it-bilingually.

As for the multithreading, I wasn't trying to say that you can't build something that would give identical results to Harmor. I was specifically referring to Harmor's implementation, because it intrigued me.

Re: Harmor

PostPosted: Wed Jan 24, 2018 10:30 am
by Spogg
I’ve been reading a lot about re-synthesis recently and a phase vocoder does seem to fit the bill, but Harmor is polyphonic and you can change the frame playback rate dynamically, and I can kinda hear the partials tracking between frames.
I put a spectrum analyser plugin on it and when frozen the peaks are static in frequency but move around the x-axis smoothly when playing back, even very slowly.

The CPU registered in Reaper is so low it would still be useful even if it increased fourfold or more, due to the single threading limitation. Dunno.

Beyond me anyway, but it is amazing what it achieves.

Cheers

Spogg