Skip to content

Month: October 2007

My custom amplifier…yep, I built it myself

When I made my guitar post, I promised to put up a picture of my custom, home-built tube amp. Here you go! Details below.

The amp started as a kit from Allen Amps and I built it at the end of 1999. It has since undergone a small amount of modification. The valve complement includes one 5U4G rectifier, two 6L6GC power tubes, and two 12AX7s plus two 12AT7s in the preamp and reverb circuits. The sound comes from two 10 inch Jensen C10Q speakers.

I know the real question is “How does it sound?” Think of a vintage Fender Vibrolux, without the vibrato and with no normal channel. Then add the reverb circuit from the old Fender stand alone reverb head from the 1960s. Finally, modify the preamp slightly to give it a bit of the tweed 4×10 Bassman feel, and you will be pretty close. Oh, except this amp is quieter…there is still some hiss, but very little.

Words are cheap, though. Here are a few mp3s. Let me know what you think…they were recorded about 7 years ago and the recordings aren’t perfect, but they are good enough for you to catch the feel and tone of the amp, and that is what I was going for at the time. Note: these are all played with my Tele (the one that you saw in the other post) plugged straight into the amp with no outside effects. All I did was change the settings on the amp.

Typical setting 1

Typical setting 2

I Wish I Could Play Jazz

Blue Thang

Amazing Grace

Satisfaction Plus

And there’s one more, from a day when I was doing some recording and discovered there was about 3 minutes of tape left at the end of a project. Instead of wasting the tape, I decided to play around a little. This one has two tracks instead of just one.

The End of the Tape

I performed, recorded, and own the copyright for all of these clips, and I hearby release them into the wild with a Creative Commons license (by-nc-sa-3.0). Enjoy. If you use them for anything, I would love a “heads up.”

Fun With Conky, part 2

As you will recall from my earlier blog entry, I have been having fun with Conky, a lightweight system monitor that displays output to your desktop. Since I have upgraded to Gutsy, and therefore the latest repo version of Conky (1.4.7), I have had the opportunity to play with some newly available wireless variables. These were first pointed out to me by Mike, to whom I give credit and thanks.

The new wireless variables make it easier than ever to have specific data output relating to your wireless ethernet adapter. Here is how I have modified my previous setup…see the earlier post for the full details on how I am using Conky.

First, the new display.

Second, the updated configuration file. Generally this is called .conkyrc and placed in your /home. I’ll include the entire file so that readers don’t have to cut and paste information from two blog entries to get my full setup. The important bit with the wireless changes is under the heading Wireless Networking, near the bottom. Enjoy!

