No Warranty Expressed Or Implied
Lisp, music, electronics, 3D   |   john at johnp.net, john at synchromesh.com   |   John Pallister   |   Wellington, New Zealand & Norfolk, England
(me)
2011: Jan ( 1) Feb ( 1) Mar      Apr      May      Jun      Jul      Aug      Sep      Oct      Nov      Dec     
2009: Jan      Feb      Mar      Apr      May      Jun      Jul      Aug      Sep      Oct ( 3) Nov      Dec     
2008: Jan      Feb ( 1) Mar ( 3) Apr      May ( 3) Jun ( 2) Jul ( 2) Aug      Sep ( 1) Oct ( 1) Nov      Dec     
2007: Jan      Feb      Mar      Apr      May      Jun      Jul      Aug ( 1) Sep      Oct      Nov      Dec     
2006: Jan ( 8) Feb      Mar ( 2) Apr      May      Jun      Jul      Aug      Sep      Oct      Nov ( 2) Dec ( 3)
2005: Jan      Feb      Mar ( 5) Apr ( 9) May ( 4) Jun ( 3) Jul (12) Aug (12) Sep ( 3) Oct (15) Nov ( 8) Dec ( 8)
2004: Jan ( 6) Feb      Mar ( 1) Apr      May      Jun      Jul ( 3) Aug      Sep ( 4) Oct ( 8) Nov ( 6) Dec     
2003: Jan      Feb      Mar      Apr (11) May (14) Jun (10) Jul ( 6) Aug ( 7) Sep ( 5) Oct      Nov ( 7) Dec ( 7)
2002: Jan      Feb      Mar      Apr      May      Jun      Jul      Aug      Sep      Oct      Nov      Dec ( 1)
RSS 2.0

19 Dec 2005 SBCL on Win32 progress
Via Christophe Rhodes, Alistair Bridgewater's progress on porting SBCL to Windows. Impressive stuff, but still a fair way to go. Brian Mastenbrook has some interesting comments, referring to the projects on the CL-Gardeners list:
If there were one Common Lisp which I could run on every platform — one which provided portability for applications using threads and doodads and whatsits without requiring me to GPL my code because I use some internal interface of that implementation — I would probably use it, even if it provided less performance than my current lisp of choice. When it comes down to it, I rarely need performance. No such flower or weed exists yet. If I were to plant it, I would not plant it in the garden of Common Lisp. For as much as I love working in this language I would not take the opportunity to implement any of the obvious advances in language design in the past twenty years and pass it by just to implement ANSI Common Lisp.

And then I think: why don't I just buy a couple of LispWorks licenses for my application development needs, and then use Factor as the FOSS, cross-platform, natively-compiled, metaprogramming-capable, embeddable language for Ngake? At least until Arc is ready, although that could be many years away...

Meanwhile, the CL-Gardeners list continues to throw up links to useful Lisp projects, like Chris Riesbeck's Lisp Critic.

Updated 21/12/05: Alistair has posted more information to the CL-Gardeners list.

[lisp] # .
Mainly PL-related links from LtU and elsewhere
[links] # .

18 Dec 2005 MIDI guitar links
The birdfish guitar Although I've been very busy with work, I have been thinking about the home studio I plan to put together next year (while trying to resist buying more old synths off TradeMe). It occurred to me that, as a guitar player with minimal keyboard chops, I should controlling my (six voice) synthesiser with one of my guitars, not trying to learn to play keyboards particularly. So I've collected a few links while reading about the current state of guitar-to-MIDI technology. On the way, I've met a few interesting people around Wellington, which has been nice; I'll say more about them in a later post.
[music] # .

17 Dec 2005 Some Lisp links I've come across recently
My daughter and I
[lisp] # .

11 Dec 2005 Improving the view
I bought an electric hedge trimmer yesterday. Marvellous machine. I was able to rip through our hedge in no time (well, much less time than doing it by hand), and I also managed to get down the back of the hedge and deal a savage blow to the blackberry that has been trying to invade from the reserve next door.

Feeling inspired, I took my evil pruning saw and had a go at topping some of the trees that were impeding our view. With some success; the view is now much improved.

We (Bethany, Bernadette and I) also went to see The World's Fastest Indian at the Lighthouse Cinema in Petone. Bethany was very good, and made much less noise than some other members of the audience. I thoroughly enjoyed the film; in fact, I found it very moving. But then I'm a bit of a sucker for that sort of thing; I went a bit teary while watching the climactic death scene in Finding Neverland, for example. But anyway, it was great to go and see a movie again (and at such a pleasant theatre). And I'll definitely be buying it on DVD, which will hopefully include some decent biographical documentary (like those found on The Hours DVD).

[random] # .

06 Dec 2005 LispMe, and supporting cast
I would like to knock up a simple but customised timekeeping app to run on my semi-ancient Clié PDA (running PalmOS 4.1). Ideally I would've liked to use Python or Ruby or Tcl/Tk, that is, something that might've had a decent UI layer. But none of those seemed to be currently supported, so I went for LispMe, an R4RS Scheme compiler and runtime for PalmOS written by Fred Bayer. It looks quite nice, although I don't know whether editing source code via Graffiti is going to be much fun. Fred suggests pedit, so I've installed that as well. And TealMaster, and DateBk. Now I can have a go at working through The Little Schemer and The Seasoned Schemer, before one day tackling The Wizard Book (with the aid of the videos I've been downloading).
[lisp] # .
Mbox CoreAudio driver for Tiger is here
I'm a bit late with this (apparently it's been out since September), but the Standalone Digidesign CoreAudio Driver 6.9.2cs2 for Mac OS 10.4 (phew!) is now available. This means that I can use Chris's Mbox on my Power Mac without having to shell out to upgrade Pro Tools, when I already have GarageBand.

