Those Pesky Details

Writing a decent murder mystery has to be a huge challenge. There are so many details you have to get right! The other day I picked up Breakdown by Jonathan Kellerman at the library. My first impression was that it’s a good mystery. But toward the end, a key detail was just plain wrong — and as I thought more carefully about the plot, it unraveled before my eyes.

Spoiler alert: In the discussion below, I’ll have to reveal who done it.

At the start of the book, psychologist Alex Delaware (the amateur sleuth) is trying to help a homeless, mentally ill former sitcom star named Zelda. Shortly the cops get a 911 call from a rich old lady named Enid, who has found Zelda’s body lying in her back yard. The cause of death is not immediately obvious; it turns out to have been an exotic poison.

Eventually Alex discovers that not one but two Hispanic domestic servants in Enid’s exclusive neighborhood disappeared within a day or two of Zelda’s death. One of them is Enid’s maid. Alex and his sidekick, police detective Milo Sturgis, then poke around fruitlessly for a hundred pages or so, trying out various theories of the maids’ disappearance and gathering the hard-to-find details of Zelda’s past life.

And then Alex has a brainstorm. On Google Earth, he finds aerial photos of the woods along the back of Enid’s estate. “In seconds I had full-color, one-year-old, 3-D satellite photos of the property at a variety of angles, the forest-like area at the rear of the property revealed in high definition.” That’s on page 286. On the very next page, “The soil of the … pocket garden [was] pale and dry and littered with leaves and pine needles. But just off center, in line with the door, the ground was clear. … At the end of the clear area, two oblong depressions in the ground.” Oblong depressions — yes! Alex has just discovered the graves of the two missing maids. They’re buried at the rear of Enid’s estate.

The trouble is, the maids have only been missing for three weeks, and Kellerman specifically told us the Google Earth views are a year old. Oops.

This could have been a rewrite error that wasn’t caught. However it happened, it’s sloppy, and at the worst possible moment in the story for sloppiness. The story could have been drafted in such a way that there was no room for error. Alex could have spotted an undisclosed part of the estate and then figured out some other way to check for fresh graves in that area.

We shortly learn that Enid, the nice old rich lady, poisoned Zelda and also shot the two maids in the back of the head because they knew too much. Enid and her elderly boyfriend then wheelbarrowed the maids’ bodies out to the woods and buried them. We also learn that Zelda was Enid’s niece. Enid had killed Zelda’s mother years before, and buried the mother in the same spot. Zelda, in her state of total mental breakdown, had gone to Enid’s house and demanded to know about her mother. So naturally Enid had to kill her, lest her rambling accusations lead somebody to suspect foul play.

But why, given all that, did Enid leave Zelda’s body lying in the back yard and call 911? Why not bury Zelda where she buried (shortly before or shortly afterward) the two maids? The answer, sadly, is that if she had done that, there would have been no mystery novel, because Alex and Milo would never have been able to figure out what happened to Zelda. Letting the cops find Zelda’s body was an insane and unnecessary risk for Enid. Why? Because Enid was Zelda’s aunt. That fact was very hard for the police to put together, but Enid couldn’t have known that. For all Enid knew, during a lucid moment Zelda had told somebody about it. A homeless vagrant found dead in the back yard of a mansion — eh, these things happen. But if somebody already knew that Zelda was Enid’s niece, explaining the niece’s body would be a tough row for Enid to hoe. Whereas, if nobody knew what had happened to Zelda, Enid’s secrets were much more likely to be safe forever.

Okay, murderers sometimes do stupid stuff. I get that. But if a murderer does something stupid, it’s incumbent upon the author to give the reader some sort of plausible explanation for the murderer’s bizarre lapse of judgment. Kellerman didn’t bother to do that. By the time the truth is dug up from the shallow graves, Kellerman trusts that the reader won’t rewind the newsreel and ask why Enid, who had gotten away with several murders, suddenly blew it at the moment when it mattered most.

Writing a decent mystery novel is not easy at all.

Scrivening

Had a look last night and today at a program for writers called Scrivener. It offers some real advantages in letting you construct and rearrange a long document such as a novel. (Script-writing formats are also supported.) You can take notes on any passage and they’ll appear in a sidebar, and if you want to search just the text of the notes, you can do so. You can open two chapters in a side-by-side or up-and-down window and compare the text. Files you delete go to the Trash in the Scrivener project  itself, so you can always retrieve them. It auto-saves. This is all good stuff.

