sound synthesis with foo once again text & parenthesis but less - - PowerPoint PPT Presentation

sound synthesis with foo
SMART_READER_LITE
LIVE PREVIEW

sound synthesis with foo once again text & parenthesis but less - - PowerPoint PPT Presentation

sound synthesis with foo once again text & parenthesis but less silly non-realtime sound synthesis written in objective-c and scheme text interface (scheme) priority to high quality audio rendering over performance


slide-1
SLIDE 1

sound synthesis with foo

“once again text & parenthesis – but less silly”

  • non-realtime sound synthesis
  • written in objective-c and scheme
  • text interface (scheme)
  • priority to high quality audio rendering over performance

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 1

slide-2
SLIDE 2

foo history

  • free software project
  • *1993 zkm: gerhard eckel, ramón gonzález-arroyo
  • NeXT platform, NeXT foundation library
  • 1994: presentation at ICMC
  • 1996 zkm: last version for a long time (2.1)
  • only user: ramón gonzález-arroyo
  • 2003 fraunhofer institute: first port to linux (martin rumori)

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 2

slide-3
SLIDE 3

“foo”: the name

  • from RFC 3092 (etymology of foo and bar):

"Used very generally as a sample name for absolutely anything, esp. programs and files (esp. scratch files)."

  • in the beginning the admin was not willing to setup a cvs

repository

  • now: sourceforge project (takeover of the “foo” sample

project) do they know what they did?

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 3

slide-4
SLIDE 4

parts of foo

  • foo kernel (objective-c)
  • foo interface (c/objective-c)
  • foo control library (scheme)
  • abstraction
  • envelope
  • interface-lib
  • node
  • processes
  • tools
  • utilities

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 4

slide-5
SLIDE 5

the first sine wave

(syn 1 3 (output~ 1 (sine~ (~ 440))))

  • syn convenience macro: channels, synth duration
  • ~ indicates signal-processing module
  • output~ to specific channel
  • “everything is a signal”

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 5

slide-6
SLIDE 6

key features of foo

  • simple
  • clean semantics of context, task, time
  • scalable sinc interpolator for resampling

(expensive!)

  • bandlimited noise
  • incremental mixing

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 6

slide-7
SLIDE 7

context – task

context

(output~ 1 (gate~ (noise~) 2)) (output~ 2 (...))

task

reference, offset, samplerate..

context

(output~ 1 (gate~ (noise~) 2)) (output~ 2 (...))

task

reference, offset, samplerate..

soundfile

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 7

slide-8
SLIDE 8

future plans

  • port from old-stype NeXTStep to OpenStep
  • LADSPA plugins as modules
  • port to mac os x
  • dynamically loadable modules (unit generators)
  • typed signals
  • rudimentary realtime support (→ jack support)
  • cleanup context/task semantics

lad meeting #2 zkm karlsruhe, april 30th 2004, martin rumori: foo sound synthesis – p. 8