Category Archives: Software

Interesting tools

Mac OS Big Sur Wifi issues still not fixed

macOS Big Sur is out for about three weeks now. WIFI connectivity still is close to unusable. On 2020-12-28 I tried to improve the situation by following steps A (manually add Google DNS server), B (Adjust Packet Size) and D (reset NVRAM) as shared by DiptimanBadajena. I’m running a simple shell script which checks connectivity by ping. It does not measure the performance of the connection, which also is rather poor. This means, even when the connection is working, internet often is barely usable.

After the abovementioned changes, the amount of outages dropped significantly. But only that very day, and 67 outages still are annoying.

Interestingly, the amount of outages dropped to almost none (3 respectively 13) on two days when I haven’t been at home. Appearently the problem shows up only in case the Mac actually is in use (or a user is logged in).

The hint of the abovementioned post to remove VPN software is not an option in my case, since I have none installed on the machine affected.

Since Linux and Windows machines have no problems concerning WIFI (and even Catalina worked), it is obvious that it is a software issue introduced by Big Sur. Still Apple has not provided any update (or at least workaround) to get rid of the issue, and there’s no information wether they are working on it at all.

Mac OS Big Sur Wifi issues – possible fix not solving the problems completely

Last week I wrote about issues after installing macOS Big Sur. The main issue was that internet connectivity was wither frustratingly slow or not present at all. During the last couple of days, I tried several of the hints shared in this thread, but to no avail. Today I ran the on-board diagnostics which detected several disconnects every now and then.

Today @bwooten posted that this thread solved the issue. I immediately tried, and the behaviour is much better now. Connectivity is fast, and I had no disconnects during the last two hours. There’s a german saying, which is like »Don’t praise the day before eve.«. In case the issue reoccurs, I’ll post here.

Disable Wifi. Open the folder depicted above. Make a backup of its contents, then delete a couple of files:

  • com.apple.airport.preferences.plist
  • com.apple.network.identification.plist
  • com.apple.wifi.message-tracer.plist
  • NetworkInterfaces.plist
  • preferences.plist

The second file didn’t exist on my machine, so there was no need to delete it. I did reboot the machine and reconnected to Wifi. At the moment, everything seems to be fine. I wanted to diff the old and new configuration files, so as to get a clue which config parameter may have caused the issue. But the files differ significantly, so I didn’t continue.

HTH.

Update 2020-11-24:

The abovementioned steps appearently solved the issues only partly. Between complete connectivity interrupts, the transfer rates appear to be much better. But still interrupts occur every now and then, making it impossible to interact with web apps reliably (not to mention audio or video streaming).

Something seems to have changed between Catalina and Big Sur. I really hope Apple is already working on a fix and will release it rather sooner than later.

Mac OS Big Sur – update issues

Recently Apple released macOS 11.0.1 »Big Sur«. The update consists of about 12 GB of data to download. The update of two machines went well without any major issues like bricked machines reported by other users.

Of course a major Apple update causes the usual hickups like apps not working properly. In case such apps are still maintained, an update will iron out the issues. In case an app is not maintained, it usually means one has to search for a replacement.

Since the update, internet connectivity is unstable. It intermittently disconnects. I first thought my ISP has some issues. Meanwhile it appears to be an issue of Big Sur. Some users have figured out several workarounds to get rid of the issues. Since a reset of two machines required a lot of setup work I’d like to avoid, I hope Apple will distribute an update during the next couple of days. I also hope the update will load properly despite the networking issues.

Update 2020-11-19:

I used the following command to identify kernel extensions not originating from Apple:

kextstat | grep -v com.apple

I found a driver for my USB audio device which I uninstalled using its original installer. This didn’t change anything, so I reinstalled it.

Update 2020-11-22:

Rebooting with Shift key depressed didn’t help either.

Get the duration of a couple of audio files

I wanted to know the total duration of a couple of mp3 files, using onboard tools of a Mac. Thanks to StackOverflow, it’s as simple as:

