Two steps further

For my little synth module project I created the following systemd unit file /etc/systemd/system/zynaddsubfx.service that starts up a ZynAddSubFX proces at boot time:

[Unit]
Description=ZynAddSubFX

[Service]
Type=forking
User=zynaddsubfx
Group=zynaddsubfx
ExecStart=/usr/local/bin/zynaddsubfx-mpk
ExecStop=/usr/bin/killall zynaddsubfx

[Install]
WantedBy=local-fs.target

/usr/local/bin/zynaddsubfx-mpk is a simple script that starts ZynAddSubFX and connects my Akai MPK:

#!/bin/bash

zynaddsubfx -r 48000 -b 64 -I alsa -O alsa -P 7777 -L /usr/share/zynaddsubfx/banks/SynthPiano/0040-BinaryPiano2.xiz &

while ! aconnect 'MPK mini' 'ZynAddSubFX'
do
  sleep 0.1
done

/usr/local/bin/zynpi.py

/usr/local/bin/zynpi.py in its turn is a small Python script that shows a message and a red LED on a 16×2 LCD display so that I know the synth module is ready to use:

#!/usr/bin/python
# Example using a character LCD plate.
import math
import time

import Adafruit_CharLCD as LCD

# Initialize the LCD using the pins
lcd = LCD.Adafruit_CharLCDPlate()

# Show some basic colors.
lcd.set_color(1.0, 0.0, 0.0)
lcd.clear()
lcd.message('Raspberry Pi 2\nZynAddSubFX')

The LCD is not an Adafruit one though but a cheaper version I found on Dealextreme. It works fine though with the Adafruit LCD Python library. Next step is to figure out if I can use the buttons on the LCD board to change banks and presets.

synth_module_lcd_startup
Raspberry Pi synth module with 16×2 LCD display
synth_module_test_setup
The synth module test environment
Two steps further

A month on a Mac

During the second job interview with my new employer I was asked if I’d like to use a Mac or a Windows PC with the assurance I’d get a Linux workstation after my probation time. Just put me behind a Mac then, that’s closer to Linux than Windows and from what I recalled it comes with a native terminal that does SSH. And what do I need more?

So there I am in front of a big, glossy screen and a tiny keyboard that lacks some familiar keys. My findings so far? Kind of neutral. I’ve got my terminal and I can run SSH from the CLI so I’m happy. There are some quirks that annoy me though (in no particular order):

  • No Compose key and I had to jump through quite some hoops to map a key as a Compose key.
  • No easy way to map a keyboard shortcut for opening a terminal. I had to resort to something called ‘Automator’ to get it working. And it still doesn’t work the way I want too. When there are no windows open pressing the shortcut doesn’t do anything. When there are open windows it works but why does it open two terminals when pressing the shortcut for the first time? Not a real big deal as I need multiple terminals anyway (I just can’t get used to tabbed terminals).
  • I prefer non-glare monitors to glossy ones.
  • No Home, End, PageDown and PageUp keys. Not a real big deal either, in fact, it’s a real good incentive to start getting accustomed to Vi(m) shortcuts since I kind of live inside Vim these days. I even bought this, great stuff.
  • Can’t get used to the default window management settings. For instance when you minimize a window and Alt+Tab to it the window doesn’t open. So I’m not minimizing any windows anymore since this is really annoying. Haven’t looked into changing this behaviour though, it’s probably something relatively simple.
  • Annoying pop-ups from updates and programs that are downloaded from the internet (“blabla” is an application downloaded from the Internet. Are you sure you want to open it?). Especially the latter ones are annoying. Disabling the pop-ups has to be done from a terminal. Wow, so much for a “user-friendly” OS.
  • Clicking the close button of an application doesn’t quit it. Cmd+Q does. This is something I won’t get used to either. Actually I don’t want to get used to the Cmd button at all.
  • I prefer a panel with a window list on it. I don’t know how other folks do it but this Alt+Tab stuff is counter-efficient in my case.

