Adventures in HomeCinema: Audio /2 Bass woes

Bass woes

Last post finished with flaky bass in movies… sometimes great, sometimes not.

Without some objective measurements it is quite hard to understand the underlying problem, and without understanding the problem it is even harder to find some solution, let alone a good solution.

I bought an USB measurement microphone (UMIK-1) and used REW (room eq wizard) to measure the bass behavior.


The first (green) measure is without Audyssey, the second with.

You can see, that Audyssey helped a bit by lowering the peak at 33Hz and filled a bit the valley afterwards. Nonetheless there is a rather big drop of about 15db at 35Hz. It is often said that 10db difference represents a perceived 2-times loudness increase — 20db 4-times.

This certainly can explain the sometimes missing bass response.

I made more measurements and played a bit with difference subwoofer positions and AVR settings, but the problem at around 35Hz always stays the same.


There are tools to simulate / calculate these problem frequencies for rectangular rooms.

Amroc clearly shows problems between 33 and 36Hz (and even calculates the Schrödinger Frequency).

REW has a room simulator, where you can place your subwoofer(s) and your main listening position.

Both simulators show inherently the same characteristics that were actually measured. Playing around with REW room simulator shows a few positions for subwoofer / listener, that are unfortunately not possible.

Are there things to fix this situation?

Possible Solutions

position changes

Changing the position of the listener position respectively the subwoofer inherently also changes the loudness of the low frequencies. If possible this is the simplest fix. Not possible for me right now.

Sound Dampening

When building a home cinema from scratch in its own room, there should always be the concern of which (not if) sound dampening measures to install.

Living room cinemas are more constrained, and mostly limited to installing absorbers at the first reflection points.

I have not much clue about sound dampening, because I stopped researching after preliminary results. The needed space and costs are just nut feasible. Lower frequencies are longer, and need thicker and more heavier dampening, which I cannot install here.


There is the possibility to manipulate the frequency curve in the Audyssey App, or so I thought. Turns out you can only change the target curve the AVR should try to reach. And there are definitely limits how much equalising the AVR does, because it cannot be used to really do great changes unfortunately…

Parametric EQ

There are equalizer boxes (for example the miniDsp 2×4 HD) you can switch between the AVR and subwoofer, which offer the possibility to equalize like we need.

Additional Subwoofer

Additional subwoofer also should help, by basically filling up the valleys and reducing the peaks. Positioning them in opposite corners should do the trick.

The simulation says so! I have to read up, why specifically this should work.

Next steps

The most promising (and possible) things to try are the EQ box, and more subwoofer. I lean on the side of more subwoofer.

I have ordered a suitable cable to try out my kitchen subwoofer. It is better to use the same subwoofer, but this should be ok for a quick proof of concept.

Adventures in HomeCinema: Audio

The home cinema experience depends of course on the picture quality, but also the sound quality, if not more.
    Sound quality is directly reflected by your equipment and your subjective listening experience. Meaning more expensive is not always better for you, even though the equipment might be objectively measurable better.
    My 5.1.2 equipment:
  • Mains: Klipsch RP RP 280F
  • Center: Canton Center
  • Subwoofer: Klipsch R-112SW
  • Surrounds: Klipsch RP 402S
  • Atmos Ceiling: KEF T301
  • AVR: Denon X1600
My basic steps and AVR settings:
  • subwoofer crawl for finding a suitable place
  • Audyssey measurements
  • Set boxes to small and set the the LFE crossover to 120Hz
in the AVR android app (MultiEQ) are some more settings to change:
  • disable “Midrange Compensation”
  • set “MultiEQ Filter Frequency Range” to your rooms Schrödinger Frequency. This effectively restricts the AVR EQ to the lower frequencies.
The Schrödinger Frequency is the limit where your room doesn’t act like a resonator anymore. [1, 2] Bass frequencies up to 100-300Hz get amplified or negated, while everything higher disperses after some reflections.
    Seems easy enough, and sounds pretty good under most circumstances. Unfortunately some movies (for example Deep Water Horizon) that should be very bass-heavy sound / feel pretty tame. Will have to check how to fix this in the next post…

Github issues as my todo list

Introduction / motivation

Some friends and me have a regular weekly meeting. Besides friendly chatter, the reason for this particular meeting is to discuss what everyone has done respectively failed to do. We listen, give feedback where necessary, and the task to actually talk about your tasks is a great productivity boost. At the end of each session the planned tasks for next week will be presented. Additionally everybody has to sent an eMail presenting a small summary of tasks (not) done / tasks todo.

Until now I didn’t really track these tasks, besides some notes in the eMails themselves and some paper scraps. But this changes this year with Github issues.

Github issues

