If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Phase input for Razorblade Wave Read?
18 posts
• Page 2 of 2 • 1, 2
Re: Phase input for Razorblade Wave Read?
martinvicanek wrote:Here is my 2ct:
I totally agree with Spogg's comments regarding the precise counter. We could safely replace it by a simple counter for the present application.
I also agree with Tepeix' phase code v2. I am attaching my own version with comments (primarily for my own benefit, because otherwise I won't know what the heck all that is about by next week). It is almost identical to Tepeix' code.
So the remaining mystery are those FM spikes and double triggers that k brown is observing. Could we have the schem to see what`s going on?
In the assembly with the int and frac out it says at the end:
movaps j,xmm3;
movaps jfrac,xmm3;
but should be:
movaps j,xmm0;
movaps jfrac,xmm3;
- adamszabo
- Posts: 667
- Joined: Sun Jul 11, 2010 7:21 am
Re: Phase input for Razorblade Wave Read?
Gornish Helfin -
Even with the correction, using that assembler inside, the osc goes nuts! My ears are still ringing
Even with the correction, using that assembler inside, the osc goes nuts! My ears are still ringing
Website for the plugins : http://kbrownsynthplugins.weebly.com/
- k brown
- Posts: 1198
- Joined: Tue Aug 16, 2016 7:10 pm
- Location: San Francisco, CA USA
Re: Phase input for Razorblade Wave Read?
Maybe we just have to multiply the phase to get the wanted result ?
Here with X 0.49999 it have only one peak.
Here with X 0.49999 it have only one peak.
- Attachments
-
- Clipboard04.png (93.8 KiB) Viewed 24682 times
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Phase input for Razorblade Wave Read?
Well, in my own, stumbling, hunch-following, trial-and-error way, I seem to have figured this out.
Just putting this 'Add Phase' code from the iFFT osc between the original Razorblade osc 'Counter' and 'Interpolated Read' modules did the trick. Just needed to give the 'phaseLen' input a float of 168.562 (as in the iFFT), to set the Buffer Size, then the 'phase' input functions as expected.
A few minor wrinkles remain:
1. One-shots still double-trig (no biggy in a project to bypass the 'AddPhase' module for those waves).
2. The float range is strange to achive squ thru narrow pulse: 1.561 to 0.265.
3. Not sure the HiQ option is working, as the 'Add Phase' doesn't have both 'PosInt' and 'PosFrac' inputs; only 'offest'.
FM with two sines at Ratio 1:00 looks and sounds just as expected:
PW/PWM still work just fine, as does Sync!
I might be missing something, but so far everything seems to work fine.
Just putting this 'Add Phase' code from the iFFT osc between the original Razorblade osc 'Counter' and 'Interpolated Read' modules did the trick. Just needed to give the 'phaseLen' input a float of 168.562 (as in the iFFT), to set the Buffer Size, then the 'phase' input functions as expected.
A few minor wrinkles remain:
1. One-shots still double-trig (no biggy in a project to bypass the 'AddPhase' module for those waves).
2. The float range is strange to achive squ thru narrow pulse: 1.561 to 0.265.
3. Not sure the HiQ option is working, as the 'Add Phase' doesn't have both 'PosInt' and 'PosFrac' inputs; only 'offest'.
FM with two sines at Ratio 1:00 looks and sounds just as expected:
PW/PWM still work just fine, as does Sync!
I might be missing something, but so far everything seems to work fine.
Website for the plugins : http://kbrownsynthplugins.weebly.com/
- k brown
- Posts: 1198
- Joined: Tue Aug 16, 2016 7:10 pm
- Location: San Francisco, CA USA
Re: Phase input for Razorblade Wave Read?
Well, you’ve pretty much duplicated what I did yesterday!
I’ll share mine because there are a few differences. I “tuned” the float value so it roughly matched Martin’s sine osc in terms of the knob position giving similar results. The value seems to change the range of operation, but I haven’t yet got to grips with the DSP.
But there are differences, which interests me. MyCo’s version produces flat bits in the output waveform when driven at higher modulation deviations, whereas Martin’s sine osc doesn’t; it continues to fold. That means the timbre will be different at higher modulation values. Unless someone quickly beats me to it, I intend to investigate this and try to solve it.
I suspect the double triggering is due to the index wrapping around to zero when the modulation value takes it above the number of samples, so it starts again. But I haven’t checked that yet.
I’ll share mine because there are a few differences. I “tuned” the float value so it roughly matched Martin’s sine osc in terms of the knob position giving similar results. The value seems to change the range of operation, but I haven’t yet got to grips with the DSP.
But there are differences, which interests me. MyCo’s version produces flat bits in the output waveform when driven at higher modulation deviations, whereas Martin’s sine osc doesn’t; it continues to fold. That means the timbre will be different at higher modulation values. Unless someone quickly beats me to it, I intend to investigate this and try to solve it.
I suspect the double triggering is due to the index wrapping around to zero when the modulation value takes it above the number of samples, so it starts again. But I haven’t checked that yet.
- Attachments
-
- SQ Osc wPhase test Spogg 1 MyCo phase dev 2_.zip
- FS 3.06
- (2.9 MiB) Downloaded 1170 times
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Phase input for Razorblade Wave Read?
All those code are almost the same, but mine had an error i just spot..
(It could go to sample number where it might better go back to zero, which change a very little the transition.)
I think all is in the phaselen parameter of MyCo's, this is a little similar to my phase multiply,
we could reduce the phase change.
(It could go to sample number where it might better go back to zero, which change a very little the transition.)
I think all is in the phaselen parameter of MyCo's, this is a little similar to my phase multiply,
we could reduce the phase change.
- Tepeix
- Posts: 361
- Joined: Sat Oct 16, 2021 3:11 pm
Re: Phase input for Razorblade Wave Read?
I think I’ve done it!
It behaves the same as Martin’s proper phase modulation on his sine osc (you can compare in the schematic).
MyCo’s version was good but it limited the number of “folds” you could get with phase modulation, which is why there were flat bits in the waveform at high modulation indexes. That was because his phase DSP went past the index limits at higher modulation levels; he only provided for one fold for plus and minus phase values.
The DX7 hardware used unipolar addition for the phase offset and I guess the wrap-around for folding was either done in the adder or the ROM reader. Maybe the adder only supplied the lower bits so the wrap-around would take into account higher modulation levels. The MSBs would be ignored, even though they still operated. Dunno.
My big challenge was to make it bipolar, so any waveform can provide FM without needing an operating point bias.
I also reduced the double precision counter to be fractional and the conversion to int & frac is done after my DSP phase code. The “High Quality” selector now works.
Now I’m waiting for Martin to laugh at my DSP code and show us a better way to achieve the end result. At the very least an optimised ASM version would be useful…
It behaves the same as Martin’s proper phase modulation on his sine osc (you can compare in the schematic).
MyCo’s version was good but it limited the number of “folds” you could get with phase modulation, which is why there were flat bits in the waveform at high modulation indexes. That was because his phase DSP went past the index limits at higher modulation levels; he only provided for one fold for plus and minus phase values.
The DX7 hardware used unipolar addition for the phase offset and I guess the wrap-around for folding was either done in the adder or the ROM reader. Maybe the adder only supplied the lower bits so the wrap-around would take into account higher modulation levels. The MSBs would be ignored, even though they still operated. Dunno.
My big challenge was to make it bipolar, so any waveform can provide FM without needing an operating point bias.
I also reduced the double precision counter to be fractional and the conversion to int & frac is done after my DSP phase code. The “High Quality” selector now works.
Now I’m waiting for Martin to laugh at my DSP code and show us a better way to achieve the end result. At the very least an optimised ASM version would be useful…
- Attachments
-
- SQ Osc wPhase - Spogg's phase mod dev 6_.zip
- FS 3.06
- (1.85 MiB) Downloaded 1197 times
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Phase input for Razorblade Wave Read?
Excellente!
AND the PW range is now normal; 0.5 for a perfect square.
Interestingly, the one-shots now trigger 5 times!; at a rate that tracks the keybaord. Kind of a cool effect actually! I may keep this version as a switchable option.
Already experimenting with these as modulator and carrier in the Synclavier-inspired project mentioned in this thread: viewtopic.php?f=4&t=120810&p=329902&hilit=synclavier#p329902
Very interesting results comparing sine modulated with various SQ waves and vice versa (the Synclavier approach vs the DX one). The band-limited SQ waves are, not surprisingly, more suited to use as carriers, so I'm including a simple filter for the carrier, to handle the brighter waves.
AND the PW range is now normal; 0.5 for a perfect square.
Interestingly, the one-shots now trigger 5 times!; at a rate that tracks the keybaord. Kind of a cool effect actually! I may keep this version as a switchable option.
Already experimenting with these as modulator and carrier in the Synclavier-inspired project mentioned in this thread: viewtopic.php?f=4&t=120810&p=329902&hilit=synclavier#p329902
Very interesting results comparing sine modulated with various SQ waves and vice versa (the Synclavier approach vs the DX one). The band-limited SQ waves are, not surprisingly, more suited to use as carriers, so I'm including a simple filter for the carrier, to handle the brighter waves.
Website for the plugins : http://kbrownsynthplugins.weebly.com/
- k brown
- Posts: 1198
- Joined: Tue Aug 16, 2016 7:10 pm
- Location: San Francisco, CA USA
18 posts
• Page 2 of 2 • 1, 2
Who is online
Users browsing this forum: No registered users and 68 guests