Come January, I plan to stake out a corner of the upstairs room here to assemble my various bits of music gear into something I can use to actually start recording some music.

[apple] # .

03 Dec 2005 And now we wait
I've added myself to the waiting lists for the x0xb0x (a clone of the Roland TB-303) and the AvrX, a sort of Evolver-like synth from some guys in Sweden. When they arrive (some time early next year with any luck, by which time I might have some cash with which to pay for them) they can sit next to my FatMan kit, unless I've somehow managed to find time to construct that in the meantime. Which will in turn be after I've debugged my D-110. I could also start with something smaller (via Matrixsynth), or more traditional.

I've tagged some good FatMan links on del.icio.us.

[synth-diy] # .

29 Nov 2005 Welcome to the Xpander Geek corner of my weblog
This is the new Xpander Geek category of my weblog. Rather than try to maintain another blog on the XG site, or cunningly alias/symlink one to the other, I'll just redirect people from the "blog/news" page on XG to this page. That way, when I link to other blog articles, the relative links should still work. The RSS feed for this category is http://johnp.net/blog/xg/index.rss.

And the first piece of news is, I've cemented my claim to the "Xpander Geek" title by identifying the font used for the "Xpander" logo text, as you can see to the right. It is Friz Quadrata Bold, apparently created by a Swiss dude called Ernst Friz in 1965. I started with the creativepro.com font searches page, then tried IdentiFont, which correctly picked that I wanted ITC Friz Quadrata, but didn't show me the bold variant, so I couldn't confirm that it was correct. Then I fed my scanned & Photoshopped image into WhatTheFont, which got it bang on. I was very impressed. But MyFonts was "not yet authorized to sell this font directly", so I had to go to fonts.com to actually buy it. USD29 for Mac & Windows OpenType, and they tossed in another font for free. They almost blew it when their store's Javascript didn't work in Opera, but I gave them a second chance and completed the sale using Firefox. Hooray for Firefox! Hooray for Opera! Long live the Web! etc.

Coming up: my plans for the site. Some interesting ideas are presenting themselves, given that the Xpander seems to be 100% programmable and controllable via MIDI. And there's all sorts of fascinating bits of Xpander information out there waiting to be collected and collated, much of it dating from before the dawn of the Web. And one man's name keeps cropping up: Mr. Mike Metlay, editor of the Xpander Users Group Newsletter and keeper of the Xpander/Matrix-12 MIDI System Exclusive Xpander Patch Editors Specification. But more about him later.

[xg] # .

22 Nov 2005 Ngake and music
Well, work has kept me pretty busy lately, but I'm always thinking about Ngake. And I'm trying to converge some work stuff with Ngake (or at least Lisp) in order to make some progress.

In the meantime, my latest would-be hobby has me looking at electronic/computer-based music systems. I think that sound design, synthesiser programming, composition and performance could all be fruitful domains for Ngake. And I think that applications targetting those domains might be better received than some of my software tools ideas, since musicians seem to be much more open to novelty in their tools. For example, this guy has video of him using a Lemur control surface, Continuum fingerboard and Kyma sound design software to good effect.

[ngake] # .

18 Nov 2005 Proposal finished, but the links keep coming
[links] # .

15 Nov 2005 Non-proposal-writing links
[links] # .

13 Nov 2005 AU, EQ, SOS etc.
Today's roundup of interesting links:
[links] # .

08 Nov 2005 Websites for fun and profit
Interesting sites I've come across lately:
[links] # .

02 Nov 2005 Oberheim Xpander technolust
There's an Oberheim Xpander up for auction on TradeMe. The guy wants $3500 for because he paid well over the odds for it himself, but I find myself craving it rather badly. Unfortunately we're having a few cashflow issues at the moment. We'll see what happens. It's certainly a more worthy and massively more practical lust object than last time.

Links:

[music] # .
C U R V E R E M I X E R
Curve, one of my favourite bands (currently disbanded) have a page on their website that offers the chance to remix the original tracks from the song Unreadable Communication. You can then send in your mix on a CD, and they'll list it on the site. Very cool.

Further to the D-110 post below, I checked the schematic and the path of the MIDI input signal is very short, so hopefully if I take it apart and trace the track from the socket through the optocoupler (a Toshiba TLP552, apparently equivalent to an NEC PS9601) and into the CPU, I might be able to debug the problem. Or not. Who knows.

[music] # .