find . -name "*.mp3" -exec afinfo {} \; | awk '/estimated duration/ { print $3 }' | paste -sd+ - | bc | awk '{printf("%d:%02d:%02d:%02d\n",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}'

Obviously, I could have figured this out in a couple of seconds by reading some man pages. But searching the web was even more convenient. So I leave it up to you to figure out what exactly the above commands are doing :) .

OB-Xd preset location

The OB-Xd, provided by George Reales via discoDSP (and source on GitHub), is an excellent virtual analogue synthesizer emulation. It is not only available as a plugin for several DAWs, but also as a standalone app.

VSTs store individual presets as FXP files, or collections (aka banks) of them as FXB files.

In case you have downloaded an FXB file and want to install it for use in the stand alone app on a Mac, simply place the FXB in
/Users/YourUserName/Documents/discoDSP/OB-Xd/Banks/

Zynthian – Network Configuration

The Zynthian provides several user interfaces:

  • The most essential are the display, buttons and encoders of the unit, for direct access.
  • Some of the tools additionally provide a native computer window, which can be displayed either via (micro) HDMI or X11 forwarding.
  • A web browser configuration interface, accessible via the network.
  • ssh-access, over the network as well.
  • The MOD-UI-Interface is also available via HTTP.

The Raspberry Pi 4 features an integrated WIFI module, which is disabled by default. One can switch it on via the admin menu directly at the device, but only after it was configured via the web browser configuration interface. So to get the Zynthian connected to a network, an ethernet cable is mandatory. Subsequently you’ll find what I did, what worked and not (in short, a crosslink cable connection does not).

  • The first thing I tried was just connecting it to a MacBook using an ethernet cable. ssh immediately worked, e.g. ssh root@zynthian.local. Even using a web browser, the configuration interface was available at http://zynthian.local. After providing the login credentials, the login screen immedieately reappeared without providing any hint what went wrong. According to the discourse pages, other users observed this behaviour as well.
  • So the next step was to connect the ethernet cable directly to the router. The Zynthian interface discloses the IP address of 192.168.1.5, which one can enter into a web browser. And that’s it. Via the configuration interface, WIFI can be configured. Hint: It will last a couple of seconds until the popup for selecting the network is populated. Just be patient. Now the Zynthian admin interface discloses the WLAN IP as 192.168.1.6 and you can get rid of the ethernet cable..
  • From the config interface, the OS can be updated, what I did immediately.

Great. WIFI works, and the config frontend can be reached without the need of an ethernet cable.

Security hints:

  • You should change the login passwords of your Zynthian, otherwise your machine may be easily hacked and abused by someone else.
  • Additionally, try to disable WIFI from the Zynthian’s admin menu after using it.

Zynthian, the fun synthesizer

Of course I bought the V4 kit immediately, despite it’s more a project for the cold and dark season.

It took the whole eve yesterday to assemble the hardware, despite the fact I luckily had all the tools required available. Unfortunately it didn’t boot. Though the LEDs on the Raspberry PI and the soundcard lit during startup, the screen just left blank. Today I tried the following:

  • Try a new and more powerful power supply, just in case it was to weak to power all the hardware and the screen (as it happened with another Raspberry PI ages ago). This didn’t solve the issue.
  • Recheck the wireing inside the box. Everything appeared to be fine. Reconnecting the cables didn’t solve the issue.
  • Recheck the firmware image used. Heureka. I used »2020-07-27-zynthianos-buster-lite-armhf-1.0.0.zip«, despite the fact the page clearly states that releases labeled as “RC” should be more stable. I downloaded »2020-05-27-zynthianos-buster-lite-1.0.0-RC2.zip«, flashed it using Etcher and the device did start up immediately.

I connected a MIDI keybed and started Aeolus, a pipe organ emulation, on the device. Everything just worked “out of the box”. Phantastic.

I’ll check wether everything works as expected during the next couple of days. For now, I’m extremely content, thanks to the great work of all the people involved.

Migrating an Uberspace account

I am running a virtual machine at Uberspace.de for about eight years. Unfortunately its operating system will be deprecated at the end of this very year. As a consequence, users must configure a new machine using another account. The staff at Uberspace makes it as easy as possible by providing a migration guide.

