darkness

Sunday, 24 November 2002

Catch-up (part 2: My Donnie Darko Soundtrack)

darkness @ 13:35:14

[Continued from yesterday.]

Now I’ve got the DVD-ROM in my Win2k box. I tried three different DVD “ripping” (”decoding”?) applications from doom9.net: DVD decrypter, SmartRipper, and vStrip. DVD Decrypter [sic] was easy to use and worked first time off. I got it to extract a VOB file. (I’ll come back to the others later.)

Now that I had this VOB file, presumably unencrypted, I needed to get the AC3 stream out of it. I tried using BeSweet and BeSweet GUI for this. I was able to get BeSweet to generate an AC3 file, but as near as I could tell it was decoding it to PCM/WAV, then re-encoding it to AC3! Who wants that? Not darky. After playing with it for a long time, it always seemed like it was doing unnecessary steps.

After playing with BeSweet long enough, it occurred to me that perhaps I should try opening the file with Sound Forge to test if it really did recognize it. Of course, it did not. Even if I ripped it to “AC3 WAV” (presumably AC3 audio in a WAV package) no dice. Lesson to the reader: Sound Forge 5.0 does (did?) not do AC3, at least not out of the box with no plug-ins.

So now I needed a WAV file, and BeSweet looked happy enough to make that. BeSweet sure does have a lot of options though. In the end I think I was able to make it generate a PCM WAV file at 48KHz, but not in 24-bit. (BTW, Andy wants you to do know that he doesn’t think AC3 on a DVD is 24-bit. I’m just unsure.) I was displeased with this. I also think it was trying to normalize the files, or resample them itself, and I don’t really trust anyone but me and Sound Forge to do things like this.

Then I remembered a utility I had downloaded earlier, HeadAC3he. A little poking around and I realized that HeadAC3he does a simple decode from AC3 to PCM WAV. It would do 24-bit, 48KHz (not resampled, as near as I can tell) and seemed to allow me to turn off normalization. It had significantly less options, which is probably good for a beginner like me. (Note that I think HeadAC3he is pretty much just a front end for Azid.) HeadAC3he, though, wouldn’t give me a straight AC3 stream.

So next I tried SmartRipper. It looked like it had pretty much the same features as DVD Decrypter, which means I couldn’t really figure out how to make it strip the AC3 from a VOB file and write it to a separate file.

So I tried vStrip, and it had more options, including ones that explicitly indicated they would write the AC3 to a separate file. It even offered to put “AC3 headers” on the file, though it wasn’t recommended. Tip for using vStrip: to select just one chapter, right click the chapter and hit the selection that’s something like “set beginning and end from this chapter”. vStrip actually seems to work based on some linear address within the DVD title, so clicking this sets the beginning and end addresses from the beginning and end of the chapter. Another tip: when it wants the IFO (or IDX? INF? Something like that) file for the title, and you’re doing title one from the DVD< beware of the file that's named something shorter than the rest, like VOB_01.IFO (instead of something like VOB_01_01.IFO); this file is for the whole DVD or something, and vStrip won’t be able to read it to get (presumably) the list of chapters and stuff. In the end, vStrip did give me an AC3 file that I was able to decode with HeadAC3he. However, playing the file it sounded sped up and screwed up, which I’m guessing was some sort of sampling rate problem. At any rate, I was exasperated with the situation at this point, so I threw out the more difficult to use vStrip.

Back to SmartRipper, I managed to find a tutorial somewhere on the Internet (sorry, link lost now) talking about how to do exactly what I wanted to do: rip the AC3 stream (correctly) from a file using SmartRipper. The trick is selecting the “Demux” option in the channel selection when you select the audio stream (i.e., 0x81 in my case for the two channel DD audio). If you select just the chapter you want, and just the audio stream, and the demux option, it magically takes the filename you’ve chosen to save to and appends some information to make it unique and indicate that it’s an AC3 stream; it tacks on a .AC3 extension too. I popped this file into HeadAC3he and voila! A correct-sounding WAV file. For the record, I found SmartRipper’s interface to be better in the end, if not exactly prettier, than DVD Decrypter’s interface.