31 Oct 2005 D-110 SysEx snippet
After my final non-encounter with the time-waster Keith Austin, I'm looking for my own synthesiser troubleshooting resources to get my D-110 fixed. On the way, I found this nugget from the EMUSIC-L archives, dated 1993:
After the MKS-70, Roland moved away from the parameter-change format used by other manufacturers and towards a memory-map scheme, where everything (patch store, edit buffers, even the characters in the front-panel display) sits somewhere in a virtual memory space. (It's probably also the physical memory space.) There is one unified scheme for SysEx. if you want to load a bank, you rewrite a large part of the address space. (Not in one go, alas: you can only read/write 256 bytes at a time, for some reason explained in the small print which leaves me unconvinced. Hence, a bulk dump is several SysEx's.) If you want to change a parameter, you write a 1-byte chunk of memory somewhere in the edit buffer space. It's really nice. They didn't quite get it working properly on the D-50, but on the D-110 and D-70 it works fine. The D-110 implementation was good enough that I never touched the D-110 front panel for years. The D-70 is a slow machine, but this SysEx scheme seems to work fine, and it's a great help for a machine with twenty-seven edit buffers.
[music] # .

28 Oct 2005 Pointers to the right track
I watched Herb Sutter's talk "C++: Future Directions in Language Innovation" (well, I listened to the last third or so; the web presentation tech wasn't quite up to the task). Very interesting. Lambda is coming to C++! Who would've thunk it? I think C++ might be worth sticking with, after all. Although apparently we won't see all these groovy features until "the end of the decade".

Herb's points about concurrency are well made, also. And will make something like the VR IDE I've been imagining all these years even more compelling.

On an unrelated but still relevant note, this Gamasutra article "How to Prototype a Game in Under 7 Days" was also very interesting. If I could successfully apply game development priorities and techniques such as "juice" to VR UI design, then nobody would be able to resist, and world domination would be assured.

[ngake] # .
Now with gView goodness!
Eugene Wallingford linked to gVisit. It looks good to me (I've been meaning to sort out some sort of user tracking for ages), so I've whacked in the appropriate bit of HTML throughout johnp.net, and apparently all the visitors should show up here. Assuming there are any visitors, of course.

It's a bit annoying that New Zealand (well, Gisborne/Hawkes Bay) hangs off the edge of the map, though.

[cool] # .

26 Oct 2005 Upgrading Subversion's Berkeley DB
The message:
svn: bdb: Program version 4.2 doesn't match environment version
The solution (via the Subversion Users mailing list):
$ svnadmin create --fs-type bdb newrepos
$ cd newrepos/db
$ rm *s __db.* log.*
$ cd ../..
$ cd oldrepos/db
$ for dbf in *s ; do db4.1_dump $dbf | db4.2_load -h ../../newrepos/db $dbf ; done 
$ cd ../..
$ svnadmin verify newrepos
$ svnadmin create --fs-type fsfs fsfsrepos
$ svnadmin dump newrepos | svnadmin load fsfsrepos
[bits] # .

18 Oct 2005 Jakob Nielsen says...
Someone linked to Jakob Nielson's thoughts on weblog usability. Apparently I need:
  1. An author bio
  2. An author photo
  3. More descriptive posting titles
  4. More predictive information in or around my links
  5. More links to older postings and "classic hits" (which might mean checking the logs to se whether anyone actually reads this blog)
  6. A navigable list of my categories
  7. A regular posting schedule
  8. Separate blogs for different topics
  9. Writing that will appeal to a future hiring manager
  10. My own domain name
I'd go along with at least the first six of these. I shall add "overhaul this blog layout" to my list of tasks.

I think that many of Mr. Nielsen's guidelines are worth reading. I should probably look at updating my homepage designs, also.

[bits] # .

16 Oct 2005 A man can dream, can't he?
I'm aware that my weblog posts are almost entirely about things I've found and ideas I'd like to investigate, and hardly ever announce something I've actually completed myself. Oh well. All that could change at the end of the year, if I play my cards right.

Anyway, here is my current list of "cool things I'd like to do with Corman Lisp."

  1. Set up a patches page listing all the sets of patches people have prepared for Corman Lisp:
    • Chris Double's patches (if there are any that haven't already been folded into the official distribution)
    • Edi Weitz's ASDF patches
    • Espen Wiborg's SLIME patches
    • And of course any patches I manage to come up with...
    It occurred to me that a darcs repository with current versions of all these patches could be set up, and then zip files of modified sources containing any desired combination of patches could be automagically generated.
  2. Install Paul Dietz's GCL ANSI test suite and run it against Corman Lisp.
  3. Try to run Pascal Costanza's CLOS feature tests against Corman Lisp.
  4. Try to port Pascal's Closer to MOP compatibility layer to Corman Lisp.
  5. Install CFFI and Verrazano. Try to run them against the Torque Game Engine. Compare them to something based on the ideas behind FuBi.
  6. Get Corman Lisp to compile under GCC/MinGW, verified by the GCL ANSI test suite.
[lisp/corman] # .

15 Oct 2005 The quest for the Visual C++ ABI
I found PRB: Compiler Doesn't Lay Out Overloaded Functions in Order ("applies to Microsoft Visual C++ 2.1") in the Microsoft support database, which says "If there are no overloaded functions, the COM binary standard is followed." Which is one of those "good news, bad news" things, I guess. (It's certainly "old news"...)

For their CLI, Microsoft are clearly going to the other extreme: the C++/CLI bridge will be an ECMA standard.

Meanwhile, MinGW/GCC 3.4.2 gives me include/c++/3.4.2/cxxabi.h, which looks like the clincher.

Another nugget from Raymond Chen's archives: the 32-bit x86 calling conventions, with immediate practical applications, such as optimising callback member functions and using GetProcAddress.