# set to yes if you want Conky to be forked in the background background no cpu_avg_samples 2 net_avg_samples 2 out_to_console no # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Create own window instead of using desktop (required in nautilus) own_window yes own_window_type override own_window_transparent yes own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager #own_window no #own_window_transparent no # Use Xft? use_xft yes # Xft font when Xft is enabled xftfont Liberation Mono Italic:size=8 uppercase no # Text alpha when using Xft xftalpha 0.8 # Update interval in seconds update_interval 1 # Draw shades? draw_shades no # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Stippled borders? stippled_borders 10 # border margins border_margin 4 # border width border_width 1 # Text alignment, other possible values are commented #minimum_size 10 10 gap_x 13 gap_y 45 #alignment top_left alignment top_right #alignment bottom_left #alignment bottom_right # Add spaces to keep things from moving about?  This only affects certain objects. use_spacer yes # Subtract file system buffers from used memory? no_buffers yes # ideas that I didn't want to lose # ${time %a  %b  %d}${alignr -25}${time %k:%M} TEXT ${alignc}${color #D6CACA}$sysname kernel $kernel ${alignc}${color #D6CACA}${exec cat /etc/issue.net} on $machine host $nodename ${color #D6CACA}${execi 1000 cat /proc/cpuinfo | grep 'model name' | sed -e 's/model name.*: //'} ${color #c9d6d6} ${freq_dyn}Mhz ${color #D6CACA}Current CPU usage & temp:${color #c9d6d6}  ${cpu}%${color #D6CACA}, ${color #c9d6d6}${acpitemp}C ${color #D6CACA}/${color #c9d6d6} ${acpitempf}F ${color #D6CACA}Plug/battery status:${color #c9d6d6}  $acpiacadapter, $battery ${color #D6CACA}Load average:${color #c9d6d6}   $loadavg ${color #D6CACA}CPU usage         ${alignr}PID     CPU%   MEM% ${color #c9d6d6} ${top name 1}${alignr}${top pid 1}   ${top cpu 1}   ${top mem 1} ${color #c9d6d6} ${top name 2}${alignr}${top pid 2}   ${top cpu 2}   ${top mem 2} ${color #c9d6d6} ${top name 3}${alignr}${top pid 3}   ${top cpu 3}   ${top mem 3} ${color #D6CACA}Mem usage ${color #c9d6d6} ${top_mem name 1}${alignr}${top_mem pid 1}   ${top_mem cpu 1}   ${top_mem mem 1} ${color #c9d6d6} ${top_mem name 2}${alignr}${top_mem pid 2}   ${top_mem cpu 2}   ${top_mem mem 2} ${color #c9d6d6} ${top_mem name 3}${alignr}${top_mem pid 3}   ${top_mem cpu 3}   ${top_mem mem 3} ${color #D6CACA}RAM Usage:${color #c9d6d6} $mem/$memmax - $memperc% $membar ${color #D6CACA}Swap Usage:${color #c9d6d6} $swap/$swapmax - $swapperc% ${swapbar} ${color #D6CACA}Processes:${color #c9d6d6} $processes  ${color #D6CACA}Running:${color #c9d6d6} $running_processes ${color #D6CACA} ${color #D6CACA}Hard disks:   / ${color #c9d6d6}${fs_used /}/${fs_size /} ${fs_bar /}   ${color #D6CACA}/home ${color #c9d6d6}${fs_used /home}/${fs_size /home} ${fs_bar /home}   ${color #D6CACA}hdd temp: ${color #c9d6d6}${execi 300 nc localhost 7634 | cut -c22-23 ;} C ${color #D6CACA}Wireless Networking:   ${color #D6CACA}ESSID: ${color #c9d6d6}${wireless_essid eth1}  ${color #D6CACA}AP: ${color #c9d6d6}${wireless_ap eth1}   ${color #D6CACA}${exec iwconfig eth1 | grep "Frequency" | cut -c 25-45}   ${color #D6CACA}Mode: ${color #c9d6d6}${wireless_mode eth1}  ${color #D6CACA}Bitrate: ${color #c9d6d6}${wireless_bitrate eth1}   ${color #D6CACA}Local IP ${color #c9d6d6}${addr eth1}  ${color #D6CACA}Link Quality: ${color #c9d6d6}${wireless_link_qual_perc eth1}   ${color #D6CACA}total download: ${color #c9d6d6}${totaldown eth1}   ${color #D6CACA}total upload: ${color #c9d6d6}${totalup eth1}   ${color #D6CACA}download speed: ${color #c9d6d6}${downspeed eth1} k/s${color #c9d6d6} ${color #D6CACA}   upload speed: ${color #c9d6d6}${upspeed eth1} k/s   ${color #c9d6d6}${downspeedgraph eth1 15,150 ff0000 0000ff} $alignr${color #c9d6d6}${upspeedgraph eth1 15,150 0000ff ff0000} ${color #D6CACA}Wired Networking:   ${color #D6CACA}Local IP ${color #c9d6d6}${addr eth0} ${color #D6CACA}   ${color #D6CACA}total download: ${color #c9d6d6}${totaldown eth0}   ${color #D6CACA}total upload: ${color #c9d6d6}${totalup eth0}   ${color #D6CACA}download speed: ${color #c9d6d6}${downspeed eth0} k/s${color #c9d6d6} ${color #D6CACA}   upload speed: ${color #c9d6d6}${upspeed eth0} k/s   ${color #c9d6d6}${downspeedgraph eth0 15,150 ff0000 0000ff} $alignr${color #c9d6d6}${upspeedgraph eth0 15,150 0000ff ff0000} ${color #D6CACA}Public IP ${color #c9d6d6}${execi 3605 curl 'http://www.whatismyip.org'} ${color #D6CACA}Port(s) / Connections: ${color #D6CACA}Inbound: ${color #c9d6d6}${tcp_portmon 1 32767 count}  ${color #D6CACA}Outbound: ${color #c9d6d6}${tcp_portmon 32768 61000 count}  ${color #D6CACA}Total: ${color #c9d6d6}${tcp_portmon 1 65535 count} ${color #D6CACA}Outbound Connection ${alignr} Remote Service/Port${color #c9d6d6}  ${tcp_portmon 1 65535 rhost 0} ${alignr} ${tcp_portmon 1 65535 rservice 0}  ${tcp_portmon 1 65535 rhost 1} ${alignr} ${tcp_portmon 1 65535 rservice 1}  ${tcp_portmon 1 65535 rhost 2} ${alignr} ${tcp_portmon 1 65535 rservice 2}  ${tcp_portmon 1 65535 rhost 3} ${alignr} ${tcp_portmon 1 65535 rservice 3}  ${tcp_portmon 1 65535 rhost 4} ${alignr} ${tcp_portmon 1 65535 rservice 4}  ${tcp_portmon 1 65535 rhost 5} ${alignr} ${tcp_portmon 1 65535 rservice 5}

