OpenMusic - Linux-port Anders Vinjar - Jean Bresson May 3, 2014 - - PowerPoint PPT Presentation

openmusic linux port
SMART_READER_LITE
LIVE PREVIEW

OpenMusic - Linux-port Anders Vinjar - Jean Bresson May 3, 2014 - - PowerPoint PPT Presentation

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives OpenMusic - Linux-port Anders Vinjar - Jean Bresson May 3, 2014 Anders Vinjar - Jean Bresson OpenMusic - Linux-port OpenMusic Intro History and


slide-1
SLIDE 1

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives

OpenMusic - Linux-port

Anders Vinjar - Jean Bresson May 3, 2014

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-2
SLIDE 2

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives

Outline

1 OpenMusic Intro 2 History and Motivation 3 The OM-Linux Project 4 Conclusions and Perspectives

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-3
SLIDE 3

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Visual programming language Composition Analysis Sound synthesis etc...

OpenMusic Intro

OpenMusic is : A visual programming language A computer-aided composition environment

  • G. Assayag, C. Rueda, M. Laurson, C. Agon, O. Delerue. “Computer Assisted Composition at Ircam:

PatchWork & OpenMusic”, Computer Music Journal, 23(3), 1999. Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-4
SLIDE 4

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Visual programming language Composition Analysis Sound synthesis etc...

.. a visual programming language

Based on Common Lisp Off-line / demand-driven Local state, partial evaluations. . . Extended with editors, time structures

  • J. Bresson, C. Agon, G. Assayag. “Visual

Lisp/CLOS Programming in OpenMusic” Higher-Order and Symbolic Computation, 22(1), 2009. Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-5
SLIDE 5

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Visual programming language Composition Analysis Sound synthesis etc...

An environment for...

Music composition

  • C. Agon, G. Assayag, J. Bresson

(Eds.) The OM Compser’s Book vol 1 & 2., 2006-2008. Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-6
SLIDE 6

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Visual programming language Composition Analysis Sound synthesis etc...

An environment for...

Music composition

Contemporary composition = ill-defined ⇒ good CAC tool adapts well to human artistic processes, whatever those may be Miller Puckette: “CAC is in effect making the computer carry out thought processes previously carried out in human brains”

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-7
SLIDE 7

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Visual programming language Composition Analysis Sound synthesis etc...

An environment for...

Music research and analysis

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-8
SLIDE 8

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Visual programming language Composition Analysis Sound synthesis etc...

An environment for...

Control of DSP / synthesis tools

  • J. Bresson and C. Agon. “Musical

Representation of Sound in Computer-Aided Composition : A Visual Programming Framework”. Journal of New Music Research, 36(4), 2007.

  • J. Bresson “Spatial Structures

Programming for Music”. Spatial Computing Workshop, 2012. Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-9
SLIDE 9

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Visual programming language Composition Analysis Sound synthesis etc...

Etc...

  • J. Bresson, C. Agon, G.

Assayag: “OpenMusic. Visual Programming Environment for Music Composition, Analysis and Research.” ACM MultiMedia OpenSource Software Competition, 2011. Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-10
SLIDE 10

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Dev History Working Linux port OM, why Linux?

OM Development vs. Linux - Quick History

1997: OM release on Macintosh Common Lisp (MCL) 2003: 1st Linux attempt = OM 4 on CMUCL 2005: OM on Mac/Windows. OM-API (AllegroCL / MCL) 2006 2nd Linux attempt = OM 5 on SBCL 2008: OM 6 on LispWorks . . .

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-11
SLIDE 11

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Dev History Working Linux port OM, why Linux?

OM Development vs. Linux - Quick History

1997: OM release on Macintosh Common Lisp (MCL) 2003: 1st Linux attempt = OM 4 on CMUCL 2005: OM on Mac/Windows. OM-API (AllegroCL / MCL) 2006 2nd Linux attempt = OM 5 on SBCL 2008: OM 6 on LispWorks 2013: Linux-support - OM 6 on LispWorks

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-12
SLIDE 12

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Dev History Working Linux port OM, why Linux?

Linux port project

Started 2013 Supported by BEK Bergen Center for Electronic Arts

http://www.bek.no

In line with recent OM developments (modular code + APIs, optional external dependencies)

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-13
SLIDE 13

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Dev History Working Linux port OM, why Linux?

OM, why Linux? (motivations)

Useful addition to Linux sound/composition tools Good people - institutions, communities, users, devs Integrate with Linux apps (through eg. libraries), R&D Improve OpenMusic - general, independent (OS-es, hardware,

  • libs. . . )

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-14
SLIDE 14

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

Technical challenges

