Dead Duck Software Deducktion - KVRDC 2018

Talk about all things "KVR Developer Challenge" related.
Post Reply New Topic
RELATED
PRODUCTS
Deducktion

Post

Ive been playing around with this for an hour or so and i must say it does not disappoint. Looking deceivingly simple on the surface, a lot of sounds are possible with the architecture. The addition of a subosc to both main oscs and the 'supersaw' detuner greatly enhance the spectrum. The sound itself is solid, characterwise i would say its more on the bright-and-fine side, reminiscent of some of the Roland classics like the Jupiter-8. So far i didnt run into any bugs but i havent checked/used everything yet. First impression is certainly positive.


Now for a few suggestions.

Please, if at all possible, make the knobs not respond to vertical and horizontal mouse movement at the same time. This is one of the most annoying things you can find in a graphical UI because nobody can move a mouse so precisely up and down that the left/right axis wont respond as well. As a result one axis keeps fighting the other and dialing in the desired value becomes a test of patience because you constantly have to compensate between the value changes that each axis makes.


The synth has PWM but no knob on the UI to control it. The only way to set a static PW is therefore to use the 'Constant' modifier in the modmatrix assigned to the respective osc. To have a PWM knob on the UI without altering its layout and dimensions, maybe you could make the Detune knob multi-purpose, so it controls the detuning when the Saw is selected and the PW when the Square is selected. (When the Triangle or Noise are selected it could simply be greyed-out since it does nothing with these sources anyway.)


It would be great if the user could choose a custom location for what you call the 'Home' folder. (Settings, Presets, Skins.) Right now it appears hardcoded to local appdata, which of course is on C: which many people want to reserve for the OS as much as technically possible. (So OS volume backups remain small and valuable application data remain safe on the data volumes should C: have to be wiped.) The simplest way to make this possible is probably having an .ini file next to the DLL which it reads upon startup to see where the Home folder is. Many devs do it that way and its great because unlike a registry entry it cant be lost with a OS fresh install.


The synth has such a nice sound, it just begs for some stereoizing. The simplest way to achieve this would be to give the oscs a Pan function. Another would be some form of Unison with selectable amount of voices and Spread capability.


Thats it for now, thanks for the synth, its a keeper. :)

Post

You know Deducktion can be skinned right ENV1 ? :hihi:

I've only had a quick play but this is a nice sounding little synth. Seems like it could be a serious contender for winner of the KVRDC. Hopefully I'll be able to contribute some patches for it as time permits. :)
None are so hopelessly enslaved as those who falsely believe they are free. Johann Wolfgang von Goethe

Post

I know it can be skinned. First thing i checked was whether the definition file is externalized as well, (i would have liked to make it a bit bigger and 'tabless'), but no such luck, the Dark Theme archive only contains a .cfg im not quite sure what it does (might be for colors) and the rest is images.


Anyway, presets. Let me share one i made to get the ball rolling. Classic minimoog bass. Quite solid in my opinion, ive heard a lot worse from synths that cost a lot of money. Disable 'Sub Follows PW' on Osc2 for some extra growliness.
Preset.zip
You do not have the required permissions to view the files attached to this post.

Post

Thanks, the Bass sounds good.
Tip: beef it up a bit by adding the DC18 dystroid plugin. :D

Post

ENV1 wrote:I know it can be skinned.
I thought it was obvious I was trying to goad you into making one of your great skins for it....guess it wasn't that obvious. :shrug:
ENV1 wrote:the Dark Theme archive only contains a .cfg im not quite sure what it does (might be for colors)
Open the .cfg file with wordpad and look. It contains lines like this:

Param1Bg=0x1a 0x1a 0x1a 0xff

I don't know if those are XY coordinates or what.....

I did a simple edit of the Dark Theme. That's about the extent of my skinning abilities.
Deducktion Edit 01.png
You do not have the required permissions to view the files attached to this post.
None are so hopelessly enslaved as those who falsely believe they are free. Johann Wolfgang von Goethe

Post

Teksonik wrote:
ENV1 wrote:I know it can be skinned.
I thought it was obvious I was trying to goad you into making one of your great skins for it....guess it wasn't that obvious. :shrug:
ENV1 wrote:the Dark Theme archive only contains a .cfg im not quite sure what it does (might be for colors)
Open the .cfg file with wordpad and look. It contains lines like this:

