March 12, 2018

GStreamer News

GStreamer 1.13.91 pre-release (1.14 rc2)

The GStreamer team is pleased to announce the second and hopefully last release candidate for the upcoming stable 1.14 release series.

The 1.14 release series adds new features on top of the current stable 1.12 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework.

The 1.13.91 pre-release is for testing and development purposes in the lead-up to the stable 1.14 series which is now feature frozen and scheduled for release soon.

Full release notes can be found on the 1.14 release notes page, highlighting all the new features, bugfixes, performance optimizations and other important changes.

Packagers: please note that quite a few plugins and libraries have moved between modules, so please take extra care and make sure inter-module version dependencies are such that users can only upgrade all modules in one go, instead of seeing a mix of 1.13 and 1.12 on their system.

Binaries for Android, iOS, Mac OS X and Windows will be provided shortly.

Release tarballs can be downloaded directly here:

March 12, 2018 11:00 PM

March 07, 2018

Vee One Suite 0.9.0 - The End of Winter'18 release

Ahoy there!

The Vee One Suite of so called old-school software instruments, synthv1, as a polyphonic subtractive synthesizer, samplv1, a polyphonic sampler synthesizer, drumkv1 as yet another drum-kit sampler and padthv1 as a polyphonic additive synthesizer, are once again released just before the season ends.

All available still in dual form:

  • a pure stand-alone JACK client with JACK-session, NSM (Non Session management) and both JACK MIDI and ALSA MIDI input support;
  • a LV2 instrument plug-in.

The changes for this end-of-season goes as follows:

  • Introducing Scala micro-tuning classes, borrowed, stirred and refactored from original Nick Dowell's amsynth code, all under the GPL umbrella, of course.
  • An internal note-key/frequency indirection table is now in place, as a baseline for any micro-tuning implementations.
  • Whether to use native file browser/requester dialogs is now an effective option when launching under NSM session management (was once disabled initially).
  • Initializing and/or requesting a New blank preset doesn't open a sample file picker dialog anymore as it was more than nagging while under on NSM sessions. (applies to samplv1 only).
  • Trying to get CC14 MSB+LSB (course+fine) running status on, no matter whether each pairing event are under 200ms apart.
  • A little hardening on the configure (autoconf) macro side.

The Vee One Suite are free, open-source Linux Audio software, distributed under the terms of the GNU General Public License (GPL) version 2 or later.

In order of (historical) appearance:

synthv1 - an old-school polyphonic synthesizer