Scrivener can compile your text while omitting certain sections if you like, which could be useful for quickly printing out alternate versions for your readers. It’s important to note, however, that Scrivener is mainly a writing tool, not a formatting tool for desktop publishing. It can output your files in .rtf, .pdf, .doc, or OpenOffice .odt format, for example, but if you care about how your finished files look, you’ll have to plan on tweaking them in some other program.

In my initial experiments, it was outputting the titles of all of my chapters (based on the section names I had entered in its project browser) in 12pt Courier, which is not what I wanted. I emailed tech support, and a couple of days later received an answer that told me how to suppress the automatically generated chapter titles. This is okay with me. I can enter chapter titles manually myself.

The point of the compile/export routine, for me, is that I want to back up my daily work sessions in a standard format (.odt). I don’t quite trust Scrivener, or any program from a small company, enough to back up my work only in its proprietary format. Its own files are kept in folders (visible in Windows, but you have to trick the Mac into displaying the folder contents) in .rtf files, so yeah, in theory you can extract everything even from a Scrivener backup. But the .rtf files are numbered, not named. If you got into trouble with Scrivener crashing (or not working on your new computer) and needed to get at your creative work, reassembling it would be a fairly gruesome business.

Word processors haven’t really changed much in the past 25 years, have they? Bells and whistles have been added to the output side of your typical word processor: You can add graphics or tables, for example, or page headers and footers. Scrivener is not too good at that sort of thing; it tries, but it’s not a champ. What hasn’t changed in the standard word processor is the input side, and that’s where Scrivener excels.

I think I’ll have to buy it. (It’s not expensive.) I may not switch over with my current project, but for the next project I’ll give it a serious workout.

We Are the Knights Who Say “e!”

Far be it from me to knock e-books. They’re not just trendy, they have some real benefits. And then there’s the dark side…

If you’re serious about writing fiction, whether you’re self-publishing, with a small press, or with one of the big publishing houses, having e-books available for your customers should definitely be part of your marketing plan. Nonetheless, print is not dead. Going strictly with e-publishing and ignoring paper entirely would be a mistake.

Publishing electronically is certainly easier than publishing physical books. The print-on-demand (POD) industry has made it a lot easier for indie authors to produce paper books, but some authors may not see a clear difference between e-books and POD books.

An e-book is usually so inexpensive that it’s pretty much an impulse buy. Plus, instant delivery to your readers! Also, the visually impaired will likely find your e-book far easier to read than your paper book. The type can be made larger or output aurally by a screen reader program.

Setting all that aside, there are powerful reasons to insist on paper books (whether you’re writing them or reading them).

First, longevity. An e-book is a digital file. It can only be accessed and displayed on-screen by software that is compatible with that specific file type. Some companies have been known to upgrade their software in a way that makes old files unreadable — either through short-sightedness or simply to force you to buy stuff again. And some companies go out of business, leaving the users of their software stranded.

It’s an open question whether any of today’s e-books will be readable by your grandchildren 50 years from now. A paper book, even if it’s printed on cheap paper that turns yellow, will still be readable.

Second, you can loan or give a paper book to a friend. Transferring ownership of a digital file is sometimes possible, but it’s a lot harder than just handing someone a book.

Third, you can take a paperback book to the beach. You don’t need to worry about it getting sand in its sensitive parts, and you don’t need to worry that someone will steal your $200 book-reading device.

Fourth, with a physical book you can be reasonably sure that the text is what the author wrote. It’s not just paranoia to suggest that governments (and private entities) sometimes have strong reasons to alter the text of books so as to promote their own point of view. If you download an electronic version of, let’s say, a socialist or atheist manifesto, you can’t be sure that it hasn’t been edited by someone who hacked the publisher’s website. Changing the text of a physical book is pretty darn difficult, so if you buy it in a store you can be pretty sure it’s the real thing.

Fifth, as a writer you’ll have a larger audience if you publish on paper. Believe it or not, there are millions of people in the world who are too poor to own an e-book reader. Millions more are so technologically challenged that the idea of setting up an e-book reader makes them very nervous.

Finally, again speaking to authors here, if you decide to promote your book at conventions, you’ll need physical books to put on the table and sign.

For all these reasons and more, e-books will never replace paper books.

Modulation Done Right

