Category Archives: Linux

HP8903A Audio Analyzer and python: creating a new app

I’ve been working on a way to control my HP8903A Audio Analyzer directly from my PC. This precision instrument is a fantastic tool for audio measurements — think frequency response plots, THD+N distortion analysis, and more — making it ideal for testing tape machines and other vintage audio equipment.

I also have the necessary GPIB-to-USB interface from National Instruments (NI-488.2), which handles the communication between the analyzer and the computer.

There is already excellent software available for this purpose, written by Peter Millett. You can find it on his website at http://www.pmillett.com/hp_8903_software.htm. Peter was kind enough to share his source code with me, which turned out to be invaluable during development.

However, his software had a few limitations that didn’t work for my setup:

  • It is a Windows-only application that requires a specific HP runtime environment.
  • It was written in an HP proprietary programming environment that is difficult or impossible to install on modern versions of Windows — and since it is commercial software, extending or updating it would require a financial investment.
  • I work exclusively on Linux and don’t have a Windows machine available.
  • I wanted a fully open-source solution that others could possibly freely build upon.

So, with some help from AI, I set out to rewrite the application in Python. The result closely replicates all the functionality of Peter Millett’s original software, while adding cross-platform support and a modern interface built with Qt6 and pyqtgraph, running on openSUSE Tumbleweed with Plasma 6.

The application is still technically a work in progress, but it is 95–99% complete and currently running flawlessly. Only a few small refinements remain.

Here’s a screenshot of the current interface:

The app supports four core measurement modes:

  1. Frequency Response — sweep the input frequency and plot the output level across the audio band
  2. THD+N distortion — measure total harmonic distortion plus noise at a given frequency and level
  3. Voltage — read AC/DC voltage at the analyzer’s input
  4. Power — measure output power into a specified load

Very happy with the result, and it works very nice!

DISCLAIMER: This program is tailored for my situation. Even though it is made using 100% open source components I am not sure that it is very portable and that it works in your situation. Leave a reply (link is above post) if you are interested, but I do not have high hopes that it will run outside of my environment.
But you can always have a go.

I have created a Codeberg repository here:
https://codeberg.org/pvdm/hp8903a

Next project: do the same for my Audio Precision Portable One Plus:

3 thoughts on “HP8903A Audio Analyzer and python: creating a new app

  1. Curtis H

    Hi, I would love to try out your 8903B py software. Your help file specifies very carefully py version and lib versions. I have a lot of SW experience, so I feel that I can beat it into submission.

    I have built pete millet jonokuchi headphone amp, a 2nd with boutique transformers, sangaku headphone nutube amp, his mighty midget, 26a7 preamp. Working on his engineers EL84 amp.

    Also built a tubelab TSE with 2a3 tubes.

    I have an 8903B and usb interface and would love to get measurements going on all these amps.

    Thanks, C

    Reply
    1. Philip van der Matten Post author

      Hello Curtis,

      I have created a codeberg GIT repository. I have uploaded all the files there. It works very well, but since I run a rolling distribution (openSUSE tumbleweed) The GPIB driver breaks a lot. Every time I get a new kernel, about once a week. But there is now built-in DKMS support so that the GPIB will be rebuild after each update. But check in often, it is still being ‘perfected’ so whenever there is an update, I push the new files. Also after you have ‘git cloned’ the repository, be sure to check out the README and the help files.
      You can find the git repository here:

    2. https://codeberg.org/pvdm/
    3. Reply
  2. Curtis H

    Thanks,

    If you could change my display name to “Curtis H”, that would be great.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Upgrade 7 year old openSUSE Tumbleweed KVM/Qemu VM

I came across an old openSUSE Tumbleweed virtual machine image. It still booted in KVM/Qemu. When it started I noticed it was from 2018. So I tried to update it (I had to install the correct repositories) and when I did

# zypper dup

this is what I saw:

After a long time, the update was NOT successful. Of course. There was a dependency hell of cpio not able to extract packages, rpm, zypper ,libzypp and several others (all the way to numerous python modules) that I simply could not solve. Bummer!

Leave a Reply

Your email address will not be published. Required fields are marked *

The Very Latest Server Uptime Record: 1763 Days!

So I found another server that is running for a very long time. Here is the screenshot:

XXXXXXXX:/opt # uptime
11:32am up 1763 days 20:06, 2 users, load average: 0.00, 0.00, 0.00

One thought on “The Very Latest Server Uptime Record: 1763 Days!

Leave a Reply

Your email address will not be published. Required fields are marked *

The Latest Server Uptime Record: 1552 days (September 2019)