Are there things I particularly like about Mac OS X or the Mac itself? Actually no, can’t think of anything. Yeah, the keyboard feel is really nice but that pro gets nulled out because of the missing keys, ~ being placed next to the left Shift key and the Fn keys being mapped to the F1/F12 keys. Add to this the meaningless keys with all kinds of arrows on them and this key with a crossed square. No idea what they do. On a software level MacPorts is nice, it allowed me to install some of my favorite tools that I found were missing. Other than that I can’t wait to have my own workstation with Linux on it. The plan is that I get a Dell XPS 15 with a dual monitor setup. Something to look forward to.

And yes, I have to deal with quite some Windows servers now. I’m not going to dedicate a blogpost to my findings on that OS. Just one word. Meh.

A month on a Mac

Sun Type7 toetsenbord speciale toetsen

Het Sun Type7 toetsenbord dat ik gebruik op mijn werk heeft aan de linkerkant een aantal speciale toetsen. Deze hebben allemaal een keysym alleen doen ze nagenoeg niets. Heb ze nu met Openbox allemaal een functie gegeven.

    <keybind key="Help">
      <action name="Execute">
        <command>xdotool key F1</command>
      </action>
    </keybind>
    <keybind key="Cancel">
      <action name="Execute">
        <command>xkill</command>
      </action>
    </keybind>
    <keybind key="Redo">
      <action name="Execute">
        <command>xdotool key ctrl+y</command>
      </action>
    </keybind>
    <keybind key="SunProps">
      <action name="Execute">
        <command>xdotool key Menu</command>
      </action>
    </keybind>
    <keybind key="Undo">
      <action name="Execute">
        <command>xdotool key ctrl+z</command>
      </action>
    </keybind>
    <keybind key="SunFront">
      <action name="Execute">
        <command>xdotool keydown alt key Tab</command>
      </action>
    </keybind>
    <keybind key="XF86Copy">
      <action name="Execute">
        <command>xdotool key ctrl+c</command>
      </action>
    </keybind>
    <keybind key="SunOpen">
      <action name="Execute">
        <command>xdotool key ctrl+o</command>
      </action>
    </keybind>
    <keybind key="XF86Paste">
      <action name="Execute">
        <command>xdotool key ctrl+v</command>
      </action>
    </keybind>
    <keybind key="Find">
      <action name="Execute">
        <command>xdotool key ctrl+f</command>
      </action>
    </keybind>
    <keybind key="XF86Cut">
      <action name="Execute">
        <command>xdotool key ctrl+x</command>
      </action>
    </keybind>

Heb voor het sturen van de keystrokes xdotool gebruikt. Een sudo apt-get install xdotool volstaat om dat te installeren. De output van de speciale Sun toetsen heb ik achterhaald met xev wat als het goed is standaard al geïnstalleerd is. Bovenstaande code kun je gebruiken in het configuratiebestand van Openbox, in mijn geval is dat ~/.config/openbox/lubuntu-rc.xml. Daarna openbox --reconfigure draaien om de boel opnieuw in te laden.

Sun toets Functie
Help Help functie van applicatie (F1)
Stop Applicatie killen (xkill)
Again Opnieuw uitvoeren (Control+y)
Props Context menu (Menu)
Undo Ongedaan maken (Control+z)
Front Applicatielijst (Alt+Tab)
Copy Kopiëren (Control+c)
Open Openen bestand (Control+o)
Paste Plakken (Control+v)
Find Zoeken (Control+f)
Cut Knippen (Control+x)
Sun Type7 toetsenbord speciale toetsen

XFCE Power Manager