In implementation, thinking through the details of how your users will want to use a feature can make a huge difference.

Today’s details will be of interest to nobody but musicians who use Propellerhead Reason. One of Propellerhead’s optional add-on synths is PX7, a 98% faithful recreation of the hallowed and groundbreaking Yamaha DX7 (which first appeared in 1983). Six-operator FM synthesis — a distinctive and versatile sound.

Yamaha later went on to release several other FM synths, including the lower-cost rackmount TX81Z, which was very popular. This week, a small company called Primal Audio has released the FM4. Like PX7, it’s a Rack Extension for Reason. And it’s a (slightly less faithful, but still good) recreation of the TX81Z, which had one or two distinctive features of its own, notably a choice of eight basic waveforms, as opposed to the DX7’s straight sine waves.

FM4 has CV input jacks on its rear panel for control of the pitch and amplitude of each of the four oscillators. PX7 only has inputs for amplitude of its six oscillators. Ah, but if you put PX7 in a Combinator, you gain access to all of its parameters, including oscillator pitch, via the Combinator’s programmer page. Right? Well, sort of. Actually, “wrong” would be a better description.

Like the DX7, PX7 gives you coarse and fine tune parameters for each oscillator. These are in the form of numbers. Fine tune can be set from .00 up through .99. This is perfectly sensible if you’re programming a sound and can set the tuning ahead of time, before you start playing. If you need a pitch that’s slightly flat, you just dial the coarse tune down to the next lower value and then crank the fine tune up to .98 or .99.

But if you want to apply real-time modulation — from an external LFO, let’s say — to the fine-tune parameter, this implementation is quickly revealed as a disastrous mistake. The LFO, which is being routed through the Combinator, can only move the pitch of the oscillator up, because .00, which is the “in-tune” pitch setting, is not in the middle of the parameter’s travel; it’s at the bottom. The LFO can’t impose a bi-directional pitch wobble, which is what you would typically want — it can only drive the fine-tune upward from .00.

In fact, the problem is worse than that. When modulation is applied to PX7’s fine-tune, it is assumed by the PX7 to be bidirectional from the midpoint of the parameter’s travel. The fine-tune will instantly reset itself to .50 (the midpoint — or to .75 if the coarse pitch is 0.5) so that it can go up or down from there. This completely fucks up the patch.

The FM4 gets pitch modulation right. Guess I’ll have to keep it in my rack after all.

The Sorcerer’s Apprentice

Six years ago I wrote an unauthorized book-length manual called The Inform 7 Handbook. There were (and still are) some things I liked about Inform 7, an authoring system for text adventures, but I didn’t feel its built-in suite of documentation was very well organized. So I wrote an alternative.

Inform 7 (called I7 by the tiny coterie of people who have even heard of it) has been updated several times in the intervening years. By now the Handbook is seriously out of date. A few months ago I started working on a revised edition, but before long I got annoyed with a couple of the more glaring limitations of I7. So I set it aside.

Last week two things happened. I learned that a guy had actually taken the old Handbook (which was only ever a PDF) down to his local print shop and had a spiral-bound copy printed up. This made me proud but also sad, because it’s not a very useful document. Mere days thereafter, Emily Short, who is an I7 developer and guru, stepped up to the plate and fixed the main problem that had gotten me annoyed.

So I took a deep breath and started working on the Handbook again. But then …

Read more

Food for Worms

In the course of prepping a couple of obsolete computers for recycling, I discovered I have CD and DVD copies of the entire Myst series games. Unfortunately, I’m unable to play the later ones, because Windows has moved on. I’ve got realMyst (an enhanced version of the original), and for some reason Myst III: Exile runs fine under Windows 8. But IV and V are toast. Or coasters, I suppose.

The sad part about this is that in some sense these games are digital art. And they’re gone. Okay, maybe not as great art as Beethoven’s Third or a Van Gogh painting, but Myst had a real visual style. Arguably, the games have a narrative theme too — or several themes, actually. That the world is vast, lonely, and mysterious. That there are places you may want to visit that are not accessible to you. That you may need to explore hidden places and find unlikely connections in order to solve the basic problems of existence. That the Creator has moved on and left you behind to deal with his inconvenient handiwork in whatever way you can manage.

I happen to have a Windows XP laptop, which is on its way to recycling in a day or two. I hauled it out of the trunk of the car and installed Myst IV. Unfortunately, it’s a MusicXPC machine, built for dedicated audio professionals. As such, it has no soundcard. None. Myst needs a soundcard to run.