And another improvement of the server uptime record. I found a server (physical server) today that had an uptime of over 1550 days!

So it was powered on on thursday 18 june 2015. A long time ago!

Leave a Reply

Your email address will not be published. Required fields are marked *

The Latest Server Uptime Record: Januari 2019

Today I encountered this server, which smashes my server uptime record:

[root@XXXXXXXXX ~]#
10:51:44 up 1446 days, 18:24,  1 user,  load average: 0.80, 0.85, 0.94

1446 days equals 14 days shy of 4 years!

Leave a Reply

Your email address will not be published. Required fields are marked *

Install acestream in openSUSE Tumbleweed

If you are like me and watch a lot of TV streams using acestream, you had the problem that there was no Linux client. So you had to use a window$ PC for that (with all the hassle that brings) but we don’t want that.

So I resorted to using wine for that. And that works beautifully. But the hope remained that it would be possible to run it native on Linux. I have found out how, and here are the instructions for tumbleweed:

install the acestream packages

First, we add a repository where the acestream software is to be found. Then we install the latest beta version of VLC, and then I will show you how to start it all.

# zypper ar -f http://download.opensuse.org/repositories/home:/drommer/openSUSE_Tumbleweed/ acestream-repo
# zypper in acestream-engine acestream-launcher

install vlc

This next section is not necessary, you can skip that if you already have a working VLC.

The reason that I install the latest VLC -beta is because in the future I hope to stream to my chromecast. The latest VLC *should* do the trick, but here it is not working yet. Anyway, I installed and use the vlc 4.0 beta version.
You will have to get it from the packman repo, so if you haven’t already added it, do it now: http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/

# zypper in vlc-beta

In order to satisfy the dependencies, you will have to agree with de-installing the regular -installed- VLC version.

how to start

And now for the real stuff. To start it all, as user do:

$ acestreamengine --client-console

and leave the terminal open. In a new terminal console do:

$ acestream-launcher -p vlc acestream://67665adae9b7535a10f7b7a22d43f15683e78bde

The VLC player will open and after a short while (hopefully) the stream will start playing in the vlc window. And of course you substitute the acestream-id in this example with the one that you found for your stream.

Happy viewing!

P.S.: the instructions in this article worked as of 26/8/2018

updated 30/8/2018 for typos.

Leave a Reply

Your email address will not be published. Required fields are marked *

The Latest Server Uptime Record: 1142 days

Last time I reported an uptime record, the record was around 350 days.

Today I found:

[root@xxxxxxxx ~]# uptime
10:55:46 up 1142 days, 9:22, 1 user, load average: 0.00, 0.00, 0.00

This server is up for more than 3 years.I have to admit that it is a virtual server.
As you can see, it is very busy 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

My personal checklist for upgrading from openSUSE Leap 42.1 to 42.2 using online update (zypper dup)

** update — also tested ok on 42.2 -> 42.3 **

This is my personal checklist for upgrading from openSUSE Leap 42.1 to 42.2 using online update (zypper dup). This may or may not include all the steps necessary for YOUR system.

You may not need all the steps. So be careful. Read it carefully, and make sure that you understand each step. Use it as an aid. Use it at your own risk.
Remember, always update 1 versionnumber at a time, so go from 42.1 -> 42.2 -> 42.3 and do not go from 42.1 to 42.3 !!

For the full (very good) documentation, see: https://doc.opensuse.org/documentation/leap/startup/book.opensuse.startup_color_en.pdf

Preparations:

  1. Check your repos.
    1. Remove all repos that you no longer need, like I have the ‘kde updated apps’ repo.
    2. It is most preferable to leave only base (oss & non-oss), update(oss & non-oss) & packman repos.
    3. # zypper verify
      to remove cache files from the repos you deleted. Saves lots of disk space beforehand.
  2. If necessary, but this may be not for you, enable packet locks on packages that you need. For instance, I still need createrepo and KDirStat and I don’t want the upgrade to delete these packages. This step may not be for you.
    1. # zypper al createrepo
    2. # zypper al kdirstat
  3. update your system to the latest patch level just before the upgrade.
    1. # zypper up
  4. IMPORTANT!! Make sure that you have enough free diskspace, >4GB is recommended. (probably in /var/cache but i’m not sure) <– yes, confirmed

To change the repos:

  1. go to the repo directory
    1. # cd /etc/zypp/repos.d/
  2. change all references from 42.1 to 42.2 (or whatever version number you need)
    1. # sed -i ‘s/42.1/42.2/g’ *.repo
  3. check if the repo files are correct now
    1. # grep base * | cut -d”:” -f2-
      and check the output
  4. check to make sure that these new repos all exist and are accessible
    1. # zypper ref -f