So now I could make WAV files for each chapter I wanted. I will say that the files seemed to have a lot of background noise. I’m hoping that’s accurate from the DVD and not an artifact of the process I used to get the audio from the DVD. I tried running Sonic Foundry’s Noise Reduction plugin over the audio a couple times but it made the voices sound unacceptably modified. I need to play with it again, I think, because the noise on some of the tracks seems really noticeable, especially when you turn it up loud (like I have to on my shitty car stereo when my engine is being especially loud).

I used Sonic Foundry CD Architect to put the CD together and Sound Forge to edit the files. I did a bunch of fade in/fade out at the beginning/end of tracks, which was especially necessary with all the background noise in some cases. It was hard to get a clip of the characters speaking from the middle of the scene where there might not have been a lot of silence around the part I wanted, because then I had to fade in or fade out very quickly and it sounded kind of funny. I played with taking a bit of noisy silence and pasting it repeatedly at the end of a file, for example, but wherever the paste starts you hear a click; any suggestions for getting rid of this would be welcomed.

As far as normalization, the people at Hydrogen Audio would probably like you to know about MP3Gain. This utility will apparently normalize an MP3 in place; as in, it doesn’t require a decode to PCM, normalize, then a re-encode back to MP3. Pretty neat. Not useful for what I was doing, of course, but still pretty neat. MP3 gain, however, does talk about how you should normalize for “loudness” and not maximum peak value. This sounded like a good idea; I think (hope) this is the same feature as normalizing to “average RMS value” in Sound Forge. However, when I looked at the DD soundtrack tracks I ripped (using EAC BTW) they all seemed to be peaked right at 0dB. I took this to mean they normalized to 0dB peak value, like I thought most every CD usually is. Reconsidering this right now, I suppose they could have normalized the RMS value and just did some “dynamic compression” or whatever when it was going to result in clipping; I should probably try this, though honestly normalizing to maximum peak sounds fine in the result. My clips are still normalized to 0dB peak value.

I needed some songs (see track listing below) which were in DD but not on the soundtrack. I tried LimeWire (Gnutella network) first and found several of the tracks I was looking for. LimeWire and Gnutella are not specifically geared towards MP3, though, so there weren’t any options for searching for minimum bit rate and things like that. Plus, it seemed I was finding all 128Kbps tracks. Unacceptable. I then tried Kazaa and there wasn’t a lot of anything there either. Then I got WinMX. If you want to do music sharing, it seems WinMX is the client to use. In addition to having its own network, it will also connect to any number of OpenNAP networks (which are surprisingly – to me, at least — still in existence). Its interface seems a bit shoddy, but it works. I got a number of fast downloads, too. It’ll even let you do a search for “MP3/Ogg files of at least 192Kbps” (of course, I’m not quite sure what that does for an Ogg file). I found most every track I wanted there.

Without further adieu, here is the listing for my DD soundtrack as it stands now:

1. Carpathian Ridge

20. We Are Losing Them (clip)

2. The Killing Moon

21. Slipping Away

3. Wake up (clip)

22. Wacko Son (clip)

4. The Tangent Universe

23. Rosie Darko

5. The Artifact and the Living

24. Cellar Door (clip)

6. They Said He Was Doomed (clip)

25. Cellar Door

7. Head Over Heels

26. Hungry Hungry Hippos

8. The Plan (clip)

27. Ensurance Trap

9. Middlesex Times

28. Proud To Be Loud

10. Superhero (clip)

29. Love Will Tear Us Apart

11. Manipulated Living

30. Tragedy In Their Blood (clip)

12. Ms. Farmer’s Card (clip)

31. Under the Milky Way

13. Philosophy of Time Travel

32. Waltz in the 4th Dimension

14. Every Living Thing Dies (clip)

33. Time Travel

15. Liquid Spear Waltz