synthv1 0.9.0 (end-of-winter'18) released!

synthv1 is an old-school all-digital 4-oscillator subtractive polyphonic synthesizer with stereo fx.




git repos:

Donate to


samplv1 - an old-school polyphonic sampler

samplv1 0.9.0 (end-of-winter'18) released!

samplv1 is an old-school polyphonic sampler synthesizer with stereo fx.




git repos:

Donate to


drumkv1 - an old-school drum-kit sampler

drumkv1 0.9.0 (end-of-winter'18) released!

drumkv1 is an old-school drum-kit sampler synthesizer with stereo fx.




git repos:

Donate to


padthv1 - an old-school polyphonic additive synthesizer

padthv1 0.9.0 (end-of-winter'18) released!

padthv1 is an old-school polyphonic additive synthesizer with stereo fx

padthv1 is based on the PADsynth algorithm by Paul Nasca, as a special variant of additive synthesis.




git repos:

Donate to


Enjoy && as always, have (lots of) fun ;)

by rncbc at March 07, 2018 07:00 PM

March 03, 2018

GStreamer News

GStreamer 1.13.90 pre-release (1.14 rc1)

The GStreamer team is pleased to announce the first release candidate for the upcoming stable 1.14 release series.

The 1.14 release series adds new features on top of the current stable 1.12 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework.

The 1.13.90 pre-release is for testing and development purposes in the lead-up to the stable 1.14 series which is now feature frozen and scheduled for release soon.

Full release notes will be provided in the near future, highlighting all the new features, bugfixes, performance optimizations and other important changes.

Packagers: please note that quite a few plugins and libraries have moved between modules, so please take extra care and make sure inter-module version dependencies are such that users can only upgrade all modules in one go, instead of seeing a mix of 1.13 and 1.12 on their system.

Binaries for Android, iOS, Mac OS X and Windows will be provided shortly.

Release tarballs can be downloaded directly here:

March 03, 2018 11:00 PM


05: Its quiet… or is it?

Hey Folks,

Its been a bit quiet on the PR front at OpenAV recently – so here an update on what’s all been going on. Apart from a nice relaxed holiday for the new year and some brain storming on new and cool ways to improve live performance, we’ve been prototyping how to have Ctlra library handle screens best… the result speaks for itself: see the banner image above!

As you can see, ~120 commits to prototype new APIs, callback methods, and how to best support “partial redraw” of the screens – a difficult feature but required for high FPS updates to screens over USB cables. Of course, our very own AVTKA now also has partial-redraw support – it indicates what area of the screen has been repainted, so Ctlra can make use of that information to optimize your screen refresh! Long story short: we’re doing this the right way instead of the easy way.

We understand that its not exactly “user visible” work right now – we’re hoping to change that very soon and start creating and releasing Ctlra enabled applications suited to become the core of your next live-performance setup!

That’s all for now – stay tuned  : )  -Harry

by Harry at March 03, 2018 09:57 PM

February 27, 2018

open-source – CDM Create Digital Music

Mammut is free software that does completely insane things to sounds

From the darkest arts in auditory alchemy, you can find gems like Mammut, a free tool that will utterly mangle digital audio into forms beautiful and chaotic.

And I mean really weird. From producing eerie, smeared convolutions of files to manipulating the spectrum of a sound in ways that are actually unlistenable (as in, they cause excruciating pain), Mammut is delightfully un-commercial and totally unpredictable.

Here’s how this all started. Last week, I noticed that popular time stretching algorithm PaulStretch had found its way into a convenient plug-in form for Mac and Windows. That opened the floodgates to lots of discussion of where to find similar tools.

If you want PaulStretch, it’s worth checking out the original, or the version now baked into free sound editor Audacity:

More tools also came up with Soundhack. As creator Tom Erbe wrote me (after I mentioned I loved his software for doing convolution all the way back to the mid 90s), he mentioned:

“++spiralstretch does a pvoc stretch on realtime incoming sound with up to 8 overlapping “stretchers”. also does granular stretching for a less spectral sound. (shameless plug)”

Mammut represents a different path to strange noises. You know you’re in for something out of the ordinary from the moment you launch it, and are treated to a woodcut of a woolly mammoth and some braying animal noises and … wind … or something. Then, with that dizzying animation looping in the background, you load a sound. You’re then able to directly manipulate the spectrum of the sound, via a seemingly random assortment of tabs with different functions. These have descriptions that range from detailed and useful to glib to … tabs that have no explanation at all, or one that says “Rather useless.”

Okay, then!

There’s some beautiful stuff in there. In addition to being able to edit a spectrum directly, you can apply more beautiful time stretching and features like convolution, which combines audio waveforms by spectra.

And there’s undo/redo, too, accessed by up and down arrows in the middle of the interface, so you can back out of decisions that just screwed up the sound. (Those you’ll find pretty readily!)

As the creators describe it:

Mammut is a rather unpredictable program, and the user must get used to letting go of control over the time axis. The sounding results are often surprising and exciting. Mammut is also ideal for common operations such as filtering, spectrum shift and convolution and it provides an optimal performance.

Mammut is old software, from pre-2007, but thanks to being built in the free JUCE environment still compiles and runs nicely. It’s a project of Notam, the electronic art research center in Oslo, and developed by Øyvind Hammer, with a UI by Kjetil Matheussen.

The “mammoth” reference is because it takes the FFT of the whole sound file at once instead of using windows / chunks of the sound. While the results here are radical, similar techniques find more practical applications – like building a smooth waveform pad synth.

Anyway, I suspect you can from here go down either a link hole looking at that research and the engineering side, or get lost playing with sounds.

I wound up making sounds with it, including convolutions of other productions I was working on, and assembled a track:

In honor of Mammut, I think it’s also only appropriate to paste in this film – enjoy!

Thanks to Jhh Löwengard for the tip!

The post Mammut is free software that does completely insane things to sounds appeared first on CDM Create Digital Music.

by Peter Kirn at February 27, 2018 03:25 PM

February 25, 2018


march concert dates

2.3. Notstandskomitee Astrastube Hamburg
16 years after block 4’s legendary Prima Party in Astrastube, Notstandskomitee returns for a concert to Hamburg. On March 2nd Malte Steiner is going to play along fellow tape-scene pioneers Sigmar Fricke and Dieter Mauson who had at one point the project DSIP together.

17.3. Codepage live coding stream
On March 17th Codepage will be a part of the 6th year birthday celebration of the Algorave, which manifests itself in 144 live streams of algorithmic dance music over 72 hours.
You can watch the stream here:

by herrsteiner ( at February 25, 2018 08:14 PM

February 24, 2018

News – Ubuntu Studio

Introducing the potential new Ubuntu Studio Council

Back in 2016, Set Hallström was elected as the new Team Lead for Ubuntu Studio, just in time for the 16.04 Xenial Long Term Support (LTS) release. It was intended that Ubuntu Studio would be able to utilise Set’s leadership skills at least up until the next LTS release in April 2018. Unfortunately, as happens […]

by rosco2 at February 24, 2018 04:09 PM

February 22, 2018

open-source – CDM Create Digital Music

Bela Mini gives you 1ms sound anywhere, to turn into anything, for £120

Make anything you want, with free music software of your choice, and <1ms latency. Bela is back, smaller than ever - a pocket-sized £120 computer for sound.

Embedded mobile tech has in recent years brought us pocket-sized, low-power boards that can match the performance of what not so many years ago we actually called a desktop computer. And that’s led to high-profile boards like the cheap Raspberry Pi. The problem has been, many of the cheapest of these machines were limited in computational power, and more importantly, had audio performance that ranged from middling to disastrously awful, both in audio quality and reliability/responsiveness.

But you shouldn’t settle for that. The whole point of building an embedded audio system dedicated to the task of music making – like a DIY effects pedal or synth or sound installation – ought to be that audio performance is better than on your PC. You’ve got a pocket-sized board that isn’t running weird file indexing, OS updates, buggy Facebook code open in twenty tabs, and the like. It ought to just do the number crunching you need for the granular delay you want to sing along with, and do it really well.

A few audio engineers have decided to brave the challenge. It’s not an easy thing to do: these little boards are so cheap that there’s not a whole lot of money to be made on them.

But one of the better projects has been Bela, first introduced in 2016. And today, its makers are taking advantage of a new board PocketBeagle board from It’s more powerful than that much-hyped Raspberry Pi, but runs on a battery and is absurdly small – the Bela Mini measures just 55x35x21mm. (Please do not eat your Bela Mini, or Tide Pods, or anything that isn’t food.)

It’s not just a small computer, though – there’s more.

Low latency. 1ms round-trip for audio, or a minuscule 100us round-trip via analog and digital I/Os.

Run your favorite free audio software. Support for the graphical patching environment Pure Data (Pd), the crazy-powerful code world of SuperCollider, plus C and C++, and community support for FAUST, Python, etc.

An IDE in your browser. Fire up your browser and use a built-in IDE with oscilloscope and spectral analysis and documentation and more.

Sensors! High-resolution sensor inputs onboard open up interesting interfacing with the real world, whether you’ve got a wearable technology idea, an interactive installation, or a unique custom interface.

The applications should be clear here. You could ditch your laptop and run a granular looper on a pocket-sized box. You could hook up some sensors and invent your own weird instrument. You could make a custom vocoder and bring this with a mic and croon along at “robot lounge night.” You could produce a runway show of electronically singing couture. You could devise a series of installations and turn into the next Nam June Paik and someday have a solo show at the Guggen– well, possibly at least some hipster gallery somewhere. You get the idea.

For now, that unique focus on audio makes this possibly the best game in town. There is one rival – the Pisound, a board that hops atop the Raspberry Pi, and couples with a custom case. The Pisound does have the advantage of onboard MIDI – both USB MIDI and MIDI DIN – but for computational power with audio, the Beagle looks stronger. (I could imagine doing an audio/MIDI application with Pisound and coupling it with an audio/sensor creation with Bela.)

Bela winds up pricing out pretty nicely, too. The smart buy is a £120 all-in-one kit (£110 intro price through March 9). That gets you cables, the Bela, the PocketBeagle base board, and a pr-flashed SD-card. If you prefer to source your own parts, you can get just the Bela Mini for £60 (£55 intro).

Here’s what’s in the kit.

It’s bigger, but the original Bela has basically the same specs and ships now if what I’ve done is make you impatient to own one now, rather than wait for May.

Basically, what’s new on the Bela Mini is really the tiny size. That opens up projects where small size matters. (The Pisound above is really just about music projects, more than wearable tech and the like, by contrast – but of course by virtue of being larger affords more space for full-sized ports!) The original Bela will remain available, with “capelets” for adding additional features.

Either way, if you’re quick, you can get out of the studio and have your battery-powered box to make weird experimental music for your friends at the beach all summer long. (Or, southern hemisphere readers, let’s say keeping your friends warm with your July beatbox busking.)

And all for the price of one basic Eurorack module. Who said electronic music was just for the rich kids?

Full specs:

Based on the PocketBeagle ( with a custom hardware cape and low-latency operating system
1GHz ARM Cortex-A8 processor, 512MB RAM (based on Octavo Systems OSD335x system-in-package)
Stereo audio I/O with integrated headphone amplifier (16 bit, 44.1kHz)
8x 16-bit analog inputs for sensors (DC-coupled; up to 44.1kHz for 4 inputs or 22.05kHz for 8 inputs)
16x digital I/Os (3.3V level)
USB host and device ports
Dimensions 55 x 35 x 21mm (including PocketBeagle)

Latency as low as 0.5ms (analog/digital input to audio output) or 1.0ms (audio input to audio output)
Browser-based IDE including oscilloscope, spectrum analyser, interactive pin diagram and onboard documentation
Support for C, C++, Pd and SuperCollider languages. Community-contributed support for FAUST, Python and others

Bela Mini launch + FAQ

Buy it:

Sample projects:


The post Bela Mini gives you 1ms sound anywhere, to turn into anything, for £120 appeared first on CDM Create Digital Music.

by Peter Kirn at February 22, 2018 01:04 PM

February 19, 2018


concertvideo by Tina Mariane Krogh Madsen

The video recording of Tina Mariane Krogh Madsen performing her piece
Varða # I at Noiseberg, Berlin (DE) from 4.February 2018 is now online:

by herrsteiner ( at February 19, 2018 10:31 AM

February 18, 2018

Linux Audio Conference 2018

Deadline extended

You might be happy to hear, that we have just extended the submission deadline by two weeks (March 15th, 2018)!
Due to unforseen circumstances the past few weeks have been quite bumpy.
All the more reason to give everyone a little more time!
We have also updated the information on the submission process regarding the upload of PDFs. We hope this will clear any uncertainties you might have.
If you have any questions, don't hesitate to contact us!

by Linux Audio Conference Team at February 18, 2018 02:18 PM

Services are back!

As you might have noticed, on January 29th the server (hosting many more websites and the affiliated mailing lists) was compromised. You can read the full recap by Jeremy Jongepier, if you're interested.
After moving all services to a new location and getting things from backups, everything should be operational by now! However, if you see any glitches with the openconf submission system, please contact us!

by Linux Audio Conference Team at February 18, 2018 11:50 AM

February 12, 2018

Libre Music Production - Articles, Tutorials and News

Libre Music Production is back online!

Libre Music Production is back online!

Two weeks ago the server was compromised. As this is where LMP is hosted, our site went down.

Everything should be working again. Please report any issues using the contact form.

Thank you for your patience!

by admin at February 12, 2018 01:41 PM

MOD Devices Blog

Tutorial: Wireless Control Chain devices

Hi again to all!

Looking at the Control Chain Arduino shield, there seem to be unlimited possibilities.

However, a lot of things require a sensor to be moved or attached to the musician. Having extra wires hanging around makes everything a lot less practical. So, to make even more awesome things possible, let’s see how we can make a wireless Control Chain device with the Arduino shield.


  1. One Arduino Uno or Due
  2. One Arduino Control Chain shield
  3. Two serial Bluetooth modules
  4. One ATTiny 85
  5. One DIP8 IC socket
  6. A sensor you want to use
  7. Some Prototype PCB
  8. Some wire
  9. (Optional) Something to put your build in.


The schematic for this build consists of 2 different modules.

schematic Arduino shield

Schematic for the receiver build

The schematic for the receiver is really straightforward. Just connect the Vin and GND of the Bluetooth module to the 5V and GND track on the CC shield. Then, connect the serial wires of the Bluetooth module to the Serial 3 port of the Arduino.

We do this because we need another hardware serial port. The reason we use a hardware serial port is that the interruption of the Control Chain library will cause problems with software serial libraries.

schematic Arduino shield

Schematic for the transceiver build

The schematic for the transmitter consists of 3 AA battery’s, an ATTiny 85, a HM-10 BLE module, and of course a sensor. The ATTiny will communicate with the HM-10 and the HM-10 will act as a wireless serial bridge. To power it all, we used three AA batteries summing up to 4,5V which is perfect for this application.

This setup leaves us with 3 available pins to use as digital I/O. The reset pin can also be used as I/O as long as you don’t pull it down to ground (or too close to ground). So, for example, you could use it for analog input but you have to keep it in a voltage range that is far enough above 0V so it won’t cause a reset.



Depending on what Bluetooth modules you’re planning to use, the next few steps may vary.

For this prototype, I’m using some HM-10 modules, which can be programmed with AT commands. This can be done with any serial interface connected to the Rx and Tx of the HM-10. To keep things simple, I used the same Arduino Due that we are going to use later on.

You can connect the serial 0 port of the Arduino to the serial port on the Bluetooth module and communicate with it through the Arduino’s IDE serial monitor.

First, you will need to query the native MAC address by sending “AT+ADDR?”. The module should return something like: OK+COND43639BBE467. In this case, the MAC address is D43639BBE467. You should first get the MAC address of both modules before continuing.

After that, you can make the modules connect. Let’s say we have module A and B. Send “AT+CON[address]” to module A with the MAC address of module B filled in and vice versa. The last thing is to send AT+ROLE0 to one and AT+ROLE1 to the other (for this application it doesn’t matter which one is master or slave).



The ATtiny code consists of nothing more than an analog.Read() function for the sensor value and a Serial.write function to send the data to the Arduino.

To upload the code to the ATTiny you can use your Arduino as done in this tutorial.


The code of the Arduino is pretty straightforward and consists of the needed Control Chain configurations, a Serial read function to read the given values and a little bit of scaling so our values fit nicely in our set range.



  1. Solder the opamp feet on the prototype PCB
  2. Solder the pin-header for the Bluetooth module on the prototype PCB
  3. Wire your sensor to the ATTiny and wire the modules as shown in the schematic
  4. Place the ATTiny and the Bluetooth module
  5. Solder the pin-header for the other Bluetooth module on the Control Chain Arduino shield
  6. Place the other Bluetooth module on the Arduino.



  1. Follow the instructions on our Github page and install the dependencies
  2. Upload the code to your Arduino
  3. Follow this tutorial to upload your code to the ATTiny 85
  4. Program your Bluetooth modules as explained above.

All done, time to test!

Connect the CC shield to your MOD DUO. If everything went well you should see a new CC device popping up.

schematic Arduino shield


Turn on the ATTiny 85 and HM-10, wait for the modules to connect (the LED on both modules should stop blinking) and assign the CC device to the actuator of your choice.

schematic Arduino shield

Address it like any actuator on the GUI

All done! You should have a working wireless Control Chain setup.

Now you may ask yourself why would I even need a wireless setup for Control Chain? Well, we found that it is extremely useful with a wide variety of sensors. For instance, we made one with an accelerometer like this:

schematic Arduino shield

Our wireless headstock accelerometer

Another example of where we used this build is to make a stretchable guitar strap. Using this setup and a piece of conductive fabric like the one seen here.

schematic Arduino shield

Our wireless guitar strap stretch sensor

Hopefully, this is helpful for all of you who wanted to see how to make a wireless setup with Control Chain and the Arduino Shield. Also don’t hesitate to come and talk to us on the forum if you have any questions about Control Chain devices, the Arduino or anything else!

by Jan Janssen at February 12, 2018 01:32 PM

February 09, 2018

rtirq update - 2018 edition

Hi there!

Almost 3 years after the last time, rtirq has been updated!

No big deal whatsoever just that scheduling policies and priorities are now reset/stop to SCHED_FIFO and 50, respectively. In fact there's no urge to update at all; the previous versions are still good to have around ;) It's just that things get a bit more politely correct on "reset" and/or "stop" modes.

The original packages available here:


nb. the rtirq init-script/systemd-service only makes sense on real-time preemptive (PREEMPT_RT) or threadirqs enabled GNU/Linux kernels.

Cheers && Enjoy!

Donate to

by rncbc at February 09, 2018 09:00 AM

February 06, 2018

linux-audio « Tag Feed

Setting up analog surround sound on Ubuntu Linux with a 3 3.5mm capable sound card

A while back, I received the Logitech Z506 Speaker system, and with Windows, setting it up was a pretty plug and play experience. On Linux, however, its’ a wholly different ballgame. For one, there’s no Realtek HD Audio control panel here, so what gives? How do you around this problem?

Introducing the tools of the trade:

You’ll want to use a tool such as hdajackretask , pavucontrol and pavumeter for the pin re-assignments and audio output monitoring afterwards respectively. The tools are installed by running:

sudo apt-get install alsa-tools-gui pavumeter pavucontrol

When done, launch the tool with administrative privileges as shown:

gksudo hdajackretask

From here, you’ll then need to re-assign each required pin. Note that this tool, depending on your sound card, will most likely detect them by the color panel layout (see the back of your card and confirm if its’ pins are color coded) or by the jack designator.

Either way, when you’re done and you select “Apply”, you’ll need to reboot and the settings will apply on the next startup.

Before you reboot, confirm that pulseaudio is configured to utilize the channel layout as desired.

Of note is that for /etc/pulse/daemon.conf , the following changes must be made (with your preferred text editor):

(a). For 5.1 channel sound, set: default-sample-channels = 6

(b). Ensure that enable-lfe-remixing is set to yes.

(c). The default channel map option for 5.1 audio should be set as:


How the tool works:

The tool generates a firmware patch (under /lib/firmware/hda-jack-retask.fw ) entry that’s also called up by a module configuration file (under /etc/modprobe.d/hda-jack-retask.conf or similar) , whose settings are applied on every boot. That’s what the “boot override” option does, overriding the sound card’s pin assignments on every boot. To undo this in the case the configuration is no longer needed, just delete both files after purging hdajackretask.

An example:

To get the Clevo P751DM2-G‘s Audio jacks to work with the Logitech Z506 surround sound speaker system that uses three 3.5mm jacks as input for 5.1 surround sound audio, I had to override the pins as shown in the generated configuration file below (confirm with the screen shots attached at the bottom for my use case, your mileage may vary depending on your exact sound card):

(a). Contents of /lib/firmware/hda-jack-retask.fw after setup:

0x10ec0899 0x15587504 0

0x11 0x4004d000
0x12 0x90a60140
0x14 0x90170110
0x15 0x411111f0
0x16 0x411111f0
0x17 0x01014010
0x18 0x01014011
0x19 0x411111f0
0x1a 0x01014012
0x1b 0x411111f0
0x1c 0x411111f0
0x1d 0x40350d29
0x1e 0x01441120
0x1f 0x411111f0

(b). Contents of the /etc/modprobe.d/hda-jack-retask.conf file after setup:

# This file was added by the program 'hda-jack-retask'.
# If you want to revert the changes made by this program, you can simply erase this file and reboot your computer.
options snd-hda-intel patch=hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw

Then rebooted the system. Confirming the successful override by running grep on dmesg on boot:

dmesg | grep hda-jack-retask


[    5.183912] snd_hda_intel 0000:00:1f.3: Applying patch firmware 'hda-jack-retask.fw'
[    5.184524] snd_hda_intel 0000:01:00.1: Applying patch firmware 'hda-jack-retask.fw'

Confirming the 3.5mm audio jack connections to the sound card on the laptop/motherboard setup:

On the rear of the Logitech system, all the I/Os are color coded. In my case, I swapped the GREEN line with the YELLOW line such that the GREEN line feed would correspond to the Center/LFE feed, as it does on Windows under the Realtek HD Audio manager panel. Then, on the computer, I connected the feeds in the order, top to bottom: Yellow, Green then Black at the very end.

Final step after reboot to use the new setup:

Use pavucontrol (search for it in the app launcher or launch from terminal) and under the configuration tab, select the "Analog Surround 5.1 Output" profile. This is important, because apps won’t use your speaker layout UNTIL this is selected.

When done, you can verify your setup (as shown below) with the sound settings applet on Ubuntu by running the audio tests. Confirm that audio is routed correctly to each speaker. If not, remap the pin layout again using hdajackretask and retest again.

Screen shots of success:

As attached:

Success, at last!

Now enjoy great surround sound from your sound card.

by Brainiarc7 at February 06, 2018 10:45 PM

February 02, 2018

Scores of Beauty

OOoLilyPond: Part 2 – Optimizing

In my previous post I introduced OOoLilyPond (OLy), a relaunched LibreOffice extension to integrate LilyPond music fragments in text documents, drawings and presentations. It covered rather basic topics: downloading, installing and first steps, while today’s post will discuss the more advanced topics of customization for include files and vector graphics.

Include files

Despite being designed for “small” snippets that don’t exceed one page, OLy can be used for demanding tasks:

Using include files helps keeping your main LilyPond file clear and comprehensible. If you have definitions for functions or variables that you use in multiple LilyPond documents, it’s always a good option to have them in a separate include file. For example, openLilyLib entirely relies on include files.

When including a file that is not located in the same folder as the main .ly file (or in one of LilyPond’s default folders), its path must be specified. Apart from providing the absolute path in every include statement, there is a more elegant solution: LilyPond allows to specify a list of folders where it looks for include files. IDEs like Frescobaldi make use of that option.

In the OLy Config dialog, you can specify a string containing one or more of such paths. That string may contain one or multiple include statements as described in the LilyPond usage manual: -I"path"

For example, if I need to specify two paths C:\Users\Klaus\Documents\MyScores\ and D:\MyLibrary\, the resulting string reads:
-I"C:/Users/Klaus/Documents/MyScores/" -I"D:/MyLibrary/
Note that LilyPond expects the paths to be written with forward slashes, even in Windows. If you use backward slashes, OLy will replace them for you.

Graphic file formats

By default, OLy uses .png graphic files to be inserted into LibreOffice. They are easy to handle, but being a bitmap format, they don’t offer the best image quality:

OLy02 - png150

Bitmap images have a certain resolution given in dpi (dots per inch). The above picture is an excerpt of a 150dpi .png file that shows a simple {bes'4} at a staff size of 20 (LilyPond’s default value).
When magnified like this, the quality drawbacks are obvious.

In its config dialog, OLy lets you specify a resolution for .png files.
Increasing the image resolution will also increase its quality. By default, a value of 300dpi is used, which will make the same excerpt look like this:

OLy02 - png300

Modern printers have a resolution of at least 600dpi. Therefore, this would be the minimal value to get usable print results:

OLy02 - png600

But still you can see that it is a rastered image. The transitions from black to white look somewhat blurred.
Better quality can be achieved with vector file formats. They use polygons and curves to describe the outline of every object contained in the file. Therefore they provide perfectly sharp edges at any level of magnification:

OLy02 - svg

To keep up with that high quality, one would have to further increase png resolution, which, however, would make the file size explode. The tiny examples above had 2248 bytes (150dpi), 4395 bytes (300dpi) and 9076 bytes (600dpi) as their file sizes, whereas the .svg version had 3568 bytes: Only the worst of the above .png files was smaller.

LilyPond can produce various vector file formats: Apart from .pdf, certainly its most important format, also .ps, .eps and .svg are available. However, LibreOffice cannot handle all of them:
.pdf images can be imported into LibreOffice as of version 5.3, but embedded fonts are not (yet?) recognized, hence all musical glyphs would be missing.
.eps images can only be used in OpenOffice, with the further limitation that they are not visible on screen and in pdf output (at least, for Windows there’s a workaround). In LibreOffice, they cannot be used at all.
Neither LibreOffice nor OpenOffice can import .ps files.

Finally, there are .svg files which are easily mastered by LibreOffice (not by OpenOffice – another reason to switch to LO).
In OLy’s Config dialog, you will also find a “Format” dropdown box that you can set to “svg” instead of “png”. However, for using this format with OLy, two important things have to be considered:

1. No automatic cropping

Many templates in OLy make use of include "". This will not work with the .svg backend. Therefore, for every template there is a “[SVG]” version that works without lilypond-book-preamble. That means, however, there’s no automatic cropping.
Those templates use the Line Width field for “paper” width, and a “paper” height must be specified as well:


After compiling, the resulting image will have exactly the intended dimensions:

To get rid of the unnecessary white margins, one could adjust the width and height values by trial-and-error and recompile several times. But I think it’s much easier to manually crop the image by selecting it and hitting the appropriate button (or right-clicking it and choosing the “Crop” command from the context menu):

The green dots turn into red cropping marks that can be dragged to a new position:

When editing an existing OLy object, you won’t always have to repeat the cropping procedure. In the main OLy window, you can choose to keep the object’s actual size and crop settings:

In the Config dialog, you can specify if you want this option to be turned on or off by default. There are independent settings for Writer and Impress/Draw.

2. Font replacement

If your musical snippet contains some text markup, probably it will happen to you that a .svg image will not be displayed with the original font. Instead, some replacement font will appear:
For the above picture, a simple {c1^"What does this look like?"} has been entered using the Default [SVG] template, first rendered as .png image, second as .svg.

Now what has happened here?

In most cases, LilyPond is used to create .pdf files. Any font that is used will be embedded in the .pdf document. That means, it is displayed correctly, no matter if the font is installed on the target system or not.
This is not the case when creating .svg files: Having them displayed as intended requires to have the fonts installed on the system.

The thing is, even on your computer, LilyPond can use its own fonts without them being installed, so probably they are not. You will find those font files in their respective folder
on Linux systems:
/usr/share/lilypond/2.18.2/fonts/otf/ (whereas 2.18.2 might have to be replaced by your actual version number),
on Windows systems:
inside your LilyPond program folder (typically C:\Program Files (x86)\LilyPond\ or C:\Program Files\LilyPond\) in the subfolder usr\share\lilypond\current\fonts\otf\.

Which font files are we looking for? That depends on your LilyPond version.

Version 2.18.2 and earlier
According to the 2.18 Notation Reference, the roman (serif) font defaults to “New Century Schoolbook”.
Well, to be exact, it’s the four files CenturySchL-Bold.otf, CenturySchL-BoldItal.otf, CenturySchL-Ital.otf and CenturySchL-Roma.otf which will show up as “Century Schoolbook L” font family.

Installing those four font files on your system might do the trick. On Linux (Ubuntu Studio 16.04) it worked well for me, but on Windows 7 only the bold and italic version were available to the system. If that applies to you as well, just continue reading. We’re not yet at the end…

In addition, the 2.18 Notation Reference tells that there are no default fonts for sans and typewriter, so different computers will produce different output. If you want to take precautions against that, also continue reading.

Version 2.19
In the 2.19 Notation Reference you can see that LilyPond now provides fonts for all three font families: roman, sans and typewriter now default to “TeXGyreSchola”, “TeXGyreHeros” and “TeXGyreCursor”.
The first thing to do is installing them. Therefore, in your otf folder shown above, locate twelve files matching texgyre*.otf and install them on your computer. They seem to work without problems, even on Windows. đŸ˜‰

Users of Version 2.18 can download those font families from the web, e.g.:

Unfortunately, the developers decided to make another change: .svg graphic files created by LilyPond 2.19 no more contain font names by default. Instead, they use aliases like “serif”, “sans-serif” and “monospace”. While there might be some reasons for that decision, we are therefore required to take another step (LilyPond 2.18 users who want to use the new fonts also should follow these instructions):

We now have to explicitely specify the font families. Therefore we need to go to the template folder (its location can be viewed in the OLy Config dialog) and manually edit the template files that have [SVG] in their name.
Inside the paper{...} section, there is a paragraph that has been prepared for that purpose:

% If LilyPond's default fonts are not installed and therefore "invisible" to other applications,
% you can define a replacement font here:

#(define fonts
    "TeXGyreSchola"           ; adjust this font name according to your needs
    "TeXGyreHeros"            ; adjust this font name according to your needs
    "TeXGyreCursor"           ; adjust this font name according to your needs
    (/ staff-height pt 20)))

The command itself is enclosed in block comment signs %{ and %}. Putting a simple blank space between % and { will turn the first into an ordinary comment, and the code between them will become visible for LilyPond:

% {
#(define fonts
    "TeXGyreSchola"           ; adjust this font name according to your needs
    "TeXGyreHeros"            ; adjust this font name according to your needs
    "TeXGyreCursor"           ; adjust this font name according to your needs
    (/ staff-height pt 20)))

Now save the template and repeat the procedure with the other [SVG] templates.

If your templates date from OLy 0.5.0 to 0.5.3, the paragraph will rather look like this:

% If LilyPond's default fonts are not installed and therefore "invisible" to other applications,
% you can define a replacement font here:

% {
% for LilyPond 2.19.11 and older, it only works like this:
#(define fonts
    "Century Schoolbook"  ; adjust this font name according to your system
    (/ staff-height pt 20)))

In that case, just replace it by the code given above.

Phew! Now you should be able to use that SVG feature without further issues.


One last thing I’d like to mention in this post is OLy’s support for different languages. The language of the user interface can be changed by selecting a language file in the Config dialog.


At the moment, only English and German are available. OLy will offer you all files that it can find in the language folder (its location can be found below in the Config dialog). Those language files contain all the strings that OLy needs for dialogs and messages.

In case you think that your native language is missing here, and you feel like contributing some work, you can translate one of those files into your language. They contain some helpful comments (that don’t need to be translated), so you will easily find your way.
If you are interested in doing such a work, you can contact me via or just leave a comment here on this site.

by Klaus Blum at February 02, 2018 01:01 PM

January 25, 2018

KXStudio News

Carla 2.0 beta6 is here!

Hello again everyone, I am glad to bring you the 6th beta of the upcoming Carla 2.0 release.
It has been over one year since the last Carla release, it was about time. :)
This should be the last beta for the 2.0 series, as next one is planned to be release candidate 1.

There were quite some changes under the hood, mostly in a good way.
The trade-off for users is that this means losing some features, the biggest ones being VST3 and AU plugin support.
The way audio and MIDI devices are handled on Windows and macOS also changed, no longer having dynamic MIDI ports.
See the previous post about Carla to get more details on the "breaking changes".

But let's move on with the good stuff!
Here are some of the highlights for this release:


Transport controls and Ableton Link support (experimental)

Previous releases of Carla had basic time controls already, but it was quite basic and lacked options for JACK transport and BPM control.
Now JACK transport is optional, transport works for non-JACK drivers and BPM can be adjusted manually.
Ableton Link support was added in was well, as another way to sync transport. It was not extensively tested though.
Also note that, due to compiler support, the current Carla macOS builds do not support Link.

Transport can misbehave when rolling back or forwards, so this feature is still classified as experimental.
The plan is to have transport stabilized when the final 2.0 version is released.


Tweak of settings page

Carla's settings dialog received an overhaul.
Everything that was deemed unstable was moved into a new 'experimental' page, and disabled by default.
So in order to use plugin bridges for example, you need to first enable experimental features, then the bridges.
The (experimental) features mentioned on this article all have to be enabled in the same way too.
Last but not least, a page dedicated to Wine settings (wine-prefix, wine startup binary, RT variables) was added.


Load of JACK applications as plugins (Linux only, experimental)

This is a big one... :)
Initially just an idea that became an ugly hack/test for private use only, I soon realized it had great potential.
So I split the code used for plugin bridges and made it more generic so it could be re-used for such features.
And here we have it, JACK applications running as regular plugins inside Carla - including showing/hiding their main interface.
Applications also receive JACK transport as rolling in the host.

In this mode Carla basically becomes a self-contained JACK server, and exposes a special libjack to the client.
The client connects to Carla believing it's actually connecting to "JACK", as Carla implements libjack API through its plugin bridge mechanism.
Within Carla you first define a fixed number of audio and midi ports at the start.
Ports are allocated dynamically on the plugin side, but get mixed down at the end to the number of outputs selected.
This is a nice workaround against clients that dynamically register their ports, sometimes with random names too.
With Carla jack-apps-as-plugins method, the client ports are persistent.

The full libjack API is not implemented though, only the important parts, in order to get most applications running.
The most notable missing calls are related precise timing information and non-callback based processing.
Also no session management is implemented at the moment.
But, even without this, stuff like audacity, lmms, hydrogen, renoise and vlc work.

This is a work in progress, but already working quite well considering how new it is.


Export any loaded plugin or file as a single LV2 plugin (experimental)

Another big feature of this release is the possibility to export any plugin or sound file loaded in Carla as its own self-contained (LV2) plugin.
This can really be any regular plugin, a sound bank (e.g. an SFZ file), a plugin bridge or even JACK application.
The exported plugin will run with the smallest amount of wrapping possible between the host and the carla loaded plugin.
Carla will not appear at all, triggering the "show ui" on the host will show the actual plugin UI.
***Note that the exported plugins are not portable! They require Carla to be always installed on the same location.***

Audio, MIDI, transport information, custom UI are fully working already.
The only missing feature at the moment is LV2 state, which needs to map to DSSI configures, VST chunks and other stuff.
Although working for non-Linux systems, this was not tested.
Testing of this feature in general is very appreciated.


FreeBSD and other non-Linux systems

After the removal of the juce library from the code-base (as discussed before), Carla was free to support more than just the big 3 OSes.
With the help of the community, Carla is now available to install on FreeBSD through its ports system.
I was able to build and install it myself as well, and actually make good noise on a BSD system. Neat! :)
It's also now possible to build Carla for GNU/Hurd and HaikuOS as well, and I imagine for even more systems if one so desires.
If this is something you're interested in and need some help, let me know.

