Die Gedanken sind frei…

Akai MPK225

MIDI controller with keyboard

  • 25 semi-weighted keys, velocity-sensitive and with aftertouch
  • 2 wheels for pitch and modulation
  • 8 pads, velocity-sensitive and with aftertouch,
    virtual 32 pads, divided into 4 banks
  • 4 buttons and 8 endless rotary encoders,
    virtual 12 buttons/24 knobs divided into 3 banks
  • 6 buttons for transport control
  • Arpeggio
  • 2x Octave shift
  • 30 storage slots to save settings,
    24 of them are preset with settings for various software
  • Connection via USB (4 virtual ports) and/or 5-pin MIDI
  • Jacks for expression and sustain pedal
  • USB bus powered or via mains adapter or power bank
  • On/off switch
  • Dimensions: 48.9cm x 29.8cm x 9.2cm; 2.76kg

25 keys may not be enough for some people, but I also have a Nord Stage 2 88 here (so I have enough keys) and was explicitly looking for something small and mobile enough that I could pick it up on the couch to make some music or take it with me without too much effort when travelling. And that’s exactly what it’s good for.

I am pleasantly surprised by the quality of the device. It makes a stable impression, the potis feel high-quality, buttons and pads are easy to play and the configuration seems logical and simple while being versatile and flexible.

The manual is sufficient and detailed for most things, but not quite complete.
The description of the SysEx functions, for example, is unfortunately very rudimentary; it only describes that there is a menu item with which you can transfer all or a single preset via MIDI SysEx. There is no indication of what you can do with it, whether and how you can play it back (you can), let alone an indication that SysEx is only transmitted on the 4th of the logical USB MIDI ports (and not via 5-pin). A complete SysEx documentation is unfortunately also missing as well as a one for the sysex file format.

