Free FM Synthesizer Dexed (VST Windows and Mac)
-
- KVRAF
- 5851 posts since 9 Jul, 2002 from Helsinki
- KVRian
- 634 posts since 11 Dec, 2004
Great news! thank youasb2m10 wrote:Wait till the end of the week... I might have time to finish the next version (0.9.2). This bug is already fixed (you need to build it for now), but I wait to finish the real implementation of algo 4 and 6. Once this is done I will make a new release. Sorry for this stupid bug.tristan- wrote:Problem -
Apparently the .syx export from DEXED outputs the wrong header. Making the .syx file loadable only with DEXED.
Trying to load it in my Korg Kronos (which loads original .syx files and also all other .syx files found online with no problem) not possible.
This is due to the file header showing not as original DX .syx.
How can I get past this?
-
- KVRAF
- 5510 posts since 6 May, 2002
1. Did 0.9.2 change the breakpoint parameter notation to match up with the DX7? It currently displays the program value instead of the actual note.
2. Anything on these requests?
2. Anything on these requests?
electro wrote:Can we have a mode where Dexed automatically echoes all internal parameter changes for all Operators out to the DX7 without the need to manually transmit?
Also being able to MIDI THRU echo notes to play the DX7 from Dexed was removed?
There should be a toggle switch on the Main GUI and on the Secondary GUI to play either the internal Dexed sound engine, the DX7 Midi Port or trigger both simultaneously.
Intel Core2 Quad CPU + 4 GIG RAM
-
- KVRer
- 22 posts since 9 Jan, 2008
Still no Portament with Version 0.9x ?asb2m10 wrote:Well thanks everyone !!!![]()
Mono will certainly be done in the 0.7 version but portamento is a tricky part and the DX7 had multiple portamento modes... so later ....
That is sad
Anyway: thanks for the great piece of software !
-Michael
-
- KVRer
- 2 posts since 3 Jan, 2015
Hi, I can't find the 'SEND' function/button anywhere. Tried to do the right-click thingy, control-click, those things... I'm running dexed in Ableton 9 on a macbook air (OSX 10.9.5).
My TX7 is talking to dexed (EDIT VOICE OUT works perfectly) but I can't send the dexed settings to my hardware synth. Am I missing something? Apologies in advance if my question is a FAQ.
Thumbs up for all involved. Great fan. Take all my money. Although, you're more likely to find IOU's in my wallet.
My TX7 is talking to dexed (EDIT VOICE OUT works perfectly) but I can't send the dexed settings to my hardware synth. Am I missing something? Apologies in advance if my question is a FAQ.
Thumbs up for all involved. Great fan. Take all my money. Although, you're more likely to find IOU's in my wallet.
-
- KVRer
- 22 posts since 9 Jan, 2008
Dexed works on Sysex (*.syx") files. Same are combined in zip files to create "cart collections").
Sysex files (here) are just the captured MIDI voice exchange communication between an appropriate hardware synth and an editor when sending / receiving the content of a cartridge or a single voice.
You can use any appropriate program (e.g. a midi aware DAW) to send or receive sysex files.
-Michael
Sysex files (here) are just the captured MIDI voice exchange communication between an appropriate hardware synth and an editor when sending / receiving the content of a cartridge or a single voice.
You can use any appropriate program (e.g. a midi aware DAW) to send or receive sysex files.
-Michael
-
- KVRer
- 2 posts since 3 Jan, 2015
AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
@mschnell Do you mean to say there is no 'send' function in dexed? I do see a 'SEND' button in the youtube video from the DEXED github website. Was it removed?@nordickvr The farthest I've gotten is to use the TX7 "EDIT VOICE OUT" function. To my understanding, it was designed to send all parameters to the controlling DX7 for editing.
Page 28 in the user's manual... http://www.cyborgstudio.com/synthmp3s/y ... manual.pdf (http://www.cyborgstudio.com/synthmp3s/yamaha/tx7/manual/tx7ownersmanual.pdf)
-
- KVRist
- 143 posts since 29 Aug, 2011
Hi @asb2m10 .
I think you can remove the int64_t casts from Sin:lookup() and speed the entire function by over 3x.
return y0 + (((int64_t)dy * (int64_t)lowbits) >> LOWBIT_COUNT);
With a 10-bit lookup table (2048 entries for the SIN_DELTA version), dy is at most 17 bits. lowbits is 14. The biggest possible result is 31 bits, right? So I don't think you need int64_t math here.
Remove the two casts and Sin::lookup() is over 3x faster in VS2008 debug mode. (It takes about 29% of the time of the int64_t version.)
Here's the machine language for this particular lines. Note the 64-bit version actually seems to expand into some function calls...
int foo = y0 + ((dy * lowbits) >> LOWBIT_COUNT);
010B4A74 mov eax,dword ptr [dy]
010B4A77 imul eax,dword ptr [lowbits]
010B4A7B sar eax,0Eh
010B4A7E add eax,dword ptr [y0]
010B4A81 mov dword ptr [foo],eax
int bar = y0 + (((int64_t)dy * (int64_t)lowbits) >> LOWBIT_COUNT);
010B4A84 mov eax,dword ptr [y0]
010B4A87 cdq
010B4A88 mov esi,eax
010B4A8A mov edi,edx
010B4A8C mov eax,dword ptr [dy]
010B4A8F cdq
010B4A90 mov ecx,eax
010B4A92 mov ebx,edx
010B4A94 mov eax,dword ptr [lowbits]
010B4A97 cdq
010B4A98 push edx
010B4A99 push eax
010B4A9A push ebx
010B4A9B push ecx
010B4A9C call @ILT+16305(__allmul) (109BFB6h)
010B4AA1 mov cl,0Eh
010B4AA3 call @ILT+16250(__allshr) (109BF7Fh)
010B4AA8 add esi,eax
010B4AAA adc edi,edx
010B4AAC mov dword ptr [bar],esi
The casts to int64_t would be needed for 9 bit lookup table, as dy could be 18 and lowbits 15, needing at least 33 bits. Generally, each reduction in lookup bit size gives an extra bit to lowbits, and can almost double dy as well.
I think you can remove the int64_t casts from Sin:lookup() and speed the entire function by over 3x.
return y0 + (((int64_t)dy * (int64_t)lowbits) >> LOWBIT_COUNT);
With a 10-bit lookup table (2048 entries for the SIN_DELTA version), dy is at most 17 bits. lowbits is 14. The biggest possible result is 31 bits, right? So I don't think you need int64_t math here.
Remove the two casts and Sin::lookup() is over 3x faster in VS2008 debug mode. (It takes about 29% of the time of the int64_t version.)
Here's the machine language for this particular lines. Note the 64-bit version actually seems to expand into some function calls...
int foo = y0 + ((dy * lowbits) >> LOWBIT_COUNT);
010B4A74 mov eax,dword ptr [dy]
010B4A77 imul eax,dword ptr [lowbits]
010B4A7B sar eax,0Eh
010B4A7E add eax,dword ptr [y0]
010B4A81 mov dword ptr [foo],eax
int bar = y0 + (((int64_t)dy * (int64_t)lowbits) >> LOWBIT_COUNT);
010B4A84 mov eax,dword ptr [y0]
010B4A87 cdq
010B4A88 mov esi,eax
010B4A8A mov edi,edx
010B4A8C mov eax,dword ptr [dy]
010B4A8F cdq
010B4A90 mov ecx,eax
010B4A92 mov ebx,edx
010B4A94 mov eax,dword ptr [lowbits]
010B4A97 cdq
010B4A98 push edx
010B4A99 push eax
010B4A9A push ebx
010B4A9B push ecx
010B4A9C call @ILT+16305(__allmul) (109BFB6h)
010B4AA1 mov cl,0Eh
010B4AA3 call @ILT+16250(__allshr) (109BF7Fh)
010B4AA8 add esi,eax
010B4AAA adc edi,edx
010B4AAC mov dword ptr [bar],esi
The casts to int64_t would be needed for 9 bit lookup table, as dy could be 18 and lowbits 15, needing at least 33 bits. Generally, each reduction in lookup bit size gives an extra bit to lowbits, and can almost double dy as well.
-
- KVRist
- 143 posts since 29 Aug, 2011
Hello again @asb2m10 ...
It's not a big deal but I wonder if this pitchenv_keydown could be moved out of this loop.
void Dx7Note::keyup() {
for (int op = 0; op < 6; op++) {
env_[op].keydown(false);
pitchenv_.keydown(false);
}
}
It's not a big deal but I wonder if this pitchenv_keydown could be moved out of this loop.
void Dx7Note::keyup() {
for (int op = 0; op < 6; op++) {
env_[op].keydown(false);
pitchenv_.keydown(false);
}
}
-
- KVRist
- 143 posts since 29 Aug, 2011
Hello again @asb2m10 ...
I noted that the LFO speed ranges have big jumps after parameter value 68, 74, and every six thereafter.
Is this a simulation of the actual hardware? Or just a result of your Lfo::reset() function that is a compromise that sounds good and was simple to program?
( BTW I have that question about most of the code in Dexed, ranging from feedback amounts to LFO delay and rate to keyboard scaling and envelopes etc. How much of that is exact matches for the DX, and how did you get that info? How much is just guesswork/sounds good enough? How much is just approximations to guesswork?)
BTW what is the "11" factor in Lfo::reset() for? I can't figure out what variable "sr" might be. If you wanted a smoother curve but didn't want to call fancy/slow math routines this might be a good case for a look-up table.
I noted that the LFO speed ranges have big jumps after parameter value 68, 74, and every six thereafter.
Is this a simulation of the actual hardware? Or just a result of your Lfo::reset() function that is a compromise that sounds good and was simple to program?
( BTW I have that question about most of the code in Dexed, ranging from feedback amounts to LFO delay and rate to keyboard scaling and envelopes etc. How much of that is exact matches for the DX, and how did you get that info? How much is just guesswork/sounds good enough? How much is just approximations to guesswork?)
BTW what is the "11" factor in Lfo::reset() for? I can't figure out what variable "sr" might be. If you wanted a smoother curve but didn't want to call fancy/slow math routines this might be a good case for a look-up table.
-
- KVRer
- 22 posts since 9 Jan, 2008
Using Reaper as a VST host, it's easy to convert (e.g.) CC messages coming in via Midi to VST parameters in realtime.electro wrote:Requesting continuous parameter update transmit option, for realtime control of DX7 parameters.
I used this for the output volume of Dexed. It does work, but as the CC resolution is just 128 steps and such hops obviously create crackles in the sound, I now use a "smoothing volume" plugin inserted after Dexed (and additional effects such as reverb).
It is likely that changing sound algorithm parameters in a "stepping" way will suffer from similar problems.
-MIchael
-
- KVRAF
- 5851 posts since 9 Jul, 2002 from Helsinki
Literally every DAW does that.mschnell wrote:Using Reaper as a VST host, it's easy to convert (e.g.) CC messages coming in via Midi to VST parameters in realtime.electro wrote:Requesting continuous parameter update transmit option, for realtime control of DX7 parameters.
He is asking for continuous output of Dexed parameters to a DX7, to control the hardware synth in real time.
I used this for the output volume of Dexed. It does work, but as the CC resolution is just 128 steps and such hops obviously create crackles in the sound, I now use a "smoothing volume" plugin inserted after Dexed (and additional effects such as reverb).
It is likely that changing sound algorithm parameters in a "stepping" way will suffer from similar problems.
-MIchael
