Category Archives: Hobby

3D printed a stone

Why? Because i can

While on holiday in New Zealand i made photos of a rock i found on the campsite we where. Nothing special about the rock, but it was a nice subject to try to replicate.

So i took many many pictures of the stone from all sides.

Imported those images in meshroom and convered it to a 3D stl object.

Blender object

Printing and airbrushing

Added some grass from our clock project

Working on my Autoharp

I’m missing some chords on my autoharp, so i took it apart and refitted it using simular felt.

Cutting places with a penknife and placing new parts.

C E G – Cmaj
A C D F# – D7
B D G – Gmaj
B E G – Emin

A C E – Amin
B D F# – Bmin
B D F G – G dom seventh
A C# E G – A dom seventh

A D F# – Dmaj
A C F – Fmaj
A D F – Dmin
A C# F# – F sharp minor / G flat minor

Made a Crokinole game

Crokinole is played on a circular wooden board, with wooden circular disks as playing pieces.

Possible origin is Canada.

Players take turns shooting disks across the circular wooden board by flicking the disks with their fingers. Players try to land their disks in scoring regions on the board, with the highest scoring area the recessed hole in the very center of the board. Each round, each player/side alternately shoots a set number of disks (usually 12 or 8), shooting one disk each turn.

Players must position their disk on the start of each of their turns in their quadrant in front of them, touching the outer scoring ring boundary.

If there are no opponent’s disks on the board, they must aim for the center of the board.

If there is an opponent’s disk on the board, they must aim and hit an opponent’s piece first, either directly, or by a carrom shot.

The center recessed hole is worth 20 points, and disks are removed and scored at the end of the round if they land in the center hole.

Disks that are outside the outer scoring ring at the end of each shot, or are touching the outer scoring ring at the end of each shot, are removed from play for the round.

Sketchup drawing with measurements

Ignition starter for flightsim

I’ve got several Saitec flightsim items, and building some additions myself.

For example i’ve got:

Yoke system
Multi panel (Autopilot/flaps/trim)
Add rudder pedals

But i really wanted the feeling of starting the engine with a knob.
So i build one using alumium scraps and a arduino.

It doesn’t look much, but it all be behind a metal sheet anyway.
Really pleased with the spring reset and multiple settings.

Personal BWW music files search engine.

I’ve a lot of bagpipe writer music files, many are the same tune but a little different.

find -type f | egrep -i "bww$|bmw$" | wc -l
34565

Most contain information about composers, complete title, arrangements and information about harmony and seconds/thirds/whatever.

So I made a PHP search script and a BASH indexer.
(This is NOT a safe script to use servers with internet access)

PHP

Strict Search: <form method="post" action="?"><input type="Text" name="words" size=40 value=""><input type="Submit" name="submit" value="search"></form>
Fuzzy Search: <form method="post" action="?"><input type="Text" name="words2" size=40 value=""><input type="Submit" name="submit" value="search">Fuzzy-ness<input type="Text" name="words2key" size=1 value="3"></form>
Parsons Search: <form method="post" action="?"><input type="Text" name="words3" size=40 value=""><input type="Submit" name="submit" value="search">Fuzzy-ness<input type="Text" name="words2key" size=1 value="3"></form>

<P><PRE>
<?PHP
if ($_POST['words']) {
$words = preg_replace("(\r\n|\n|\r)", "", $_POST['words']); 
$words = preg_replace("/[^0-9a-z]/i",'', $words);
$command = "/bin/cat /var/www/html/findbww/bww.list |/bin/grep -i $words | sed 's/*\w\+//' | sed 's/\\/private\\/Private\\/Henri\\/save\\/move\\/cds-uitzoeken\\///g' ";
$blah=shell_exec($command);
$blah=str_replace("$words", "<b><font color=red>$words</font></b>",$blah);
print $blah;
}
if ($_POST['words2']) {
$words=$_POST['words2'];
$words2key=$_POST['words2key'];
$words = preg_replace("(\r\n|\n|\r)", "", $words); 
$words = preg_replace("/[^0-9a-z]/i",'', $words);
$command = "/bin/cat /var/www/html/findbww/bww.list |/usr/bin/agrep -$words2key -i $words | sed 's/*\w\+//' |  sed 's/\\/private\\/Private\\/Henri\\/save\\/move\\/cds-uitzoeken\\///g'";
$blah=shell_exec($command);
$blah=str_replace("$words", "<b><font color=red>$words</font></b>",$blah);
print $blah;
}
if ($_POST['words3']) {
$words=$_POST['words3'];
$words2key=$_POST['words2key'];
$words = preg_replace("(\r\n|\n|\r)", "", $words); 
$words = preg_replace("/[^0-9a-z]/i",'', $words);
$command = "/bin/cat /var/www/html/findbww/bww.list.parsons |/usr/bin/agrep -$words2key -i $words | sed 's/*\w\+//' |  sed 's/\\/private\\/Private\\/Henri\\/save\\/move\\/cds-uitzoeken\\///g'";
$blah=shell_exec($command);
$blah=str_replace("$words", "<b><font color=red>$words</font></b>",$blah);
print $blah;
}
?>
</PRE>

Bash indexer (uses agrep)