So I plug in an M-Audio Fast Track Pro that I happen to have lying around. It’s class-compliant. Windows XP likes it fine — system sounds play. But Myst IV still isn’t happy. It complains that the desktop isn’t in 32-bit mode, even though it is in 32-bit mode.

Phooey.

Support Hose

This is a story about how weird the Internet can get.

Last night I finished a mix of a synthesizer piece I’ve been working on. I wanted to upload it so that the six or seven people who wander over to this blog could listen to it and be amazed, disturbed, or just plain bored.

WordPress won’t let you upload audio media. Probably some lawyer has convinced them that users would engage in wholesale copyright violation (a good guess) and that WordPress could be liable (who knows?). What I do is, I upload the mp3 files to the server of my “real” website (musicwords.net) and then link to them from this blog. I call it my “real” website because it’s even less visited and less relevant than the blog. But I’ve had it for 12 years or so. It just sits there. It’s on a server operated by a company called Lunar Pages.

So I launch FileZilla Client, the ftp client that I use for uploading music to the Lunar Pages server. And FileZilla can’t access the server. This is the first time that has ever happened.

My first thought is, I just updated to a new version of FileZilla. That could be the source of the difficulty … or the Lunar Pages server could be down. Sure enough, my web browser can’t get to musicwords.net either. So I contact Lunar Pages tech support (via email, after getting tired of listening to their on-hold music). The tech reports that, working from a remote location, he IS able to get to musicwords. So are a couple of my Facebook friends, when I ask them to try. One of them can reach musicwords from a hotel in Guatemala — and within minutes of when I ask folks to give it a try.

The rest of my Internet connectivity works perfectly, but I can’t reach my own website.

So maybe FileZilla has hosed that particular IP address on this particular computer. But no, I have the same problem on my Mac, which connects wirelessly to the same home router. So the problem would have to be in the router, right?

I phone AT&T. It’s their router. The AT&T tech is unable to come up with a theory as to what might be going on. (I cleverly don’t mention to him that I updated FileZilla Client, because if I do, he will instantly blame them. I know how this game is played.) We try unplugging the router and plugging it back in. No luck. We try turning off Windows Firewall — not that that would help with the Mac’s inability to find the site. That doesn’t work either. I quickly turn it back on.

I post a query on the FileZilla support forum. Someone there suggests that I try pinging the server. That doesn’t work from here, either on the Mac or in Windows. ping (Windows) and traceroute (Mac) can’t find the server. So I locate a web page (wormly.com) that can ping a server remotely. wormly can find the server all right — it gives me the number address of the server. But it fails to connect. Evidently this morning the Lunar Pages server is down.

Sort of. Maybe. Sometimes wormly can get a response to 4 of the 8 packets that it sends (a 50% failure rate). Sometimes it gets no response at all. This is highly suspicious.

Naturally, I’m unable to get through to phone support at Lunar Pages. Their system invites me to register my phone number so that a tech can call me back. I do so. No tech calls me back.

Toward the end of the afternoon, after exchanging a couple of emails with Lunar Pages tech support, I try phoning their support line again. This time an automated message tells me that there’s a conflict between the Lunar Pages servers and the AT&T servers, and that AT&T is working on a fix. Well, what do you know! It wasn’t just me having a screwball problem. I may not have been the first to report it, but then again, maybe I was.

Nebulous

Note: At the moment, the server for my website has decided not to exist, so none of the audio in the blog is going to play. I’m waiting for a reply from tech support….

The latest addition to my modular synth is a Qu-Bit Nebulae, a nifty device that runs Csound code in its own little Raspberry Pi CPU. I haven’t yet tried loading any of my own Csound code; this morning I took Nebulae out for a spin using its default program, which does granular pitch- and time-shifting on samples.

This is a spoken vocal phrase that I happen to have lying around on my hard drive, being played by the Nebulae and processed by a ModCan Frequency Shifter and an Audio Damage Dub Jr. delay. Knob twiddling was employed — this is not an automated patch.

I figured the Nebulae and the ModCan would work well together. I was right.

Walk Away, Rene

The wonderful thing about modular synthesis is that once you understand how to do it, making sounds becomes a very intuitive process. Plug in a patch cord, grab a knob.