34. Mad World

16. Gretchen Ross

35. Did You Know Him (clip)

17. Stupid Bunny Suit (clip)

36. Did You Know Him

18. Notorious

37. Mad World (alternate version)

19. Burn It To the Ground

Some notes: I’ve used poor/inconsistent capitalization above; I apologize. If I include a formal track listing with the final version (which I think I would) I’ll make better efforts to correct it. “The Killing Moon” is by Echo and the Bunnymen, heard at the beginning of the movie while Donnie is riding his bike home. “Head Over Heels” by Tears For Fears is played during the tour through the school and introduction to all the characters at school in the beginning of the movie. (Was it his first day at school? I kind of think it was. October?) “Notorious” by Duran Duran is what Sparkle Motion dances to.

“Proud To Be Loud” is supposedly credited to “Dead Green Mummies” on the film, but is apparently by either Pantera or Keel. Pantera may have done a remake of Keel’s song, but the Pantera album “Proud To Be Loud” appeared on was in 1988 according to All Music Guide (Power Metal I believe; hey, are albums underlined? They are right now) so I figure this is likely the correct song/version/whatever. Also note that the few times I’ve found this track by “Keel” on WinMX, it has always sounded identical to the ones credited to Pantera. This song, BTW, is playing the first time we see the party in the Darko house, as Donnie is walking down the stairs and pulls the hood on his sweatshirt up over him. It’s quite faint, but I was able to pick out some vocals and this indeed sounds like the Pantera tracks I’ve been pulling down. I may stick a clip of Elizabeth saying OK to the party but “it has to be small” preceding this; it looked to me like the party was anything but small. I also don’t like Pantera, so believe me when I say I’ve considered not including this track at all.

“Love Will Tear Us Apart” is by Joy Division (IIRC) and is playing when Gretchen arrives at the party. “Under the Milky Way” is by The Church, played when Donnie and Gretchen are coming back downstairs after… er, spending some private time together upstairs. (Wink wink, nudge nudge.) I had to get Gretchen saying “some people are just born with tragedy in their blood” (something to that effect, at least), but it’s got “Love Will Tear Us Apart” audibly playing in the background. I’d love to sync this up with the actual song, perhaps, or get rid of it entirely, but I’m not sure either are particularly do-able. Right now, the end of that clip has an annoying drum beat that’s particularly loud for some reason, louder than the song during the rest of the clip. It’s really pissing me off. I with they had included a version of the audio without any music in it… but who the hell would want that, besides me?

As you’ve noticed, this has become somewhat of an obsession for me. Though the result is 37 (or 38) tracks, I assure you it still fits on a 74 minute CD. The songs from the score and my clips are real short. Oh, and before I forget, finding out which songs were in the movie was helped a great deal by the Donnie Darko FAQ, which may be unattended these days. Note that I do have INXS’ “Never Tear Us Apart” in a reasonable quality, but because it wasn’t used in the final version I opted for leaving it out. I doubt I could squeeze it in to a 74 minute CD anyway. At some point I will release at least some of these tracks, probably, and maybe the CD Architect file. Maybe I’ll even send the full album to people who ask nicely.

I’ll close this out now and move on to my laptop adventures for the next entry. Maybe I’ll go clean my bathtub and/or some kitty poop before I do that. Dinner with the parents tonight at 1830 at the Melting Pot.

Saturday, 23 November 2002

Catch-up

darkness @ 18:41:50

So I didn’t get to make that entry last night. I had the option of pushing my sleepiness to the back and staying up late, or going to bed at 0200 so I could stay somewhat on schedule for the work I have to do next week. Clearly I chose the latter. Now I’ve got all this stuff to talk about and only about 13 minutes to spare right now. I’ll try and pack in what I can.

First, I got the “Donnie Darko” soundtrack last… god, I think Friday it was. The soundtrack has 18 tracks. the first 16 of these tracks are the score from the film, track 17 is the cover of “Mad World” by Gary Jules, and track 18 is an alternative version of that cover. Get this though: the entire CD is only 37m in length. Several of the songs aren’t any longer than what you hear in the movie (which is to be expected, I suppose, if not precisely what I did expect given my experience with past scores).

