Implementing a Librarian for panel

Home Forums General Panels, Components, Macros Implementing a Librarian for panel

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #70039
    boonier
    Participant
      • Topics: 5
      • Replies: 12
      • Total: 17

      Hi

      Is there a definitive (or close to) guide to adding Librarian functionality to a panel? I’ve seen some great work on Possemo’s Matrix 1000 panel and Goodweather’s DSI-2 one, but I’m a bit baffled as to where to begin.

      I’d like to update some panels that I’m already using with this functionality – like the JAY-V panel and TX81z.

      The issue of saving and organising patches in Ctrlr is a bit confusing, as sometimes things work, and then they are seemingly shelved – like the Snapshots I can’t seem to get to work any longer. (doesn’t helps that I dip in and out of these forums, that I don’t keep up to date!).

      It seems that the most robust solution is the example set in the aforementioned panels. I could scrabble around to figure it out in time, or just ask for a helpful push in the right direction 🙂

      Many thanks
      Si

      #70052
      Possemo
      Participant
        • Topics: 14
        • Replies: 638
        • Total: 652
        • ★★★

        Making a librarian is different for every synth. The hardest work is to understand the patch dump for a given synth. In case of the TX81z there is a very nice documentation from Yamaha.

        Before you start making a librarian you need a Lua-script that assigns incoming patch dumps to the panel. So sliders/selectors of the panel will display the actual patch. Another script collects the panel values to compose a patch dump that can be sent back to the synth or saved to disk. At this state you already have a mini-librarian that can send and load a single patch to/from disk.

        I am making librarians like this, here an example for a single patch to library:

        – put all values of the panel into a Lua-table. There are as much tables as library-slots. The tables are called someting like LibPatchTab0 to LibPatchTab99 in the case of 100 patches.

        – when saving to disk or sending to the synth, the table is converted back to a memoryblock.

        #70072
        goodweather
        Participant
          • Topics: 45
          • Replies: 550
          • Total: 595
          • ★★★

          Don’t know if you have looked at the Pro2 panel manual included in the zip file (I attach it here separately). Pages 20-26 are describing typical librarian functions you should implement.
          I will describe the implementation in the Step by Step 2.0 guide.

          But of course, as Possemo indicates, the base is to know the structure of single patch sysex then full banks sysex. From there, build load/save single patch then proceed with other functions as move/replace/copy.

          You can work with tables as Poss indicates or work with MemoryBlocks and files on the disk as I’m doing.
          Personaly, I think the MemoryBlocks are very easy to handle and at the same time are the base for sending/receiving Midi messages.
          You also have a large bunch of functions to manipulate them (https://www.juce.com/doc/classMemoryBlock). I will also descrive their usage in the Step by Step 2.0 guide.

          Good luck 🙂

          Attachments:
          You must be logged in to view attached files.
          #70077
          boonier
          Participant
            • Topics: 5
            • Replies: 12
            • Total: 17

            Brilliant – thanks for the low-down guys. Breaking it down into its components like you’ve outlined is going to make this task far more digestible. Hope I get some time this week to have a proper sit down work it out!

            Cheers

          Viewing 4 posts - 1 through 4 (of 4 total)
          • The forum ‘Panels, Components, Macros’ is closed to new topics and replies.
          There is currently 0 users and 79 guests online
          No users are currently active
          Forum Statistics
          Threads: 2,495, Posts: 17,374, Members: 77,605
          Most users ever online was 12 on January 22, 2019 3:47 pm
          Ctrlr