He also describes the layout of a COM object, and pointers to member functions. Although of course he has to use some proprietary vector markup language instead of SVG. But someone in the comments links to a "C++ Under the Hood" MSDN article from 1996, which actually describes the Microsoft C++ Object Model! It dates from 1996, a.k.a. "Visual C++ 4.2".

[cplusplus] # .

14 Oct 2005 Corman Lisp & SLIME, part 4
I've made a local copy of Espen Wiborg's Corman Lisp SLIME stuff.
[lisp/corman] # .

13 Oct 2005 Lisp FFI links
LispNYC's Summer of Lisp funded a couple of Lisp FFI projects: FetterFFI and Hello-C. The former is now called Verrazano, and the latter has become the CFFI project, and is a backend for Verrazano (or VZN, as it seems to be known). At least they both look pretty active.

Reading the Fetter/VZN mailing list archives was interesting. It sounds like its at a pretty workable state. They don't seem to have found GCCXML to be a limiting factor, and their handling of overloaded names is, er, maximally straightforward.

[lisp] # .
Sonos looks good
Phil Greenspun says that Sonos is the way to go for in-house audio. It's not cheap, though.
[links] # .

12 Oct 2005 A first look at the C++ ABI
Thinking about it (and I do think thinking is so important), what I'd like to do is write something that will generate Lisp FFI code to talk to a library implementing a particular C++ ABI, assisted by a C++ source parser for the headers. Truly just a Small Matter Of Programming.

So, since GCC implements a published ABI and Microsoft (and by implication Intel) doesn't (although you can unmangle the names via dbghelp.dll), it would seem that I'll be targetting GCC. Fortunately the Torque Game Engine builds under GCC (via both MinGW and Cygwin, apparently).

I found a couple of articles by one Danny Kalev, who mentions the book Inside the C++ Object Model, which I've ordered.

According to this article, Microsoft's C++ vtables have the same layout as a COM interface vtable (also discussed here/here and here). This 1994 comp.compilers post describes the object layout algorithm for the "so-called Microsoft Object Mapping". I've found a mention of this, but no details (yet).

But the archives of The Old New Thing looks like a pretty interesting source of "inside information" on the Visual C++ compiler and Win32 programming in general.

I've installed MinGW/GCC 3.4.2 now, so I'll have to try compiling Corman Lisp with it.

[cplusplus] # .

11 Oct 2005 Random but good
[links] # .