Other changes

There are quite a lot of other smaller changes made in Carla since beta5, these include:

  • Added artwork and license to about dialog
  • Added carla-rack no-midi-out mode as plugin
  • Allow drag&drop of plugin binaries into Rack view
  • Add "prevent bad plugin behaviour" option (experimental, Linux only)
  • Auto-detect wine-prefix for plugin bridges
  • Expand usable MIDI keyboard keys a little (Z-M plus Q-P for 2 full octaves and 5 extra keys)
  • Implement parameter text for plugin bridges
  • Implement "Manage UIs" option for macOS and Windows
  • Place more parameters per tab in editor dialog
  • Show active peaks and enable keyboard for carla-rack group in canvas
  • Knobs are now controlled in a linear way
  • Previous experimental plugins removed, and carla-zynaddsubfx no longer exported
  • Rack view can handle integeter knobs properly
  • Save and restore canvas positions (standalone only for now)

Special Notes

  • Carla as plugin and Carla-Control are still not available for Windows, likely won't be done for v2.0.


To download Carla binaries or source code, jump on over to the KXStudio downloads section.
If you're using the KXStudio repositories, you can simply install "carla-git" (plus "carla-lv2" and "carla-vst" if you're so inclined).
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.

by falkTX at January 25, 2018 08:37 AM

