patches schemma

2009-09-14
2013-05-23
  • Herbert Laroca
    Herbert Laroca
    2009-09-14

    First of all, i would like to say that nick did a excellent job !
    Second, there are a schemma that shows the sctructure of the patches of bristol synths (*.mem) ? I´m thinking… it´s possible to make a conversion tool that converts *.fxb (vst) files into (*.mem) bristol patches ?
    (sorry about my english)

     
  • Nick Copeland
    Nick Copeland
    2009-09-14

    There is no conversion tool for taking memories from any other softsynths and making them into bristol patches. There are no plans to do this at the moment.

    The format of the bristol memories is rather basic, a few parameters for the synth type then a block of floating points forf the different parameters.

    Kind regards, nick.

     
  • Herbert Laroca
    Herbert Laroca
    2009-09-15

    ok, If i had the structures was thinking to do the conversion tool myself.
    Can you send the structure of memory files ?

     
  • Andrew C
    Andrew C
    2009-09-15

    Yeah, IMO, there wouldn't be much point to taking patches from other analog emulations (Korg's digital collection of Polysix, MS-20 and that other one that I can't remember) and converting them for use in Bristol or vice versa, it'd be, no offence herbert, a lot simpler to just re-program them (and then use your ear to fine tune the result).

    Andrew.

     
  • Herbert Laroca
    Herbert Laroca
    2009-09-15

    Ok, i understood your point of view, but  i think some benefits.
    First, it´s will eliminate the re-work.
    Second, convert the patches reprogramming is a complex task for ordinary users… ok, if you convert them and post for us….  :)
    Third, if the conversion works well it can used to tune the synths, comparing one and others…

    But i know its a complex work, maybe because the difference between the parameters….
     

     
  • Nick Copeland
    Nick Copeland
    2009-09-18

    Damn, SF has an ugly entry box for this stuff. Not enough space, and text is not sticky (not actually their fault, but the size of the box is). Anyway:

    The memory format is as below, it is one of the earliest definitions from brighton from perhaps 10 years ago now. It is an opaque structure by which I mean the float values it contains have no semantics - you cannot imply its function, type, range, etc, they just take a value which may not always be just 0.0 to 1.0 even.

    I did include a 'version' identifier, the idea was get bristol distributed (cutting a few corners here and there) and have the ability to extend later:

    typedef struct Memory {<br>
        char algo;<br>
        char name;<br>
        short count;<br> // total number of parameters
        short vers;<br>
        short active;<br> // number of active parameters
        short pad;<br>
        float param;<br>
    } memory;<br>

    At some point the intention was to revise the version to '1' and restructure the float to be more like the following:

    typedef struct BrightonMemElem {<br>
    char name;<br>
    int type;<br>
    float from;<br>
    float to;<br>
    float value;<br>
    } brightonMemElem;<br>

    The type includes things like continuous, switch, checkbutton (momentary), etc. The type and the ranges can actually be extracted from the emulator definitions which is why I never encoded them in the memory however for the stuff you want to do this is something that would need to be defined more explicitly. The name of the variable should also be in the GUI emulation however that is not true for all the emulations. With 'an amount' of work I could interpret the synth structure to autogenerate the memory formats such as the memElement given above and do that for all of them automatically. I would prefer to do the following though, add an intepreter for version-1 and have it work for just one of the emulators and then see how far you get with conversions. If it makes sense later then I can include that code for all of them (but that requires I revisit each of them and make sure the 'name' field is entered. The idea of the 'name' was for a CLI rather than GUI however that was never implemented.

    I suppose the format could be XML but that can definitely wait for version-21 or similar.

    Kind regards, nick

     
  • Nick Copeland
    Nick Copeland
    2009-09-18

    The Preview pane in SF is also broken. If you want to review the memory structure you can find it in

    bristol-0.X.Y/brighton/brightonMini.h

    Search for Memory. This is the internal structure, the only difference to the external format is that the float are appended as a block of data.

    Regards, nick.