I love my guitars

I know there are some other players out there. Come on, let’s see some gear shots…

Included here: Guild D4 acoustic, Washburn Force 4 bass, Fender Telecaster, and a Squier Starfire IV. The Tele is my main axe.

Coming soon, a photo of my custom amp (that I built…).

Fun with Conky

I like to play. I especially enjoy playing with things that end up being useful. I started out exploring Conky when I saw this thread in the Ubuntu Forums. For those unfamiliar with the program, Conky is a lightweight system monitor that displays output to your desktop. It is highly configurable. Here’s a little sample, using some colors from the Ubuntu palette.

I made this by installing Conky, and then creating a hidden file in my /home called .conkyrc with the following contents.

# set to yes if you want Conky to be forked in the background background no cpu_avg_samples 2 net_avg_samples 2 out_to_console no # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Create own window instead of using desktop (required in nautilus) own_window yes own_window_type override own_window_transparent yes own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager #own_window no #own_window_transparent no # Use Xft? use_xft yes # Xft font when Xft is enabled xftfont Liberation Mono Italic:size=8 uppercase no # Text alpha when using Xft xftalpha 0.8 # Update interval in seconds update_interval 1 # Draw shades? draw_shades no # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Stippled borders? stippled_borders 10 # border margins border_margin 4 # border width border_width 1 # Text alignment, other possible values are commented #minimum_size 10 10 gap_x 13 gap_y 45 #alignment top_left alignment top_right #alignment bottom_left #alignment bottom_right # Add spaces to keep things from moving about?  This only affects certain objects. use_spacer yes # Subtract file system buffers from used memory? no_buffers yes TEXT ${alignc}${color #EB5B08}$sysname kernel $kernel ${alignc}${color #EB5B08}${exec cat /etc/issue.net} on $machine host $nodename ${color #EB5B08}${execi 1000 cat /proc/cpuinfo | grep 'model name' | sed -e 's/model name.*: //'} ${color #EBA713} ${freq_dyn}Mhz ${color #EB5B08}Current CPU usage & temp:${color #EBA713}  ${cpu}%${color #EB5B08}, ${color #EBA713}${acpitemp}C ${color #EB5B08}/${color #EBA713} ${acpitempf}F ${color #EB5B08}Plug/battery status:${color #EBA713}  $acpiacadapter, $battery ${color #EB5B08}Load average:${color #EBA713}   $loadavg ${color #EB5B08}CPU usage         ${alignr}PID     CPU%   MEM% ${color #EBA713} ${top name 1}${alignr}${top pid 1}   ${top cpu 1}   ${top mem 1} ${color #EBA713} ${top name 2}${alignr}${top pid 2}   ${top cpu 2}   ${top mem 2} ${color #EBA713} ${top name 3}${alignr}${top pid 3}   ${top cpu 3}   ${top mem 3} ${color #EB5B08}Mem usage ${color #EBA713} ${top_mem name 1}${alignr}${top_mem pid 1}   ${top_mem cpu 1}   ${top_mem mem 1} ${color #EBA713} ${top_mem name 2}${alignr}${top_mem pid 2}   ${top_mem cpu 2}   ${top_mem mem 2} ${color #EBA713} ${top_mem name 3}${alignr}${top_mem pid 3}   ${top_mem cpu 3}   ${top_mem mem 3} ${color #EB5B08}RAM Usage:${color #EBA713} $mem/$memmax - $memperc% $membar ${color #EB5B08}Swap Usage:${color #EBA713} $swap/$swapmax - $swapperc% ${swapbar} ${color #EB5B08}Processes:${color #EBA713} $processes  ${color #EB5B08}Running:${color #EBA713} $running_processes ${color #EB5B08} ${color #EB5B08}Hard disks:  / ${color #EBA713}${fs_used /}/${fs_size /} ${fs_bar /}  ${color #EB5B08}/home ${color #EBA713}${fs_used /home}/${fs_size /home} ${fs_bar /home} ${color #EB5B08}Wireless Networking:   ${color #EB5B08}${exec iwconfig eth1 | grep "ESSID" | cut -c 11-}   ${color #EB5B08}${exec iwconfig eth1 | grep "Frequency" | cut -c 25-}   ${color #EB5B08}Local IP ${color #EBA713}${addr eth1} ${color #EB5B08}   ${color #EB5B08}total download: ${color #EBA713}${totaldown eth1}   ${color #EB5B08}total upload: ${color #EBA713}${totalup eth1}   ${color #EB5B08}download speed: ${color #EBA713}${downspeed eth1} k/s${color #EBA713} ${color #EB5B08}   upload speed: ${color #EBA713}${upspeed eth1} k/s   ${color #EBA713}${downspeedgraph eth1 15,150 ff0000 0000ff} $alignr${color #EBA713}${upspeedgraph eth1 15,150 0000ff ff0000} ${color #EB5B08}Wired Networking:   ${color #EB5B08}Local IP ${color #EBA713}${addr eth0} ${color #EB5B08}   ${color #EB5B08}total download: ${color #EBA713}${totaldown eth01}   ${color #EB5B08}total upload: ${color #EBA713}${totalup eth0}   ${color #EB5B08}download speed: ${color #EBA713}${downspeed eth0} k/s${color #EBA713} ${color #EB5B08}   upload speed: ${color #EBA713}${upspeed eth0} k/s   ${color #EBA713}${downspeedgraph eth0 15,150 ff0000 0000ff} $alignr${color #EBA713}${upspeedgraph eth0 15,150 0000ff ff0000} ${color #EB5B08}Public IP ${color #EBA713}${execi 3600 curl 'http://www.whatismyip.org'} ${color #EB5B08}Port(s) / Connections: ${color #EB5B08}Inbound: ${color #EBA713}${tcp_portmon 1 32767 count}  ${color #EB5B08}Outbound: ${color #EBA713}${tcp_portmon 32768 61000 count}  ${color #EB5B08}Total: ${color #EBA713}${tcp_portmon 1 65535 count} ${color #EB5B08}Outbound Connection ${alignr} Remote Service/Port${color #EBA713}  ${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}  ${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}  ${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}  ${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}  ${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}  ${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}

