by Halley Young
Like natural language, music can be described as being composed of various parts, which combine together to form a set-theoretic or logical entity. The conceptualized parts are more basic than the music seen on a page; they are the musical objects subject to music-theoretic analysis, and can be described using the language of functional programming and lambda calculus. This paper introduces the types of musical objects seen in tonal and modern music, as well as the combinators that allow them to combine to create other musical objects. We propose a method for automatically generating melodies by searching for combinations of musical objects which together produce a valid program corresponding to a melody or set of melodies.
by Edward Lilley
by Henrik Nilsson
by Tom Murphy
by Chris Ford
by Joe Cornelli
Whereas formal mathematical theories are well studied, computers cannot yet adequately represent and reason about mathematical dialogues and other informal texts. To address this gap, we have developed a representation and reasoning strategy that draws on contemporary argumentation theory and classic AI techniques for representing and querying narratives and dialogues. In order to make the structures that these modelling tools produce accessible to computational reasoning, we encode representations in a higher-order nested semantic network. This system, for which we have developed a preliminary prototype in LISP, can represent both the content of what people say, and the dynamic reasoning steps that move from one step to the next.
by Stephane Letz
This paper is an introduction to FAUST, a functional programming language for sound synthesis and audio processing. We assume that the reader has some familiarity with functional programming, but no previous knowledge in signal processing. The text describes several examples that the reader will be able to try online using a web browser. These examples are preceded by two more technical sections presenting some aspects of the language.
by Ivan Perez
Functional Programming brings a promise of highly-declarative code, efficient, parallelisable execution, modularity and reusability. In spite of these advantages, the use of pure Functional Languages in commercial games is still rare. This is partially due to the lack of backends for multimedia, production tools, and demonstrations that functional abstractions work for other than non-trivial examples. In this paper we present GALE, a Graphic Adventure Library and Engine implemented in Haskell. Our engine implements the basic common features available in similar commercial engines for graphic adventures. We show a high-level abstract definition of game descriptions that allows us not only to run them, but also to analyse them in compile time. We also demonstrate how this description allows us to provide novel features not available in traditional engines. Our system works on iOS, Android and desktop, and is accompanied by a development environment to compose the games with no prior programming skills.
by Stian Veum Møllersen
by Simon Archipoff and David Janin
In this paper, we aim at defining a simple and sound mathematical framework for describing temporal media programming language semantics. It occurs that semigroup theory offers various concepts that are especially well suited for this purpose. As a result, a fairly general programming scheme can be defined in order to specify, compose and render both spatial media objects (e.g. 3D drawings) and timed media objects (e.g. Animation or Music). Each of these constructs is specified in Haskell via an adequate type class definition and an associated uniform data type construct. A simple monoid based semantics model of the turtle command language of Logo is detailed and extended throughout the paper. This allows for providing step by step introductions and usage examples of the algebraic concepts and constructs our proposal is based on.
by Simon Archipoff and David Janin
In this demo we aim at presenting the basic feature we have put in practice via the definition of Octopus: a programing language embedded in Haskell for complex description of (reactive) 3D animations. As a front end, Octopus simply extend the LOGO’s Turtle command language to 3D and time dimension, inheriting Haskell do notation via an embedding of the underlying semantics monoids into IO monads. As a back end, most of the rendering is directly described as OpenGL shaders performed by the GPU allowing thus fast rendering with low communication bandwidth between Haskell (CPU) and GLSL (GPU). The resulting source code should soon be made available for participative development of the Octopus language. A GHCi-compatible version of our current (compiled) version should also allow for making the demo interactive.
9th September 2017