synthesizer kx modular system 1

Discussion in 'Effects and the DSP' started by stylus02, Jan 17, 2008.

  1. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    -------------------------------------------------------------------------------------------------------------------------
    24.03.2012 version 3.0 (3550) released

    hi guys,

    version 3.0 is ready!
    new design, more functionality, bug fixes & compatibility for latest driver versions 3550 / 3551

    new features:

    - mostly design finish
    - kxm 120/ 230: digital displays with scrolling
    - kxm 210: tuning leds
    - kxm 340: input/ output leds (treshhold -60db)
    . kxm 700: waveform leds
    - include 15 presets
    - 3550/ 51 compatible
    - windows installer/ deinstaller


    download:
    https://sites.google.com/site/kxmodular/kxm_v3.0_3545b_setup.zip
    https://sites.google.com/site/kxmodular/kxm_v3.0_3550_setup.zip
    screenshot:
    https://sites.google.com/site/kxmodular/screenshot_kxm_v3.0.bmp

    homepage:
    https://sites.google.com/site/kxmodular/
    http://kxm.dyndns.org (not active yet)
    -------------------------------------------------------------------------------------------------------------------------
     
    Last edited: Aug 9, 2013
  2. dj_stick

    dj_stick Apple Fanboy?

    Joined:
    Jun 3, 2003
    Messages:
    17,575
    Likes Received:
    204
    Trophy Points:
    88
    that's pretty sweet
    i remember suggesting something like this a few years back, but have no idea how to code
     
  3. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    yes, it has a little complexity. :)
     
  4. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    module list

    kxm 100 - 3 octaves keyboard unit (midi support)
    kxm 150 - universal divider (usefull as octave divider)
    kxm 160 - universal 4x multiplier (usefull as octave multiplier)
    kxm 200 - multi vco saw, spaced saw, triangle, square, pulsewidthed square (aliasing)
    kxm 210 - multi vco saw, supersquare, triangle (aliasingfree!)
    kxm 220 - white & pink noise
    kxm 300 - 4 channel mixer module
    kxm 310 - 8 channel mixer module
    kxm 320 - 6 channel mixer module
    kxm 330 - 2 channel mixer module
    kxm 400 - adsr envelope
    kxm 500 - MOOG Lowpass -24 db/oct
    kxm 510 - state variable filter -12 db/oct
    kxm 520 - double MOOG lowpass -48 db/oct
    kxm 550 - -6db/oct lowpass filter
    kxm 560 - -6db/oct highpass filter
    kxm 600 - standard vca
    kxm 700 - multi lfo saw, spaced saw, triangle, square, pulsewidthed square
    kxm 800 - resampler 1-24 khz
    kxm 810 - waveshaper logaritmic, exponential, cut
    kxm 820 - ring modulator
    kxm 830 - bit crusher 8..1 bit
    kxm 900 - unisono module
    kxm 910 - phaser module
     
    Last edited: Jan 17, 2008
  5. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    hi all,

    i made a little demo sequence with the kx modular. all you hear is kx- powered (synth, samples, effects, dynamics) except the sequencer work. it came dry out from reason 3.0 through 6 asio channels.

    http://freenet-homepage.de/stylish-s...arp_pre_02.mp3
    http://freenet-homepage.de/stylish-stylus/arp_reason_setup.jpg
    http://freenet-homepage.de/stylish-stylus/arp_dsp_setup.jpg

    sounds/samples: kx modular system 1 (prerelease version)
    effects: efx-reverbstation, space'80, microchorus, microdelay[x]
    dynamics: 10 band eq, dynamic processor

    stylus
     
    Last edited: Jan 19, 2008
  6. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Sounds good :)
     
  7. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
  8. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    thanks russ. welcome back in the 70's. ;)
     
  9. Max M.

    Max M. h/h member-shmember

    Joined:
    Dec 7, 2002
    Messages:
    2,690
    Likes Received:
    9
    Trophy Points:
    63
    Yeah, to me these demos sound pretty cool too.
     
  10. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    "the beginning is the sound. and sound comes from the audigy." :)
    but we should not forget that "reason" as "sampleplayer" makes the groove. so we use best from both worlds.

    ps: next time i try max's ufx reverb :cool:
     
    Last edited: Jan 20, 2008
  11. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    I have been having fun playing around with these plugins (using MIDI-YOKE/MIDI-OX for automation), but they use quite a bit of resources on my 10k1 card. For this reason I made myself a plugin to replace the kvm-100. It seems to work good, and it uses less resources and handles more notes, so I thought I would post the code in case you want to check it out, etc:

    Code:
    output cv, gate_;
    control note=0x30600000, gate=0x0;
    temp t
    
    macs      cv,  0x0,  note,  0x80;
    macs      gate_,  0x1,  cv,  0xaaaaaab;       
    macints t, 0x0, gate_, 0xc;
    macints t, t, cv, 0xffffffff;
    macints t, 0xc, t, 0xffffffff;
         
    macs cv, 0.62976, 0, 0;     
    skip      ccr,  ccr,  0x7fffffff,  t; 
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;
    macs      cv,  0x0,  cv,  0x78d0df9c;            
        
    skip ccr, ccr, 0x7fffffff, gate_;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macs cv, 0, cv, 0x40000000;
    macints cv, 0, cv, 0x2            
         
    tstneg      gate_,  gate,  0x7fffffff,  0x53e2;
    
    -Russ
     
  12. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    a solution without a lookup table. the kbu calculates the exponential cv on the fly - very cool. i tried it out and it works excellent over the full note range. can you explain what you have done exactly? (before i do reverse engieering) :)

    stylus

    ps: this kbu could be called "kxm 101" or anything else and could be part of the final release of the synth with your copyright's, if you want. ( the range kxm 100-199 was planned for keyboard related stuff) in each case i want to set a link to this.
     
    Last edited: Jan 22, 2008
  13. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    It calculates the note (0-11) and octave (1-11), and then uses the following formula to calculate the frequency (your exp values are related to each other in same way as the original frequencies):

    freq = start_freq * 2^(-1/12)^(number of half steps from start_freq)

    2^(-1/12) = 0.94387431268169349664191315666753

    Raising a number to a power(x) is just multiplying that number by itself (x) number of times, so we can just multiply by 2^(-1/12) for each half step we need.

    Then for each octave (x) we need to go down, we just multiply the value by 0.5, (x) number of times.

    The calculations use C9 as the starting freq, but it's value is greater than one, so instead I use C8 (0.62976) and multiply by 2 at the end.

    The calculations at the top just calculate the note (0-11) and octave (1-11), and then offsets the values, such that it tells us how many multiplies to skip.

    note = (slider value * 0x80)
    skips for octave calc = 0x1 + (note / 12)
    skips for freq calc = 0xC - (((skips for octave calc) * 12) - note)

    (hex values (above) represent fractional values)

    Does that make sense to you?

    Feel free to use the code however you want...
     
    Last edited: Jan 22, 2008
  14. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    simple, but great idea. actually i'm doing some optimizations in dane and c++ to save gpr's.

    copyrights are important to me. every idea should be protected. it does not play rolls if we work on open source or commercially projects. :)
     
  15. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    If a GPR is overwritten anyway, then it is free to be used for temp storage before that point (and output GPR's can be used more then once in your code (just not inputs)), so take advantage of that fact to save GPR's (i.e. 'cv' and 'gate_' in the above code are used for temp storage in the calculations at the top of the code).

    i.e.
    kvm300
    'a' is not needed at all, as 'out' can be used instead.
     
  16. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    for the time being i've made a link to the kbu in the top entry.
     
  17. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    (Bump)
    How is your synth project coming?
    Any luck on the midiport we talked about?

    /Lex
     
  18. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    the final release comes the next days. many things are improved, some new modules included. no midi api in c++ at the moment. had no really time to work on the project.

    regards stylus
     
  19. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    kx modular final release v1.1

    kxm has reached final release v1.1. just register all plugins, start "trafo", load "kxm_v11.trf" into it, choose midi connections, load synth preset and play! :w00t:
    (remember the korg poly 800, moog minimoog, oberheim 4voice or yamaha dx7)

    http://freenet-homepage.de/stylish-stylus/kxm_final_v1.1.zip

    http://freenet-homepage.de/stylish-stylus/firedance_pre_01.mp3

    have fun!

    last minute: - preset "kxm saw pad" & presets for vco to play minor or major
    (very cool polyphonic simulation)

    v1.1, 23.04.2008

    - final release version
    - now 28 modules
    - new aliasingfree vco "kxm 210" replaces the old one (based on "kxm 200" with saw, triangle, square, pulswidthed square)
    - new full range keyboard unit "kxm 110", thanks russ
    - new "kxm 170" 16x multiplier (use as octave multiplier to generate higher frequencies for ringmodulation (fm - modulation))
    - new "kxm 180" single dc value
    - new "kxm 190" inverter
    - new "trafo" preset "kxm_v11" to use with "kxm 110"
    - some presets of classic synths with basic automation for nordlead 1 midi controllers
    - no more velocity control inputs in vcf's, vca's
    - no more spaced saw in vco's
    - no more supersquare (maybe later again)
    - 2 lfo inputs in vco, vcf's, vca for liquid modulation
    - added 16x gain slider in ringmodulator "kxm 820"
    - envelope adjustments in "kx 400"
    - base frequency adjustments in vco's (2 octaves lower), smaller finetune range
    - lfo control adjustments in vcf, vca
    - lfo offset slider +/- 0.5
    - spike filter on all vca control inputs
    - new guid in "kxm 520" (was the same as "kxm 500")
    - freeware "trafo 0.8" is bundled, please visit "http://members.nextra.at/hubwin//midi.html"
    - some code optimizations

    kx it!
     
    Last edited: Apr 25, 2008
  20. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    what kx modular could do in future (what the dsp is able to do)

    -better midi timing
    -morph mixer (vector-, wavetable like simulation)
    -minimal vco, vcf, vca, envelopes: a (fade in), ad, ar (percussion), ads (minimoog), lfo
    -portamento
    -polyphonic (up to 8-16 voices in dependence of complexity)
    -lfo retrigger
    -spring reverb
    -single gate (midi) for drums
    -step sequencer
    -arpeggiator
    -fm osc. (sin)
    -envelope follower
    -noise manipulator (granular simulation)
    -gate retrigger (claps)
    -simple operators (control voltage & audio): adder, multiplier, rectifier..
    -sample rom based synthesis in combination with soundfonts (could imagine a sequential prophet vs or ppg wave synth emulation!)

    as you can see, emu has implemented all functions to build synthesizers on that dsp. i allways asked me, why this never was done with exception of kx users (lemury and me). perhaps the dsp power of 100/200 mips was to low in contrast to bigger ones from motorola, texas instruments.. which have 10-20 times more power today. nevertheless for the time, when the dsp was released around year 2000, it had enough capacities to establish on the digital synthesizer market.
     
    Last edited: Apr 26, 2008

Share This Page

visited