So I decided to make my own CD. I decided that, a la the “Pi” soundtrack, I would add in sound clips from the film. Now, I could just go from the DVD player audio outputs to the line-in on my sound card… but wait, DVD is digital already. Why can’t I just use that?

Not as easy as it sounds. I had it in my head that Sound Forge 5 would just magically open a ripped AC3 audio track, so I went about trying to do that. First I tried DVD::Rip which seemed to do what I wanted. It required transcode and a number of other packages; they were pretty trivial to make into RPMs in almost all cases, if they weren’t already available as RPMs. The only DVD-ROM in the house was actually in our Linux gateway, so I jammed the DVD in there and tried to use this software.

DVD::Rip had no obvious way to just rip AC3 audio from a song. More than that, I couldn’t really get it to work. Then I went to just calling transcode directly from the command line. First I realized I needed libdvdcss; or maybe that I had it in /usr/lib from one of the RPMs I had, but it needed to be called libdvdcss.so because transcode would load it dynamically.

At some point I actually got it to rip audio, but I got 16-bit, 44.1KHz (I think) PCM audio in a WAV file. Not what I was looking for (though I probably should have just taken it). I played with transcode; I tried running the transcode sub-programs with the command line it said it was using, but they never worked. It seemed to be decrypting the file, but had no way to just rip me foo.ac3 or something. If you haven’t figured this out by now, I had no idea what I was doing. Also, I had a hard time figuring out whether the drive should be mounted or not; when it was mounted, should I use the device (/dev/hdb) or the mount point (/mnt/cdrom) I think the mount point didn’t work, or at least not until I enabled the mount option that said to ignore case on filenames (so ls /mnt/cdrom/video_ts worked the same as ls /mnt/cdrom/VIDEO_TS) so something could find the VIDEO_TS directory. (It wanted it in uppercase, Linux was presenting it in lowercase.)

I went through a lot more trials and tribulations trying to get this to work before reading about some Windows utilities for ripping at doom9.net. They looked quite easy to use, and for once I was all for that. Problem: DVD drive is in gateway. Further, darky doesn’t want to shut gateway down. “We just need to hot swap the IDE DVD drive for my IDE CD-ROM drive!” says darky to euphorik. euphorik seems convinced that this won’t work at the very least, and probably will damage his hardware. I eventually convinced him and went to work.

Let me preface this by saying that I’ve “hot swapped” IDE CD-ROMs before. Or, at least, I know I’ve taken them out of a Linux machine without shutting it down. Linux just kind of assumes the drive is dead if it ever tries to hit it after it’s been removed. (Adding a CD-ROM in this fashion to a running Linux machine — or probably just about any x86 machine, I think — wouldn’t work AFAIK.) So I figured putting another similar (CD-ROM similar to old DVD-ROM… right? Ha) device in the place of the CD-ROM would be no big deal.

I open the machine and unplug power from the DVD: machine is fine, nothing in dmesg. Unplug IDE: still fine. Put in the new CD-ROM, connect IDE: still fine, nothing in dmesg. Plug in the power: reboot. Oops. I’ve had this happen before. I suspect I didn’t quite get the power in there right on the first try, there was a power spike or something, and the machine rebooted. I’ve seen this accompanied by a (harmless) spark on other machine. So that didn’t work. The gateway was fine, though, after it did some fsck’ing and came back up.

I shall continue the tale of DVD ripping from Windows, as well as other adventures, later. For now I have to shower in preparation for going to darkho’s house later.

(BTW, I’m making this entry from my Powerbook. Tee hee.)

Friday, 22 November 2002

Work work work

darkness @ 12:53:08