Param1Bg=0x1a 0x1a 0x1a 0xff

I don't know if those are XY coordinates or what.....

I did a simple edit of the Dark Theme. That's about the extent of my skinning abilities.
Deducktion Edit 01.png
Your version looks good. I'd like to see it as an alternate skin in the next release. :party:

Post

Thanks ! All I did was change a few colors and add a few pixels here and there. If Dead Duck has no objections I'd be happy to upload it here. Should be easy to make a few different colors as well.

Nothing wrong with the default or dark skins I just like tinkering with skins. I wish I had the skills and talents of someone like ENV1 to create new skins from scratch. :)
None are so hopelessly enslaved as those who falsely believe they are free. Johann Wolfgang von Goethe

Post

Teksonik wrote:Thanks ! All I did was change a few colors and add a few pixels here and there. If Dead Duck has no objections I'd be happy to upload it here. Should be easy to make a few different colors as well.

Nothing wrong with the default or dark skins I just like tinkering with skins. I wish I had the skills and talents of someone like ENV1 to create new skins from scratch. :)
I'm pretty much useless when it comes to GUI designs, so even your simple color change is awesome to me. Even more color options would be most welcome too. :hail:

I agree, the 2 GUIs by Dead Duck are great, but I love being able to change the GUI to fit my mood, so the more the merrier! :D

Thanks, Tek.

Oh and it's not obvious at all that you keep dropping hints to ENV1 to design a new GUI for Deducktion. :hihi:

Post

Teksonik wrote:I thought it was obvious I was trying to goad you into making one of your great skins for it....guess it wasn't that obvious. :shrug:
You must have misunderstood my reply. :D
Teksonik wrote:Open the .cfg file with wordpad and look. It contains lines like this:

Param1Bg=0x1a 0x1a 0x1a 0xff

I don't know if those are XY coordinates or what.....
Yeah, thats the .cfg i mentioned. Ive checked its contents immediately after i found it because i thought it might be the definition file for sizes and coordinates etcetera. But its not, most of what little is in there seems to represent colors, probably RGB+Alpha in hex, possibly for text/fonts, but i didnt do any further checking to verify that. However, there appears to be one set of coordinates, namely for the VoiceIndicator. (The little orange rectangles that indicate the active voices.) This set has X/Y parameters, which has to be position alright. But all the others with a Bg/Fg/Fr ending (which probably stand for Background, Foreground, Frame) have a parameter format that looks a lot like colors to me.
Teksonik wrote:I did a simple edit of the Dark Theme. That's about the extent of my skinning abilities.
Looks nice and usable. Why dont you try another one, maybe with a bit of blue like the one you made for Diodow? I really liked that one, and the more to choose from the better.

Post

Chris-S wrote:Thanks, the Bass sounds good.
Tip: beef it up a bit by adding the DC18 dystroid plugin. :D
Will try, i plan on checking out some more entries at the weekend.

Post

:tu:

Post

By the way, i found a little buglet.

When you assign Constant->PWM, the range of the intensity knob is twice as wide as required.

(In other words the point where the pulse becomes a steady DC is with the intensity knob at +/- 50% rather than +/- 100%)

As a result the effective control-range of the PW is cut in half.

Post

ENV1 wrote:Ive been playing around with this for an hour or so and i must say it does not disappoint. Looking deceivingly simple on the surface, a lot of sounds are possible with the architecture. The addition of a subosc to both main oscs and the 'supersaw' detuner greatly enhance the spectrum. The sound itself is solid, characterwise i would say its more on the bright-and-fine side, reminiscent of some of the Roland classics like the Jupiter-8. So far i didnt run into any bugs but i havent checked/used everything yet. First impression is certainly positive.


Now for a few suggestions.

Please, if at all possible, make the knobs not respond to vertical and horizontal mouse movement at the same time. This is one of the most annoying things you can find in a graphical UI because nobody can move a mouse so precisely up and down that the left/right axis wont respond as well. As a result one axis keeps fighting the other and dialing in the desired value becomes a test of patience because you constantly have to compensate between the value changes that each axis makes.