As far as the 24 included presets are concerned, various well-known and less well-known names are represented here. Of course, once again no representative from the Linux / Open Source world. But that doesn’t hurt. Ardour, for example, already includes a map for the MPK225 that works on the basis of the Bitwig (#6) preset. For further modifications, I copied the Bitwig preset to 25 and took the opportunity to rename it to Ardour.

Now you will very quickly get annoyed by having to switch to preset 6 (Bitwig), let alone 25, every time you switch on. By default, preset 1 (Ableton) is loaded first. But there’s a workaround: copy preset 1 (Live Lite) to #26 and #25 (Ardour) to #1 and it will be loaded right after switching on.

The potis on #6 are set to Inc/Dec2 mode by default and therefore output 0 or 127 depending on the direction of rotation. I have changed this to CC so that I can approach the values between 0 and 127 accordingly. It also works better with software such as Surge XT.

If you don’t want to lose anything, you can also simply save all 24 presets individually via SysEx and thus have all 30 slots available in the MPK225. The number in the computer is only limited by the available memory anyways.

By the way: the size of a preset is 1555 bytes (approx. 1.5kB).

The transport buttons offer the usual functions Play, Stop, Record, <<, >> and additionally Loop. Ardour can be easily controlled from the MPK225.

I have also included the loop button in the supplied map for Ardour and adapted the function assignments of the << and >> buttons from FRW and FFW to start and end, as this is more in line with my requirements.

As I’m using Linux, here are a few useful tools that are helpful in everyday life with the MPK225:

A MIDI monitor is useful for quickly checking which MIDI parameters a particular controller is sending. I start the tool of my choice, briefly operate the controller, see directly what it is sending and now know what I need to set in the software. With aseqdump (part of alsa-utils), I initially use aseqdump -l to display the available MIDI ports and then use -p to run it with the desired port, in this case MPK225. Alternatively, I connect the hardware MIDI port to the software MIDI input of e.g. midisnoop via drag and drop (use i.e. qjackctl or qpwgraph), start the recording and the operation and have the same result. More eye candy, but also slower.
* aseqdump -p MPK225 (CLI)
* midisnoop (GUI)

As even the easy check via aseqdump quickly became too time-consuming for me, I took the trouble to start aseqdump once, operated all the keys, pads, buttons and potis across all the available banks once and then simply projected the results onto a photo of the MPK225.


Just a quick look at the PDF and you’re good to go.

The simplesysexxer has proven useful for handling the presets. It can be used to receive, save and send SysEx dumps.
Per default a sent preset is saved to the slot it came from originally as it is stored to the syx file.

If you want to change that before transfer, you’ll have to use a hex editor of your choice.
As of now Akai seems to refuse to support their customers, right after they have paid for the product.
No information on SysEx, except repeating the 2-3 sentences from the manual (for now).
Not even about how to restore SysEx files saved according to the manual…

Please beware, I will not be responsible if you fry your device somehow by wrongly editing the syx file or maybe even by wrong information on this page. If you edit a syx file by hand with a hex editor, I assume you know what you’re going to do!

Ok, let’s see what I have for now:

A SysEx file is always enclosed by F0 (byte 0x00) and F7 (last byte).
The next two bytes (bytes 0x01-0x02) designate the manufacturer code which in our case means 47 00 (Akai).
Following the manufacturer code we’ll find the device code (byte 0x03): 23 for the MPK225 (24 for MPK249 and 25 for MPK261)
The storage slot is saved in the 8th byte (byte 0x07): 1-30 possible storage slots converted to hex means choose between 01-1e.
The next 8 bytes contain the preset name in ASCII.

That’s it for now.
If I’ll find out more, I will update the article.

Additional links:

https://practicalusage.com/akai-mpk261-mpk2-series-controlling-the-controller-with-sysex/

https://practicalusage.com/akai-mpk261-one-more-thing/

https://github.com/nsmith-/mpk2

HowTo de-rattle E-MU XK-6 keybed (Fatar TP/9S)

2022 my daughter got an E-MU XK-6 for christmas I previously shot on ebay for me, to get hands on the included XROM soundrom. As a side note, I also tested the XK-6 without any soundrom installed and it would still being functional as MIDI-keyboard with enhancement possibilities, but I decided to keep her life easier as a beginner… 😉 So for her being able to directly start with playing with the synth, I built a (more generic) Composer ROM into the XK-6.

However, she found the keybed’s playing noises were way too loud, which I could only confirm.

Conclusion: The keybed (which is in fact a Fatar TP/9S) had to become more quiet!

Here’s what I did:

  • Check what triggers the sound, pressing and/or releasing, where does it come from?
    In my case it was just the release, to be exact the moment the key reached the endposition and hit the end stop.
    The vibrations also seemed to be increased by the base plate of the keyboard enclosure.
  • Identify the sound triggering parts (which need to be damped somehow)
  • While thinking about a solution keep in mind, that the damping could harm useability of the keys or their end positions.
    In my case I decided to apply a little bit of fleece to the area in each key, which contacts the end stop plus putting adhesive insulating tape (plastic foam with adhesive tape) on the inside of the enclosure base plate to damp resonant vibrations there as well. This lowered the end positions of the keys a little bit, but most important, evenly.

  • Take some time to identify the correct screws to be released to open the enclosure. Some are for the side parts and the sound rom compartment (which you both don’t need for this task), some for opening the enclosure and some are for the mounting of the keybed (yes, you’ll need both of them). Don’t forget the 5 small case screws on the backside of the case! Afterwards, you should be able to simply fold the enclosure top backwards.
  • As mentioned before, at least I had to remove the mounting of the keybed as well to reach the backside with the springs. If the keybed is unmounted (and you didn’t remove all the cables like me), be careful not to damage them. Especially the aftertouch strip on the left side doesn’t give much room for movement.
  • To detach a key, remove the spring on the backside of the key. I used a small screwdriver which I pushed between the spring rings at the top to lift the spring up and out. Afterwards you need to carefully release a small barbed hook through the opening beneath the spring holder. Again I used the screwdriver to push it slightly towards the front end of the key. Now you can simply lift out the key.
  • As damping material I used some fleecepads (around 1-2mm thick) I bought at our local hardware store which already came with applied adhesive tape. I just had to cut it into small pieces (around 5x7mm, your mileage may vary), remove the cover of the tape and stick it to the right position.
  • Now you can put the key back in place carefully (don’t remove the fleece again by rubbing it off somehow), klicking in the hook and reapply the spring.
  • Test it by comparing an undamped key with the just freshly damped key. In my case, the result is marvelous!
  • As a last step, I applied a longer part of the above-mentioned adhesive insulating tape on the inside of the enclosure back plate under the keybed betweent the keybed mount screws.
  • If all is to your liking, remount the keybed, close the housing carefully, reattach the screws and have fun!

This article should be applicable also to the E-MU PK-6 and MK-6 variants, as they are technically the same only differing by name, used enclosure design colors and most importantly the used factory soundrom (so my daughter’s is now more of a PK-6).

ELAN 0634 touchpad in Lenovo ThinkBook 14iil not working under Linux

After having bought a Lenovo ThinkBook 14 iil for my daughter, I found that the touchpad wasn’t recognized during Linux (Opensuse Tumbleweed) install. I continued by plugging in a USB-mouse I had lying around. Unfortunately the problem persisted after having completed the installation.

I googled the problem and found multiple mentions for several linux distributions. As a reference I provide here the link to the Ubuntu launchpad which helped me most in getting things to work under Opensuse Tumbleweed:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1861610

For a record it should be mentioned, that this is a BIOS bug which originally should be fixed by Lenovo. As the touchpad works under Windows, this means they have fixed the driver instead… Awkward.

These are the steps I needed to do, to get the touchpad recognized:

Get ACPI table:

acpidump -b

Disassemble ACPI table:

iasl -d dsdt.dat

Edit DSDT:

vi dsdt.dsl

  • Search the HID of the touch pad: ELAN0634
  • Search the next _STA method declaration
    and comment out these four lines:

Method (_STA, 0, NotSerialized) // _STA: Status
{
//If ((TPVD == 0x45))
//{
Return (0x0F)
//}
//Return (Zero)
}

  • Increment the version number. It’s the last parameter of the DefinitionBlock (line 21 for me):
    DefinitionBlock ("", "DSDT", 2, "LENOVO", "ICL ", 0x20170002)
  • save

Compile DSDT:

iasl -sa dsdt.dsl

Copy compiled DSDT to /boot for easy loading by grub:

cp dsdt.aml /boot

Reboot, press e in grub menu on your linux boot entry and enter the following line before kernel loading:
acpi /boot/dsdt.aml
(Secure boot has to be disabled in BIOS!)

If the workaround works for you, add the line in /boot/grub2/grub.cfg in the relevant boot entry for getting the fix on each reboot.

As this is just an ugly (albeit working) workaround, I opened a bug request on opensuse bugzilla for getting it fixed in the standard kernel without having to meddle with the DST in the future:

https://bugzilla.opensuse.org/show_bug.cgi?id=1176971

Umbenennen einer Dateinamensliste

(Umsetzung unter Linux/bash)

Problem:
Eine längere Liste mit Dateinamen der Art Kategorie1_Kategorie2_Kategorie3_Dateiname.txt soll jeweils in Dateiname.txt umbenannt werden.

Eine manuelle Umsetzung würde Stunden brauchen.

Lösung:
Man lässt eine kleine for-Schleife drüber laufen welche die Kategorien mittels pattern matching entfernt.

Die bash bringt die entsprechende Funktionalität schon mit, so dass es recht simpel umzusetzen ist:

for i in ls; do mv $i ${i##*_};done

Erklärung:
for i in ls; # Für jedes Vorkommen i in der Ausgabe des Kommandos ls,
do mv $i ${i##*_};# umbenennen des ursprünglichen Dateinamens $i in eine Variante bei der alle Segmente in i bis zum letzten “_” von links entfernt sind
done # Abschluss der for-Schleife

Beispiele:
${i##*_}alle Bestandteile bis incl. dem letzten _ von links werden entfernt: Dateiname.txt

${i#*_}alle Bestandteile bis incl. dem ersten _ von links werden entfernt: Kategorie2_Kategorie3_Dateiname.txt

${i%%_*}alle Bestandteile bis incl. dem letzten _ von rechts werden entfernt: Kategorie1

${i%.*} alle Bestandteile bis incl. dem ersten . von rechts werden entfernt: Kategorie1_Kategorie2_Kategorie3_Dateiname

Mehr Informationen dazu findet man im bash manual bash manual.

LaTeX-Beamer

Um ein wenig in LaTeX (ein Textsatzsystem, siehe https://de.wikipedia.org/wiki/LaTeX und https://www.latex-project.org/) drin zu bleiben, habe ich beschlossen die Linux-Schulungsunterlagen (wird die Tage mal einen eigenen Artikel dazu geben) an denen ich arbeite, mit LaTeX zu bauen.

Für die grobe Dokumentstruktur habe ich Freeplane (https://www.freeplane.org/ bzw. https://de.wikipedia.org/wiki/Freeplane) eingesetzt, ein freier Java-basierter Mindmapper mit dem sich die einzelnen Kapitel und Unterkapitel einfach sammeln und strukturieren lassen.

Freeplane

Das Beste daran ist, dass man das Ergebnis direkt in ein LaTeX-Beamer-Dokument (https://de.wikipedia.org/wiki/Beamer_(LaTeX)) exportieren kann, das dann “nur” noch etwas verfeinert und mit Inhalten gefüllt werden muss. 😉

Das Ergebnis ist dann eine PDF-Präsentation mit einheitlichem, konsistentem Look&Feel die praktisch überall wo ein PDF-Viewer installiert ist genutzt werden kann.

Addendum:

Um das Thema \LaTeX noch etwas auszudehnen, man kann (unter Nutzung des “WP LaTeX”-Plugins) auch – wie man sieht – in WordPress \LaTeX einsetzen indem man z.b. $ latex \LaTeX&bg=161617&fg=3399cc&s=4$ eingibt (und das Leerzeichen nach dem ersten $ wieder entfernt).

Das ergibt dann: \LaTeX

Mehr Info dazu findet man z.B. hier.

Corona

Seit dieser Woche sitz’ ich – wie auch viele andere – bis auf weiteres im Home Office.

Nach anfänglichen VPN-Überlastungen stabilisiert sich alles nach und nach und HO ist zunehmend wieder wie gewohnt möglich.

Allerdings:

Die Kinder sind da und der Alltag gestaltet sich für alle auf einmal neu.

Zuhause sein, ist eben nicht nur Wochenende oder Ferien, sondern irgendwie weiter lernen. Miteinander auskommen müssen, auch wenn einem schon nach wenigen Tagen die Decke (nein nicht der Himmel!) droht auf den Kopf zu stürzen.

Sich selber beschäftigen, auch wenn man nicht weiß, wie lange die Situation noch so anhält. Überhaupt, nicht zu wissen, was die nächsten Tage noch für uns bereithalten.

Der Drahtseilakt, zwischen Normalität sicherstellen und permanent die Nachrichten verfolgen…

Stay safe, at home and #flattenthecurve

Blofeld

Kurz bevor der ganze Corona-Schlamassel eskaliert ist, hat ein neues Mitglied überraschend den Weg in meine Musikinstrumentensammlung gefunden: Ein gebrauchter Waldorf Blofeld (https://www.waldorfmusic.com/de/blofeld-keyboard) in der Keyboard-Version.

Waldorf Blofeld

Ein feiner Synthy, klein und gemein. Mit durchsetzungsfähigen, vielseitigen Sounds, einer sehr flexiblen Synthengine, gepaart mit guter Tastatur und er sieht auch noch gut aus. Das Teil macht einfach Spaß und inspiriert.

Außerdem ist das Gerät sehr offen designed, so dass sich vom Editing bis zum Sample- und Firmware-Upload alles via MIDI erledigen lässt, so dass auch einer Linux-basierten Software nichts im Wege steht. Dies hat glücklicherweise bereits zu einem sehr nützlichen Stück Open Source Software geführt:

Bigglesworth (http://bigglesworth.it/) ist ein freier, Python-basierter Sound-Editor, Wavetable-Editor und Librarian samt Utilities, lauffähig unter Linux, MacOSX und Windows der deutlich mehr Funktionalität bietet als die Waldorf-Software.