January 18, 2018

digital audio hacks – Hackaday

Recreating the Radio from Portal

If you’ve played Valve’s masterpiece Portal, there’s probably plenty of details that stick in your mind even a decade after its release. The song at the end, GLaDOS, “The cake is a lie”, and so on. Part of the reason people are still talking about Portal after all these years is because of the imaginative world building that went into it. One of these little nuggets of creativity has stuck with [Alexander Isakov] long enough that it became his personal mission to bring it into the real world. No, it wasn’t the iconic “portal gun” or even one of the oft-quoted robotic turrets. It’s that little clock that plays a jingle when you first start the game.

Alright, so perhaps it isn’t the part of the game that we would be obsessed with turning into a real-life object. But for whatever reason, [Alexander] simply had to have that radio. Of course, being the 21st century and all his version isn’t actually a radio, it’s a Bluetooth speaker. Though he did go through the trouble of adding a fake display showing the same frequency as the one in-game was tuned to.

The model he created of the Portal radio in Fusion 360 is very well done, and available on MyMiniFactory for anyone who might wish to create their own Aperture Science-themed home decor. Though fair warning, due to its size it does consume around 1 kg of plastic for all of the printed parts.

For the internal Bluetooth speaker, [Alexander] used a model which he got for free after eating three packages of potato chips. That sounds about the best possible way to source your components, and if anyone knows other ways we can eat snack food and have electronics sent to our door, please let us know. Even if you don’t have the same eat-for-gear promotion running in your neck of the woods, it looks like adapting the model to a different speaker shouldn’t be too difficult. There’s certainly enough space inside, at least.