1 The OM general architecture is portable across platforms:

  • kernel is 100% ANSI Common Lisp

= easy

2 Other dependencies:

windowing & GUI toolkits to build the visual language and editors I/O and rendering (MIDI, Audio, OSC. . . )

= not so easy

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-15
SLIDE 15

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

GUI

OM is a visual programming environment, and highly dependent on graphical user interfaces: patching, programming editors visual feedback Lisp interaction, control cross-referencing, interactive help-system. . .

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-16
SLIDE 16

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

GUI

OM 6 uses LispWorks’ CAPI interface: = “cross-toolkit” (Gtk, Cocoa, Windows...) ⇒ only moderate tweaks needed to adapt OM 6 to LW-Linux: text-fonts (text-panes, comments) dimensions, screen-resolution

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-17
SLIDE 17

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

I/O and Rendering

Attempt to port old solutions = no good LibAudioStream? (already in use on other platforms. . . ) Alsa? Linux-native ⇒ More general solutions: Lisp, JACK, Port. . .

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-18
SLIDE 18

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

I/O and Rendering - MIDI:

MidiShare replacement: Midifile (SMF) R/W ⇒ CL-MIDI (message formatting, file I/O) Scheduling ⇒ OMs new internal scheduler, JACK scheduler,

  • ther schedulers (SC3)

Communication ⇒ Jack, PortMidi

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-19
SLIDE 19

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

I/O and Rendering - AUDIO:

LibAudioStream replacement: File I/0 ⇒ libsndfile Lisp wrapper scheduling and rendering ⇒ Jack: client, ports, hw, I/O buffering, callback-engine

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-20
SLIDE 20

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

CL JACK-client

CL-Jack client - MIDI & Audio I/O & scheduling self-contained (CL + CFFI) AUDIO + MIDI I/O (hw, external apps) Scheduling, queues, buffers (CL and libjack) Callbacks programmable in CL News (30. april 2014): PortMidi substitute for CL-Jack MIDI client in current download.

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-21
SLIDE 21

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

Offsprings

Example clients, hooks, callbacks, external processes: mplayer - subprocess-control SuperCollider client (OSC)

control (start, connection, operation) I/O callbacks on scheduler

Fluidsynth client

internal softsynth

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-22
SLIDE 22

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

Offsprings

  • Plans. . .

CCRMA-ware – CM, CLM, Sndlib

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-23
SLIDE 23

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Technical challenges GUI I/O and Rendering Extensions Distribution

packaging, distribution

OM is LGPL (LW is not) .rpm - (sources + image, dependencies) .tar.bz2 - (sources & image) recipes for preparing dpkg-compliant packages at the forum:

http://forumnet.ircam.fr/user-groups/openmusic/

dists?

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-24
SLIDE 24

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Project Status Conclusions

Status may 2014

Working Linux-port No (known) big obstacles common source-tree for all 3 platforms

modular code + APIs ⇒ reusability dependencies less strict ⇒ user/programmer choices

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-25
SLIDE 25

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Project Status Conclusions

Get involved

Further development depends on involvement: Users - feedback, bug-fixing, ideas Linux-developers - OM + integration w. other tools Libraries, (eg. OM-SoX, LilyPond) IRCAM developer(s)

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-26
SLIDE 26

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Project Status Conclusions

Linux “modus operandi”

Typical Linux-based projects:

  • pen source projects (JACK, ALSA, Ardour, SuperCollider,
  • Lilypond. . . )

user-groups, sourceforge, github active participation on many levels:

pro semi-pro end-user involvement

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-27
SLIDE 27

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Project Status Conclusions

Conclusions

a functional Linux-port is provided x-platform OM is better OM new solutions useful on osx/win get good projects going - to further development

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-28
SLIDE 28

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Project Status Conclusions

Conclusions

a functional Linux-port is provided x-platform OM is better OM new solutions useful on osx/win get good projects going - to further development

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-29
SLIDE 29

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Project Status Conclusions

Big thanks!

BEK - http://www.bek.no - Trond Lossius ANR EFFICACe - ANR-13-JS02-0004-01 Lisp-developers, CCRMA (Bill Schottstaedt, Rick Taube,

  • thers)

Linux music community

Jack developers beta-testers

OM users, mailing-lists, forums

Anders Vinjar - Jean Bresson OpenMusic - Linux-port

slide-30
SLIDE 30

OpenMusic Intro History and Motivation The OM-Linux Project Conclusions and Perspectives Project Status Conclusions

OpenMusic - Linux-port Thanks for your attention! http://repmus.ircam.fr/openmusic/linux http://forge.ircam.fr/p/OM6/downloads

Anders Vinjar - Jean Bresson OpenMusic - Linux-port