I decided to use the occasion to not move data from one machine to the new one. Instead I did a clean install, so as to get rid of old stuff. The main service I run on the machine nowadays is just Nextcloud anyway. The basic setup was just straighforward. Create a new account on Uberspace. Log in via ssh. Download Nextcloud, extract the archive, and point the browser to its document root. Some minimal configuration work was required, well documented over there.

Two time consuming tasks still had to be done. Firstly, I had to extract the user data from the previous installation and to import it into the new. It was not really difficult, but I had to circumvent several pitfalls. The second task was really time consuming – reconfiguring all apps on all devices so as to use the newly created installation. This included a Mac desktop computer and five Android devices. Once again, it was not really difficult, but time consuming.

I’m glad I did it, since the Nextcloud installation was out of date anyway. If the new Uberspace installation lasts for another eight years, the afternoon was well invested.

And by the way, Uberspace is an outstanding provider.

Circumventing annotation issues in macOS’ preview app

Four and a half years ago, I started playing baroque pipe organ music. Many sheet music is available online in PDF format, one of the main sources being the International Music Score Library Project (imslp.org).

Having the PDFs available is great, though not sufficient to practice and play the pieces. Further modificatons are required, and the Preview app of macOS provides almost all editing features needed. To cope with a couple of issues, I’ve developed several workarounds.

General usage

I use preview to combine multiple PDFs into one and to add several annotations to the sheet music. This includes text like tempo and registrations. The main purpose, however, is fingering, which mainly consists of numbers above respectively below the staves. I also use straight and bezier lines to mark the beginning and end of fragments, or to mark notes of a stave to be played with the other hand.

Avoid editing annotations

Editing annotations, like text boxes or lines, often leads to unexpected behaviour. Text suddenly appears bigger as formatted. Text boxes suddenly switch from transparent to black backgound colour (as visible in the depictions). Annotation lines become partly or completely invisible. To avoid those effects, avoid editing annotations completely, and be careful when copying PDF pages from one document to another. Instead, delete them and create a new one. This saves a lot of hassle and makes Preview more joyful to use.

Making annotations permanent

Appearently it is vendor specific how annotations are saved with the PDF. As a consequence, the annotations aren’t visible when displaying the PDF on other devices, e.g. an Android tablet. Fortunately, from Preview’s print dialog, it is very easy to export the PDF to PostScript (PS). Then I open the resulting file in Preview again and re-export it from the print dialog as PDF. This way, the annotations become true PDF elements which are visible on the tablet. As a drawback, the annotations are no longer editable, so make sure to still keep and make edits via the original PDF.

BTW: This step also helped me with an online print service which was unable to get the original PDF through the raster image processor.

Saving PS on macOS 10.15 (Catalina)

For unknown reasons, Preview’s Postscript export only works once on Catalina after each reboot. Any further attempt results in an error message. Some people had luck by configuring additional printer drivers for this task. In case this is not what you’d like to do, you can open your PDF in the Safari browser and print it to Postscript there. I have no clue whether Apple intends to get this ironed out in the near future. Since other issues haven’t been addressed for quite some time, I presume I have to get used to the workaround.

Verdict

macOS makes Sheet Music Editing easy right out of the box. I do not need any additional tools thanks to Preview. The abovementioned simple workarounds are useful to circumvent some hiccups.

Setting up Korg’s logue SDK

At least during the last decade, Korg became a company which constantly generates “Products that customers love™”. From Legacy collection over Kronos to Minilogue, further to the famous Prologue and finally the Minilogue xd, Korg keeps the market busy.

The recent Minilogue xd borrows an outstanding feature from the Prologues. Users can write their very own custom oscillators and effets. To accomplish that, Korg provides the logue SDK via Github.