One of my favorite things with Conky is that I can write a shell script and have Conky execute it, like using this .conkyrc for a weather report, combined with the script that follows.

# set to yes if you want Conky to be forked in the background background no cpu_avg_samples 2 net_avg_samples 2 out_to_console no # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Create own window instead of using desktop (required in nautilus) own_window yes own_window_type override own_window_transparent yes own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager #own_window no #own_window_transparent no # Use Xft? use_xft yes # Xft font when Xft is enabled xftfont Liberation Mono Italic:size=8 uppercase no # Text alpha when using Xft xftalpha 0.8 # Update interval in seconds update_interval 1 # Draw shades? draw_shades no # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Stippled borders? stippled_borders 10 # border margins border_margin 4 # border width border_width 1 # Text alignment, other possible values are commented #minimum_size 10 10 gap_x 13 gap_y 40 #alignment top_left #alignment top_right alignment bottom_left #alignment bottom_right # Add spaces to keep things from moving about?  This only affects certain objects. use_spacer yes # Subtract file system buffers from used memory? no_buffers yes TEXT ${color #EB5B08}Local weather: ${color #EBA713}  ${execi 1800 /home/matt/conky/weather.sh MOXX0003}

Script:

#!/bin/sh # # Grab weather data from weather.com and format it according to the given XSLT # Script written by boojit # Modified by Hellfire # Modified again by matthew # The orignal script and xslt can be downloaded from  # Usage: # ${execi 1800 /path/to/weather/weather.sh location} # Usage example (Fes, Morocco): # ${execi 1800 /home/user/weather/weather.sh MOXX0003} # your Location ID: use  to find it # U.S. users can just use their zip code; doubt that works for anyone else though (YMMV) LOCID=$1 # s=standard units, m=metric units UNITS=s # where this script and the XSLT lives RUNDIR=/home/matt/conky # there's probably other stuff besides CURL that will work for this, but i haven't # tried any others. # you can get curl at http://curl.haxx.se/ CURLCMD=/usr/bin/curl # get it at http://xmlsoft.org/XSLT/ XSLTCMD=/usr/bin/xsltproc # you probably don't need to modify anything below this point.... # CURL url. Use cc=* for current forecast or dayf=10 to get a multi-day forecast CURLURL="http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS&dayf=2" # The XSLT to use when translating the response from weather.com # You can modify this xslt to your liking XSLT=$RUNDIR/weather.xslt #filter (if you want to convert stuff to lower-case or upper case or something) #FILTER="|gawk '{print(tolower(\$0));}'" ##### eval "$CURLCMD \"$CURLURL\" 2>/dev/null| $XSLTCMD $XSLT - $FILTER"

