Creating Skins/Bitmaps

Discussion in 'Building With Reaktor' started by Ctazza, Dec 4, 2005.

  1. tenandtracer

    tenandtracer NI Product Owner

    Messages:
    163
    I thought I'd share/show off a new 'Nested Knob' framework I've been working on - inspired by vintage oscilloscopes, actually. I'm aiming to release it here in the next week or so (as part of a larger set of controls / design and development tools). It's a clever way to provide three different parameter controls within a single control area - real-estate is precious, but so are parameters! :D
    NestedKnob_ScreenCaptureSM.gif
    Animated GIF of the functionality/behavior (sweet action?)
    NestedKnobStatic.png Static image

    This particular functionality is largely based upon 'Creating Advanced Knobs - Mouse Area Module' tutorials by salamanderanagram (though I've re-programmed it using Core). The 'Build A Sophisticated Step Sequencer' series was essential as well (for additional GUI / Mouse Area handling trickxxss). There are also some elements from the Automation Examples (provided by Native Instruments) - I used the 'Target' example as the model for my Automation / Snapshot handling.

    In the ZIP (Attached Below) :
    You'll find a Macro with the complete control/configuration as shown in the images. It contains three outputs pertaining to the Outer/Middle/Inner controls. They all send the Blocks standard 0...1 value range (though, changing this would be trivial). This is all to say, it should be relatively plug and play for those of you who find use for it.
    I've also included the Knobman source (.knob) file. Perhaps you like the concept, but you want to make your own design. This should be easy enough to modify to meet your needs. Likewise, I've tried to make the code as clean/logical as possible to encourage easy adaptation/customization to accommodate different ranges/scaling (or even # of ranges/controls).
    >> I've also provided a 'DEVELOPMENT' version of the macro (shown in the GIF); it provides outputs/numeric readouts for additional, helpful values such as the 'Radius' position of the mouse. Should you decide to change the size/range of things in your custom animations, use this 'Radius' to guide you in your quest for custom values (ie. Setting the 'boundary' values for each control/layer).

    The main visual effect/functionality involves six separate animations. The three separate controls are rendered individually and layered using the 'Layer' attribute, amazing right? Each control is comprised of a stacked macro with two subsequent macros containing the Alpha 100% and the Alpha 20% 'Ghost' variant of the control. The Mouse Area Control Handler (Core Cell) does what it says by handling the display/behavior of these various animations to achieve the effect.

    Feedback/questions/comments welcome. I'd love to know if there are ways I can improve/optimize, so please DO post your suggestions (and your criticisms).

    Thanks for reading!
     

    Attached Files:

    • Like Like x 5
  2. Paule

    Paule NI Product Owner

    Messages:
    7,399

    Attached Files:

    • Like Like x 1
  3. herw

    herw NI Product Owner

    Messages:
    6,417
    When creating any knobs it is important that you can use midi learn because midi sends always 128 different values [0|127]. F.i. if you have a tune knob for a range of [0|1] with multiplier 120 (see REAKTOR blocks) a change of a hardware knob (f.i. with NI's KK S61) will not change the pitch with halftones.
    So you have to calculate the output value in a different way.
     
  4. Quietschboy

    Quietschboy NI Product Owner

    Messages:
    544
    It is possible to lay a Knob under the Mouse Area to add MIDI/OSC compatibility to a Mouse Area "knob".
    If you activate "Right Mouse Through" for the Mouse Area, the Knob´s context menu containing Midi Learn gets available on Panel.

    For a Multi-knob scenario like shown above, a routing of the Midi knob to the last (mouse-) selected ring could be thinkable.

    This would be your solution, Herwig, to fulfill wishes for Midi and OSC controllability without the need of stacked macros:
    Each ring haves it´s own output range and stepsize (a quantizer) to fullfill downstream requirements. If both, mouse area and knob, use the range 0 to 1 without any step size, and the range / step size convertion is made manually behind them, this system is independend to the hardware input range and step size. This means, whatever resolution a hardware controller delivers (128 for Midi or any other for OSC / Mouse), the output values always meet the grid. Of course, it´s better to make sure that the controller´s resolution always is equal or higher than the nedded resolution.
    I.e. your fine tune parameter (+/-100 cents) needs a resolution of 201 values. So, Midi Input with only 128 values is too coarse to make all cent values available. Nevertheless, this seems to be a good approach, imo.
     
  5. tenandtracer

    tenandtracer NI Product Owner

    Messages:
    163
    In this particular implementation, I've employed the Automation module/functionality to provide MIDI mapping and host/automation features. Initially I was planning on the mouse area/invisible knob trick but went the Automation route instead. A combination of both is perhaps the most reliable/affords the most functionality but also may be cumbersome to get everything working together as it should. I'll have experiment with this more.
     
  6. Paule

    Paule NI Product Owner

    Messages:
    7,399
    Last edited: Nov 26, 2019
    • Like Like x 2
  7. Paule

    Paule NI Product Owner

    Messages:
    7,399
    • Like Like x 1
  8. Peter Bols

    Peter Bols NI Product Owner

    Messages:
    87
    If it doesn't need to be fancy, a 2D vector imaging environment could be enough to design a knob.

    I drew up this knob in Inkscape, which is free.
    [​IMG]knop by Pjotr Banks, on Flickr
     
    Last edited: Aug 29, 2020
  9. Paule

    Paule NI Product Owner

    Messages:
    7,399
    jknobman is free also - for mac and pc
     
  10. Peter Bols

    Peter Bols NI Product Owner

    Messages:
    87
    I know, Paule. I work in inkscape because it's the program i know best so it lets me work faster.
    I thought i would suggest it as an alternative for people who maybe think jknobman is too complicated.
    Inkscape is very 'hands on' and straightforward to work with.
     
  11. Paule

    Paule NI Product Owner

    Messages:
    7,399
    My avatar is created with knobman also.
     
  12. Peter Bols

    Peter Bols NI Product Owner

    Messages:
    87
    If anyone is interested, here's an insight into how i drew up the PB Dowager.
    Just to show that at its core, designing a nice layout doesn't have to be complicated.
    This for instance, is just a base with some coloured rectangles with the details over the top.
    It can take a lot of time, and have lots of layers, but it's not complicated or hard to do.

    If you're only just starting out, use whatever you feel most comfortable working with and start from there.
    Vector based drawing (I use Inkscape) works great for layering and gradually editing your designs.

    [​IMG]Dowager design by Pjotr Banks, on Flickr

    Grts,
    Peter
     
    • Like Like x 3