Wave Creation & Export App for UDO Synths - w/ Spectral Morphing Wave Consolidation

Hey all,

I have been working on finding better ways to create and import samples to my Gemini. The process involves manually importing a wave into audacity, trimming it at the correct places and exporting in the correct format. This is very tedious and error prone as if you do not trim at the right crossings you will get artifacts and a poorly reproduced sample. This led to the creation of the app!

This app accepts any wave files (up to 8) per sample, finds the most stable spots in the frequency to trim, runs algorithms on the resulting signal and exports into a 4096 sample wave ready to upload to your UDO synth. When loading more than 1 waveform to the program, you have the option of Spectral Morphing using FFT (Fast Fourier transform) or Weighted blending.

Here is a teaser:

Looking for testers, feedback, suggestions for extensions, etc.

18 Likes

This is great. Would love to test it.

1 Like

Hi there, I would also be very happy to test this. I’ve been trying to knock something up in pure data but haven’t gotten very far yet. Don’t know if this is implemented already but it might be nice to be able to preview the sound of the wave (just to get a rough idea of the tone, of course it will just be an approximation to how it will sound on the Gemini). I’m on Linux by the way.

1 Like

The challenge is getting these waves to sound good. There’s no reliable way to audition them before loading onto the synth. I have spent a lot of time this week powering the Super Gemini on and off. There has to be a better way.. Looping the samples isn’t reliable because the filter and vca sections of the synth adds a lot of color. Also it’s really unfortunate that the synth only accepts 4096 samples. That is not a lot of data before looping. More advanced wave synths can play a different wave per key and not loop it at all. I suspect that is how Nord has nailed acoustic pianos. Any thoughts/suggestions?

1 Like

This is amazing work thanks for sharing this with people. Very impressive and inspiring

1 Like

Thanks all for the interest. It gave me the boost I needed this morning!

Here is the latest release. It includes pcm auditioning and currently supports win32/64. It’s written in Python so I can port to other distros. If you have one in mind let me know and I will build it!

I will try to get macos and linux builds released in the next couple days. The code is portable, I just need to spin up a linux vm.

3 Likes

Oh wow, this could be exactly what I’ve been looking for. I’ve been sniffing at wavetable resynthesizers but using one tool for a slightly different job than it was intended rarely works out for me.

Cheers for sharing, Windows is a bit of an issue here so I’m glad to hear you’re working on a macOS build.

:+1:

1 Like

MacOS Client now available!

3 Likes

Summer’s looking up!

Excited man. Was not expecting the mac build so quick. Cheers (:

2 Likes

The link is broken, but I found it here:

Thanks for making this tool! I’m curious why the wave needs to be F3 - 24 cents. Any tips on making sure a wave is to the correct pitch? Also, I see a note about a future update automatically repitching the wave. That would be great and save a step! I put in my own waves from sheets of sound, but clearly the graph is incorrect due to my samples not being F3-24 cents. I posted the manual way to create waves with scw and audacity here:

1 Like

At 44.1kHz, a 172.2656 Hz wave fits exactly one cycle into a 256-sample window.
That’s why it’s a “magic” number for seamless looping and waveform alignment in digital audio.

Personally I record F3 and detune it by -24c in Ableton so it’s close.

I am working on the logic to change pitch now but but having any luck at it so far.

1 Like

I’m testing it now. Just recorded some Spitfire orchestral instruments 5 secs each @ 44.1 F3-24c

It definitely works for the single wave mode. The graph shows a nice waveform. The blending and FFT are telling me no clean 256-window was found. Should I try a longer sample? Like a 10 or 15 second long sample?

Yes, the longer the sample the better. It will scan for smooth zero crossings within a 256 sample size. Does it work with that option deselected?

1 Like

Yes, a couple of the samples worked with the FFT and blend. Trying longer samples now. Longer samples work for the other modes. One thing I noticed is that these waves are much higher pitch than the ones I created with audacity. Those are almost in LFO range, but sound great when loaded to the Super 8. These samples are much higher pitched. I’ll try loading them in and see how they compare.

Can you add an invert function to the output as well? As in the ability to render the 256 sample but polarity inverted. I use the wave morphing function as a poor man’s ring mod. It frees up the other oscillator.

Also, the waves it creates are 512 bytes. The stock waves and my others are 8kb. Should the sample 4096 long and not 256? That would explain the difference in file size

When i import a 4096 sample into the gemini it is pitched 4 octaves higher than the stock waveforms. Loading a 1kb 256 sample causes them to be at the same octave as the stock waveforms. Is that your result too?

Added waveform inversion, thanks for the suggestion there.
Repitch function seems to be working.

Going to do some more testing and will post the builds shortly.

1 Like

I noticed the fidelity is not as good with the 256 sample. My 4096 samples are the same octave as the new 256 samples. I just followed the instructions UDO posted. Check out my lengthy post in my link. Maybe some clues there. If you can find a way to get the 4096 sample size working, it seems like that will sound better. Reading my post, I’m seeing that I sampled at A1 or lower on the keyboard. The exact pitch didn’t matter for the manual way. Obviously, you need some uniformity for your FFT and blended functions, so not sure what to suggest. Can the whole process be done much lower in pitch to achieve a 4096 sample?

1 Like

I think I see the issue. Working on it…

Fixed! And yes the resulting waves do sound much better now!

…building distributables

3 Likes

Hey thank you for your work ! Would love to be a beta tester :).

Thank you

Ludovic

1 Like