Bagpipe Drone Tune Trainer

Somewhere in 2006 i made a drone trainer for our pipe band.

I was based on Flash, flash is dead. So i redid it in pure HTML5.

There is a long explanation howto tune in Dutch, it was in the Bands Wiki. Listen to the wave-beats and get it in tune!

Example beats

The page and source can be found here. (Just save page source to your computer!)

https://media.henriaanstoot.nl/dronetrainer.html

Forgot to show the frequencies being wrong while starting the drones. (Just press show to see them)

Electronic pipes

While they are not the real thing, and sound mostly bad. These little electronic devices are great on the move.

Great for using with headphones. Nice to have one of those in your backpack on holiday.

I’ve bought a Technochanter in 2004 and a deger in 2005, both with their benefits.
(I’ve got a little batterypowered mixer with dual output, so Coline and I can play a duet in silence 🙂 )

Technochanter at the top, the black one is the Deger

Both can play accidentals like natural C/F and more.

Links

http://www.fagerstrom.com/
https://www.deger.com/

I designed a electronic bagpipe in the 90’s myself, but it never was a success. ( Shall update this page when I find the schematics )

In 2010 I bought a Yamaha QY100 seqencer. I can connect the deger using a DIY midi cable, and use its buildin instruments.

Specs deger:

  • Same size and finger spacing as a long practice chanter.
  • Dual output: PHONES and MIDI! Headphones and MIDI devices can directly connect to the DegerPipes Chanter. It’s also possible to connect the phones output to an amplifier or a stereo.
  • The chanter contains all electronic components as well as the battery. No external box or additional equipment is needed.
  • Authentic Bagpipe sound including drones generated by wavetable sound synthesis. Highland Pipe and Smallpipe sounds integrated.
  • Perfectly tuned chanter scale and drones by usage of crystal oscillator and microprocessor control.
  • The Pitch is adjustable in a range of more than three octaves. This enables you to play together with other instruments in any key.
  • The drones volume is variable and can also be switched off.
  • Through MIDI output every MIDI compatible tone generator or other MIDI equipment can be used (for example PC with notation program).
  • An extended cromatical scale is available allowing you to play tunes which are not playable on the real pipe chanter.
  • Driven by a cheap standard 9V Battery, Accumulators are also usable.
  • Up to 100 hours of playing with only one battery.
  • Automatic power off after a minute of no activity.
  • A Metronome is integrated within the Chanter.
Deger Midi Cable

Specs Technochanter:

  • Fits in your pocket: only Ø16 x 225 mm (Ø5/8″ x 9″)
  • Uses earphones (not included): therefore perfect to play on buses, trains etc. Ideal for the commuter.
  • Natural C and F.
  • Pitch alterable.
  • Unforgiving at detecting crossing noise.
Finger Chart


Below a link to the QY100

Pipers Workshop

We gave a workshop for our pipeband.

Maintenance, making a goose, tuning and general advice.

Below is the work document from a day before (where is the final version???) Dutch only

Tuner with my own calculated offset of perfect harmonics/tuning

I also talked about tuning the drones.
https://www.henriaanstoot.nl/2006/01/01/bagpipe-drone-tune-trainer/

And some other oldskool tricks, like the metal dronestarter for cane reeds.

Some notes i made while playing with a Canadian Pipeband in Holten when i was 16 or so.

Old drone reeds.

Coline’s Persuasion

A trip to Scotland with our band. I wanted to remember the whole night drinking, staying outside on deck .. and getting lost.

So i composed a little tune we could play with the band.

The arches need to be played with slides .. like slipping of the deck. Same in bars 1,3,5 and 7 and second part

Coline persuaded several people to stay up all night. We drank a lot, and in the morning we tried to get down to our cabin’s.
But having to much to drink, apparently we took a wrong turn. We where in the living quarters of the cabin crew! A wrong elevator later .. the kitchen .. how did this happen. Friendly members of the crew showed us the way out.

Ximian Desktop

I’ve bought ximian desktop with the exchange 2000 connector (For work) in the same package was staroffice 6.0.
It was based on Redhat 7.3

Ximian Desktop provides everything you need to put your Linux system to work. It includes a graphical interface based on the GNOME platform, with high-quality applications like the Ximian Evolution® groupware suite.

All editions of Ximian Desktop add the following:

  • A special Ximian edition of the OpenOffice.org office suite.
  • The most advanced Linux* printing system available today, integrated with the entire desktop and based on the CUPS subsystem. CUPS supports more printers and makes it much easier to set them up.
  • Extensive network compatibility for Windows* and UNIX networks.
  • Easy, removable media tools, including CD burning made simple.
  • A “My Computer” tool to help you navigate files, networks, and devices, designed especially for people migrating from Microsoft Windows.
  • The Red CarpetTM software management tool, which makes sure you get critical software updates quickly, easily, and securely.

The Professional Edition of Ximian Desktop includes additional software and services:

  • Agfa Fonts: High-quality licensed fonts, metrically compatible with those used in Microsoft* Office, to help preserve formatting and styles across platforms.
  • RealNetworks* RealPlayer*: Media player for RealAudio and RealVideo formats. Works with or without your Web browser.
  • Macromedia* Flash*: Browser plug-in for display of Flash vector animation on the Web.
  • Sun* Java* Runtime Environment: Allows you to use the broadest range of Java software with the best performance.
  • A year’s subscription to Red Carpet Express, the Ximian high-bandwidth update service.
  • 30 days of personalized Web-based support at support.ximian.com.
Outlook integration (needed for work)
Nice icon set
Red Carpet
Vector graphic icons, one of the first distro’s which got it right