It is provided “as is”, with no further support, and is not easy to setup. Fortunately Grischa Ekart provides a couple of tutorial videos, the very first one sharing the essentials to get the SDK up and running. From his video, I’ve extracted the crucial steps:

  • Create a folder where you want to place your SDK. Open a terminal window there.
  • git clone https://github.com/korginc/logue-sdk.git
  • cd logue-sdk/
  • git submodule update –init
  • cd tools
  • cd gcc
  • ./get_gcc_osx.sh

I got an error message, which did not harm the further process at the moment:
./get_gcc_osx.sh: line 92: popd: directory stack empty

  • cd ..
  • cd logue-cli
  • ./get_logue_cli_osx.sh

I got two error messages, which did not harn the further process at the moment:

./get_logue_cli_osx.sh: line 35: pushd: /Users/ce/Development/Korg: No such file or directory
./get_logue_cli_osx.sh: line 98: popd: directory stack empty

  • cd ./logue-cli-osx-0.07-2b/
  • ./logue-cli
    • The logue-cli is not necessarily required, since one can transfer the files to the minilogue xd via the graphical librarian.

  • cd ..
  • cd ..
  • cd ..
  • cd platform
  • cd minilogue-xd
  • cd demos
  • cd waves
  • make
  • ls waves.waves.mnlgxdunit

The resulting file waves.mnlgxdunit is a Zip-archive. In my case, the Minilogue xd did not accept this file:

I fixed this by lowering the API version in manifest.json:

  • Change “api” : “1.1-0” to “api” : “1.0-0”
  • Save and close
  • make

Now the file is accepted by the Minilogue xd and works as expected :) .

Thanks a whole bunch to Grischa Ekart for figuring the necessary steps out.

Updating the firmware of a Korg Minilogue XD

Korg provides a firmware updater tool which does all the magic for you. It requires to turn the Minilogue XD into »Update mode«. Unfortunately, unlike advertised, neither the english nor the german manual provide any hint how to accomplish that.

On youtube I found a video explaining how to do it for the Minilogue – hold the buttons 6 and 8 pressed while powering on the device. Consequently, it’s just buttons 14 and 16 on the Minilogue XD.

Edit 2020-01-02:

After the last update, the Minilogue XD complained during startup

Update Required
Panel 1.01
Update Required
Voice 1.01

According to a Gearsluts posting, the Panel update can be performed by holding the buttons 14, Rec, and Rest while powering the on device.

I found no information for the Voice update but for the Prologue, which is buttons 5, Exit, and Shift. Translated to the Minilogue XD this turned out to be buttons 13, Rec, and Rest.

Nextcloud – so as to fill the space available

I ran out of disk space on my server, which mainly hosts a nextcloud instance. Surprisingly I found tons of files I deleted ages ago in
nextcloud/data/username/files_trashbin/files/

It turned out my config.php was missing an entry for trashbin_retention_obligation, which as a consequence defauls to auto. I’ve now added the following line to configure a minimum and maximum amount of days that deleted files are kept:
'trashbin_retention_obligation' => '1, 7',

BTW: I think the default behaviour at least raises a data privacy issue.

Syncing Nextcloud contacts with macOS Mojave

The sync of Nextcloud contacts with macOS worked at least until Lion (aka 10.7), but got broken some day. At least with Mojave (aka 10.14) it is possible to configure it sucessfully. A posting on Github provides the information how to accomplish that. Here’s a replication:

  • Start the contacts app.
  • From the contacts menu, choose »Add Account«.
  • Choose »Other Contacts Account«.
  • Account Type: Advanced.
  • CardDAV.
  • Server Address: yourserver.com
  • Server Path (in case your nextcloud installation resides in a subdirectory): /nextcloud/remote.php/dav/principals/users/yournextcloudusername/
  • Port: 443
  • Use SSL: checked

That’s it, enjoy.

Requirements for a Metronome App

Every now and then I use a metronome while practising. I still have a traditional, spring loaded metronome available. Somewhere I must also have a digital device from the 90ties.

It was always tempting to place the metronome on top of the instrument while practising. But what I learned was that a moving pendulum or blinking LEDs distracts the player from the acoustic signal, the sheet music and the instrument. So one habit of mine was to place the metronome outside the reach of my eyes.

