Skip to content

A sophisticated controls preset manager module you can add to your TouchOSC surfaces.

License

Notifications You must be signed in to change notification settings

bobbadshy/touchosc_shiva_preset_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shiva Preset Manager

Shiva Preset Manager is a sophisticated preset module (OSC template) that can be added to your existing TouchOSC control surface to save, load and manage presets of your control settings. Check out the detailed feature list below!

If you like this software, and use it frequently or in a commercial context, please consider supporting the project with a small donation! Check out the Donations section at the end of this Readme. Thank you! 🙂

License note: Please note that starting with version v0.2 the license for this repository has changed from MIT to GPL-3.0. Thank you!

Contents

Supported features:

  • Select controls by:

    • MIDI message attached

    • OSC message attached

    • Special string prefixes at start of a control's tag field value:

      To explicitly include or exclude single controls or a whole group, add either the string "shiva" or "noshiva" to the start of the control or group tag!

  • Optionally limit preset to a certain base group, so multiple preset modules can be added to a surface, e.g. one on every pager page.

  • Saves the controls' x, y, and text values into the preset.

  • Extended Manager mode

    The default mode. Switch between modes by tapping the toggle icon on the title bar.

  • Direct Access mode

    Easy and quick access to all saved presets through navigation buttons, or by intuitive swiping through preset pages.

  • Small collapsed mode

    Tap on heading to switch between collapsed and normal mode.

  • Copy, paste, and delete presets between preset slots through context menu.

    The context menu is invoked when you long-tap (hold) on:

    • The small selected preset no. display in Extended Manager mode, or
    • Any of the preset buttons in Direct Access mode.
  • Preset name editor

    • Tap on the bigger multi-line name display to edit the currently active preset name.
  • Interactive settings

    Settings can be changed on-the-fly in the running TouchOS surface:

    • Long-tap (hold) the toggle icon on the title bar to open the settings page.
    • When choosing the control select mode in the settings, the number of recognized controls is indicated, and all selected controls are blinked shortly.
  • Fail-safe load and save by requiring "Save" or "Load" function select.

  • Automatic and manual preset crossfading

  • "Randomize all controls now!" option (available in the interactive settings).

  • Last preset is automatically loaded on surface startup.

  • Auto-detect and indicate if controls have been modified since last preset loading.

    • Tap on the single-line preset info display to blink all controls that currently differ from preset values.
  • Restore controls working state cache with 10 undo steps, if you accidently loaded a preset and want to revert to a previous working state.

  • A basic skin settings config group in TouchOSC Editor view, to allow quick changes to colors, borders, backgrounds, etc. of elements, and apply those changes at startup.

  • ...

Demo video

A short demonstration is available on YouTube:

Performance test with 200 controls:

Screenshots

  • Extended panel

    Fail-safe loading and saving requires function select before tapping "ENTER".

image

  • Direct Access panel

image

  • Fully collapsed (tap on heading)

image

  • Fader

Selecting a duration.

image

  • Fader active

image

  • Copy-and-Paste menu

image

  • Interactive settings

    Settings can be changed on-the-fly.
    Long-tap (hold) the toggle icon on the title bar to open settings.

image

  • Preset name entry

image

  • Large keyboard

    Large keyboard can be selected in interactive settings.

image

  • Preset manager module in TouchOSC editor view:

image

  • Preset manager module offers some basic skin setting in editor views:

image

  • To change colors or borders, open the "skinSettings" group, and edit colors or borders on the right:

image

Usage

  • Download and open the preset module .tosc file in the TouchOSC editor.
  • Copy and paste the control into your surface.
  • Go to the "config" group inside the module, and adjust the "Preset root control" setting.
  • Enjoy!

Re-using the self-contained on-screen keyboard group for your own surfaces

The on-screen keyboard (control group groupKeyboard) used in the preset manager is self-contained and re-useable. If you want to use it separately in your control surfaces, you can copy just the groupKeyboard to anywhere in your surface.

The keyboard control will set itself to visible and interactive upon receiving a notify() message, and hide itself again upon closing.

Short demo video on how to copy and use it in your template:

LUA script for using the keyboard group with arbitrary controls: (click to expand)
  • From your label or text control, use a lua script to send a notify() message to the keyboard group:

    -- reference to the keyboard control
    local kbd = self.parent.children.groupKeyboard
    
    function onValueChanged(k)
      -- send on toucch relase
      if k == 'touch' and not self.values.touch then
        -- it sends its own ID and its text value
        kbd:notify(self.ID, self.values.text)
      end
    end
    
    function onReceiveNotify(cmd, text)
    -- receive the updated text back from keyboard control
      self.values.text = text
    end
    

Download

Check the Releases section.

Bug reports, Feature Suggestions or Contributing

Please file an issue in the Issues section.

As this is just a hobby project in my freetime, I cannot promise I will get to any of them, but nevertheless, suggestions and bug reports are welcome! 🙂

If you have any ideas or want to contribute to the project yourself, feel free to fork it and submit the changes back to me.

Planned features wishlist

  • Support send/receive presets over MIDI SysEx, for persistent storage e.g. in a MIDI Librarian, or for live sharing over MIDI with other users that use the same OSC template for their gear :). See discussion and MidiHax repo with the code snippets for handling MIDI SysEx encoding/decoding in TouchOSC templates.
  • Place the presets table globally, as a sibling to the preset module. This will allow upgrading the preset manager module without losing your presets :)
  • Add a "Save" option to context menu in Direct Access mode, to allow saving the current modified state to a new preset slot.
  • ...

Links

Donations

This is an Open Source software and free to use for everyone in any which way possible! :)

PayPal
If you feel this template made your life a lot easier, and that it is exacly the thing you were looking for, then you can buy me a beer 🍺 (..or beers 🍻..) and I will merrily put out a toast to you for saving yet another evening! 😃

(I currently only have a PayPal button, but I may check out getting a Patreon or some "Buy me a coffee" in the future.)
image

Many Thanx and Enjoy!