Beer crate bottle counter

Post in 2002 due to screenshot .. dont know when i build it, some years before.

Using 24 pushbuttons and a IO expander, i could count the bottles in a crate. Probably used something like a hef4067 ??

Now i probably use a weight sensor or a beer cap counter using a webcam image.

Notification to email and shopping list printer.

Web Interface

Every bottle had to be placed back upside down so the opening of the bottle would not press down on the button. Later i used springs which could hold a empty bottle elevated above the button. The weight of a full bottle would press on the button.

Web part Dopcounter (screenshot at top of page)

<HTML><HEAD><TITLE>dopDB.counter running @ fash's place</TITLE></HEAD><BODY bgcolor=white text=black>
<?
if ($show){
print "<a href='index.php'>Show Last</a>";
}
else {
print "<a href='?show=1'>Show All</a>";
}
?>
<CENTER>
<?
$db = mysql_connect("localhost", "user", "pass");
mysql_select_db("dopDB",$db);
// store voor bargraph
$store=0;
$result2 = mysql_query("SELECT max(timestamp) FROM counter",$db);
$maxtimestamp = mysql_fetch_array($result2);
$result = mysql_query("SELECT * FROM counter",$db);
while ($myrow = mysql_fetch_array($result)) {
$lenght=strlen($myrow[1]);
if ( $lenght = 24)
{
if ($maxtimestamp[0] == $myrow[0] || $show)
 {
 $row1= substr("$myrow[1]", 0, 6);
 $row2= substr("$myrow[1]", 6, 6);
 $row3= substr("$myrow[1]", 12, 6);
 $row4= substr("$myrow[1]", 18, 6);
 $row1 = str_replace("1","<td><img src='dop.jpg'></td>",$row1);
 $row1 = str_replace("0","<td><img src='dopl.jpg'></td>",$row1);
 $row2 = str_replace("1","<td><img src='dop.jpg'></td>",$row2);
 $row2 = str_replace("0","<td><img src='dopl.jpg'></td>",$row2);
 $row3 = str_replace("1","<td><img src='dop.jpg'></td>",$row3);
 $row3 = str_replace("0","<td><img src='dopl.jpg'></td>",$row3);
 $row4 = str_replace("1","<td><img src='dop.jpg'></td>",$row4);
 $row4 = str_replace("0","<td><img src='dopl.jpg'></td>",$row4);
 print "<TABLE border=15 bgcolor='#aaaaaa'><TR>";
 print $row1;
 print "</tr><tr>";
 print $row2;
 print "</tr><tr>";
 print $row3;
 print "</tr><tr>";
 print $row4;
 print "</tr><table>";
 }
$dopcounter=str_replace("0","",$myrow[1]);
$totaldop=strlen($dopcounter);
if ($maxtimestamp[0] == $myrow[0] || $show)
 {
print "<P>";
print date('l dS of F Y H:i:s',$myrow[0]); 
print "<BR><H1>$totaldop bottles left</H1>";
 }
$store = $store + 1;
$storetotals[$store]=$totaldop;
if ($totaldop < 6 && $maxtimestamp[0] == $myrow[0])
 {
 print "<BR>Time to buy some beer again!<BR>";
 }
}
else
{
print "numba bottles error! check code!";
}
}
?>

<table border=0>
<tr>
<?
$storebck=$store;
if ($storebck > 50){ $store=$storebck-50; } else { $store=0; }
while ($store <= $storebck){
print "<td bgcolor=#efefff width=10 valign='bottom'>";
$double=$storetotals[$store]*2;
print "<img src='bar1.gif' width=15 height=$double></td>";
$store = $store +1;
}
?>
</tr>
<tr>
<?
if ($storebck > 50){ $store=$storebck-50; } else { $store=0; }
while ($store <= $storebck){
print "<td bgcolor=#efefff width=10 valign='bottom'>";
print "$storetotals[$store]</td>";
$store = $store +1;
}
?>
</tr>
</table>
</BODY></HTML>

Reverse engineering a alpha ticker led scoller

Cobra from the Icecrew got his hands on some Led scrollers.

But they only had a windows program to controll these, so we started some reverseengineering.

First we had to make a serial cable.
(Now we could easily use a logic analyser with protocol decoding)

Next i made a sniffer .. because we only had a windows program to control the display.
So we used a windows machine to control the display by serial, and using a read line to a linux machine to stiff the serial traffic

After some tinkering .. we got this

So we wrote some software to control it using Linux

Some code

#!/usr/bin/perl
# Get the attention of the sign
print "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
# Tell the sign to print the message
$message = "���������������������    ";
print "\001" . "Z" . "01" . "\002" . "AA" . "\x1B" . " b" . $message . "\004";
#print "\001" . "Z" . "01" . "\002" . "AA" . "\x1B" . " a" . $message . 
#"\004";

::::::::::::::
PERLTESTLED
::::::::::::::
#!/usr/bin/perl
print "\0\0\0\0\0\001" . "Z" . "00" . "\002" . "AA" . "\x1B" . " b" . "Test Message" . "\004";

::::::::::::::
PERLTESTLED2
::::::::::::::
#!/usr/bin/perl
# Get the attention of the sign
print "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
# Tell the sign to print the message
$message = "<<<<<<<<<<<<<<<<";
#print "\001" . "Z" . "01" . "\002" . "AA" . "\x1B" . " b" . $message . "\004";
print "\001" . "Z" . "01" . "\002" . "AA" . "\x1B" . " a" . $message . "\004";

A few days later i wrote a controller using glade. (Could not find more code)

Some time later we found some datasheets which could have helped!

"If something is worth doing, it's worth overdoing."