OpenBSD Journal

Jazz concert with OpenBSD synths

Contributed by weerd on from the audio0 at hexagone0 dept.

Everybody's favourite audio hacker Alexandre Ratchov (ratchov@) is inviting you to a concert in Grenoble (France). Read on to find out how this relates to OpenBSD:

Announcing a jazz concert here might sound off-topic, but for this one all synthesizers will run on a OpenBSD box. Unfortunately there are no sample recordings available on the web, only this site (in French).

For non-French speakers, the concert takes place at "the Hexagone" in the Grenoble area, Feb 27, 2015. You're welcome.

The music is experimental jazz using micro-tonal instruments, played by great jazz musicians: virtuoso flutist Magic Malik, Maxime Zampieri on the drums and Jean-Luc Lehr on the bass. We use acoustic instruments (fretless bass, drums) and synthesizers (flute-like synths, pads, and percussions). All synths and corresponding effect processors run on a OpenBSD/amd64 box.

There're few input midi(4) devices: a keyboard, a flute-like wind controller, a kit of drum pads, and control surface (bunch of knobs). They send short messages (aka midi events) whenever a key is pressed on the keyboard, the breath pressure changes on the wind controller, or a pad is hit with the stick. The synthesizer is a program (not published yet) that listens on a sndio(7) midithru port, calculates the wave corresponding to input midi events in real-time then sends the result for audio playback to a envy(4) based card. Then, the resulting analog signal is mixed with other analog sources (bass and microphones) and amplified. Everything is configured to have few milliseconds of latency between the moment a midi message arrives and the corresponding signal hits the amplifier.

The music is based on a theory developed by Frederic Faure which is too long to explain here, but it brings a unique sound by carefully choosing note pitches. So we use an additional program to calculate the pitch of each note submitted to the synth and to visualize various aspects of the theory to assist musicians, it also runs on the same box.

There will be a masterclass on this music presented by Malik, Frederic and me on Feb. 25, 2015. We'll discuss practical and theoretical aspects of this music, and if there's interest internals of the synths and the setup.

Maybe see you at the masterclass and/or for a beer after the concert.

So, if you happen to be in the neighbourhood, make sure to stop by. Thanks to Alexandre for his story!

(Comments are closed)


Comments
  1. By brynet (Brynet) on http://brynet.biz.tm/

    I think this qualifies as a sample of ratchov@ audio mixing abilities, "Sonate aux insomniaques" was the extra track for the 5.1 release.

    http://www.openbsd.org/lyrics.html#audio_extra51b

    The concert sounds really cool, nice of him to extend an invite.

    Comments
    1. By Alexandre Ratchov (ratchov) on

      I'm amateur musician and did the extra song at home. This concert
      will be very different: there will be very talented musicians and
      the concert hall is great. I'll mostly be there to tweak the synth
      and/or trigger extra sounds.

  2. By Ralf (161.69.135.20) on

    A few milliseconds of latency sounds quite good. I wonder what configuration is necessary to achieve that and what exact hardware is used for that.

    I've done something similar on Linux with jack and an envy based audio interface. It was pretty tricky to get below 10ms latency. The standard kernel wouldn't do, a real-time enhanced kernel was needed and it takes some time to get all moving parts to work together.

    Comments
    1. By Alexandre Ratchov (ratchov) on

      The hardware is a recent desktop box with a ESI-Julia
      audio card. Intel i5 at 3.3GHz, with 8GB of ram. The wind
      controller is a Akai EWI-USB, and the control surface is a
      Behringer BCF-2000.

      I use "-z 120" sndiod option to decrease to default minimum
      audio latency. The synth runs with increased scheduling priority.
      Few tips for performance:

      OpenBSD is not a real-time OS, so leave enough CPU for the
      synths, i.e. avoid programs spending too much CPU time in
      kernel mode like web browers. I typically have xfce running
      with few xterms and my audio stuff. Don't try to compile your
      kernel during performance :)

      MP kernels have issues with interrupts (interrupt handler
      may spin waiting for the kernel_lock held by a process). Use
      a SP kernel for now.

      Use the modesetting Xorg driver as it spends less CPU time
      in kernel mode than the default intel driver.

      Disable system management mode (from the BIOS) and the acpibat
      and acpibtn drivers (typically on laptops).

      With this setup I get ~6ms latency and no single xrun during
      hours.

  3. By djm (203.217.30.84) on

    What software did you use for synths and effects?

    Comments
    1. By Anonymous Coward (212.136.9.4) on

      > What software did you use for synths and effects?

      From the article "The synthesizer is a program (not published yet) that listens on a sndio(7) midithru port".

  4. By Alexandre Ratchov (ratchov) on

    Very expressive controller, thanks for the link.

    Indeed using a continuous key pressure/position instead of a bare
    on/off switch to control the synth gives a lot of expressiveness.
    The wind midi controller I use is not bad for this (there are two
    continuous controls: breath and reed bite pressures) unfortunately
    it's monophonic and not very practical for pianists. Roger Linn's
    controller seems very cool for keyboardists.

Latest Articles

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]