Since we have modern handsets at our disposal at almost any time, an app was a perfect solution. Here are a couple of requirements I have in mind:

  • Absolutely precise timing. There are many apps available, but several have difficulties coping with this non functional requirement.
  • Distraction free user interface. This removes all apps from the remaining list that are based on ads or contain animations like moving pendulums or blinking user interface elements.
  • Straightforward usage. One of the apps I used had a lot of features so that the start/stop button was difficult to locate. And when trying to start the metronome, it complained that I had to configure a couple of settings first.
  • Great user experience. The basic features should be as simple to use as possible. The Start/Stop button should be big enough to use it even at a distance of an arm.
  • Pleasant timbre. I know, de gustibus non est disputandum. But plain sine or square waves IMO sound cheap.

I really liked the Soundbrenner user interface approach, but unfortunately it failed as per the topmost and the second requirement.

After a rather long survey, I found the code of Bad Metronome, which actually provides the precision required. Ironically it provides a control to add some randomisation to its precision :) . I’m currently experimenting with the code so as to learn more about Android programming.

Using OsmAnd and Maps.me for a short vacation

For the latest trip I once again used Android apps that make use of Openstreetmap data for offline Navigation. This included three uses: car navigation (routing), hiking support (display a prerecorded track), and finding POIs inside a small town. I used OsmAnd and Maps.me. In short, I prefer the former for hiking and the latter for car navigation. As with any other tool, both have strenghts and weaknesses.

Maps.me

Maps.me focusses on ease of use. Compared to OsmAnd, it is much faster calculating routes. It can also display tracks on top of the map, but only in kml format, not the popular gpx format. Like OsmAnd, it provides synthesized speech output for turn instructions. However, those alone are not reliable enough to reach the destination without deviations. A car mount for the handset is mandatory so that the driver can see the route on the display at crossings.

Unlike OsmAnd, Maps.me stops routing in case the display is switched off. This means the driver cannot switch off the display on highways when the next turn is far ahead. Not to talk about the ability to automatically switch on the display as soon a turn is approaching. That would be great when driving without daylight.

For car routing, Maps.me remains my favourite, mainly due to its overall ease of use.

OsmAnd

OsmAnd feels like a swiss army knife. It can do almost anything one might expect of a mapping application. It features a highly configurable map with several overlays (SRTM contour lines, hillshading, POIs), can import and export tracklogs, supports car, bike, and pedestrian routing and can even warn when violating speed limits. Its routing engine can also cope with stopovers.

Over the years, it became more and more easy to use, despite its many features. On the other hand, those features require a certain amount of controls, while some features are well hidden in some sub menus (I detected one just a couple of days ago).

Its routing engine is rather slow and has difficulties coping with long distances. As a former MoNav developer, I really wonder why none of the routing apps seems to be aware its “realtime” routing engine, which is available for about 7 years now.

Due to its stopovers, I’m still struggling with basic routing like “Just route me back to my hotel.”. In the car mount, the display often is flickering a lot, the handset becomes rather hot and the battery tends draining. Where I love it is during hiking trips. Switch off the phone’s display, put the handset into the pocket and grab it at the next crossing. OsmAnd is still running, did continue to record the tracklog and immediately shows the current location. One can even add waypoints to the current tracklog (though it requires a couple of clicks). I simply love it for that purpose.

OsmAnd also warns about railroad and pedestrian crossings. The latter ones became rather annoying in case multiple of them follow each other. At leat OsmAnd should not announce the next before the first was passed. The current implementation made me mute the car’s hifi system completely.

I got the impression that the POIs in OsmAnd only contain POIs which are present as nodes in the openstreetmap data set. POIs that are mapped as polygons (e.g. shelters while hiking or churches) are not part of the POI set.

Phantom turn instructions

Both OsmAnd as well as Maps.me provide phantom turn instructions. I haven’t figured out yet what is causing those issues, but since both applications suffer from it, it is likely based in the OpenStreetMap data set. Unfortunately, I haven’t figured out the reason yet.