10 Oct 2005 Lisp libraries and continuations
Chris Double links to a paper by Joe Marshall (whose FOG code I've linked to already) about implementing first-class continuations in languages like Java or C#. Must read.

And Gary King has finally posted about Lisp, and actually links to several libraries he's preparing for release. I often think that I should study people's Lisp utility libraries, as I'm sure that would be educational.

On the SLIME mailing list, someone linked to this new evaluator for SBCL.

[lisp] # .

05 Oct 2005 Tom's Hardware Guide 'peps up' Windows
I found (via Slashdot) a Tom's Hardware Guide article that links to a number of useful free Windows applications and utilities. I can't grab all the ones I want now, as I'm on super-sucky dial-up, so I'm listing the ones I want to come back and get later.
[links] # .

04 Oct 2005 Scannerless Generali[sz]ed LR Parsers
Some links I found to SGLR parsers:

Elkhound isn't scannerless, but I liked the "C++ Entities and Relationships" document that Scott McPeak is writing.

But I think I'll start with META, since it seems like a Lispy place to start, and you have to start somewhere.

[links] # .

23 Sep 2005 My current cool projects
As well as a metric shitload of work, I have a large number of cool non-work projects on the back burner. There is also a long list of Lisp projects I'd like to get into. I thought I'd list them here, for my own future reference. More to come as I remember things...
[cool] # .
LSL-mode for Emacs?
Now that I have my spiffy new laptop, I've installed the latest device drivers (via the Dell Precision M70 drivers page) and the latest Second Life client. There doesn't seem to be an Emacs mode for the LSL scripting language available; perhaps I could write one?

Still, it looks like they don't have all the really cool XML-RPC stuff up and running yet, anyway. Although there's enough to start playing with, I suspect.

[cyberspaces] # .

19 Sep 2005 Useful Python links
I've started a paid Python project, which makes a nice change from the usual C++ stuff. Looking at the libraries available for the tasks I need to do, I've found:
[python] # .

29 Aug 2005 Cool links from other people's blogs
[links] # .

25 Aug 2005 Closer project and ContextL - towards a better MOP
Via Chris Double's blog, the Closer project has a suite of MOP tests and a MOP compatibility layer designed to provide a consistent foundation for heavy MOP work across different Lisp implementations. Only tested on OS X so far by the looks of it, but it'd be amusing (OK, maybe educational) to throw it at Corman Lisp and see how far it gets.
[lisp] # .
Prophet T8 technolust
It started here, wherein it is revealed that Dave Smith still uses a twenty-two-year-old hybrid digital/analog synth as his main keyboard controller. I'd already been eyeing up an Evolver as a Chrissie prezzie for myself; now for some reason I fancy one of these. I think it'd be a great alternative to a piano, and way cooler. (Although almost as heavy, apparently.) They can be had, all refurbished and lovely, but they're very expensive. Also, getting it serviced would be tricky, although parts are mostly available. Perhaps I should just buy a Poly Evolver instead. Yes, I think that would be much more sensible. Shit, I could buy two for the same money...
[music] # .
Still no Mbox CoreAudio drivers
There is still no standalone installer for the Digidesign CoreAudio drivers on Tiger. Eventually it will appear here. Then I can start using Chris's Mbox with GarageBand on my Power Mac G4.
[music] # .

11 Aug 2005 GLR parsers in Lisp
I had a little look around for GLR parsers in Lisp, and came across a post by Dan Knapp (who also has a useful-looking guide to proxying a Lisp web server with Apache). He links to an interesting-looking report on scannerless GLR parsing, which I shall print out and attempt to read. There's also dparser, a scannerless GLR parser written in C, which has a manual and looks quite complete.
[lisp] # .

10 Aug 2005 C++ parsing roundup
After reading some good reviews, I bought C++ Template Metaprogramming and C++ Templates - The Complete Guide. They turned up yesterday, and look like they'll be an enjoyable read.

I was flicking through the Climacs syntax analysis paper when my printout of Ed Willink's thesis caught my eye. I would still like to produce a C++ parser and code analysis tool, for two main reasons: my 'day job' involves working on large-ish C++ projects, so a decent analysis & refactoring tool would be very handy (and marketable); and Corman Lisp is written in C++, so for my Ngake project to be thoroughly reflective, it will need to be able to understand the language (and x86 assembly language, for that matter). So I went for a quick Googletrip...

The author of the 'Parsing C++' page that first lead me to Willink's work has since decided that life's to short to waste trying to parse a language as ugly as C++. And you can see his point. But he's added even more useful links:

However, he doesn't link to Joe Marshall's re-packaging of Willink's code.

On balance, it would seem that Elkhound/Elsa is currently the best way to go. It doesn't do template template parameters (which are almost never used), but otherwise seems pretty complete. At least it is being actively maintained. Currently it seems to be GCC only; there's a Cygwin version, but no sign of Visual C++ support. I can start with the technical report.

[cplusplus] # .

08 Aug 2005 Take Five, everybody
[music] # .

06 Aug 2005 I can talk the talk, but...
I've added myself into the LSL Wiki, but I don't know when I'm going to find time to actually do anything in Second Life. Hopefully when I've got a bit further with the Gumbo stuff, I'll be able to do a SL/LSL port.
[cyberspaces] # .

04 Aug 2005 Dashboard widgets for music
Chris Randall links to createdigitalmusic.com, who have a roundup of Konfabulator and Dashboard widgets for music makers. And there's Amnesty, which frees your widgets from that grey parallel world and lets them live on your desktop.
[apple] # .
More distraction
After reading the first part of Chris Randall's short series on scoring oneself a decent microphone preamp and equaliser setup, I've been looking on German eBay (thank goodness for the fish) and UK eBay. sonicworld.de do used stuff, as well as Vintage City that Chris mentions. So many ways to spend the money I haven't made yet...
[music] # .

02 Aug 2005 D-110 editors etc.
A bit of web searching turned up the following:

So there you go. I was thinking that a Java program using Java 3D and the Gumbo libraries would be useful, since I need to get a feel for how the Gumbo stuff works anyway. Apparently there are Java bindings for the Cocoa Core Audio APIs. Don't know how you'd do MIDI in Java on Windows or Linux, though. Time to read the FAQ...

[music] # .

01 Aug 2005 D-110 information via the linear-users-group
I've subscribed to the linear-users-group, a mailing list for people with Roland LA synths. Browsing through the archives, I'm finding some useful nuggets of information:
[music] # .

31 Jul 2005 My night off
I've taken the night off from working (it is Sunday, after all) and I'm trying to get some sense out of my D-110 synth.

I have downloaded and installed the drivers for my MIDISPORT 2x2, which helped things along immeasurably. I've even made little custom icons for my devices in the Audio MIDI Setup program. Now I just have to figure out how to get the SysEx file transferred into the D-110, using some sort of SysEx librarian program. And then it will hopefully start triggering properly...

Andrew Choi has written a program to display SysEx information. I was thinking that it would be a very cool exercise to try and produce some MIDI 'bindings' for, say, OpenMCL, and then write Lisp to explore linear arithmetic synthesis. This would probably mean learning Objective-C and Cocoa programming.

Here is a short description of L/A synthesis:

A sound synthesis method developed by Roland that creates new sounds by attaching the attack portion of a sampled waveform to a simpler waveform. Human sound recognition is heavily influenced by hearing the attack transient part of a sound, but simple waveforms require less storage than samples. By combining the two, L/A synthesis is capable of relatively sophisticated sounds with modest data storage requirements.

Here's another:

This type of synthesis takes short attack sampled waveforms called PCM, or Pulse Code Modulation and combines them with synthesized sounds that form the body and tail of the new sound. By layering these and combining them with the synthesized portion of the sound you arrive at the new sound. The final sound is processed by using filters, envelope generators etc. This is one of the most common forms of synthesis used in the 90s and even today. Roland were the most famous for adopting this type of synthesis and the D50 was one of the most common of the synthesizers that used LA synthesis. By the way, a great synthesizer and still used today.

But wait, there's more:

The basic building block of LA synthesis is the Partial. This can either be a synthesizer waveform or a PCM sample sound. Each Partial can behave like an individual synthesizer, with its own pitch and time variant amplifier plus, in the case of synthesizer waveforms, cut-off frequency, resonance and time variant filter. Two Partials grouped together (using one of seven structures -see diagram) create a Tone. Each Tone can utilise up to three LFOs, a pitch envelope, a programmable chorus and programmable EQ.
[music] # .

28 Jul 2005 Fetter - Generate C/C++ FFIs using GCC-XML
One of the LispNYC projects is Fetter. It seeks to use GCC-XML to generate decent C++ bindings. Apparently (according to some guy posting in the mailing list archives) SWIG isn't much cop for C++, and GCC-XML can't do member variables.

I think I'll see what could be achieved by integrating Corman Lisp into Visual Studio 2005.

[lisp] # .
Bits and pieces
I should be working, but... Chris Randall keeps linking to distracting things, like this collection of drum samples from AKAI.

At some point, I'll want to buy this VST to RTAS adapter. Not just yet, though. Some other free Pro Tools goodies are described here.

In other news, the RNC1173 compressor looks like being a good next piece of kit to buy. When I have money again... Although apparently my FatMan synth has shipped. Yay! Right, now I must get back to work.

[music] # .
A new Java project - and it's (hopefully) paid work!
An old mate of mine has some Java work he needs done. So I've rustled up a few of the bits I'll be using: He doesn't know about the Lisp yet; hopefully he won't mind. ;)
[java] # .