And then there’s the Make Noise Rene. Conceptually, it’s brilliant — very deep and powerful. As an actual piece of hardware, it could be improved by hitting it a few times with a hammer. And I say this with the greatest respect for Make Noise. I have two of their Maths modules, and also their DPO. Brilliant designs. Rene is another story.

The concept is, Rene is a two-dimensional step sequencer. It has 16 knobs arranged in a 4×4 grid, and you have independent control over the X and Y positions of the active step, using either a CV or a clock. If you don’t use a Y clock/CV input, the X control can either hang on one row or cycle through all 16 steps in various patterns. You can program it interactively, in real time, to skip certain steps. It has a quantized output, plus one that’s not quantized. It can glide from one output value to another. Plus a number of other features.

The knob tops are lighted so you can see what step is being played, or (in programming mode) what the current settings are. That’s good … but other than that, the user interface is really bad. There are two problems.

First, to program the rather elaborate functionality of the device, you touch one of the 18 touchplates (16 corresponding to the sequence steps, plus two for choosing program modes) with the tip of your finger. The trouble is, the touchplates are close to 100% nonresponsive. They ignore my fingers. This is apparently because my skin is not sweaty enough. I can get them to sort of respond, in a random unreliable way, by dipping my fingertip into a cup of water before touching the plate. Of course, if too much water gets on a touchplate, it may think my finger is there even after I’ve lifted it. So I dip my finger, dry it a bit on my trousers, and then it works for three or four finger-taps (maybe) before it stops working.

Second, and almost equally problematical, the device itself fails to provide nearly enough visual feedback on programming. There’s no LCD. There’s a row of six small colored LEDs that tell you which of the six programming modes you’re in. In each mode, the 16 touchplates do different things. To learn what they do, you have to consult the manual. Unless you’ve dedicated your life to learning how the device works, you may never manage to memorize all of the esoteric functions, so you’ll constantly be delving into the manual. And of course the manual is cryptic. The information is there, but you have to keep flipping up and down to different pages and … phooey.

If the touchplates worked, I’m sure I’d be able to learn the important functions within a week or two. I might even be motivated to do so. But right now, my motivation is seeping away into the woodwork.

To be fair, I have several other digital modules, including the Intellijel Shapeshifter oscillator, Mutable Instruments Braids, and the Tiptop Trigger Riot, all of which are brilliant, and none of which is exactly obvious. All three require more than a bit of manual-diving. (Shapeshifter is way deep.) Maybe I just need sweaty hands. On the other hand, they all have at least minimal data displays. You just have to learn what the lights on Rene mean by reading the manual, because zero information is actually visible on the panel.

Footnote: I contacted Make Noise, and they tell me they’ll recalibrate my unit to make it more sensitive. I’m shipping it to them today and keeping my (non-sweaty) fingers crossed.

Back to the Modular

I’ve been ignoring my modular synth for a few months. (Among other distractions, I was busy writing the new edition of Power Tools for Synthesizer Programming, which I’m hoping will be out by mid-January.) Today I thought I’d fire it up again. This is not a complete piece of music, it’s just a sketch:

As usual, I recorded the audio from the synth into Reason and did a bit of mixing there. The cool thing is, with a complex patch I can record up to six audio signals at once by using the Expert Sleepers ES-6, which sends ADAT-format digital audio to the PreSonus AudioBox. This particular sketch only uses three tracks, which means I can get twice as wild and crazy as this.

I’ll probably need a few more patch cords, though.

Rather than start with a musical idea, this patch started with a technical question: “Hey, can I use the Make Noise Maths as a slew limiter? I don’t remember.” Okay, that works. Let’s voltage-control the slew rate. Okay, how about running the output through a quantizer?

Yeah, that works, but I think I need to trigger the quantizer so as to produce a regular rhythm. That way, I can fire an envelope generator with the same rhythm, run the oscillator through a filter, and modulate filter cutoff.

And so forth.

This next bit, again just a sketch, wasn’t recorded all in one pass. It’s three separate mono tracks recorded using the same patch, with a few assorted tweaks. The rhythm is courtesy of Tiptop Trigger Riot, and the tone comes from a Morphing Terrarium, a digital oscillator that was indeed morphing actively (and being subjected to a bit of FM). My initial conception was to use all four sections of the Intellijel Quadra envelope generator.

I still don’t know if this type of minimal exploration qualifies as music, but I’m not sure I care.