• Products
    • Isadora
    • Get It
    • ADD-ONS
    • IzzyCast
    • Get It
  • Forum
  • Help
  • Werkstatt
  • Newsletter
  • Impressum
  • Dsgvo
  • Press
  • Isadora
  • Get It
  • ADD-ONS
  • IzzyCast
  • Get It
  • Press
  • Dsgvo
  • Impressum

Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags

    [ANSWERED] Accessing Resolume's Rest API webserver in Isadora

    How To... ?
    3
    4
    569
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jtsteph last edited by Woland

      Hello! I've been out for a few months on projects and am back to work with Isadora. Early in the year, I spent a whole bunch of time working on an isadora video performance patch for our generative audio/visual collective FFoB. I really struggled with the programming around the clip player and such using JSONs, Javascript and Streamdeck midi plugin scripting. Creating ways of saving patch information etc proved to be overly complex and just not what I wanted to be doing.

      I have moved to Resolume for the clip player and effects chain portion of the work but I am continue to use Isadora to control and modulate parameters, clip sequencing etc. I feel that the logic and tools in Isadora lends itself to thinking about relating materials in interesting ways.

      I have Isadora and resolume talking quite nicely with OSC. I am wondering, though, if there is a way of acessing the resolume rest api in isadora. It's a webserver based system. https://resolume.com/support/e...

      I would love to be able to retrieve values from resolume to use for modulating paramaters and do things like switch decks from isadora.

      Please let me know if anyone might be able to point me in the right direction.

      Thanks,

      - J

      Isadora 4.0.2, W11 PRO 13700K (in a 4U case), 128GB RAM, 4 Lane M.2 Storage, RTX 3090, Ultraleap Motion 2, Behringer UMC404HD audio interface, Streamdeck XL, Streamdeck+, KorgNano Kontrol2.
      Website: http://justinstephenson.com

      DusX 1 Reply Last reply Reply Quote 1
      • DusX
        DusX Tech Staff @jtsteph last edited by

        @jtsteph

        After a brief look at the page you linked, it seems that the 'Get/Post URL Text' actor should allow you to communicate with the server.

        Troikatronix Technical Support

        • New Support Ticket Link: https://support.troikatronix.com/support/tickets/new
        • My Add-ons: https://troikatronix.com/add-ons/?u=dusx
        • Profession Services: https://support.troikatronix.com/support/solutions/articles/13000109444-professional-services

        Running: Win 11 64bit, i7, M.2 PCIe SSD's, 32gb DDR4, nVidia GTX 4070 | located in Ontario Canada.

        J 1 Reply Last reply Reply Quote 1
        • J
          jtsteph @DusX last edited by jtsteph

          @dusx, Thank-you! This works perfectly and is very exctiting. For example, if I want to build a random clip sequencer for a resolume layer that I can trigger using some fun logic or a wave in isadora, I can get the number of clips in the resolume layer using:

          Get/Post URL actor with this URL to the Rest AP for the layer/[index] information: 

          http://127.0.0.1:8080/api/v1/composition/layers/1

          It returns a huge JSON. I parse the json for the clip info and loop through all of the clip slots and count the number of non-empty clips and return that value:

          // iz_input 1 "layerInfoJSON" - The JSON string from Isadora's global variable actor
          // iz_output 1 "clipCount" - The number of clips with media in the layer
          function main() {
              // Parse the input JSON string
              const layerInfo = JSON.parse(arguments[0]);
              // Initialize the clip count
              let clipCount = 0;
              // Count the clips that have media (name exists and is not empty)
              layerInfo.clips.forEach(clip => {
                  if (clip.name && clip.name.value) {
                      clipCount++;
                  }
              });
              // Return the clip count
              return clipCount;
          }

          Then I can use this count for a shuffle actor to choose a clip index that is in range and then and send an osc command:

          /composition/layers/1/clips/[clip index]/select

          Using a combination of OSC and the Rest API, I am going to be able to control Resolume to a very deep degree. It's super exciting as I can use their nice "deck", "layer", compositing and playback system to do the hardcore playback stuff and then use Isadora's logical depth for all of the parameter modulation, sequencing etc.

          I even have a python script to build decks in resolume from a set of media folders to emulate the "rebuild media from folders" function in Isadora.

          Sunny day.

          Isadora 4.0.2, W11 PRO 13700K (in a 4U case), 128GB RAM, 4 Lane M.2 Storage, RTX 3090, Ultraleap Motion 2, Behringer UMC404HD audio interface, Streamdeck XL, Streamdeck+, KorgNano Kontrol2.
          Website: http://justinstephenson.com

          Juriaan 1 Reply Last reply Reply Quote 4
          • Juriaan
            Juriaan Tech Staff @jtsteph last edited by

            @jtsteph


            Wow, that looks like a powerful combo!

            Isadora 3.1.1, Dell XPS 17 9710, Windows 10
            Interactive Performance Designer, Freelance Artist, Scenographer, Lighting Designer, TroikaTronix Community moderator
            Always in for chatting about interaction in space / performance design. Drop me an email at hello@juriaan.me

            1 Reply Last reply Reply Quote 0
            • First post
              Last post