20 Jul 2005 Lazlo, Grady etc.
More links.

I wonder whether a Lisp-to-Flash, Lisp-to-WAP, and/or Lisp-to-Ajax program would be useful/productive/popular/within my capabilities. Who knows.

A better idea I had was to write something that automatically converts printf-style format strings into the long-winded STL style that modern C++ style seems to prefer, i.e. from

    sprintf(result, "\\x%02x", ch);
into
    {
        ostringstream os;

        os << "\\x";
        os.fill('0');
        os << setbase(16) << setw(2);
        os << static_cast<int>(ch);
        result=os.str();
    }
[links] # .

19 Jul 2005 More random stuff
Just have to get these links up here so I can get back to work.
[links] # .

15 Jul 2005 Mmmm, upgrades...
If I had the money to spare, I'd like to buy this dual G4 1.6GHz CPU upgrade and a Radeon 9800 Pro video card for my Quicksilver Power Mac. (My uni-N revision, apparently, is 11.)

In the meantime, SMARTReporter looks useful, given that I don't trust the second hard drive. (Via this article on Mac maintenance.) TechTool Pro is apparently very good, also.

Oh, and I've managed to install a Dvorak keyboard layout from this page.

[apple] # .

14 Jul 2005 C++ template links
I've been rewriting some shitty old code (not mine, of course), using a bit of template programming. Since there were templates involved, and I was using Visual Studio 6, it didn't work quite as I expected. So I looked up & found a few template FAQs on the web, and found a couple of other useful things as well:

After spring-cleaning the disk of my trusty laptop (800MHz Pentium III & 512MB RAM), I put on a minimal installation of Visual Studio 2005 Beta 2. I was pleasantly surprised that it seemed to run acceptably, and my template problems went away. So I guess I'll be saying goodbye to VS6 after all these years. There is certainly an impressive array of bells, whistles and snazzy new features available. Massively more attractive than the previous version.

[cplusplus] # .

11 Jul 2005 Going to the libraries
In order to lift my C++ game, I'm going to start using the Boost and/or Loki libraries. This should mean that I start using a more recent version of my C++ compiler (although problems have been reported). Which might start to overtax my laptop, or indeed my desktop PC...

While I'm at it, the ACE multithreading library comes recommended by Andrei Alexandrescu himself. I'll have to look into that also.

[cplusplus] # .
Technolust

I'm entertaining the idea of buying a new laptop. I'd like to buy one from Alienware. I didn't even know you could get laptops with RAID0 and a PCI-Express GeForce 6800 Ultra. Five and a half grand (or fifty bucks a week) would be a little hard to justify, until I've brought a bit more money in for the year. But a machine like that would keep me going for some time.

Other interesting things I've come across lately:

Benjamin Dove is building a new form of music controller called a String Thing. It is an interesting project itself, and he links to pages for some of the tools he is using:

Ben Nolan, with whom I worked earlier this year, was mentioned on Lambda the Ultimate, "the programming languages weblog," for his Behaviour Javascript library. I'm impressed!

[links] # .

06 Jul 2005 2005 Game Developers Conference Lectures
There are some good-looking lectures available, via Flash 7 running on Internet Explorer. Which means I have to watch them at home, on my puny low-bandwidth connection. But the real problem is finding the time...

Other cool things I've come across today:

[links] # .

04 Jul 2005 "The Manual" found
Silly me, I should've known that Google would provide The Manual without me having to cough up for the dead-tree version.

I'm reading Charlie Stross's Accelerando, and coming across things like this Venter/Kurzweil/Brooks update makes the Singularity seem a little less implausible.

[links] # .

29 Jun 2005 Kalman Filters and dreadlocks
While looking for alternatives to Jam Hair in Cuba Street, I found a nice site put together by some woman in Auckland. Looks like I should be washing my dreads more often than I do...