Over the years we’ve seen some very impressive Portal builds, going all the way back to the infamous levitating portal gun [Caleb Kraft] built in 2012. Yes, we’ve even seen somebody do the radio before. At this point it’s probably safe to say that Valve can add “Create cultural touchstone” to their one-sheet.

by Tom Nardi at January 18, 2018 12:00 AM

January 16, 2018

digital audio hacks – Hackaday

Fooling Speech Recognition With Hidden Voice Commands

It’s 2018, and while true hoverboards still elude humanity, some future predictions have come true. It’s now possible to talk to computers, and most of the time they might even understand you. Speech recognition is usually achieved through the use of neural networks to process audio, in a way that some suggest mimics the operation of the human brain. However, as it turns out, they can be easily fooled.

The attack begins with an audio sample, generally of a simple spoken phrase, though music can also be used. The desired text that the computer should hear instead is then fed into an algorithm along with the audio sample. This function returns a low value when the output of the speech recognition system matches the desired attack phrase. The input audio file is gradually modified using the mathematics of gradient descent, creating a result that to a human sounds like one thing, and to a machine, something else entirely.

The audio files are available on the site for your own experimental purposes. In a noisy environment with poor audio coupling between speakers and a Google Pixel, results were poor – OK Google only heard the human phrase, not the encoded attack phrase. Given that the sound quality was poor, and the files were generated with a different speech model, this is not entirely surprising. We’d love to hear the results of your experiments in the comments.

