I’m trying to sync a graphic modulator ramp to an FM operator but the ramp just recreates the sine function. any way to just clock it to the operator phase? this has to be simple but I’m not getting it.
seems like translating the sine to a phasor will do it. time to math.
What are you trying to achieve @cryptonym?
remap a sine fm operator to a ramp, then use the ramp to scan thru graphic modulator. then I can draw waveforms I want to use in graphic modulator so I’m not just stuck using sine wave for FM.
I have seen your posts about remapping modulation and almost DMed you for advice but figured a post could help more ppl.
What is the source of your "sine fm operator" signal? Remember, if it is the output of the Drambo FM Operator (carrier), the output is not sinusoidal, due to the FM modulation.
If you want to experiment with how FM affects other waveforms, try modulating the frequency input of a normal Drambo Oscillator. You'll need to implement some of the other features of the FM Operator yourself with additional modules.
Or, if you just want to change the waveform of the output, use a bipolar Graphic Shaper. A straight line will transfer the signal unchanged, a more complex pattern will give more complex results. This will work sort of like the wave shapers in the ID700 app.
the shaper could work. allows to bend the fm wave somewhat. the oscillations cause the shaper to go forward (good) but then backwards which mirrors the wave shape (not good). looking for continuous downwards ramp. maybe some type of % could contain the cycles. rectification isn’t quite what it needs either.
Im trying to turn the FM waves into the TX waves, I almost have the math created one’s done but the ramp running a waveform will allow me to make any wave I draw, thinking about drawing partials in future.
I have some math ideas I plan on trying tonight.
@cryptonym different strategy but you can build FM synths with the frequency shifter Professor module. It does not do phase mod though, only true fm. This would allow you to simply use Saw oscillators run through graphic shapers to get exactly the waveshape you want, then do FM with the frequency shifter processor.
I had luck syncing the saw wave of basic osc to FM operator but the waveform is kinda dirty and adds a lot of its own character to the read. we need something like a utility osc or audio rate LFO. I tried syncing the LFO but couldnt get it fast enough.
need to chop the FM op to 1/4 of its phase so it’s the upward 90 then run that thru some type of pi equation. should be able to find position across the diameter to generate a table read value.
my math based waveforms are basically working how I want them. the windowing phase on 5-8 jumps around though so I get waveforms starting at their peak which is noisy. it’s getting really close.
@cryptonym are you turning off anti aliasing on your saw oscillator? That will make a difference if you run it through graphic shaper. I guess you also have to make the indexing saw wave unipolar as well. It’s neither here nor there if you’re getting where you want to go with math.
@bcrichards I wasn’t aware of an aliasing setting on any of the Osc modules. that would be beneficial.
I still plan on figuring out a math solution for converting to ramp regardless. my hypothesis is that this will translate the FM adjustments (feedback, ratio, detune) from operator into the table waveform.
thanks for your help
You can access the Osc anti-aliasing setting by tapping on the module title bar at the top.
I'm still not clear on what you hope to achieve. The output of an FM operator is not a sine wave, it is a complex waveform containing multiple frequencies. This is affected by the parameters: feedback, ratio, detune, and especially the FM Index. Now, if you're using Index values less than 1, the output is near-sinusoidal because you're not actually doing very much FM. Take a look at the waveform on a scope while varying the parameters to get an understanding. Any synced ramp you are able to generate would just select one of the frequencies, likely the lowest.
Edit: And by the way, none of the FM parameters actually changes the frequency of the carrier, which is just determined by the Note input. The parameters just alter the harmonic content of the result, although they can reduce the amplitude of the carrier to zero.
This pic shows what I mean. Even for a low FM Index value of 0.58, the FM Operator is distinctly non-sinusoidal. (I should have said that the FM effect is minimal for Index values less than 0.5, not 1.) The Carrier, and Modulator, waves here basically fill the scope with one cycle. So you can see that there is significant 4th harmonic content in the FM Operator output. Notice that the FM Operator output is not very interesting if you don't supply a Modulator to the FM input, and enable the FM Index.
You can already use any waveform as a modulator. If you want the FM carrier to have a waveform other than sine then use an oscillator instead of the FM operator. Not as convenient as you have to take care of a number of things on your own but flexible enough 😊
More (Yamaha-like) carrier waveforms in the FM Operator would be a feature request towards @giku.
...or, going deeper:
I bet @samu would fall in love 😉
yeah I could rebuild an FM oscillator block to have drawable waveforms and then drop that into the synth I already built with all the algo routings. might get messy and be more FM than phase locked PM of Yamahas. I’ll have to think abt that.
I thought it would be a fun challenge to figure out the math to turn a ‘sine’ into a ramp. and then any indexing would translate into the ramp and into the drawn waveform. my TX waveforms are basically what I wanted so I’ll just finish that for now.
and yeah @rs2000 @giku expanded FM waves would be amaze 🤩
turning off the aliasing on the saw is perfect for the lookup table. can draw in wave shapes kinda like Zebra. (don’t worry I switched that waveform to uni after the screenshot)
thanks for the help everyone!
Yes, Yes & Yes!
Kick it up a notch with a user-defined 'spline-oscillator' using the same editing tools used for Graphical Modulator/Shaper/Automation.
The 'spline oscillator' could then be used anywhere a 'one cycle waveform' is needed, WaveTable Frame, LFO, FM Operator or just a basic Oscillator. The Spline-Oscillator module in it self could include multiple frames and even a 'random'(noise) frame.
...would be super happy with a couple of 'spline oscillator frames' for the wave-table oscillator).
I know I can use the saw oscillator and graphical shaper but wtf, keep it simple is my motto 😎
The more I think about it a decimated noise should be part of the waveform selection for the regular oscillators and the oscillator selection should be a modulation target.
This would make chip-sound design a lot easier without having to use a shedload of modules and N-1 switches...
Oh well, we can always 'dream' haha...
...being able to adjust the start-phase of the FM operators waveform is one unique feature in the SY77/99 AFM implementation.
And while at it, a proper start-phase control for the regular oscillators could be handy.
One quite major reflection I've had is that the WaveTable oscillator in Drambo puts most WaveTable synths (at least on iOS/iPadOS) in the corner of shame, only feature missing is 'Table Generation' which could be solved with 'Spline Frames'.
And yes I'd love have a 100% accurate TX81z emulation/simulation (with DAC noise and all) for the iPad with correct envelope times etc. etc.
Here's a 5s LatelyBass sample straight from my TX81z at velocity 90 maxed out volume on the TX81z fed into the Audient ID4mk2 with zero processing (It's not even normalized, just properly gain-staged prior to recording to avoid clipping).
The original preset has no 'sustain' so I held the note until there was no longer any audible output from the TX81z.
The preset uses these 'extra' waveforms which are not present on the DX100 which has the 'Solid Bass' preset which is very often misstaken for the real LatelyBass...
So yeah, there's more to accurate FM emulation than the waveforms, the envelopes and their times play a big part in it too...