To start the update:

  1. please read step 4.3 below first.
  2. I like to start the update not in an X session, so either:
    1. init 3 :to switch to runlevel 3, or
    2. CTRL-ALT-F1 to start a root session on tty1. This has the benefit that a graphical console is still available during the update. (press CTRL-ALT-F7 to switch)
      but his is not a necessary step. You can skip this if you want.
  3. I like to download the files in advance, so I don’t end up with a broken system when something goes wrong during the process. Please check for >4GB free disk space beforehand.
    1. # zypper dup – -download-in-advance
      Otherwise just leave the download-in-advance option out.
  4. Really, really check the output good before giving it a go.
    1. Check especially the section on ‘downgraded packages’ and ‘removed packages’ . Check if there aren’t any packages that you know you want to keep.
    2. To check the downgraded packages, I have a little tip: type ‘v’ at the promt where zypper is asking for ‘yes or no’, and the list will be repeated but now with version numbers!
    3. This step may be difficult to do on tty1, so you might want to do a test run of this command in the graphical console first, where you have a large scroll-back buffer. So check and then simply answer no at the end will do. Then repeat the command in the tty1, where you will answer yes of course.
  5. Once you answered ‘y’, the download will start. For me, it was ~4000 packages, ~2.1GB download. How long this will take depends on your internet connection.
  6. After the download, the installation of the packages will start. How long this will take depends on the speed of your processor and disk system.
  7. then you can reboot
    # reboot

After the upgrade to 42.2, my server performed its functions (database, webserver, nfs, smb etc.) perfectly. However I had a slight issue with the KDE-desktop. The taskbar would not come up and the desktop was inaccesible.
To solve that, I had to issue the following command:
# zypper in -t pattern “kde_plasma”

That command installed some packages that were probably missing. After that, I could use the desktop as normal again.

Have a lot of fun!

Leave a Reply

Your email address will not be published. Required fields are marked *

spotify on openSUSE

Hello all,

UPDATE 25/8/2018: for tumbleweed users, you can find the latest package HERE, and then you will also need to install a dependency (libgcrypt) that you can get HERE.
After downloading the 2 packages you will need to install them with:
# zypper in ./spotify-client-0.9.17.8.gd06432d.31-1.x86_64.rpm ./libgcrypt11-1.5.4-2.289.x86_64.rpm

If you’re looking for a binary to install Spotify on your openSUSE installation, you can download a linux client from the spotify site, but that is a .deb file for debian/ubuntu.

I recompiled this client for openSUSE (tested on 13.2). So I build it for you and you can download it here. (binary from march 2015: spotify-client-0.9.11.27.g2b1a638.81-1.x86_64.rpm)

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Latest server uptime record

The last uptime record of one of my linux servers was around 350 days. Today I found another server that has even more uptime: 428 days. Another new record!!

The screendump is as follows:

filezilla:~ # uptime
16:01pm up 428 days 6:48, 1 user, load average: 0.13, 0.10, 0.10

-edit-

Today I found that the server is still up and going strong!! Updated screendump:

filezilla:~ # uptime
 15:29pm  up 697 days  6:15,  2 users,  load average: 0.30, 0.19, 0.15
filezilla:~ #

-edit-

I found another one that is still going strong!!

[root@cygnus2 ~]# uptime
 14:14:19 up 833 days,  4:09,  2 users,  load average: 0.02, 0.01, 0.00

Leave a Reply

Your email address will not be published. Required fields are marked *

Another server uptime record!!

The last uptime record of one of my servers was around 300 days. Today I found that the server still hasn’t rebooted and that has even more uptime: 353 days. Another new record!!

The screendump is as follows:

fotoserver:~ # uptime
 08:35am up 353 days 16:55, 1 user, load average: 0.14, 0.05, 0.06

Leave a Reply

Your email address will not be published. Required fields are marked *

Server uptime record

Today I noticed a new uptime record on one of my servers. The screenshot follows:

Have a lot of fun...
fotoserver:~ # uptime
 09:17am up 301 days 17:39, 1 user, load average: 0.00, 0.01, 0.05
fotoserver:~ #

301 days, a new record for a server.

Leave a Reply

Your email address will not be published. Required fields are marked *

Uptime record for workstation

Tomorrow I am going to reboot my workstation. So, before that happens I’m going to post  the screenshot with the new record uptime here:

uptime

openSUSE 12.1 with uptime of 223 days

 

Just as I was taking the screenshot, the uptime flipped to 223 days. A New Record!

Leave a Reply

Your email address will not be published. Required fields are marked *