#!/bin/bash
[ `find /FULLPATH/Music/Bagpipe-music-writer/ -type f  | wc -l` -eq 0 ] && exit
cd /var/www/html/findbww
: > bww.list
: > bww.list.parsons
locate -i bww |  egrep -i "\.bww$" |grep -v html.bww|  while read tunepath; do
tune=$(basename "$tunepath")
keywords=$(cat "$tunepath" |  egrep -vi "FontSizes|FrequencyMappings|GracenoteDurations|InstrumentMappings|MIDINoteMappings|TuneFormat|VariationTempo|TuneTempo|Bagpipe Reader" | awk -F',\\(' '{ print $1 }' 
| grep -v \"\" | grep -v ^! | grep -v "Converted from" | grep ^\" |tr '\n' ','| tr -d "\015")
parsons=$(./parsons "$tunepath")
echo "$tunepath,$tune,$keywords" >> bww.list
echo "$tunepath,$parsons" >> bww.list.parsons
done

locate -i bwm |  egrep -i "\.bwm$" |grep -v html.bwm|  while read tunepath; do
tune=$(basename "$tunepath")
keywords=$(cat "$tunepath" |  egrep -vi "FontSizes|FrequencyMappings|GracenoteDurations|InstrumentMappings|MIDINoteMappings|TuneFormat|VariationTempo|TuneTempo|Bagpipe Reader" | awk -F',\\(' '{ print $1 }' 
| grep -v \"\" | grep -v ^! | grep -v "Converted from" | grep ^\" |tr '\n' ','| tr -d "\015")
parsons=$(./parsons "$tunepath")
echo "$tunepath,$tune,$keywords" >> bww.list
echo "$tunepath,$parsons" >> bww.list.parsons
done
chown www-data bww.list*

Converting for parsons code.
See https://www.henriaanstoot.nl/2022/03/23/20-years-www-pipetunesearch-org/
and https://en.wikipedia.org/wiki/Parsons_code

#!/bin/bash
echo -n "\""
for f in `cat "$1"` ;do echo "$f" |  tr -cd "[A-HL]_[0-9]" ; echo  ; done | grep -v '^$' |grep _ > /tmp/parsons
let count=0
for f in `cat /tmp/parsons| tr -cd "[A-HL] \n"` ;do
  if [ "$f" = "LG" ] ; then g=0; fi
  if [ "$f" = "LA" ] ; then g=1; fi
  if [ "$f" = "B" ] ; then g=2; fi
  if [ "$f" = "C" ] ; then g=3; fi
  if [ "$f" = "D" ] ; then g=4; fi
  if [ "$f" = "E" ] ; then g=5; fi
  if [ "$f" = "F" ] ; then g=6; fi
  if [ "$f" = "HG" ] ; then g=7; fi
  if [ "$f" = "HA" ] ; then g=8; fi
 if [ $count -eq 0 ] ;then 
  echo -n "*"; 
  ((count++))
  last=$g
 else
 if [ "2$g" -eq "2$last" ] ; then echo -n "r" ; fi
 if [ "2$g" -lt "2$last" ] ; then echo -n "d" ; fi
 if [ "2$g" -gt "2$last" ] ; then echo -n "u" ; fi
 last=$g
fi
done
echo "\""

Just place all files in a directory on a php enabled webserver.
The bash script is being run daily.
(parsons bash script is called from this main script)
These will generate 2 files
One with the filename and all useful text like composers.
And a file with the filename and the parsons code.
Example:

11th of September, The.bww,"*udduddudduddudurrdudrrdudduddudrrduuuuududurrdudrrurrdududurrdudrrduddudurrduudduddudduddududdurdudrurdduddududr
urduuudrduddurdudrudrurduududdurdudrurdduddururdududduddudduddudruddudruddudduddudruddruududududududrudurddrududruddudrudduddudurddrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrudrrud
rrudrrudrrudrrudrrudrrudrrudrrudrrudrruuduuduuduuduuduuudrduuduurduuduuurdrduuduuduuuduurduuduuduuduuduu"

Example screenshots

Making some steampunk lighting

Some new lights in our livingroom.

A while ago, I made a wooden shelf thingy behind our couch.
Inserted some electrical outlets and some network ports (utp outlets)
Put a load of little pebbles on top. But it needed some light.

Get some copper tubing, a pressure gauge, tap, bends and some electrical wiring.

First design

Easy and lots of fun

Welding course

Over a period of a few weeks i did a welding course, where i learned to weld with : Mig, Tig, Stick and Gas

I only did point welding, way back in school.

After the course i decided to buy a stick welder.

Ferm WEM1035

Beer hops

My DIY hop stirrer!

Because we brew our own beer, it was a no-brainer to grow our own hops.
Well … it sure grows .. and fast!

On several occations we made beer with it, but not knowing which type of Hops they were .. it was hard to do the calculations!

Converting a large old table into a meat carving station.

At a second hand store we bought a old 60-70 style livingroom table, because it was made from heavy large wooden table top. ( 22 euro’s )

Removing the legs, and cutting the tabletop with a pluge saw.
The saw didnt cut deep enough, but using a guide rail and cutting from the other side, i managed to cut it with ease.

Assembling time!

The girls sanded the top and put some protective layer on top.

Above the finished product in our kitch made of scaffolding material.