bees tutorial: (feb24: presets pt.1 & 2)

  • ok! you asked for it and here it is: an introduction to presets, presets, presets!!

    this tutorial comes in 2 parts. the first part describes the system and how to interact with it in a very basic way. covers storing values directly to a given preset, read and write of alternate network routings, and a few very simple ways to control presets within a network of operators.

    it's super dense and there's a fair bit to wrap your head around so i wouldn't rush through it. best to take a bit longer and really understand it. it took me quite a while to write and in the process i learned a whole lot about what is possible!

    which leads us to part 2:
    this covers some practical examples of how to recall data in a performance context, creating self-modulating networks, and demonstrating the arbitrariness of inclusion & exclusion.

    it's really weird and maybe a bit heavy. let me know if there's anything that needs a clearer explanation. the last example in particular was pretty bewildering to me when i was patching it together...

    let me know if it's unintelligible and i'll think of how to rewrite it!

  • going through this now. this is what the inside of my head sounds like:

    "oooooooooooooooohhhhhhhhhhhh. dayum."

    so is this correct in terms of the aleph display?
    little dots on left = included on display
    little dots on right = included in preset

  • Very interesting, I like that presets can be triggered externally and internally. can't wait to put some time into this.

  • yeah thats an important thing, that inputs affected during preset recall have the same effect as if you set them from the ins page re: triggering network operation.

    for this reason, we should probably to standardize "behavior" inputs such as \btrig, \edge, to always come first, and also to update output routing before input values. i'd like to put these changes in the next scene-breaking bees version (0.5.0).

  • how do we remove characters from the end of a preset name? :p

  • ha! well, with a very small patch to bees/src/pages/page_presets.c ...

    there's nothing assigned to key2 or alts. i was planning to make copy/clear functions, but one of the 3 remaining commands could be, e.g.:

    void handle_key_2(s32 val) {
    if(val > 0) {
    preset_name(*pageSelect)[cursor] = '\0';
    render_edit_string(lineRegion, preset_name(*pageSelect), PRESET_NAME_LEN, cursor);
    render_to_scroll_line(SCROLL_CENTER_LINE, 0);

    which would insert a null terminator at the cursor position.