What happens is that both apps tend to say something like “turn left” or “turn slightly right” while driving on a road where no crossing exists at all. I observed this behaviour every now and then, e.g. excessively between this point and Echternach a couple of days ago. Checking the data didn’t show any abnormality, except that the street’s path contains some very short segements every now and then.

Maps.me also suffers from this issue. Today it two times told me “turn left” – in the middle of a highway bridge (like the Sauertalbrücke). A driver following such instructions should face the consequences :) . Unlike the aforementioned way, the bridge does not contain short segments, so I have no clue what actually is causing those mysterious turn instructions.

Die Länge von Audiodateien ermitteln

Mittels soxi lässt sich die Länge von Audiodateien auf der Kommandozeile ermitteln. Der Schalter -D liefert die Länge in Sekunden, -d in Stunden, Minuten und Sekunden:

soxi -D *.ogg
63.523039
165.384127
537.767937
156.371020
515.127347
213.252834
131.142902
70.121179
166.478095

soxi -d *.ogg
00:01:03.52
00:02:45.38
00:08:57.77
00:02:36.37
00:08:35.13
00:03:33.25
00:02:11.14
00:01:10.12
00:02:46.48

Der Notenanzeiger – zurück zum Papier

Von 2015 bis zum Sommer 2016 bestand mein Repertoire noch aus wenigen Stücken, die nicht länger als drei Seiten waren. Ich hatte sie ausgedruckt und nebeneinander aufs Notenpult gestellt. Das war zum Spielen praktisch, die Zettelwirtschaft erfordert früher oder später aber letztlich doch ein geeignetes Ablagesystem.

Inzwischen habe ich mich an drei längere Werke von sechs, acht und zehn Minuten gewagt. Die Noten bestehen jetzt aus deutlich mehr als drei Seiten. Ich habe die Stücke, nachdem die Fingersätze erarbeitet waren, ausschließlich mit einem Tablet, das annähernd A4-Größe bietet, gespielt. Es war initial nicht ganz einfach, eine funktionierende Werkzeugkette aufzubauen. Liegen die Noten aber endlich digital auf dem Tablett, komme ich bisher ganz gut damit zurecht. Vor allem bei längeren Werken finde ich das Umblättern am Tablet deutlich einfacher als physische Noten umzublättern. Allerdings gibt es immer wieder Noten, bei denen man weder mit Papier noch mit dem Tablet geeignete Stellen zum Blättern findet. Teilweise habe ich mittlerweile Stücke neu gesetzt, damit ich Einfluss auf diejenigen Stellen nehmen kann, an denen Umgeblättert werden muss.

Nach wie vor habe ich aber auch zwei- und dreiseitige Werke, bei denen es im Spielverlauf nahezu unmöglich ist, umzublättern. Das gilt vor allem für das Caprice sur les Grands Jeux von Clérambault, bei dem man mit dem Spielen derart beschäftigt ist, dass an ein Umblättern nicht zu denken ist.

Ich habe mir daher via epubli.de mein derzeitiges Repertoire in ein Büchlein drucken lassen. Zweiseitige Stücke liegen jetzt grundsätzlich auf einer Doppelseite, so dass Blättern komplett entfällt. Von dreiseitigen Werken habe ich nur die ersten beiden Seiten auf eine Doppelseite drucken lassen. Die dritte habe ich selbst ausgedruckt und mit Klebeband so eingefügt, dass ich sie zu Spielen ausklappen kann. Auch hier entfällt das Umblättern somit komplett.

Die längeren Werke habe ich auch in das Buch aufgenommen. Während ich aber mit dem Tablet so schnell blättern kann, dass der Spielfluss erhalten bleibt, gelingt mir das mit Papier überhaupt nicht. Ich werde also für längere Werke beim Tablett bleiben.

Obwohl ich ein Tablett mit ganz ordentlichem Display gefunden habe, ist der Kontrast des Druckwerkes, zumal das Papier matt ist und keinerlei Blend- und Spiegeleffekte auftreten, deutlich besser. Für einseitige Stücke werde ich daher ebenfalls beim Papier bleiben.