There are quite a lot todo list apps out there. Personally I did try Wunderlist and Todoist in the past. Why would I choose Github (GH for short) Issues over these more “traditional” tools?

Besides a personal preference about the way GH is used, there are two big reasons:

  • templates
  • API


Github lets you save templates from which you can choose for different issues. Not only can you set the issue text, but also the labels, assignments, and milestones / projects they belong to. For example a template for normal todos with sections for SMART goals, and a template for buying things with a budget section.


Automation is sometimes pretty handy and even useful. GH offers a very comprehensive GraphQL Api, which can be used to handle issues.

Further down I describe two cases where the API is used to great satisfaction.

more reasons

The following reasons contribute also:

  • As a software developer I am already comfortable with GH and its UI / possibilities.
  • Githubs UI is in my opinion better for usage on the desktop. (Regarding smartphone useability I have no idea — I generally use my smartphone only for podcasts and chatting.)
  • Progress can be easily tracked with comments and appended files (like pictures).


There are some Saas platforms like zapier or IFTTT that have integrated GitHubs API. And there are tools you can use respectively self-host that have integrated or at least can be used with the API. Tools like huginn, n8n or Node-RED.

The following two tasks have been automated (for now with Zapier ¯\_(ツ)_/¯):

Book summary issue

After finishing a book, a reminder to summarize the book is created. Not all books need a summary, or have some lasting value, but some do. The reminder is an issue with the book title, read from a Goodreads RSS feed containing my read books.

Weekly check-in

One of the things that can’t be represented in issues are daily or otherwise very often repeated tasks. These I track offline. But a weekly check-in issue to track the overall accomplishment of dailies is a good compromise in my eyes. Just let the automation service create a checklist issue with the current week as title.

Open tasks / questions

Like already mentioned, there are things that cannot really be represented in the GH issue flow. For example things like dailies or otherwise often repeated tasks and deadlines / schedules.

For now I just use the weekly check-in as reminder respectively a calendar.

Thanks for reading!

Buying HiFi music boxes

After repairing my gifted amplifier (Link), the next step was to get some good music boxes. My preferences are mostly metal and rock music, but also soundtracks. The first step in buying something expensive should always be some “independent” research.

Some steps before buying / trying

  1. Check what most people are buying and recommending, and what it costs.
  2. Which feature do you really need? What do you only want?
  3. Cross-reference the needs and wants with the price of the products. Can you get what you need for the price you are willing to pay?
  4. There is almost never a linear progression between quality and cost. At some point, the miniscule better quality is not worth the cost. But there is often a sweet-spot, a point where you get the most “bang for your buck”.


Music preferences can play a role in the choice. Depending on your viewpoint between “should replicate the sound exactly” or “should sound how I like it”, some products others like are just not for you, and vice versa. Know what you need.

After researching (hifi-forum is a really good source for audio-equipment opinions if you speak german), cross-referencing, etc. there were three products I was willing to try.

  • Nubert nuBox 513
  • Canton Ergo 670 DC
  • Klipsch R-820F

In the end I choose none of them 🙂

All had great build quality. Sound is of course subjective; the nuBox 513 sounded a bit flat (lifeless?) at my amp in my room — it is often written Nubert boxes have a neutral sound reproduction. Seems I don’t like such sound.

The Canton Ergo 670 and Klipsch R-820F were both great. R-820F seemed to have more bass and highs, while the Ergo 670 were more “clear” with better mod-sections. Bottom line: Some music were better on the Klipsch, while others were better on the Canton…

Luckily my brother did also listen to them, and would have liked to get the Canton if I would chose the Klipsch. I was on the fence with the Klipsch, because I bought the wrong recommended pair…

Therefore my brother got the Canton Ergo, the Nubert nuBox and Klipsch got returned while my final pair was sent on its way.

The arrival and repair

The final pair was a Klipsch Reference Premiere 280 F. In hindsight I am really glad to returned the R820 and got the RP280; they sound even better 🙂

Unfortunately one of them was broken on arrival. The tweeter (which produces the high tones) was dead. But after a short email exchange with the seller, I was able to repair it. After opening the chassis and re-attaching a single cable everything was great.


Do your research, especially for higher-prices items.
Try and compare.
Buy the correct things.
Don’t be afraid to repair the things (if the warranty is still intact afterwards).

Thanks for reading

Error with wrong API version of node module


Some npm packages are not pure javascript. If they have some kind of binary, these binaries have to be compiled against the right nodejs version; or else the ABI is wrong. There are precompiled binaries, but sometimes there aren’t or they doesn’t fit the version you need. Especially with electron, which maybe uses different versions…


Either way, this was the error message

Error: Cannot find module node_modules/sqlite3/lib/binding/node-v57-linux-x64/node_sqlite3.node