Also, on the P5 glove mailing list, someone linked to this page of books on Kalman filtering and integration. If I had the time, I'd really like to look at producing a decent driver for the P5 glove, including sensor fusion with a webcam or something.

Other links I've bookmarked on del.icio.us lately:

[links] # .

28 Jun 2005 Corman CL vs. SLIME part III
Espen Wiborg has reported that he has implemented SLIME support for Corman Lisp:
After much sweat and cursing, I now have SLIME working on Corman Lisp
(only tested on 2.51).  I've attached the necessary swank-corman.lisp
as well as a patch against CVS HEAD.

I actually had this working back in December, but due to a lack of
round tuits I haven't made it official before.

Scissored from swank-corman.lisp:

;;; Notes
;;; =====
;;; You will need CCL 2.51, and you will *definitely* need to patch
;;; CCL with the patches at
;;; http://www.grumblesmurf.org/lisp/corman-patches, otherwise SLIME
;;; will blow up in your face.  You should also follow the
;;; instructions on http://www.grumblesmurf.org/lisp/corman-slime.
;;;
;;; The only communication style currently supported is NIL.
;;;
;;; Starting CCL inside emacs (with M-x slime) seems to work for me
;;; with Corman Lisp 2.51, but I have seen random failures with 2.5
;;; (sometimes it works, other times it hangs on start or hangs when
;;; initializing WinSock) - starting CCL externally and using M-x
;;; slime-connect always works fine.
;;;
;;; Sometimes CCL gets confused and starts giving you random memory
;;; access violation errors on startup; if this happens, try dumping a
;;; new image.
;;;

This is great news. Hopefully I'll get a chance to try it out soon...

[lisp/corman] # .
The Coolest Thing Yet

Bethany Zoë Pallister was born at 0156 on Sunday May 29. Truly amazing. She is now a month old and somewhat larger, but still wonderfully healthy and happy.

Dad's skin is looking much better these days, also. This, too, is cause for celebration.

[cool] # .

05 May 2005 Tiger-related browsing
There's a good, if rather long, review of Tiger on Ars Technica. The guy mentions Path Finder as a replacement for the OS X Finder. It looks like upgrading the video card might be a good move, also.

On a completely unrelated note, JavaScript Object Notation (JSON) is 'yet another' lightweight data-interchange format. Might be useful at some point.

And Backpack is 'yet another' web application, this one aiming to be a complete personal information manager. These things are getting pretty sophisticated.

In other Mac news, I replaced the Power Card in Chris's PowerBook, and now the battery charges up, but nothing continues to happen when I press the power button. So I need to find out who does hardware servicing for Massey, and send it to them.

[apple] # .

03 May 2005 Monitoring your UPS
We had another power outage last night, which caused the server to turn off even though it is attached to an APC Back-UPS CS 500. So I need to set up some monitoring. I have a USB cable and a simple serial cable, but apparently the smart serial cables are not hard to make.
[links] # .
CCRMA SLIME tutorial
The Stanford University Center for Computer Research in Music and Acoustics have a SLIME tutorial (via Bill Clementson).
[lisp] # .

02 May 2005 Time management for Kiwi rock anarchists
I found this that I quite liked: Time Management for Anarchists.

In other news, the new Shihad album was released yesterday. I think I'll grab a copy from Smoke CDs. It is New Zealand music month, after all.

[links] # .

30 Apr 2005 My First Mac
RCN Associates are selling some Quicksilver 2002 PowerMac G4s (800MHz, 256K L2 cache, CD-RW drive) for NZD395. So I bought one. It seems to have survived the brutally disinterested treatment of the courier, and I am now trying to install OS X on it. It took me a while to notice the eject button on the keyboard, though.

Some initial useful-looking links I've found:

Apparently the OS X Tiger upgrade is only available on DVD, so I'd need to upgrade my CD-RW drive, or possibly try an external FireWire drive (e.g. one of my spare DVD drives in one of these). So we might put that off for a while.

[apple] # .

28 Apr 2005 Keyboards et al.
My MS Natural Keyboard is failing. I can't stomach the new ones, which are all you can get here, so I'm going to try a non-split Dvorak keyboard, and if that works I'll probably buy one of these or these (as praised here).

I've come across a page describing a workaround for the "F-Lock" key on newer Microsoft keyboards (such as the one I won).

Er, false alarm: the problem seems to be with the PS2/USB adapter I'm using. Apparently it doesn't like the fact that I've swapped the Caps Lock and Control keys...

The other link I need to note is this one, which I have already used to disassemble Chris's Pismo PowerBook. I've bought a new Power Card on eBay, which will hopefully revivify it.

[links] # .

15 Apr 2005 Wine notes

I want to run Corman Lisp under Wine (and eventually winelib). It looks like the packages in testing are the same as those mentioned in the WineHQ docs.

There is also WineTools. And XWine (a GNOME app).

Argh. I installed the Apple QuickTime 6 player, which played a movie, pretty much. But installing Corman Lisp is proving more annoying. I've installed DCOM98.EXE and InstMsiA.exe for a start, but that's as far as I've got. Everyone wants you to use their .wine/config.

On a more positive note, I seem to be able to print! Under Linux! I just installed all the CUPS stuff listed here, and then noticed that there was a web interface, and pointed it at the (network) printer, and wham! instant PostScript Level 3 test page. Unbelievable.

[linux] # .
Context-free Design Grammar