Lijkt een futiliteit maar kan toch frustrerend zijn: een niet werkend toetsje op je toetsenbord. Ik wilde per sé de Sleep toets op mijn Sun Type7 toetsenbord aan de praat krijgen, op de een of andere manier werkte die niet. Ben er uiteindelijk achter gekomen dat het aan het pakket xfce4-power-manager lag. Die ving kennelijk de keysym van de Sleep toets af (XF86PowerOff) om er vervolgens niets mee te doen. Na dit pakket gedeïnstalleerd te hebben en openbox --reconfigure te hebben gedraaid werkte de Sleep toets weer naar behoren.

Edit: ga nog wel uitzoeken waarom xfce4-power-manager het niet doet, als xfce4-power-manager namelijk wel draait en ik stel als actie Shutdown in als de Power knop wordt ingedrukt dan sluit het systeem af als ik de Sleep toets indruk. Stel ik als actie Ask in dan gebeurt er niks terwijl dan het Lubuntu uitlogscherm zou moeten verschijnen.

Edit 2: Bijbehorende bugreport gevonden:
https://bugs.launchpad.net/xfce4-power-manager/+bug/1008650
Staat ook een link in naar een workaround:
http://www.who.is.free.fr/wiki/doku.php?id=xfce#power_button_event_workaround

Het script op die pagina is wel erg uitgebreid, bij mij volstaat het volgende:

#!/bin/bash
xfce4-power-manager -q
openbox --reconfigure
xfce4-power-manager

Dit bestandje heb ik fix-power-button genoemd en start ik op via $HOME/.config/lxsession/Lubuntu/autostart

XFCE Power Manager

YubiKey en toetsenbordindeling

Zodra je een YubiKey in een USB port steekt gaat je systeem alle aanwezige toetsenborden opnieuw initialiseren. Op zich geen probleem ware het niet dat ik op het werk een Sun Type 7 toetsenbord gebruik met een afwijkende indeling. Deze stel ik in bij het inloggen omdat Ubuntu dit toetsenbord niet correct detecteert, Ubuntu ziet het als een gewoon toetsenbord (pc105). En als ik dit soort dingen als gewone user in kan stellen dan doe ik dat. Als ik nu dus echter m’n YubiKey wil gebuiken dan worden alle toetsenbordinstellingen gereset en krijgt mijn Sun toetsenbord weer de standaard indeling toegewezen.

In dit geval ontkom je er dus niet aan om voor het hele systeem de toetsenbordindeling in te stellen. Dit doe je onder Ubuntu in het bestand /etc/default/keyboard. Bij mij staat er nu het volgende in:

XKBMODEL="sun6"
XKBLAYOUT="us"
XKBVARIANT="altgr-intl"
XKBOPTIONS="ctrl:nocaps"

Voor de werking van de YubiKey maakt dit niet uit. Uiteraard kun je ook moeilijk gaan doen met udev of bestandjes aanmaken in /etc/X11/xorg.conf.d/ maar het aanpassen van /etc/default/keyboard (of sudo dpkg-reconfigure keyboard-configuration draaien, komt op hetzelfde neer) is toch wel het snelst en het makkelijkst.

YubiKey en toetsenbordindeling

Nieuw toetsenbord II

Heb uiteindelijk twee toetsenborden aangeschaft. Eén nieuw Sun toetsenbord, gewoon via de Oracle store, en een tweedehands ZaReason Tux Keyboard via Marktplaats. De Sun neem ik mee naar mijn werk en de ZaReason komt in de homestudio te staan.


text-align: center;

ZaReason Tux Keyboard

Het Sun keyboard met muis was nog geen €60,- inclusief verzendkosten. En dat terwijl er bedrijven zijn die tweedehands Sun Type 7 keyboards (dus zonder muis!) verkopen voor €50,-. Weird.

Nieuw toetsenbord II

Nieuw toetsenbord