It’s all a part of [Nicholas]’s PhD studies around the strengths and pitfalls of neural networks. It highlights the fact that neural networks don’t always work in the way we think they do. Google’s Inception is susceptible to similar attacks with images, as we’ve seen recently.

[Thanks to Wolfgang for the tip!]

by Lewin Day at January 16, 2018 03:00 AM

January 15, 2018

MOD Devices Blog

Tutorial: LiquidCrystal and Control Chain

Dear MOD users!

Hi to all of you who want to use your Arduino Control Chain shield with an LCD screen.

We got the question on the forum some time ago, whether it would be possible to use LCDs on your Control Chain device and with the Control Chain library version 0.5.0 and up, it now is!

To help out, we thought that making an example of how to do this might come in handy. So let’s see!


  1. One Arduino Uno or Due
  2. One Arduino Control Chain shield
  3. Two 4×20 LCD Screens
  4. Four 10K linear potentiometers
  5. Some wire
  6. Some soldering tin
  7. Pin headers (recommended)


schematic arduino shield

Schematic for the UI extension build

The schematic for this build looks a little more complicated than the previous ones, but most of the connections are used for the displays.

Note that in the schematic there are two 16×2 displays used. The code, however, is meant for two 20×4 displays. Nonetheless, the pin-out is the same in both cases.

