From deck to deck… Photo left: Frank Zappa during Hot Rats sessions (photograph Bill Gubbins). Photo right: Akai GX-270D
Shortly after purchasing an Akai GX-4400D tape deck in 1976, a
then classmate introduced me to Zappa’s music when he gave me a BASF
tape containing five records, with an explicit warning written on it:
“extremely forbidden to whipe out”. The tape has not stood the test of
time, the Akai device has been placed in the electronic waste bin, but
to this day I still enjoy the music.
About 25 years ago I acquired a
beautiful second-hand Akai GX-270D - also built in 1976 - from a former
fellow student and recently had it overhauled. Special thanks to Philip
van der Matten https://www.reeltoreel.nl/ for solving the poor tape
speed, replacing the transistors on the audio prints, recapping and
re-adjusting!
New tapes are still for sale.2 That gave me the idea
to record an anthology of Frank Zappa’s oeuvre on tape, based on my own
music collection. The result:
A young
person’s guide to the music of Frank Zappa!
From reel to reel. From tape to tape. From deck to
deck.
Because there are clearly practical and legal
objections to distributing the tapes, we must limit ourselves here to
the table of contents - i.e. the playlist - and TouTube URLs. Late
Captain Beefheart would say: “These tapes are not available to the
public. And even if they were, you wouldn’t want to listen to them”.3
I
would like to add the following myself. What are the chances of reaching
the title’s target group - young people who may be interested in Zappa’s
music - via RPubs, an outlet for R programmers? And what young person
knows what a tape deck is? Have I ever heard of Apple Music or Spotify?
Okay, you’re right: a hopeless mission.
In fact we should cancel our
plan right away, but… it’s not gonna happen because it’s so much fun
putting tracks on tape, listening to them - the sound quality is
surprisingly good - and presenting the Zappa tape playlists using R
code. And let’s consider the writer mentioned in the title as the young
person…
The Akai GX-270D features include tape speed selection,
auto reverse, 4-track, 2-channel stereo. Heads: 2 x GX playback, 1 x GX
record, 1 x erase. Motor: 2 x reel, 1 x capstan. Reel size: up to 7
inches. The speed of the tape is determined by the “tape speed” switch,
which is calculated in ‘inches per second’ (ips), usually 3¾ or 7½ ips.
The higher the speed, the better your quality, but you will compromise
on playback time. The tapes used are of the ‘Recording The Masters’
LPR35 and LPR90 type. Bandwidth 0.25 inches, diameter 7 inches (17.8
cm), length 549 m.
My personal streaming service is
Qobuz. A very good reason to choose Qobuz is that you
always stream in high quality. At least in true CD quality, so lossless
and at 44.1 kHz / 16-bit. A lot of Zappa music at Qobuz is available at
an even higher sampling rate and bit rate. Zappa was passionate about
making his music sound as good as possible and the idea of Universal
Music/Zappa records to launch a Hi-Res reissue campaign on Qobuz fits
right in here. Qobuz has prepared a playlist called “Hi-Res Masters:
Frank Zappa”.4 My own Zappa playlists including the tape
tables of contents are also public on Qobuz.
Based on my digital flac music library, I selected tracks to
record to tape. For each tape I first created a playlist - an estimated
20 songs fit on one tape. Next the tracks were put on tape, spread over
both sides, A and B.
A playlist reference consists of the file name
in combination with directory. The file name can be used to link to a
music database, so that album title and release date become available.
My music database is based on file tags, extracted using Mp3tag.5
Below
is the R code to import the playlists, tags and tape information (such
as the counter reading). The total number of recorded songs appears at
the bottom of the output.
The tape deck lacks a time indication. The
device only has an analogue four digit counter to be set to zero at the
beginning of the tape and which continues to approximately 1800 at 7½
ips. The counter is unlinear so its not accurate compared to anything
like time. Its just a reference and nothing else.
It is
important to mention here that in addition to Frank Zappa, this writing
also concerns albums by The Mothers of Invention, also known as The
Mothers for convenience. In the past I have chosen to tag all three as
FZ.
Next to the mustache, I would like to interpret “Zappa” as an
ever-changing ensemble of exuberant musicians led by an exceptional
composer, conductor, guitarist and all-round frontman. A list of
musicians who have performed on officially released Frank Zappa
recordings can be found on Wikipedia 6 and on the Román García Albertos site.7
Below is the R script to import tape data, playlists and tags.
library(kableExtra)
library(readr)
library(tidyverse)
options(width = 2000)
# Read all Zappa tracks in digital collection.
# Steps in Mp3tag: 1. select FLAC map (all tags of audio files in directory and subdirectories are extracted)
# 2. select all
# 3. save csv file in R project data directory)
# (be sure to remove old csv (default = append))
my_own_FZ_tracks <- read_delim("data/mp3tag.csv", delim = ";", escape_double = FALSE, locale = locale(encoding = "UTF-16")) %>%
filter(Artist == 'Frank Zappa') %>% select(Title, Album, Year, Path, Filename) %>% rename(Release = Year)
# Read all tape pls files.
pls_files_tape <- dir(path = "//MUZIEK/Elements/BACKUP FLAC/", pattern = "tape_", full.names = TRUE, recursive = TRUE, ignore.case = TRUE)
pls_tracks_tape <- map_dfr(pls_files_tape, ~ {
temp_data <- readr::read_csv(.x, col_names = FALSE, trim_ws = FALSE) %>%
filter(substring(X1,1,1) == 'F') %>%
separate(X1, into = c("temp1", "temp2", "Filename"), sep = "[/]", extra = "merge") %>% dplyr::select(Filename) %>%
mutate(Tape_number = as.numeric(str_extract(.x[], "[0-9]+")), Track_number = row_number())
})
pls_tracks_tape <- pls_tracks_tape %>%
left_join(my_own_FZ_tracks, by = 'Filename')
# Read tape data.
zappa_on_tape <- read_table("data/zappa on tape.txt", col_names = TRUE) %>%
mutate(Tape_number = as.numeric(str_extract(Tape, "[0-9]+"))) %>%
left_join(pls_tracks_tape, by = c("Tape_number", "Track_number")) %>%
mutate(Title = ifelse(Title == "Apostrophe", "Apostrophe (')", Title)) %>%
mutate(Album = ifelse(Album == "Apostrophe", "Apostrophe (')", Album)) %>%
mutate(Album = gsub("Zappa in New York", "Zappa In New York", Album)) %>%
mutate(Album = recode(Album, "Orchestral Favorites [40th Anniversary Edition]" = "Orchestral Favorites 40th Anniversary")) %>%
mutate(Album = recode(Album, "Zappa In New York (40th Anniversary Edition)" = "Zappa In New York 40th Anniversary")) %>%
mutate(Album = recode (Album, "Over-Nite Sensation (50th anniversary)" = "Over-Nite Sensation 50th Anniversary")) %>%
select(Tape,Tape_number,Side,Counter,Track_number,Title,YouTube,Album,Release) %>%
mutate(Title_URL = paste0('<a href="',YouTube,'" target="_top" >',Title,'</a>')) %>%
mutate(URL = paste0("https://www.donlope.net/fz/lyrics/", Album, ".html"),
URL = gsub("East - ", "East_", URL),
URL = gsub("ä", "a", URL),
URL = gsub("Special!", "Special", URL),
URL = gsub("'80:", "80", URL),
URL = gsub("'78", "78", URL),
URL = gsub("Go,", "Go", URL),
URL = gsub(" Acts II & III", "", URL),
URL = gsub(" Act I", "", URL),
URL = gsub("Boulez Conducts Zappa: ", "", URL),
URL = gsub("Boulez Conducts Zappa: ", "", URL),
URL = gsub("Lumpy Money", "The Lumpy Money Project Object", URL),
URL = gsub("Venue #", "Venue ", URL),
URL = gsub("Waka/", "Waka_", URL),
URL = gsub("Club/", "Club_", URL),
URL = gsub("'n", "'N", URL),
URL = gsub("&", "and", URL),
URL = gsub(" ", "_", URL),
URL = gsub("FZ:OZ", "FZ_OZ", URL),
URL = gsub("FZ:_Guitar", "Guitar", URL),
URL = gsub("Vol._", "Vol_", URL)) %>%
mutate(URL = recode(URL, "https://www.donlope.net/fz/lyrics/Apostrophe_(').html"= "https://www.donlope.net/fz/lyrics/Apostrophe_%28'%29.html")) %>%
mutate(URL = recode(URL, "https://www.donlope.net/fz/lyrics/Piquantique.html" = "https://www.donlope.net/fz/btb/piquantique.html")) %>%
mutate(URL = recode(URL, "https://www.donlope.net/fz/lyrics/Apostrophe_(')_50th_Anniversary_Edition.html" = "https://www.donlope.net/fz/lyrics/Apostrophe_%28'%29_50th_Anniversary_Edition.html")) %>%
mutate(URL = recode(URL,"https://www.donlope.net/fz/lyrics/The_Son_Of_Hot_Rats_(Hot_Rats_vol_2).html" = "https://www.donlope.net/fz/lyrics/The_Hot_Rats_Sessions.html")) %>%
mutate(URL = ifelse(Album == "An Evening With Zappa & Beefheart", "https://www.discogs.com/release/1912888-Frank-Zappa-And-Captain-Beefheart-An-Evening-With-Frank-Zappa-And-Captain-Beefheart.html", ifelse(Album == "En La Radio", "https://www.discogs.com/release/5898265-Zappa-Zappa-En-La-Radio-Zappa-On-The-Radio", ifelse(Album == "Back To School", "https://www.discogs.com/release/14671437-Frank-Zappa-Back-To-School-Live-", ifelse(Album == "Have A Little Tush", "https://www.forcedexposure.com/Catalog/zappa-frank-have-a-little-tush-michigan-state-university-broadcast-1-2cd/LFM.567CD.html", ifelse(Album == "Where The Shark Bubbles Blow (Live Radio Broadcast)", "https://www.discogs.com/release/11615078-Frank-Zappa-And-The-Mothers-Of-Invention-Where-The-Shark-Bubbles-Blow", ifelse(Album == "At The Circus", "https://www.discogs.com/release/9169348-Frank-Zappa-At-The-Circus", ifelse(Album == "Over-Nite Sensation 50th Anniversary", "https://www.donlope.net/fz/lyrics/Over-Nite_Sensation_50th_Anniversary_Super_Deluxe_Edition.html", ifelse(Album == "Zappa/Erie", "https://www.donlope.net/fz/lyrics/Zappa_Erie.html", URL))))))))) %>%
mutate(URL = str_replace(URL, "The_FZ_", "The_Frank_Zappa_"),
URL = str_replace(URL, "_21-12-2008", ""),
URL = str_replace(URL, "_21-12-2010", ""),
URL = str_replace(URL, "_21-12-2011", ""),
URL = str_replace(URL, "/The_Little_Known_MOI_History", "")) %>%
mutate(URL = paste0("[", Album, "](",URL,")")) %>%
rename("Title (YouTube URL)" = Title_URL, "Album (info URL)" = URL) %>%
mutate(Tape = factor(Tape, levels=c("Tape1","Tape2","Tape3","Tape4","Tape5","Tape6","Tape7","Tape8","Tape9","Tape10","Tape11")))
head(zappa_on_tape) # first 6 dataframe rows
## # A tibble: 6 × 11
## Tape Tape_number Side Counter Track_number Title YouTube Album Release `Title (YouTube URL)` `Album (info URL)`
## <fct> <dbl> <chr> <dbl> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 Tape1 1 A-01 1 1 Heidelberg https://www.youtube.com/watch?v=P31vhd9L85E&list=OLAK5uy_lNqS0ygol-T12aNycfIa1YuQu1s_ylOHo&index=6 One Shot Deal 2008 "<a href=\"https://www.youtube.com/watch?v=P31vhd9L85E&list=OLAK5uy_lNqS0ygol-T12aNycfIa1YuQu1s_ylOHo&index=6\" target=\"_top\" >Heidelberg</a>" [One Shot Deal](https://www.donlope.net/fz/lyrics/One_Shot_Deal.html)
## 2 Tape1 1 A-02 290 2 It Just Might Be A One Shot Deal https://www.youtube.com/watch?v=92qV6243PXU&list=OLAK5uy_k-p6ixWBNdiQx4Us5J9Y94pjy2oVbJjhc&index=3 Waka/Jawaka 1972 "<a href=\"https://www.youtube.com/watch?v=92qV6243PXU&list=OLAK5uy_k-p6ixWBNdiQx4Us5J9Y94pjy2oVbJjhc&index=3\" target=\"_top\" >It Just Might Be A One Shot Deal</a>" [Waka/Jawaka](https://www.donlope.net/fz/lyrics/Waka_Jawaka.html)
## 3 Tape1 1 A-03 498 3 The Torture Never Stops (ft. Captain Beefheart) https://www.youtube.com/watch?v=tMoBLZrkHio&list=PLOxQhHAQ4jclAkcFv0oGUeNHZQin4LUE-&index=10 You Can't Do That On Stage Anymore Vol. 4 1991 "<a href=\"https://www.youtube.com/watch?v=tMoBLZrkHio&list=PLOxQhHAQ4jclAkcFv0oGUeNHZQin4LUE-&index=10\" target=\"_top\" >The Torture Never Stops (ft. Captain Beefheart)</a>" [You Can't Do That On Stage Anymore Vol. 4](https://www.donlope.net/fz/lyrics/You_Can't_Do_That_On_Stage_Anymore_Vol_4.html)
## 4 Tape1 1 A-04 866 4 Inca Roads https://www.youtube.com/watch?v=CbQjHb8iaMc&list=OLAK5uy_nBCSGhLFxpv5MoFoIA1oVEW4rn4w1GIIg&index=1 One Size Fits All 1975 "<a href=\"https://www.youtube.com/watch?v=CbQjHb8iaMc&list=OLAK5uy_nBCSGhLFxpv5MoFoIA1oVEW4rn4w1GIIg&index=1\" target=\"_top\" >Inca Roads</a>" [One Size Fits All](https://www.donlope.net/fz/lyrics/One_Size_Fits_All.html)
## 5 Tape1 1 A-05 1082 5 The Mud Shark (live, 1971) https://www.youtube.com/watch?v=DRtINlcIw0c&list=OLAK5uy_lr0sqCf2COCT0wlFm9Ihb_-Q7C9_Y3kyI&index=2 Fillmore East - June 1971 1971 "<a href=\"https://www.youtube.com/watch?v=DRtINlcIw0c&list=OLAK5uy_lr0sqCf2COCT0wlFm9Ihb_-Q7C9_Y3kyI&index=2\" target=\"_top\" >The Mud Shark (live, 1971)</a>" [Fillmore East - June 1971](https://www.donlope.net/fz/lyrics/Fillmore_East_June_1971.html)
## 6 Tape1 1 A-06 1245 6 Latex Solar Beef (live, 1971) https://www.youtube.com/watch?v=87oeOtx4Bt4&list=OLAK5uy_lr0sqCf2COCT0wlFm9Ihb_-Q7C9_Y3kyI&index=5 Fillmore East - June 1971 1971 "<a href=\"https://www.youtube.com/watch?v=87oeOtx4Bt4&list=OLAK5uy_lr0sqCf2COCT0wlFm9Ihb_-Q7C9_Y3kyI&index=5\" target=\"_top\" >Latex Solar Beef (live, 1971)</a>" [Fillmore East - June 1971](https://www.donlope.net/fz/lyrics/Fillmore_East_June_1971.html)
table(zappa_on_tape$Tape) # number of tracks per tape
##
## Tape1 Tape2 Tape3 Tape4 Tape5 Tape6 Tape7 Tape8 Tape9 Tape10 Tape11
## 19 21 20 18 17 15 12 15 15 14 24
nrow(zappa_on_tape) # total number of tracks on tape
## [1] 190
Below you can find the table of contents for each tape,
printed to stick on the back of the tape box.
The tracks are pretty
much my favorite Zappa picks over the years. It’s my own guide to
Zappa’s music.
By clicking on the album name you get detailed album
information including song lyrics from the site maintained by Román
García Albertos. A true Zappa guide! Provided it is an official album,
because the site mentioned is not about unofficial ones. The main page
of the site is:
https://www.donlope.net/fz/
Clicking on the title
should launch a YouTube clip, which - in most cases - has been provided
to YouTube by Universal Music Group. 8
At the bottom of the list you will find
the link to Qobuz.
options(width = 2000)
# tape 1 Table of contents.
# the script for the TOC of tape 1 serves as an example for the remaining ones.
toc_tape1 <- zappa_on_tape %>%
filter(Tape_number == 1) %>% dplyr::select(Track_number,Side,Counter, "Title (YouTube URL)", "Album (info URL)",Release) %>% rename(Track = Track_number) %>%
mutate (Track = cell_spec(Track, color = "white", align = "r", angle = 30))
kbl(toc_tape1,escape = FALSE, caption = "<span style='font-size:25px'>Frank Zappa - tape 1 - speed: 7½ ips - 17.8 cm reel - June 10, 2024</span>") %>%
kable_paper("striped", full_width = TRUE) %>%
row_spec(1:nrow(toc_tape1),font_size=13) %>%
row_spec(0, color = "brown") %>%
column_spec(3, italic = TRUE) %>%
column_spec(4:5, bold = TRUE) %>%
row_spec(1:nrow(toc_tape1), bold = FALSE, color = "white", background = "darkorange")
There is no playlist 11 on Qobuz, because the Zappa AAAFNRAA digital
download items are missing on streaming services.9
As a summary, we list the albums used alphabetically, with
the full URL for detailed information including song lyrics. As
mentioned before, the main page of the site is:
https://www.donlope.net/fz/.
If the album is not on
this site, it is an unofficial album for me.
The TOC ‘n’ column
shows the number of album tracks selected for the playlists.
options(width = 2000)
album_list <- zappa_on_tape %>%
select(Album,Release,'Album (info URL)') %>%
rename(URL = 'Album (info URL)') %>%
mutate(URL = sub(".*?]", "", URL)) %>%
mutate(URL = substring(URL, 2, nchar(URL) - 1)) %>%
group_by(Album, Release, URL) %>%
summarise(n = n())
kable(album_list,escape = FALSE, caption = paste0("<span style='font-size:25px'>Frank Zappa albums mentioned on tape TOC's </span>", "(the listing below contains ", nrow(album_list), " albums)")) %>%
kable_paper("hover", full_width = TRUE) %>%
row_spec(1:nrow(album_list),font_size=12) %>%
row_spec(0, color = "brown")
My 190 great stuff tracks seems like a pretty extensive
list, but this number pales in comparison to the impressive number of
approximately 3,473 tracks that have been officially released to date on
LP, CD, DVD-A and USB media/downloads! 10
Charles Ulrich “The Big Note: A Guide to the Recordings
of Frank Zappa”, New Star Books, Canada, 2018
The Official Frank Zappa website https://www.zappa.com/music/official-discography/#/
Wikipedia https://en.wikipedia.org/wiki/Frank_Zappa_discography
Román García Albertos https://www.donlope.net/fz/lyrics/
Jos Schakenraad “Frank Zappa’s official discography presented in a listing and in diagrams, a comparison with your home FZ catalogue, and conceptual continuity put on a punch card” https://rpubs.com/JSchakenraad/1243708
Florian Heidenreich “Mp3tag” https://www.mp3tag.de/en/
Footnotes
Geographer, data-analist and cyclist↩︎
https://store.recordingthemasters.com/products/lpr90?variant=40926189322372↩︎
Captain Beefheart, “Tiger Roach”, The Lost Episodes, 1996↩︎
In some cases the tags may differ from the official ones↩︎
https://en.wikipedia.org/wiki/List_of_performers_on_Frank_Zappa_records↩︎
Depending on your YouTube subscription and use of ad blocker, advertising may start.↩︎
AAAFNRAA stands for “Anything Anytime Anywhere For No Reason At All”↩︎
Excluding compilations, the ‘Buff’ sets, identical album reissues (Old Masters and the Threesome) and video releases. Including downloads. The number chosen depends on the filter and definition of compilation used. You could call the album “The Guitar World According to Frank Zappa” - featuring guitar solos by Frank Zappa - both a compilation and a new release. The latter option was chosen here. The same goes for the You Can’t Do That On Stage Anymore Sampler. The three Halloween highlight CDs, on the other hand, are considered compilations.↩︎