The soundtrack for 24 Hours is a collection of recordings taken from the original motion picture score for The Crow. As described earlier, the music was chosen for each section of the comic book based on the mood and rhythm of the narrative. However for several reasons, adding the soundtrack was not a simple process of adding audio files to the project score. It was important to provide smooth transitions from one section of audio to the next in which the audio, no matter where it may be in the song, would fade out and the next piece would begin. In order to do this, a collection of custom script functions were created, shown in figure 9.
The MusicIdle() function is called from within the Movie script's on...idle handler and handles asynchronously looping of external sound files, as well as managing queued sound files (not shown here). The MusicFade() and MusicFadeOut() functions incrementally adjust the playback volume of the sound causing it to fade in or out as specified. The former allows one to fade the current playing sound to any louder or softer volume over the specified time. The latter function, on the other hand, simply fades out the current sound completely, and empties the sound queue. The MusicPlayFile() function utilizes MusicFadeOut() to stop the current selection and begin playing the specified sound file.
At the beginning of each section of 24 Hours, a line of script such as the one shown below is executed to fade out the current music and begin playing the new selection corresponding to that section of the story:
MusicPlayFile ":Music:1.aif", TRUE
The first parameter indicates the path to the file to play, and the second parameter indicates whether or not the sound file should be looped. With these scripts, it was possible to create twelve individual tracks of audio, one for each movement of the narrative.
Each track was created with an extra length of audio. So, for example, while it might normally only take 30 seconds to read one section of the comic book, as much as 2.5 minutes of audio may have been provided. This was done in recognition of the fact that it is not always possible to predict how long a reader will take to read through a section. In one possible case, a reader might prefer to pause at the end of each frame in order to carefully survey all of the artwork. In another case, one might be distracted from the program in order to handle some other business -- a conversation for example. In order to reduce the chance of awkward and premature transitions in the music, therefore, the extra length was added to the samples, and they were set to loop.
Last modified 6/11/97.