KeyKit - A viewgraph-style description


What is it?


Reason for Being


Development History


Development machines


Language Features


Phrase data type


Phrase and Note Attributes


Phrase Operations


Phrase Operations - the "select"

     ph = ph1 { ??.pitch > 60 }
     ph = ph1 { ??.dur > 1b }
     ph = ph1 { isonbeat(??,4b) }
     ph = ph1 { ??.number < 4 }
     ph = ph1 { rand(3)==0 }
     ph = ph1 { isinscale(??,scale) }
     ph = ph - ph { ??.type == MIDIBYTES }
 

Phrase Operations - Looping

 

Function values, In-line Functions

   function major(k) {return(k|transpose(k,4)|transpose(k,7));} 
   function minor(k) { return(k|transpose(k,3)|transpose(k,7));} 
   function randchord() { 
         if ( rand(2) == 0 ) return(major) else return(minor)
   }
   f = randchordtype() 
   f('c')
   randchordtype()('c')

Instead of return(major), you could use an in-line function:

   return (function ? (k){return(k|transpose(k,4)|transpose(k,7));}) 

Other Language Features


Tasks and I/O


KeyKit - the GUI


The GUI Tools

Bang, Blocks, Bounce, Chord Palette, Console, Controller, Echo, Group, Kboom, Loopy, Markov Maker, Mouse Matrix, Parameters, Peer, Prog Change, Riff, RiffRaff, Sectionalize, Tempo, Volume 


Documentation


Copyright 1996 AT&T Corp. All rights reserved.