The synth has PWM but no knob on the UI to control it. The only way to set a static PW is therefore to use the 'Constant' modifier in the modmatrix assigned to the respective osc. To have a PWM knob on the UI without altering its layout and dimensions, maybe you could make the Detune knob multi-purpose, so it controls the detuning when the Saw is selected and the PW when the Square is selected. (When the Triangle or Noise are selected it could simply be greyed-out since it does nothing with these sources anyway.)


It would be great if the user could choose a custom location for what you call the 'Home' folder. (Settings, Presets, Skins.) Right now it appears hardcoded to local appdata, which of course is on C: which many people want to reserve for the OS as much as technically possible. (So OS volume backups remain small and valuable application data remain safe on the data volumes should C: have to be wiped.) The simplest way to make this possible is probably having an .ini file next to the DLL which it reads upon startup to see where the Home folder is. Many devs do it that way and its great because unlike a registry entry it cant be lost with a OS fresh install.


The synth has such a nice sound, it just begs for some stereoizing. The simplest way to achieve this would be to give the oscs a Pan function. Another would be some form of Unison with selectable amount of voices and Spread capability.


Thats it for now, thanks for the synth, its a keeper. :)
Agrees one 100 percent.. just need osc hard sync and this would have been a perfect beauty but it is a great entry DDS! Thank you very much!

Post

ENV1 wrote:By the way, i found a little buglet.

When you assign Constant->PWM, the range of the intensity knob is twice as wide as required.

(In other words the point where the pulse becomes a steady DC is with the intensity knob at +/- 50% rather than +/- 100%)

As a result the effective control-range of the PW is cut in half.
This isn't a bug, it's a consequence of how the modulation system works.

With the exception of const all the modulators produce values over a range of 100% between the limits of -100% and +100%. This might be 0 to 100%, -100% to 0, -50% to 50% but always over a range limited to 100%. Likewise the modulation destinations expect values over this range so that the parameters can be varied over acceptable ranges around their current values.

The default value for PW is a 50% square wave. This corresponds to a modulation input of 0. To vary this between 0% and 100% the modulator must supply values from -50% to 50% since they will be added to the current PW value. Anything beyond this range will push the PW out of bounds and it will 'flatline'. Since the modulators are mostly restricted to a range of 100% they can all 'fit' into the range expected by the PW.

The const modulator is a constant value of 100% which is multiplied by the modulation amount knob giving a possible range of -100% to 100% which is twice the size of the other modulators (it has to be this way to match all the possible values of the other modulators). So when modulated by const the effective modulation range of PW is -50% to +50% as you have observed.

Post

Some comments on the themes.

The Deducktion GUI can be customised but it's not really 'skinning' in the sense that the GUI can be completely redefined. It simply allows the internal graphics to be replaced by external files giving it a new look but still based around the same layout.

The Theme.cfg file allows certain non-graphical parameters to be changed and as ENV1 has guessed it's mostly font colours and some minor layout adjustments.

The colours are defined in red/green/blue/alpha order. The fonts include background (Bg), foreground (Fg) and frame (Fr) definitions for the following elements:

MainBg - Main background colour (only visible if BackMain graphic has transparency)
MainMenu - Osc/Filter/LFO menu text
SubMenu - Mod matrix selection menu text
Param1 - Main section parameter value text (Osc/Filter/Amp/Env/LFO)
Param2 - Sub section parameter value text (Ctrl/Fx)
Param3a - Mod matrix parameter value text (odd rows)
Param3b - Mod matrix parameter value text (even rows)
Preset - Preset name and number text
Volume - Master volume value

These define GUI border padding in units of 8-pixels

SidePadding=1
TopPadding=0
BottomPadding=0

This is the pixel position of the voice indicator (not including any side or top padding):

VoiceIndicatorX=48
VoiceIndicatorY=33

This defines whether the lower tab bar (Mod/Fx/Ctrl) appears above (1) or below (0) the lower section:

SubTabsOnTop=1

The config file format is fairly strict - the keywords are case sensitive and there can be no spaces around the '=' signs.

Post Reply

Return to “KVR Developer Challenge 2023”