LeMury's new DSP mixer (was "KX plugins in SX")

Discussion in 'Effects and the DSP' started by Gonzo, Aug 30, 2003.

  1. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Not a bad idea, AUX..yes your right,..hmmm.
    I was looking for a 1 letter abbreviation labeling like S1, S2, R, M and X.
    I will think about it.

    Thanks for the feedback.

    /LeMury
     
  2. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Mixer dev. progress v1.12b

    Screenshot

    Download KXL

    Changes:
    - Vu meter assignment switch between REC and MAIN bus
    - smaller vu meter and smaller control panel
    - Clip (hold) indicator
    - VU numerical readout
    - re-labeled some stuff:
    M = MAIN bus -> MAINL/R
    R = REC bus -> RECL/R
    S1 = SEND1 bus -> SEND1L/R
    S2 = SEND2 bus -> SEND2L/R

    Issues;
    Compiled for 3535 developer release.
    Not (yet) tested with 3534.
    ;------------------------------------


    Scribble strip for user labeling inputs:

    Eugene,
    CEdit worked fine for this, but after closing the CP, labels are erased of course.
    So I need some 'char string' storage space for this.
    Before I even start; Is this possable in the current plugin implementation?
    (or/and like user can save it in a preset)

    Regards,

    /LeMury
     
    Last edited: Sep 23, 2003
  3. Eugene Gavrilov

    Eugene Gavrilov kX Project Lead Programmer and Coordinator

    Joined:
    Dec 7, 2002
    Messages:
    3,146
    Likes Received:
    9
    Trophy Points:
    48
    >> So I need some 'char string' storage space for this.

    perhaps, a place for storing some parameters is required
    it is already implemented :)

    you will need to create a kSettings object:

    // storing
    {
    kSettings cfg;
    cfg.write("plugin_name","parameter_name","any_text_data");
    }

    // restoring
    {
    kSettings cfg;
    char string[64];

    cfg.read("plugin_name","parameter_name",string,sizeof(string));
    }

    ----- browse settings.h for details -------

    note: the settings will be stored in the registry and will be shared between all the plugin instances
    (that is, kSettings uses HKEY_CURRENT_USER\Software\kX as a root key
    if you specify 'AAA' for 'plugin_name', it will create a HKEY_CURRENT_USER\Software\kX\AAA subkey)

    if you wish to create per-card settings, use "kSettings cfg(ikx->get_device_name());" instead
    (in this case the root key will be HKEY_CURRENT_USER\Software\kX\Config\<CARD_NAME>\<AAA subkey>)

    if you wish to create per-plugin settings (thus, allowing multiple independent plugin instances), you will need to do the following:
    save and restore the parameters in the following key:
    "pgm_%d", where %d is plugin ID
    pgm_id and ikx objects are found in the iKXPlugin class

    that is:
    char key_name[32];
    sprintf(key_name,"pgm_%d",get_plugin()->pgm_id);
    kSettings cfg(get_plugin()->ikx->get_device_name());

    cfg.read(key_name,"parameter_name",.....);

    ===========

    please explore the present registry layout for details
    also, let me know the storage place you've selected -- we are to be sure it won't affect kxmixer internals :)

    keep in mind some of the registry keys are removed on driver re-install

    ===========

    /Eugene
     
  4. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    >>you will need to create a kSettings object
    Ok, Cool. Thanks.....I'll give it a try.

    >>browse settings.h for details
    I will.

    >>please explore the present registry layout for details
    I will.

    >>also, let me know the storage place you've selected
    I will.

    /LeMury
     
  5. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Mixer dev. progress v1.12e

    Screenshot
    Download .KXL

    Changes;
    - 'Clip Hold' indicator improved. (background is red on clip, max.value remains visable)
    - 'Clip Reset' button removed. ( Mouse click on 'clip hold' indicator now resets it..:) )
    - small cosmetic changes


    Bugs, comments, feedback here please.

    Regards,

    /LeMury
     
  6. Daniel Drummond

    Daniel Drummond New Member

    Joined:
    Dec 7, 2002
    Messages:
    1,136
    Likes Received:
    0
    Trophy Points:
    0
    I've just tried it and it seems to be working just fine. I'm a bit confused though about the possibilities this mixer gives us. Maybe Gonzo could shed some light as he has done before in his setups page. One thing: should the mixer have AUX returns also or I should just use a regular input for that?
     
  7. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    ;------------------------------------------
    MX6 General Purpose DSP Mixer:
    ;-------------------------------------------

    6 stereo input Channels:
    -IN1 to IN6

    4 stereo Output Busses:
    -MAIN BUS
    -RECORD BUS
    -SEND1 BUS
    -SEND2 BUS

    Function per Input channel:
    -IN slider is Input Level
    -S1 slider Routes to SEND1 BUS
    -S2 slider Routes to SEND2 BUS
    -M checkbox Routes to MAIN BUS
    -R checkbox Routes to REC BUS
    -X checkbox Mutes the whole channel!

    Function other controls:
    -RECMON checkbox SWAPS the MAIN output with the REC output.
    (for monitoring purposes)
    -VU checkbox selects between the REC and MAIN Bus readout.
    -Mouse click on Clip/Peak textbox indicator Resets 'Peak hold'.

    Usage:
    The mixer works like a normal 6 x 4 Mixer console.
    You can route an Input channel to Any, All or none of the 4 Busses
    by the use of the S1, S2, M and R controls.
    (All of these Routing controls are POST Input slider)

    Remarks:
    To keep the mixer 'General Purpose' there are
    no task specific 'Return Inputs' for Fx-return etc.
    Simply use one of the 6 Inputs if you need a 'Return' and route it accordingly.
    (Afterall, a 'normal' return' is nothing more than a regular Input without 'Sends')

    /Lemury
    ;-----------------------------------------------------------------------------


    Daniel,

    Yep, if you need a 'return' , just use one of the inputs. (See the above description)

    About 'setups'; Of course you can wait and let Gonzo figure out some 'standard setups'.
    That was/is the general plan (see posts in this thread)
    On the other hand;
    My intension was to make an 'All purpose' yet 'Muso' friendly Mixer, resembling a normal mixer console.
    So it really shouldn't be to hard for a regular Kx user, like yourself, to make setups with this mixer.
    (hmm..or I have failed my goal misserably. Nahh...see post of ADMK in this thread)

    Anyway; as always, I'm open to suggestions, questions etc..


    Regards,

    /LeMury
     
  8. Daniel Drummond

    Daniel Drummond New Member

    Joined:
    Dec 7, 2002
    Messages:
    1,136
    Likes Received:
    0
    Trophy Points:
    0
    hehe LeMury, you have not failed at your goal. Yes, it is easy to think about possible setups with your mixer and even more now that you took the time to explain it a bit more. I got the idea and it's easy. It could be used for final audiomixdown, to record multiple instruments simultaneusly in a given input, for automation (using an external midi mixer to move the faders), to easily have different instruments going through a particular effect without the need to repatch etc... Keep up the good work!
     
  9. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Oh..Btw,.Daniel,

    On what driver version did you test it?

    /LeMury
     
  10. Eugene Gavrilov

    Eugene Gavrilov kX Project Lead Programmer and Coordinator

    Joined:
    Dec 7, 2002
    Messages:
    3,146
    Likes Received:
    9
    Trophy Points:
    48
    bundled with 3535b release
    test it please :)

    /Eugene
     
  11. Daniel Drummond

    Daniel Drummond New Member

    Joined:
    Dec 7, 2002
    Messages:
    1,136
    Likes Received:
    0
    Trophy Points:
    0
    I tested it with 3535a.
     
  12. RIV@NVX

    RIV@NVX Freedom is a feature.

    Joined:
    Jul 10, 2002
    Messages:
    4,476
    Likes Received:
    2
    Trophy Points:
    0
    Just a little thing that bothers a perfectionist like me - can you change the font above the peak (that is, for measuring levels and REC/MAIN title) to Tahoma, to look like other plugins in kX? It's a minor thing and probably easily fixable.
     
  13. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Yeah well I was looking for a way to make the 'REC/MAIN' selection stand out more clearly
    to draw user's attention to 'What' they are actualy metering.
    As for the 'Peak' readout font;
    I wanted it to be more uniform with the font and look of thePeakBitmap.

    Granted, It's not perfect.
    (and there is always "the matter of taste" of course)

    But I'll see what I can do and how it looks with Tahoma in next release.

    /LeMury
     
  14. RIV@NVX

    RIV@NVX Freedom is a feature.

    Joined:
    Jul 10, 2002
    Messages:
    4,476
    Likes Received:
    2
    Trophy Points:
    0
    Perhaps Verdana then (or at least some nice font)?
     
  15. Eugene Gavrilov

    Eugene Gavrilov kX Project Lead Programmer and Coordinator

    Joined:
    Dec 7, 2002
    Messages:
    3,146
    Likes Received:
    9
    Trophy Points:
    48
    how to change the font:

    your_kXGui_element.set_font(font);

    the 'font' is an object available for any CKXPluginGUI-based class
    (it is initialized in the init() function)

    if you don't use kX GUI controls, you may need to use font.get_font() method instead

    also look for "gui_create_point_font()" method

    btw, the class templates used in the mx6 mixer aren't 100% perfect -- since they cause certain warnings during complation... we should probably use kXGUI-based controls instead -- let me know of your particular GUI needs :)

    /Eugene
     
  16. Lex Nahumury

    Lex Nahumury DH Senior Member

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

    Font selection was (and still is) not an issue or the problem!
    (no sweat RIVA,.... I'll change them, but you will understand that it's not a priority)

    More important Eugene;
    I needed a 'CStatic' for textout, but one that also could generate events like a control,
    set its background color, text color, box it, text align etc. etc...

    I could not find a possability to do that with KXGUI-based controls.
    Otherwise I had used them of course.
    It wouldn't surprise me if it's possable afterall, but without docu or example, I found myself
    digging in the SDK for days rather then programming stuff.

    Yep, those class templates might not be perfect but they did the 'trick',
    and I didn't had the time to 'nick' parts from it.
    (btw... I didn't get any warnings during compiling)

    Nevertheless, I also favor using kXGUI-based controls of course.
    (saves me a lot of time/work and no risk of messing things up)

    Next time I'll ask up front If I need (not so obvious) GUI stuff.

    /LeMury
     
    Last edited: Sep 28, 2003
  17. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Ok, on RIVA@NVX's request:

    MX6 with Tahoma font

    It uses same guid so it will overwrite the current mx6, so reload et..etc..,
    and uhhh...please have the courtesy to use the "magic" word next time you ask for something.

    /LeMury
     
  18. Eugene Gavrilov

    Eugene Gavrilov kX Project Lead Programmer and Coordinator

    Joined:
    Dec 7, 2002
    Messages:
    3,146
    Likes Received:
    9
    Trophy Points:
    48
    >> CStatic

    there's a class called kTextButton

    it can act as a button with two states, as well as a generic static text
    you can change its color, its border and its text, of course
    (an example: card selection button in the kX Mixer)
    the only thing it lacks is text alignment -- but I can add it if you find the class suitable
    -- find the file kTextButton.h for details

    >> tahoma

    there's a font setting that is stored in the skin file
    CKXPluginGUI initializes the font automatically
    so, please use kFont class and the 'font' member of the CKXPluginGUI class

    in order to avoid any source re-synchronization issues, please download the recent SDK (3535b) -- it contains the source of mx6 mixer with very small changes compared to the source you've sent me before
    (mainly, copyright & headers stuff)

    /Eugene
     
  19. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    I suggest we discuss such programming related matters on kXDev If you don't mind.
    Threads may become unreadable and confusing to 'end users'.

    /LeMury
     
  20. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    MX6 mixer release for 3534

    Allthough I strongly urge users to try out the 3535 driver releases
    to aid in driver development feedback, I can understand there are
    users 'sticking' to 3534 untill finale 3535 release.

    You can dowload a 3534 compatible MX6 here;
    http://members.home.nl/nahutec/kxplugins/mx6-v112f_3534.zip

    Help file here;
    http://www.kxproject.com/mx6_help.php

    I tested it with 3534 so it should work fine.
    However; if you get errors during opening the mixer, wine here...

    /LeMury
     

Share This Page

visited