\ midi_device \ \ class of device with additional methods to handle MIDI. \ \ Code: Han-earl Park \ Copyright 2001 Buster & Friends C-ALTO Labs \ (Valencia, July 1999 - \ (Southampton, January 2001 - \ \ MOD: HeP 07/30/99 Started project. \ MOD: HeP 08/09/99 Add methods for assigning device id number. \ MOD: HeP 08/26/99 Add methods for assigning part number. \ MOD: HeP 01/23/01 Sets device id# in MIDI.DEVICE.SET.ID. \ Load myt:midi_plus to use the device id# stuff. \ \ ToDo: Check what the legal values for MIDI device numbers are. include? task-midi_plus myt:midi_plus include? task-device myt:device anew task-midi_device method PUT.DEVICE.ID: method GET.DEVICE.ID: method PUT.PART.NUMBER: method GET.PART.NUMBER: :class OB.MIDI.DEVICE iv-mdev-channel 0 iv=> iv-mdev-id 0 iv=> iv-mdev-part ;m \ MIDI channel number :m PUT.CHANNEL: ( n -- ) dup 00 16 within? IF iv=> iv-mdev-channel ELSE " put.channel:" " channel number must be between 1 and 16, or 0 for null values" er_warning ob.report.error drop THEN ;m :m GET.CHANNEL: ( -- n ) iv-mdev-channel ;m : MIDI.DEVICE.SET.CHANNEL ( -- , set midi channel# ) iv-mdev-channel ?dup IF midi.channel! THEN ; \ MIDI device number :m PUT.DEVICE.ID: ( n -- ) dup 00 16 within? IF iv=> iv-mdev-id ELSE " put.device.id:" " device id number must be between 1 and 16, or 0 for null values" er_warning ob.report.error drop THEN ;m :m GET.DEVICE.ID: ( -- n ) iv-mdev-id ;m : MIDI.DEVICE.SET.ID ( -- , set midi device id# ) iv-mdev-id ?dup IF midi.device.id! THEN ; \ synthesizer part number :m PUT.PART.NUMBER: ( n -- ) iv=> iv-mdev-part ;m :m GET.PART.NUMBER: ( -- n ) iv-mdev-part ;m :m PRINT: ( -- ) print: super ." MIDI" cr space ." Channel# = " iv-mdev-channel 4 .r cr space ." Device id# = " iv-mdev-id 4 .r cr space ." Part number = " iv-mdev-part 4 .r cr ;m ;class