while there was a node_sqlite3.node, but in a different /binding subdirectory.


This stackoverflow post has guided me to a package that can rebuild to the correct ABI used:

npm install –save-dev electron-rebuild
$(npm bin)/electron-rebuild

And that was another problem fixed. Thanks for reading!

New training plan

After some time off training because of moving, work, injuries and laziness, let’s start anew. Some preconditions:

  • Squats, deadlifts, bench and overhead press are the focus
  • Both presses should occur more often, because I also jog and ride my bike every morning, and I intend to add pull-ups and rows.
  • Some hamstring exercise, because I sometimes have muscle soreness after squats respectively deadlifts. Also have to check / learn proper hip hinging.

After taking some inspiration from popular programs like 5/3/1 or Greyskull LP my own plan looks something like this at the moment:

First day

  • 4×4 Overhead Press
  • 4×8 Squat

Second day

  • 4×4 Deadlifts
  • 4×8 Bench press

Third day

  • 4×4 Bench press
  • 4×8 Overhead press

Additional movements, alternating after the main exercises:

Addition 1

  • Rows 3×10
  • Curls 3×10
  • Skullcrusher 3×10

Addition 2

  • Hamstring exercise
  • Ab exercise (wheel, leg raises)

Addition 3

Pull-ups after every training day, more than before.

Linear progression

  • add x weight after successful attempt.
  • back-off x weight after some failed attempts


  • Maybe too much back exercises in contrast to abs?
  • Why 4×4 / 4×8? I saw it somewhere and tried it before; I liked the variety.
  • Why so much pull-ups? I want to be able to get 10 in a set. If it is too much, I remove something for better recovery.

How I brew a decent cup of coffee

Just a short post how I make my coffee at home. In case I forget something ^^. We have a coffee automate at work, when visiting relatives I usually get ok drip coffee or horrible capsule coffee.

Therefore I like to taste something different at home: french press coffee. Additionally it doesn’t produce waste and is easy to clean.

0. Tools

  • Beans
  • French press
  • Grinder

The taste of the beans contribute the most to the overall taste. Therefore try different kinds to get a coffee to your liking.


1. Grinding

