Personal tools
You are here: Home Members jamoma's Home BEKint jamoma's Home Preset System
Views

The current implementation of presets in Jamoma is the simple system where by values are stored and recalled by number or name. A preset file may contain multiple presets which may be stored or recalled. There a number of new features, requests, and possible extensions to the system for consideration. This includes a couple of item in the Sourceforge Feature Request Tracker:
  • http://sourceforge.net/tracker/index.php?func=detail&aid=1684253&group_id=78108&atid=552173
  • http://sourceforge.net/tracker/index.php?func=detail&aid=1695773&group_id=78108&atid=552173
  • This green paper page aims to summarize all of the issues on the table for consideration.
    This is a short dialog from the jamoma-devel list from Pascal:
    Having been pattr-addict with Z for a while, I have some ideas on the  
    question :
    
    1/ with PSTO, there is the message (pattr-name):active $1 that we can  
    send to PSTO to determine if a pattr is active or not in the preset- 
    recalling....
    In Z I have a toggle for a kind of "recall-safe" function, only  
    applying to volume and fx sends... (which of course is prioritized in  
    such a way that it is recalled before the volume and sends.)
    Typically I turn on the recall-safe function (sending active 0for tis  
    pattr to PSTO) when the volume (or send) is handled manually, as a  
    parameter for play...
    Otherwise, it's also very handy that the volume can be recalled with  
    the presets.... and in fact, in Z, it's absolutely necessary !
    
    I was thinking to generalize this for all parameters when they are  
    used as a mapper's output (which means they are played), in Jamoma...  
    which isnt yet implemented... It could avoid having leaps when  
    you're playing with a parameter while passing from a preset to the  
    other...
    
    2 /It can be dangerous to have mute and bypass as presettable  
    parameters, in this kind of usage (pattr-like...), as you seem to  
    warn...
    But it can also be useful also sometimes, because you can decide that  
    this or that module is muted or bypassed for this (global)-preset...
    
    ___
    
    Finally, all this depends on how one uses the presets,
    and in which combination with PSTO and jmod.cuelist, i.e. how one  
    decides to build his unfolding of parameters in time...
    
    The idea of having an attribute, like @preset_enable or something  
    sounds good to me.
    it could then be accessible remotely, using the message  
    this_parameter:preset_enable $1...
    
    Then we could decide that for all general /audio functions it could  
    be set as 0 by default,
    but that it could also be set for each other parameter in the way  
    that the module creator is inclined to...
    
    Hope this helps...
    
    Best,
    
    p
    
    
    ___
    
    By the way, there's something that I wanted to ask for a while :
    could it be possible to have the preset number of a module  
    pattrified, so that we could access it from a PSTO ?
    More or less, I was thinking about something like PSTO's 'greedy'  
    mode, which allows to handle data individually for each parameter, or  
    globally as a module's state...
    Of course, then we have to see how this combines with all parameters  
    being recalled by the same PSTO (the best would be that it could be  
    avoided)... because I don't think we can disable pattr (for the  
    module's parameters) like that .... or is it possible in  
    jcom.parameter ?
    Is this clear ? I'm not sure...
    Anyway, this is no top-priority... and I think I'll have to think a  
    bit more about all this, but I just wanted to know if this seems  
    feasible, or not at all ??
    
    
    Le 6 janv. 07 à 19:53, Timothy Place a écrit :
    
    I've been working today on porting some of my old modules to the new
    core.  Presets in Jade 1.1 were very much a manual module-by-module
    implementation rather than an organized system.  One issue that comes
    up is that if you have a lot of presets for an audio module, then
    those presets control the gain parameter for the module.
    
    Would it make sense to add an attribute to parameters such as gain,
    mute, and bypass to ensure that they are not changed by preset
    recalls (unless the preset is named default)?
    
    What do you all think?
        Tim
    

    We also have issues surrounding the creation of external interfaces to Jamoma's preset system. The current system was built on the idea that the preset system is essentially private to a module. However there is desire to create additional interfaces (both inside of modules and outside of them) for doing things like removing presets, adding them, updating them, duplicating or copying them, etc. Some snippets of email on jamoma-devel follow... Pascal writes:
    so, concerning the preset stuff, I agree that we should find a GUI solution for storing/copying/deleting presets.
    The list of presets is already included in the topleft menu.
    I would recommend just adding a "store as current preset" item
    and maybe another "manage presets" item that would make a little UI pop up (something like a of dialog patch included in jcom.gui....) allowing one to save the current state as some other preset (including naming it), copying (which is just basically storing it to another position...) and deleting... etc...
    
    Here is an email correspondance with Yacine:
    some of you might remember I was working on a sequencer.
    what I had in mined, when the basic sequencer worked, was first to have gui to store and recall presets of a 32 step sequence.
    I did something that works like the the good old preset object (shift click to save and click to recall for backward compatibility with my own brain processes) just with message boxes that are colored if the corresponding slot is used.
    I wanted those color to update every-time saving a new preset and when loading presets from an xml file, it's the reason why I thought a flag attribute would be better than a dump message, though if the dump can be triggered by a successfully_loaded_settings message or something, this is also fine for me.
    another reason besides the coloring for keeping a trace of which slots are in use is there is a weired bug happening when trying to recall an invalid preset, part of dsp process are frozen until max is restarted (i ve just submitted this one to the tracker)
    the next step which I m working on now is to have n virtual pages of those 32 steps that could be looped for example and easily accessed, so this is like a second dimension in the array of presets.
    I think I need n temp_preset_(1 to n) to work with which should auto_save each time recalling the next virtual page.
    this is where I need the /preset/copy feature to copy pages and to save to a non_temp_preset_(1 to n) 
    from another point of view, the virtual pages could be stored in a [jcom.parameter @type msg_list] when only showing a part of the list in the matrix control of the module but the reason I prefer the presets is the 500 and something limit of the msg_list type and I would prefer that n has no limit.
    
    I hope I made myself clear enough now.
    
    what do you guys think?
    some want to have a look at the patches?
    
    BTW, I didn't post any comment on my thoughts about the workshop that was because I was way too busy working on my modules, Jamoma is now a central tool in my work, I feel like its modularity base will change the way I patch from now on,
    and I want to say a big THANK YOU to all the people involved in this project.
    and special thanks to the GMEA and especially to Pascal for organizing the workshop and for inviting iMAL's people to Alby.
    
    //yac
    
    
    On Apr 5, 2007, at 3:23 AM, yacine sebti wrote:
    
    i m implementing a gui to handel the presets from within a module, I
    thought of asking for something like a preset/dump_flag to the
    [jcom.hub] to receive the preset list every time it's updated...but I
    found a workaround adding an output to the [jcom.guy] to route the
    NEW_PRESETS and NEW_PRESETS_START messages , could this be
    implemented in the official release? or maybe only adding an outlet
    to make what comes out of [jcom.remote __GUI__] available in the
    modules could serve more purposes and give a more general solution.
    
    On 06-avr.-07, at 16:17, Timothy Place wrote:
    
    I think a better way to do this would be to change the existing / 
    presets/post message to the hub into /presets/dump etc.  This would  
    be consistent with how query a module for parameters and other  
    information, and would allow for preset information to be harvested  
    from a Max patch outside of a module.
    
    As Pascal suggested, on this list at least, it is super helpful to  
    know what the final goal is.   Trond has mentioned adding this to the  
    feature tracker.  Has anyone opened a feature tracker for this issue  
    yet?
    
    Thanks,
        Tim
    

    So we need the following, at least:
    /preset/remove
    /preset/copy
    /preset/rename ?
    /presets/names/get (check with other messages for namespace)
    


    new parent,

    Powered by Plone