Birding Life List

While in quarantine at Marine Corps Air Station Miramar, jet lagged and severely culture shocked, I realized I didn’t have a birding life list. I had just seen my first Anna’s Hummingbird, and some of the ‘Western’ versions of birds I knew (Bluebird, Meadowlark), I thought it would be a fun activity to finally tally all of my lifers.

So I found the 2019 eBird Taxonomy Update, cleared out the duplicate / subspecies, and set up a spreadsheet that tallies and auto-highlights species by simply putting a ‘1’ in the ‘CHECK’ column.

Since this is a fun activity, I want to share the spreadsheet so you can start your own tally:

Download ‘birding-life-list.xlsx’

As of this post, I’m at 226 species! The last one I added was a Chestnut-sided Warbler. For me to add a species to the list, it has to meet these simple requirements:

  1. I have seen the bird myself.
  2. The bird was seen in the wild.
  3. I remember seeing it.

#3 is a little odd, but there are plenty of cases where we counted a bird on the Christmas Bird Count, but I can’t remember if I saw it, or if one of my companions did.

Anyway, hope this list is useful to you, and you find it an exciting quarantine activity like I have. And I’ll leave you with some of my bird pics:

SVG to OBJ Converter (Blender)

I think this would be useful to more than myself. I needed a way to take 2D vectors and turn them into Wavefront OBJ files. So I found a convenient pathway to do so using Blender.

I make my SVG files by creating a vector in Illustrator. Make sure you expand your lines, and remove any white fill that may be present. It’s also a good idea to combine your overlapping vectors into a single shape when possible. Then group your shape together, and put it in the Asset Export. Export to SVG.

Here is a Python script for Blender. It works by iterating through the contents of an ‘SVG’ folder on your Desktop (conveniently where Illustrator exports assets), and exporting them as OBJ files.

The script itself has instructions in how to load it and run in Blender. This should be helpful if you haven’t used scripting in Blender before. I certainly need to re-read it most times I use it.

http://www.kevinschlei.com/code/blender/batch_import_svg_export_obj.py

Collision

Some more old pieces: here is Collision, a conducted improvisation. Players are free to play whatever they want between collisions, but must all follow the directed moment of impact and hold for its duration. Optional melody sequences can also be performed.

Sorry this one is Mac only as a compiled application:

Collision.zip

Artikulation Player

Time to post some old code. Here is a score playback application for Györgi Ligeti’s Artikulation. In reality it is Richard Wehinger’s art score (the original piece did not have a written score).

This code was written in Processing, and it has two modes: original score playback and generative. The generative part is fun: I recreated the shapes and general spacing to be perpetually generated randomly, allowing an ensemble to continue with the shape ideas beyond the original score.

All code is free to use. Sorry the Processing code is pretty janky; it’s from 2012.

Compiled Applications:
artikulation_player.linux-arm64.zip
artikulation_player.linux-armv6hf.zip
artikulation_player.linux32.zip
artikulation_player.linux64.zip
artikulation_player.macosx.zip
artikulation_player.windows32.zip
artikulation_player.windows64.zip

Processing Code:
Artikulation_Player.zip

Ink Well

Ink Well is a generative score created for UWM’s Experimental Improvisation Ensemble. Written in Processing, the piece generates creatures that slither and reach their tendrils outward. Improvising musicians follow these creatures and perform their shapes and movement.

The piece will be premiered May 6, 7:30 pm at the Music Building Recital Hall (MUS 175).

Ink Well

I’m releasing the piece as a compiled application along with the source code. macOS users can choose the version with or without Java embedded (requires Java 8).

Ink Well (compiled application):
inkwell.application.linux-armv6hf.zip
inkwell.application.linux32.zip
inkwell.application.linux64.zip
inkwell.application.macosx.zip
inkwell.java.application.macosx.zip
inkwell.application.windows32.zip
inkwell.application.windows64.zip

Ink Well (source):
ink_well.zip

Maker Faire MKE 2016

Synth Fest MKE 2016

Dev Log 20151201

Why would a developer stop supporting an OS that’s only two years old? I imagine a few users (9% of you, as of this post) might ask that question when the next major TC updates drop support for iOS 7. I thought I’d put this out there for anyone who’s interested.

Some of the upcoming features in TC-11/Data require the latest tools Apple provides for rotation and layout. Unbelievably, Apple has rewritten the rotation system in every update since iOS 6, and with multitasking in iOS 9, the changes can no longer be ignored.

The choice is: support two totally different layout systems, or drop support for the old. It’s worth mentioning that the vast majority of my development time goes into layout. The amount of time to develop for two different systems would slow feature adoption and new projects to a crawl.

Xcode 7 no longer supports an iOS 7 simulator, and I’m down to a handful of physical devices still running iOS 7. You cannot downgrade devices, so I would be completely blind to any bugs / errors that users would encounter.

So it’s not a choice I took lightly, but I hope that the flow of cool new features will be worth the decision for most of my users.

Dev Log 20150201

MIDI sync in the TC apps: it’s been on the update list for a long time, which should give you hope if it’s on your wish list, but the bad news is that it won’t be in TC-11 2.0 right away. Beside the technical challenges (Michael Tyson has a fantastic video about this), it’s worth taking a look at the history of the Sequencer in TC-11.

The Sequencer module in TC-11 was not conceived as a tempo matching, clocked partner to external apps. Remember the dark ages before Audiobus? Yeah me either. But TC-11 was created back when iOS apps were single screen, single focus experiences. The Sequencer was never meant to communicate externally, and was actually based on the Arp 2500 Module 1027 Clocked Sequential Control:

arp_2500_m1027

I originally put the Sequencer in to generate three things: discrete controller data, note value / key filter control, and rhythmic data. The rate control was to be smooth (like the Arp), and it could be controlled globally or individually for each touch. So while it’s fully featured by itself, playing with others is something it’s not designed to do.

The silver lining is: MIDI sync will be a fantastic feature when it drops. It’ll just be a bit more time…

Dev Log 20150104

TC-11 1.x will soon be the ‘legacy’ version of the app, and from the inside it may as well be a different app entirely. I was trying to think of a single file that carried over into 2.0 untouched, and I don’t think there is one.

No where has this been more on my mind than the synth graph. TC-11 2.0 uses an entirely new connection system. The oscillators are higher resolution than before, there are new parameters for many of the audio objects, and the AHDSR, LFO, and Sequencers have been moved out of Pd and into Objective-C. Key filtering is out of the Sequencer and into the Oscillators / Filters (where they should have gone in the first place). The patch files themselves were completely re-written, and require a full conversion process to be updated for 2.0:

Ensuring the new app works and sounds the same as 1.x is essential. I’m sure some users out there have their one favorite user patch, and if it doesn’t sound the same in 2.0, that’s a critical failure. And until recently, the 1.x patches sounded completely different. Conversion wasn’t working. Sleep was lost.

After lots of code spelunking and reverse engineering (is it reverse engineering if you wrote the app in the first place?) the patches are sounding great – just like 1.x. Of course, they also have tons of new stuff to play with, which makes this whole thing worth it. I’m just glad to be mostly out of the woods.