My OS X Programming Blog
Mac OS X Cocoa and CoreMIDI Programming
About Andrew Choi


MIDI Programs

MIDI File Player (External Device)

MIDI Destination Pop-Up Button

MIDI File Player (Internal Synth)

MusicSequence Sample Code

MIDI File Writer

MIDI Name Document Parser

NameConfigSetup

Fish Creek MIDI Framework

MidnamUtility

SysExSenderX

Other Programs

FCBlogEditor

FCBlog and Patch

Chinese Checkers Program

jyut6 ping3 Cantonese Input Method

Cocoa Sample Programs

Syntax Coloring Using Flex

NSTextField and Undo

NSToolbar

Implementing File Import

Launch Application and Open URL

Saving Uncommitted Text Field Edits

Algorithms

Jazz Chord Analysis as Optimization

Optimal Line Breaking for Music

Optimal Chord Spacing

   

A blog where I will write mostly about programming in Cocoa and CoreMIDI, and experiences from my ports of Emacs and XEmacs to the Mac OS.

Jazz Waltz!!
Thursday October 21, 2004

Here’s a sample of the output generated by my jazz waltz algorithm for the tune The Way You Look Tonight. I’ve only just created it so it’ll need more work. Part of the chord chart is as follows:

There isn’t a lot of information on playing a walking bass line in 3/4 time. Here’s a rare example. To my ear, passing tones (on beat 3) sound unnatural in 3/4 time. So my algorithm only uses them sparingly.

Styles
Wednesday October 20, 2004

Coded the infrastructure for supporting styles today. The code to actually generate the accompaniments in those styles will take more time to write. I think I’ll at least like to have swing, bebop, jazz ballad, jazz waltz, and bossa. Each style is completely defined by three routines (one for generating bass line, piano comping, and drum comping, resp.). Currently these are written in C++ using my jazz theory classes. In the future I hope to convert these to Python and allow the user to customize them and define new styles, much like what I’ve done for the MidnamUtility. That will be much more interesting and powerful than defining new styles using the statistical mechanism of BiaB, for example. Well, but that’ll have to be a version 2 feature.

Don’t have a screen shot to show. So how about this little guy, who walked up to my front window this morning:

Making Use of Section Marks and Choruses
Tuesday October 19, 2004

I modified the accompaniment generation code today to honor the chorus information specified. The code now also makes use of section marks as follows: (1) piano comping does not anticipate the first beat at the beginning of a section (that sounds unnatural); (2) a drum fill is generated at the end of a section. I also added the option to generate and save a MIDI file instead of playing the sequence. Here’s the MIDI file of an accompaniment generated for the following chord chart with these new features.

Counter Display for Repeated Choruses
Monday October 18, 2004

Having finished the work on representing and editing choruses in the chord editor last week, making use of them in the generation of the accompaniment and play back is quite easy to do. As the generated sequence is played, the counter now shows the current chorus being played as well as the bar and beat (“2x•2•2” in the example to mean second chorus, bar 2, beat 2). Of course the current bar is highlighted and the highlight correctly follows the repeat back to the beginning of the chorus.

Not too interesting to show. So here’re a doe and her three babies who walked by my backyard yesterday. Neat aren’t they?

October 2004
Sun Mon Tue Wed Thu Fri Sat
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Sep  Nov

xml

Search this blog with


Lists

Less-Known Facts About Emacs

Emacs Rants

Chinese Restaurants in Calgary

Calgary/Banff Tourist Attractions

C++ Reading List

Science Fiction Series

Top-10 Reason I Stopped Working on Emacs

Top-10 Types of Questions I Get About Emacs

10 Defining Moments as Programmer


Misc

Carbon XEmacs

Emacs for Mac OS X


Copyright © 2003, 2004, 2005 Andrew Choi (Contact Information). Created with FCBlog