Ben het nu zat om iedere dag tegen dat Windows icoontje op mijn toetsenbord aan te moeten kijken. Ga een Sun Type 7 toetsenbord bestellen via eBay. Heb deze gezien bij het RKZ in Beverwijk en moet ook zo’n ding hebben. De toetsenborden bij het RKZ zijn wel merkloos heb ik gezien, helaas kun je die nergens krijgen. Mocht iemand een tip hebben waar het RKZ z’n toetsenborden vandaan haalt dan hoor ik dat graag.


text-align: center;

Sun Type 7 keyboard

Nieuw toetsenbord

Akai MPK Mini en Ubuntu

Omdat mijn M-Audio Oxygen8 recentelijk stuk is gegaan had ik een nieuw MIDI keyboardje nodig en uiteindelijk is dat de Akai MPK Mini geworden. Bij de Feedback besteld ook al was ie bij Dirk Witte goedkoper. Maar ik vermoed dat de €79,- die Dirk Witte ervoor vraagt een lokkertje is want uiteraard hebben ze ‘m niet op voorraad. Heb ook nog gekeken naar een M-Audio Oxygen-25 maar die is al een stuk groter en mijn andere M-Audio Oxygen is net stuk gegaan. Music Maniacs in Haarlem biedt deze aan voor een goeie prijs maar na 3 keer gebeld te hebben en ettelijke malen langs te zijn geweest om iedere keer te horen krijgen dat ie niet op voorraad is maar dat ze wel de Axiom-25 hebben liggen heb ik het vermoeden gekregen dat het ook hier een lokkertje betreft. Is er misschien een site voor waar je deze vermoedens kan melden trouwens?

De MPK Mini heeft 25 aanslaggevoelige toetsjes, 8 aanslaggevoelige pads en 8 draaiknoppen. Daarnaast zit er een arpeggiator op, kun je switchen tussen 4 presets en kun je instellen wat voor MIDI boodschappen je de pads en knoppen wilt laten uitsturen, notes of CC’s. Ook zit er een sustain knopje op, kun je de octaafhoogte instellen en heb je de beschikking over twee banks voor je pads. En last but not least een ongedocumenteerde feature die wel heel vet is: MIDI feedback! Oftewel, de MPK Mini reageert op binnenkomende MIDI signalen. Met een beetje slim mappen en configureren kun je zo dus bijvoorbeeld de backlights van je pads synchroon laten oplichten met een pattern in bijvoorbeeld Hydrogen!

De toetsjes vind ik zelf wel een beetje crappy, vooral in vergelijking met toetsen met een standaard grootte, maar om ideetjes snel op te nemen is het goed genoeg. Ook is het apparaat door de kleinere toetsjes veel handiger om mee te nemen en zijn de toetsjes een stuk beter bespeelbaar dan bijvoorbeeld die van de Korg nanoKEY. De pads vind ik persoonlijk lekkerder aanvoelen dan die van de Korg nanoPAD. De draaiknopjes vind ik wat te plomp en niet hoog genoeg. Met bezwete vingertjes grijp je denk ik al snel mis.

De Preset Editor werkt feilloos onder Wine. Presets opslaan, van het apparaat laden of naar het apparaat sturen is geen probleem. Het apparaat zelf werkt ook prima onder Ubuntu, aansluiten met de bijgeleverde USB kabel, JACK/a2jmidid/Yoshimi opstarten, Yoshimi en de MPK Mini MIDI Out aan elkaar knopen en dat is het. Met Hydrogen werkt ie ook prima, je zult wel de noten die de pads uitsturen wat aan moeten passen met de Preset Editor zodat ze overeen komen met de noten waar de verschillende instruments in Hydrogen op reageren. En als je in de instrument settings van Hydrogen het MIDI kanaal (channel) op 1 zet en de noten hetzelfde instelt als de noten waar de instruments op reageren en vervolgens de MIDI Out port van Hydrogen verbindt met de MIDI In poort van de MPK Mini zouden als het goed is de pads op moeten lichten als je het bijbehorende instrument aanklikt in Hydrogen.

Akai MPK Mini en Ubuntu