To keep this blog post from being extremely long, here is a link to a more detailed description of the wiring of the LCD screen’s made by Adafruit.

Because we are connecting 2 displays instead of one, we can connect almost all pins from one display to the other. For the contrast pin, however, it is still recommended to use 2 different potentiometers. The reason for this is that the 2 displays are almost never the same. This way it is still possible to set the contrast individually.

The big difference between this schematic and the one from the Adafruit tutorial is the ‘enable’ line of the displays (pin 6). In the Adafruit tutorial, this pin is connected to Arduino pin 8. In our case, however, we connect the ‘enable’ pin of the first display to Arduino pin 5 and the ‘enable’ pin of the second display to Arduino pin 6. Also, 4 potentiometers are connected. By default, they are connected to A0, A1, A2, and A3. But this is easily changeable, if desired.


For ease of use, the LiquidCrystal library was used. This library makes writing to the LCDs a lot easier. There is, however, a downside to this approach. This library is rather slow and uses a lot of delays internally. Because of this, the example code will only work with the Control Chain library version 0.5.0 or up. As it is right now, this library is only compatible with the Arduino Uno. This is due to the UART interruption that by default cannot be used on the Arduino Due. A while ago a Pull request was opened to change this. If you really want to use an Arduino Due, scroll a little down on the Control Chain library Github page where you can find an explanation on how to do this.