CFDG is "very simple programming language ... for generating pictures." Could be fun to do in 3D.

[links] # .

14 Apr 2005 Automatic login notes

After an apt-get -t testing upgrade, I was faced with xdm again. Fixed via cd /etc/X11 ; rm default-display-manager ; touch default-display-manager. The rest of the automatic login process I took from here.

Also, Firefox SessionSaver is great.

Just for future reference...

[linux] # .
Linux WiFi notes
It's time to try and set up wireless networking on my T20 again, since I've noticed that the open-source driver for my D-Link DWL-650+ seems to be at a usable stage. But I'll try to get it going with the trusty old Orinoco Gold card first.
[linux] # .

11 Apr 2005 Corman CL vs. SLIME part II

For my own reference, I will be posting notes here regarding people's attempts to add Corman Lisp support to SLIME. So far, all I have is a few posts to the Corman Lisp discussion groups; there's never been any mention of Corman Lisp on the SLIME mailing list, AFAICT.

The earliest attempt seems to be by Carlos Ungil in March 2004:

I tried to make Slime work with Corman Lisp. I got to the point where lisp waits for a connection from Emacs, but when the connection is made I get an error because make-two-way-stream is not implemented (the only references to this function are in sys/cl-symbols.lisp and sys/hyperspec.lisp).

Is there any (public) documentation about standard compliancy issues?

There is another problem with with-standard-io-syntax. It's defined (as a macro) in sys/misc-utility.lisp, but the get-standard-pprint-dispatch-table and get-standard-readtable functions used are not defined. I defined them to be nil and (copy-read-table), but I don't know if this makes sense.

ANSI compliancy: make-two-way-stream/with-standard-io-syntax, Corman Lisp Discussion Groups

Next up is Matthew Danish, who had a go in November 2004:

I am trying to create a Corman backend for SLIME. I have currently written much of the basic backend for Corman, but there is a problem before I even reach this. When I load swank-backend.lisp, which defines the backend interface API, Corman CL console crashes and exits with code 128. There is no other information printed out. How can I debug this?

I am using SLIME out of CVS, with these patches and files:
http://www.mapcar.org/~mrd/corman-slime/

Corman CL and SLIME, Corman Lisp Discussion Groups

To which Carlos replied:

I tried to port corman lisp some time ago[*], and swank.lisp calls the ANSI function make-two-way-stream, which is not defined in CCL.

(I don't know if this might be the cause of this problem, though)

Cheers,

Carlos

[*] http://www.artofprogramming.com/bb/viewtopic.php?t=71

Corman CL and SLIME, Corman Lisp Discussion Groups

So there's a list of issues to get me started, and even some sample code... But not tonight. I could ask Carlos whether he'll let me look at his code, also.

[lisp/corman] # .

06 Apr 2005 Apropos of Lisp
[links] # .

05 Apr 2005 Wither VRML?
I had the idea of writing a Lisp-to-VRML compiler, and then mocking up my ideas as VRML models. This was in some way suggested by the Lisp-to-JavaScript compiler ParenScript, by some guy called Manuel Odendahl.

The question is, is VRML still 'alive', and/or has it been superceded by X3D (yet)? (OK, that's two questions.) I've managed to find a few current links:

So there's still life out there yet. Whether my initial idea is actually worth investigating is another question.

[cyberspaces] # .

29 Mar 2005 All the cool kids are into them
The word is out: Macs are officially The Right Thing. (It helps to be a complete Paul Graham fanboy, as I am).

So I asked the nearest Apple owner (Ben), and he suggested these links:

And I'm sure there are many more alternatives to the locals.
[links] # .

24 Mar 2005 Java on PocketPC links
Via Ng Pheng Siong's blog, some Java-on-PocketPC links:
[links] # .

19 Mar 2005 Corman Lisp patches, and SLIME/SWANK
I would like to get Corman Lisp working with SLIME. This means implementing the functions defined in swank-backend.lisp. And fixing whatever ANSI incompatibilities I find on the way...

There have been questions asked on the Corman Lisp forums about whether Corman Lisp is still "alive". I pointed out that new patches have been posted within the last fortnight, which is a good sign. I've emailed Roger to ask him about the status of the product, so we'll see what he says.

Anyway, browsing the forums I discovered that other people have tried this before, with fairly limited results.

(Also, this post by Chris Double could come in handy for that Torque-CL wrapper.)

Hmmm, what else?

[lisp/corman] # .
Microsoft Mobile/Embedded Development links
Peter been given a Harrier Pocket PC phone by one of his clients. I thought this would be a chance to encourage him to try some more modern, dynamic programming languages, but alas neither Python nor Ruby (for example) seem to be available for this device. So we're largely stuck with the Microsoft development tools. As well as the main Mobile Application Development Toolkit (60MB), the requirements include:

That's 421MB, plus the service pack. And if you want to do any .NET development, you need Visual Studio .NET 2003.

I was hoping that I could install Ruby (or something) and start playing around. But simply downloading & installing all that lot is a significant investment of time & effort, so I don't think I'll be playing with it for a while.

[links] # .

07 Mar 2005 "ASN1 bad tag value met" fix
This post has enabled me to actually start installing Windows XP SP2 on Fungus. At last. Two bad .CAT files I found.
[links] # .


powered by PyBlosxom powered by Nginx Python Paste