As I mentioned in the previous post, I had also thought about putting together a duet chain playlist. I went through with it and it has some good tracks on it. You may notice that a bit of a genre change around track 6.
As an added bonus and using a little creativity, I was again able to make a loop. The last track links the second to last track with the first.
I’ve had the idea for a while for a couple playlists. One was to be a duet chain where it started with a duet with A & B and the next song was a song with B & C, then C & D, etc. My other idea was to try to do a playlist of cover songs. So the first song is a artist A covering artist B, then the next song is artist B covering artist C, etc.
Yesterday I put together a cover song chain playlist. It’s got some good stuff on it, and as an added bonus, the last song in the playlist is a cover version of the first artist, so it’s a loop. It’s also under 80 minutes so it would fit on a CD.
There are two potentially questionable links. I counted Prince’s version of Nothing Compares 2 U as a cover of Sinead O’Connor’s version even though he wrote it. Also, “Love the One You’re With” is technically a Stephen Stills solo song, but I followed it with a Crosby, Stills and Nash song. I’ve seen CSN in concert and they played it, so I’m going to allow it.
We went to the Tigers game on Saturday with many people from TechSmith and their guests. We stayed for the fireworks after the game. A good time was had by all.
In May, Janelle and I went to Toronto for a vacation. I forgot to post the video here. Toronto is very, very expensive. Especially with the weakened exchange rate. I think excluding hotel rates, Toronto was more expensive than New York.
For the third installment of my glue code between Cocoa and Racket, here is some data type conversion code. It’s all in Racket, using the Objective-C FFI. It includes conversions for strings to NSString and back, as well as converting between lists and NSArray and Racket dictionaries to NSDictionary and NSMutableDictionary. Also included are some helper functions for accessing NSArrays.
Next installment will be my unit tests for this code, so get excited.
Part two of my enthralling posts about working with Cocoa from Racket.
Below is more of the code from the C / Objective-C library. You will notice that I use a couple of macros to deal with the NSAutoReleasePools. It’s potentially too clever for it’s own good. This code deals with opening video files for reading, writing, adding frames and exporting to h.264. It also includes a function for getting the contents of the current opengl texture as an NSImage.
I’ve been working on some video apps in Racket on my Mac, but I want to use some of the OSX features like Core Image Filters and QTKit. Racket has really good foreign function interface to both C and Objective-C, but a few things fall through the cracks. For example, it does not seem possible to pass a structure on the stack from Racket into Objective-C, which is required for a number of the image and video related APIs. Some other things are just easier to write in Objective-C. So I’ve been working on a library that makes some of these things easier.
My library consists of three pieces. An Objective-C library with a C interface, a Racket FFI interface to that library, and some Racket wrappers around Objective-C to make the interface simpler. Here’s some pieces.
Below is the Objective-C code for the C Interface for some image conversion routines. The most useful piece of this is the conversion routines from CIImage to NSImage and back, which are useful when using the Core Image Filters.
A couple weeks ago, we awoke on Saturday morning to find 4 deer in our backyard. They stuck around for about half an hour and I was able to record some of it on my Flip.
... is a guy living in East Lansing, Michigan. His interests include programming languages, music, books, tiki bar parties, darts, rye whiskey and penguins.
Recent Comments