The code is structured in such a way that it mostly depends on the Control Chain Callbacks. Whenever a value or assignment changes, the display will be updated as well. The values of the potentiometers are simply read by an analogRead() function.


  1. Wire up the LCD screens according to the schematic (either by soldering them directly or as recommended with the use of pin headers)
  2. Connect the potentiometers outer pins to +5V track and GND track of the CC shield
  3. Solder the potentiometers inner pin to the corresponding analog input of the CC shield (by default A0, A1, A2, A3)


Follow the instructions on our Github page and install the dependencies then upload the code to your Arduino.

All done, time to test! Connect the CC shield to your MOD DUO. If everything went well you should see a new CC device popping up:

Control Chain device on MOD GUI


Also, when powered on, the device should display a message like this:

control chain device mod duo lcd screen

The startup message

The startup message

Then, assign the CC device to the actuator of your choice:

Control Chain device on MOD GUI

Address it like any actuator on the GUI

After assigning, the device should look like this:

lcd screen control chain accessory mod duo

The screens show the assigned parameters

All done! You should have yourself a working Hardware UI extender.


You can also put your build in an enclosure. For me, that meant looking up old prototypes and again I reused one of the XF4 prototype enclosures.

transparent enclosure control chain device mod duo lcd screen

The 4 extra potentiometers controller with the 2 LCD screens looking good!

Now, you have just finished your own Control Chain Hardware UI extender. Hopefully, this is helpful for all of you who wanted to see how to connect a display to the Arduino Control Shield. Don’t hesitate to come and talk to us on the forum if you have any questions about Control Chain devices, the Arduino or anything else!

by Jan Janssen at January 15, 2018 03:35 PM