Posts relating to software development.
Advanced custom Quartz Composer patch development documentation Advanced custom Quartz Composer patch development documentation

Posted by smokris on 2007.05.13 @ 12:03

Filed under:

In addition to writing the inspector panels for custom Quartz Composer patches tutorial, I spent this weekend writing up some advanced custom-patch-development documentation and posted it on QC Wiki:


Steve Mokris is a developer at Kosada, Inc.

How to make inspector panels for custom Quartz Composer patches How to make inspector panels for custom Quartz Composer patches

Posted by smokris on 2007.05.13 @ 11:52

Filed under:

…in thirteen easy steps or your money back.

This release is only compatible with Tiger (10.4).
Please see kineme.net for Leopard-specific informations.

 

 

 
[more...]

Xcode Template for Custom Quartz Composer Patches Xcode Template for Custom Quartz Composer Patches

Posted by smokris on 2007.05.08 @ 14:35

Filed under:

Create a new Xcode project with this templateOkay, so, now that the Game Research and Immersive Design Lab’s infamous first-responder project is finished, I’m getting back to work on Quartz Composer hackery.

Frustrated with the tedium of going through all the Xcode project files in a text editor and manually replacing all of the identifiers and filenames when creating a new Quartz Composer Patch, I decided to finally figure out how to create a new Xcode template. [more...]

Cross-compiling on Malus Sylvestris

Posted by cwright on 2007.04.06 @ 15:42

Filed under:

After working my way through most of the migration to Mac, I came across a common problem for multi-platform developers like myself. The problem is the creation and use of applications targeted for another platform. For example, using a Linux compiler to develop Windows applications, or using an OS X compiler to develop Linux applications.

This is a fairly common problem, and also fairly simple to solve. The resultant tool kit is referred to as a Cross-Compiler, because is crosses platforms, and it compiles source code into target code. For Linux, my cross-compiler of choice was created and maintained by SDL, and can be found here. This allowed me to write Windows programs without needing to actually run Windows. Since both Linux and Windows were my complete set of frequented platforms, that sufficed. Now, however, one more platform has entered the mix. [more...]

Nord Modular Tempo Format Nord Modular Tempo Format

Posted by smokris on 2002.08.06 @ 17:01

Filed under:

When the Nord Modular Editor writes patch files, the sequencer tempo is stored in an odd format, which packs the entire tempo range into a 7bit value. In beats per minute, the tempo ranges from 24 to 214. For values toward the ends of the spectrum, it skips by two.

  • 24bpm to 88bpm = by 2
  • 89bpm to 151bpm = by 1
  • 152bpm to 214bpm = by 2

The following C snippet should translate from BPM to nord-patch-file format and reverse.

unsigned char bpmToNordTempo(int b)
{
    if(b<24)
        return 0;
    else if(b<88)
        return (b-24)/2;
    else if(b<152)
        return b-88+32;
    else if(b<214)
        return (b-152)/2+96;
    else
        return 127;
}
 
int nordTempoToBpm(unsigned char t)
{
    if(t<32)
        return t*2+24;
    else if(t<96)
        return t-32+88;
    else if(t<128)
        return (t-96)*2+152;
    else
        return 214;
}
The Sentinel

Posted by cwright on 1999.11.18 @ 17:24

Filed under:

Today in Barton’s compsci class we went over simple user-controlled looping.  This allows us to collect variable amounts of input from user, without asking them explicitly for the number of fields in advance.

We used Barton’s Constant (-999) as a sentinel value to trigger the end of the data set.  In many ways this is a lame solution, since -999 may be a valid data point for some data sets, and it also requires additional instructions at each prompt to let the user know how to exit the loop.  In the future, we’ll hopefully learn how to trap Ctrl-C or Ctrl-D to make this simpler, or maybe we can simply detect a null input to indicate list completion.

Of course, all of the above is moot once we get into Graphical User Interfaces.  But for command-line stuff, I guess there aren’t really any better solutions…