Skip to content
reno- edited this page Apr 18, 2012 · 40 revisions

Spaces and Nodes for media data controls and organisation

Description

The Span project is a kind of CMS (Content Management Software) for media instruments.
It works with notion of project which could be highly customized for each of them, or/and could run local patches and use distant existing namespace (in localhost or with a network).
It has a powerfull mapping engine and is natively Open-Sound-Control. It could be used with a lot of protocols such as OSC, MIDI, DMX, ARTNET, SERIAL, VISCA, PJLINK, MINUIT, COPERLAN and more…

The project concept

A SPAN project file is a JSON that have multiples index and dictionaries. This format has been choose for its fastness and simplicity. However, a special syntax is needed, and we could use this online viewer to read it or another JSON viewer. A lot of little utilities should be easily found over the web.

Wiki pages

The project file itself : What is a SPAN project and description of the project file.
What does it really do? : Description of what SPAN does internally.
Span abstraction is the only thing you need to put in the patch to have the span environnement ready.

FEATURES

  • Open-Sound-Control communication
    • Multicast - Unicast - Broadcast
  • Project-manager
    • files and folder handling
    • tags and custom taxonomy
  • Multi-mapping
    • One-to-Many mapping
    • Multi-modes mapping
  • Events manager
    • Polyphonic cues player
  • Namespace Manager
    • Description files loading
    • Namespace-learning

Startup Step by step

  • Loadbang :
    • do a temp (RAM) dict (span_temp) with span folder path, runtime or patch, mac or windows, OS version, last-project.
    • load settings dict (span_settings) from library folder which is in the library folder like span patch (you cannot move them). AppVersion, AppName, credits and "last-project-path" if there is one. "none" otherwise.
  • Project load :
    • If previous path : Check if a project file is in the specified path (span_project.json).
    • if none : Create a temp folder in span main folder and create a project in from the empty template.
  • Namespace load :
    • Make a request for json files with "namespace" tag, and add them to the namespace-dict (span_namespace).
    • Overwrite namespace-dict with config values which are in project file.
Clone this wiki locally