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
    yes that's funny, because the same algoritms.
     
  2. JGSF

    JGSF New Member

    Joined:
    Jul 13, 2004
    Messages:
    454
    Likes Received:
    1
    Trophy Points:
    0
    This is great stuff! :w00t: Thanks.

    Just one suggestion:

    How about giving the modules a more familiar name, ie: 100 - 3octv. MidiKeyb? I think it would be more intuitive when choosing them from the menu. :)
     
  3. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    well, i took the designation because it was short and clearly in the dsp window. remember, the moog- modules also had these short designations.

    you can simply rename modules by rightclicking on it and choose "rename".

    stylus
     
  4. JGSF

    JGSF New Member

    Joined:
    Jul 13, 2004
    Messages:
    454
    Likes Received:
    1
    Trophy Points:
    0
    Yes, you're right, we can always rename them in the dsp.

    I didn't know the moog modules used the same naming approach though. ;)
     
  5. Max M.

    Max M. h/h member-shmember

    Joined:
    Dec 7, 2002
    Messages:
    2,690
    Likes Received:
    9
    Trophy Points:
    63
    Îòâåò: synthesizer kx modular system 1

    btw., i'm finishing a modified (for "semi-logarithmic" attack) and optimized version of the "adsr" - may i name it "kxm403"?
     
  6. Max M.

    Max M. h/h member-shmember

    Joined:
    Dec 7, 2002
    Messages:
    2,690
    Likes Received:
    9
    Trophy Points:
    63
    another ADSR module

    Never mind. Here we are then :)
    This is an ADSR envelope generator compatible with "kx modular system": kxm403.da
    It has a "semi-logarithmic" attack (more specifically "inverse-square" one, as in '2*x-x^2') and exponential decay/release curves (as i recently mentioned here) - like this.

    A non-optimized (e.g. more readable) code for a sort-of-reference is also available (kxm403.readable.da)
     
  7. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    11 registers- that's great. you use a parabola form for smooth curves. one must have ideas. i found out in some tests that the logaritmic interpolation was better on higher exponents, but i got no usable slope times. i think we now we have the best solution in a dane source.

    kxm403 sounds good :) feel free by naming it so long a number is not in use.
    (there are enough numbers in a category kxm4xx - envelopes)

    stylus
     
    Last edited: Jun 5, 2009
  8. Max M.

    Max M. h/h member-shmember

    Joined:
    Dec 7, 2002
    Messages:
    2,690
    Likes Received:
    9
    Trophy Points:
    63
    Îòâåò: synthesizer kx modular system 1

    not exactly. :) i use log instruction only to convert the fader control value to filter (see below) coefficients. The exponential curve is a result of applying an integration filter (basically it's the same thing as the "one interp LPF") - there're no exp/log instructions in curve generators themselves.
     
    Last edited: Jun 5, 2009
  9. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    "i see you use logaritmic function with maximum exponent "1f" for smooth curves." - that was my confusion.
    i should read better before i answer :duh:

    stylus
     
  10. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Stylus,

    I haven't been able to test your modulair synth earlier hence this late reaction.

    Your Allias-free oscilator module kxm210 produces incorrect pitch intervals.
    It's most notable in the upper octaves but it happens in the lower octaves as well.
    Basicly it produces out of tune pitches due to the algorithme you used.
    The 'limit' approach in the saw generation introduces errors in pitch.
    The alternative MACW wraparound approach has good pitch but unfortunatly produces
    the well known AA effects.
    I hope you'll be able to fix this since this is a 'biggy' (well, at least to me it is).


    Also, you may put some 'parameter smoothers' on the RealTime controls like Fcutt etc. to
    get rid of those annoying zipper noises when you move a slider.
    A simple 'interp lowpass' on crucial parameters will do the trick.

    The keyboard module kxm120 may work OK for sequencer playback,
    but for Realtime keyboard playing it's unusable.
    The Note schedulair scheme is too simple.

    ADSR response doesn't feel/sound 'natural'. The ADSR code Max recently gave you will
    probably work a lot better.

    At last, I hope you master C/C++ soon and move all those parameter calculations out of
    DSP microcode. That would save a huge amount of DSP resources and gives you better programming options.
    Also ,that way you could Publish all those 20+ in one big swoop instead of letting user do 20+*2 mouseclicks to register all those plugs:)

    Just some ideas. Keep up the good work!

    Cheers,

    /Lex.
     
  11. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    hi lex, thanks for spending some time on testing the modular. your ideas cover the problems i see too.
    - mainly the keyboard unit needs a sort- algoritm to play notes correctly after "note-off's" are recieved. i thought about an array which saves a number of
    notes, sort and give back the highest note/last note is pressed.
    - the oscillalator "less aliasing" effect was a fortuity after using test- command "limitn" as you have figured out. other test- commands (tstneg, skip..) generated the effect too. i had no really explanation on it. the detune is small, let's say it feels analog, historic.
    - max's adsr is really great.
    - parameter smoothing, register/unregister script - good ideas

    what affects on vc++6: for me the "win32 debug build" with 3538 works. no idea why "win32 release build" won't work: dll's, vc++6 installation (not original cd)? for compiling the 3539 (and upper) someone off you kx- users could do this. :)

    stylus
     
    Last edited: Jun 14, 2009
  12. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    yes, simply maintain a note_on buffer and kick notes from it when you recieve the corresponding note_off.
    If buffer not empty, play highest note in buffer etc. etc.
    Well, easy to do in C/C++.

    Sorry, I don't agree. Higher notes are severly out of tune!
    Very unproffessional unless you have very low standards.
    I'm pretty sure a Nordlead (or any free VST synth for that matter) does not suffer
    from such bad design:cool:

    Producing Aliasing free waveforms like saw, square etc in DSP is next to impossible in emu10kx.
    Perhaps Max might have some tricks left, but in this case I doubt it.
    (although you never know with Max. That is one "clever cat":cool:)

    Anyway, the best I could come up with is using sinewaves to 'construct' the waveform.
    The saw osc in ASynth has perfect pitch and is almost alias free.
    Here's what I do;

    sine_osc -> abs(sine) -> hp filter

    Now you have alias free saw approximation.
    Here's the microcode;
    Code:
    ;---------------------------------------------------
    ; Bandlimited SAW generator - Lex Nahumury 2005
    ;---------------------------------------------------
    static PORTA_T		; portamento time coef
    static FCOEF		; (osc_freq/samplerate)
    static HPCOEF=0.9	; hp filter coef (fixed empirical)
    static hx		; hp filter mem
    static osc		; osc phase
    temp t, fy
    
    	interp	fy, fy, PORTA_T, FCOEF 	; pitch change smoothing (portamento)
    ; Osc
    	macw	osc, osc, fy, 1		; base saw
    	tstneg	t, osc, osc, 0		; make tri
    	interp	t, osc, t, 0		; make sinusoide
    	tstneg  t, t, t, 0		; make abs(sinusoide)
    
    ; 1st order HP tracking filter
    	macsn	t, t, hx, 1		; abs into hp
    	macs	hx, hx, t, HPCOEF	; Bandlimited Saw is in t
    
    ; Note: Amplitude of generated saw is inverted proportional to freq.
    ; Use a 1/fcoef gain correction stage
    ;------------------------------------------------------
    Something similair should work for square too but I havent figured out how
    back then when I was making Asynth.
    The portamento stage is of course not part of the osc but I left it in as a bonus.

    Cheers.

    PS: EDIT:
    I just remembered, idealy the HP filter cuttoff should be tracking with the osc freq instead of a fixed cuttof. That way the saw amplitude remains constant.
    Hmm,..I can't remember why I didn'd do that in my synth.
     
    Last edited: Jun 15, 2009
  13. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    i never had running my oscillators with other synths, so the detune never was really noticed. ;)

    the saw oscillator i'll check as soon as i got time. i remember on doing a fourier sythesis saw oscillator with several sinoid oscillators. it took much registers and was unusable.
    btw: using polyphonic soundfont oscillator with a midi true connection is another great possibility to feed the synth.

    stylus
     
    Last edited: Jun 15, 2009
  14. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Note: I edited my previous post.
     
  15. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    2 new nice classic modules for the modular. kxm 530 is a 8 band fixed filter bank for tweaking synthesizer sound formants. use it with noise source for your surprise! (preferably pink noise) kxm 920 is a spring reverb with fixed attributes. i really like this odd sound. :)

    http://freenet-homepage.de/stylish-stylus/kxm_530.da
    http://freenet-homepage.de/stylish-stylus/kxm_920.da *

    stylus

    *had to update the springs model feedback (the other version was something like a 6 spring parallel reverb, not bad sounding, but far from original)
     
    Last edited: Jul 8, 2009
  16. BiCho

    BiCho Audiotecna- Representante

    Joined:
    Dec 16, 2002
    Messages:
    178
    Likes Received:
    0
    Trophy Points:
    26
    this modular system is wonderful!

    however, I can't see the plugins in one of my computers, even though I have the latest version 3550 installed in both of them. I only see kxm 120 in my SB0240, althoug I see them all in my SB0530

    am I doing something wrong? does it have its own installer?

    thanks, keep up the great work!
     
  17. BiCho

    BiCho Audiotecna- Representante

    Joined:
    Dec 16, 2002
    Messages:
    178
    Likes Received:
    0
    Trophy Points:
    26
    I was able to make these show up by reinstalling the driver.

    I tried the system, however there is a big problem regarding voice stealing in the input modules, which makes them unusable, even if the consequent modules sound great.

    I hope the upcoming version fixes this big problem

    cheers,
     
  18. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    That is expected behavior, as it's current design is really for one (monophonic) voice at a time (per synth instance), so you need to arrange your MIDI input to take that into account (i.e. no chords/overlapping notes, etc on the same MIDI channel/synth instance).
     
    Last edited: Aug 11, 2010
  19. stylus02

    stylus02 New Member

    Joined:
    Jan 11, 2008
    Messages:
    283
    Likes Received:
    2
    Trophy Points:
    0
    long time no see guys. i don't lose many words. the modular has got a facelift. it's now with all the "eyecatchy" things i ever wanted. the old webpages are down. the new one runs on my laptop (10kb/ s upload). it's not allways online. excuse me for that.

    http://kxm.dyndns.org/

    more info later.. :)
     
  20. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    I have 3550 installed ATM, so I cannot check them out, but the pics look nice :)
     

Share This Page

visited