I know it’s been a while since I posted. I promise I’ll make up for it. My laptop is kind of on the fritz so I’ve been avoiding it, which means avoiding Emacs, which means avoiding log entries. I’ve got tales of DD, DVD ripping, and laptop computers to delve into. I’m at a client’s site right now. Hopefully I’ll have enough energy left when I get home to make an entry — and maybe I’ll make it from my newly used Powerbook.

Saturday, 16 November 2002

Coding, Darko, TSO

darkness @ 05:12:28

Managed to spend at least some time coding today. Finished up some simple Wiki-style text formatters and an HTML formatted text buffer. I promise all these references to this code might make sense once I release them.

A friend said “the director of [Donnie Darko] needs to take some film and editing classes”. He went on to say “watching the deleted scenes on the [DVD], there were some he should really have left in. [… It] was kind that thing where they cut stuff out of the movie, but there are still hints of it in the final movie. [Like] the dude who died was his sister’s [boyfriend] or somesuch [sic].” After watching the extended/deleted scenes myself — there are many on the DVD — I can see many different directions the picture could go.

First, I ask: should we study the movie only given the scenes presented to us in the final version, or should we take into account everything including things like deleted scenes. Why was the footage removed? There’s no one answer to this. Some people on the IMDB DD forums seem to assert that “Kelly cut the scene down so the religious overtones wouldn’t be so blatent [sic]” (for at least one scene). So scenes might be cut because the creative forces behind the movie really thought they didn’t belong after the fact of filming, for whatever reason(s). Then there’s the possibility that there were “business reasons” for dropping footage from the movie: because it’s not exciting, or they think it will be too confusing for the layman, or the movie is simply too long.

The deleted scenes can also drastically change the feeling of the movie for me. I’m not sure I would have been as pleased with the movie if, for example, they had left in some of the scenes that have more tension between Donnie and Gretchen. For me, the relationship that forms between them was one of the most important aspects of the movie. Some of the scenes also imply a much more religious nature to the movie’s content, which I didn’t really pick up the first time or two through it. While the religious bits left out wouldn’t necessarily change the meaning of the film, they would probably have affected my interpretation of it — which I can say with some confidence, since they have at least given me more to think about.

I’m pretty tired tonight, though, so maybe I’ll tackle this some more later. darkho and I played TSO for several hours tonight. She has to get up early for work tomorrow, but she was nice enough to stay at my apartment so I can sleep in tomorrow.

Friday, 15 November 2002

TSO discussion, coding, Darko

darkness @ 05:21:10

Had a bit of TSO discussion this afternoon with draco. He filled me in on how the pizza game works. Apparently he’s considering making a bit of programming to help coordinate games of pizza for optimal money-making. BTW, before I forget, check out the code chart someone else kindly made at http://www.geocities.com/caeddyn/chart.html. I think I’m proud to say that I played no TSO today.

Did some coding in place of games. Didn’t really have much time for some reason; probably because I spent time dorking around with other piddly things, like watching TV. I think I correctly wrote a DarkWiki::WikiPageInterpreter that accepts plug-ins. When I just sat down to write a plug-in, though, I realized that the model is flawed. Rather than having a single instance of the plug-in that can be used to interpret all text, it seems that in at least some cases it is necessary to create an instance for each piece of text. This is due to the way state information is kept: while the caller keeps some state information, it will only give you your state information if another plug-in hasn’t moved into a new “state frame” (kind of like a stack frame). So some information about the text is going to have to be kept in the instance, such as whether the opening paragraph has been started yet. I could do this with two types of state kept by the pluggable interpreter (global and local, of sorts) but that strikes me as probably getting too complicated. I’ll do instances for each text for now and change it around if it’s too inefficient.

I got my “Donnie Darko” DVD today! Rejoice! I certainly did. Unfortunately The Philosophy of Time Travel is actually images, on the screen, with small print that’s nearly damn impossible to read – even at 2′ from at 27″ Trinitron tube. The last song, “Mad World” gets me, though. Great, great movie. Makes me want to go out and do something.

No, not like burn down someone’s house.

« Previous PageNext Page »

Powered by WordPress