The granularity of the ground coffee powder determines how it should be further processed ( And the taste changes a bit. Again try different settings to find a granularity that fits your taste.

For a french press I aim for medium coarse. I like to have some fine particles in my coffee.

Boil the water while grinding. Both will be ready at the same time.

2. Pour some water

Fill the glas jar with water until the coffee ground is under water.

Wait 2 minutes und then stir.

3. Fill with water

Pour the remaining water in.

4. Press

After 5 minutes, slowly press down.

5. Enjoy


Motivation (and Purpose)

Motivation gets generally a bad rep. I thought so too. But after a short discussion with a friend about discipline, something caught my attention: For somebody having a low opinion about motivation, I sure have lots of motivational quotes, poster, pictures and music in my everyday life.


Let us clarify the terminology first:

Definition of motivation

  • 1a : the act or process of motivating
    b : the condition of being motivated
  • 2 : a motivating force, stimulus, or influence : INCENTIVE, DRIVE


Definition of purpose

  • 1a : something set up as an object or end to be attained : INTENTION
  • 2 : a subject under discussion or an action in course of execution


From my understanding of these definitions, motivation and purpose seem like they need each other. Or at least work well together.

Let me think

The bad reputation stems from the common misapplication of motivation. Everybody knows the meme about full gyms after silvester. Without the desire to fulfill the long-term goal (aka purpose) of being fit, looking good, getting healthy, … there will be nothing that keeps these folks returning to the gym.

If there is no purpose, motivation can be detrimental.

On the other side, what is purpose without motivation? The purpose is motivation enough! Haha, we are not kidding ourselves here. Without small wins, without some form of positive reinforcement or encouragement, the greatest purpose loses its appeal.

If there is no motivation, purpose can be not enough.

Have a purpose. Know why you are doing something.

Enjoy the way. Celebrate some goals, struggle after failures, and if a fist-bumping song helps rising the spirits, then turn the volume up.

Motivation and purpose are on a spectrum. They are neither good nor bad themselves, but what you make of them.

Thanks for reading!

Building my powerlifting platform

I always liked the look of the power- or weightlifting platforms with their finished surface, protective sides and cool logos. Especially homemade ones having an inspiring quote, motive or picture that represent the mindset and goals of the maker just ooze of personality and inspiration.

After recently moving to a place with enough place for a plattform I couldn’t resist and had to attempt one for myself… Well, maybe I searched only for places with enough place 🙂

Prior art

Commonly they are build with two layers of plywood as base, on top of which comes another plywood sheet in the middle and tractor or horse stall mats for the sides. For example like in this post: How to Build a Weightlifting Platform.

I did it differently. Having no garage to train in, my plattform stands in the kitchen — and I didn’t trust plywood and a moderately thin rubber mat to prevent cracking the floor in case I do something stupid.

The materials

– 50 x 50 x 4 cm³ rubber mats, 8 pieces for the surrounding

– 100 x 100 x 2 cm³ rubber mats, 2 pieces for the base

– 200 x 100 x 1,8 cm³ plywood(?)

– 3 litres epoxide resin and 0,75 litres solidifier

– an awesome poster


The assembly is pretty much a no-brainer, except for applying and sanding the resin. You can leave the plywood as is, or make it personal by spraying/painting a quote or picture on the plywood or glue a poster on it. Or even something more creative I cannot think of! I choose the poster route 🙂

(1. Optional: Cut parts off of the poster you don’t want.)

(2. Optional: Glue it to the plywood. Easy as that.)

3. Place 4 pieces of the small rubber mats to the left, 4 pieces to the right, and the two bigger mats in the middle.

4. Make a temporary wall for the resin around the plywood so that it resembles a very flat tub. Some type of tape should do it. It should be sealed tight, unless the resin flows / drops through it.

5. Mix the resin and solidifier according to the manual and fill the tub.

6. Spread the mixture evenly. Small bubbles will probably form; try to burst as many as possible.

7. Wait a week. Then remove the temporary walls around the wood.

8. Sand and grate the edges with different types of abrasive paper.

9. Place the finished board in the middle and add your equipment.

(10. Optional: Decorate the rest of the room.)


It is just awesome! I’m really in love with how it looks and performs. It’s radiating in light, but not too much, the natural pattern of the wood is great and the motive really shines and stands out.

There are some very small beauty mistakes like an edge of the poster was not glued and got lifted up, and some really small bubbles here and there. I don’t know if you can really prevent every single bubble, but double checking the correct adhesion of the poster should at least eliminate the first problem.

Looks are subjective, but performance not. The resin is very anti-sliding — there is no way i could move my feet without lifting them off the ground first. And the whole plattform is rock-solid and even. It feels pretty much like on an indoor basketball court or football field.

Idea behind the chosen picture

The picture got chosen not only because of the kick-ass Bowser illustration itself. If you don’t know, Bowser is the main villain in most Mario games. You have to literally rescue the princess and defeat the final boss Bowser. But it’s deceiving. There will always be a new game, where you have to defeat Bowser again. Or another game with another “final” boss. Or you just play the same game over and over ¯\_(ツ)_/¯

The conquering of a goal usually never means the end. There will be new goals, new bosses. In a way, the final task in achieving a goal isn’t even the real goal. The way to reach the goal is the real struggle, the real villain. Like in a game, like in training. Once you reached your final boss, you’re already grown so much that the fight isn’t even that important anymore.

That’s the idea, and what I never want to forget.


Many thanks to my friends Sebastian and Robin for their manpower in grating and final placement of the equipment! And to my brother Benjamin for the technical guidance and general help — you can find other interesting articles on his blog (in german), for example how he build the squat rack (parts 1, 2, and 3) seen in the pictures 🙂

Thanks for reading!

How to start an Electron + Vue + Typescript project


For a new, to be announced, project, I needed to combine some technologies I am not yet accustomed with.

GUI: I decided to write the GUI in Vue. Vue is a toolkit to write “modern” HTML/CSS/JS front-ends. Why not React you ask? Because be use Vue at work, and it cannot harm knowing it also a bit. Plus it is called beginnner-friendly and looks pretty similar to React.

Backend: Either a dedicated server, or something with integrated browser. I choose the latter, because I want to try Eclipse 🙂 Eclipse has an integrated Browser engine (Blink from the Chromium project), has APIs to interact with the desktop and can also run the “backend” part alongside the front-end.

Language: Typescript, because also want to try it 🙂

How to start an Electron + Vue + Typescript project

There were some problems in getting started, because the three projects evolved pretty rapidly in the last few months. Thus many posts or tutorials were already outdated, as well as popular templated like

install Vue CLI

install Vue CLI with

$ npm install -g @vue/cli

create a new Project

create a Vue project with your project_name

$ vue create project_name

You can now choose between a default plugin preset, or choose manually the ones you need. You can always install missing plugins later, if you are unsure of your needs.

Vue CLI v3.5.5
? Please pick a preset: default (babel, eslint)

install plugin electron-builder

go to the project folder, and install electron-builder with

$ vue add electron-builder

add Typescript support

add typescript support

$ vue add @vue/typescript

That’s it!

you can now run the electron app via

$ npm run electron:serve

Have fun!