Steve_Savitzky / Tools /

[..] [files]

Unlike most other directories on this website, where the HEADER.html file is hidden from casual browsing by an index.html file, this directory deliberately leaves HEADER.html out where you can see it. Whenever I have control over a programming project, I make its directory tree look like a website -- you will always find a HEADER.html file like this one, in every subdirectory. The Apache web server puts a HEADER.html file, if you have one, at the top of a directory listing. (It puts README.html at the bottom, after the file list.) With a little tweaking you can get similar behavior with plain-text HEADER and README, but you can't always count on having enough control over a hosted website's configuration.

This particular directory contains tools for working on website- and music-related projects: the tools used on this website and the projects you find here. (Source code for other, unrelated open-source projects can be found in ../Src/.)

Annotated Contents

Directories

TeX/
LaTeX styles for formatting FilkTeX (".flk") files, plus the tools for translating them into HTML (flktran.pl) and generating index pages (index.pl). These are all showing their age, and need to be given an honorable retirement. In particular the LaTeX styles need to be updated for LaTeX 5e, and indexing needs to be done using TrackInfo.pl.
include
Files to be included in compilations or inserted into source code and documentation. Mostly contains various forms of license notice, in a format suitable for use with either boilermaker.pl or replace-template-file.pl.

Makefile templates

album.make
Makefile template for "Album" subdirectories. Has targets for things like burning CD-Rs and managing track lists.
concert.make
Makefile template for "Concert" subdirectories. Basically similar to album.make except that all the audio files are local to the directory instead of being pulled from Tracks.
publish.make
Makefile template for working directories that have to be "published" to a web staging directory. Relies on having a symlink called PUBDIR someplace up the tree that points to the web directory.
track-depends.make
Used in the mytracks.make files automagically generated by album.make to handle the shifting set of dependencies that result from always using the most recently-exported .wav file in a track directory.

Scripts

Music Metadata:
These are all used for extracting various kinds of metadata from lyrics, tracks, and track notes.
Setlist.cgi
This is the CGI script I use to make HTML setlists and tracklists. It should only be used inside the firewall -- if you let a search engine spider it, you end up with a combinatorial explosion that blows your site's bandwidth to smithereens. I've been there, and you've been warned. At some point I'll do a drag&drop version in Javascript, which will be both faster for users and safer for search engines.
TrackInfo.pl
Extract and format track information. Gets song metadata from the appropriate .flk files (basically LaTeX with a lot of custom macros), and track metadata from whichever .wav file is most appropriate.
list-tracks
List either all known tracks, or a specific set of tracks (e.g. the ones in an album's track list), in a format that makes it easy to keep (cough) track of recording progress. Most of the information comes out of a file called notes in the track directory. With the "-i" option, it lists key, meter, tempo, and style; these are useful when you're trying not to put excessively-similar tracks together. Otherwise it appends the last line of notes that starts in column 1; by convention this describes the most recent useable take. In a very real sense, this command produces a compact "status/to-do" list for an album.
File Updating:
These are all used for updating existing files; because they are used in Makefiles, it's essential that they not modify a file that is already up to date.
boilermaker.pl
Insert license boilerplate, in the form of a comment, into any of several different kinds of files. Understands hashmark, C, TeX, Lisp, and *ML comments. Note that what it inserts into HTML is a comment: it does not insert a license notice that can be read in a browser. Use replace-template-file.pl for that.
replace-template-file.pl
Uses a template file to replace a matching section in one or more files. Currently used primarily for updating album song lists.
Hacks:
Assorted hacks. These would deserve their own directory if there were more of them.
twitter.lsp
A program in Nyquist lisp used to generate fake modem tones for Vampire Megabyte.

Other Files

to.do
The to-do list for this directory. You can probably find some in other directories if you look. The format is trivial: an open circle (lowercase "o") is something that's not finished yet; a filled circle (asterisk) is finished. "~" indicates something I've decided not to do, and "?" indicates something I'm dithering about. Eventually finished items move to a "done" section or, when they start getting moldy, a separate file.

Copyright © 2005 HyperSpace Express
$Id: HEADER.html,v 1.12 2007-12-19 17:38:19 steve Exp $
      Name                     Last modified       Size  Description

[DIR] Parent Directory 07-Aug-2008 08:19 - [   ] Makefile 16-Jul-2007 23:16 1k [   ] Setlist.cgi 20-May-2007 10:44 20k [TXT] SongInfo.pl 20-May-2007 10:44 18k [DIR] TeX/ 05-Feb-2008 19:34 - [TXT] TrackInfo.pl 30-May-2008 09:50 29k [   ] album.make 30-May-2008 09:23 16k [TXT] boilermaker.pl 20-May-2007 10:57 7k [   ] concert.make 14-Feb-2008 06:34 6k [   ] list-tracks 05-Jan-2008 18:47 2k [   ] publish.make 14-Feb-2008 06:29 2k [TXT] replace-template-file.pl 16-Jul-2007 23:19 4k [   ] to.do 20-Jan-2008 10:04 11k [   ] track-depends.make 20-May-2007 10:44 1k [   ] track.make 20-May-2007 10:44 2k [   ] twitter.lsp 16-Jul-2007 23:20 2k

Apache/1.3.27 Server at places.to Port 80