PreenFM > preenfm2 and preenfm3

waveforms

(1/5) > >>

matrix12x:
Hi,
I am interested in possibly trying to program one or two more waveforms for the oscillators such as a formant or something. I have bee with the FM8 and really love the way an FM modulated formant sounds.

I was wondering how difficult this would be? I started looking at the code in waveforms.java. Also would there be enough room left for something like this?

Would a good starting point be the Shruthi-1 code in his oscillator.cc file?

Thanks,
John

pld:
I guess space is an issue if you want to add a waveform, see http://ixox.fr/forum/index.php?topic=63386.0
Otherwise it's not too difficult as long as it's just another lookup-table (check src/synth/Osc.cpp and Osc.h, and SynthState.h and .cpp for the OscShape enum and editing).

If the waveform is generated a runtime somehow, then it becomes a bit more complex :)
The shruti oscillator is a bit different since it's integer based (and avr-optimized) instead of float, but the basic principles are the same (phase accumulator, lookup, interpolation).

matrix12x:
Thanks. That link was great. I started looking at the tables and I see that they are normalized to +/-1 and that the values are float. How does one take a single cycle wave file and create a table of 1024 to 2048 entries from it? I am assuming I would have to start with a raw format file, but is it 8, 16 or 32 bit?

Is there possible a python script? I will definitely start searching.

Xavier:

--- Quote from: matrix12x on June 08, 2014, 04:59:57 PM ---Thanks. That link was great. I started looking at the tables and I see that they are normalized to +/-1 and that the values are float. How does one take a single cycle wave file and create a table of 1024 to 2048 entries from it? I am assuming I would have to start with a raw format file, but is it 8, 16 or 32 bit?

Is there possible a python script? I will definitely start searching.

--- End quote ---

No there's no python script.. What i do is i create directly the c arrays in java based on some series of sinusoid.
I'm afraid you'll have to find by yourself how to create your own arrays.

The waveforms are in the fast memory access of the STM32F4 (CCM). There's only 64Kb here and almost all is used.
So what you can do is to replace an existing waveforms (keep the sinusoid one for FM ;-).

Or you can add one or two in the regular memory... just remove the "__attribute__ ((section(".ccm")))" in the declaration in the wave.c file..
Will be slower and could produce some audio glitch when access in full polyphony with effects...

Xavier

tIB:
Forgive me for throwing out ideas that I have no concept of whether they are possible to realise, or the required skills to make them so but...

One of the things I love to do in the analogue world is FM with sine waves ran into wavefolders. I've often wonders what yamaha style 'FM' might sound like with the sine waves animated in this way- pretty amazing I'd have thought! I'd have thought realising that would take a ton of processing power though?

Imagine this sort of thing on 6 operators! https://www.youtube.com/watch?v=vXr01PSF7iw

Navigation

[0] Message Index

[#] Next page

Go to full version