Various IRCAM free software: jMax and OpenMusic Francois Dechelle - - PowerPoint PPT Presentation

various ircam free software jmax and openmusic
SMART_READER_LITE
LIVE PREVIEW

Various IRCAM free software: jMax and OpenMusic Francois Dechelle - - PowerPoint PPT Presentation

Various IRCAM free software: jMax and OpenMusic Francois Dechelle dechelle@ircam.fr, IRCAM, Paris, France LAD Meeting - ZKM - March 15 2003 p.1/15 Free software at IRCAM jMax, OpenMusic, SDIF jMax GPLed in 1999 (first IRCAM free


slide-1
SLIDE 1

Various IRCAM free software: jMax and OpenMusic

Francois Dechelle

dechelle@ircam.fr,

IRCAM, Paris, France

LAD Meeting - ZKM - March 15 2003 – p.1/15

slide-2
SLIDE 2

Free software at IRCAM

  • jMax, OpenMusic, SDIF
  • jMax GPL’ed in 1999 (first IRCAM free

software)

  • “Free software” team since mid-2002
  • Partner of the AGNULA project

LAD Meeting - ZKM - March 15 2003 – p.2/15

slide-3
SLIDE 3

jMax

  • yet another implementation of MAX:

PD, MAX/MSP

  • but uses a different architectural

approach

  • full separation between GUI (JAVA) and

FTS audio engine (C)

  • FTS is a library

LAD Meeting - ZKM - March 15 2003 – p.3/15

slide-4
SLIDE 4

jMax + JACK

  • FTS scheduler runs inside the JACK

callback

  • callback is not yet RT safe: does a

select() :-(

  • configuration panel allows to connect to

already running applications

LAD Meeting - ZKM - March 15 2003 – p.4/15

slide-5
SLIDE 5

jMax ladspa object

  • use a LADSPA plugin as a patch object
  • plugin ports (audio and control) are

inlets/outlets

  • plugin is given ala applyplugin
  • no GUI for plugin

LAD Meeting - ZKM - March 15 2003 – p.5/15

slide-6
SLIDE 6

jMax LADSPA plugin

  • run a patch as a LADSPA plugin
  • audio input/output are audio ports
  • controls ports are not implemented yet
  • loads the patch in plugin instantiate()
  • runs the FTS scheduler in plugin run()

LAD Meeting - ZKM - March 15 2003 – p.6/15

slide-7
SLIDE 7

jMax Python/GTK GUI

  • pre-alpha state
  • motivations:
  • Java is not free, so it is not packaged

in AGNULA, so replace it

  • Python is better for prototyping GUIs

LAD Meeting - ZKM - March 15 2003 – p.7/15

slide-8
SLIDE 8

jMax client/server IPC

  • simple protocol: int, float, string, object
  • efficient w.r.t. memory allocation

(Java/GC, real time...)

  • uses either a socket or a pipe as transport

layer

LAD Meeting - ZKM - March 15 2003 – p.8/15

slide-9
SLIDE 9

jMax client library

  • provides a simple API on top of the

protocol

  • implemented in Java, C++ and Python
  • Python code:

fts = Fts( "/usr/bin/fts") cnt = FtsSocketConnection()

  • bj = FtsObject(cnt, None, "osc~")
  • bj.send( "frequency", 440.0)

LAD Meeting - ZKM - March 15 2003 – p.9/15

slide-10
SLIDE 10

OpenMusic

  • a visual programming language based on

CommonLisp/CLOS

  • icon oriented, uses extensively

drag&drop

  • built-in visual control structures
  • classes and libraries for music

composition

LAD Meeting - ZKM - March 15 2003 – p.10/15

slide-11
SLIDE 11

OpenMusic concepts

  • patches: programmation units
  • classes: prototypes for objects
  • once in a patch, a class becomes a factory
  • instances often associated with an editor
  • functions and methods: LISP
  • maquettes: a special kind of patch with a

time dimension

LAD Meeting - ZKM - March 15 2003 – p.11/15

slide-12
SLIDE 12

OM Linux

  • OM development base platform:

Macintosh + Digitool MCL

  • Linux port by Gerardo Sarria and Jose

Diago (Universidad Javeriana, Cali, Columbia)

  • based on OpenMusic version 3.5
  • uses CMUCL

LAD Meeting - ZKM - March 15 2003 – p.12/15

slide-13
SLIDE 13

OpenMusic graphical layer

  • implementation of MCL graphical toolkit
  • n top of GTK
  • uses CMUCL GTK bindings
  • not complete yet: editors are missing
  • license issue ?

LAD Meeting - ZKM - March 15 2003 – p.13/15

slide-14
SLIDE 14

OpenMusic TODO

  • merge with Macintosh code (version 4.7)
  • audio layer: play sound files
  • precise scheduling for maquettes
  • MIDI layer: record and play MIDI

sequences

  • on Macintosh, uses MidiShare (GRAME)

LAD Meeting - ZKM - March 15 2003 – p.14/15

slide-15
SLIDE 15

URLs

  • jMax:

http://www.ircam.fr/jmax

  • jMax sourceforge:

http://sourceforge.net/projects/jmax

  • OpenMusic:

http://www.ircam.fr/openmusic

  • OpenMusic sourceforge:

http://sourceforge.net/projects/ircam-openmusic

LAD Meeting - ZKM - March 15 2003 – p.15/15