BandM sig -- Components of the Project
bt&ml, 2022-09-29


[siglogo]
The project sig is about various aspects of realtime signal processing.
(Currently the signals are one-dimensional, for instance audio signals; an extension to two-dimensional / graphical signals is future work.)

The basic paradigm is that of synchronous data flow networks, which is well-proven in many predecessor languages and systems.

The final target is a new computer language to define and execute such a network, with sound semantic foundation and practical reliability. On the way, we investigate various evolutionary stages of embedded languages and standalone static analysis tools and models.

The currently most active stage of evolution is the sig-adLib package. It is ultimately intended as the runtime support and target language for the compiler of a fully declarative language, sig. But it can be already used as a stand-alone product, an embedded domain-specific language for signal processing, hosted in Java. In that case, typical static analysis jobs, such as the checking of causal dependencies and cycle rates, have to be performed manually by the programmer.

The following list points to the relevant publications, in reverse chronological order:

Sig-adLib --- A Compilable Embedded Language for Synchronous Data-Flow Programming on the Java Virtual Machine (Draft Proc. Trends in Functional Programming, 2022, pp. 84–99) This paper describes the current state of sig-adLib (major version 2), with comparison to state-of-the-art declarative languages and first just-in-time compilation benchmarks. It is recommended as a starting point for hands-on experiments. Slides for the talk are available.

Sig adLib --- Mostly Compositional Clocked Synchronous Data-Flow Programming in Java (In "Proceedings of the workshop of the GI-Fachgruppe Programmiersprachen und Rechenkonzepte", 2018, pp. 31-84). This paper describes first lessons learned with sig-adLib (major version 1). It is outdated in terms of implementation, but contains some relevant thoughts.

Higher-Order Causal Stream Functions in Sig from First Principles (Software Engineering Workshops, CEUR Workshops, Vol.1559, pp. 25–39, 2016) This paper explains how to derive the core operations of the semantic model of sig, phrased in the rather obscure theory of Mealy coalgebras, from more standard mathematical representations of stream functions. It is recommended as an introduction to the coalgebraic thinking underlying sig semantics.

Laminar Data Flow: On the Role of Slicing in Functional Data-Flow Programming (Trends in Functional Programming 2015, LNCS 9547, pp. 85–103) This paper explores the use of static analysis and transformation of declarative data-flow programs, namely program slicing, to detect stratified multiple cycle rates and refactor the program accordingly. It provides an alternative to clock calculus, an approach popular with "French school" synchronous languages.

On-Line Synchronous Total Purely Functional Data-Flow Programming on the Java Virtual Machine with Sig (Proceedings 12th International Conference on Principles and Practice of Program, pp. 37–50, ACM 2015) This paper discusses first lessons with a prototypic sig compiler in terms of a live audio synthesis demo (digital organ). It is of historical interest, mostly because the same demo setting has been reiterated for sig-adLib.

The paper The Shepard Tone and Higher-Order Multi-Rate Synchronous Data-Flow Programming in Sig (Proceedings 3rd ACM SIGPLAN International Workshop on Functional Art, Music, Modeling and Design, FARM 2015, pp. 6–14) This paper discusses requirements on full-fledged sig for the domain of music synthesis, namely higher-order (component-valued) signals and multiple clock rates. The running example is the Shepard Tone, or Glissando, a famous acoustic illusion.

Foundations of Total Functional Data-Flow Programming (Proceedings 5th Workshop on Mathematically Structured Functional Programming, MSFP 2014, Grenoble 2014., pg.143–167) This paper provides a thorough foundation of formal semantics for synchronous data-flow programming with case distinctions and delay, in terms of (monadic) Mealy coalgebras.

tSig : Towards Semantics for a Functional Synchronous Signal Language (Tagungsband 16. Kolloquium Programmiersprachen und Grundlagen der Programmierung, Westfälische Wilhelms-Universität Münster, 2011)

Further sources of information are the sig adlib 2 api doc and the muSig user's documentation(UNDER CONSTRUCTION) .




made    2023-08-30_09h54   by    lepper   on    happy-ubuntu          Valid XHTML 1.0 Transitional Valid CSS 2.1
produced with eu.bandm.metatools.d2d    and    XSLT    FYI view   page source text