Files
Lee Hanken 7c8efd2228 Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use
- Search episodes, transcripts, hosts, and series
- 4,511 episodes with metadata and transcripts
- Data loader with in-memory JSON storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:54:13 +00:00

237 lines
16 KiB
Plaintext

Episode: 1512
Title: HPR1512: Adopting and Renovating a Public-Domain Counterpoint Textbook
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1512/hpr1512.mp3
Transcribed: 2025-10-18 04:31:31
---
Hey everybody, this is John Colp in Lafayette, Louisiana and I don't really remember the
last time I recorded an episode for HPR.
I think it's been many months now.
I don't think it's been quite a year but it's been quite a long time and I'm answering
the recent call for episodes on account of the queue has gotten dangerously low.
So I'm going to talk today about something that's been on my mind for quite a long time
really but a lot lately.
And that is textbooks, the price of textbooks and what to do about it.
I am a professor and if you've listened to any of my other episodes you might have gotten
wind of that somehow.
But I've been teaching in a school of music at the University of Louisiana at Lafayette
since 2001.
I've been in academia for a long time both as a student and now for 13 years as a professor.
And the price of textbooks has always been bad but it seems like it's gotten worse in
the last few years.
Not only because prices have gone up but also because increasingly publishers are worried
about rip off copies of their books and what to do about e-books and things like this.
Publishers are moving in a way that disturbs me a little bit.
A lot of them are going toward electronic books that are not even really proper e-books
but rather simply websites that have the text of a book or images of every page of a book
where you have to view it in a web browser and you only have access to it for six months
for a price of, I don't know, anywhere from $60 to $200 or something like this.
And then after the time expires you no longer have access to it.
It's pretty disturbing the kinds of things that publishers are coming up with to try and
keep their business model in good shape.
And I don't know, I've had a number of thoughts about how to deal with this and one of the
classes in which I have been able to come up with a pretty workable solution for the
price of textbooks is my counterpoint class.
Now counterpoint is a subject that essentially you are trying to teach students how to
write music in the style of JS Bach who is a Baroque composer who lived from 1685 to
1750 and his style of counterpoint is the prototypical late Baroque style.
And so the subject of counterpoint actually lends itself very well to the use of older
textbooks.
Now, what I've done in the past, a solution I came up with a few years ago that's worked
pretty well for the last four or five years, is to allow students to buy older editions
of the textbook that I had chosen.
I chose a book by Kent Kennen called Counterpoint.
It's a very good book, it's published by Prentice Hall and the latest edition, which is
actually pretty old now from 1999, retails for about $120.
That's an insane amount of money.
And the older editions of the book, the first through third editions, are plentiful on
the used market and normally students can find them from anywhere between $3 to $10.
So I allow them to buy any older edition of the book that they can find and other than
pagination, the contents are essentially identical to the newest edition.
And so that's something that has helped quite a lot with the price of textbooks.
But one of the things I've done with them also is not only are they allowed to get this
older edition of the book, but I have myself purchased seven or eight copies of the book
and I will loan the textbook to my students for a whole semester for a fairly reasonable
deposit, I think, of $20.
They give me $20 and I give them a book for the whole semester.
And then at the end of the semester, when they give me the book back, they get all their
$20 back.
And so essentially they get to use the book for free for the whole semester.
Now counterpoint also involves lots of homework and in the past, before I came up with my own
home spun solution, what they had to do was purchase a workbook that went along with
the textbook and then they would tear pages out of that and do the exercises and that
and turn it in for homework.
The workbook also was pretty expensive.
It was somewhere around 60 bucks and it was not all that long, maybe 60 pages or so and
normally in the semester we would only get through about half of it.
And I started to feel bad that my students were paying so much money for a book that we
used only half of and so I decided, well, maybe I can just write my own workbook and so
I did.
I wrote a counterpoint workbook and gave it a creative commons license and I just give it
to my students for free.
They print it out and usually they will just print out one page at a time as needed to
do their homework and it's worked great.
So with the free workbook and the very cheap textbook, it's actually been pretty reasonable
for that class.
But recently, I guess early this semester, maybe in February or March, I started poking
around on Project Gutenberg to see what kind of music books there were on there that were
in the public domain and I noticed that there was at least one counterpoint book.
Now, it wasn't quite appropriate as a textbook for this class but it got to me to thinking
that maybe there are some public domain counterpoint textbooks out there that I could use
for this class even if I had to scan them myself.
So I started looking around some more and I found, where was it, Archive.org or somewhere.
But I don't remember where it was but I will have a link on my website where part of
the Google Books project, they scanned a counterpoint textbook that was published in 1910 by
a guy named Percy Gertschuss and it's called Elementary Exercises in Counterpoint and
I started looking through it and I thought, man, this is a pretty good textbook and for
a subject like counterpoint where what you're learning to do is to write in a musical style
that is more than 200 years old, you don't really need all the latest information on this.
I mean, the subject has not changed in hundreds of years and so being up to date is not
a prerequisite of the textbook.
Now teaching philosophies about counterpoint will of course change but the subject matter
itself has not changed.
And so this class is perfectly suited for the adoption of a public domain textbook.
So I was really glad to find that Google Books had scanned the textbook in but I was a little
bit dismayed when I downloaded the EPUB version that they had posted there because it was
just riddled with errors and none of the musical examples appeared.
You could look at the PDF version and that one looked fine.
You could see every page just fine, everything was nice and clear.
But the fact that the OCR had so many errors and it made it a little less useful because
there were so many misspellings and anyway, I decided that I would take the raw OCR scan
of this book and try to make my own HTML version of it and so that's what I've been working
on for quite a while now.
The basic text of it is all complete and corrected and many of the musical examples are done
as well.
Early on I decided that I would make new engravings of all of the musical examples in textbook.
And one of the reasons I wanted to do this was because I felt that it would help to address
what I felt was a common failing of music theory textbooks which is a lack of a play button
under the musical examples.
Every textbook I've ever seen has musical examples in it where you get lines of music
notation there and you either have to look at it and imagine in your head how it's going
to sound and I can do that to a certain extent and anyone who's had a good amount of training
in music can or you have to sit down at a piano and try to plunk it out at the keyboard
or play it on whatever instrument you know how to play.
And I felt for a long time that modern textbooks really ought to have play buttons.
So one of the great advantages of a digital medium for a textbook would be the fact that
you could embed media in it.
You can have audio files, you can have larger versions of the images and so forth.
And the reason I felt like I could not just use the PDF for this, I mean partly it's
because there were so many errors in the scan, the OCR scan, but also a PDF really is not
a whole lot better than a paper book because it's a fixed size.
And the only way it's better than a paper book is in the ease of distribution because
it's very easy to copy and distribute widely.
Otherwise it's not a whole lot better because it's a flat static kind of format.
HTML is so much better because it can be made to look good on devices of all sizes with
some fairly simple CSS and because you can embed media in it.
So I decided to overhaul this thing and give it a good HTML rendering.
For the musical examples I decided to use Lillipond, which is a music notation program that
uses plain text source files.
This had a number of advantages, for me it had an advantage in that I already knew how
to use Lillipond because I've been using it for several years now.
Also it's highly scriptable because you're dealing with plain text source files.
So by using Lillipond for the musical examples I was able to write a script that would take
the Lillipond source code and from it generate a number of ancillary files that would be
then used in the text.
First of all of course would be the musical score, a PNG image of the musical example
that I needed.
Also it generates MIDI and I use the MIDI file then to generate AUG and MP3 versions
of the same audio file because you need both of those for cross browser compatibility
for HTML5 audio players.
Oh yeah, the script also at the same time will use the information that I have embedded
in the source code to generate a little block of HTML code that will then be pasted into
the textbook source file to make an HTML5 audio player render there.
So it's pretty cool, I make use of a number of the script nerds might like to hear some
of the tools I use here I guess.
Of course I use Lillipond to compile the Lillipond source code then I use the NetPBM tools
to wait, where do I do that actually I use a tool called OptiPNG, OPTIPNG to optimize
the PNG file because the by default the PNG is a pretty large file.
So I use OptiPNG to reduce the file size a bit.
It seems like I also, there was somewhere in there where I made the file smaller, I can't
see it right now.
But anyway I use timidity to play the MIDI file, it actually doesn't play it but it kind
of virtually plays it and then pipes it through LAME, L-A-M-E to make an MP3 version and
then I use a script called MP3 to AUG to convert the MP3 file to AUG format.
Also in there I use SOX because for some reason timidity created a tiny bit of static at
the beginning of every MIDI file but it was only on one of the channels and so I used
SOX to extract the clean channel and use that as the source for the MP3 and AUG files so
that you don't hear any funny sounds.
And then I use a cat and a little hear statement and whatnot to generate a block of HTML
code that makes the HTML5 audio player.
What else?
I guess there's not tons else to say about this except for that I've come across a couple
of issues with it, one is that I thought it would be best at first to have the textbook
in one giant HTML page and the main reason is because I have lots and lots of intertext
links here.
What I did with this textbook is formatted in a great big ordered list, there are something
like 252 items in this ordered list and that's the way it was formatted in the original
textbook and he's constantly saying well for another example this you need to refer
to paragraph 141 or to example 42 or something like this and everywhere he makes that kind
of reference I have a link so that you can click right on it and jump right to the place
he's talking about.
This is another great advantage of HTML over paper books or even PDFs as the ability to
link just all over the place and I was not sure how to make all these links work easily
if I had it divided up into multiple pages say one page for each chapter or something
like that but the problem I'm running into now is that the page is really really big
and with all those images to load it doesn't work very well it's too heavy and so I really
am going to have to chop it up into several smaller pages maybe one for each chapter in
which case there would be 24 or 25 HTML pages instead of one great big one but I still
am trying to come up with a script that will take the one big page and chop it up into
all the little pages and adjust the links as necessary.
I still do want to have the one big HTML page version handy because it seems to work
better for creating an EPUB version of the book.
The EPUB version is also a little bit problematic because I've been using Caliber to generate
the EPUB and it does an okay job but I found that the EPUB file it generates is not all
that compatible with the different EPUB readers that I've tried.
I've tried I think FB Reader and Moon Reader Pro on Android and I've tried three or four
different EPUB readers on the iOS platform and each one behaves differently and so this
is a problem I'm going to have to research this a little bit more to try to find an EPUB
format or try to fix my source file where it has a bit more consistency.
The main problem is that the music players, the audio players for each example do not
necessarily render in the different E readers.
They render in some and not in others and then there's one of the EPUB readers where you
do see all of the audio players under the examples but then when you play them sometimes
they get confused like you'll click play on example 12 and you'll hear it and then you'll
jump down to example 14 and you click play and it'll play example 12 again and of course
this is not acceptable and so I've got some work to do to try and figure out exactly
how I'm going to generate a good EPUB version and I do want to have that.
I don't want people to have to read this book in a web browser because I don't think
that's optimal.
It requires constant connection to the internet and that's not ideal.
I want people to be able to read offline in a native EPUB format.
So anyway that's probably about all I want to get into about this project.
I hope you found it interesting.
I do.
I should say that what I've showed to my students of this book they've really liked it.
They love the electronic format.
They love the play buttons under each example.
They like how they can click on links to jump all around in the textbook and they think
really it's about time that books are behaving this way and they appreciate also of course
the fact that it's going to be free to them.
In the process this summer of coming up with my own public domain and creative commons
textbook type materials for my very large music appreciation class I finally got
fit up enough with the textbook publishers and with their websites that I'm just going
to break away from them for good and use my own materials.
So finally the students in those classes which are much much larger than my counterpoint
classes will no longer have to buy textbooks and I hope it will still be a good course
experience.
They'll still learn but they won't be holding to the publishers who are just trying
to jam them and get as much money as they can out of their pockets.
Alright I guess that's about it.
This has been John Culp in Lafayette Louisiana and I will talk to you again very soon.
Bye.
You have been listening to Hacker Public Radio at Hacker Public Radio.
We are a community podcast network that releases shows every weekday on death week
Friday.
Today's show like all our shows was contributed by an HPR listener like yourself.
If you ever consider recording a podcast then visit our website to find out how easy
it really is.
Hacker Public Radio was founded by the digital dog pound and new phenomenon computer
cloud.
HPR is funded by the binary revolution at binref.com.
All binref projects are crowd-responsive by linear pages.
From shared hosting to custom private clouds, go to lunar pages.com for all your hosting
needs.
Unless otherwise stasis, today's show is released under a creative comments, attribution,
share alike, video zone license.