Which requires this configuration file that is named weather.xslt

<!--  This XSLT is used to translate an XML response from the weather.com  XML API.  You can format this file to your liking. Two things you may feel  like doing: 	1) Modify the layout of the fields or static text already defined 	2) Add other fields from the XML response file that aren't referenced in this 	   XSLT. You can grab a full list by just doing a:            wget "http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS"            (change $LOCID and $UNITS to suit your needs) File modified by matthew --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >  <xsl:output method="text" disable-output-escaping="yes"/>   <xsl:template match="weather">    <xsl:apply-templates select="cc"/>    <xsl:apply-templates select="dayf/day@d='1'"/>   </xsl:template>   <xsl:template match="cc">    <xsl:value-of select="obst"/>    <xsl:text> at </xsl:text><xsl:value-of select="lsup"/><xsl:text> </xsl:text>    <xsl:text>  Temperature: </xsl:text><xsl:value-of select="tmp"/><xsl:value-of select="/weather/head/ut"/>    <xsl:if test="tmp != flik">     <xsl:text>   Feels Like: </xsl:text><xsl:value-of select="flik"/><xsl:value-of select="/weather/head/ut"/>    </xsl:if>    <xsl:text>   Conditions: </xsl:text><xsl:value-of select="t"/>    <xsl:text>   Wind: </xsl:text>    <xsl:choose> 	<xsl:when test="wind/s = 'calm'"><xsl:text>0</xsl:text></xsl:when> 	<xsl:otherwise><xsl:value-of select="wind/s"/></xsl:otherwise>    </xsl:choose>    <xsl:value-of select="/weather/head/us"/>    <xsl:choose> 	<xsl:when test="wind/s = 'calm'"><xsl:text>(0mph)</xsl:text></xsl:when> 	<xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise>    </xsl:choose>    <xsl:text> (</xsl:text><xsl:value-of select="wind/t"/><xsl:text>)</xsl:text>    <xsl:text>   Humidity: </xsl:text><xsl:value-of select="hmid"/><xsl:text> %   Barometer: </xsl:text><xsl:value-of select="bar/d"/>   </xsl:template>   <xsl:template match="dayf/day@d='1'">    <xsl:text>   Tomorrow: </xsl:text><xsl:value-of select="low"/><xsl:value-of select="/weather/head/ut"/>    <xsl:text> to </xsl:text><xsl:value-of select="hi"/><xsl:value-of select="/weather/head/ut"/>    <xsl:text>, </xsl:text><xsl:value-of select="part@p='d'/t"/>    <xsl:text>   </xsl:text><xsl:value-of select="/weather/swa/a/t"/>    <xsl:text> </xsl:text>   </xsl:template> </xsl:stylesheet>

And ultimately produces output like this

Something else that is fun is that I can run more than one instance of Conky at a time. To run both of these concurrently, I deleted the .conkyrc file and created a startup script that calls each of these configurations in separate Conky instances.

#!/bin/bash sleep 20 && exec conky -d -c ~/conky/conkyrc_main & sleep 22 && exec conky -d -c ~/conky/conkyrc_weather & exit

I have the long delay there because I call the script from GNOME (System->Preferences->Sessions, Startup Programs). The delay gives time for GNOME to get started and for my wireless ethernet connection to get set up before the script runs.

Have fun playing!