theStarport.com / 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 SongInfo.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

Setlist.cgi
This is the CGI script I use to make HTML setlists and tracklists. It only works 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.
SongInfo.pl
Extract song information from a .flk file (basically LaTeX with a lot of custom macros) and print it on STDOUT in any of several useful formats. Once used extensively in album.make, it has now largely been replaced by TrackInfo.pl
TrackInfo.pl
Extract and format track information. Essentially the same as SongInfo.pl except that it also looks at information in the local directory and in the Tracks directory. Especially useful for concert recordings, which tend to have an eclectic mix of songs, two-song tracks, introductions, and sometimes a little pure weirdness.
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 "to-do" list for an album.
boilermaker.pl
Insert license boilerplate, in the form of a comment, into any of several different kinds of scripts. Understands hashmark, C, 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. Used primarily for updating album song lists.

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.9 2007-05-20 17:44:26 steve Exp $
      Name                    Last modified      Size  Description
Parent Directory - LGPL.txt 2005-05-13 12:01 26K README 2006-03-02 15:21 230 GPL.txt 2006-06-15 15:01 18K list-tracks 2007-05-20 10:43 1.9K Makefile 2007-05-20 10:44 562 Setlist.cgi 2007-05-20 10:44 20K SongInfo.pl 2007-05-20 10:44 18K concert.make 2007-05-20 10:44 5.6K preorder.cgi 2007-05-20 10:44 8.8K publish.make 2007-05-20 10:44 2.1K replace-template-fil..> 2007-05-20 10:44 4.1K track-depends.make 2007-05-20 10:44 1.4K track.make 2007-05-20 10:44 2.3K TeX/ 2007-05-20 10:57 - boilermaker.pl 2007-05-20 10:57 7.3K TrackInfo.pl 2007-05-21 19:18 26K album.make 2007-05-21 19:28 13K to.do 2007-05-21 20:49 8.9K include/ 2007-05-22 07:29 -
README for /Steve_Savitzky/Tools
$Id: README.html,v 1.1 2006-05-22 02:16:31 steve Exp $
(As mentioned above, if you have a README or README.html file in a directory, Apache will put it below the index. Very handy.)