home *** CD-ROM | disk | FTP | other *** search
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: Tape Archive
(archive/tar).
You can browse this item here: tracker.tar
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Tape Archive (archive/tar)
| magic
| Supported |
100%
| file
| tar archive
| default
| |
99%
| file
| tar archive (V7), file audio.c, mode 644 , uid 1155 , gid 310 , size 14236 , seconds 5117160136
| default
| |
98%
| file
| data
| default
| |
100%
| TrID
| Sybase iAnywhere database files
| default (weak)
| |
100%
| siegfried
| x-fmt/265 Tape Archive Format
| default
| |
100%
| lsar
| Tar
| default
| |
100%
| gt2
| TAR Archiv gefunden (Auflistung ist deaktiviert)
| default
| |
100%
| disktype
| Pre-POSIX tar archive
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 61 75 64 69 6f 2e 63 00 | 00 00 00 00 00 00 00 00 |audio.c.|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00000070| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00000080| 20 20 31 34 32 33 36 20 | 20 35 31 31 37 31 36 30 | 14236 | 5117160|
|00000090| 31 33 36 20 20 20 35 34 | 34 30 00 20 00 00 00 00 |136 54|40. ....|
|000000a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000200| 2f 2a 20 61 75 64 69 6f | 2e 63 20 2a 2f 0a 0a 2f |/* audio|.c */../|
|00000210| 2a 20 24 41 75 74 68 6f | 72 3a 20 65 73 70 69 65 |* $Autho|r: espie|
|00000220| 20 24 0a 20 2a 20 24 49 | 64 3a 20 61 75 64 69 6f | $. * $I|d: audio|
|00000230| 2e 63 2c 76 20 32 2e 38 | 20 31 39 39 31 2f 31 32 |.c,v 2.8| 1991/12|
|00000240| 2f 30 33 20 32 31 3a 32 | 34 3a 35 33 20 65 73 70 |/03 21:2|4:53 esp|
|00000250| 69 65 20 45 78 70 20 65 | 73 70 69 65 20 24 0a 20 |ie Exp e|spie $. |
|00000260| 2a 20 24 52 65 76 69 73 | 69 6f 6e 3a 20 32 2e 38 |* $Revis|ion: 2.8|
|00000270| 20 24 0a 20 2a 20 24 4c | 6f 67 3a 20 61 75 64 69 | $. * $L|og: audi|
|00000280| 6f 2e 63 2c 76 20 24 0a | 20 2a 20 52 65 76 69 73 |o.c,v $.| * Revis|
|00000290| 69 6f 6e 20 32 2e 38 20 | 20 31 39 39 31 2f 31 32 |ion 2.8 | 1991/12|
|000002a0| 2f 30 33 20 20 32 31 3a | 32 34 3a 35 33 20 20 65 |/03 21:|24:53 e|
|000002b0| 73 70 69 65 0a 20 2a 20 | 41 64 64 65 64 20 63 6f |spie. * |Added co|
|000002c0| 6d 6d 65 6e 74 73 2e 0a | 20 2a 0a 20 2a 20 52 65 |mments..| *. * Re|
|000002d0| 76 69 73 69 6f 6e 20 32 | 2e 37 20 20 31 39 39 31 |vision 2|.7 1991|
|000002e0| 2f 31 32 2f 30 33 20 20 | 32 30 3a 34 33 3a 34 36 |/12/03 |20:43:46|
|000002f0| 20 20 65 73 70 69 65 0a | 20 2a 20 41 64 64 65 64 | espie.| * Added|
|00000300| 20 70 6f 73 73 69 62 69 | 6c 69 74 79 20 74 6f 20 | possibi|lity to |
|00000310| 67 65 74 20 62 61 63 6b | 20 74 6f 20 4d 4f 4e 4f |get back| to MONO|
|00000320| 20 66 6f 72 20 74 68 65 | 20 73 67 69 2e 0a 20 2a | for the| sgi.. *|
|00000330| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 36 |. * Revi|sion 2.6|
|00000340| 20 20 31 39 39 31 2f 31 | 32 2f 30 33 20 20 31 38 | 1991/1|2/03 18|
|00000350| 3a 30 37 3a 33 38 20 20 | 65 73 70 69 65 0a 20 2a |:07:38 |espie. *|
|00000360| 20 41 64 64 65 64 20 73 | 74 65 72 65 6f 20 63 61 | Added s|tereo ca|
|00000370| 70 61 62 69 6c 69 74 69 | 65 73 20 74 6f 20 74 68 |pabiliti|es to th|
|00000380| 65 20 69 6e 64 69 67 6f | 20 76 65 72 73 69 6f 6e |e indigo| version|
|00000390| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|000003a0| 20 32 2e 35 20 20 31 39 | 39 31 2f 31 32 2f 30 33 | 2.5 19|91/12/03|
|000003b0| 20 20 31 33 3a 32 33 3a | 31 30 20 20 65 73 70 69 | 13:23:|10 espi|
|000003c0| 65 0a 20 2a 20 4d 69 6e | 6f 72 20 62 75 67 3a 20 |e. * Min|or bug: |
|000003d0| 61 20 53 41 4d 50 4c 45 | 5f 46 41 55 4c 54 20 69 |a SAMPLE|_FAULT i|
|000003e0| 73 20 61 20 6d 69 6e 6f | 72 20 65 72 72 6f 72 2c |s a mino|r error,|
|000003f0| 0a 20 2a 20 77 65 20 73 | 68 6f 75 6c 64 20 66 69 |. * we s|hould fi|
|00000400| 72 73 74 20 63 68 65 63 | 6b 20 74 68 61 74 20 74 |rst chec|k that t|
|00000410| 68 65 72 65 20 77 61 73 | 20 6e 6f 20 6f 74 68 65 |here was| no othe|
|00000420| 72 0a 20 2a 20 65 72 72 | 6f 72 20 62 65 66 6f 72 |r. * err|or befor|
|00000430| 65 20 73 65 74 74 69 6e | 67 20 69 74 2e 0a 20 2a |e settin|g it.. *|
|00000440| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 34 |. * Revi|sion 2.4|
|00000450| 20 20 31 39 39 31 2f 31 | 31 2f 31 39 20 20 31 36 | 1991/1|1/19 16|
|00000460| 3a 30 37 3a 31 39 20 20 | 65 73 70 69 65 0a 20 2a |:07:19 |espie. *|
|00000470| 20 41 64 64 65 64 20 63 | 6f 6d 6d 65 6e 74 73 2c | Added c|omments,|
|00000480| 20 6d 6f 76 65 64 20 6d | 69 6e 6f 72 20 73 74 75 | moved m|inor stu|
|00000490| 66 66 20 61 72 6f 75 6e | 64 2e 0a 20 2a 0a 20 2a |ff aroun|d.. *. *|
|000004a0| 20 52 65 76 69 73 69 6f | 6e 20 32 2e 33 20 20 31 | Revisio|n 2.3 1|
|000004b0| 39 39 31 2f 31 31 2f 31 | 38 20 20 31 34 3a 31 30 |991/11/1|8 14:10|
|000004c0| 3a 33 30 20 20 65 73 70 | 69 65 0a 20 2a 20 4e 65 |:30 esp|ie. * Ne|
|000004d0| 77 20 72 65 73 61 6d 70 | 6c 65 20 66 75 6e 63 74 |w resamp|le funct|
|000004e0| 69 6f 6e 20 63 6f 6d 69 | 6e 67 20 66 72 6f 6d 20 |ion comi|ng from |
|000004f0| 74 68 65 20 70 6c 61 79 | 65 72 2e 0a 20 2a 0a 20 |the play|er.. *. |
|00000500| 2a 20 52 65 76 69 73 69 | 6f 6e 20 32 2e 32 20 20 |* Revisi|on 2.2 |
|00000510| 31 39 39 31 2f 31 31 2f | 31 38 20 20 30 31 3a 31 |1991/11/|18 01:1|
|00000520| 32 3a 33 31 20 20 65 73 | 70 69 65 0a 20 2a 20 41 |2:31 es|pie. * A|
|00000530| 64 64 65 64 20 6d 6f 72 | 65 20 6e 6f 74 65 73 2e |dded mor|e notes.|
|00000540| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00000550| 32 2e 31 20 20 31 39 39 | 31 2f 31 31 2f 31 37 20 |2.1 199|1/11/17 |
|00000560| 20 32 33 3a 30 37 3a 35 | 38 20 20 65 73 70 69 65 | 23:07:5|8 espie|
|00000570| 0a 20 2a 20 4a 75 73 74 | 20 63 6f 6d 70 75 74 65 |. * Just| compute|
|00000580| 73 20 73 6f 6d 65 20 66 | 72 65 71 75 65 6e 63 79 |s some f|requency|
|00000590| 2d 72 65 6c 61 74 65 64 | 20 70 61 72 61 6d 65 74 |-related| paramet|
|000005a0| 65 72 73 2e 0a 20 2a 0a | 20 2a 0a 20 2a 2f 0a 0a |ers.. *.| *. */..|
|000005b0| 23 69 6e 63 6c 75 64 65 | 20 3c 6d 61 74 68 2e 68 |#include| <math.h|
|000005c0| 3e 0a 23 69 6e 63 6c 75 | 64 65 20 3c 6d 61 6c 6c |>.#inclu|de <mall|
|000005d0| 6f 63 2e 68 3e 0a 0a 23 | 69 6e 63 6c 75 64 65 20 |oc.h>..#|include |
|000005e0| 22 65 78 74 65 72 6e 2e | 68 22 0a 23 69 6e 63 6c |"extern.|h".#incl|
|000005f0| 75 64 65 20 22 6d 61 63 | 68 69 6e 65 2e 68 22 0a |ude "mac|hine.h".|
|00000600| 23 69 6e 63 6c 75 64 65 | 20 22 73 6f 6e 67 2e 68 |#include| "song.h|
|00000610| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 63 68 61 6e |".#inclu|de "chan|
|00000620| 6e 65 6c 2e 68 22 0a 20 | 20 20 20 20 0a 73 74 61 |nel.h". | .sta|
|00000630| 74 69 63 20 63 68 61 72 | 20 2a 69 64 20 3d 20 22 |tic char| *id = "|
|00000640| 24 49 64 3a 20 61 75 64 | 69 6f 2e 63 2c 76 20 32 |$Id: aud|io.c,v 2|
|00000650| 2e 38 20 31 39 39 31 2f | 31 32 2f 30 33 20 32 31 |.8 1991/|12/03 21|
|00000660| 3a 32 34 3a 35 33 20 65 | 73 70 69 65 20 45 78 70 |:24:53 e|spie Exp|
|00000670| 20 65 73 70 69 65 20 24 | 22 3b 0a 0a 0a 2f 2a 20 | espie $|";.../* |
|00000680| 63 72 65 61 74 65 73 20 | 61 20 74 61 62 6c 65 20 |creates |a table |
|00000690| 66 6f 72 20 63 6f 6e 76 | 65 72 74 69 6e 67 20 60 |for conv|erting `|
|000006a0| 60 61 6d 69 67 61 27 27 | 20 70 69 74 63 68 0a 20 |`amiga''| pitch. |
|000006b0| 2a 20 74 6f 20 61 20 73 | 74 65 70 20 72 61 74 65 |* to a s|tep rate|
|000006c0| 20 61 74 20 61 20 67 69 | 76 65 6e 20 72 65 73 61 | at a gi|ven resa|
|000006d0| 6d 70 6c 69 6e 67 20 66 | 72 65 71 75 65 6e 63 79 |mpling f|requency|
|000006e0| 2e 0a 20 2a 20 46 6f 72 | 20 61 63 63 75 72 61 63 |.. * For| accurac|
|000006f0| 79 2c 20 77 65 20 64 6f | 6e 27 74 20 75 73 65 20 |y, we do|n't use |
|00000700| 66 6c 6f 61 74 69 6e 67 | 20 70 6f 69 6e 74 2c 20 |floating| point, |
|00000710| 62 75 74 0a 20 2a 20 69 | 6e 73 74 65 61 64 20 66 |but. * i|nstead f|
|00000720| 69 78 65 64 20 70 6f 69 | 6e 74 20 28 20 3c 3c 20 |ixed poi|nt ( << |
|00000730| 41 43 43 55 52 41 43 59 | 29 2e 0a 20 2a 2f 0a 0a |ACCURACY|).. */..|
|00000740| 23 64 65 66 69 6e 65 20 | 41 43 43 55 52 41 43 59 |#define |ACCURACY|
|00000750| 20 31 36 0a 23 64 65 66 | 69 6e 65 20 41 4d 49 47 | 16.#def|ine AMIG|
|00000760| 41 5f 43 4c 4f 43 4b 46 | 52 45 51 20 33 35 37 35 |A_CLOCKF|REQ 3575|
|00000770| 38 37 32 0a 0a 69 6e 74 | 20 73 74 65 70 5f 74 61 |872..int| step_ta|
|00000780| 62 6c 65 5b 4d 41 58 5f | 50 49 54 43 48 5d 3b 20 |ble[MAX_|PITCH]; |
|00000790| 20 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | . | |
|000007a0| 20 20 20 20 20 20 2f 2a | 20 68 6f 6c 64 73 20 74 | /*| holds t|
|000007b0| 68 65 20 69 6e 63 72 65 | 6d 65 6e 74 20 66 6f 72 |he incre|ment for|
|000007c0| 20 66 69 6e 64 69 6e 67 | 20 74 68 65 20 6e 65 78 | finding| the nex|
|000007d0| 74 20 73 61 6d 70 6c 65 | 64 0a 20 20 20 20 20 20 |t sample|d. |
|000007e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|000007f0| 20 62 79 74 65 20 61 74 | 20 61 20 67 69 76 65 6e | byte at| a given|
|00000800| 20 70 69 74 63 68 20 28 | 73 65 65 20 72 65 73 61 | pitch (|see resa|
|00000810| 6d 70 6c 65 28 29 20 29 | 2e 0a 20 20 20 20 20 20 |mple() )|.. |
|00000820| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|00000830| 2f 0a 0a 76 6f 69 64 20 | 63 72 65 61 74 65 5f 73 |/..void |create_s|
|00000840| 74 65 70 5f 74 61 62 6c | 65 28 6f 76 65 72 73 61 |tep_tabl|e(oversa|
|00000850| 6d 70 6c 65 2c 20 6f 75 | 74 70 75 74 5f 66 72 29 |mple, ou|tput_fr)|
|00000860| 0a 69 6e 74 20 6f 76 65 | 72 73 61 6d 70 6c 65 3b |.int ove|rsample;|
|00000870| 20 20 20 20 20 2f 2a 20 | 77 65 20 73 61 6d 70 6c | /* |we sampl|
|00000880| 65 20 6f 76 65 72 73 61 | 6d 70 6c 65 20 69 20 66 |e oversa|mple i f|
|00000890| 6f 72 20 65 61 63 68 20 | 62 79 74 65 20 6f 75 74 |or each |byte out|
|000008a0| 70 75 74 20 2a 2f 0a 69 | 6e 74 20 6f 75 74 70 75 |put */.i|nt outpu|
|000008b0| 74 5f 66 72 3b 20 20 20 | 20 20 20 2f 2a 20 6f 75 |t_fr; | /* ou|
|000008c0| 74 70 75 74 20 66 72 65 | 71 75 65 6e 63 79 20 2a |tput fre|quency *|
|000008d0| 2f 0a 20 20 20 20 7b 0a | 20 20 20 20 64 6f 75 62 |/. {.| doub|
|000008e0| 6c 65 20 6e 6f 74 65 5f | 66 72 3b 20 2f 2a 20 6e |le note_|fr; /* n|
|000008f0| 6f 74 65 20 66 72 65 71 | 75 65 6e 63 79 20 28 69 |ote freq|uency (i|
|00000900| 6e 20 48 7a 29 20 2a 2f | 0a 20 20 20 20 64 6f 75 |n Hz) */|. dou|
|00000910| 62 6c 65 20 73 74 65 70 | 3b 0a 20 20 20 20 69 6e |ble step|;. in|
|00000920| 74 20 70 69 74 63 68 3b | 20 20 20 20 20 20 2f 2a |t pitch;| /*|
|00000930| 20 61 6d 69 67 61 20 70 | 69 74 63 68 20 2a 2f 0a | amiga p|itch */.|
|00000940| 0a 20 20 20 20 73 74 65 | 70 5f 74 61 62 6c 65 5b |. ste|p_table[|
|00000950| 30 5d 20 3d 20 30 3b 0a | 20 20 20 20 66 6f 72 20 |0] = 0;.| for |
|00000960| 28 70 69 74 63 68 20 3d | 20 31 3b 20 70 69 74 63 |(pitch =| 1; pitc|
|00000970| 68 20 3c 20 4d 41 58 5f | 50 49 54 43 48 3b 20 70 |h < MAX_|PITCH; p|
|00000980| 69 74 63 68 2b 2b 29 0a | 20 20 20 20 20 20 20 20 |itch++).| |
|00000990| 7b 0a 20 20 20 20 20 20 | 20 20 6e 6f 74 65 5f 66 |{. | note_f|
|000009a0| 72 20 3d 20 41 4d 49 47 | 41 5f 43 4c 4f 43 4b 46 |r = AMIG|A_CLOCKF|
|000009b0| 52 45 51 20 2f 20 70 69 | 74 63 68 3b 0a 20 20 20 |REQ / pi|tch;. |
|000009c0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 69 6e 74 5f | | /* int_|
|000009d0| 74 6f 5f 66 69 78 28 31 | 29 20 69 73 20 74 68 65 |to_fix(1|) is the|
|000009e0| 20 6e 6f 72 6d 61 6c 69 | 7a 69 6e 67 20 66 61 63 | normali|zing fac|
|000009f0| 74 6f 72 20 2a 2f 0a 20 | 20 20 20 20 20 20 20 73 |tor */. | s|
|00000a00| 74 65 70 20 3d 20 6e 6f | 74 65 5f 66 72 20 2f 20 |tep = no|te_fr / |
|00000a10| 6f 75 74 70 75 74 5f 66 | 72 20 2a 20 69 6e 74 5f |output_f|r * int_|
|00000a20| 74 6f 5f 66 69 78 28 31 | 29 20 2f 20 6f 76 65 72 |to_fix(1|) / over|
|00000a30| 73 61 6d 70 6c 65 3b 0a | 20 20 20 20 20 20 20 20 |sample;.| |
|00000a40| 73 74 65 70 5f 74 61 62 | 6c 65 5b 70 69 74 63 68 |step_tab|le[pitch|
|00000a50| 5d 20 3d 20 28 69 6e 74 | 29 73 74 65 70 3b 0a 20 |] = (int|)step;. |
|00000a60| 20 20 20 20 20 20 20 7d | 0a 20 20 20 20 7d 0a 20 | }|. }. |
|00000a70| 20 20 20 20 20 20 20 20 | 0a 2f 2a 20 74 68 65 20 | |./* the |
|00000a80| 6d 75 73 69 63 61 6c 20 | 6e 6f 74 65 73 20 63 6f |musical |notes co|
|00000a90| 72 72 65 73 70 6f 6e 64 | 20 74 6f 20 73 6f 6d 65 |rrespond| to some|
|00000aa0| 20 73 70 65 63 69 66 69 | 63 20 70 69 74 63 68 2e | specifi|c pitch.|
|00000ab0| 0a 20 2a 20 49 74 27 73 | 20 75 73 65 66 75 6c 20 |. * It's| useful |
|00000ac0| 74 6f 20 62 65 20 61 62 | 6c 65 20 74 6f 20 66 69 |to be ab|le to fi|
|00000ad0| 6e 64 20 74 68 65 6d 20 | 62 61 63 6b 2c 20 61 74 |nd them |back, at|
|00000ae0| 20 6c 65 61 73 74 20 66 | 6f 72 0a 20 2a 20 61 72 | least f|or. * ar|
|00000af0| 70 65 67 67 69 69 2e 0a | 20 2a 2f 0a 69 6e 74 20 |peggii..| */.int |
|00000b00| 70 69 74 63 68 5f 74 61 | 62 6c 65 5b 4e 55 4d 42 |pitch_ta|ble[NUMB|
|00000b10| 45 52 5f 4e 4f 54 45 53 | 5d 3b 0a 0a 76 6f 69 64 |ER_NOTES|];..void|
|00000b20| 20 63 72 65 61 74 65 5f | 6e 6f 74 65 73 5f 74 61 | create_|notes_ta|
|00000b30| 62 6c 65 28 29 0a 20 20 | 20 20 7b 0a 20 20 20 20 |ble(). | {. |
|00000b40| 64 6f 75 62 6c 65 20 62 | 61 73 65 2c 20 70 69 74 |double b|ase, pit|
|00000b50| 63 68 3b 0a 20 20 20 20 | 69 6e 74 20 69 3b 0a 0a |ch;. |int i;..|
|00000b60| 20 20 20 20 62 61 73 65 | 20 3d 20 41 4d 49 47 41 | base| = AMIGA|
|00000b70| 5f 43 4c 4f 43 4b 46 52 | 45 51 2f 34 34 30 3b 0a |_CLOCKFR|EQ/440;.|
|00000b80| 20 20 20 20 66 6f 72 20 | 28 69 20 3d 20 30 3b 20 | for |(i = 0; |
|00000b90| 69 20 3c 20 4e 55 4d 42 | 45 52 5f 4e 4f 54 45 53 |i < NUMB|ER_NOTES|
|00000ba0| 3b 20 69 2b 2b 29 0a 20 | 20 20 20 20 20 20 20 7b |; i++). | {|
|00000bb0| 0a 20 20 20 20 20 20 20 | 20 70 69 74 63 68 20 3d |. | pitch =|
|00000bc0| 20 62 61 73 65 20 2f 20 | 70 6f 77 28 32 2e 30 2c | base / |pow(2.0,|
|00000bd0| 20 69 2f 31 32 2e 30 29 | 3b 0a 20 20 20 20 20 20 | i/12.0)|;. |
|00000be0| 20 20 70 69 74 63 68 5f | 74 61 62 6c 65 5b 69 5d | pitch_|table[i]|
|00000bf0| 20 3d 20 70 69 74 63 68 | 3b 0a 20 20 20 20 20 20 | = pitch|;. |
|00000c00| 20 20 7d 0a 20 20 20 20 | 7d 0a 0a 76 6f 69 64 20 | }. |}..void |
|00000c10| 69 6e 69 74 5f 74 61 62 | 6c 65 73 28 6f 76 65 72 |init_tab|les(over|
|00000c20| 73 61 6d 70 6c 65 2c 20 | 66 72 65 71 75 65 6e 63 |sample, |frequenc|
|00000c30| 79 29 0a 69 6e 74 20 6f | 76 65 72 73 61 6d 70 6c |y).int o|versampl|
|00000c40| 65 2c 20 66 72 65 71 75 | 65 6e 63 79 3b 0a 20 20 |e, frequ|ency;. |
|00000c50| 20 20 7b 0a 20 20 20 20 | 63 72 65 61 74 65 5f 73 | {. |create_s|
|00000c60| 74 65 70 5f 74 61 62 6c | 65 28 6f 76 65 72 73 61 |tep_tabl|e(oversa|
|00000c70| 6d 70 6c 65 2c 20 66 72 | 65 71 75 65 6e 63 79 29 |mple, fr|equency)|
|00000c80| 3b 0a 20 20 20 20 63 72 | 65 61 74 65 5f 6e 6f 74 |;. cr|eate_not|
|00000c90| 65 73 5f 74 61 62 6c 65 | 28 29 3b 0a 20 20 20 20 |es_table|();. |
|00000ca0| 7d 0a 0a 23 64 65 66 69 | 6e 65 20 43 20 66 69 78 |}..#defi|ne C fix|
|00000cb0| 5f 74 6f 5f 69 6e 74 28 | 63 68 2d 3e 70 6f 69 6e |_to_int(|ch->poin|
|00000cc0| 74 65 72 29 0a 0a 2f 2a | 20 54 68 65 20 70 6c 61 |ter)../*| The pla|
|00000cd0| 79 69 6e 67 20 6d 65 63 | 68 61 6e 69 73 6d 20 69 |ying mec|hanism i|
|00000ce0| 74 73 65 6c 66 2e 0a 20 | 2a 20 41 63 63 6f 72 64 |tself.. |* Accord|
|00000cf0| 69 6e 67 20 74 6f 20 74 | 68 65 20 63 75 72 72 65 |ing to t|he curre|
|00000d00| 6e 74 20 63 68 61 6e 6e | 65 6c 20 61 75 74 6f 6d |nt chann|el autom|
|00000d10| 61 74 61 2c 0a 20 2a 20 | 77 65 20 72 65 73 61 6d |ata,. * |we resam|
|00000d20| 70 6c 65 20 74 68 65 20 | 69 6e 73 74 72 75 6d 65 |ple the |instrume|
|00000d30| 6e 74 73 20 69 6e 20 72 | 65 61 6c 20 74 69 6d 65 |nts in r|eal time|
|00000d40| 20 74 6f 0a 20 2a 20 67 | 65 6e 65 72 61 74 65 20 | to. * g|enerate |
|00000d50| 6f 75 74 70 75 74 2e 0a | 20 2a 2f 0a 0a 76 6f 69 |output..| */..voi|
|00000d60| 64 20 72 65 73 61 6d 70 | 6c 65 28 63 68 61 6e 2c |d resamp|le(chan,|
|00000d70| 20 6f 76 65 72 73 61 6d | 70 6c 65 2c 20 6e 75 6d | oversam|ple, num|
|00000d80| 62 65 72 29 0a 73 74 72 | 75 63 74 20 63 68 61 6e |ber).str|uct chan|
|00000d90| 6e 65 6c 20 2a 63 68 61 | 6e 3b 0a 69 6e 74 20 6f |nel *cha|n;.int o|
|00000da0| 76 65 72 73 61 6d 70 6c | 65 3b 0a 69 6e 74 20 6e |versampl|e;.int n|
|00000db0| 75 6d 62 65 72 3b 0a 20 | 20 20 20 7b 0a 20 20 20 |umber;. | {. |
|00000dc0| 20 69 6e 74 20 69 3b 20 | 20 20 20 20 20 20 20 20 | int i; | |
|00000dd0| 20 2f 2a 20 73 61 6d 70 | 6c 65 20 63 6f 75 6e 74 | /* samp|le count|
|00000de0| 65 72 20 2a 2f 0a 20 20 | 20 20 69 6e 74 20 63 68 |er */. | int ch|
|00000df0| 61 6e 6e 65 6c 3b 20 20 | 20 20 2f 2a 20 63 68 61 |annel; | /* cha|
|00000e00| 6e 6e 65 6c 20 63 6f 75 | 6e 74 65 72 20 2a 2f 0a |nnel cou|nter */.|
|00000e10| 20 20 20 20 69 6e 74 20 | 73 61 6d 70 6c 69 6e 67 | int |sampling|
|00000e20| 3b 20 20 20 2f 2a 20 6f | 76 65 72 73 61 6d 70 6c |; /* o|versampl|
|00000e30| 65 20 63 6f 75 6e 74 65 | 72 20 2a 2f 0a 20 20 20 |e counte|r */. |
|00000e40| 20 53 41 4d 50 4c 45 20 | 73 61 6d 70 6c 65 3b 20 | SAMPLE |sample; |
|00000e50| 20 2f 2a 20 73 61 6d 70 | 6c 65 20 66 72 6f 6d 20 | /* samp|le from |
|00000e60| 74 68 65 20 63 68 61 6e | 6e 65 6c 20 2a 2f 0a 20 |the chan|nel */. |
|00000e70| 20 20 20 69 6e 74 20 62 | 79 74 65 5b 4e 55 4d 42 | int b|yte[NUMB|
|00000e80| 45 52 5f 54 52 41 43 4b | 53 5d 3b 0a 20 20 20 20 |ER_TRACK|S];. |
|00000e90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000ea0| 2f 2a 20 72 65 63 6f 6d | 62 69 6e 61 74 69 6f 6e |/* recom|bination|
|00000eb0| 73 20 6f 66 20 74 68 65 | 20 76 61 72 69 6f 75 73 |s of the| various|
|00000ec0| 20 64 61 74 61 20 2a 2f | 0a 20 20 20 20 73 74 72 | data */|. str|
|00000ed0| 75 63 74 20 63 68 61 6e | 6e 65 6c 20 2a 63 68 3b |uct chan|nel *ch;|
|00000ee0| 0a 0a 20 20 20 20 20 20 | 20 20 2f 2a 20 63 68 65 |.. | /* che|
|00000ef0| 63 6b 20 74 68 65 20 65 | 78 69 73 74 65 6e 63 65 |ck the e|xistence|
|00000f00| 20 6f 66 20 73 61 6d 70 | 6c 65 73 20 2a 2f 0a 20 | of samp|les */. |
|00000f10| 20 20 20 66 6f 72 20 28 | 63 68 61 6e 6e 65 6c 20 | for (|channel |
|00000f20| 3d 20 30 3b 20 63 68 61 | 6e 6e 65 6c 20 3c 20 4e |= 0; cha|nnel < N|
|00000f30| 55 4d 42 45 52 5f 54 52 | 41 43 4b 53 3b 20 63 68 |UMBER_TR|ACKS; ch|
|00000f40| 61 6e 6e 65 6c 2b 2b 29 | 0a 20 20 20 20 20 20 20 |annel++)|. |
|00000f50| 20 69 66 20 28 21 63 68 | 61 6e 5b 63 68 61 6e 6e | if (!ch|an[chann|
|00000f60| 65 6c 5d 2e 73 61 6d 70 | 2d 3e 73 74 61 72 74 29 |el].samp|->start)|
|00000f70| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 7b 0a 20 |. | {. |
|00000f80| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 21 | | if (!|
|00000f90| 65 72 72 6f 72 29 0a 20 | 20 20 20 20 20 20 20 20 |error). | |
|00000fa0| 20 20 20 20 20 20 20 65 | 72 72 6f 72 20 3d 20 53 | e|rror = S|
|00000fb0| 41 4d 50 4c 45 5f 46 41 | 55 4c 54 3b 0a 20 20 20 |AMPLE_FA|ULT;. |
|00000fc0| 20 20 20 20 20 20 20 20 | 20 63 68 61 6e 5b 63 68 | | chan[ch|
|00000fd0| 61 6e 6e 65 6c 5d 2e 6d | 6f 64 65 20 3d 20 44 4f |annel].m|ode = DO|
|00000fe0| 5f 4e 4f 54 48 49 4e 47 | 3b 0a 20 20 20 20 20 20 |_NOTHING|;. |
|00000ff0| 20 20 20 20 20 20 7d 0a | 20 20 20 20 20 20 20 20 | }.| |
|00001000| 20 20 20 20 0a 20 20 20 | 20 20 20 20 20 2f 2a 20 | . | /* |
|00001010| 64 6f 20 74 68 65 20 72 | 65 73 61 6d 70 6c 69 6e |do the r|esamplin|
|00001020| 67 2c 20 69 2e 65 2e 2c | 20 61 63 74 75 61 6c 6c |g, i.e.,| actuall|
|00001030| 79 20 70 6c 61 79 20 73 | 6f 75 6e 64 73 20 2a 2f |y play s|ounds */|
|00001040| 0a 20 20 20 20 66 6f 72 | 20 28 69 20 3d 20 30 3b |. for| (i = 0;|
|00001050| 20 69 20 3c 20 6e 75 6d | 62 65 72 3b 20 69 2b 2b | i < num|ber; i++|
|00001060| 29 20 0a 20 20 20 20 20 | 20 20 20 7b 0a 20 20 20 |) . | {. |
|00001070| 20 20 20 20 20 66 6f 72 | 20 28 63 68 61 6e 6e 65 | for| (channe|
|00001080| 6c 20 3d 20 30 3b 20 63 | 68 61 6e 6e 65 6c 20 3c |l = 0; c|hannel <|
|00001090| 20 4e 55 4d 42 45 52 5f | 54 52 41 43 4b 53 3b 20 | NUMBER_|TRACKS; |
|000010a0| 63 68 61 6e 6e 65 6c 2b | 2b 29 0a 20 20 20 20 20 |channel+|+). |
|000010b0| 20 20 20 20 20 20 20 7b | 0a 20 20 20 20 20 20 20 | {|. |
|000010c0| 20 20 20 20 20 62 79 74 | 65 5b 63 68 61 6e 6e 65 | byt|e[channe|
|000010d0| 6c 5d 20 3d 20 30 3b 0a | 20 20 20 20 20 20 20 20 |l] = 0;.| |
|000010e0| 20 20 20 20 66 6f 72 20 | 28 73 61 6d 70 6c 69 6e | for |(samplin|
|000010f0| 67 20 3d 20 30 3b 20 73 | 61 6d 70 6c 69 6e 67 20 |g = 0; s|ampling |
|00001100| 3c 20 6f 76 65 72 73 61 | 6d 70 6c 65 3b 20 73 61 |< oversa|mple; sa|
|00001110| 6d 70 6c 69 6e 67 2b 2b | 29 0a 20 20 20 20 20 20 |mpling++|). |
|00001120| 20 20 20 20 20 20 20 20 | 20 20 7b 0a 20 20 20 20 | | {. |
|00001130| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 68 20 3d | | ch =|
|00001140| 20 63 68 61 6e 20 2b 20 | 63 68 61 6e 6e 65 6c 3b | chan + |channel;|
|00001150| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00001160| 20 73 77 69 74 63 68 28 | 63 68 2d 3e 6d 6f 64 65 | switch(|ch->mode|
|00001170| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|00001180| 20 20 20 20 20 20 7b 0a | 20 20 20 20 20 20 20 20 | {.| |
|00001190| 20 20 20 20 20 20 20 20 | 63 61 73 65 20 44 4f 5f | |case DO_|
|000011a0| 4e 4f 54 48 49 4e 47 3a | 0a 20 20 20 20 20 20 20 |NOTHING:|. |
|000011b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|000011c0| 61 6b 3b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ak;. | |
|000011d0| 20 20 20 20 63 61 73 65 | 20 50 4c 41 59 3a 0a 20 | case| PLAY:. |
|000011e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000011f0| 20 20 20 20 20 20 20 2f | 2a 20 73 6d 61 6c 6c 20 | /|* small |
|00001200| 6c 69 61 62 69 6c 69 74 | 79 3a 20 74 68 65 20 73 |liabilit|y: the s|
|00001210| 61 6d 70 6c 65 20 6d 61 | 79 20 68 61 76 65 0a 20 |ample ma|y have. |
|00001220| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001230| 20 20 20 20 20 20 20 20 | 2a 20 63 68 61 6e 67 65 | |* change|
|00001240| 64 2c 20 61 6e 64 20 77 | 65 20 6d 61 79 20 62 65 |d, and w|e may be|
|00001250| 20 6f 75 74 20 6f 66 20 | 72 61 6e 67 65 2e 0a 20 | out of |range.. |
|00001260| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001270| 20 20 20 20 20 20 20 20 | 2a 20 48 6f 77 65 76 65 | |* Howeve|
|00001280| 72 2c 20 74 68 69 73 20 | 72 6f 75 74 69 6e 65 20 |r, this |routine |
|00001290| 69 73 20 74 69 6d 65 2d | 63 72 69 74 69 63 61 6c |is time-|critical|
|000012a0| 2c 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,. | |
|000012b0| 20 20 20 20 20 20 20 20 | 20 20 20 2a 20 73 6f 20 | | * so |
|000012c0| 77 65 20 64 6f 6e 27 74 | 20 63 68 65 63 6b 20 66 |we don't| check f|
|000012d0| 6f 72 20 74 68 69 73 20 | 76 65 72 79 20 72 61 72 |or this |very rar|
|000012e0| 65 20 63 61 73 65 2e 0a | 20 20 20 20 20 20 20 20 |e case..| |
|000012f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001300| 20 2a 2f 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | */. | |
|00001310| 20 20 20 20 20 20 20 20 | 73 61 6d 70 6c 65 20 3d | |sample =|
|00001320| 20 63 68 2d 3e 73 61 6d | 70 2d 3e 73 74 61 72 74 | ch->sam|p->start|
|00001330| 5b 43 5d 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |[C];. | |
|00001340| 20 20 20 20 20 20 20 20 | 20 62 79 74 65 5b 63 68 | | byte[ch|
|00001350| 61 6e 6e 65 6c 5d 20 2b | 3d 20 73 61 6d 70 6c 65 |annel] +|= sample|
|00001360| 20 2a 20 63 68 2d 3e 76 | 6f 6c 75 6d 65 3b 0a 20 | * ch->v|olume;. |
|00001370| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001380| 20 20 20 63 68 2d 3e 70 | 6f 69 6e 74 65 72 20 2b | ch->p|ointer +|
|00001390| 3d 20 63 68 2d 3e 73 74 | 65 70 3b 0a 20 20 20 20 |= ch->st|ep;. |
|000013a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000013b0| 69 66 20 28 43 20 3e 3d | 20 63 68 2d 3e 73 61 6d |if (C >=| ch->sam|
|000013c0| 70 2d 3e 6c 65 6e 67 74 | 68 29 0a 20 20 20 20 20 |p->lengt|h). |
|000013d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000013e0| 20 20 20 7b 0a 20 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|000013f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001400| 20 2f 2a 20 69 73 20 74 | 68 65 72 65 20 61 20 72 | /* is t|here a r|
|00001410| 65 70 6c 61 79 20 3f 20 | 2a 2f 0a 20 20 20 20 20 |eplay ? |*/. |
|00001420| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001430| 20 20 20 69 66 20 28 63 | 68 2d 3e 73 61 6d 70 2d | if (c|h->samp-|
|00001440| 3e 72 70 5f 73 74 61 72 | 74 29 20 0a 20 20 20 20 |>rp_star|t) . |
|00001450| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001460| 20 20 20 20 20 20 20 20 | 7b 0a 20 20 20 20 20 20 | |{. |
|00001470| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001480| 20 20 20 20 20 20 63 68 | 2d 3e 6d 6f 64 65 20 3d | ch|->mode =|
|00001490| 20 52 45 50 4c 41 59 3b | 0a 20 20 20 20 20 20 20 | REPLAY;|. |
|000014a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000014b0| 20 20 20 20 20 63 68 2d | 3e 70 6f 69 6e 74 65 72 | ch-|>pointer|
|000014c0| 20 2d 3d 20 69 6e 74 5f | 74 6f 5f 66 69 78 28 63 | -= int_|to_fix(c|
|000014d0| 68 2d 3e 73 61 6d 70 2d | 3e 6c 65 6e 67 74 68 29 |h->samp-|>length)|
|000014e0| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;. | |
|000014f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0a | | }.|
|00001500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001510| 20 20 20 20 20 20 20 20 | 65 6c 73 65 0a 20 20 20 | |else. |
|00001520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001530| 20 20 20 20 20 20 20 20 | 20 63 68 2d 3e 6d 6f 64 | | ch->mod|
|00001540| 65 20 3d 20 44 4f 5f 4e | 4f 54 48 49 4e 47 3b 0a |e = DO_N|OTHING;.|
|00001550| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001560| 20 20 20 20 20 20 20 20 | 7d 0a 20 20 20 20 20 20 | |}. |
|00001570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 62 72 | | br|
|00001580| 65 61 6b 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |eak;. | |
|00001590| 20 20 20 20 20 63 61 73 | 65 20 52 45 50 4c 41 59 | cas|e REPLAY|
|000015a0| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |:. | |
|000015b0| 20 20 20 20 20 20 20 20 | 20 20 2f 2a 20 73 6d 61 | | /* sma|
|000015c0| 6c 6c 20 6c 69 61 62 69 | 6c 69 74 79 3a 20 74 68 |ll liabi|lity: th|
|000015d0| 65 20 73 61 6d 70 6c 65 | 20 6d 61 79 20 68 61 76 |e sample| may hav|
|000015e0| 65 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |e. | |
|000015f0| 20 20 20 20 20 20 20 20 | 20 20 20 2a 20 63 68 61 | | * cha|
|00001600| 6e 67 65 64 2c 20 61 6e | 64 20 77 65 20 6d 61 79 |nged, an|d we may|
|00001610| 20 62 65 20 6f 75 74 20 | 6f 66 20 72 61 6e 67 65 | be out |of range|
|00001620| 2e 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.. | |
|00001630| 20 20 20 20 20 20 20 20 | 20 20 20 2a 20 48 6f 77 | | * How|
|00001640| 65 76 65 72 2c 20 74 68 | 69 73 20 72 6f 75 74 69 |ever, th|is routi|
|00001650| 6e 65 20 69 73 20 74 69 | 6d 65 2d 63 72 69 74 69 |ne is ti|me-criti|
|00001660| 63 61 6c 2c 0a 20 20 20 | 20 20 20 20 20 20 20 20 |cal,. | |
|00001670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2a 20 | | * |
|00001680| 73 6f 20 77 65 20 64 6f | 6e 27 74 20 63 68 65 63 |so we do|n't chec|
|00001690| 6b 20 66 6f 72 20 74 68 | 69 73 20 76 65 72 79 20 |k for th|is very |
|000016a0| 72 61 72 65 20 63 61 73 | 65 2e 0a 20 20 20 20 20 |rare cas|e.. |
|000016b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000016c0| 20 20 20 20 2a 2f 0a 20 | 20 20 20 20 20 20 20 20 | */. | |
|000016d0| 20 20 20 20 20 20 20 20 | 20 20 20 73 61 6d 70 6c | | sampl|
|000016e0| 65 20 3d 20 63 68 2d 3e | 73 61 6d 70 2d 3e 72 70 |e = ch->|samp->rp|
|000016f0| 5f 73 74 61 72 74 5b 43 | 5d 3b 0a 20 20 20 20 20 |_start[C|];. |
|00001700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 62 | | b|
|00001710| 79 74 65 5b 63 68 61 6e | 6e 65 6c 5d 20 2b 3d 20 |yte[chan|nel] += |
|00001720| 73 61 6d 70 6c 65 20 2a | 20 63 68 2d 3e 76 6f 6c |sample *| ch->vol|
|00001730| 75 6d 65 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |ume;. | |
|00001740| 20 20 20 20 20 20 20 20 | 20 63 68 2d 3e 70 6f 69 | | ch->poi|
|00001750| 6e 74 65 72 20 2b 3d 20 | 63 68 2d 3e 73 74 65 70 |nter += |ch->step|
|00001760| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;. | |
|00001770| 20 20 20 20 20 20 69 66 | 20 28 43 20 3e 3d 20 63 | if| (C >= c|
|00001780| 68 2d 3e 73 61 6d 70 2d | 3e 72 70 5f 6c 65 6e 67 |h->samp-|>rp_leng|
|00001790| 74 68 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |th). | |
|000017a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 68 2d 3e | | ch->|
|000017b0| 70 6f 69 6e 74 65 72 20 | 2d 3d 20 69 6e 74 5f 74 |pointer |-= int_t|
|000017c0| 6f 5f 66 69 78 28 63 68 | 2d 3e 73 61 6d 70 2d 3e |o_fix(ch|->samp->|
|000017d0| 72 70 5f 6c 65 6e 67 74 | 68 29 3b 0a 20 20 20 20 |rp_lengt|h);. |
|000017e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000017f0| 62 72 65 61 6b 3b 0a 20 | 20 20 20 20 20 20 20 20 |break;. | |
|00001800| 20 20 20 20 20 20 20 20 | 20 20 20 7d 0a 0a 20 20 | | }.. |
|00001810| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 20 | | } |
|00001820| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 0a 20 |. | }. |
|00001830| 20 20 20 20 20 20 20 6f | 75 74 70 75 74 5f 73 61 | o|utput_sa|
|00001840| 6d 70 6c 65 73 28 28 62 | 79 74 65 5b 30 5d 2b 62 |mples((b|yte[0]+b|
|00001850| 79 74 65 5b 33 5d 29 2f | 6f 76 65 72 73 61 6d 70 |yte[3])/|oversamp|
|00001860| 6c 65 2c 20 0a 20 20 20 | 20 20 20 20 20 20 20 20 |le, . | |
|00001870| 20 28 62 79 74 65 5b 31 | 5d 2b 62 79 74 65 5b 32 | (byte[1|]+byte[2|
|00001880| 5d 29 2f 6f 76 65 72 73 | 61 6d 70 6c 65 29 3b 0a |])/overs|ample);.|
|00001890| 20 20 20 20 20 20 20 20 | 7d 20 20 20 0a 0a 0a 20 | |} ... |
|000018a0| 20 20 20 66 6c 75 73 68 | 5f 62 75 66 66 65 72 28 | flush|_buffer(|
|000018b0| 29 3b 0a 20 20 20 20 7d | 0a 0a 0a 2f 2a 20 73 65 |);. }|.../* se|
|000018c0| 74 74 69 6e 67 20 75 70 | 20 61 20 67 69 76 65 6e |tting up| a given|
|000018d0| 20 6e 6f 74 65 20 2a 2f | 0a 0a 76 6f 69 64 20 72 | note */|..void r|
|000018e0| 65 73 65 74 5f 6e 6f 74 | 65 28 63 68 2c 20 6e 6f |eset_not|e(ch, no|
|000018f0| 74 65 2c 20 70 69 74 63 | 68 29 0a 73 74 72 75 63 |te, pitc|h).struc|
|00001900| 74 20 63 68 61 6e 6e 65 | 6c 20 2a 63 68 3b 0a 69 |t channe|l *ch;.i|
|00001910| 6e 74 20 6e 6f 74 65 3b | 0a 20 20 20 20 7b 0a 20 |nt note;|. {. |
|00001920| 20 20 20 63 68 2d 3e 70 | 6f 69 6e 74 65 72 20 3d | ch->p|ointer =|
|00001930| 20 30 3b 0a 20 20 20 20 | 63 68 2d 3e 6d 6f 64 65 | 0;. |ch->mode|
|00001940| 20 3d 20 50 4c 41 59 3b | 0a 20 20 20 20 63 68 2d | = PLAY;|. ch-|
|00001950| 3e 70 69 74 63 68 20 3d | 20 70 69 74 63 68 3b 0a |>pitch =| pitch;.|
|00001960| 20 20 20 20 63 68 2d 3e | 73 74 65 70 20 3d 20 73 | ch->|step = s|
|00001970| 74 65 70 5f 74 61 62 6c | 65 5b 70 69 74 63 68 5d |tep_tabl|e[pitch]|
|00001980| 3b 0a 20 20 20 20 63 68 | 2d 3e 6e 6f 74 65 20 3d |;. ch|->note =|
|00001990| 20 6e 6f 74 65 3b 0a 20 | 20 20 20 63 68 2d 3e 76 | note;. | ch->v|
|000019a0| 69 62 6f 66 66 73 65 74 | 20 3d 20 30 3b 0a 20 20 |iboffset| = 0;. |
|000019b0| 20 20 7d 0a 0a 2f 2a 20 | 63 68 61 6e 67 69 6e 67 | }../* |changing|
|000019c0| 20 74 68 65 20 63 75 72 | 72 65 6e 74 20 70 69 74 | the cur|rent pit|
|000019d0| 63 68 20 28 76 61 6c 75 | 65 0a 20 2a 20 6d 61 79 |ch (valu|e. * may|
|000019e0| 20 62 65 20 74 65 6d 70 | 6f 72 61 72 79 2c 20 61 | be temp|orary, a|
|000019f0| 6e 64 20 6e 6f 74 20 73 | 74 6f 72 65 64 0a 20 2a |nd not s|tored. *|
|00001a00| 20 69 6e 20 63 68 61 6e | 6e 65 6c 20 70 69 74 63 | in chan|nel pitc|
|00001a10| 68 2c 20 66 6f 72 20 69 | 6e 73 74 61 6e 63 65 20 |h, for i|nstance |
|00001a20| 76 69 62 72 61 74 6f 73 | 2e 0a 20 2a 2f 0a 76 6f |vibratos|.. */.vo|
|00001a30| 69 64 20 73 65 74 5f 63 | 75 72 72 65 6e 74 5f 70 |id set_c|urrent_p|
|00001a40| 69 74 63 68 28 63 68 2c | 20 70 69 74 63 68 29 0a |itch(ch,| pitch).|
|00001a50| 73 74 72 75 63 74 20 63 | 68 61 6e 6e 65 6c 20 2a |struct c|hannel *|
|00001a60| 63 68 3b 0a 69 6e 74 20 | 70 69 74 63 68 3b 0a 20 |ch;.int |pitch;. |
|00001a70| 20 20 20 7b 0a 20 20 20 | 20 63 68 2d 3e 73 74 65 | {. | ch->ste|
|00001a80| 70 20 3d 20 73 74 65 70 | 5f 74 61 62 6c 65 5b 70 |p = step|_table[p|
|00001a90| 69 74 63 68 5d 3b 0a 20 | 20 20 20 7d 0a 0a 20 20 |itch];. | }.. |
|00001aa0| 7d 0a 0a 23 64 65 66 69 | 6e 65 20 43 20 66 69 78 |}..#defi|ne C fix|
|00001ab0| 5f 74 6f 5f 69 6e 74 28 | 63 68 2d 3e 70 6f 69 6e |_to_int(|ch->poin|
|00001ac0| 74 65 72 29 0a 0a 2f 2a | 20 54 68 65 20 70 6c 61 |ter)../*| The pla|
|00001ad0| 79 69 6e 67 20 6d 65 63 | 68 61 6e 69 73 6d 20 69 |ying mec|hanism i|
|00001ae0| 74 73 65 6c 66 2e 0a 20 | 2a 20 41 63 63 6f 72 64 |tself.. |* Accord|
|00001af0| 69 6e 67 20 74 6f 20 74 | 68 65 20 63 75 72 72 65 |ing to t|he curre|
|00001b00| 6e 74 20 63 68 61 6e 6e | 65 6c 20 61 75 74 6f 6d |nt chann|el autom|
|00001b10| 61 74 61 2c 0a 20 2a 20 | 77 65 20 72 65 73 61 6d |ata,. * |we resam|
|00001b20| 70 6c 65 20 74 68 65 20 | 69 6e 73 74 72 75 6d 65 |ple the |instrume|
|00001b30| 6e 74 73 20 69 6e 20 72 | 65 61 6c 20 74 69 6d 65 |nts in r|eal time|
|00001b40| 20 74 6f 0a 20 2a 20 67 | 65 6e 65 72 61 74 65 20 | to. * g|enerate |
|00001b50| 6f 75 74 70 75 74 2e 0a | 20 2a 2f 0a 0a 76 6f 69 |output..| */..voi|
|00001b60| 64 20 72 65 73 61 6d 70 | 6c 65 28 63 68 61 6e 2c |d resamp|le(chan,|
|00001b70| 20 6f 76 65 72 73 61 6d | 70 6c 65 2c 20 6e 75 6d | oversam|ple, num|
|00001b80| 62 65 72 29 0a 73 74 72 | 75 63 74 20 63 68 61 6e |ber).str|uct chan|
|00001b90| 6e 65 6c 20 2a 63 68 61 | 6e 3b 0a 69 6e 74 20 6f |nel *cha|n;.int o|
|00001ba0| 76 65 72 73 61 6d 70 6c | 65 3b 0a 69 6e 74 20 6e |versampl|e;.int n|
|00001bb0| 75 6d 62 65 72 3b 0a 20 | 20 20 20 7b 0a 20 20 20 |umber;. | {. |
|00001bc0| 20 69 6e 74 20 69 3b 20 | 20 20 20 20 20 20 20 20 | int i; | |
|00001bd0| 20 2f 2a 20 73 61 6d 70 | 6c 65 20 63 6f 75 6e 74 | /* samp|le count|
|00001be0| 65 72 20 2a 2f 0a 20 20 | 20 20 69 6e 74 20 63 68 |er */. | int ch|
|00001bf0| 61 6e 6e 65 6c 3b 20 20 | 20 20 2f 2a 20 63 68 61 |annel; | /* cha|
|00001c00| 61 75 74 6f 6d 61 74 6f | 6e 2e 63 00 00 00 00 00 |automato|n.c.....|
|00001c10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001c20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001c30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001c40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001c50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001c60| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00001c70| 35 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |55 . 1|44 . |
|00001c80| 20 20 20 37 34 36 37 20 | 20 35 31 31 37 31 36 30 | 7467 | 5117160|
|00001c90| 31 33 36 20 20 20 36 33 | 34 33 00 20 00 00 00 00 |136 63|43. ....|
|00001ca0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001cb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001cc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001cd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ce0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001cf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d00| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001d90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001da0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001db0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001dc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001dd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e00| 2f 2a 20 61 75 74 6f 6d | 61 74 6f 6e 2e 63 20 2a |/* autom|aton.c *|
|00001e10| 2f 0a 0a 2f 2a 20 24 41 | 75 74 68 6f 72 3a 20 65 |/../* $A|uthor: e|
|00001e20| 73 70 69 65 20 24 0a 20 | 2a 20 24 49 64 3a 20 61 |spie $. |* $Id: a|
|00001e30| 75 74 6f 6d 61 74 6f 6e | 2e 63 2c 76 20 32 2e 35 |utomaton|.c,v 2.5|
|00001e40| 20 31 39 39 31 2f 31 31 | 2f 32 30 20 32 30 3a 34 | 1991/11|/20 20:4|
|00001e50| 36 3a 33 35 20 65 73 70 | 69 65 20 45 78 70 20 65 |6:35 esp|ie Exp e|
|00001e60| 73 70 69 65 20 24 0a 20 | 2a 20 24 52 65 76 69 73 |spie $. |* $Revis|
|00001e70| 69 6f 6e 3a 20 32 2e 35 | 20 24 0a 20 2a 20 24 4c |ion: 2.5| $. * $L|
|00001e80| 6f 67 3a 20 61 75 74 6f | 6d 61 74 6f 6e 2e 63 2c |og: auto|maton.c,|
|00001e90| 76 20 24 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |v $. * R|evision |
|00001ea0| 32 2e 35 20 20 31 39 39 | 31 2f 31 31 2f 32 30 20 |2.5 199|1/11/20 |
|00001eb0| 20 32 30 3a 34 36 3a 33 | 35 20 20 65 73 70 69 65 | 20:46:3|5 espie|
|00001ec0| 0a 20 2a 20 4d 69 6e 6f | 72 20 63 6f 72 72 65 63 |. * Mino|r correc|
|00001ed0| 74 69 6f 6e 2e 0a 20 2a | 0a 20 2a 20 52 65 76 69 |tion.. *|. * Revi|
|00001ee0| 73 69 6f 6e 20 32 2e 34 | 20 20 31 39 39 31 2f 31 |sion 2.4| 1991/1|
|00001ef0| 31 2f 31 39 20 20 31 36 | 3a 30 37 3a 31 39 20 20 |1/19 16|:07:19 |
|00001f00| 65 73 70 69 65 0a 20 2a | 20 41 64 64 65 64 20 63 |espie. *| Added c|
|00001f10| 6f 6d 6d 65 6e 74 73 2c | 20 6d 6f 76 65 64 20 6d |omments,| moved m|
|00001f20| 69 6e 6f 72 20 73 74 75 | 66 66 20 61 72 6f 75 6e |inor stu|ff aroun|
|00001f30| 64 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |d.. *. *| Revisio|
|00001f40| 6e 20 32 2e 33 20 20 31 | 39 39 31 2f 31 31 2f 31 |n 2.3 1|991/11/1|
|00001f50| 38 20 20 30 31 3a 32 33 | 3a 33 30 20 20 65 73 70 |8 01:23|:30 esp|
|00001f60| 69 65 0a 20 2a 20 41 64 | 64 65 64 20 74 77 6f 20 |ie. * Ad|ded two |
|00001f70| 6c 65 76 65 6c 20 6f 66 | 20 66 61 75 6c 74 20 74 |level of| fault t|
|00001f80| 6f 6c 65 72 61 6e 63 79 | 2e 0a 20 2a 0a 20 2a 20 |olerancy|.. *. * |
|00001f90| 52 65 76 69 73 69 6f 6e | 20 32 2e 32 20 20 31 39 |Revision| 2.2 19|
|00001fa0| 39 31 2f 31 31 2f 31 38 | 20 20 30 31 3a 31 32 3a |91/11/18| 01:12:|
|00001fb0| 33 31 20 20 65 73 70 69 | 65 0a 20 2a 20 4d 69 6e |31 espi|e. * Min|
|00001fc0| 6f 72 20 63 68 61 6e 67 | 65 73 2e 0a 20 2a 0a 20 |or chang|es.. *. |
|00001fd0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 32 2e 31 20 20 |* Revisi|on 2.1 |
|00001fe0| 31 39 39 31 2f 31 31 2f | 31 37 20 20 32 33 3a 30 |1991/11/|17 23:0|
|00001ff0| 37 3a 35 38 20 20 65 73 | 70 69 65 0a 20 2a 20 43 |7:58 es|pie. * C|
|00002000| 6f 6d 69 6e 67 20 66 72 | 6f 6d 20 73 74 72 33 32 |oming fr|om str32|
|00002010| 2e 0a 20 2a 0a 20 2a 0a | 20 2a 2f 0a 20 20 20 20 |.. *. *.| */. |
|00002020| 20 0a 73 74 61 74 69 63 | 20 63 68 61 72 20 2a 69 | .static| char *i|
|00002030| 64 20 3d 20 22 24 49 64 | 3a 20 61 75 74 6f 6d 61 |d = "$Id|: automa|
|00002040| 74 6f 6e 2e 63 2c 76 20 | 32 2e 35 20 31 39 39 31 |ton.c,v |2.5 1991|
|00002050| 2f 31 31 2f 32 30 20 32 | 30 3a 34 36 3a 33 35 20 |/11/20 2|0:46:35 |
|00002060| 65 73 70 69 65 20 45 78 | 70 20 65 73 70 69 65 20 |espie Ex|p espie |
|00002070| 24 22 3b 0a 0a 23 69 6e | 63 6c 75 64 65 20 3c 73 |$";..#in|clude <s|
|00002080| 74 64 69 6f 2e 68 3e 0a | 23 69 6e 63 6c 75 64 65 |tdio.h>.|#include|
|00002090| 20 3c 73 74 64 6c 69 62 | 2e 68 3e 0a 23 69 6e 63 | <stdlib|.h>.#inc|
|000020a0| 6c 75 64 65 20 3c 73 74 | 72 69 6e 67 2e 68 3e 0a |lude <st|ring.h>.|
|000020b0| 20 20 20 20 20 0a 23 69 | 6e 63 6c 75 64 65 20 22 | .#i|nclude "|
|000020c0| 65 78 74 65 72 6e 2e 68 | 22 0a 23 69 6e 63 6c 75 |extern.h|".#inclu|
|000020d0| 64 65 20 22 6d 61 63 68 | 69 6e 65 2e 68 22 0a 23 |de "mach|ine.h".#|
|000020e0| 69 6e 63 6c 75 64 65 20 | 22 73 6f 6e 67 2e 68 22 |include |"song.h"|
|000020f0| 0a 23 69 6e 63 6c 75 64 | 65 20 22 63 68 61 6e 6e |.#includ|e "chann|
|00002100| 65 6c 2e 68 22 0a 20 20 | 20 20 20 0a 20 20 20 20 |el.h". | . |
|00002110| 20 0a 2f 2a 20 75 70 64 | 61 74 65 73 20 74 68 65 | ./* upd|ates the|
|00002120| 20 70 61 74 74 65 72 6e | 20 74 6f 20 70 6c 61 79 | pattern| to play|
|00002130| 20 69 6e 20 74 68 65 20 | 61 75 74 6f 6d 61 74 6f | in the |automato|
|00002140| 6e 2e 0a 20 2a 20 43 68 | 65 63 6b 73 20 74 68 61 |n.. * Ch|ecks tha|
|00002150| 74 20 74 68 65 20 70 61 | 74 74 65 72 6e 20 61 63 |t the pa|ttern ac|
|00002160| 74 75 61 6c 6c 79 20 65 | 78 69 73 74 73 2e 0a 20 |tually e|xists.. |
|00002170| 2a 2f 0a 76 6f 69 64 20 | 73 65 74 5f 70 61 74 74 |*/.void |set_patt|
|00002180| 65 72 6e 28 61 29 0a 73 | 74 72 75 63 74 20 61 75 |ern(a).s|truct au|
|00002190| 74 6f 6d 61 74 6f 6e 20 | 2a 61 3b 0a 20 20 20 20 |tomaton |*a;. |
|000021a0| 7b 0a 20 20 20 20 69 6e | 74 20 70 3b 0a 20 20 20 |{. in|t p;. |
|000021b0| 20 69 66 20 28 61 2d 3e | 70 61 74 74 65 72 6e 5f | if (a->|pattern_|
|000021c0| 6e 75 6d 20 3e 3d 20 61 | 2d 3e 69 6e 66 6f 2d 3e |num >= a|->info->|
|000021d0| 6c 65 6e 67 74 68 29 0a | 20 20 20 20 20 20 20 20 |length).| |
|000021e0| 7b 0a 20 20 20 20 20 20 | 20 20 65 72 72 6f 72 20 |{. | error |
|000021f0| 3d 20 55 4e 52 45 43 4f | 56 45 52 41 42 4c 45 3b |= UNRECO|VERABLE;|
|00002200| 0a 20 20 20 20 20 20 20 | 20 72 65 74 75 72 6e 3b |. | return;|
|00002210| 0a 20 20 20 20 20 20 20 | 20 7d 0a 0a 20 20 20 20 |. | }.. |
|00002220| 20 20 20 20 2f 2a 20 74 | 68 65 72 65 20 69 73 20 | /* t|here is |
|00002230| 61 20 6c 65 76 65 6c 20 | 6f 66 20 69 6e 64 69 72 |a level |of indir|
|00002240| 65 63 74 69 6f 6e 20 69 | 6e 20 74 68 65 20 66 6f |ection i|n the fo|
|00002250| 72 6d 61 74 2c 0a 20 20 | 20 20 20 20 20 20 20 2a |rmat,. | *|
|00002260| 20 69 2e 65 2e 2c 20 70 | 61 74 74 65 72 6e 73 20 | i.e., p|atterns |
|00002270| 63 61 6e 20 62 65 20 72 | 65 70 65 61 74 65 64 2e |can be r|epeated.|
|00002280| 0a 20 20 20 20 20 20 20 | 20 20 2a 2f 0a 20 20 20 |. | */. |
|00002290| 20 70 20 3d 20 61 2d 3e | 69 6e 66 6f 2d 3e 70 61 | p = a->|info->pa|
|000022a0| 74 6e 75 6d 62 65 72 5b | 61 2d 3e 70 61 74 74 65 |tnumber[|a->patte|
|000022b0| 72 6e 5f 6e 75 6d 5d 3b | 0a 20 20 20 20 69 66 20 |rn_num];|. if |
|000022c0| 28 70 20 3e 3d 20 61 2d | 3e 69 6e 66 6f 2d 3e 6d |(p >= a-|>info->m|
|000022d0| 61 78 70 61 74 29 0a 20 | 20 20 20 20 20 20 20 7b |axpat). | {|
|000022e0| 0a 20 20 20 20 20 20 20 | 20 65 72 72 6f 72 20 3d |. | error =|
|000022f0| 20 55 4e 52 45 43 4f 56 | 45 52 41 42 4c 45 3b 0a | UNRECOV|ERABLE;.|
|00002300| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 3b 0a | |return;.|
|00002310| 20 20 20 20 20 20 20 20 | 7d 0a 20 20 20 20 61 2d | |}. a-|
|00002320| 3e 70 61 74 74 65 72 6e | 20 3d 20 61 2d 3e 69 6e |>pattern| = a->in|
|00002330| 66 6f 2d 3e 70 62 6c 6f | 63 6b 73 20 2b 20 70 3b |fo->pblo|cks + p;|
|00002340| 0a 20 20 20 20 7d 0a 0a | 2f 2a 20 69 6e 69 74 69 |. }..|/* initi|
|00002350| 61 6c 69 7a 65 20 61 6c | 6c 20 74 68 65 20 66 69 |alize al|l the fi|
|00002360| 65 6c 64 73 20 6f 66 20 | 74 68 65 20 61 75 74 6f |elds of |the auto|
|00002370| 6d 61 74 6f 6e 20 6e 65 | 63 65 73 73 61 72 79 0a |maton ne|cessary.|
|00002380| 20 2a 20 74 6f 20 70 6c | 61 79 20 61 20 67 69 76 | * to pl|ay a giv|
|00002390| 65 6e 20 73 6f 6e 67 2e | 0a 20 2a 2f 0a 0a 76 6f |en song.|. */..vo|
|000023a0| 69 64 20 69 6e 69 74 5f | 61 75 74 6f 6d 61 74 6f |id init_|automato|
|000023b0| 6e 28 61 2c 20 73 6f 6e | 67 29 0a 73 74 72 75 63 |n(a, son|g).struc|
|000023c0| 74 20 61 75 74 6f 6d 61 | 74 6f 6e 20 2a 61 3b 0a |t automa|ton *a;.|
|000023d0| 73 74 72 75 63 74 20 73 | 6f 6e 67 20 2a 73 6f 6e |struct s|ong *son|
|000023e0| 67 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 61 2d 3e |g;. {|. a->|
|000023f0| 69 6e 66 6f 20 3d 20 73 | 6f 6e 67 2d 3e 69 6e 66 |info = s|ong->inf|
|00002400| 6f 3b 0a 20 20 20 20 61 | 2d 3e 70 61 74 74 65 72 |o;. a|->patter|
|00002410| 6e 5f 6e 75 6d 20 3d 20 | 30 3b 20 20 20 20 20 2f |n_num = |0; /|
|00002420| 2a 20 66 69 72 73 74 20 | 70 61 74 74 65 72 6e 20 |* first |pattern |
|00002430| 2a 2f 0a 20 20 20 20 61 | 2d 3e 6e 6f 74 65 5f 6e |*/. a|->note_n|
|00002440| 75 6d 20 3d 20 30 3b 20 | 20 20 20 20 20 20 20 2f |um = 0; | /|
|00002450| 2a 20 66 69 72 73 74 20 | 6e 6f 74 65 20 69 6e 20 |* first |note in |
|00002460| 70 61 74 74 65 72 6e 20 | 2a 2f 0a 20 20 20 20 61 |pattern |*/. a|
|00002470| 2d 3e 63 6f 75 6e 74 65 | 72 20 3d 20 30 3b 20 20 |->counte|r = 0; |
|00002480| 20 20 20 20 20 20 20 2f | 2a 20 63 6f 75 6e 74 65 | /|* counte|
|00002490| 72 20 66 6f 72 20 74 68 | 65 20 65 66 66 65 63 74 |r for th|e effect|
|000024a0| 20 74 65 6d 70 6f 20 2a | 2f 0a 20 20 20 20 61 2d | tempo *|/. a-|
|000024b0| 3e 73 70 65 65 64 20 3d | 20 4e 4f 52 4d 41 4c 5f |>speed =| NORMAL_|
|000024c0| 53 50 45 45 44 3b 2f 2a | 20 74 68 69 73 20 69 73 |SPEED;/*| this is|
|000024d0| 20 74 68 65 20 64 65 66 | 61 75 6c 74 20 65 66 66 | the def|ault eff|
|000024e0| 65 63 74 20 74 65 6d 70 | 6f 20 2a 2f 0a 20 20 20 |ect temp|o */. |
|000024f0| 20 61 2d 3e 66 69 6e 65 | 73 70 65 65 64 20 3d 20 | a->fine|speed = |
|00002500| 4e 4f 52 4d 41 4c 5f 46 | 49 4e 45 53 50 45 45 44 |NORMAL_F|INESPEED|
|00002510| 3b 20 20 20 20 0a 20 20 | 20 20 20 20 20 20 20 20 |; . | |
|00002520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002530| 20 20 2f 2a 20 74 68 69 | 73 20 69 73 20 74 68 65 | /* thi|s is the|
|00002540| 20 66 69 6e 65 20 73 70 | 65 65 64 20 28 31 30 30 | fine sp|eed (100|
|00002550| 25 29 20 20 20 20 2a 2f | 0a 20 20 20 20 61 2d 3e |%) */|. a->|
|00002560| 64 6f 5f 73 74 75 66 66 | 20 3d 20 44 4f 5f 4e 4f |do_stuff| = DO_NO|
|00002570| 54 48 49 4e 47 3b 20 20 | 20 0a 20 20 20 20 20 20 |THING; | . |
|00002580| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002590| 20 20 20 20 20 20 2f 2a | 20 73 6f 6d 65 20 65 66 | /*| some ef|
|000025a0| 66 65 63 74 73 20 61 66 | 66 65 63 74 20 74 68 65 |fects af|fect the|
|000025b0| 20 61 75 74 6f 6d 61 74 | 6f 6e 2c 0a 20 20 20 20 | automat|on,. |
|000025c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000025d0| 20 20 20 20 20 20 20 20 | 20 2a 20 77 65 20 6b 65 | | * we ke|
|000025e0| 65 70 20 74 68 65 6d 20 | 68 65 72 65 2e 0a 20 20 |ep them |here.. |
|000025f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002600| 20 20 20 20 20 20 20 20 | 20 20 20 2a 2f 0a 0a 20 | | */.. |
|00002610| 20 20 20 65 72 72 6f 72 | 20 3d 20 4e 4f 4e 45 3b | error| = NONE;|
|00002620| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 4d 61 | | /* Ma|
|00002630| 79 62 65 20 77 65 20 73 | 68 6f 75 6c 64 20 6e 6f |ybe we s|hould no|
|00002640| 74 20 72 65 73 65 74 20 | 65 72 72 6f 72 73 20 61 |t reset |errors a|
|00002650| 74 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |t. | |
|00002660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a | | *|
|00002670| 20 74 68 69 73 20 70 6f | 69 6e 74 2e 0a 20 20 20 | this po|int.. |
|00002680| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002690| 20 20 20 20 20 20 20 20 | 20 20 2a 2f 0a 20 20 20 | | */. |
|000026a0| 20 73 65 74 5f 70 61 74 | 74 65 72 6e 28 61 29 3b | set_pat|tern(a);|
|000026b0| 0a 20 20 20 20 7d 0a 0a | 2f 2a 20 47 65 74 73 20 |. }..|/* Gets |
|000026c0| 74 6f 20 74 68 65 20 6e | 65 78 74 20 70 61 74 74 |to the n|ext patt|
|000026d0| 65 72 6e 2c 20 61 6e 64 | 20 64 69 73 70 6c 61 79 |ern, and| display|
|000026e0| 73 20 73 74 75 66 66 20 | 2a 2f 0a 0a 76 6f 69 64 |s stuff |*/..void|
|000026f0| 20 61 64 76 61 6e 63 65 | 5f 70 61 74 74 65 72 6e | advance|_pattern|
|00002700| 28 61 29 0a 73 74 72 75 | 63 74 20 61 75 74 6f 6d |(a).stru|ct autom|
|00002710| 61 74 6f 6e 20 2a 61 3b | 0a 20 20 20 20 7b 0a 23 |aton *a;|. {.#|
|00002720| 69 66 64 65 66 20 53 48 | 4f 57 5f 53 45 51 0a 20 |ifdef SH|OW_SEQ. |
|00002730| 20 20 20 70 72 69 6e 74 | 66 28 22 5c 6e 22 29 3b | print|f("\n");|
|00002740| 0a 23 65 6e 64 69 66 0a | 20 20 20 20 70 72 69 6e |.#endif.| prin|
|00002750| 74 66 28 22 25 33 64 22 | 2c 20 61 2d 3e 70 61 74 |tf("%3d"|, a->pat|
|00002760| 74 65 72 6e 5f 6e 75 6d | 29 3b 0a 20 20 20 20 66 |tern_num|);. f|
|00002770| 66 6c 75 73 68 28 73 74 | 64 6f 75 74 29 3b 0a 23 |flush(st|dout);.#|
|00002780| 69 66 64 65 66 20 53 48 | 4f 57 5f 53 45 51 0a 20 |ifdef SH|OW_SEQ. |
|00002790| 20 20 20 70 72 69 6e 74 | 66 28 22 5c 6e 22 29 3b | print|f("\n");|
|000027a0| 0a 23 65 6e 64 69 66 0a | 20 20 20 20 69 66 20 28 |.#endif.| if (|
|000027b0| 2b 2b 61 2d 3e 70 61 74 | 74 65 72 6e 5f 6e 75 6d |++a->pat|tern_num|
|000027c0| 20 3e 3d 20 61 2d 3e 69 | 6e 66 6f 2d 3e 6c 65 6e | >= a->i|nfo->len|
|000027d0| 67 74 68 29 0a 20 20 20 | 20 20 20 20 20 7b 0a 20 |gth). | {. |
|000027e0| 20 20 20 20 20 20 20 61 | 2d 3e 70 61 74 74 65 72 | a|->patter|
|000027f0| 6e 5f 6e 75 6d 20 3d 20 | 30 3b 0a 20 20 20 20 20 |n_num = |0;. |
|00002800| 20 20 20 65 72 72 6f 72 | 20 3d 20 45 4e 44 45 44 | error| = ENDED|
|00002810| 3b 0a 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 |;. | }. |
|00002820| 73 65 74 5f 70 61 74 74 | 65 72 6e 28 61 29 3b 0a |set_patt|ern(a);.|
|00002830| 20 20 20 20 61 2d 3e 6e | 6f 74 65 5f 6e 75 6d 20 | a->n|ote_num |
|00002840| 3d 20 30 3b 0a 20 20 20 | 20 7d 0a 0a 20 20 20 20 |= 0;. | }.. |
|00002850| 20 20 20 20 0a 0a 2f 2a | 20 70 72 6f 63 65 73 73 | ../*| process|
|00002860| 20 61 6c 6c 20 74 68 65 | 20 73 74 75 66 66 20 77 | all the| stuff w|
|00002870| 68 69 63 68 20 77 65 20 | 6e 65 65 64 20 74 6f 20 |hich we |need to |
|00002880| 61 64 76 61 6e 63 65 20 | 69 6e 20 74 68 65 20 73 |advance |in the s|
|00002890| 6f 6e 67 2c 0a 20 2a 20 | 69 6e 63 6c 75 64 69 6e |ong,. * |includin|
|000028a0| 67 20 73 65 74 5f 73 70 | 65 65 64 2c 20 73 65 74 |g set_sp|eed, set|
|000028b0| 5f 73 6b 69 70 20 61 6e | 64 20 73 65 74 5f 66 61 |_skip an|d set_fa|
|000028c0| 73 74 73 6b 69 70 2e 0a | 20 2a 2f 0a 76 6f 69 64 |stskip..| */.void|
|000028d0| 20 6e 65 78 74 5f 74 69 | 63 6b 28 61 29 0a 73 74 | next_ti|ck(a).st|
|000028e0| 72 75 63 74 20 61 75 74 | 6f 6d 61 74 6f 6e 20 2a |ruct aut|omaton *|
|000028f0| 61 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 69 66 20 |a;. {|. if |
|00002900| 28 61 2d 3e 64 6f 5f 73 | 74 75 66 66 20 26 20 53 |(a->do_s|tuff & S|
|00002910| 45 54 5f 53 50 45 45 44 | 20 26 26 20 61 2d 3e 6e |ET_SPEED| && a->n|
|00002920| 65 77 5f 73 70 65 65 64 | 29 0a 20 20 20 20 20 20 |ew_speed|). |
|00002930| 20 20 7b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|00002940| 2f 2a 20 74 68 65 72 65 | 20 61 72 65 20 74 68 72 |/* there| are thr|
|00002950| 65 65 20 63 6c 61 73 73 | 65 73 20 6f 66 20 73 70 |ee class|es of sp|
|00002960| 65 65 64 20 63 68 61 6e | 67 65 73 3a 0a 20 20 20 |eed chan|ges:. |
|00002970| 20 20 20 20 20 20 20 20 | 20 20 2a 20 30 20 64 6f | | * 0 do|
|00002980| 65 73 20 6e 6f 74 68 69 | 6e 67 2e 0a 20 20 20 20 |es nothi|ng.. |
|00002990| 20 20 20 20 20 20 20 20 | 20 2a 20 3c 33 32 20 69 | | * <32 i|
|000029a0| 73 20 74 68 65 20 65 66 | 66 65 63 74 20 73 70 65 |s the ef|fect spe|
|000029b0| 65 64 20 28 72 65 73 65 | 74 73 20 74 68 65 20 66 |ed (rese|ts the f|
|000029c0| 69 6e 65 20 73 70 65 65 | 64 29 2e 0a 20 20 20 20 |ine spee|d).. |
|000029d0| 20 20 20 20 20 20 20 20 | 20 2a 20 3e 3d 33 32 20 | | * >=32 |
|000029e0| 63 68 61 6e 67 65 73 20 | 74 68 65 20 66 69 6e 65 |changes |the fine|
|000029f0| 73 70 65 65 64 2c 20 73 | 6f 20 74 68 69 73 20 69 |speed, s|o this i|
|00002a00| 73 20 33 32 25 20 74 6f | 20 32 35 35 25 0a 20 20 |s 32% to| 255%. |
|00002a10| 20 20 20 20 20 20 20 20 | 20 20 20 2a 2f 0a 20 20 | | */. |
|00002a20| 20 20 20 20 20 20 69 66 | 20 28 61 2d 3e 6e 65 77 | if| (a->new|
|00002a30| 5f 73 70 65 65 64 20 3e | 3d 20 33 32 29 0a 20 20 |_speed >|= 32). |
|00002a40| 20 20 20 20 20 20 20 20 | 20 20 61 2d 3e 66 69 6e | | a->fin|
|00002a50| 65 73 70 65 65 64 20 3d | 20 61 2d 3e 6e 65 77 5f |espeed =| a->new_|
|00002a60| 73 70 65 65 64 3b 0a 20 | 20 20 20 20 20 20 20 65 |speed;. | e|
|00002a70| 6c 73 65 20 0a 20 20 20 | 20 20 20 20 20 20 20 20 |lse . | |
|00002a80| 20 7b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 61 | {. | a|
|00002a90| 2d 3e 73 70 65 65 64 20 | 3d 20 61 2d 3e 6e 65 77 |->speed |= a->new|
|00002aa0| 5f 73 70 65 65 64 3b 0a | 20 20 20 20 20 20 20 20 |_speed;.| |
|00002ab0| 20 20 20 20 61 2d 3e 66 | 69 6e 65 73 70 65 65 64 | a->f|inespeed|
|00002ac0| 20 3d 20 31 30 30 3b 0a | 20 20 20 20 20 20 20 20 | = 100;.| |
|00002ad0| 20 20 20 20 7d 0a 20 20 | 20 20 20 20 20 20 7d 0a | }. | }.|
|00002ae0| 20 20 20 20 69 66 20 28 | 2b 2b 61 2d 3e 63 6f 75 | if (|++a->cou|
|00002af0| 6e 74 65 72 20 3e 3d 20 | 61 2d 3e 73 70 65 65 64 |nter >= |a->speed|
|00002b00| 29 0a 20 20 20 20 20 20 | 20 20 7b 0a 20 20 20 20 |). | {. |
|00002b10| 20 20 20 20 61 2d 3e 63 | 6f 75 6e 74 65 72 20 3d | a->c|ounter =|
|00002b20| 20 30 3b 0a 23 69 66 64 | 65 66 20 53 48 4f 57 5f | 0;.#ifd|ef SHOW_|
|00002b30| 53 45 51 0a 20 20 20 20 | 20 20 20 20 70 72 69 6e |SEQ. | prin|
|00002b40| 74 66 28 22 5c 6e 22 29 | 3b 0a 23 65 6e 64 69 66 |tf("\n")|;.#endif|
|00002b50| 0a 20 20 20 20 20 20 20 | 20 69 66 20 28 61 2d 3e |. | if (a->|
|00002b60| 64 6f 5f 73 74 75 66 66 | 20 26 20 53 45 54 5f 46 |do_stuff| & SET_F|
|00002b70| 41 53 54 53 4b 49 50 29 | 0a 20 20 20 20 20 20 20 |ASTSKIP)|. |
|00002b80| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 20 | {. | |
|00002b90| 20 20 20 61 2d 3e 70 61 | 74 74 65 72 6e 5f 6e 75 | a->pa|ttern_nu|
|00002ba0| 6d 20 3d 20 61 2d 3e 6e | 65 77 5f 70 61 74 74 65 |m = a->n|ew_patte|
|00002bb0| 72 6e 3b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |rn;. | |
|00002bc0| 73 65 74 5f 70 61 74 74 | 65 72 6e 28 61 29 3b 0a |set_patt|ern(a);.|
|00002bd0| 20 20 20 20 20 20 20 20 | 20 20 20 20 61 2d 3e 6e | | a->n|
|00002be0| 6f 74 65 5f 6e 75 6d 20 | 3d 20 30 3b 0a 20 20 20 |ote_num |= 0;. |
|00002bf0| 20 20 20 20 20 20 20 20 | 20 7d 0a 20 20 20 20 20 | | }. |
|00002c00| 20 20 20 65 6c 73 65 20 | 69 66 20 28 61 2d 3e 64 | else |if (a->d|
|00002c10| 6f 5f 73 74 75 66 66 20 | 26 20 53 45 54 5f 53 4b |o_stuff |& SET_SK|
|00002c20| 49 50 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |IP). | |
|00002c30| 7b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 61 64 |{. | ad|
|00002c40| 76 61 6e 63 65 5f 70 61 | 74 74 65 72 6e 28 61 29 |vance_pa|ttern(a)|
|00002c50| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 61 2d |;. | a-|
|00002c60| 3e 6e 6f 74 65 5f 6e 75 | 6d 20 3d 20 61 2d 3e 6e |>note_nu|m = a->n|
|00002c70| 65 77 5f 6e 6f 74 65 3b | 0a 20 20 20 20 20 20 20 |ew_note;|. |
|00002c80| 20 20 20 20 20 7d 0a 20 | 20 20 20 20 20 20 20 65 | }. | e|
|00002c90| 6c 73 65 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |lse. | |
|00002ca0| 7b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 69 66 |{. | if|
|00002cb0| 20 28 2b 2b 61 2d 3e 6e | 6f 74 65 5f 6e 75 6d 20 | (++a->n|ote_num |
|00002cc0| 3e 3d 20 42 4c 4f 43 4b | 5f 4c 45 4e 47 54 48 29 |>= BLOCK|_LENGTH)|
|00002cd0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002ce0| 20 61 64 76 61 6e 63 65 | 5f 70 61 74 74 65 72 6e | advance|_pattern|
|00002cf0| 28 61 29 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |(a);. | |
|00002d00| 20 7d 0a 20 20 20 20 20 | 20 20 20 61 2d 3e 64 6f | }. | a->do|
|00002d10| 5f 73 74 75 66 66 20 3d | 20 44 4f 5f 4e 4f 54 48 |_stuff =| DO_NOTH|
|00002d20| 49 4e 47 3b 0a 20 20 20 | 20 20 20 20 20 7d 0a 20 |ING;. | }. |
|00002d30| 20 20 20 7d 0a 0a 0a 52 | 41 43 4b 53 3b 20 63 68 | }...R|ACKS; ch|
|00002d40| 61 6e 6e 65 6c 2b 2b 29 | 0a 20 20 20 20 20 20 20 |annel++)|. |
|00002d50| 20 69 66 20 28 21 63 68 | 61 6e 5b 63 68 61 6e 6e | if (!ch|an[chann|
|00002d60| 65 6c 5d 2e 73 61 6d 70 | 2d 3e 73 74 61 72 74 29 |el].samp|->start)|
|00002d70| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 7b 0a 20 |. | {. |
|00002d80| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 21 | | if (!|
|00002d90| 65 72 72 6f 72 29 0a 20 | 20 20 20 20 20 20 20 20 |error). | |
|00002da0| 20 20 20 20 20 20 20 65 | 72 72 6f 72 20 3d 20 53 | e|rror = S|
|00002db0| 41 4d 50 4c 45 5f 46 41 | 55 4c 54 3b 0a 20 20 20 |AMPLE_FA|ULT;. |
|00002dc0| 20 20 20 20 20 20 20 20 | 20 63 68 61 6e 5b 63 68 | | chan[ch|
|00002dd0| 61 6e 6e 65 6c 5d 2e 6d | 6f 64 65 20 3d 20 44 4f |annel].m|ode = DO|
|00002de0| 5f 4e 4f 54 48 49 4e 47 | 3b 0a 20 20 20 20 20 20 |_NOTHING|;. |
|00002df0| 20 20 20 20 20 20 7d 0a | 20 20 20 20 20 20 20 20 | }.| |
|00002e00| 63 6f 6d 6d 61 6e 64 73 | 2e 63 00 00 00 00 00 00 |commands|.c......|
|00002e10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e60| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00002e70| 35 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |55 . 1|44 . |
|00002e80| 20 20 32 31 35 36 36 20 | 20 35 31 31 37 31 36 30 | 21566 | 5117160|
|00002e90| 31 33 35 20 20 20 36 31 | 35 30 00 20 00 00 00 00 |135 61|50. ....|
|00002ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002eb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f00| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003000| 2f 2a 20 63 6f 6d 6d 61 | 6e 64 73 2e 63 20 2a 2f |/* comma|nds.c */|
|00003010| 0a 0a 2f 2a 20 24 41 75 | 74 68 6f 72 3a 20 65 73 |../* $Au|thor: es|
|00003020| 70 69 65 20 24 0a 20 2a | 20 24 49 64 3a 20 63 6f |pie $. *| $Id: co|
|00003030| 6d 6d 61 6e 64 73 2e 63 | 2c 76 20 32 2e 34 20 31 |mmands.c|,v 2.4 1|
|00003040| 39 39 31 2f 31 32 2f 30 | 33 20 31 33 3a 32 33 3a |991/12/0|3 13:23:|
|00003050| 31 30 20 65 73 70 69 65 | 20 45 78 70 20 65 73 70 |10 espie| Exp esp|
|00003060| 69 65 20 24 0a 20 2a 20 | 24 52 65 76 69 73 69 6f |ie $. * |$Revisio|
|00003070| 6e 3a 20 32 2e 34 20 24 | 0a 20 2a 20 24 4c 6f 67 |n: 2.4 $|. * $Log|
|00003080| 3a 20 63 6f 6d 6d 61 6e | 64 73 2e 63 2c 76 20 24 |: comman|ds.c,v $|
|00003090| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 34 |. * Revi|sion 2.4|
|000030a0| 20 20 31 39 39 31 2f 31 | 32 2f 30 33 20 20 31 33 | 1991/1|2/03 13|
|000030b0| 3a 32 33 3a 31 30 20 20 | 65 73 70 69 65 0a 20 2a |:23:10 |espie. *|
|000030c0| 20 44 65 66 65 6e 73 69 | 76 65 20 70 72 6f 67 72 | Defensi|ve progr|
|000030d0| 61 6d 6d 69 6e 67 3a 20 | 63 68 65 63 6b 20 74 68 |amming: |check th|
|000030e0| 65 20 72 61 6e 67 65 20 | 6f 66 20 65 61 63 68 20 |e range |of each |
|000030f0| 6e 6f 74 65 0a 20 2a 20 | 66 6f 72 20 61 72 70 65 |note. * |for arpe|
|00003100| 67 67 69 6f 20 73 65 74 | 75 70 2e 0a 20 2a 0a 20 |ggio set|up.. *. |
|00003110| 2a 20 52 65 76 69 73 69 | 6f 6e 20 32 2e 33 20 20 |* Revisi|on 2.3 |
|00003120| 31 39 39 31 2f 31 31 2f | 31 39 20 20 31 36 3a 30 |1991/11/|19 16:0|
|00003130| 37 3a 31 39 20 20 65 73 | 70 69 65 0a 20 2a 20 41 |7:19 es|pie. * A|
|00003140| 64 64 65 64 20 63 6f 6d | 6d 65 6e 74 73 2c 20 6d |dded com|ments, m|
|00003150| 6f 76 65 64 20 6d 69 6e | 6f 72 20 73 74 75 66 66 |oved min|or stuff|
|00003160| 20 61 72 6f 75 6e 64 2e | 0a 20 2a 0a 20 2a 20 52 | around.|. *. * R|
|00003170| 65 76 69 73 69 6f 6e 20 | 32 2e 32 20 20 31 39 39 |evision |2.2 199|
|00003180| 31 2f 31 31 2f 31 38 20 | 20 30 31 3a 31 32 3a 33 |1/11/18 | 01:12:3|
|00003190| 31 20 20 65 73 70 69 65 | 0a 20 2a 20 4d 69 6e 6f |1 espie|. * Mino|
|000031a0| 72 20 63 68 61 6e 67 65 | 73 2e 0a 20 2a 0a 20 2a |r change|s.. *. *|
|000031b0| 20 52 65 76 69 73 69 6f | 6e 20 32 2e 31 20 20 31 | Revisio|n 2.1 1|
|000031c0| 39 39 31 2f 31 31 2f 31 | 37 20 20 32 33 3a 30 37 |991/11/1|7 23:07|
|000031d0| 3a 35 38 20 20 65 73 70 | 69 65 0a 20 2a 20 55 73 |:58 esp|ie. * Us|
|000031e0| 65 64 20 73 6f 6d 65 20 | 63 6f 6e 73 74 61 6e 74 |ed some |constant|
|000031f0| 73 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |s.. *. *| Revisio|
|00003200| 6e 20 32 2e 30 20 20 31 | 39 39 31 2f 31 31 2f 31 |n 2.0 1|991/11/1|
|00003210| 37 20 20 32 31 3a 34 32 | 3a 30 38 20 20 65 73 70 |7 21:42|:08 esp|
|00003220| 69 65 0a 20 2a 20 53 74 | 72 75 63 74 75 72 65 64 |ie. * St|ructured|
|00003230| 20 70 61 72 74 20 6f 66 | 20 74 68 65 20 63 6f 64 | part of| the cod|
|00003240| 65 2c 20 65 73 70 65 63 | 69 61 6c 6c 79 20 72 65 |e, espec|ially re|
|00003250| 70 6c 61 79 20 60 60 61 | 75 74 6f 6d 61 74 6f 6e |play ``a|utomaton|
|00003260| 27 27 0a 20 2a 20 61 6e | 64 20 73 65 74 74 69 6e |''. * an|d settin|
|00003270| 67 20 75 70 20 6f 66 20 | 65 66 66 65 63 74 73 2e |g up of |effects.|
|00003280| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00003290| 31 2e 39 20 20 31 39 39 | 31 2f 31 31 2f 31 37 20 |1.9 199|1/11/17 |
|000032a0| 20 31 37 3a 30 39 3a 35 | 33 20 20 65 73 70 69 65 | 17:09:5|3 espie|
|000032b0| 0a 20 2a 20 41 64 64 65 | 64 20 6d 69 73 73 69 6e |. * Adde|d missin|
|000032c0| 67 20 70 72 6f 74 6f 74 | 79 70 65 73 2e 0a 20 2a |g protot|ypes.. *|
|000032d0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 38 |. * Revi|sion 1.8|
|000032e0| 20 20 31 39 39 31 2f 31 | 31 2f 31 36 20 20 31 35 | 1991/1|1/16 15|
|000032f0| 3a 34 32 3a 34 33 20 20 | 65 73 70 69 65 0a 20 2a |:42:43 |espie. *|
|00003300| 20 74 61 62 73 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 | tabs.. |*. * Rev|
|00003310| 69 73 69 6f 6e 20 31 2e | 37 20 20 31 39 39 31 2f |ision 1.|7 1991/|
|00003320| 31 31 2f 30 38 20 20 31 | 34 3a 32 35 3a 35 35 20 |11/08 1|4:25:55 |
|00003330| 20 65 73 70 69 65 0a 20 | 2a 20 44 79 6e 61 6d 69 | espie. |* Dynami|
|00003340| 63 20 6f 76 65 72 73 61 | 6d 70 6c 65 20 61 6e 64 |c oversa|mple and|
|00003350| 20 66 72 65 71 75 65 6e | 63 79 2e 0a 20 2a 0a 20 | frequen|cy.. *. |
|00003360| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 36 20 20 |* Revisi|on 1.6 |
|00003370| 31 39 39 31 2f 31 31 2f | 30 37 20 20 32 31 3a 34 |1991/11/|07 21:4|
|00003380| 30 3a 31 36 20 20 65 73 | 70 69 65 0a 20 2a 20 41 |0:16 es|pie. * A|
|00003390| 64 64 65 64 20 61 72 70 | 65 67 67 69 6f 2e 0a 20 |dded arp|eggio.. |
|000033a0| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|000033b0| 35 20 20 31 39 39 31 2f | 31 31 2f 30 37 20 20 32 |5 1991/|11/07 2|
|000033c0| 30 3a 31 32 3a 33 34 20 | 20 65 73 70 69 65 0a 20 |0:12:34 | espie. |
|000033d0| 2a 20 4d 69 6e 6f 72 20 | 70 72 6f 62 6c 65 6d 20 |* Minor |problem |
|000033e0| 77 69 74 68 20 76 65 72 | 73 69 6f 6e 20 69 64 2e |with ver|sion id.|
|000033f0| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00003400| 31 2e 34 20 20 31 39 39 | 31 2f 31 31 2f 30 37 20 |1.4 199|1/11/07 |
|00003410| 20 32 30 3a 31 31 3a 31 | 30 20 20 65 73 70 69 65 | 20:11:1|0 espie|
|00003420| 0a 20 2a 20 41 64 64 65 | 64 20 65 6d 62 65 64 64 |. * Adde|d embedd|
|00003430| 65 64 20 76 65 72 73 69 | 6f 6e 20 69 64 2e 0a 20 |ed versi|on id.. |
|00003440| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|00003450| 33 20 20 31 39 39 31 2f | 31 31 2f 30 37 20 20 32 |3 1991/|11/07 2|
|00003460| 30 3a 30 35 3a 35 33 20 | 20 65 73 70 69 65 0a 20 |0:05:53 | espie. |
|00003470| 2a 20 46 69 78 65 64 20 | 75 70 20 76 69 62 72 61 |* Fixed |up vibra|
|00003480| 74 6f 20 64 65 70 74 68 | 2e 0a 20 2a 20 41 64 64 |to depth|.. * Add|
|00003490| 65 64 20 76 69 62 73 6c | 69 64 65 20 61 6e 64 20 |ed vibsl|ide and |
|000034a0| 70 6f 72 74 61 73 6c 69 | 64 65 2e 0a 20 2a 0a 20 |portasli|de.. *. |
|000034b0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 32 20 20 |* Revisi|on 1.2 |
|000034c0| 31 39 39 31 2f 31 31 2f | 30 37 20 20 31 35 3a 32 |1991/11/|07 15:2|
|000034d0| 37 3a 30 32 20 20 65 73 | 70 69 65 0a 20 2a 20 41 |7:02 es|pie. * A|
|000034e0| 64 64 65 64 20 63 6f 6d | 6d 61 6e 64 20 39 2e 0a |dded com|mand 9..|
|000034f0| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|00003500| 2e 31 20 20 31 39 39 31 | 2f 31 31 2f 30 36 20 20 |.1 1991|/11/06 |
|00003510| 30 39 3a 34 36 3a 30 36 | 20 20 65 73 70 69 65 0a |09:46:06| espie.|
|00003520| 20 2a 20 49 6e 69 74 69 | 61 6c 20 72 65 76 69 73 | * Initi|al revis|
|00003530| 69 6f 6e 0a 20 2a 0a 20 | 2a 0a 20 2a 2f 0a 0a 23 |ion. *. |*. */..#|
|00003540| 69 6e 63 6c 75 64 65 20 | 3c 73 74 64 69 6f 2e 68 |include |<stdio.h|
|00003550| 3e 0a 23 69 6e 63 6c 75 | 64 65 20 22 65 78 74 65 |>.#inclu|de "exte|
|00003560| 72 6e 2e 68 22 0a 23 69 | 6e 63 6c 75 64 65 20 22 |rn.h".#i|nclude "|
|00003570| 63 68 61 6e 6e 65 6c 2e | 68 22 0a 23 69 6e 63 6c |channel.|h".#incl|
|00003580| 75 64 65 20 22 6d 61 63 | 68 69 6e 65 2e 68 22 0a |ude "mac|hine.h".|
|00003590| 23 69 6e 63 6c 75 64 65 | 20 22 73 6f 6e 67 2e 68 |#include| "song.h|
|000035a0| 22 0a 20 20 20 20 20 0a | 73 74 61 74 69 63 20 63 |". .|static c|
|000035b0| 68 61 72 20 2a 69 64 20 | 3d 20 22 24 49 64 3a 20 |har *id |= "$Id: |
|000035c0| 63 6f 6d 6d 61 6e 64 73 | 2e 63 2c 76 20 32 2e 34 |commands|.c,v 2.4|
|000035d0| 20 31 39 39 31 2f 31 32 | 2f 30 33 20 31 33 3a 32 | 1991/12|/03 13:2|
|000035e0| 33 3a 31 30 20 65 73 70 | 69 65 20 45 78 70 20 65 |3:10 esp|ie Exp e|
|000035f0| 73 70 69 65 20 24 22 3b | 0a 0a 2f 2a 20 73 69 6e |spie $";|../* sin|
|00003600| 65 20 74 61 62 6c 65 20 | 66 6f 72 20 74 68 65 20 |e table |for the |
|00003610| 76 69 62 72 61 74 6f 20 | 65 66 66 65 63 74 20 28 |vibrato |effect (|
|00003620| 63 6f 75 6c 64 20 62 65 | 20 6d 75 63 68 20 6d 6f |could be| much mo|
|00003630| 72 65 20 70 72 65 63 69 | 73 65 29 20 2a 2f 0a 0a |re preci|se) */..|
|00003640| 69 6e 74 20 76 69 62 72 | 61 74 6f 5f 74 61 62 6c |int vibr|ato_tabl|
|00003650| 65 5b 33 32 5d 20 3d 20 | 0a 20 20 20 7b 20 20 30 |e[32] = |. { 0|
|00003660| 2c 20 20 32 35 2c 20 20 | 34 39 2c 20 20 37 31 2c |, 25, |49, 71,|
|00003670| 20 20 39 30 2c 20 31 30 | 36 2c 20 31 31 37 2c 20 | 90, 10|6, 117, |
|00003680| 31 32 35 2c 20 31 32 37 | 2c 20 31 32 35 2c 20 31 |125, 127|, 125, 1|
|00003690| 31 37 2c 20 31 30 36 2c | 20 20 39 30 2c 0a 20 20 |17, 106,| 90,. |
|000036a0| 20 20 20 37 31 2c 20 20 | 34 39 2c 20 20 32 35 2c | 71, |49, 25,|
|000036b0| 20 20 20 30 2c 20 2d 32 | 35 2c 20 2d 34 39 2c 20 | 0, -2|5, -49, |
|000036c0| 2d 37 31 2c 20 2d 39 30 | 2c 2d 31 30 36 2c 2d 31 |-71, -90|,-106,-1|
|000036d0| 31 37 2c 2d 31 32 35 2c | 2d 31 32 37 2c 2d 31 32 |17,-125,|-127,-12|
|000036e0| 35 2c 0a 20 20 20 2d 31 | 31 37 2c 2d 31 30 36 2c |5,. -1|17,-106,|
|000036f0| 20 2d 39 30 2c 20 2d 37 | 31 2c 20 2d 34 39 2c 20 | -90, -7|1, -49, |
|00003700| 2d 32 35 7d 3b 0a 0a 0a | 2f 2a 2a 2a 0a 20 2a 0a |-25};...|/***. *.|
|00003710| 20 2a 0a 20 2a 20 20 73 | 65 74 74 69 6e 67 20 75 | *. * s|etting u|
|00003720| 70 20 65 66 66 65 63 74 | 73 2f 64 6f 69 6e 67 20 |p effect|s/doing |
|00003730| 65 66 66 65 63 74 73 2e | 0a 20 2a 20 20 54 68 65 |effects.|. * The|
|00003740| 20 73 65 74 5f 78 78 78 | 20 67 65 74 73 20 63 61 | set_xxx| gets ca|
|00003750| 6c 6c 65 64 20 77 68 69 | 6c 65 20 70 61 72 73 69 |lled whi|le parsi|
|00003760| 6e 67 20 74 68 65 20 65 | 66 66 65 63 74 2c 0a 20 |ng the e|ffect,. |
|00003770| 2a 20 20 74 68 65 20 64 | 6f 5f 78 78 78 20 67 65 |* the d|o_xxx ge|
|00003780| 74 73 20 63 61 6c 6c 65 | 64 20 65 61 63 68 20 74 |ts calle|d each t|
|00003790| 69 63 6b 2c 20 61 6e 64 | 20 75 70 64 61 74 65 20 |ick, and| update |
|000037a0| 74 68 65 0a 20 2a 20 20 | 73 6f 75 6e 64 20 70 61 |the. * |sound pa|
|000037b0| 72 61 6d 65 74 65 72 73 | 20 77 68 69 6c 65 20 70 |rameters| while p|
|000037c0| 6c 61 79 69 6e 67 20 69 | 74 2e 0a 20 2a 0a 20 2a |laying i|t.. *. *|
|000037d0| 0a 20 2a 2a 2a 2f 0a 0a | 0a 76 6f 69 64 20 64 6f |. ***/..|.void do|
|000037e0| 5f 6e 6f 74 68 69 6e 67 | 28 63 68 29 0a 73 74 72 |_nothing|(ch).str|
|000037f0| 75 63 74 20 63 68 61 6e | 6e 65 6c 20 2a 63 68 3b |uct chan|nel *ch;|
|00003800| 0a 20 20 20 20 7b 0a 20 | 20 20 20 7d 0a 0a 76 6f |. {. | }..vo|
|00003810| 69 64 20 73 65 74 5f 6e | 6f 74 68 69 6e 67 28 61 |id set_n|othing(a|
|00003820| 2c 20 63 68 29 0a 73 74 | 72 75 63 74 20 61 75 74 |, ch).st|ruct aut|
|00003830| 6f 6d 61 74 6f 6e 20 2a | 61 3b 0a 73 74 72 75 63 |omaton *|a;.struc|
|00003840| 74 20 63 68 61 6e 6e 65 | 6c 20 2a 63 68 3b 0a 20 |t channe|l *ch;. |
|00003850| 20 20 20 7b 0a 20 20 20 | 20 7d 0a 0a 2f 2a 20 73 | {. | }../* s|
|00003860| 6c 69 64 65 20 70 69 74 | 63 68 20 28 75 70 20 6f |lide pit|ch (up o|
|00003870| 72 20 64 6f 77 6e 29 20 | 2a 2f 0a 0a 76 6f 69 64 |r down) |*/..void|
|00003880| 20 64 6f 5f 73 6c 69 64 | 65 28 63 68 29 0a 73 74 | do_slid|e(ch).st|
|00003890| 72 75 63 74 20 63 68 61 | 6e 6e 65 6c 20 2a 63 68 |ruct cha|nnel *ch|
|000038a0| 3b 0a 20 20 20 20 7b 0a | 20 20 20 20 63 68 2d 3e |;. {.| ch->|
|000038b0| 70 69 74 63 68 20 2b 3d | 20 63 68 2d 3e 73 6c 69 |pitch +=| ch->sli|
|000038c0| 64 65 3b 0a 20 20 20 20 | 63 68 2d 3e 70 69 74 63 |de;. |ch->pitc|
|000038d0| 68 20 3d 20 4d 49 4e 28 | 63 68 2d 3e 70 69 74 63 |h = MIN(|ch->pitc|
|000038e0| 68 2c 20 4d 41 58 5f 50 | 49 54 43 48 29 3b 0a 20 |h, MAX_P|ITCH);. |
|000038f0| 20 20 20 63 68 2d 3e 70 | 69 74 63 68 20 3d 20 4d | ch->p|itch = M|
|00003900| 41 58 28 63 68 2d 3e 70 | 69 74 63 68 2c 20 4d 49 |AX(ch->p|itch, MI|
|00003910| 4e 5f 50 49 54 43 48 29 | 3b 0a 20 20 20 20 73 65 |N_PITCH)|;. se|
|00003920| 74 5f 63 75 72 72 65 6e | 74 5f 70 69 74 63 68 28 |t_curren|t_pitch(|
|00003930| 63 68 2c 20 63 68 2d 3e | 70 69 74 63 68 29 3b 0a |ch, ch->|pitch);.|
|00003940| 20 20 20 20 7d 0a 0a 76 | 6f 69 64 20 73 65 74 5f | }..v|oid set_|
|00003950| 75 70 73 6c 69 64 65 28 | 61 2c 20 63 68 29 0a 73 |upslide(|a, ch).s|
|00003960| 74 72 75 63 74 20 61 75 | 74 6f 6d 61 74 6f 6e 20 |truct au|tomaton |
|00003970| 2a 61 3b 0a 73 74 72 75 | 63 74 20 63 68 61 6e 6e |*a;.stru|ct chann|
|00003980| 65 6c 20 2a 63 68 3b 0a | 20 20 20 20 7b 0a 20 20 |el *ch;.| {. |
|00003990| 20 20 63 68 2d 3e 61 64 | 6a 75 73 74 20 3d 20 64 | ch->ad|just = d|
|000039a0| 6f 5f 73 6c 69 64 65 3b | 0a 20 20 20 20 69 66 20 |o_slide;|. if |
|000039b0| 28 61 2d 3e 70 61 72 61 | 29 0a 20 20 20 20 20 20 |(a->para|). |
|000039c0| 20 20 63 68 2d 3e 73 6c | 69 64 65 20 3d 20 61 2d | ch->sl|ide = a-|
|000039d0| 3e 70 61 72 61 3b 0a 20 | 20 20 20 7d 0a 0a 76 6f |>para;. | }..vo|
|000039e0| 69 64 20 73 65 74 5f 64 | 6f 77 6e 73 6c 69 64 65 |id set_d|ownslide|
|000039f0| 28 61 2c 20 63 68 29 0a | 73 74 72 75 63 74 20 61 |(a, ch).|struct a|
|00003a00| 75 74 6f 6d 61 74 6f 6e | 20 2a 61 3b 0a 73 74 72 |utomaton| *a;.str|
|00003a10| 75 63 74 20 63 68 61 6e | 6e 65 6c 20 2a 63 68 3b |uct chan|nel *ch;|
|00003a20| 0a 20 20 20 20 7b 0a 20 | 20 20 20 63 68 2d 3e 61 |. {. | ch->a|
|00003a30| 64 6a 75 73 74 20 3d 20 | 64 6f 5f 73 6c 69 64 65 |djust = |do_slide|
|00003a40| 3b 0a 20 20 20 20 69 66 | 20 28 61 2d 3e 70 61 72 |;. if| (a->par|
|00003a50| 61 29 0a 20 20 20 20 20 | 20 20 20 63 68 2d 3e 73 |a). | ch->s|
|00003a60| 6c 69 64 65 20 3d 20 2d | 61 2d 3e 70 61 72 61 3b |lide = -|a->para;|
|00003a70| 0a 20 20 20 20 7d 0a 0a | 2f 2a 20 6d 6f 64 75 6c |. }..|/* modul|
|00003a80| 61 74 69 6e 67 20 74 68 | 65 20 70 69 74 63 68 20 |ating th|e pitch |
|00003a90| 77 69 74 68 20 76 69 62 | 72 61 74 6f 20 2a 2f 0a |with vib|rato */.|
|00003aa0| 0a 76 6f 69 64 20 64 6f | 5f 76 69 62 72 61 74 6f |.void do|_vibrato|
|00003ab0| 28 63 68 29 0a 73 74 72 | 75 63 74 20 63 68 61 6e |(ch).str|uct chan|
|00003ac0| 6e 65 6c 20 2a 63 68 3b | 0a 20 20 20 20 7b 0a 20 |nel *ch;|. {. |
|00003ad0| 20 20 20 69 6e 74 20 6f | 66 66 73 65 74 3b 0a 0a | int o|ffset;..|
|00003ae0| 20 20 20 20 20 20 20 20 | 2f 2a 20 74 68 69 73 20 | |/* this |
|00003af0| 69 73 20 61 20 6c 69 74 | 65 72 61 6c 20 74 72 61 |is a lit|eral tra|
|00003b00| 6e 73 63 72 69 70 74 69 | 6f 6e 20 6f 66 20 74 68 |nscripti|on of th|
|00003b10| 65 20 70 72 6f 74 72 61 | 63 6b 65 72 0a 20 20 20 |e protra|cker. |
|00003b20| 20 20 20 20 20 20 2a 20 | 63 6f 64 65 2e 20 49 20 | * |code. I |
|00003b30| 73 68 6f 75 6c 64 20 72 | 65 73 63 61 6c 65 20 74 |should r|escale t|
|00003b40| 68 65 20 76 69 62 72 61 | 74 6f 20 74 61 62 6c 65 |he vibra|to table|
|00003b50| 20 61 74 20 73 6f 6d 65 | 20 70 6f 69 6e 74 0a 20 | at some| point. |
|00003b60| 20 20 20 20 20 20 20 20 | 2a 2f 0a 20 20 20 20 63 | |*/. c|
|00003b70| 68 2d 3e 76 69 62 6f 66 | 66 73 65 74 20 2b 3d 20 |h->vibof|fset += |
|00003b80| 63 68 2d 3e 76 69 62 72 | 61 74 65 3b 0a 20 20 20 |ch->vibr|ate;. |
|00003b90| 20 63 68 2d 3e 76 69 62 | 6f 66 66 73 65 74 20 25 | ch->vib|offset %|
|00003ba0| 3d 20 36 34 3b 0a 20 20 | 20 20 6f 66 66 73 65 74 |= 64;. | offset|
|00003bb0| 20 3d 20 28 76 69 62 72 | 61 74 6f 5f 74 61 62 6c | = (vibr|ato_tabl|
|00003bc0| 65 5b 63 68 2d 3e 76 69 | 62 6f 66 66 73 65 74 20 |e[ch->vi|boffset |
|00003bd0| 3e 3e 20 31 5d 20 2a 20 | 63 68 2d 3e 76 69 62 64 |>> 1] * |ch->vibd|
|00003be0| 65 70 74 68 29 2f 36 34 | 3b 0a 20 20 20 20 20 20 |epth)/64|;. |
|00003bf0| 20 20 2f 2a 20 74 65 6d | 70 6f 72 61 72 79 20 75 | /* tem|porary u|
|00003c00| 70 64 61 74 65 20 6f 66 | 20 6f 6e 6c 79 20 74 68 |pdate of| only th|
|00003c10| 65 20 73 74 65 70 20 76 | 61 6c 75 65 2c 0a 20 20 |e step v|alue,. |
|00003c20| 20 20 20 20 20 20 20 2a | 20 6e 6f 74 65 20 74 68 | *| note th|
|00003c30| 61 74 20 77 65 20 64 6f | 20 6e 6f 74 20 63 68 61 |at we do| not cha|
|00003c40| 6e 67 65 20 74 68 65 20 | 73 61 76 65 64 20 70 69 |nge the |saved pi|
|00003c50| 74 63 68 2e 0a 20 20 20 | 20 20 20 20 20 20 2a 2f |tch.. | */|
|00003c60| 0a 20 20 20 20 73 65 74 | 5f 63 75 72 72 65 6e 74 |. set|_current|
|00003c70| 5f 70 69 74 63 68 28 63 | 68 2c 20 63 68 2d 3e 70 |_pitch(c|h, ch->p|
|00003c80| 69 74 63 68 20 2b 20 6f | 66 66 73 65 74 29 3b 0a |itch + o|ffset);.|
|00003c90| 20 20 20 20 7d 0a 0a 76 | 6f 69 64 20 73 65 74 5f | }..v|oid set_|
|00003ca0| 76 69 62 72 61 74 6f 28 | 61 2c 20 63 68 29 0a 73 |vibrato(|a, ch).s|
|00003cb0| 74 72 75 63 74 20 61 75 | 74 6f 6d 61 74 6f 6e 20 |truct au|tomaton |
|00003cc0| 2a 61 3b 0a 73 74 72 75 | 63 74 20 63 68 61 6e 6e |*a;.stru|ct chann|
|00003cd0| 65 6c 20 2a 63 68 3b 0a | 20 20 20 20 7b 0a 20 20 |el *ch;.| {. |
|00003ce0| 20 20 63 68 2d 3e 61 64 | 6a 75 73 74 20 3d 20 64 | ch->ad|just = d|
|00003cf0| 6f 5f 76 69 62 72 61 74 | 6f 3b 0a 20 20 20 20 69 |o_vibrat|o;. i|
|00003d00| 66 20 28 61 2d 3e 70 61 | 72 61 29 0a 20 20 20 20 |f (a->pa|ra). |
|00003d10| 20 20 20 20 7b 0a 20 20 | 20 20 20 20 20 20 63 68 | {. | ch|
|00003d20| 2d 3e 76 69 62 72 61 74 | 65 20 3d 20 48 49 28 61 |->vibrat|e = HI(a|
|00003d30| 2d 3e 70 61 72 61 29 3b | 0a 20 20 20 20 20 20 20 |->para);|. |
|00003d40| 20 63 68 2d 3e 76 69 62 | 64 65 70 74 68 20 3d 20 | ch->vib|depth = |
|00003d50| 4c 4f 57 28 61 2d 3e 70 | 61 72 61 29 3b 0a 20 20 |LOW(a->p|ara);. |
|00003d60| 20 20 20 20 20 20 7d 0a | 20 20 20 20 7d 0a 0a 2f | }.| }../|
|00003d70| 2a 20 61 72 70 65 67 67 | 69 6f 20 6c 6f 6f 6b 73 |* arpegg|io looks|
|00003d80| 20 61 20 62 69 74 20 6c | 69 6b 65 20 63 68 6f 72 | a bit l|ike chor|
|00003d90| 64 73 3a 20 77 65 20 61 | 6c 74 65 72 6e 61 74 65 |ds: we a|lternate|
|00003da0| 20 62 65 74 77 65 65 6e | 20 74 77 6f 0a 20 2a 20 | between| two. * |
|00003db0| 6f 72 20 74 68 72 65 65 | 20 6e 6f 74 65 73 20 76 |or three| notes v|
|00003dc0| 65 72 79 20 66 61 73 74 | 2e 0a 20 2a 20 49 73 73 |ery fast|.. * Iss|
|00003dd0| 75 65 3a 20 77 65 20 61 | 72 65 20 61 62 6c 65 20 |ue: we a|re able |
|00003de0| 74 6f 20 72 65 2d 67 65 | 6e 65 72 61 74 65 20 72 |to re-ge|nerate r|
|00003df0| 65 61 6c 20 63 68 6f 72 | 64 73 2e 20 57 6f 75 6c |eal chor|ds. Woul|
|00003e00| 64 20 74 68 61 74 20 62 | 65 0a 20 2a 20 62 65 74 |d that b|e. * bet|
|00003e10| 74 65 72 20 3f 20 54 6f | 20 74 72 79 2e 0a 20 2a |ter ? To| try.. *|
|00003e20| 2f 0a 76 6f 69 64 20 64 | 6f 5f 61 72 70 65 67 67 |/.void d|o_arpegg|
|00003e30| 69 6f 28 63 68 29 0a 73 | 74 72 75 63 74 20 63 68 |io(ch).s|truct ch|
|00003e40| 61 6e 6e 65 6c 20 2a 63 | 68 3b 0a 20 20 20 20 7b |annel *c|h;. {|
|00003e50| 0a 20 20 20 20 69 66 20 | 28 2b 2b 63 68 2d 3e 61 |. if |(++ch->a|
|00003e60| 72 70 69 6e 64 65 78 20 | 3e 3d 20 4d 41 58 5f 41 |rpindex |>= MAX_A|
|00003e70| 52 50 29 0a 20 20 20 20 | 20 20 20 20 63 68 2d 3e |RP). | ch->|
|00003e80| 61 72 70 69 6e 64 65 78 | 20 3d 30 3b 0a 20 20 20 |arpindex| =0;. |
|00003e90| 20 73 65 74 5f 63 75 72 | 72 65 6e 74 5f 70 69 74 | set_cur|rent_pit|
|00003ea0| 63 68 28 63 68 2c 20 63 | 68 2d 3e 61 72 70 5b 63 |ch(ch, c|h->arp[c|
|00003eb0| 68 2d 3e 61 72 70 69 6e | 64 65 78 5d 29 3b 0a 20 |h->arpin|dex]);. |
|00003ec0| 20 20 20 7d 0a 0a 76 6f | 69 64 20 73 65 74 5f 61 | }..vo|id set_a|
|00003ed0| 72 70 65 67 67 69 6f 28 | 61 2c 20 63 68 29 0a 73 |rpeggio(|a, ch).s|
|00003ee0| 74 72 75 63 74 20 61 75 | 74 6f 6d 61 74 6f 6e 20 |truct au|tomaton |
|00003ef0| 2a 61 3b 0a 73 74 72 75 | 63 74 20 63 68 61 6e 6e |*a;.stru|ct chann|
|00003f00| 65 6c 20 2a 63 68 3b 0a | 20 20 20 20 7b 0a 20 20 |el *ch;.| {. |
|00003f10| 20 20 20 20 20 20 2f 2a | 20 6e 6f 72 6d 61 6c 20 | /*| normal |
|00003f20| 70 6c 61 79 20 69 73 20 | 61 72 70 65 67 67 69 6f |play is |arpeggio|
|00003f30| 20 77 69 74 68 20 30 2f | 30 20 2a 2f 0a 20 20 20 | with 0/|0 */. |
|00003f40| 20 69 66 20 28 21 61 2d | 3e 70 61 72 61 29 0a 20 | if (!a-|>para). |
|00003f50| 20 20 20 20 20 20 20 72 | 65 74 75 72 6e 3b 0a 20 | r|eturn;. |
|00003f60| 20 20 20 20 20 20 20 2f | 2a 20 61 72 70 65 67 67 | /|* arpegg|
|00003f70| 69 6f 20 63 61 6e 20 62 | 65 20 69 6e 73 74 61 6c |io can b|e instal|
|00003f80| 6c 65 64 20 72 65 6c 61 | 74 69 76 65 20 74 6f 20 |led rela|tive to |
|00003f90| 74 68 65 0a 20 20 20 20 | 20 20 20 20 20 2a 20 70 |the. | * p|
|00003fa0| 72 65 76 69 6f 75 73 20 | 6e 6f 74 65 2c 20 73 6f |revious |note, so|
|00003fb0| 20 77 65 20 68 61 76 65 | 20 74 6f 20 63 68 65 63 | we have| to chec|
|00003fc0| 6b 20 74 68 61 74 20 74 | 68 65 72 65 0a 20 20 20 |k that t|here. |
|00003fd0| 20 20 20 20 20 20 2a 20 | 61 63 74 75 61 6c 6c 79 | * |actually|
|00003fe0| 20 69 73 20 61 20 63 75 | 72 72 65 6e 74 28 70 72 | is a cu|rrent(pr|
|00003ff0| 65 76 69 6f 75 73 29 20 | 6e 6f 74 65 0a 20 20 20 |evious) |note. |
|00004000| 20 20 20 20 20 20 2a 2f | 0a 20 20 20 20 69 66 20 | */|. if |
|00004010| 28 63 68 2d 3e 6e 6f 74 | 65 20 3d 3d 20 4e 4f 5f |(ch->not|e == NO_|
|00004020| 4e 4f 54 45 29 0a 20 20 | 20 20 20 20 20 20 7b 0a |NOTE). | {.|
|00004030| 20 20 20 20 20 20 20 20 | 66 70 72 69 6e 74 66 28 | |fprintf(|
|00004040| 73 74 64 65 72 72 2c 0a | 20 20 20 20 20 20 20 20 |stderr,.| |
|00004050| 20 20 20 20 22 4e 6f 20 | 6e 6f 74 65 20 70 72 65 | "No |note pre|
|00004060| 73 65 6e 74 20 66 6f 72 | 20 61 72 70 65 67 67 69 |sent for| arpeggi|
|00004070| 6f 22 29 3b 0a 20 20 20 | 20 20 20 20 20 65 72 72 |o");. | err|
|00004080| 6f 72 20 3d 20 46 41 55 | 4c 54 3b 0a 20 20 20 20 |or = FAU|LT;. |
|00004090| 20 20 20 20 7d 0a 20 20 | 20 20 65 6c 73 65 0a 20 | }. | else. |
|000040a0| 20 20 20 20 20 20 20 7b | 0a 20 20 20 20 20 20 20 | {|. |
|000040b0| 20 69 6e 74 20 6e 6f 74 | 65 3b 0a 0a 20 20 20 20 | int not|e;.. |
|000040c0| 20 20 20 20 63 68 2d 3e | 61 72 70 5b 30 5d 20 3d | ch->|arp[0] =|
|000040d0| 20 70 69 74 63 68 5f 74 | 61 62 6c 65 5b 63 68 2d | pitch_t|able[ch-|
|000040e0| 3e 6e 6f 74 65 5d 3b 0a | 20 20 20 20 20 20 20 20 |>note];.| |
|000040f0| 6e 6f 74 65 20 3d 20 63 | 68 2d 3e 6e 6f 74 65 20 |note = c|h->note |
|00004100| 2b 20 48 49 28 61 2d 3e | 70 61 72 61 29 3b 0a 20 |+ HI(a->|para);. |
|00004110| 20 20 20 20 20 20 20 69 | 66 20 28 6e 6f 74 65 20 | i|f (note |
|00004120| 3c 20 4e 55 4d 42 45 52 | 5f 4e 4f 54 45 53 29 0a |< NUMBER|_NOTES).|
|00004130| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 68 2d 3e | | ch->|
|00004140| 61 72 70 5b 31 5d 20 3d | 20 70 69 74 63 68 5f 74 |arp[1] =| pitch_t|
|00004150| 61 62 6c 65 5b 6e 6f 74 | 65 5d 3b 0a 20 20 20 20 |able[not|e];. |
|00004160| 20 20 20 20 65 6c 73 65 | 0a 20 20 20 20 20 20 20 | else|. |
|00004170| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 20 | {. | |
|00004180| 20 20 20 66 70 72 69 6e | 74 66 28 73 74 64 65 72 | fprin|tf(stder|
|00004190| 72 2c 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |r,. | |
|000041a0| 20 20 20 22 41 72 70 65 | 67 67 69 6f 20 6e 6f 74 | "Arpe|ggio not|
|000041b0| 65 20 6f 75 74 20 6f 66 | 20 72 61 6e 67 65 22 29 |e out of| range")|
|000041c0| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 65 72 |;. | er|
|000041d0| 72 6f 72 20 3d 20 46 41 | 55 4c 54 3b 0a 20 20 20 |ror = FA|ULT;. |
|000041e0| 20 20 20 20 20 20 20 20 | 20 7d 0a 20 20 20 20 20 | | }. |
|000041f0| 20 20 20 6e 6f 74 65 20 | 3d 20 63 68 2d 3e 6e 6f | note |= ch->no|
|00004200| 74 65 20 2b 20 4c 4f 57 | 28 61 2d 3e 70 61 72 61 |te + LOW|(a->para|
|00004210| 29 3b 0a 20 20 20 20 20 | 20 20 20 69 66 20 28 6e |);. | if (n|
|00004220| 6f 74 65 20 3c 20 4e 55 | 4d 42 45 52 5f 4e 4f 54 |ote < NU|MBER_NOT|
|00004230| 45 53 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ES). | |
|00004240| 63 68 2d 3e 61 72 70 5b | 32 5d 20 3d 20 70 69 74 |ch->arp[|2] = pit|
|00004250| 63 68 5f 74 61 62 6c 65 | 5b 6e 6f 74 65 5d 3b 0a |ch_table|[note];.|
|00004260| 20 20 20 20 20 20 20 20 | 65 6c 73 65 0a 20 20 20 | |else. |
|00004270| 20 20 20 20 20 20 20 20 | 20 7b 0a 20 20 20 20 20 | | {. |
|00004280| 20 20 20 20 20 20 20 66 | 70 72 69 6e 74 66 28 73 | f|printf(s|
|00004290| 74 64 65 72 72 2c 0a 20 | 20 20 20 20 20 20 20 20 |tderr,. | |
|000042a0| 20 20 20 20 20 20 20 22 | 41 72 70 65 67 67 69 6f | "|Arpeggio|
|000042b0| 20 6e 6f 74 65 20 6f 75 | 74 20 6f 66 20 72 61 6e | note ou|t of ran|
|000042c0| 67 65 22 29 3b 0a 20 20 | 20 20 20 20 20 20 20 20 |ge");. | |
|000042d0| 20 20 65 72 72 6f 72 20 | 3d 20 46 41 55 4c 54 3b | error |= FAULT;|
|000042e0| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 0a 20 |. | }. |
|000042f0| 20 20 20 20 20 20 20 63 | 68 2d 3e 61 72 70 69 6e | c|h->arpin|
|00004300| 64 65 78 20 3d 20 30 3b | 0a 20 20 20 20 20 20 20 |dex = 0;|. |
|00004310| 20 63 68 2d 3e 61 64 6a | 75 73 74 20 3d 20 64 6f | ch->adj|ust = do|
|00004320| 5f 61 72 70 65 67 67 69 | 6f 3b 0a 20 20 20 20 20 |_arpeggi|o;. |
|00004330| 20 20 20 7d 0a 20 20 20 | 20 7d 0a 0a 2f 2a 20 76 | }. | }../* v|
|00004340| 6f 6c 75 6d 65 20 73 6c | 69 64 65 2e 20 4d 6f 73 |olume sl|ide. Mos|
|00004350| 74 6c 79 20 75 73 65 64 | 20 74 6f 20 73 69 6d 75 |tly used| to simu|
|00004360| 6c 61 74 65 20 77 61 76 | 65 66 6f 72 6d 20 63 6f |late wav|eform co|
|00004370| 6e 74 72 6f 6c 2e 0a 20 | 2a 20 28 61 74 74 61 63 |ntrol.. |* (attac|
|00004380| 6b 2f 64 65 63 61 79 2f | 73 75 73 74 61 69 6e 29 |k/decay/|sustain)|
|00004390| 2e 0a 20 2a 2f 0a 76 6f | 69 64 20 64 6f 5f 73 6c |.. */.vo|id do_sl|
|000043a0| 69 64 65 76 6f 6c 28 63 | 68 29 0a 73 74 72 75 63 |idevol(c|h).struc|
|000043b0| 74 20 63 68 61 6e 6e 65 | 6c 20 2a 63 68 3b 0a 20 |t channe|l *ch;. |
|000043c0| 20 20 20 7b 0a 20 20 20 | 20 63 68 2d 3e 76 6f 6c | {. | ch->vol|
|000043d0| 75 6d 65 20 2b 3d 20 63 | 68 2d 3e 76 6f 6c 75 6d |ume += c|h->volum|
|000043e0| 65 72 61 74 65 3b 0a 20 | 20 20 20 63 68 2d 3e 76 |erate;. | ch->v|
|000043f0| 6f 6c 75 6d 65 20 3d 20 | 4d 49 4e 28 63 68 2d 3e |olume = |MIN(ch->|
|00004400| 76 6f 6c 75 6d 65 2c 20 | 4d 41 58 5f 56 4f 4c 55 |volume, |MAX_VOLU|
|00004410| 4d 45 29 3b 0a 20 20 20 | 20 63 68 2d 3e 76 6f 6c |ME);. | ch->vol|
|00004420| 75 6d 65 20 3d 20 4d 41 | 58 28 63 68 2d 3e 76 6f |ume = MA|X(ch->vo|
|00004430| 6c 75 6d 65 2c 20 4d 49 | 4e 5f 56 4f 4c 55 4d 45 |lume, MI|N_VOLUME|
|00004440| 29 3b 0a 20 20 20 20 7d | 0a 0a 2f 2a 20 6e 6f 74 |);. }|../* not|
|00004450| 65 20 74 68 61 74 20 76 | 6f 6c 75 6d 65 73 6c 69 |e that v|olumesli|
|00004460| 64 65 20 64 6f 65 73 20 | 6e 6f 74 20 68 61 76 65 |de does |not have|
|00004470| 20 61 20 60 60 74 61 6b | 65 20 64 65 66 61 75 6c | a ``tak|e defaul|
|00004480| 74 27 27 0a 20 2a 20 62 | 65 68 61 76 69 6f 72 2e |t''. * b|ehavior.|
|00004490| 20 49 66 20 70 61 72 61 | 20 69 73 20 30 2c 20 74 | If para| is 0, t|
|000044a0| 68 69 73 20 69 73 20 74 | 72 75 6c 79 20 61 20 30 |his is t|ruly a 0|
|000044b0| 20 76 6f 6c 75 6d 65 73 | 6c 69 64 65 2e 0a 20 2a | volumes|lide.. *|
|000044c0| 20 49 73 73 75 65 3a 20 | 69 73 20 74 68 65 20 74 | Issue: |is the t|
|000044d0| 65 73 74 20 72 65 61 6c | 6c 79 20 6e 65 63 65 73 |est real|ly neces|
|000044e0| 73 61 72 79 20 3f 20 43 | 61 6e 27 74 20 77 65 20 |sary ? C|an't we |
|000044f0| 64 6f 0a 20 2a 20 61 20 | 48 49 28 70 61 72 61 29 |do. * a |HI(para)|
|00004500| 20 2d 20 4c 4f 57 28 70 | 61 72 61 29 2e 0a 20 2a | - LOW(p|ara).. *|
|00004510| 2f 0a 76 6f 69 64 20 70 | 61 72 73 65 5f 73 6c 69 |/.void p|arse_sli|
|00004520| 64 65 76 6f 6c 28 63 68 | 2c 20 70 61 72 61 29 0a |devol(ch|, para).|
|00004530| 73 74 72 75 63 74 20 63 | 68 61 6e 6e 65 6c 20 2a |struct c|hannel *|
|00004540| 63 68 3b 0a 69 6e 74 20 | 70 61 72 61 3b 0a 20 20 |ch;.int |para;. |
|00004550| 20 20 7b 0a 20 20 20 20 | 69 66 20 28 4c 4f 57 28 | {. |if (LOW(|
|00004560| 70 61 72 61 29 29 0a 20 | 20 20 20 20 20 20 20 63 |para)). | c|
|00004570| 68 2d 3e 76 6f 6c 75 6d | 65 72 61 74 65 20 3d 20 |h->volum|erate = |
|00004580| 2d 4c 4f 57 28 70 61 72 | 61 29 3b 0a 20 20 20 20 |-LOW(par|a);. |
|00004590| 65 6c 73 65 0a 20 20 20 | 20 20 20 20 20 63 68 2d |else. | ch-|
|000045a0| 3e 76 6f 6c 75 6d 65 72 | 61 74 65 20 3d 20 48 49 |>volumer|ate = HI|
|000045b0| 28 70 61 72 61 29 3b 0a | 20 20 20 20 7d 0a 0a 76 |(para);.| }..v|
|000045c0| 6f 69 64 20 73 65 74 5f | 73 6c 69 64 65 76 6f 6c |oid set_|slidevol|
|000045d0| 28 61 2c 20 63 68 29 0a | 73 74 72 75 63 74 20 61 |(a, ch).|struct a|
|000045e0| 75 74 6f 6d 61 74 6f 6e | 20 2a 61 3b 0a 73 74 72 |utomaton| *a;.str|
|000045f0| 75 63 74 20 63 68 61 6e | 6e 65 6c 20 2a 63 68 3b |uct chan|nel *ch;|
|00004600| 0a 20 20 20 20 7b 0a 20 | 20 20 20 63 68 2d 3e 61 |. {. | ch->a|
|00004610| 64 6a 75 73 74 20 3d 20 | 64 6f 5f 73 6c 69 64 65 |djust = |do_slide|
|00004620| 76 6f 6c 3b 0a 20 20 20 | 20 70 61 72 73 65 5f 73 |vol;. | parse_s|
|00004630| 6c 69 64 65 76 6f 6c 28 | 63 68 2c 20 61 2d 3e 70 |lidevol(|ch, a->p|
|00004640| 61 72 61 29 3b 0a 20 20 | 20 20 7d 0a 0a 2f 2a 20 |ara);. | }../* |
|00004650| 70 6f 72 74 61 6d 65 6e | 74 6f 3a 20 67 65 74 73 |portamen|to: gets|
|00004660| 20 66 72 6f 6d 20 61 20 | 67 69 76 65 6e 20 70 69 | from a |given pi|
|00004670| 74 63 68 20 74 6f 20 61 | 6e 6f 74 68 65 72 2e 0a |tch to a|nother..|
|00004680| 20 2a 20 57 65 20 63 61 | 6e 20 73 69 6d 70 6c 69 | * We ca|n simpli|
|00004690| 66 79 20 74 68 65 20 72 | 6f 75 74 69 6e 65 20 62 |fy the r|outine b|
|000046a0| 79 20 63 75 74 74 69 6e | 67 20 69 74 20 69 6e 0a |y cuttin|g it in.|
|000046b0| 20 2a 20 61 20 70 69 74 | 63 68 20 75 70 20 61 6e | * a pit|ch up an|
|000046c0| 64 20 70 69 74 63 68 20 | 64 6f 77 6e 20 70 61 72 |d pitch |down par|
|000046d0| 74 20 77 68 69 6c 65 20 | 73 65 74 74 69 6e 67 20 |t while |setting |
|000046e0| 75 70 0a 20 2a 20 74 68 | 65 20 65 66 66 65 63 74 |up. * th|e effect|
|000046f0| 2e 0a 20 2a 2f 0a 76 6f | 69 64 20 64 6f 5f 70 6f |.. */.vo|id do_po|
|00004700| 72 74 61 6d 65 6e 74 6f | 28 63 68 29 0a 73 74 72 |rtamento|(ch).str|
|00004710| 75 63 74 20 63 68 61 6e | 6e 65 6c 20 2a 63 68 3b |uct chan|nel *ch;|
|00004720| 0a 20 20 20 20 7b 0a 20 | 20 20 20 69 66 20 28 63 |. {. | if (c|
|00004730| 68 2d 3e 70 69 74 63 68 | 20 3c 20 63 68 2d 3e 70 |h->pitch| < ch->p|
|00004740| 69 74 63 68 67 6f 61 6c | 29 0a 20 20 20 20 20 20 |itchgoal|). |
|00004750| 20 20 7b 0a 20 20 20 20 | 20 20 20 20 63 68 2d 3e | {. | ch->|
|00004760| 70 69 74 63 68 20 2b 3d | 20 63 68 2d 3e 70 69 74 |pitch +=| ch->pit|
|00004770| 63 68 72 61 74 65 3b 0a | 20 20 20 20 20 20 20 20 |chrate;.| |
|00004780| 63 68 2d 3e 70 69 74 63 | 68 20 3d 20 4d 49 4e 28 |ch->pitc|h = MIN(|
|00004790| 63 68 2d 3e 70 69 74 63 | 68 2c 20 63 68 2d 3e 70 |ch->pitc|h, ch->p|
|000047a0| 69 74 63 68 67 6f 61 6c | 29 3b 0a 20 20 20 20 20 |itchgoal|);. |
|000047b0| 20 20 20 7d 0a 20 20 20 | 20 65 6c 73 65 20 69 66 | }. | else if|
|000047c0| 20 28 63 68 2d 3e 70 69 | 74 63 68 20 3e 20 63 68 | (ch->pi|tch > ch|
|000047d0| 2d 3e 70 69 74 63 68 67 | 6f 61 6c 29 0a 20 20 20 |->pitchg|oal). |
|000047e0| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 63 | {. | c|
|000047f0| 68 2d 3e 70 69 74 63 68 | 20 2d 3d 20 63 68 2d 3e |h->pitch| -= ch->|
|00004800| 70 69 74 63 68 72 61 74 | 65 3b 0a 20 20 20 20 20 |pitchrat|e;. |
|00004810| 20 20 20 63 68 2d 3e 70 | 69 74 63 68 20 3d 20 4d | ch->p|itch = M|
|00004820| 41 58 28 63 68 2d 3e 70 | 69 74 63 68 2c 20 63 68 |AX(ch->p|itch, ch|
|00004830| 2d 3e 70 69 74 63 68 67 | 6f 61 6c 29 3b 0a 20 20 |->pitchg|oal);. |
|00004840| 20 20 20 20 20 20 7d 0a | 20 20 20 20 73 65 74 5f | }.| set_|
|00004850| 63 75 72 72 65 6e 74 5f | 70 69 74 63 68 28 63 68 |current_|pitch(ch|
|00004860| 2c 20 63 68 2d 3e 70 69 | 74 63 68 29 3b 0a 20 20 |, ch->pi|tch);. |
|00004870| 20 20 7d 0a 0a 2f 2a 20 | 69 66 20 70 61 72 61 20 | }../* |if para |
|00004880| 61 6e 64 20 70 69 74 63 | 68 20 61 72 65 20 30 2c |and pitc|h are 0,|
|00004890| 20 74 68 69 73 20 69 73 | 20 6f 62 76 69 6f 75 73 | this is| obvious|
|000048a0| 6c 79 20 61 20 63 6f 6e | 74 69 6e 75 61 74 69 6f |ly a con|tinuatio|
|000048b0| 6e 0a 20 2a 20 6f 66 20 | 74 68 65 20 70 72 65 76 |n. * of |the prev|
|000048c0| 69 6f 75 73 20 70 6f 72 | 74 61 6d 65 6e 74 6f 2e |ious por|tamento.|
|000048d0| 0a 20 2a 2f 0a 76 6f 69 | 64 20 73 65 74 5f 70 6f |. */.voi|d set_po|
|000048e0| 72 74 61 6d 65 6e 74 6f | 28 61 2c 20 63 68 29 0a |rtamento|(a, ch).|
|000048f0| 73 74 72 75 63 74 20 61 | 75 74 6f 6d 61 74 6f 6e |struct a|utomaton|
|00004900| 20 2a 61 3b 0a 73 74 72 | 75 63 74 20 63 68 61 6e | *a;.str|uct chan|
|00004910| 6e 65 6c 20 2a 63 68 3b | 0a 20 20 20 20 7b 0a 20 |nel *ch;|. {. |
|00004920| 20 20 20 63 68 2d 3e 61 | 64 6a 75 73 74 20 3d 20 | ch->a|djust = |
|00004930| 64 6f 5f 70 6f 72 74 61 | 6d 65 6e 74 6f 3b 0a 20 |do_porta|mento;. |
|00004940| 20 20 20 69 66 20 28 61 | 2d 3e 70 61 72 61 29 0a | if (a|->para).|
|00004950| 20 20 20 20 20 20 20 20 | 63 68 2d 3e 70 69 74 63 | |ch->pitc|
|00004960| 68 72 61 74 65 20 3d 20 | 61 2d 3e 70 61 72 61 3b |hrate = |a->para;|
|00004970| 0a 20 20 20 20 69 66 20 | 28 61 2d 3e 70 69 74 63 |. if |(a->pitc|
|00004980| 68 29 0a 20 20 20 20 20 | 20 20 20 63 68 2d 3e 70 |h). | ch->p|
|00004990| 69 74 63 68 67 6f 61 6c | 20 3d 20 61 2d 3e 70 69 |itchgoal| = a->pi|
|000049a0| 74 63 68 3b 0a 20 20 20 | 20 7d 0a 0a 2f 2a 0a 20 |tch;. | }../*. |
|000049b0| 2a 20 63 6f 6d 62 69 6e | 65 64 20 63 6f 6d 6d 61 |* combin|ed comma|
|000049c0| 6e 64 73 2e 0a 20 2a 2f | 0a 0a 76 6f 69 64 20 64 |nds.. */|..void d|
|000049d0| 6f 5f 70 6f 72 74 61 73 | 6c 69 64 65 28 63 68 29 |o_portas|lide(ch)|
|000049e0| 0a 73 74 72 75 63 74 20 | 63 68 61 6e 6e 65 6c 20 |.struct |channel |
|000049f0| 2a 63 68 3b 0a 20 20 20 | 20 7b 0a 20 20 20 20 64 |*ch;. | {. d|
|00004a00| 6f 5f 70 6f 72 74 61 6d | 65 6e 74 6f 28 63 68 29 |o_portam|ento(ch)|
|00004a10| 3b 0a 20 20 20 20 64 6f | 5f 73 6c 69 64 65 76 6f |;. do|_slidevo|
|00004a20| 6c 28 63 68 29 3b 0a 20 | 20 20 20 7d 0a 0a 76 6f |l(ch);. | }..vo|
|00004a30| 69 64 20 73 65 74 5f 70 | 6f 72 74 61 73 6c 69 64 |id set_p|ortaslid|
|00004a40| 65 28 61 2c 20 63 68 29 | 0a 73 74 72 75 63 74 20 |e(a, ch)|.struct |
|00004a50| 61 75 74 6f 6d 61 74 6f | 6e 20 2a 61 3b 0a 73 74 |automato|n *a;.st|
|00004a60| 72 75 63 74 20 63 68 61 | 6e 6e 65 6c 20 2a 63 68 |ruct cha|nnel *ch|
|00004a70| 3b 0a 20 20 20 20 7b 0a | 20 20 20 20 63 68 2d 3e |;. {.| ch->|
|00004a80| 61 64 6a 75 73 74 20 3d | 20 64 6f 5f 70 6f 72 74 |adjust =| do_port|
|00004a90| 61 73 6c 69 64 65 3b 0a | 20 20 20 20 70 61 72 73 |aslide;.| pars|
|00004aa0| 65 5f 73 6c 69 64 65 76 | 6f 6c 28 63 68 2c 20 61 |e_slidev|ol(ch, a|
|00004ab0| 2d 3e 70 61 72 61 29 3b | 0a 20 20 20 20 7d 0a 0a |->para);|. }..|
|00004ac0| 76 6f 69 64 20 64 6f 5f | 76 69 62 72 61 74 6f 73 |void do_|vibratos|
|00004ad0| 6c 69 64 65 28 63 68 29 | 0a 73 74 72 75 63 74 20 |lide(ch)|.struct |
|00004ae0| 63 68 61 6e 6e 65 6c 20 | 2a 63 68 3b 0a 20 20 20 |channel |*ch;. |
|00004af0| 20 7b 0a 20 20 20 20 64 | 6f 5f 76 69 62 72 61 74 | {. d|o_vibrat|
|00004b00| 6f 28 63 68 29 3b 0a 20 | 20 20 20 64 6f 5f 73 6c |o(ch);. | do_sl|
|00004b10| 69 64 65 76 6f 6c 28 63 | 68 29 3b 0a 20 20 20 20 |idevol(c|h);. |
|00004b20| 7d 0a 0a 76 6f 69 64 20 | 73 65 74 5f 76 69 62 72 |}..void |set_vibr|
|00004b30| 61 74 6f 73 6c 69 64 65 | 28 61 2c 20 63 68 29 0a |atoslide|(a, ch).|
|00004b40| 73 74 72 75 63 74 20 61 | 75 74 6f 6d 61 74 6f 6e |struct a|utomaton|
|00004b50| 20 2a 61 3b 0a 73 74 72 | 75 63 74 20 63 68 61 6e | *a;.str|uct chan|
|00004b60| 6e 65 6c 20 2a 63 68 3b | 0a 20 20 20 20 7b 0a 20 |nel *ch;|. {. |
|00004b70| 20 20 20 63 68 2d 3e 61 | 64 6a 75 73 74 20 3d 20 | ch->a|djust = |
|00004b80| 64 6f 5f 76 69 62 72 61 | 74 6f 73 6c 69 64 65 3b |do_vibra|toslide;|
|00004b90| 0a 20 20 20 20 70 61 72 | 73 65 5f 73 6c 69 64 65 |. par|se_slide|
|00004ba0| 76 6f 6c 28 63 68 2c 20 | 61 2d 3e 70 61 72 61 29 |vol(ch, |a->para)|
|00004bb0| 3b 0a 20 20 20 20 7d 0a | 0a 2f 2a 2a 2a 0a 20 2a |;. }.|./***. *|
|00004bc0| 0a 20 2a 20 20 65 66 66 | 65 63 74 73 20 74 68 61 |. * eff|ects tha|
|00004bd0| 74 20 6a 75 73 74 20 6e | 65 65 64 20 61 20 73 65 |t just n|eed a se|
|00004be0| 74 75 70 20 70 61 72 74 | 0a 20 2a 0a 20 2a 2a 2a |tup part|. *. ***|
|00004bf0| 2f 0a 0a 2f 2a 20 49 4d | 50 4f 52 54 41 4e 54 3a |/../* IM|PORTANT:|
|00004c00| 20 62 65 63 61 75 73 65 | 20 6f 66 20 74 68 65 20 | because| of the |
|00004c10| 73 70 65 63 69 61 6c 20 | 6e 61 74 75 72 65 20 6f |special |nature o|
|00004c20| 66 0a 20 2a 20 74 68 65 | 20 70 6c 61 79 65 72 2c |f. * the| player,|
|00004c30| 20 77 65 20 63 61 6e 27 | 74 20 70 72 6f 63 65 73 | we can'|t proces|
|00004c40| 73 20 65 61 63 68 20 65 | 66 66 65 63 74 20 69 6e |s each e|ffect in|
|00004c50| 64 65 70 65 6e 64 65 6e | 74 6c 79 2c 0a 20 2a 20 |dependen|tly,. * |
|00004c60| 77 65 20 68 61 76 65 20 | 74 6f 20 6d 65 72 67 65 |we have |to merge|
|00004c70| 20 65 66 66 65 63 74 73 | 20 66 72 6f 6d 20 74 68 | effects| from th|
|00004c80| 65 20 66 6f 75 72 20 63 | 68 61 6e 6e 65 6c 20 62 |e four c|hannel b|
|00004c90| 65 66 6f 72 65 0a 20 2a | 20 64 6f 69 6e 67 20 61 |efore. *| doing a|
|00004ca0| 6e 79 74 68 69 6e 67 20 | 61 62 6f 75 74 20 69 74 |nything |about it|
|00004cb0| 2e 20 46 6f 72 20 69 6e | 73 74 61 6e 63 65 2c 20 |. For in|stance, |
|00004cc0| 74 68 65 72 65 20 63 61 | 6e 20 62 65 20 0a 20 2a |there ca|n be . *|
|00004cd0| 20 73 65 76 65 72 61 6c | 20 73 70 65 65 64 20 63 | several| speed c|
|00004ce0| 68 61 6e 67 65 69 6e 20 | 74 68 65 20 73 61 6d 65 |hangein |the same|
|00004cf0| 20 6e 6f 74 65 2c 0a 20 | 2a 20 6f 6e 6c 79 20 74 | note,. |* only t|
|00004d00| 68 65 20 6c 61 73 74 20 | 6f 6e 65 20 74 61 6b 65 |he last |one take|
|00004d10| 73 20 65 66 66 65 63 74 | 2e 0a 20 2a 2f 0a 0a 76 |s effect|.. */..v|
|00004d20| 6f 69 64 20 73 65 74 5f | 73 70 65 65 64 28 61 2c |oid set_|speed(a,|
|00004d30| 20 63 68 29 0a 73 74 72 | 75 63 74 20 61 75 74 6f | ch).str|uct auto|
|00004d40| 6d 61 74 6f 6e 20 2a 61 | 3b 0a 73 74 72 75 63 74 |maton *a|;.struct|
|00004d50| 20 63 68 61 6e 6e 65 6c | 20 2a 63 68 3b 0a 20 20 | channel| *ch;. |
|00004d60| 20 20 7b 0a 20 20 20 20 | 61 2d 3e 6e 65 77 5f 73 | {. |a->new_s|
|00004d70| 70 65 65 64 20 3d 20 61 | 2d 3e 70 61 72 61 3b 0a |peed = a|->para;.|
|00004d80| 20 20 20 20 61 2d 3e 64 | 6f 5f 73 74 75 66 66 20 | a->d|o_stuff |
|00004d90| 7c 3d 20 53 45 54 5f 53 | 50 45 45 44 3b 0a 20 20 ||= SET_S|PEED;. |
|00004da0| 20 20 7d 0a 0a 76 6f 69 | 64 20 73 65 74 5f 73 6b | }..voi|d set_sk|
|00004db0| 69 70 28 61 2c 20 63 68 | 29 0a 73 74 72 75 63 74 |ip(a, ch|).struct|
|00004dc0| 20 61 75 74 6f 6d 61 74 | 6f 6e 20 2a 61 3b 0a 73 | automat|on *a;.s|
|00004dd0| 74 72 75 63 74 20 63 68 | 61 6e 6e 65 6c 20 2a 63 |truct ch|annel *c|
|00004de0| 68 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 20 20 20 |h;. {|. |
|00004df0| 20 2f 2a 20 79 65 70 2c | 20 74 68 69 73 20 69 73 | /* yep,| this is|
|00004e00| 20 42 43 44 2e 20 2a 2f | 0a 20 20 20 20 61 2d 3e | BCD. */|. a->|
|00004e10| 6e 65 77 5f 6e 6f 74 65 | 20 3d 20 48 49 28 61 2d |new_note| = HI(a-|
|00004e20| 3e 70 61 72 61 29 20 2a | 20 31 30 20 2b 20 4c 4f |>para) *| 10 + LO|
|00004e30| 57 28 61 2d 3e 70 61 72 | 61 29 3b 0a 20 20 20 20 |W(a->par|a);. |
|00004e40| 61 2d 3e 64 6f 5f 73 74 | 75 66 66 20 7c 3d 20 53 |a->do_st|uff |= S|
|00004e50| 45 54 5f 53 4b 49 50 3b | 0a 20 20 20 20 7d 0a 0a |ET_SKIP;|. }..|
|00004e60| 76 6f 69 64 20 73 65 74 | 5f 66 61 73 74 73 6b 69 |void set|_fastski|
|00004e70| 70 28 61 2c 20 63 68 29 | 0a 73 74 72 75 63 74 20 |p(a, ch)|.struct |
|00004e80| 61 75 74 6f 6d 61 74 6f | 6e 20 2a 61 3b 0a 73 74 |automato|n *a;.st|
|00004e90| 72 75 63 74 20 63 68 61 | 6e 6e 65 6c 20 2a 63 68 |ruct cha|nnel *ch|
|00004ea0| 3b 0a 20 20 20 20 7b 0a | 20 20 20 20 61 2d 3e 6e |;. {.| a->n|
|00004eb0| 65 77 5f 70 61 74 74 65 | 72 6e 20 3d 20 61 2d 3e |ew_patte|rn = a->|
|00004ec0| 70 61 72 61 3b 0a 20 20 | 20 20 61 2d 3e 64 6f 5f |para;. | a->do_|
|00004ed0| 73 74 75 66 66 20 7c 3d | 20 53 45 54 5f 46 41 53 |stuff |=| SET_FAS|
|00004ee0| 54 53 4b 49 50 3b 0a 20 | 20 20 20 7d 0a 0a 2f 2a |TSKIP;. | }../*|
|00004ef0| 20 69 6d 6d 65 64 69 61 | 74 65 20 65 66 66 65 63 | immedia|te effec|
|00004f00| 74 3a 20 73 74 61 72 74 | 73 20 74 68 65 20 73 61 |t: start|s the sa|
|00004f10| 6d 70 6c 65 20 73 6f 6d | 65 77 68 65 72 65 0a 20 |mple som|ewhere. |
|00004f20| 2a 20 6f 66 66 20 74 68 | 65 20 73 74 61 72 74 2e |* off th|e start.|
|00004f30| 0a 20 2a 2f 0a 76 6f 69 | 64 20 73 65 74 5f 6f 66 |. */.voi|d set_of|
|00004f40| 66 73 65 74 28 61 2c 20 | 63 68 29 0a 73 74 72 75 |fset(a, |ch).stru|
|00004f50| 63 74 20 61 75 74 6f 6d | 61 74 6f 6e 20 2a 61 3b |ct autom|aton *a;|
|00004f60| 0a 73 74 72 75 63 74 20 | 63 68 61 6e 6e 65 6c 20 |.struct |channel |
|00004f70| 2a 63 68 3b 0a 20 20 20 | 20 7b 0a 20 20 20 20 63 |*ch;. | {. c|
|00004f80| 68 2d 3e 70 6f 69 6e 74 | 65 72 20 3d 20 69 6e 74 |h->point|er = int|
|00004f90| 5f 74 6f 5f 66 69 78 28 | 61 2d 3e 70 61 72 61 20 |_to_fix(|a->para |
|00004fa0| 2a 20 32 35 36 29 3b 0a | 20 20 20 20 7d 0a 0a 2f |* 256);.| }../|
|00004fb0| 2a 20 63 68 61 6e 67 65 | 20 74 68 65 20 76 6f 6c |* change| the vol|
|00004fc0| 75 6d 65 20 6f 66 20 74 | 68 65 20 63 75 72 72 65 |ume of t|he curre|
|00004fd0| 6e 74 20 63 68 61 6e 6e | 65 6c 2e 0a 20 2a 20 49 |nt chann|el.. * I|
|00004fe0| 73 20 65 66 66 65 63 74 | 69 76 65 20 75 6e 74 69 |s effect|ive unti|
|00004ff0| 6c 20 74 68 65 72 65 20 | 69 73 20 61 20 6e 65 77 |l there |is a new|
|00005000| 20 73 65 74 5f 76 6f 6c | 75 6d 65 2c 0a 20 2a 20 | set_vol|ume,. * |
|00005010| 73 6c 69 64 65 5f 76 6f | 6c 75 6d 65 2c 20 6f 72 |slide_vo|lume, or|
|00005020| 20 61 6e 20 69 6e 73 74 | 72 75 6d 65 6e 74 20 69 | an inst|rument i|
|00005030| 73 20 72 65 6c 6f 61 64 | 65 64 20 0a 20 2a 20 65 |s reload|ed . * e|
|00005040| 78 70 6c 69 63 69 74 6c | 79 20 62 79 20 67 69 76 |xplicitl|y by giv|
|00005050| 69 6e 67 20 69 74 73 20 | 6e 75 6d 62 65 72 2e 20 |ing its |number. |
|00005060| 4f 62 76 69 6f 75 73 6c | 79 2c 20 69 66 0a 20 2a |Obviousl|y, if. *|
|00005070| 20 79 6f 75 20 6c 6f 61 | 64 20 61 6e 20 69 6e 73 | you loa|d an ins|
|00005080| 74 72 75 6d 65 6e 74 20 | 61 6e 64 20 64 6f 20 61 |trument |and do a|
|00005090| 20 73 65 74 5f 76 6f 6c | 75 6d 65 20 69 6e 20 74 | set_vol|ume in t|
|000050a0| 68 65 0a 20 2a 20 73 61 | 6d 65 20 6e 6f 74 65 2c |he. * sa|me note,|
|000050b0| 20 74 68 65 20 73 65 74 | 5f 76 6f 6c 75 6d 65 20 | the set|_volume |
|000050c0| 77 69 6c 6c 20 74 61 6b | 65 20 70 72 65 63 65 64 |will tak|e preced|
|000050d0| 65 6e 63 65 2e 0a 20 2a | 2f 0a 76 6f 69 64 20 73 |ence.. *|/.void s|
|000050e0| 65 74 5f 76 6f 6c 75 6d | 65 28 61 2c 20 63 68 29 |et_volum|e(a, ch)|
|000050f0| 0a 73 74 72 75 63 74 20 | 61 75 74 6f 6d 61 74 6f |.struct |automato|
|00005100| 6e 20 2a 61 3b 0a 73 74 | 72 75 63 74 20 63 68 61 |n *a;.st|ruct cha|
|00005110| 6e 6e 65 6c 20 2a 63 68 | 3b 0a 20 20 20 20 7b 0a |nnel *ch|;. {.|
|00005120| 20 20 20 20 63 68 2d 3e | 76 6f 6c 75 6d 65 20 3d | ch->|volume =|
|00005130| 20 61 2d 3e 70 61 72 61 | 3b 0a 20 20 20 20 7d 0a | a->para|;. }.|
|00005140| 0a 0a 0a 0a 0a 2f 2a 20 | 49 6e 69 74 69 61 6c 69 |...../* |Initiali|
|00005150| 7a 65 20 74 68 65 20 77 | 68 6f 6c 65 20 65 66 66 |ze the w|hole eff|
|00005160| 65 63 74 20 74 61 62 6c | 65 20 2a 2f 0a 0a 76 6f |ect tabl|e */..vo|
|00005170| 69 64 20 69 6e 69 74 5f | 65 66 66 65 63 74 73 28 |id init_|effects(|
|00005180| 74 61 62 6c 65 29 0a 76 | 6f 69 64 20 28 2a 74 61 |table).v|oid (*ta|
|00005190| 62 6c 65 5b 5d 29 28 29 | 3b 0a 20 20 20 20 7b 0a |ble[])()|;. {.|
|000051a0| 20 20 20 20 74 61 62 6c | 65 5b 30 5d 20 3d 20 73 | tabl|e[0] = s|
|000051b0| 65 74 5f 61 72 70 65 67 | 67 69 6f 3b 0a 20 20 20 |et_arpeg|gio;. |
|000051c0| 20 74 61 62 6c 65 5b 31 | 35 5d 20 3d 20 73 65 74 | table[1|5] = set|
|000051d0| 5f 73 70 65 65 64 3b 0a | 20 20 20 20 74 61 62 6c |_speed;.| tabl|
|000051e0| 65 5b 31 33 5d 20 3d 20 | 73 65 74 5f 73 6b 69 70 |e[13] = |set_skip|
|000051f0| 3b 0a 20 20 20 20 74 61 | 62 6c 65 5b 31 31 5d 20 |;. ta|ble[11] |
|00005200| 3d 20 73 65 74 5f 66 61 | 73 74 73 6b 69 70 3b 0a |= set_fa|stskip;.|
|00005210| 20 20 20 20 74 61 62 6c | 65 5b 31 32 5d 20 3d 20 | tabl|e[12] = |
|00005220| 73 65 74 5f 76 6f 6c 75 | 6d 65 3b 0a 20 20 20 20 |set_volu|me;. |
|00005230| 74 61 62 6c 65 5b 31 30 | 5d 20 3d 20 73 65 74 5f |table[10|] = set_|
|00005240| 73 6c 69 64 65 76 6f 6c | 3b 0a 20 20 20 20 74 61 |slidevol|;. ta|
|00005250| 62 6c 65 5b 39 5d 20 3d | 20 73 65 74 5f 6f 66 66 |ble[9] =| set_off|
|00005260| 73 65 74 3b 0a 20 20 20 | 20 74 61 62 6c 65 5b 33 |set;. | table[3|
|00005270| 5d 20 3d 20 73 65 74 5f | 70 6f 72 74 61 6d 65 6e |] = set_|portamen|
|00005280| 74 6f 3b 0a 20 20 20 20 | 74 61 62 6c 65 5b 35 5d |to;. |table[5]|
|00005290| 20 3d 20 73 65 74 5f 70 | 6f 72 74 61 73 6c 69 64 | = set_p|ortaslid|
|000052a0| 65 3b 0a 20 20 20 20 74 | 61 62 6c 65 5b 32 5d 20 |e;. t|able[2] |
|000052b0| 3d 20 73 65 74 5f 75 70 | 73 6c 69 64 65 3b 0a 20 |= set_up|slide;. |
|000052c0| 20 20 20 74 61 62 6c 65 | 5b 31 5d 20 3d 20 73 65 | table|[1] = se|
|000052d0| 74 5f 64 6f 77 6e 73 6c | 69 64 65 3b 0a 20 20 20 |t_downsl|ide;. |
|000052e0| 20 74 61 62 6c 65 5b 34 | 5d 20 3d 20 73 65 74 5f | table[4|] = set_|
|000052f0| 76 69 62 72 61 74 6f 3b | 0a 20 20 20 20 74 61 62 |vibrato;|. tab|
|00005300| 6c 65 5b 36 5d 20 3d 20 | 73 65 74 5f 76 69 62 72 |le[6] = |set_vibr|
|00005310| 61 74 6f 73 6c 69 64 65 | 3b 0a 20 20 20 20 74 61 |atoslide|;. ta|
|00005320| 62 6c 65 5b 31 34 5d 20 | 3d 20 73 65 74 5f 6e 6f |ble[14] |= set_no|
|00005330| 74 68 69 6e 67 3b 0a 20 | 20 20 20 74 61 62 6c 65 |thing;. | table|
|00005340| 5b 37 5d 20 3d 20 73 65 | 74 5f 6e 6f 74 68 69 6e |[7] = se|t_nothin|
|00005350| 67 3b 0a 20 20 20 20 74 | 61 62 6c 65 5b 38 5d 20 |g;. t|able[8] |
|00005360| 3d 20 73 65 74 5f 6e 6f | 74 68 69 6e 67 3b 0a 20 |= set_no|thing;. |
|00005370| 20 20 20 7d 0a 0a 0a 20 | 2a 20 28 61 74 74 61 63 | }... |* (attac|
|00005380| 6b 2f 64 65 63 61 79 2f | 73 75 73 74 61 69 6e 29 |k/decay/|sustain)|
|00005390| 2e 0a 20 2a 2f 0a 76 6f | 69 64 20 64 6f 5f 73 6c |.. */.vo|id do_sl|
|000053a0| 69 64 65 76 6f 6c 28 63 | 68 29 0a 73 74 72 75 63 |idevol(c|h).struc|
|000053b0| 74 20 63 68 61 6e 6e 65 | 6c 20 2a 63 68 3b 0a 20 |t channe|l *ch;. |
|000053c0| 20 20 20 7b 0a 20 20 20 | 20 63 68 2d 3e 76 6f 6c | {. | ch->vol|
|000053d0| 75 6d 65 20 2b 3d 20 63 | 68 2d 3e 76 6f 6c 75 6d |ume += c|h->volum|
|000053e0| 65 72 61 74 65 3b 0a 20 | 20 20 20 63 68 2d 3e 76 |erate;. | ch->v|
|000053f0| 6f 6c 75 6d 65 20 3d 20 | 4d 49 4e 28 63 68 2d 3e |olume = |MIN(ch->|
|00005400| 70 6c 61 79 65 72 2e 63 | 00 00 00 00 00 00 00 00 |player.c|........|
|00005410| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005420| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005430| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005440| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005450| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005460| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00005470| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00005480| 20 20 31 33 36 32 33 20 | 20 35 31 31 37 31 36 30 | 13623 | 5117160|
|00005490| 31 33 36 20 20 20 35 36 | 33 32 00 20 00 00 00 00 |136 56|32. ....|
|000054a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000054b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000054c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000054d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000054e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000054f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005500| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005510| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005520| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005530| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005540| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005550| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005560| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005570| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005580| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005590| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005600| 2f 2a 20 70 6c 61 79 65 | 72 2e 63 20 2a 2f 0a 0a |/* playe|r.c */..|
|00005610| 2f 2a 20 24 41 75 74 68 | 6f 72 3a 20 65 73 70 69 |/* $Auth|or: espi|
|00005620| 65 20 24 0a 20 2a 20 24 | 49 64 3a 20 70 6c 61 79 |e $. * $|Id: play|
|00005630| 65 72 2e 63 2c 76 20 32 | 2e 31 30 20 31 39 39 31 |er.c,v 2|.10 1991|
|00005640| 2f 31 32 2f 30 33 20 32 | 33 3a 30 33 3a 33 39 20 |/12/03 2|3:03:39 |
|00005650| 65 73 70 69 65 20 45 78 | 70 20 65 73 70 69 65 20 |espie Ex|p espie |
|00005660| 24 0a 20 2a 20 24 52 65 | 76 69 73 69 6f 6e 3a 20 |$. * $Re|vision: |
|00005670| 32 2e 31 30 20 24 0a 20 | 2a 20 24 4c 6f 67 3a 20 |2.10 $. |* $Log: |
|00005680| 70 6c 61 79 65 72 2e 63 | 2c 76 20 24 0a 20 2a 20 |player.c|,v $. * |
|00005690| 52 65 76 69 73 69 6f 6e | 20 32 2e 31 30 20 20 31 |Revision| 2.10 1|
|000056a0| 39 39 31 2f 31 32 2f 30 | 33 20 20 32 33 3a 30 33 |991/12/0|3 23:03|
|000056b0| 3a 33 39 20 20 65 73 70 | 69 65 0a 20 2a 20 41 64 |:39 esp|ie. * Ad|
|000056c0| 64 65 64 20 74 72 61 6e | 73 70 6f 73 65 20 66 65 |ded tran|spose fe|
|000056d0| 61 74 75 72 65 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 |ature.. |*. * Rev|
|000056e0| 69 73 69 6f 6e 20 32 2e | 39 20 20 31 39 39 31 2f |ision 2.|9 1991/|
|000056f0| 31 32 2f 30 33 20 20 32 | 31 3a 32 34 3a 35 33 20 |12/03 2|1:24:53 |
|00005700| 20 65 73 70 69 65 0a 20 | 2a 20 52 65 76 65 72 74 | espie. |* Revert|
|00005710| 65 64 20 74 6f 20 70 72 | 65 76 69 6f 75 73 20 62 |ed to pr|evious b|
|00005720| 65 68 61 76 69 6f 75 72 | 20 62 65 63 61 75 73 65 |ehaviour| because|
|00005730| 20 6f 66 20 69 6e 74 72 | 6f 6d 75 73 69 63 36 2e | of intr|omusic6.|
|00005740| 62 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |b.. *. *| Revisio|
|00005750| 6e 20 32 2e 38 20 20 31 | 39 39 31 2f 31 32 2f 30 |n 2.8 1|991/12/0|
|00005760| 33 20 20 32 30 3a 34 33 | 3a 34 36 20 20 65 73 70 |3 20:43|:46 esp|
|00005770| 69 65 0a 20 2a 20 41 64 | 64 65 64 20 70 6f 73 73 |ie. * Ad|ded poss|
|00005780| 69 62 69 6c 69 74 79 20 | 74 6f 20 67 65 74 20 62 |ibility |to get b|
|00005790| 61 63 6b 20 74 6f 20 4d | 4f 4e 4f 20 66 6f 72 20 |ack to M|ONO for |
|000057a0| 74 68 65 20 73 67 69 2e | 0a 20 2a 0a 20 2a 20 52 |the sgi.|. *. * R|
|000057b0| 65 76 69 73 69 6f 6e 20 | 32 2e 37 20 20 31 39 39 |evision |2.7 199|
|000057c0| 31 2f 31 32 2f 30 33 20 | 20 31 38 3a 30 37 3a 33 |1/12/03 | 18:07:3|
|000057d0| 38 20 20 65 73 70 69 65 | 0a 20 2a 20 41 64 64 65 |8 espie|. * Adde|
|000057e0| 64 20 73 74 65 72 65 6f | 20 63 61 70 61 62 69 6c |d stereo| capabil|
|000057f0| 69 74 69 65 73 20 74 6f | 20 74 68 65 20 69 6e 64 |ities to| the ind|
|00005800| 69 67 6f 20 76 65 72 73 | 69 6f 6e 2e 0a 20 2a 0a |igo vers|ion.. *.|
|00005810| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 32 2e 36 20 | * Revis|ion 2.6 |
|00005820| 20 31 39 39 31 2f 31 32 | 2f 30 33 20 20 31 37 3a | 1991/12|/03 17:|
|00005830| 31 32 3a 33 33 20 20 65 | 73 70 69 65 0a 20 2a 20 |12:33 e|spie. * |
|00005840| 4d 69 6e 6f 72 20 63 68 | 61 6e 67 65 73 20 3f 3f |Minor ch|anges ??|
|00005850| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00005860| 32 2e 35 20 20 31 39 39 | 31 2f 31 31 2f 31 39 20 |2.5 199|1/11/19 |
|00005870| 20 31 36 3a 30 37 3a 31 | 39 20 20 65 73 70 69 65 | 16:07:1|9 espie|
|00005880| 0a 20 2a 20 41 64 64 65 | 64 20 63 6f 6d 6d 65 6e |. * Adde|d commen|
|00005890| 74 73 2c 20 6d 6f 76 65 | 64 20 6d 69 6e 6f 72 20 |ts, move|d minor |
|000058a0| 73 74 75 66 66 20 61 72 | 6f 75 6e 64 2e 0a 20 2a |stuff ar|ound.. *|
|000058b0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 34 |. * Revi|sion 2.4|
|000058c0| 20 20 31 39 39 31 2f 31 | 31 2f 31 38 20 20 31 34 | 1991/1|1/18 14|
|000058d0| 3a 31 30 3a 33 30 20 20 | 65 73 70 69 65 0a 20 2a |:10:30 |espie. *|
|000058e0| 20 4d 6f 76 65 64 20 72 | 65 73 61 6d 70 6c 65 20 | Moved r|esample |
|000058f0| 70 61 72 74 20 61 6e 64 | 20 65 6d 70 74 79 20 73 |part and| empty s|
|00005900| 61 6d 70 6c 65 20 74 65 | 73 74 20 74 6f 20 61 75 |ample te|st to au|
|00005910| 64 69 6f 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |dio.. *.| * Revis|
|00005920| 69 6f 6e 20 32 2e 33 20 | 20 31 39 39 31 2f 31 31 |ion 2.3 | 1991/11|
|00005930| 2f 31 38 20 20 30 31 3a | 32 33 3a 33 30 20 20 65 |/18 01:|23:30 e|
|00005940| 73 70 69 65 0a 20 2a 20 | 41 64 64 65 64 20 74 77 |spie. * |Added tw|
|00005950| 6f 20 6c 65 76 65 6c 20 | 6f 66 20 66 61 75 6c 74 |o level |of fault|
|00005960| 20 74 6f 6c 65 72 61 6e | 63 79 2e 0a 20 2a 0a 20 | toleran|cy.. *. |
|00005970| 2a 20 52 65 76 69 73 69 | 6f 6e 20 32 2e 32 20 20 |* Revisi|on 2.2 |
|00005980| 31 39 39 31 2f 31 31 2f | 31 38 20 20 30 31 3a 31 |1991/11/|18 01:1|
|00005990| 32 3a 33 31 20 20 65 73 | 70 69 65 0a 20 2a 20 41 |2:31 es|pie. * A|
|000059a0| 64 64 65 64 20 73 6f 6d | 65 20 63 6f 6e 74 72 6f |dded som|e contro|
|000059b0| 6c 20 6f 6e 20 74 68 65 | 20 6e 75 6d 62 65 72 20 |l on the| number |
|000059c0| 6f 66 20 72 65 70 6c 61 | 79 73 2c 0a 20 2a 20 61 |of repla|ys,. * a|
|000059d0| 6e 64 20 62 65 74 74 65 | 72 20 65 72 72 6f 72 20 |nd bette|r error |
|000059e0| 72 65 63 6f 76 65 72 79 | 2e 0a 20 2a 0a 20 2a 20 |recovery|.. *. * |
|000059f0| 52 65 76 69 73 69 6f 6e | 20 32 2e 31 20 20 31 39 |Revision| 2.1 19|
|00005a00| 39 31 2f 31 31 2f 31 37 | 20 20 32 33 3a 30 37 3a |91/11/17| 23:07:|
|00005a10| 35 38 20 20 65 73 70 69 | 65 0a 20 2a 20 43 6f 6d |58 espi|e. * Com|
|00005a20| 69 6e 67 20 66 72 6f 6d | 20 73 74 72 33 32 2e 0a |ing from| str32..|
|00005a30| 20 2a 0a 20 2a 2f 0a 20 | 20 20 20 20 0a 73 74 61 | *. */. | .sta|
|00005a40| 74 69 63 20 63 68 61 72 | 20 2a 69 64 20 3d 20 22 |tic char| *id = "|
|00005a50| 24 49 64 3a 20 70 6c 61 | 79 65 72 2e 63 2c 76 20 |$Id: pla|yer.c,v |
|00005a60| 32 2e 31 30 20 31 39 39 | 31 2f 31 32 2f 30 33 20 |2.10 199|1/12/03 |
|00005a70| 32 33 3a 30 33 3a 33 39 | 20 65 73 70 69 65 20 45 |23:03:39| espie E|
|00005a80| 78 70 20 65 73 70 69 65 | 20 24 22 3b 0a 0a 23 69 |xp espie| $";..#i|
|00005a90| 66 64 65 66 20 53 48 4f | 57 5f 53 45 51 0a 63 68 |fdef SHO|W_SEQ.ch|
|00005aa0| 61 72 20 2a 6e 75 6d 5b | 5d 20 3d 20 7b 0a 22 20 |ar *num[|] = {." |
|00005ab0| 30 22 2c 20 22 20 31 22 | 2c 20 22 20 32 22 2c 20 |0", " 1"|, " 2", |
|00005ac0| 22 20 33 22 2c 20 22 20 | 34 22 2c 20 22 20 35 22 |" 3", " |4", " 5"|
|00005ad0| 2c 20 22 20 36 22 2c 20 | 22 20 37 22 2c 20 22 20 |, " 6", |" 7", " |
|00005ae0| 38 22 2c 20 22 20 39 22 | 2c 0a 22 31 30 22 2c 20 |8", " 9"|,."10", |
|00005af0| 22 31 31 22 2c 20 22 31 | 32 22 2c 20 22 31 33 22 |"11", "1|2", "13"|
|00005b00| 2c 20 22 31 34 22 2c 20 | 22 31 35 22 2c 20 22 31 |, "14", |"15", "1|
|00005b10| 36 22 2c 20 22 31 37 22 | 2c 20 22 31 38 22 2c 20 |6", "17"|, "18", |
|00005b20| 22 31 39 22 2c 0a 22 32 | 30 22 2c 20 22 32 31 22 |"19",."2|0", "21"|
|00005b30| 2c 20 22 32 32 22 2c 20 | 22 32 33 22 2c 20 22 32 |, "22", |"23", "2|
|00005b40| 34 22 2c 20 22 32 35 22 | 2c 20 22 32 36 22 2c 20 |4", "25"|, "26", |
|00005b50| 22 32 37 22 2c 20 22 32 | 38 22 2c 20 22 32 39 22 |"27", "2|8", "29"|
|00005b60| 2c 0a 22 33 30 22 2c 20 | 22 33 31 22 2c 20 22 33 |,."30", |"31", "3|
|00005b70| 32 22 2c 20 22 33 33 22 | 2c 20 22 33 34 22 2c 20 |2", "33"|, "34", |
|00005b80| 22 33 35 22 2c 20 22 33 | 36 22 2c 20 22 33 37 22 |"35", "3|6", "37"|
|00005b90| 2c 20 22 33 38 22 2c 20 | 22 33 39 22 7d 3b 0a 23 |, "38", |"39"};.#|
|00005ba0| 65 6e 64 69 66 0a 0a 23 | 69 6e 63 6c 75 64 65 20 |endif..#|include |
|00005bb0| 3c 73 74 64 69 6f 2e 68 | 3e 0a 20 20 20 20 20 0a |<stdio.h|>. .|
|00005bc0| 23 69 6e 63 6c 75 64 65 | 20 22 65 78 74 65 72 6e |#include| "extern|
|00005bd0| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 6d 61 |.h".#inc|lude "ma|
|00005be0| 63 68 69 6e 65 2e 68 22 | 0a 23 69 6e 63 6c 75 64 |chine.h"|.#includ|
|00005bf0| 65 20 22 73 6f 6e 67 2e | 68 22 0a 23 69 6e 63 6c |e "song.|h".#incl|
|00005c00| 75 64 65 20 22 63 68 61 | 6e 6e 65 6c 2e 68 22 0a |ude "cha|nnel.h".|
|00005c10| 23 69 6e 63 6c 75 64 65 | 20 22 70 72 65 66 2e 68 |#include| "pref.h|
|00005c20| 22 0a 20 20 20 20 20 0a | 20 20 20 20 20 0a 0a 2f |". .| ../|
|00005c30| 2a 20 69 6e 69 74 5f 63 | 68 61 6e 6e 65 6c 28 63 |* init_c|hannel(c|
|00005c40| 68 2c 20 64 75 6d 6d 79 | 29 3a 0a 20 2a 20 73 65 |h, dummy|):. * se|
|00005c50| 74 75 70 20 63 68 61 6e | 6e 65 6c 2c 20 77 69 74 |tup chan|nel, wit|
|00005c60| 68 20 69 6e 69 74 69 61 | 6c 6c 79 0a 20 2a 20 61 |h initia|lly. * a|
|00005c70| 20 64 75 6d 6d 79 20 73 | 61 6d 70 6c 65 20 72 65 | dummy s|ample re|
|00005c80| 61 64 79 20 74 6f 20 70 | 6c 61 79 2c 0a 20 2a 20 |ady to p|lay,. * |
|00005c90| 61 6e 64 20 6e 6f 20 6e | 6f 74 65 2e 0a 20 2a 2f |and no n|ote.. */|
|00005ca0| 0a 76 6f 69 64 20 69 6e | 69 74 5f 63 68 61 6e 6e |.void in|it_chann|
|00005cb0| 65 6c 28 63 68 2c 20 64 | 75 6d 6d 79 29 0a 73 74 |el(ch, d|ummy).st|
|00005cc0| 72 75 63 74 20 63 68 61 | 6e 6e 65 6c 20 2a 63 68 |ruct cha|nnel *ch|
|00005cd0| 3b 0a 73 74 72 75 63 74 | 20 73 61 6d 70 6c 65 5f |;.struct| sample_|
|00005ce0| 69 6e 66 6f 20 2a 64 75 | 6d 6d 79 3b 0a 20 20 20 |info *du|mmy;. |
|00005cf0| 20 7b 0a 20 20 20 20 63 | 68 2d 3e 73 61 6d 70 20 | {. c|h->samp |
|00005d00| 3d 20 64 75 6d 6d 79 3b | 0a 20 20 20 20 63 68 2d |= dummy;|. ch-|
|00005d10| 3e 6d 6f 64 65 20 3d 20 | 44 4f 5f 4e 4f 54 48 49 |>mode = |DO_NOTHI|
|00005d20| 4e 47 3b 20 0a 20 20 20 | 20 63 68 2d 3e 70 6f 69 |NG; . | ch->poi|
|00005d30| 6e 74 65 72 20 3d 20 30 | 3b 20 0a 20 20 20 20 63 |nter = 0|; . c|
|00005d40| 68 2d 3e 73 74 65 70 20 | 3d 20 30 3b 20 0a 20 20 |h->step |= 0; . |
|00005d50| 20 20 63 68 2d 3e 76 6f | 6c 75 6d 65 20 3d 20 30 | ch->vo|lume = 0|
|00005d60| 3b 20 0a 20 20 20 20 63 | 68 2d 3e 70 69 74 63 68 |; . c|h->pitch|
|00005d70| 20 3d 20 30 3b 20 0a 20 | 20 20 20 63 68 2d 3e 6e | = 0; . | ch->n|
|00005d80| 6f 74 65 20 3d 20 4e 4f | 5f 4e 4f 54 45 3b 0a 0a |ote = NO|_NOTE;..|
|00005d90| 20 20 20 20 20 20 20 20 | 2f 2a 20 77 65 20 64 6f | |/* we do|
|00005da0| 6e 27 74 20 73 65 74 75 | 70 20 61 72 70 65 67 67 |n't setu|p arpegg|
|00005db0| 69 6f 20 76 61 6c 75 65 | 73 2e 20 2a 2f 0a 20 20 |io value|s. */. |
|00005dc0| 20 20 63 68 2d 3e 76 69 | 62 6f 66 66 73 65 74 20 | ch->vi|boffset |
|00005dd0| 3d 20 30 3b 20 0a 20 20 | 20 20 63 68 2d 3e 76 69 |= 0; . | ch->vi|
|00005de0| 62 64 65 70 74 68 20 3d | 20 30 3b 0a 0a 20 20 20 |bdepth =| 0;.. |
|00005df0| 20 63 68 2d 3e 73 6c 69 | 64 65 20 3d 20 30 3b 20 | ch->sli|de = 0; |
|00005e00| 0a 0a 20 20 20 20 63 68 | 2d 3e 70 69 74 63 68 67 |.. ch|->pitchg|
|00005e10| 6f 61 6c 20 3d 20 30 3b | 20 0a 20 20 20 20 63 68 |oal = 0;| . ch|
|00005e20| 2d 3e 70 69 74 63 68 72 | 61 74 65 20 3d 20 30 3b |->pitchr|ate = 0;|
|00005e30| 0a 0a 20 20 20 20 63 68 | 2d 3e 76 6f 6c 75 6d 65 |.. ch|->volume|
|00005e40| 72 61 74 65 20 3d 20 30 | 3b 0a 0a 20 20 20 20 63 |rate = 0|;.. c|
|00005e50| 68 2d 3e 76 69 62 72 61 | 74 65 20 3d 20 30 3b 0a |h->vibra|te = 0;.|
|00005e60| 20 20 20 20 63 68 2d 3e | 61 64 6a 75 73 74 20 3d | ch->|adjust =|
|00005e70| 20 64 6f 5f 6e 6f 74 68 | 69 6e 67 3b 0a 20 20 20 | do_noth|ing;. |
|00005e80| 20 7d 0a 0a 0a 0a 69 6e | 74 20 56 53 59 4e 43 3b | }....in|t VSYNC;|
|00005e90| 20 20 20 20 20 20 20 20 | 20 20 2f 2a 20 62 61 73 | | /* bas|
|00005ea0| 65 20 6e 75 6d 62 65 72 | 20 6f 66 20 73 61 6d 70 |e number| of samp|
|00005eb0| 6c 65 20 74 6f 20 6f 75 | 74 70 75 74 20 2a 2f 0a |le to ou|tput */.|
|00005ec0| 76 6f 69 64 20 28 2a 65 | 76 61 6c 5b 4e 55 4d 42 |void (*e|val[NUMB|
|00005ed0| 45 52 5f 45 46 46 45 43 | 54 53 5d 29 28 29 3b 0a |ER_EFFEC|TS])();.|
|00005ee0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005ef0| 20 20 20 20 2f 2a 20 74 | 68 65 20 65 66 66 65 63 | /* t|he effec|
|00005f00| 74 20 74 61 62 6c 65 20 | 2a 2f 0a 69 6e 74 20 6f |t table |*/.int o|
|00005f10| 76 65 72 73 61 6d 70 6c | 65 3b 20 20 20 20 20 2f |versampl|e; /|
|00005f20| 2a 20 6f 76 65 72 73 61 | 6d 70 6c 65 20 76 61 6c |* oversa|mple val|
|00005f30| 75 65 20 2a 2f 0a 69 6e | 74 20 66 72 65 71 75 65 |ue */.in|t freque|
|00005f40| 6e 63 79 3b 20 20 20 20 | 20 20 2f 2a 20 6f 75 74 |ncy; | /* out|
|00005f50| 70 75 74 20 66 72 65 71 | 75 65 6e 63 79 20 2a 2f |put freq|uency */|
|00005f60| 0a 69 6e 74 20 63 68 61 | 6e 6e 65 6c 3b 20 20 20 |.int cha|nnel; |
|00005f70| 20 20 20 20 20 2f 2a 20 | 63 68 61 6e 6e 65 6c 20 | /* |channel |
|00005f80| 6c 6f 6f 70 20 63 6f 75 | 6e 74 65 72 20 2a 2f 0a |loop cou|nter */.|
|00005f90| 0a 73 74 72 75 63 74 20 | 63 68 61 6e 6e 65 6c 20 |.struct |channel |
|00005fa0| 63 68 61 6e 5b 4e 55 4d | 42 45 52 5f 54 52 41 43 |chan[NUM|BER_TRAC|
|00005fb0| 4b 53 5d 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |KS];. | |
|00005fc0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 65 76 65 72 | | /* ever|
|00005fd0| 79 20 63 68 61 6e 6e 65 | 6c 20 2a 2f 0a 69 6e 74 |y channe|l */.int|
|00005fe0| 20 63 6f 75 6e 74 64 6f | 77 6e 3b 20 20 20 20 20 | countdo|wn; |
|00005ff0| 20 2f 2a 20 6b 65 65 70 | 20 70 6c 61 79 69 6e 67 | /* keep| playing|
|00006000| 20 74 68 65 20 74 75 6e | 65 20 6f 72 20 6e 6f 74 | the tun|e or not|
|00006010| 20 2a 2f 0a 0a 73 74 72 | 75 63 74 20 73 6f 6e 67 | */..str|uct song|
|00006020| 5f 69 6e 66 6f 20 2a 69 | 6e 66 6f 3b 0a 73 74 72 |_info *i|nfo;.str|
|00006030| 75 63 74 20 73 61 6d 70 | 6c 65 5f 69 6e 66 6f 20 |uct samp|le_info |
|00006040| 2a 2a 76 6f 69 63 65 73 | 3b 0a 0a 73 74 72 75 63 |**voices|;..struc|
|00006050| 74 20 61 75 74 6f 6d 61 | 74 6f 6e 20 61 3b 0a 0a |t automa|ton a;..|
|00006060| 0a 76 6f 69 64 20 69 6e | 69 74 5f 70 6c 61 79 65 |.void in|it_playe|
|00006070| 72 28 6f 2c 20 66 29 0a | 69 6e 74 20 6f 2c 20 66 |r(o, f).|int o, f|
|00006080| 3b 0a 20 20 20 20 7b 0a | 20 20 20 20 6f 76 65 72 |;. {.| over|
|00006090| 73 61 6d 70 6c 65 20 3d | 20 6f 3b 0a 20 20 20 20 |sample =| o;. |
|000060a0| 66 72 65 71 75 65 6e 63 | 79 20 3d 20 66 3b 0a 20 |frequenc|y = f;. |
|000060b0| 20 20 20 69 6e 69 74 5f | 74 61 62 6c 65 73 28 6f | init_|tables(o|
|000060c0| 76 65 72 73 61 6d 70 6c | 65 2c 20 66 72 65 71 75 |versampl|e, frequ|
|000060d0| 65 6e 63 79 29 3b 0a 20 | 20 20 20 69 6e 69 74 5f |ency);. | init_|
|000060e0| 65 66 66 65 63 74 73 28 | 65 76 61 6c 29 3b 0a 20 |effects(|eval);. |
|000060f0| 20 20 20 7d 0a 0a 0a 76 | 6f 69 64 20 73 65 74 75 | }...v|oid setu|
|00006100| 70 5f 65 66 66 65 63 74 | 28 63 68 2c 20 61 2c 20 |p_effect|(ch, a, |
|00006110| 65 29 0a 73 74 72 75 63 | 74 20 63 68 61 6e 6e 65 |e).struc|t channe|
|00006120| 6c 20 2a 63 68 3b 0a 73 | 74 72 75 63 74 20 61 75 |l *ch;.s|truct au|
|00006130| 74 6f 6d 61 74 6f 6e 20 | 2a 61 3b 0a 73 74 72 75 |tomaton |*a;.stru|
|00006140| 63 74 20 65 76 65 6e 74 | 20 2a 65 3b 0a 20 20 20 |ct event| *e;. |
|00006150| 20 7b 0a 20 20 20 20 69 | 6e 74 20 73 61 6d 70 2c | {. i|nt samp,|
|00006160| 20 63 6d 64 3b 0a 0a 20 | 20 20 20 20 20 20 20 2f | cmd;.. | /|
|00006170| 2a 20 72 65 74 72 69 65 | 76 65 73 20 61 6c 6c 20 |* retrie|ves all |
|00006180| 74 68 65 20 70 61 72 61 | 6d 65 74 65 72 73 20 2a |the para|meters *|
|00006190| 2f 0a 20 20 20 20 73 61 | 6d 70 20 3d 20 65 5b 61 |/. sa|mp = e[a|
|000061a0| 2d 3e 6e 6f 74 65 5f 6e | 75 6d 5d 2e 73 61 6d 70 |->note_n|um].samp|
|000061b0| 6c 65 5f 6e 75 6d 62 65 | 72 3b 0a 20 20 20 20 61 |le_numbe|r;. a|
|000061c0| 2d 3e 6e 6f 74 65 20 3d | 20 65 5b 61 2d 3e 6e 6f |->note =| e[a->no|
|000061d0| 74 65 5f 6e 75 6d 5d 2e | 6e 6f 74 65 3b 0a 20 20 |te_num].|note;. |
|000061e0| 20 20 69 66 20 28 61 2d | 3e 6e 6f 74 65 20 21 3d | if (a-|>note !=|
|000061f0| 20 4e 4f 5f 4e 4f 54 45 | 29 0a 20 20 20 20 20 20 | NO_NOTE|). |
|00006200| 20 20 61 2d 3e 70 69 74 | 63 68 20 3d 20 70 69 74 | a->pit|ch = pit|
|00006210| 63 68 5f 74 61 62 6c 65 | 5b 61 2d 3e 6e 6f 74 65 |ch_table|[a->note|
|00006220| 5d 3b 0a 20 20 20 20 65 | 6c 73 65 0a 20 20 20 20 |];. e|lse. |
|00006230| 20 20 20 20 61 2d 3e 70 | 69 74 63 68 20 3d 20 65 | a->p|itch = e|
|00006240| 5b 61 2d 3e 6e 6f 74 65 | 5f 6e 75 6d 5d 2e 70 69 |[a->note|_num].pi|
|00006250| 74 63 68 3b 0a 20 20 20 | 20 63 6d 64 20 3d 20 65 |tch;. | cmd = e|
|00006260| 5b 61 2d 3e 6e 6f 74 65 | 5f 6e 75 6d 5d 2e 65 66 |[a->note|_num].ef|
|00006270| 66 65 63 74 3b 0a 20 20 | 20 20 61 2d 3e 70 61 72 |fect;. | a->par|
|00006280| 61 20 3d 20 65 5b 61 2d | 3e 6e 6f 74 65 5f 6e 75 |a = e[a-|>note_nu|
|00006290| 6d 5d 2e 70 61 72 61 6d | 65 74 65 72 73 3b 0a 0a |m].param|eters;..|
|000062a0| 20 20 20 20 69 66 20 28 | 61 2d 3e 70 69 74 63 68 | if (|a->pitch|
|000062b0| 20 3e 3d 20 4d 41 58 5f | 50 49 54 43 48 29 0a 20 | >= MAX_|PITCH). |
|000062c0| 20 20 20 20 20 20 20 7b | 0a 20 20 20 20 20 20 20 | {|. |
|000062d0| 20 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c | fprintf|(stderr,|
|000062e0| 20 22 50 69 74 63 68 20 | 6f 75 74 20 6f 66 20 62 | "Pitch |out of b|
|000062f0| 6f 75 6e 64 73 20 25 64 | 5c 6e 22 2c 20 61 2d 3e |ounds %d|\n", a->|
|00006300| 70 69 74 63 68 29 3b 0a | 20 20 20 20 20 20 20 20 |pitch);.| |
|00006310| 61 2d 3e 70 69 74 63 68 | 20 3d 20 30 3b 0a 20 20 |a->pitch| = 0;. |
|00006320| 20 20 20 20 20 20 65 72 | 72 6f 72 20 3d 20 46 41 | er|ror = FA|
|00006330| 55 4c 54 3b 0a 20 20 20 | 20 20 20 20 20 7d 0a 23 |ULT;. | }.#|
|00006340| 69 66 64 65 66 20 53 48 | 4f 57 5f 53 45 51 0a 20 |ifdef SH|OW_SEQ. |
|00006350| 20 20 20 69 66 20 28 73 | 61 6d 70 20 3d 3d 20 30 | if (s|amp == 0|
|00006360| 20 26 26 20 61 2d 3e 70 | 69 74 63 68 20 3d 3d 20 | && a->p|itch == |
|00006370| 30 20 26 26 20 63 6d 64 | 20 3d 3d 20 30 29 0a 20 |0 && cmd| == 0). |
|00006380| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 2d | p|rintf("-|
|00006390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 20 20 22 29 3b 0a |--------|-- ");.|
|000063a0| 20 20 20 20 65 6c 73 65 | 0a 20 20 20 20 20 20 20 | else|. |
|000063b0| 20 7b 0a 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 | {. | print|
|000063c0| 66 28 22 25 73 20 25 73 | 20 22 2c 20 6e 75 6d 5b |f("%s %s| ", num[|
|000063d0| 73 61 6d 70 5d 2c 20 61 | 2d 3e 70 69 74 63 68 20 |samp], a|->pitch |
|000063e0| 3f 20 22 4e 22 20 3a 20 | 22 2d 22 29 3b 0a 20 20 |? "N" : |"-");. |
|000063f0| 20 20 20 20 20 20 69 66 | 20 28 63 6d 64 20 3d 3d | if| (cmd ==|
|00006400| 20 30 20 26 26 20 61 2d | 3e 70 61 72 61 20 3d 3d | 0 && a-|>para ==|
|00006410| 20 30 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | 0). | |
|00006420| 70 72 69 6e 74 66 28 22 | 2d 2d 2d 2d 2d 2d 20 20 |printf("|------ |
|00006430| 22 29 3b 0a 20 20 20 20 | 20 20 20 20 65 6c 73 65 |");. | else|
|00006440| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 70 72 69 |. | pri|
|00006450| 6e 74 66 28 22 25 73 20 | 25 33 64 20 20 22 2c 20 |ntf("%s |%3d ", |
|00006460| 6e 75 6d 5b 63 6d 64 5d | 2c 20 61 2d 3e 70 61 72 |num[cmd]|, a->par|
|00006470| 61 29 3b 0a 20 20 20 20 | 20 20 20 20 7d 0a 20 20 |a);. | }. |
|00006480| 20 20 66 66 6c 75 73 68 | 28 73 74 64 6f 75 74 29 | fflush|(stdout)|
|00006490| 3b 0a 23 65 6e 64 69 66 | 0a 0a 20 20 20 20 20 20 |;.#endif|.. |
|000064a0| 20 20 2f 2a 20 6c 6f 61 | 64 20 6e 65 77 20 69 6e | /* loa|d new in|
|000064b0| 73 74 72 75 6d 65 6e 74 | 20 2a 2f 0a 20 20 20 20 |strument| */. |
|000064c0| 69 66 20 28 73 61 6d 70 | 29 20 20 0a 20 20 20 20 |if (samp|) . |
|000064d0| 20 20 20 20 7b 0a 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|000064e0| 20 20 2f 2a 20 6e 6f 74 | 65 20 74 68 61 74 20 77 | /* not|e that w|
|000064f0| 65 20 63 61 6e 20 63 68 | 61 6e 67 65 20 73 61 6d |e can ch|ange sam|
|00006500| 70 6c 65 20 69 6e 20 74 | 68 65 20 6d 69 64 64 6c |ple in t|he middl|
|00006510| 65 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2a |e. | *|
|00006520| 20 6f 66 20 61 20 6e 6f | 74 65 2e 20 54 68 69 73 | of a no|te. This|
|00006530| 20 69 73 20 61 20 2a 66 | 65 61 74 75 72 65 2a 2c | is a *f|eature*,|
|00006540| 20 6e 6f 74 20 61 20 62 | 75 67 20 28 73 65 65 0a | not a b|ug (see.|
|00006550| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2a 20 69 | | * i|
|00006560| 6e 74 72 6f 6d 75 73 69 | 63 36 2e 62 29 0a 20 20 |ntromusi|c6.b). |
|00006570| 20 20 20 20 20 20 20 20 | 20 20 20 2a 2f 0a 20 20 | | */. |
|00006580| 20 20 20 20 20 20 63 68 | 2d 3e 73 61 6d 70 20 3d | ch|->samp =|
|00006590| 20 76 6f 69 63 65 73 5b | 73 61 6d 70 5d 3b 0a 20 | voices[|samp];. |
|000065a0| 20 20 20 20 20 20 20 63 | 68 2d 3e 76 6f 6c 75 6d | c|h->volum|
|000065b0| 65 20 3d 20 76 6f 69 63 | 65 73 5b 73 61 6d 70 5d |e = voic|es[samp]|
|000065c0| 2d 3e 76 6f 6c 75 6d 65 | 3b 0a 20 20 20 20 20 20 |->volume|;. |
|000065d0| 20 20 7d 0a 20 20 20 20 | 20 20 20 20 2f 2a 20 63 | }. | /* c|
|000065e0| 68 65 63 6b 20 66 6f 72 | 20 61 20 6e 65 77 20 6e |heck for| a new n|
|000065f0| 6f 74 65 3a 20 63 6d 64 | 20 33 20 28 70 6f 72 74 |ote: cmd| 3 (port|
|00006600| 61 6d 65 6e 74 6f 29 0a | 20 20 20 20 20 20 20 20 |amento).| |
|00006610| 20 2a 20 69 73 20 74 68 | 65 20 73 70 65 63 69 61 | * is th|e specia|
|00006620| 6c 20 63 61 73 65 20 77 | 68 65 72 65 20 77 65 20 |l case w|here we |
|00006630| 64 6f 20 6e 6f 74 20 72 | 65 73 74 61 72 74 0a 20 |do not r|estart. |
|00006640| 20 20 20 20 20 20 20 20 | 2a 20 74 68 65 20 6e 6f | |* the no|
|00006650| 74 65 2e 0a 20 20 20 20 | 20 20 20 20 20 2a 2f 0a |te.. | */.|
|00006660| 20 20 20 20 69 66 20 28 | 61 2d 3e 70 69 74 63 68 | if (|a->pitch|
|00006670| 20 26 26 20 63 6d 64 20 | 21 3d 20 33 29 0a 20 20 | && cmd |!= 3). |
|00006680| 20 20 20 20 20 20 72 65 | 73 65 74 5f 6e 6f 74 65 | re|set_note|
|00006690| 28 63 68 2c 20 61 2d 3e | 6e 6f 74 65 2c 20 61 2d |(ch, a->|note, a-|
|000066a0| 3e 70 69 74 63 68 29 3b | 0a 20 20 20 20 63 68 2d |>pitch);|. ch-|
|000066b0| 3e 61 64 6a 75 73 74 20 | 3d 20 64 6f 5f 6e 6f 74 |>adjust |= do_not|
|000066c0| 68 69 6e 67 3b 0a 20 20 | 20 20 20 20 20 20 2f 2a |hing;. | /*|
|000066d0| 20 64 6f 20 65 66 66 65 | 63 74 73 20 2a 2f 0a 20 | do effe|cts */. |
|000066e0| 20 20 20 28 65 76 61 6c | 5b 63 6d 64 5d 29 28 61 | (eval|[cmd])(a|
|000066f0| 2c 20 63 68 29 3b 0a 20 | 20 20 20 7d 0a 0a 0a 0a |, ch);. | }....|
|00006700| 76 6f 69 64 20 70 6c 61 | 79 5f 73 6f 6e 67 28 73 |void pla|y_song(s|
|00006710| 6f 6e 67 2c 20 70 72 65 | 66 29 0a 73 74 72 75 63 |ong, pre|f).struc|
|00006720| 74 20 73 6f 6e 67 20 2a | 73 6f 6e 67 3b 0a 73 74 |t song *|song;.st|
|00006730| 72 75 63 74 20 70 72 65 | 66 20 2a 70 72 65 66 3b |ruct pre|f *pref;|
|00006740| 0a 20 20 20 20 7b 0a 20 | 20 20 20 69 6e 69 74 5f |. {. | init_|
|00006750| 61 75 74 6f 6d 61 74 6f | 6e 28 26 61 2c 20 73 6f |automato|n(&a, so|
|00006760| 6e 67 29 3b 0a 20 20 20 | 20 56 53 59 4e 43 20 3d |ng);. | VSYNC =|
|00006770| 20 66 72 65 71 75 65 6e | 63 79 20 2a 20 31 30 30 | frequen|cy * 100|
|00006780| 20 2f 20 70 72 65 66 2d | 3e 73 70 65 65 64 3b 0a | / pref-|>speed;.|
|00006790| 20 20 20 20 2f 2a 20 61 | 20 72 65 70 65 61 74 73 | /* a| repeats|
|000067a0| 20 6f 66 20 30 20 69 73 | 20 69 6e 66 69 6e 69 74 | of 0 is| infinit|
|000067b0| 65 20 72 65 70 6c 61 79 | 73 20 2a 2f 0a 20 20 20 |e replay|s */. |
|000067c0| 20 69 66 20 28 70 72 65 | 66 2d 3e 72 65 70 65 61 | if (pre|f->repea|
|000067d0| 74 73 29 0a 20 20 20 20 | 20 20 20 20 63 6f 75 6e |ts). | coun|
|000067e0| 74 64 6f 77 6e 20 3d 20 | 70 72 65 66 2d 3e 72 65 |tdown = |pref->re|
|000067f0| 70 65 61 74 73 3b 0a 20 | 20 20 20 65 6c 73 65 0a |peats;. | else.|
|00006800| 20 20 20 20 20 20 20 20 | 63 6f 75 6e 74 64 6f 77 | |countdow|
|00006810| 6e 20 3d 20 31 3b 0a 0a | 20 20 20 20 69 6e 66 6f |n = 1;..| info|
|00006820| 20 3d 20 73 6f 6e 67 2d | 3e 69 6e 66 6f 3b 0a 20 | = song-|>info;. |
|00006830| 20 20 20 76 6f 69 63 65 | 73 20 3d 20 73 6f 6e 67 | voice|s = song|
|00006840| 2d 3e 73 61 6d 70 6c 65 | 73 3b 20 0a 0a 20 20 20 |->sample|s; .. |
|00006850| 20 66 6f 72 20 28 63 68 | 61 6e 6e 65 6c 20 3d 20 | for (ch|annel = |
|00006860| 30 3b 20 63 68 61 6e 6e | 65 6c 20 3c 20 4e 55 4d |0; chann|el < NUM|
|00006870| 42 45 52 5f 54 52 41 43 | 4b 53 3b 20 63 68 61 6e |BER_TRAC|KS; chan|
|00006880| 6e 65 6c 2b 2b 29 20 0a | 20 20 20 20 20 20 20 20 |nel++) .| |
|00006890| 69 6e 69 74 5f 63 68 61 | 6e 6e 65 6c 28 63 68 61 |init_cha|nnel(cha|
|000068a0| 6e 20 2b 20 63 68 61 6e | 6e 65 6c 2c 20 76 6f 69 |n + chan|nel, voi|
|000068b0| 63 65 73 5b 30 5d 29 3b | 0a 0a 20 20 20 20 70 72 |ces[0]);|.. pr|
|000068c0| 69 6e 74 66 28 22 28 25 | 64 29 3a 5c 6e 22 2c 20 |intf("(%|d):\n", |
|000068d0| 69 6e 66 6f 2d 3e 6c 65 | 6e 67 74 68 29 3b 0a 0a |info->le|ngth);..|
|000068e0| 20 20 20 20 77 68 69 6c | 65 28 63 6f 75 6e 74 64 | whil|e(countd|
|000068f0| 6f 77 6e 29 0a 20 20 20 | 20 20 20 20 20 7b 0a 20 |own). | {. |
|00006900| 20 20 20 20 20 20 20 66 | 6f 72 20 28 63 68 61 6e | f|or (chan|
|00006910| 6e 65 6c 20 3d 20 30 3b | 20 63 68 61 6e 6e 65 6c |nel = 0;| channel|
|00006920| 20 3c 20 4e 55 4d 42 45 | 52 5f 54 52 41 43 4b 53 | < NUMBE|R_TRACKS|
|00006930| 3b 20 63 68 61 6e 6e 65 | 6c 2b 2b 29 0a 20 20 20 |; channe|l++). |
|00006940| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 61 2e 63 | | if (a.c|
|00006950| 6f 75 6e 74 65 72 20 3d | 3d 20 30 29 0a 20 20 20 |ounter =|= 0). |
|00006960| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | | /* |
|00006970| 73 65 74 75 70 20 65 66 | 66 65 63 74 73 20 2a 2f |setup ef|fects */|
|00006980| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00006990| 20 73 65 74 75 70 5f 65 | 66 66 65 63 74 28 63 68 | setup_e|ffect(ch|
|000069a0| 61 6e 20 2b 20 63 68 61 | 6e 6e 65 6c 2c 20 26 61 |an + cha|nnel, &a|
|000069b0| 2c 20 61 2e 70 61 74 74 | 65 72 6e 2d 3e 65 5b 63 |, a.patt|ern->e[c|
|000069c0| 68 61 6e 6e 65 6c 5d 29 | 3b 0a 20 20 20 20 20 20 |hannel])|;. |
|000069d0| 20 20 20 20 20 20 65 6c | 73 65 0a 20 20 20 20 20 | el|se. |
|000069e0| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 64 6f | | /* do|
|000069f0| 20 74 68 65 20 65 66 66 | 65 63 74 73 20 2a 2f 0a | the eff|ects */.|
|00006a00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00006a10| 28 63 68 61 6e 5b 63 68 | 61 6e 6e 65 6c 5d 2e 61 |(chan[ch|annel].a|
|00006a20| 64 6a 75 73 74 29 28 63 | 68 61 6e 20 2b 20 63 68 |djust)(c|han + ch|
|00006a30| 61 6e 6e 65 6c 29 3b 0a | 0a 20 20 20 20 20 20 20 |annel);.|. |
|00006a40| 20 20 20 20 20 2f 2a 20 | 61 64 76 61 6e 63 65 20 | /* |advance |
|00006a50| 70 6c 61 79 65 72 20 66 | 6f 72 20 74 68 65 20 6e |player f|or the n|
|00006a60| 65 78 74 20 74 69 63 6b | 20 2a 2f 0a 20 20 20 20 |ext tick| */. |
|00006a70| 20 20 20 20 6e 65 78 74 | 5f 74 69 63 6b 28 26 61 | next|_tick(&a|
|00006a80| 29 3b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 2f |);. | /|
|00006a90| 2a 20 61 63 74 75 61 6c | 6c 79 20 6f 75 74 70 75 |* actual|ly outpu|
|00006aa0| 74 20 73 61 6d 70 6c 65 | 73 20 2a 2f 0a 20 20 20 |t sample|s */. |
|00006ab0| 20 20 20 20 20 72 65 73 | 61 6d 70 6c 65 28 63 68 | res|ample(ch|
|00006ac0| 61 6e 2c 20 6f 76 65 72 | 73 61 6d 70 6c 65 2c 20 |an, over|sample, |
|00006ad0| 56 53 59 4e 43 20 2f 20 | 61 2e 66 69 6e 65 73 70 |VSYNC / |a.finesp|
|00006ae0| 65 65 64 29 3b 0a 0a 20 | 20 20 20 20 20 20 20 73 |eed);.. | s|
|00006af0| 77 69 74 63 68 28 65 72 | 72 6f 72 29 0a 20 20 20 |witch(er|ror). |
|00006b00| 20 20 20 20 20 20 20 20 | 20 7b 0a 20 20 20 20 20 | | {. |
|00006b10| 20 20 20 20 20 20 20 63 | 61 73 65 20 4e 4f 4e 45 | c|ase NONE|
|00006b20| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |:. | |
|00006b30| 20 20 62 72 65 61 6b 3b | 0a 20 20 20 20 20 20 20 | break;|. |
|00006b40| 20 20 20 20 20 63 61 73 | 65 20 45 4e 44 45 44 3a | cas|e ENDED:|
|00006b50| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00006b60| 20 69 66 20 28 70 72 65 | 66 2d 3e 72 65 70 65 61 | if (pre|f->repea|
|00006b70| 74 73 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ts). | |
|00006b80| 20 20 20 20 20 20 20 20 | 63 6f 75 6e 74 64 6f 77 | |countdow|
|00006b90| 6e 2d 2d 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |n--;. | |
|00006ba0| 20 20 20 20 20 62 72 65 | 61 6b 3b 0a 20 20 20 20 | bre|ak;. |
|00006bb0| 20 20 20 20 20 20 20 20 | 63 61 73 65 20 53 41 4d | |case SAM|
|00006bc0| 50 4c 45 5f 46 41 55 4c | 54 3a 0a 20 20 20 20 20 |PLE_FAUL|T:. |
|00006bd0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 21 | | if (!|
|00006be0| 70 72 65 66 2d 3e 74 6f | 6c 65 72 61 74 65 29 0a |pref->to|lerate).|
|00006bf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00006c00| 20 20 20 20 63 6f 75 6e | 74 64 6f 77 6e 20 3d 20 | coun|tdown = |
|00006c10| 30 3b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |0;. | |
|00006c20| 20 20 20 62 72 65 61 6b | 3b 0a 20 20 20 20 20 20 | break|;. |
|00006c30| 20 20 20 20 20 20 63 61 | 73 65 20 46 41 55 4c 54 | ca|se FAULT|
|00006c40| 3a 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |:. | |
|00006c50| 20 20 69 66 20 28 70 72 | 65 66 2d 3e 74 6f 6c 65 | if (pr|ef->tole|
|00006c60| 72 61 74 65 20 3c 20 32 | 29 0a 20 20 20 20 20 20 |rate < 2|). |
|00006c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 63 6f | | co|
|00006c80| 75 6e 74 64 6f 77 6e 20 | 3d 20 30 3b 0a 20 20 20 |untdown |= 0;. |
|00006c90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|00006ca0| 61 6b 3b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ak;. | |
|00006cb0| 63 61 73 65 20 4e 45 58 | 54 5f 53 4f 4e 47 3a 0a |case NEX|T_SONG:.|
|00006cc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 61 73 65 | | case|
|00006cd0| 20 55 4e 52 45 43 4f 56 | 45 52 41 42 4c 45 3a 0a | UNRECOV|ERABLE:.|
|00006ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00006cf0| 63 6f 75 6e 74 64 6f 77 | 6e 20 3d 20 30 3b 0a 20 |countdow|n = 0;. |
|00006d00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 62 | | b|
|00006d10| 72 65 61 6b 3b 0a 20 20 | 20 20 20 20 20 20 20 20 |reak;. | |
|00006d20| 20 20 64 65 66 61 75 6c | 74 3a 0a 20 20 20 20 20 | defaul|t:. |
|00006d30| 20 20 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b | | break|
|00006d40| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0a |;. | }.|
|00006d50| 20 20 20 20 20 20 20 20 | 65 72 72 6f 72 20 3d 20 | |error = |
|00006d60| 4e 4f 4e 45 3b 0a 20 20 | 20 20 20 20 20 20 7d 0a |NONE;. | }.|
|00006d70| 20 20 20 20 20 20 20 20 | 20 0a 20 20 20 20 70 72 | | . pr|
|00006d80| 69 6e 74 66 28 22 5c 6e | 22 29 3b 0a 20 20 20 20 |intf("\n|");. |
|00006d90| 7d 0a 0a 53 45 54 5f 53 | 50 45 45 44 3b 0a 20 20 |}..SET_S|PEED;. |
|00006da0| 20 20 7d 0a 0a 76 6f 69 | 64 20 73 65 74 5f 73 6b | }..voi|d set_sk|
|00006db0| 69 70 28 61 2c 20 63 68 | 29 0a 73 74 72 75 63 74 |ip(a, ch|).struct|
|00006dc0| 20 61 75 74 6f 6d 61 74 | 6f 6e 20 2a 61 3b 0a 73 | automat|on *a;.s|
|00006dd0| 74 72 75 63 74 20 63 68 | 61 6e 6e 65 6c 20 2a 63 |truct ch|annel *c|
|00006de0| 68 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 20 20 20 |h;. {|. |
|00006df0| 20 2f 2a 20 79 65 70 2c | 20 74 68 69 73 20 69 73 | /* yep,| this is|
|00006e00| 72 65 61 64 2e 63 00 00 | 00 00 00 00 00 00 00 00 |read.c..|........|
|00006e10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006e60| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00006e70| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00006e80| 20 20 32 37 34 37 32 20 | 20 35 31 31 37 31 36 30 | 27472 | 5117160|
|00006e90| 31 33 35 20 20 20 35 32 | 35 37 00 20 00 00 00 00 |135 52|57. ....|
|00006ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006eb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f00| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006f90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00006ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00007000| 2f 2a 20 72 65 61 64 2e | 63 20 2a 2f 0a 0a 2f 2a |/* read.|c */../*|
|00007010| 20 24 41 75 74 68 6f 72 | 3a 20 65 73 70 69 65 20 | $Author|: espie |
|00007020| 24 0a 20 2a 20 24 49 64 | 3a 20 72 65 61 64 2e 63 |$. * $Id|: read.c|
|00007030| 2c 76 20 32 2e 37 20 31 | 39 39 31 2f 31 32 2f 30 |,v 2.7 1|991/12/0|
|00007040| 33 20 32 33 3a 30 33 3a | 33 39 20 65 73 70 69 65 |3 23:03:|39 espie|
|00007050| 20 45 78 70 20 65 73 70 | 69 65 20 24 0a 20 2a 20 | Exp esp|ie $. * |
|00007060| 24 52 65 76 69 73 69 6f | 6e 3a 20 32 2e 37 20 24 |$Revisio|n: 2.7 $|
|00007070| 0a 20 2a 20 24 4c 6f 67 | 3a 20 72 65 61 64 2e 63 |. * $Log|: read.c|
|00007080| 2c 76 20 24 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |,v $. * |Revision|
|00007090| 20 32 2e 37 20 20 31 39 | 39 31 2f 31 32 2f 30 33 | 2.7 19|91/12/03|
|000070a0| 20 20 32 33 3a 30 33 3a | 33 39 20 20 65 73 70 69 | 23:03:|39 espi|
|000070b0| 65 0a 20 2a 20 41 64 64 | 65 64 20 74 72 61 6e 73 |e. * Add|ed trans|
|000070c0| 70 6f 73 65 20 66 65 61 | 74 75 72 65 2e 0a 20 2a |pose fea|ture.. *|
|000070d0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 36 |. * Revi|sion 2.6|
|000070e0| 20 20 31 39 39 31 2f 31 | 32 2f 30 33 20 20 32 31 | 1991/1|2/03 21|
|000070f0| 3a 32 34 3a 35 33 20 20 | 65 73 70 69 65 0a 20 2a |:24:53 |espie. *|
|00007100| 20 46 65 61 74 75 72 65 | 20 66 69 78 3a 20 6c 65 | Feature| fix: le|
|00007110| 6e 67 74 68 20 31 20 73 | 61 6d 70 6c 65 20 73 68 |ngth 1 s|ample sh|
|00007120| 6f 75 6c 64 20 62 65 20 | 65 6d 70 74 79 2e 0a 20 |ould be |empty.. |
|00007130| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 32 2e |*. * Rev|ision 2.|
|00007140| 35 20 20 31 39 39 31 2f | 31 32 2f 30 33 20 20 31 |5 1991/|12/03 1|
|00007150| 37 3a 31 30 3a 31 31 20 | 20 65 73 70 69 65 0a 20 |7:10:11 | espie. |
|00007160| 2a 20 43 6f 72 72 65 63 | 74 65 64 20 72 65 70 65 |* Correc|ted repe|
|00007170| 61 74 20 6c 65 6e 67 74 | 68 20 70 72 6f 62 6c 65 |at lengt|h proble|
|00007180| 6d 73 20 63 6f 6e 63 65 | 72 6e 69 6e 67 20 62 61 |ms conce|rning ba|
|00007190| 64 6c 79 20 66 6f 72 6d | 65 64 20 66 69 6c 65 73 |dly form|ed files|
|000071a0| 2c 0a 20 2a 20 61 64 64 | 65 64 20 73 69 67 6e 61 |,. * add|ed signa|
|000071b0| 74 75 72 65 20 63 68 65 | 63 6b 69 6e 67 20 66 6f |ture che|cking fo|
|000071c0| 72 20 6e 65 77 20 74 72 | 61 63 6b 65 72 20 66 69 |r new tr|acker fi|
|000071d0| 6c 65 73 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |les.. *.| * Revis|
|000071e0| 69 6f 6e 20 32 2e 34 20 | 20 31 39 39 31 2f 31 31 |ion 2.4 | 1991/11|
|000071f0| 2f 31 39 20 20 31 36 3a | 30 37 3a 31 39 20 20 65 |/19 16:|07:19 e|
|00007200| 73 70 69 65 0a 20 2a 20 | 41 64 64 65 64 20 63 6f |spie. * |Added co|
|00007210| 6d 6d 65 6e 74 73 2c 20 | 6d 6f 76 65 64 20 6d 69 |mments, |moved mi|
|00007220| 6e 6f 72 20 73 74 75 66 | 66 20 61 72 6f 75 6e 64 |nor stuf|f around|
|00007230| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|00007240| 20 32 2e 33 20 20 31 39 | 39 31 2f 31 31 2f 31 38 | 2.3 19|91/11/18|
|00007250| 20 20 31 34 3a 31 30 3a | 33 30 20 20 65 73 70 69 | 14:10:|30 espi|
|00007260| 65 0a 20 2a 20 43 6f 72 | 72 65 63 74 65 64 20 73 |e. * Cor|rected s|
|00007270| 6d 61 6c 6c 20 70 72 6f | 62 6c 65 6d 20 77 69 74 |mall pro|blem wit|
|00007280| 68 20 72 65 70 65 61 74 | 20 62 65 69 6e 67 20 74 |h repeat| being t|
|00007290| 6f 6f 20 73 68 6f 72 74 | 2e 0a 20 2a 0a 20 2a 20 |oo short|.. *. * |
|000072a0| 52 65 76 69 73 69 6f 6e | 20 32 2e 32 20 20 31 39 |Revision| 2.2 19|
|000072b0| 39 31 2f 31 31 2f 31 38 | 20 20 30 31 3a 31 30 3a |91/11/18| 01:10:|
|000072c0| 34 35 20 20 65 73 70 69 | 65 0a 20 2a 20 4d 69 6e |45 espi|e. * Min|
|000072d0| 6f 72 20 63 6f 72 72 65 | 63 74 69 6f 6e 73 2e 0a |or corre|ctions..|
|000072e0| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 32 | *. * Re|vision 2|
|000072f0| 2e 31 20 20 31 39 39 31 | 2f 31 31 2f 31 37 20 20 |.1 1991|/11/17 |
|00007300| 32 33 3a 30 37 3a 35 38 | 20 20 65 73 70 69 65 0a |23:07:58| espie.|
|00007310| 20 2a 20 43 6f 64 65 64 | 20 65 72 72 6f 72 20 74 | * Coded| error t|
|00007320| 79 70 65 73 2e 20 4d 6f | 72 65 20 61 6d 69 67 61 |ypes. Mo|re amiga|
|00007330| 20 73 70 65 63 69 66 69 | 63 20 73 74 75 66 66 2e | specifi|c stuff.|
|00007340| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00007350| 32 2e 30 20 20 31 39 39 | 31 2f 31 31 2f 31 37 20 |2.0 199|1/11/17 |
|00007360| 20 32 31 3a 34 32 3a 30 | 38 20 20 65 73 70 69 65 | 21:42:0|8 espie|
|00007370| 0a 20 2a 20 4e 65 77 20 | 76 65 72 73 69 6f 6e 2e |. * New |version.|
|00007380| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00007390| 31 2e 31 37 20 20 31 39 | 39 31 2f 31 31 2f 31 37 |1.17 19|91/11/17|
|000073a0| 20 20 31 36 3a 33 30 3a | 34 38 20 20 65 73 70 69 | 16:30:|48 espi|
|000073b0| 65 0a 20 2a 20 46 6f 72 | 67 6f 74 20 74 6f 20 72 |e. * For|got to r|
|000073c0| 65 74 75 72 6e 20 61 20 | 73 6f 6e 67 5f 69 6e 66 |eturn a |song_inf|
|000073d0| 6f 20 66 72 6f 6d 20 6e | 65 77 5f 73 6f 6e 67 5f |o from n|ew_song_|
|000073e0| 69 6e 66 6f 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |info. *.| * Revis|
|000073f0| 69 6f 6e 20 31 2e 31 36 | 20 20 31 39 39 31 2f 31 |ion 1.16| 1991/1|
|00007400| 31 2f 31 36 20 20 31 35 | 3a 35 30 3a 33 34 20 20 |1/16 15|:50:34 |
|00007410| 65 73 70 69 65 0a 20 2a | 20 54 61 62 73 2e 0a 20 |espie. *| Tabs.. |
|00007420| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|00007430| 31 35 20 20 31 39 39 31 | 2f 31 31 2f 31 36 20 20 |15 1991|/11/16 |
|00007440| 31 35 3a 34 32 3a 34 33 | 20 20 65 73 70 69 65 0a |15:42:43| espie.|
|00007450| 20 2a 20 52 61 74 69 6f | 6e 6e 61 6c 69 7a 65 64 | * Ratio|nnalized|
|00007460| 20 65 72 72 6f 72 20 72 | 65 63 6f 76 65 72 79 2e | error r|ecovery.|
|00007470| 0a 20 2a 20 54 68 65 72 | 65 20 77 61 73 20 61 20 |. * Ther|e was a |
|00007480| 62 75 67 3a 20 79 6f 75 | 20 63 6f 75 6c 64 20 74 |bug: you| could t|
|00007490| 72 79 20 74 6f 20 64 65 | 61 6c 6c 6f 63 61 74 65 |ry to de|allocate|
|000074a0| 0a 20 2a 20 73 74 75 66 | 66 20 69 6e 20 6e 6f 2d |. * stuf|f in no-|
|000074b0| 6e 6f 6c 61 6e 64 2e 20 | 41 6c 73 6f 2c 20 73 74 |noland. |Also, st|
|000074c0| 72 69 6e 67 73 20 6e 65 | 76 65 72 20 67 6f 74 0a |rings ne|ver got.|
|000074d0| 20 2a 20 74 6f 20 62 65 | 20 66 72 65 65 64 2e 0a | * to be| freed..|
|000074e0| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|000074f0| 2e 31 34 20 20 31 39 39 | 31 2f 31 31 2f 31 35 20 |.14 199|1/11/15 |
|00007500| 20 32 30 3a 35 37 3a 33 | 34 20 20 65 73 70 69 65 | 20:57:3|4 espie|
|00007510| 0a 20 2a 20 43 65 6e 74 | 72 61 6c 69 7a 65 64 20 |. * Cent|ralized |
|00007520| 65 72 72 6f 72 20 63 6f | 6e 74 72 6f 6c 20 74 6f |error co|ntrol to|
|00007530| 20 65 72 72 6f 72 5f 73 | 6f 6e 67 2e 0a 20 2a 0a | error_s|ong.. *.|
|00007540| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 31 33 | * Revis|ion 1.13|
|00007550| 20 20 31 39 39 31 2f 31 | 31 2f 31 35 20 20 31 38 | 1991/1|1/15 18|
|00007560| 3a 32 32 3a 31 30 20 20 | 65 73 70 69 65 0a 20 2a |:22:10 |espie. *|
|00007570| 20 41 64 64 65 64 20 61 | 20 6e 65 77 20 74 65 73 | Added a| new tes|
|00007580| 74 20 6f 6e 20 6c 65 6e | 67 74 68 2c 20 61 62 6f |t on len|gth, abo|
|00007590| 72 74 73 20 6d 6f 73 74 | 20 6d 6f 64 75 6c 65 73 |rts most| modules|
|000075a0| 20 6e 6f 77 2e 0a 20 2a | 20 4d 61 79 62 65 20 73 | now.. *| Maybe s|
|000075b0| 68 6f 75 6c 64 20 73 61 | 79 20 69 74 20 61 73 20 |hould sa|y it as |
|000075c0| 77 65 6c 6c 2e 0a 20 2a | 0a 20 2a 20 52 65 76 69 |well.. *|. * Revi|
|000075d0| 73 69 6f 6e 20 31 2e 31 | 32 20 20 31 39 39 31 2f |sion 1.1|2 1991/|
|000075e0| 31 31 2f 31 30 20 20 31 | 36 3a 32 36 3a 31 34 20 |11/10 1|6:26:14 |
|000075f0| 20 65 73 70 69 65 0a 20 | 2a 20 4e 61 73 74 79 20 | espie. |* Nasty |
|00007600| 62 75 67 20 72 65 67 61 | 72 64 69 6e 67 20 65 76 |bug rega|rding ev|
|00007610| 61 6c 75 61 74 69 6f 6e | 20 6f 72 64 65 72 20 69 |aluation| order i|
|00007620| 6e 20 67 65 74 75 6c 6f | 6e 67 2e 0a 20 2a 20 42 |n getulo|ng.. * B|
|00007630| 69 74 74 65 6e 20 6f 6e | 20 74 68 65 20 73 70 61 |itten on| the spa|
|00007640| 72 63 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |rc.. *. |* Revisi|
|00007650| 6f 6e 20 31 2e 31 31 20 | 20 31 39 39 31 2f 31 31 |on 1.11 | 1991/11|
|00007660| 2f 30 39 20 20 31 37 3a | 34 37 3a 33 33 20 20 65 |/09 17:|47:33 e|
|00007670| 73 70 69 65 0a 20 2a 20 | 41 64 64 65 64 20 63 68 |spie. * |Added ch|
|00007680| 65 63 6b 70 6f 69 6e 74 | 73 20 66 6f 72 20 65 61 |eckpoint|s for ea|
|00007690| 72 6c 79 20 72 65 74 75 | 72 6e 20 69 66 20 66 69 |rly retu|rn if fi|
|000076a0| 6c 65 20 74 6f 6f 20 73 | 68 6f 72 74 2e 0a 20 2a |le too s|hort.. *|
|000076b0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 31 |. * Revi|sion 1.1|
|000076c0| 30 20 20 31 39 39 31 2f | 31 31 2f 30 38 20 20 31 |0 1991/|11/08 1|
|000076d0| 33 3a 33 35 3a 35 37 20 | 20 65 73 70 69 65 0a 20 |3:35:57 | espie. |
|000076e0| 2a 20 41 64 64 65 64 20 | 6d 65 6d 6f 72 79 20 72 |* Added |memory r|
|000076f0| 65 63 6f 76 65 72 79 20 | 61 6e 64 20 65 72 72 6f |ecovery |and erro|
|00007700| 72 20 63 6f 6e 74 72 6f | 6c 2e 0a 20 2a 0a 20 2a |r contro|l.. *. *|
|00007710| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 39 20 20 31 | Revisio|n 1.9 1|
|00007720| 39 39 31 2f 31 31 2f 30 | 38 20 20 31 32 3a 33 37 |991/11/0|8 12:37|
|00007730| 3a 33 37 20 20 65 73 70 | 69 65 0a 20 2a 20 42 75 |:37 esp|ie. * Bu|
|00007740| 67 20 69 6e 20 63 68 65 | 63 6b 66 70 3a 20 73 68 |g in che|ckfp: sh|
|00007750| 6f 75 6c 64 20 72 65 74 | 75 72 6e 20 61 6e 20 69 |ould ret|urn an i|
|00007760| 6e 74 0a 20 2a 20 62 65 | 63 61 75 73 65 20 63 68 |nt. * be|cause ch|
|00007770| 61 72 61 63 74 65 72 73 | 20 61 72 65 20 73 69 67 |aracters| are sig|
|00007780| 6e 65 64 20 6f 6e 20 73 | 6f 6d 65 20 6d 61 63 68 |ned on s|ome mach|
|00007790| 69 6e 65 73 2c 0a 20 2a | 20 61 6e 64 20 77 65 20 |ines,. *| and we |
|000077a0| 77 61 6e 74 20 74 6f 20 | 75 73 65 20 69 74 20 61 |want to |use it a|
|000077b0| 73 20 75 6e 20 75 6e 73 | 69 67 6e 65 64 20 76 61 |s un uns|igned va|
|000077c0| 6c 75 65 0a 20 2a 20 66 | 6f 72 20 63 6f 6d 70 75 |lue. * f|or compu|
|000077d0| 74 69 6e 67 20 73 68 6f | 72 74 20 76 61 6c 75 65 |ting sho|rt value|
|000077e0| 73 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |s.. *. *| Revisio|
|000077f0| 6e 20 31 2e 38 20 20 31 | 39 39 31 2f 31 31 2f 30 |n 1.8 1|991/11/0|
|00007800| 37 20 20 32 33 3a 32 39 | 3a 30 39 20 20 65 73 70 |7 23:29|:09 esp|
|00007810| 69 65 0a 20 2a 20 53 75 | 70 70 72 65 73 73 65 64 |ie. * Su|ppressed|
|00007820| 20 21 20 77 61 72 6e 69 | 6e 67 20 66 6f 72 20 62 | ! warni|ng for b|
|00007830| 61 64 20 6e 6f 74 65 2e | 0a 20 2a 0a 20 2a 20 52 |ad note.|. *. * R|
|00007840| 65 76 69 73 69 6f 6e 20 | 31 2e 37 20 20 31 39 39 |evision |1.7 199|
|00007850| 31 2f 31 31 2f 30 37 20 | 20 32 31 3a 34 30 3a 31 |1/11/07 | 21:40:1|
|00007860| 36 20 20 65 73 70 69 65 | 0a 20 2a 20 41 64 64 65 |6 espie|. * Adde|
|00007870| 64 20 6e 6f 74 65 20 73 | 75 70 70 6f 72 74 2e 0a |d note s|upport..|
|00007880| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|00007890| 2e 36 20 20 31 39 39 31 | 2f 31 31 2f 30 37 20 20 |.6 1991|/11/07 |
|000078a0| 32 30 3a 31 32 3a 33 34 | 20 20 65 73 70 69 65 0a |20:12:34| espie.|
|000078b0| 20 2a 20 4d 69 6e 6f 72 | 20 70 72 6f 62 6c 65 6d | * Minor| problem|
|000078c0| 20 77 69 74 68 20 76 65 | 72 73 69 6f 6e 20 69 64 | with ve|rsion id|
|000078d0| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|000078e0| 20 31 2e 35 20 20 31 39 | 39 31 2f 31 31 2f 30 37 | 1.5 19|91/11/07|
|000078f0| 20 20 32 30 3a 31 31 3a | 31 30 20 20 65 73 70 69 | 20:11:|10 espi|
|00007900| 65 0a 20 2a 20 41 64 64 | 65 64 20 65 6d 62 65 64 |e. * Add|ed embed|
|00007910| 64 65 64 20 76 65 72 73 | 69 6f 6e 20 69 64 2e 0a |ded vers|ion id..|
|00007920| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|00007930| 2e 34 20 20 31 39 39 31 | 2f 31 31 2f 30 37 20 20 |.4 1991|/11/07 |
|00007940| 31 35 3a 32 37 3a 30 32 | 20 20 65 73 70 69 65 0a |15:27:02| espie.|
|00007950| 20 2a 20 41 64 64 65 64 | 20 73 6f 6d 65 20 65 72 | * Added| some er|
|00007960| 72 6f 72 20 63 6f 6e 74 | 72 6f 6c 2c 20 65 73 73 |ror cont|rol, ess|
|00007970| 65 6e 74 69 61 6c 6c 79 | 20 63 68 65 63 6b 67 65 |entially| checkge|
|00007980| 74 63 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |tc.. *. |* Revisi|
|00007990| 6f 6e 20 31 2e 33 20 20 | 31 39 39 31 2f 31 31 2f |on 1.3 |1991/11/|
|000079a0| 30 35 20 20 32 32 3a 34 | 39 3a 30 33 20 20 65 73 |05 22:4|9:03 es|
|000079b0| 70 69 65 0a 20 2a 20 4d | 6f 64 69 66 69 65 64 20 |pie. * M|odified |
|000079c0| 74 68 65 20 66 6f 72 6d | 61 74 20 6f 66 20 74 68 |the form|at of th|
|000079d0| 65 20 64 75 6d 70 20 73 | 6c 69 67 68 74 6c 79 20 |e dump s|lightly |
|000079e0| 66 6f 72 0a 20 2a 20 61 | 20 62 65 74 74 65 72 20 |for. * a| better |
|000079f0| 72 65 61 64 61 62 69 6c | 69 74 79 2e 0a 20 2a 0a |readabil|ity.. *.|
|00007a00| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 32 20 | * Revis|ion 1.2 |
|00007a10| 20 31 39 39 31 2f 31 31 | 2f 30 34 20 20 32 30 3a | 1991/11|/04 20:|
|00007a20| 32 37 3a 30 35 20 20 65 | 73 70 69 65 0a 20 2a 20 |27:05 e|spie. * |
|00007a30| 43 6f 72 72 65 63 74 65 | 64 20 6c 65 6e 67 74 68 |Correcte|d length|
|00007a40| 20 61 6e 64 20 72 65 70 | 5f 6c 65 6e 67 74 68 2f | and rep|_length/|
|00007a50| 72 65 70 5f 6f 66 66 73 | 65 74 0a 20 2a 20 77 68 |rep_offs|et. * wh|
|00007a60| 69 63 68 20 61 72 65 20 | 67 69 76 65 6e 20 69 6e |ich are |given in|
|00007a70| 20 77 6f 72 64 73 20 61 | 6e 64 20 73 68 6f 75 6c | words a|nd shoul|
|00007a80| 64 20 62 65 20 63 6f 6e | 76 65 72 74 65 64 20 74 |d be con|verted t|
|00007a90| 6f 0a 20 2a 20 62 79 74 | 65 73 2e 0a 20 2a 0a 20 |o. * byt|es.. *. |
|00007aa0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 31 20 20 |* Revisi|on 1.1 |
|00007ab0| 31 39 39 31 2f 31 31 2f | 30 34 20 20 31 33 3a 32 |1991/11/|04 13:2|
|00007ac0| 33 3a 35 39 20 20 65 73 | 70 69 65 0a 20 2a 20 49 |3:59 es|pie. * I|
|00007ad0| 6e 69 74 69 61 6c 20 72 | 65 76 69 73 69 6f 6e 0a |nitial r|evision.|
|00007ae0| 20 2a 0a 20 2a 0a 20 2a | 2f 0a 0a 23 69 6e 63 6c | *. *. *|/..#incl|
|00007af0| 75 64 65 20 3c 6d 61 6c | 6c 6f 63 2e 68 3e 0a 23 |ude <mal|loc.h>.#|
|00007b00| 69 6e 63 6c 75 64 65 20 | 3c 73 74 64 69 6f 2e 68 |include |<stdio.h|
|00007b10| 3e 0a 23 69 6e 63 6c 75 | 64 65 20 3c 73 74 72 69 |>.#inclu|de <stri|
|00007b20| 6e 67 2e 68 3e 0a 0a 23 | 69 6e 63 6c 75 64 65 20 |ng.h>..#|include |
|00007b30| 22 65 78 74 65 72 6e 2e | 68 22 0a 23 69 6e 63 6c |"extern.|h".#incl|
|00007b40| 75 64 65 20 22 6d 61 63 | 68 69 6e 65 2e 68 22 0a |ude "mac|hine.h".|
|00007b50| 23 69 6e 63 6c 75 64 65 | 20 22 73 6f 6e 67 2e 68 |#include| "song.h|
|00007b60| 22 0a 23 69 6e 63 6c 75 | 64 65 20 22 63 68 61 6e |".#inclu|de "chan|
|00007b70| 6e 65 6c 2e 68 22 0a 0a | 73 74 61 74 69 63 20 63 |nel.h"..|static c|
|00007b80| 68 61 72 20 2a 69 64 20 | 3d 20 22 24 49 64 3a 20 |har *id |= "$Id: |
|00007b90| 72 65 61 64 2e 63 2c 76 | 20 32 2e 37 20 31 39 39 |read.c,v| 2.7 199|
|00007ba0| 31 2f 31 32 2f 30 33 20 | 32 33 3a 30 33 3a 33 39 |1/12/03 |23:03:39|
|00007bb0| 20 65 73 70 69 65 20 45 | 78 70 20 65 73 70 69 65 | espie E|xp espie|
|00007bc0| 20 24 22 3b 0a 0a 73 74 | 61 74 69 63 20 69 6e 74 | $";..st|atic int|
|00007bd0| 20 74 72 61 6e 73 70 6f | 73 65 3b 0a 0a 69 6e 74 | transpo|se;..int|
|00007be0| 20 66 69 6e 64 5f 6e 6f | 74 65 28 70 69 74 63 68 | find_no|te(pitch|
|00007bf0| 29 0a 69 6e 74 20 70 69 | 74 63 68 3b 0a 20 20 20 |).int pi|tch;. |
|00007c00| 20 7b 0a 20 20 20 20 69 | 6e 74 20 61 2c 20 62 2c | {. i|nt a, b,|
|00007c10| 20 69 3b 0a 20 20 20 20 | 69 66 20 28 70 69 74 63 | i;. |if (pitc|
|00007c20| 68 20 3d 3d 20 30 29 0a | 20 20 20 20 20 20 20 20 |h == 0).| |
|00007c30| 72 65 74 75 72 6e 20 2d | 31 3b 0a 20 20 20 20 61 |return -|1;. a|
|00007c40| 20 3d 20 30 3b 0a 20 20 | 20 20 62 20 3d 20 4e 55 | = 0;. | b = NU|
|00007c50| 4d 42 45 52 5f 4e 4f 54 | 45 53 2d 31 3b 0a 20 20 |MBER_NOT|ES-1;. |
|00007c60| 20 20 77 68 69 6c 65 28 | 62 2d 61 20 3e 20 31 29 | while(|b-a > 1)|
|00007c70| 0a 20 20 20 20 20 20 20 | 20 7b 0a 20 20 20 20 20 |. | {. |
|00007c80| 20 20 20 69 20 3d 20 28 | 61 2b 62 29 2f 32 3b 0a | i = (|a+b)/2;.|
|00007c90| 20 20 20 20 20 20 20 20 | 69 66 20 28 70 69 74 63 | |if (pitc|
|00007ca0| 68 5f 74 61 62 6c 65 5b | 69 5d 20 3d 3d 20 70 69 |h_table[|i] == pi|
|00007cb0| 74 63 68 29 0a 20 20 20 | 20 20 20 20 20 20 20 20 |tch). | |
|00007cc0| 20 72 65 74 75 72 6e 20 | 69 20 2b 20 74 72 61 6e | return |i + tran|
|00007cd0| 73 70 6f 73 65 3b 0a 20 | 20 20 20 20 20 20 20 69 |spose;. | i|
|00007ce0| 66 20 28 70 69 74 63 68 | 5f 74 61 62 6c 65 5b 69 |f (pitch|_table[i|
|00007cf0| 5d 20 3e 20 70 69 74 63 | 68 29 0a 20 20 20 20 20 |] > pitc|h). |
|00007d00| 20 20 20 20 20 20 20 61 | 20 3d 20 69 3b 0a 20 20 | a| = i;. |
|00007d10| 20 20 20 20 20 20 65 6c | 73 65 0a 20 20 20 20 20 | el|se. |
|00007d20| 20 20 20 20 20 20 20 62 | 20 3d 20 69 3b 0a 20 20 | b| = i;. |
|00007d30| 20 20 20 20 20 20 7d 0a | 20 20 20 20 69 66 20 28 | }.| if (|
|00007d40| 70 69 74 63 68 5f 74 61 | 62 6c 65 5b 61 5d 20 2d |pitch_ta|ble[a] -|
|00007d50| 20 46 55 5a 5a 20 3c 3d | 20 70 69 74 63 68 29 0a | FUZZ <=| pitch).|
|00007d60| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 20 61 | |return a|
|00007d70| 20 2b 20 74 72 61 6e 73 | 70 6f 73 65 3b 0a 20 20 | + trans|pose;. |
|00007d80| 20 20 69 66 20 28 70 69 | 74 63 68 5f 74 61 62 6c | if (pi|tch_tabl|
|00007d90| 65 5b 62 5d 20 2b 20 46 | 55 5a 5a 20 3e 3d 20 70 |e[b] + F|UZZ >= p|
|00007da0| 69 74 63 68 29 0a 20 20 | 20 20 20 20 20 20 72 65 |itch). | re|
|00007db0| 74 75 72 6e 20 62 20 2b | 20 74 72 61 6e 73 70 6f |turn b +| transpo|
|00007dc0| 73 65 3b 0a 20 20 20 20 | 72 65 74 75 72 6e 20 4e |se;. |return N|
|00007dd0| 4f 5f 4e 4f 54 45 3b 0a | 20 20 20 20 7d 0a 0a 2f |O_NOTE;.| }../|
|00007de0| 2a 20 63 20 3d 20 63 68 | 65 63 6b 67 65 74 63 28 |* c = ch|eckgetc(|
|00007df0| 66 29 3a 0a 20 2a 20 67 | 65 74 73 20 61 20 63 68 |f):. * g|ets a ch|
|00007e00| 61 72 61 63 74 65 72 20 | 66 72 6f 6d 20 66 69 6c |aracter |from fil|
|00007e10| 65 20 66 2e 0a 20 2a 20 | 41 62 6f 72 74 73 20 70 |e f.. * |Aborts p|
|00007e20| 72 6f 67 72 61 6d 20 69 | 66 20 66 69 6c 65 20 66 |rogram i|f file f|
|00007e30| 20 69 73 20 66 69 6e 69 | 73 68 65 64 0a 20 2a 2f | is fini|shed. */|
|00007e40| 0a 0a 69 6e 74 20 63 68 | 65 63 6b 67 65 74 63 28 |..int ch|eckgetc(|
|00007e50| 66 29 0a 46 49 4c 45 20 | 2a 66 3b 0a 20 20 20 20 |f).FILE |*f;. |
|00007e60| 7b 0a 20 20 20 20 69 6e | 74 20 63 3b 0a 0a 20 20 |{. in|t c;.. |
|00007e70| 20 20 69 66 20 28 28 63 | 20 3d 20 66 67 65 74 63 | if ((c| = fgetc|
|00007e80| 28 66 29 29 20 3d 3d 20 | 45 4f 46 29 0a 20 20 20 |(f)) == |EOF). |
|00007e90| 20 20 20 20 20 65 72 72 | 6f 72 20 3d 20 46 49 4c | err|or = FIL|
|00007ea0| 45 5f 54 4f 4f 5f 53 48 | 4f 52 54 3b 0a 20 20 20 |E_TOO_SH|ORT;. |
|00007eb0| 20 72 65 74 75 72 6e 20 | 63 3b 0a 20 20 20 20 7d | return |c;. }|
|00007ec0| 0a 0a 2f 2a 20 73 20 3d | 20 67 65 74 73 74 72 69 |../* s =| getstri|
|00007ed0| 6e 67 28 66 2c 20 6c 65 | 6e 29 3a 0a 20 2a 20 67 |ng(f, le|n):. * g|
|00007ee0| 65 74 73 20 61 20 73 6f | 75 6e 64 74 72 61 63 6b |ets a so|undtrack|
|00007ef0| 65 72 20 73 74 72 69 6e | 67 20 66 72 6f 6d 20 66 |er strin|g from f|
|00007f00| 69 6c 65 20 66 2e 0a 20 | 2a 20 49 2e 65 2c 20 69 |ile f.. |* I.e, i|
|00007f10| 74 20 69 73 20 61 20 66 | 69 78 65 64 20 6c 65 6e |t is a f|ixed len|
|00007f20| 67 74 68 20 73 74 72 69 | 6e 67 20 74 65 72 6d 69 |gth stri|ng termi|
|00007f30| 6e 61 74 65 64 0a 20 2a | 20 62 79 20 61 20 30 20 |nated. *| by a 0 |
|00007f40| 69 66 20 74 6f 6f 20 73 | 68 6f 72 74 0a 20 2a 2f |if too s|hort. */|
|00007f50| 0a 0a 23 64 65 66 69 6e | 65 20 4d 41 58 5f 4c 45 |..#defin|e MAX_LE|
|00007f60| 4e 20 35 30 0a 0a 63 68 | 61 72 20 2a 67 65 74 73 |N 50..ch|ar *gets|
|00007f70| 74 72 69 6e 67 28 66 2c | 20 6c 65 6e 29 0a 46 49 |tring(f,| len).FI|
|00007f80| 4c 45 20 2a 66 3b 0a 69 | 6e 74 20 6c 65 6e 3b 0a |LE *f;.i|nt len;.|
|00007f90| 20 20 20 20 7b 0a 20 20 | 20 20 73 74 61 74 69 63 | {. | static|
|00007fa0| 20 63 68 61 72 20 73 5b | 4d 41 58 5f 4c 45 4e 5d | char s[|MAX_LEN]|
|00007fb0| 3b 0a 20 20 20 20 63 68 | 61 72 20 2a 6e 65 77 3b |;. ch|ar *new;|
|00007fc0| 0a 20 20 20 20 69 6e 74 | 20 69 3b 0a 0a 20 20 20 |. int| i;.. |
|00007fd0| 20 20 20 20 20 0a 20 20 | 20 20 66 6f 72 20 28 69 | . | for (i|
|00007fe0| 20 3d 20 30 3b 20 69 20 | 3c 20 6c 65 6e 3b 20 69 | = 0; i |< len; i|
|00007ff0| 2b 2b 29 0a 20 20 20 20 | 20 20 20 20 73 5b 4d 49 |++). | s[MI|
|00008000| 4e 28 69 2c 20 4d 41 58 | 5f 4c 45 4e 20 2d 20 31 |N(i, MAX|_LEN - 1|
|00008010| 29 5d 20 3d 20 63 68 65 | 63 6b 67 65 74 63 28 66 |)] = che|ckgetc(f|
|00008020| 29 3b 0a 20 20 20 20 73 | 5b 4d 49 4e 28 6c 65 6e |);. s|[MIN(len|
|00008030| 2c 20 4d 41 58 5f 4c 45 | 4e 20 2d 20 31 29 5d 20 |, MAX_LE|N - 1)] |
|00008040| 3d 20 27 5c 30 27 3b 0a | 20 20 20 20 6e 65 77 20 |= '\0';.| new |
|00008050| 3d 20 6d 61 6c 6c 6f 63 | 28 73 74 72 6c 65 6e 28 |= malloc|(strlen(|
|00008060| 73 29 2b 31 29 3b 0a 0a | 20 20 20 20 72 65 74 75 |s)+1);..| retu|
|00008070| 72 6e 20 73 74 72 63 70 | 79 28 6e 65 77 2c 20 73 |rn strcp|y(new, s|
|00008080| 29 3b 0a 20 20 20 20 7d | 0a 0a 2f 2a 20 62 79 74 |);. }|../* byt|
|00008090| 65 73 6b 69 70 28 66 2c | 20 6c 65 6e 29 0a 20 2a |eskip(f,| len). *|
|000080a0| 20 73 61 6d 65 20 61 73 | 20 66 73 65 65 6b 2c 20 | same as| fseek, |
|000080b0| 78 63 70 74 20 69 74 20 | 77 6f 72 6b 73 20 6f 6e |xcpt it |works on|
|000080c0| 20 73 74 64 69 6e 0a 20 | 2a 2f 0a 0a 76 6f 69 64 | stdin. |*/..void|
|000080d0| 20 62 79 74 65 73 6b 69 | 70 28 66 2c 20 6c 65 6e | byteski|p(f, len|
|000080e0| 29 0a 46 49 4c 45 20 2a | 66 3b 0a 69 6e 74 20 6c |).FILE *|f;.int l|
|000080f0| 65 6e 3b 0a 20 20 20 20 | 7b 0a 20 20 20 20 69 6e |en;. |{. in|
|00008100| 74 20 69 3b 0a 0a 20 20 | 20 20 66 6f 72 20 28 69 |t i;.. | for (i|
|00008110| 20 3d 20 30 3b 20 69 20 | 3c 20 6c 65 6e 3b 20 69 | = 0; i |< len; i|
|00008120| 2b 2b 29 0a 20 20 20 20 | 20 20 20 20 63 68 65 63 |++). | chec|
|00008130| 6b 67 65 74 63 28 66 29 | 3b 0a 20 20 20 20 7d 0a |kgetc(f)|;. }.|
|00008140| 0a 2f 2a 20 76 20 3d 20 | 67 65 74 75 73 68 6f 72 |./* v = |getushor|
|00008150| 74 28 66 29 0a 20 2a 20 | 72 65 61 64 73 20 61 6e |t(f). * |reads an|
|00008160| 20 75 6e 73 69 67 6e 65 | 64 20 73 68 6f 72 74 20 | unsigne|d short |
|00008170| 66 72 6f 6d 20 66 0a 20 | 2a 2f 0a 0a 69 6e 74 20 |from f. |*/..int |
|00008180| 67 65 74 75 73 68 6f 72 | 74 28 66 29 0a 46 49 4c |getushor|t(f).FIL|
|00008190| 45 20 2a 66 3b 0a 20 20 | 20 20 7b 0a 20 20 20 20 |E *f;. | {. |
|000081a0| 69 6e 74 20 69 3b 0a 0a | 20 20 20 20 69 20 3d 20 |int i;..| i = |
|000081b0| 63 68 65 63 6b 67 65 74 | 63 28 66 29 20 3c 3c 20 |checkget|c(f) << |
|000081c0| 38 3b 0a 20 20 20 20 72 | 65 74 75 72 6e 20 69 20 |8;. r|eturn i |
|000081d0| 7c 20 63 68 65 63 6b 67 | 65 74 63 28 66 29 3b 0a || checkg|etc(f);.|
|000081e0| 20 20 20 20 7d 0a 0a 76 | 6f 69 64 20 66 69 6c 6c | }..v|oid fill|
|000081f0| 5f 73 61 6d 70 6c 65 5f | 69 6e 66 6f 28 69 6e 66 |_sample_|info(inf|
|00008200| 6f 2c 20 66 29 0a 73 74 | 72 75 63 74 20 73 61 6d |o, f).st|ruct sam|
|00008210| 70 6c 65 5f 69 6e 66 6f | 20 2a 69 6e 66 6f 3b 0a |ple_info| *info;.|
|00008220| 46 49 4c 45 20 2a 66 3b | 0a 20 20 20 20 7b 0a 20 |FILE *f;|. {. |
|00008230| 20 20 20 69 6e 66 6f 2d | 3e 6e 61 6d 65 20 3d 20 | info-|>name = |
|00008240| 67 65 74 73 74 72 69 6e | 67 28 66 2c 20 32 32 29 |getstrin|g(f, 22)|
|00008250| 3b 0a 20 20 20 20 69 6e | 66 6f 2d 3e 6c 65 6e 67 |;. in|fo->leng|
|00008260| 74 68 20 3d 20 67 65 74 | 75 73 68 6f 72 74 28 66 |th = get|ushort(f|
|00008270| 29 3b 0a 20 20 20 20 69 | 6e 66 6f 2d 3e 66 69 6e |);. i|nfo->fin|
|00008280| 65 74 75 6e 65 20 3d 20 | 63 68 65 63 6b 67 65 74 |etune = |checkget|
|00008290| 63 28 66 29 3b 0a 20 20 | 20 20 69 6e 66 6f 2d 3e |c(f);. | info->|
|000082a0| 76 6f 6c 75 6d 65 20 3d | 20 63 68 65 63 6b 67 65 |volume =| checkge|
|000082b0| 74 63 28 66 29 3b 0a 20 | 20 20 20 69 6e 66 6f 2d |tc(f);. | info-|
|000082c0| 3e 76 6f 6c 75 6d 65 20 | 3d 20 4d 49 4e 28 69 6e |>volume |= MIN(in|
|000082d0| 66 6f 2d 3e 76 6f 6c 75 | 6d 65 2c 20 4d 41 58 5f |fo->volu|me, MAX_|
|000082e0| 56 4f 4c 55 4d 45 29 3b | 0a 20 20 20 20 69 6e 66 |VOLUME);|. inf|
|000082f0| 6f 2d 3e 72 70 5f 6f 66 | 66 73 65 74 20 3d 20 67 |o->rp_of|fset = g|
|00008300| 65 74 75 73 68 6f 72 74 | 28 66 29 3b 0a 20 20 20 |etushort|(f);. |
|00008310| 20 69 6e 66 6f 2d 3e 72 | 70 5f 6c 65 6e 67 74 68 | info->r|p_length|
|00008320| 20 3d 20 67 65 74 75 73 | 68 6f 72 74 28 66 29 3b | = getus|hort(f);|
|00008330| 0a 0a 20 20 20 20 2f 2a | 20 74 68 65 20 6e 65 78 |.. /*| the nex|
|00008340| 74 20 63 68 65 63 6b 20 | 69 73 20 66 6f 72 20 6f |t check |is for o|
|00008350| 6c 64 20 6d 6f 64 75 6c | 65 73 20 66 6f 72 20 77 |ld modul|es for w|
|00008360| 68 69 63 68 0a 20 20 20 | 20 20 2a 20 74 68 65 20 |hich. | * the |
|00008370| 73 61 6d 70 6c 65 20 64 | 61 74 61 20 74 79 70 65 |sample d|ata type|
|00008380| 73 20 61 72 65 20 61 20 | 62 69 74 20 63 6f 6e 66 |s are a |bit conf|
|00008390| 75 73 65 64 2c 20 73 6f | 0a 20 20 20 20 20 2a 20 |used, so|. * |
|000083a0| 74 68 61 74 20 77 68 61 | 74 20 77 65 20 77 65 72 |that wha|t we wer|
|000083b0| 65 20 65 78 70 65 63 74 | 69 6e 67 20 74 6f 20 62 |e expect|ing to b|
|000083c0| 65 20 23 77 6f 72 64 73 | 20 69 73 20 23 62 79 74 |e #words| is #byt|
|000083d0| 65 73 2e 0a 20 20 20 20 | 20 2a 2f 0a 20 20 20 20 |es.. | */. |
|000083e0| 20 20 20 20 2f 2a 20 6e | 6f 74 20 73 75 72 65 20 | /* n|ot sure |
|000083f0| 49 20 75 6e 64 65 72 73 | 74 61 6e 64 20 74 68 65 |I unders|tand the|
|00008400| 20 2d 31 20 6d 79 73 65 | 6c 66 2c 20 74 68 6f 75 | -1 myse|lf, thou|
|00008410| 67 68 20 69 74 27 73 0a | 20 20 20 20 20 20 20 20 |gh it's.| |
|00008420| 20 2a 20 6e 65 63 65 73 | 73 61 72 79 20 74 6f 20 | * neces|sary to |
|00008430| 70 6c 61 79 20 6b 61 77 | 61 69 2d 6b 31 20 63 6f |play kaw|ai-k1 co|
|00008440| 72 72 65 63 74 6c 79 20 | 0a 20 20 20 20 20 20 20 |rrectly |. |
|00008450| 20 20 2a 2f 0a 20 20 20 | 20 69 66 20 28 69 6e 66 | */. | if (inf|
|00008460| 6f 2d 3e 72 70 5f 6c 65 | 6e 67 74 68 20 2b 20 69 |o->rp_le|ngth + i|
|00008470| 6e 66 6f 2d 3e 72 70 5f | 6f 66 66 73 65 74 20 2d |nfo->rp_|offset -|
|00008480| 20 31 20 3e 20 69 6e 66 | 6f 2d 3e 6c 65 6e 67 74 | 1 > inf|o->lengt|
|00008490| 68 29 0a 20 20 20 20 20 | 20 20 20 69 6e 66 6f 2d |h). | info-|
|000084a0| 3e 72 70 5f 6f 66 66 73 | 65 74 20 2f 3d 20 32 3b |>rp_offs|et /= 2;|
|000084b0| 0a 20 20 20 20 0a 20 20 | 20 20 69 66 20 28 69 6e |. . | if (in|
|000084c0| 66 6f 2d 3e 72 70 5f 6c | 65 6e 67 74 68 20 2b 20 |fo->rp_l|ength + |
|000084d0| 69 6e 66 6f 2d 3e 72 70 | 5f 6f 66 66 73 65 74 20 |info->rp|_offset |
|000084e0| 3e 20 69 6e 66 6f 2d 3e | 6c 65 6e 67 74 68 29 0a |> info->|length).|
|000084f0| 20 20 20 20 20 20 20 20 | 69 6e 66 6f 2d 3e 72 70 | |info->rp|
|00008500| 5f 6c 65 6e 67 74 68 20 | 3d 20 69 6e 66 6f 2d 3e |_length |= info->|
|00008510| 6c 65 6e 67 74 68 20 2d | 20 69 6e 66 6f 2d 3e 72 |length -| info->r|
|00008520| 70 5f 6f 66 66 73 65 74 | 3b 0a 0a 20 20 20 20 69 |p_offset|;.. i|
|00008530| 6e 66 6f 2d 3e 6c 65 6e | 67 74 68 20 2a 3d 20 32 |nfo->len|gth *= 2|
|00008540| 3b 0a 20 20 20 20 69 6e | 66 6f 2d 3e 72 70 5f 6f |;. in|fo->rp_o|
|00008550| 66 66 73 65 74 20 2a 3d | 20 32 3b 0a 20 20 20 20 |ffset *=| 2;. |
|00008560| 69 6e 66 6f 2d 3e 72 70 | 5f 6c 65 6e 67 74 68 20 |info->rp|_length |
|00008570| 2a 3d 20 32 3b 0a 20 20 | 20 20 20 20 20 20 2f 2a |*= 2;. | /*|
|00008580| 20 69 6e 20 61 6c 6c 20 | 6c 6f 67 69 63 2c 20 61 | in all |logic, a|
|00008590| 20 32 2d 73 69 7a 65 64 | 20 73 61 6d 70 6c 65 20 | 2-sized| sample |
|000085a0| 63 6f 75 6c 64 20 65 78 | 69 73 74 2c 0a 20 20 20 |could ex|ist,. |
|000085b0| 20 20 20 20 20 20 2a 20 | 62 75 74 20 74 68 69 73 | * |but this|
|000085c0| 20 69 73 20 6e 6f 74 20 | 74 68 65 20 63 61 73 65 | is not |the case|
|000085d0| 2c 20 61 6e 64 20 65 76 | 65 6e 20 73 6f 2c 20 73 |, and ev|en so, s|
|000085e0| 6f 6d 65 0a 20 20 20 20 | 20 20 20 20 20 2a 20 74 |ome. | * t|
|000085f0| 72 61 63 6b 65 72 73 20 | 6f 75 74 70 75 74 20 65 |rackers |output e|
|00008600| 6d 70 74 79 20 69 6e 73 | 74 72 75 6d 65 6e 74 73 |mpty ins|truments|
|00008610| 20 61 73 20 62 65 69 6e | 67 20 32 2d 73 69 7a 65 | as bein|g 2-size|
|00008620| 64 2e 0a 20 20 20 20 20 | 20 20 20 20 2a 2f 0a 20 |d.. | */. |
|00008630| 20 20 20 69 66 20 28 69 | 6e 66 6f 2d 3e 6c 65 6e | if (i|nfo->len|
|00008640| 67 74 68 20 3c 3d 20 32 | 29 0a 20 20 20 20 20 20 |gth <= 2|). |
|00008650| 20 20 72 65 74 75 72 6e | 3b 0a 0a 20 20 20 20 69 | return|;.. i|
|00008660| 6e 66 6f 2d 3e 73 74 61 | 72 74 20 3d 20 28 53 41 |nfo->sta|rt = (SA|
|00008670| 4d 50 4c 45 20 2a 29 63 | 61 6c 6c 6f 63 28 69 6e |MPLE *)c|alloc(in|
|00008680| 66 6f 2d 3e 6c 65 6e 67 | 74 68 2c 20 31 29 3b 0a |fo->leng|th, 1);.|
|00008690| 0a 20 20 20 20 69 66 20 | 28 69 6e 66 6f 2d 3e 72 |. if |(info->r|
|000086a0| 70 5f 6c 65 6e 67 74 68 | 20 3e 20 32 29 0a 20 20 |p_length| > 2). |
|000086b0| 20 20 20 20 20 20 69 6e | 66 6f 2d 3e 72 70 5f 73 | in|fo->rp_s|
|000086c0| 74 61 72 74 20 3d 20 69 | 6e 66 6f 2d 3e 73 74 61 |tart = i|nfo->sta|
|000086d0| 72 74 20 2b 20 69 6e 66 | 6f 2d 3e 72 70 5f 6f 66 |rt + inf|o->rp_of|
|000086e0| 66 73 65 74 3b 0a 20 20 | 20 20 65 6c 73 65 0a 20 |fset;. | else. |
|000086f0| 20 20 20 20 20 20 20 69 | 6e 66 6f 2d 3e 72 70 5f | i|nfo->rp_|
|00008700| 73 74 61 72 74 20 3d 20 | 4e 55 4c 4c 3b 0a 20 20 |start = |NULL;. |
|00008710| 20 20 0a 20 20 20 20 69 | 66 20 28 69 6e 66 6f 2d | . i|f (info-|
|00008720| 3e 6c 65 6e 67 74 68 20 | 3e 20 4d 41 58 5f 53 41 |>length |> MAX_SA|
|00008730| 4d 50 4c 45 5f 4c 45 4e | 47 54 48 29 0a 20 20 20 |MPLE_LEN|GTH). |
|00008740| 20 20 20 20 20 65 72 72 | 6f 72 20 3d 20 43 4f 52 | err|or = COR|
|00008750| 52 55 50 54 5f 46 49 4c | 45 3b 0a 20 20 20 20 7d |RUPT_FIL|E;. }|
|00008760| 0a 0a 76 6f 69 64 20 66 | 69 6c 6c 5f 73 6f 6e 67 |..void f|ill_song|
|00008770| 5f 69 6e 66 6f 28 69 6e | 66 6f 2c 20 66 29 0a 73 |_info(in|fo, f).s|
|00008780| 74 72 75 63 74 20 73 6f | 6e 67 5f 69 6e 66 6f 20 |truct so|ng_info |
|00008790| 2a 69 6e 66 6f 3b 0a 46 | 49 4c 45 20 2a 66 3b 0a |*info;.F|ILE *f;.|
|000087a0| 20 20 20 20 7b 0a 20 20 | 20 20 69 6e 74 20 69 3b | {. | int i;|
|000087b0| 0a 20 20 20 20 69 6e 74 | 20 70 3b 0a 0a 20 20 20 |. int| p;.. |
|000087c0| 20 69 6e 66 6f 2d 3e 6c | 65 6e 67 74 68 20 3d 20 | info->l|ength = |
|000087d0| 63 68 65 63 6b 67 65 74 | 63 28 66 29 3b 0a 20 20 |checkget|c(f);. |
|000087e0| 20 20 63 68 65 63 6b 67 | 65 74 63 28 66 29 3b 0a | checkg|etc(f);.|
|000087f0| 20 20 20 20 69 6e 66 6f | 2d 3e 6d 61 78 70 61 74 | info|->maxpat|
|00008800| 20 3d 20 2d 31 3b 0a 20 | 20 20 20 66 6f 72 20 28 | = -1;. | for (|
|00008810| 69 20 3d 20 30 3b 20 69 | 20 3c 20 4e 55 4d 42 45 |i = 0; i| < NUMBE|
|00008820| 52 5f 50 41 54 54 45 52 | 4e 53 3b 20 69 2b 2b 29 |R_PATTER|NS; i++)|
|00008830| 0a 20 20 20 20 20 20 20 | 20 7b 0a 20 20 20 20 20 |. | {. |
|00008840| 20 20 20 70 20 3d 20 67 | 65 74 63 28 66 29 3b 0a | p = g|etc(f);.|
|00008850| 20 20 20 20 20 20 20 20 | 69 66 20 28 70 20 3e 3d | |if (p >=|
|00008860| 20 4e 55 4d 42 45 52 5f | 50 41 54 54 45 52 4e 53 | NUMBER_|PATTERNS|
|00008870| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 70 20 |). | p |
|00008880| 3d 20 30 3b 0a 20 20 20 | 20 20 20 20 20 69 66 20 |= 0;. | if |
|00008890| 28 70 20 3e 20 69 6e 66 | 6f 2d 3e 6d 61 78 70 61 |(p > inf|o->maxpa|
|000088a0| 74 29 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 69 |t). | i|
|000088b0| 6e 66 6f 2d 3e 6d 61 78 | 70 61 74 20 3d 20 70 3b |nfo->max|pat = p;|
|000088c0| 0a 20 20 20 20 20 20 20 | 20 69 6e 66 6f 2d 3e 70 |. | info->p|
|000088d0| 61 74 6e 75 6d 62 65 72 | 5b 69 5d 20 3d 20 70 3b |atnumber|[i] = p;|
|000088e0| 0a 20 20 20 20 20 20 20 | 20 7d 0a 20 20 20 20 69 |. | }. i|
|000088f0| 6e 66 6f 2d 3e 6d 61 78 | 70 61 74 2b 2b 3b 0a 20 |nfo->max|pat++;. |
|00008900| 20 20 20 69 66 20 28 69 | 6e 66 6f 2d 3e 6d 61 78 | if (i|nfo->max|
|00008910| 70 61 74 20 3d 3d 20 30 | 20 7c 7c 20 69 6e 66 6f |pat == 0| || info|
|00008920| 2d 3e 6c 65 6e 67 74 68 | 20 3d 3d 20 30 29 0a 20 |->length| == 0). |
|00008930| 20 20 20 20 20 20 20 65 | 72 72 6f 72 20 3d 20 43 | e|rror = C|
|00008940| 4f 52 52 55 50 54 5f 46 | 49 4c 45 3b 0a 20 20 20 |ORRUPT_F|ILE;. |
|00008950| 20 7d 0a 0a 76 6f 69 64 | 20 66 69 6c 6c 5f 65 76 | }..void| fill_ev|
|00008960| 65 6e 74 28 65 2c 20 66 | 29 0a 73 74 72 75 63 74 |ent(e, f|).struct|
|00008970| 20 65 76 65 6e 74 20 2a | 65 3b 0a 46 49 4c 45 20 | event *|e;.FILE |
|00008980| 2a 66 3b 0a 20 20 20 20 | 7b 0a 20 20 20 20 69 6e |*f;. |{. in|
|00008990| 74 20 61 2c 20 62 2c 20 | 63 2c 20 64 3b 0a 0a 20 |t a, b, |c, d;.. |
|000089a0| 20 20 20 61 20 3d 20 63 | 68 65 63 6b 67 65 74 63 | a = c|heckgetc|
|000089b0| 28 66 29 3b 0a 20 20 20 | 20 62 20 3d 20 63 68 65 |(f);. | b = che|
|000089c0| 63 6b 67 65 74 63 28 66 | 29 3b 0a 20 20 20 20 63 |ckgetc(f|);. c|
|000089d0| 20 3d 20 63 68 65 63 6b | 67 65 74 63 28 66 29 3b | = check|getc(f);|
|000089e0| 0a 20 20 20 20 64 20 3d | 20 63 68 65 63 6b 67 65 |. d =| checkge|
|000089f0| 74 63 28 66 29 3b 0a 20 | 20 20 20 65 2d 3e 73 61 |tc(f);. | e->sa|
|00008a00| 6d 70 6c 65 5f 6e 75 6d | 62 65 72 20 3d 20 61 20 |mple_num|ber = a |
|00008a10| 26 20 30 78 31 30 20 7c | 20 28 63 20 3e 3e 20 34 |& 0x10 || (c >> 4|
|00008a20| 29 3b 0a 20 20 20 20 65 | 2d 3e 65 66 66 65 63 74 |);. e|->effect|
|00008a30| 20 3d 20 63 20 26 20 30 | 78 66 3b 0a 20 20 20 20 | = c & 0|xf;. |
|00008a40| 65 2d 3e 70 61 72 61 6d | 65 74 65 72 73 20 3d 20 |e->param|eters = |
|00008a50| 64 3b 0a 20 20 20 20 65 | 2d 3e 70 69 74 63 68 20 |d;. e|->pitch |
|00008a60| 3d 20 28 20 28 61 20 26 | 20 31 35 29 20 3c 3c 20 |= ( (a &| 15) << |
|00008a70| 38 20 29 20 7c 20 62 3b | 0a 20 20 20 20 65 2d 3e |8 ) | b;|. e->|
|00008a80| 6e 6f 74 65 20 3d 20 66 | 69 6e 64 5f 6e 6f 74 65 |note = f|ind_note|
|00008a90| 28 65 2d 3e 70 69 74 63 | 68 29 3b 0a 20 20 20 20 |(e->pitc|h);. |
|00008aa0| 7d 0a 0a 76 6f 69 64 20 | 66 69 6c 6c 5f 70 61 74 |}..void |fill_pat|
|00008ab0| 74 65 72 6e 28 70 61 74 | 74 65 72 6e 2c 20 66 29 |tern(pat|tern, f)|
|00008ac0| 0a 73 74 72 75 63 74 20 | 62 6c 6f 63 6b 20 2a 70 |.struct |block *p|
|00008ad0| 61 74 74 65 72 6e 3b 0a | 46 49 4c 45 20 2a 66 3b |attern;.|FILE *f;|
|00008ae0| 0a 20 20 20 20 7b 0a 20 | 20 20 20 69 6e 74 20 69 |. {. | int i|
|00008af0| 2c 20 6a 3b 0a 0a 20 20 | 20 20 66 6f 72 20 28 69 |, j;.. | for (i|
|00008b00| 20 3d 20 30 3b 20 69 20 | 3c 20 42 4c 4f 43 4b 5f | = 0; i |< BLOCK_|
|00008b10| 4c 45 4e 47 54 48 3b 20 | 69 2b 2b 29 0a 20 20 20 |LENGTH; |i++). |
|00008b20| 20 20 20 20 20 66 6f 72 | 20 28 6a 20 3d 20 30 3b | for| (j = 0;|
|00008b30| 20 6a 20 3c 20 4e 55 4d | 42 45 52 5f 54 52 41 43 | j < NUM|BER_TRAC|
|00008b40| 4b 53 3b 20 6a 2b 2b 29 | 0a 20 20 20 20 20 20 20 |KS; j++)|. |
|00008b50| 20 20 20 20 20 66 69 6c | 6c 5f 65 76 65 6e 74 28 | fil|l_event(|
|00008b60| 26 28 70 61 74 74 65 72 | 6e 2d 3e 65 5b 6a 5d 5b |&(patter|n->e[j][|
|00008b70| 69 5d 29 2c 20 66 29 3b | 0a 20 20 20 20 7d 0a 0a |i]), f);|. }..|
|00008b80| 0a 76 6f 69 64 20 72 65 | 61 64 5f 73 61 6d 70 6c |.void re|ad_sampl|
|00008b90| 65 28 69 6e 66 6f 2c 20 | 66 29 0a 73 74 72 75 63 |e(info, |f).struc|
|00008ba0| 74 20 73 61 6d 70 6c 65 | 5f 69 6e 66 6f 20 2a 69 |t sample|_info *i|
|00008bb0| 6e 66 6f 3b 0a 46 49 4c | 45 20 2a 66 3b 0a 20 20 |nfo;.FIL|E *f;. |
|00008bc0| 20 20 7b 0a 20 20 20 20 | 69 6e 74 20 69 3b 0a 0a | {. |int i;..|
|00008bd0| 20 20 20 20 69 66 20 28 | 69 6e 66 6f 2d 3e 73 74 | if (|info->st|
|00008be0| 61 72 74 29 0a 20 20 20 | 20 20 20 20 20 7b 0a 20 |art). | {. |
|00008bf0| 20 20 20 20 20 20 20 66 | 72 65 61 64 28 69 6e 66 | f|read(inf|
|00008c00| 6f 2d 3e 73 74 61 72 74 | 2c 20 31 2c 20 69 6e 66 |o->start|, 1, inf|
|00008c10| 6f 2d 3e 6c 65 6e 67 74 | 68 2c 20 66 29 3b 0a 20 |o->lengt|h, f);. |
|00008c20| 20 20 20 20 20 20 20 7d | 0a 20 20 20 20 7d 0a 0a | }|. }..|
|00008c30| 0a 0a 0a 2f 2a 2a 2a 0a | 20 2a 0a 20 2a 20 20 6e |.../***.| *. * n|
|00008c40| 65 77 5f 58 58 58 3a 20 | 61 6c 6c 6f 63 61 74 65 |ew_XXX: |allocate|
|00008c50| 73 20 61 20 6e 65 77 20 | 73 74 72 75 63 74 75 72 |s a new |structur|
|00008c60| 65 20 66 6f 72 20 61 20 | 73 6f 6e 67 2e 0a 20 2a |e for a |song.. *|
|00008c70| 20 20 63 6c 65 61 72 73 | 20 65 61 63 68 20 61 6e | clears| each an|
|00008c80| 64 20 65 76 65 72 79 20 | 66 69 65 6c 64 20 61 73 |d every |field as|
|00008c90| 20 61 70 70 72 6f 70 72 | 69 61 74 65 2e 0a 20 2a | appropr|iate.. *|
|00008ca0| 0a 20 2a 2a 2a 2f 0a 0a | 73 74 72 75 63 74 20 73 |. ***/..|struct s|
|00008cb0| 6f 6e 67 20 2a 6e 65 77 | 5f 73 6f 6e 67 28 29 0a |ong *new|_song().|
|00008cc0| 20 20 20 20 7b 0a 20 20 | 20 20 73 74 72 75 63 74 | {. | struct|
|00008cd0| 20 73 6f 6e 67 20 2a 6e | 65 77 3b 0a 20 20 20 20 | song *n|ew;. |
|00008ce0| 69 6e 74 20 69 3b 0a 0a | 20 20 20 20 6e 65 77 20 |int i;..| new |
|00008cf0| 3d 20 28 73 74 72 75 63 | 74 20 73 6f 6e 67 20 2a |= (struc|t song *|
|00008d00| 29 6d 61 6c 6c 6f 63 28 | 73 69 7a 65 6f 66 28 73 |)malloc(|sizeof(s|
|00008d10| 74 72 75 63 74 20 73 6f | 6e 67 29 29 3b 0a 20 20 |truct so|ng));. |
|00008d20| 20 20 6e 65 77 2d 3e 74 | 69 74 6c 65 20 3d 20 4e | new->t|itle = N|
|00008d30| 55 4c 4c 3b 0a 20 20 20 | 20 6e 65 77 2d 3e 69 6e |ULL;. | new->in|
|00008d40| 66 6f 20 3d 20 4e 55 4c | 4c 3b 0a 20 20 20 20 66 |fo = NUL|L;. f|
|00008d50| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 20 4e |or (i = |0; i < N|
|00008d60| 55 4d 42 45 52 5f 53 41 | 4d 50 4c 45 53 3b 20 69 |UMBER_SA|MPLES; i|
|00008d70| 2b 2b 29 0a 20 20 20 20 | 20 20 20 20 6e 65 77 2d |++). | new-|
|00008d80| 3e 73 61 6d 70 6c 65 73 | 5b 69 5d 20 3d 20 4e 55 |>samples|[i] = NU|
|00008d90| 4c 4c 3b 0a 20 20 20 20 | 72 65 74 75 72 6e 20 6e |LL;. |return n|
|00008da0| 65 77 3b 0a 20 20 20 20 | 7d 0a 0a 73 74 72 75 63 |ew;. |}..struc|
|00008db0| 74 20 73 61 6d 70 6c 65 | 5f 69 6e 66 6f 20 2a 6e |t sample|_info *n|
|00008dc0| 65 77 5f 73 61 6d 70 6c | 65 5f 69 6e 66 6f 28 29 |ew_sampl|e_info()|
|00008dd0| 0a 20 20 20 20 7b 0a 20 | 20 20 20 73 74 72 75 63 |. {. | struc|
|00008de0| 74 20 73 61 6d 70 6c 65 | 5f 69 6e 66 6f 20 2a 6e |t sample|_info *n|
|00008df0| 65 77 3b 0a 0a 20 20 20 | 20 6e 65 77 20 3d 20 28 |ew;.. | new = (|
|00008e00| 73 74 72 75 63 74 20 73 | 61 6d 70 6c 65 5f 69 6e |struct s|ample_in|
|00008e10| 66 6f 20 2a 29 6d 61 6c | 6c 6f 63 28 73 69 7a 65 |fo *)mal|loc(size|
|00008e20| 6f 66 28 73 74 72 75 63 | 74 20 73 61 6d 70 6c 65 |of(struc|t sample|
|00008e30| 5f 69 6e 66 6f 29 29 3b | 0a 20 20 20 20 6e 65 77 |_info));|. new|
|00008e40| 2d 3e 6e 61 6d 65 20 3d | 20 4e 55 4c 4c 3b 0a 20 |->name =| NULL;. |
|00008e50| 20 20 20 6e 65 77 2d 3e | 6c 65 6e 67 74 68 20 3d | new->|length =|
|00008e60| 20 4e 55 4c 4c 3b 0a 20 | 20 20 20 6e 65 77 2d 3e | NULL;. | new->|
|00008e70| 73 74 61 72 74 20 3d 20 | 4e 55 4c 4c 3b 0a 20 20 |start = |NULL;. |
|00008e80| 20 20 6e 65 77 2d 3e 72 | 70 5f 73 74 61 72 74 20 | new->r|p_start |
|00008e90| 3d 20 4e 55 4c 4c 3b 0a | 20 20 20 20 72 65 74 75 |= NULL;.| retu|
|00008ea0| 72 6e 20 6e 65 77 3b 0a | 20 20 20 20 7d 0a 0a 73 |rn new;.| }..s|
|00008eb0| 74 72 75 63 74 20 73 6f | 6e 67 5f 69 6e 66 6f 20 |truct so|ng_info |
|00008ec0| 2a 6e 65 77 5f 73 6f 6e | 67 5f 69 6e 66 6f 28 29 |*new_son|g_info()|
|00008ed0| 0a 20 20 20 20 7b 0a 20 | 20 20 20 73 74 72 75 63 |. {. | struc|
|00008ee0| 74 20 73 6f 6e 67 5f 69 | 6e 66 6f 20 2a 6e 65 77 |t song_i|nfo *new|
|00008ef0| 3b 0a 0a 20 20 20 20 6e | 65 77 20 3d 20 28 73 74 |;.. n|ew = (st|
|00008f00| 72 75 63 74 20 73 6f 6e | 67 5f 69 6e 66 6f 20 2a |ruct son|g_info *|
|00008f10| 29 6d 61 6c 6c 6f 63 28 | 73 69 7a 65 6f 66 28 73 |)malloc(|sizeof(s|
|00008f20| 74 72 75 63 74 20 73 6f | 6e 67 5f 69 6e 66 6f 29 |truct so|ng_info)|
|00008f30| 29 3b 0a 20 20 20 20 6e | 65 77 2d 3e 6c 65 6e 67 |);. n|ew->leng|
|00008f40| 74 68 20 3d 20 30 3b 0a | 20 20 20 20 6e 65 77 2d |th = 0;.| new-|
|00008f50| 3e 6d 61 78 70 61 74 20 | 3d 20 2d 31 3b 0a 20 20 |>maxpat |= -1;. |
|00008f60| 20 20 6e 65 77 2d 3e 70 | 62 6c 6f 63 6b 73 20 3d | new->p|blocks =|
|00008f70| 20 4e 55 4c 4c 3b 0a 20 | 20 20 20 72 65 74 75 72 | NULL;. | retur|
|00008f80| 6e 20 6e 65 77 3b 0a 20 | 20 20 20 7d 0a 0a 2f 2a |n new;. | }../*|
|00008f90| 20 72 65 6c 65 61 73 65 | 5f 73 6f 6e 67 28 73 6f | release|_song(so|
|00008fa0| 6e 67 29 3a 20 67 69 76 | 65 73 20 62 61 63 6b 20 |ng): giv|es back |
|00008fb0| 61 6c 6c 20 6d 65 6d 6f | 72 79 20 0a 20 2a 20 6f |all memo|ry . * o|
|00008fc0| 63 63 75 70 69 65 64 20 | 62 79 20 73 6f 6e 67 2e |ccupied |by song.|
|00008fd0| 20 41 73 73 75 6d 65 20 | 74 68 61 74 20 65 61 63 | Assume |that eac|
|00008fe0| 68 20 73 74 72 75 63 74 | 75 72 65 0a 20 2a 20 68 |h struct|ure. * h|
|00008ff0| 61 73 20 62 65 65 6e 20 | 63 6f 72 72 65 63 74 6c |as been |correctl|
|00009000| 79 20 61 6c 6c 6f 63 61 | 74 65 64 20 62 79 20 61 |y alloca|ted by a|
|00009010| 20 63 61 6c 6c 20 74 6f | 20 74 68 65 0a 20 2a 20 | call to| the. * |
|00009020| 63 6f 72 72 65 73 70 6f | 6e 64 69 6e 67 20 6e 65 |correspo|nding ne|
|00009030| 77 5f 58 58 58 20 66 75 | 6e 63 74 69 6f 6e 2e 0a |w_XXX fu|nction..|
|00009040| 20 2a 2f 0a 76 6f 69 64 | 20 72 65 6c 65 61 73 65 | */.void| release|
|00009050| 5f 73 6f 6e 67 28 73 6f | 6e 67 29 0a 73 74 72 75 |_song(so|ng).stru|
|00009060| 63 74 20 73 6f 6e 67 20 | 2a 73 6f 6e 67 3b 0a 20 |ct song |*song;. |
|00009070| 20 20 20 7b 0a 20 20 20 | 20 69 6e 74 20 69 3b 0a | {. | int i;.|
|00009080| 0a 20 20 20 20 66 6f 72 | 20 28 69 20 3d 20 30 3b |. for| (i = 0;|
|00009090| 20 69 20 3c 20 33 31 3b | 20 69 2b 2b 29 0a 20 20 | i < 31;| i++). |
|000090a0| 20 20 20 20 20 20 7b 0a | 20 20 20 20 20 20 20 20 | {.| |
|000090b0| 69 66 20 28 73 6f 6e 67 | 2d 3e 73 61 6d 70 6c 65 |if (song|->sample|
|000090c0| 73 5b 69 5d 29 0a 20 20 | 20 20 20 20 20 20 20 20 |s[i]). | |
|000090d0| 20 20 7b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|000090e0| 69 66 20 28 73 6f 6e 67 | 2d 3e 73 61 6d 70 6c 65 |if (song|->sample|
|000090f0| 73 5b 69 5d 2d 3e 73 74 | 61 72 74 29 0a 20 20 20 |s[i]->st|art). |
|00009100| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 66 72 65 | | fre|
|00009110| 65 28 73 6f 6e 67 2d 3e | 73 61 6d 70 6c 65 73 5b |e(song->|samples[|
|00009120| 69 5d 2d 3e 73 74 61 72 | 74 29 3b 0a 20 20 20 20 |i]->star|t);. |
|00009130| 20 20 20 20 20 20 20 20 | 69 66 20 28 73 6f 6e 67 | |if (song|
|00009140| 2d 3e 73 61 6d 70 6c 65 | 73 5b 69 5d 2d 3e 6e 61 |->sample|s[i]->na|
|00009150| 6d 65 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |me). | |
|00009160| 20 20 20 20 66 72 65 65 | 28 73 6f 6e 67 2d 3e 73 | free|(song->s|
|00009170| 61 6d 70 6c 65 73 5b 69 | 5d 2d 3e 6e 61 6d 65 29 |amples[i|]->name)|
|00009180| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 66 72 |;. | fr|
|00009190| 65 65 28 73 6f 6e 67 2d | 3e 73 61 6d 70 6c 65 73 |ee(song-|>samples|
|000091a0| 5b 69 5d 29 3b 0a 20 20 | 20 20 20 20 20 20 20 20 |[i]);. | |
|000091b0| 20 20 7d 0a 20 20 20 20 | 20 20 20 20 7d 0a 20 20 | }. | }. |
|000091c0| 20 20 69 66 20 28 73 6f | 6e 67 2d 3e 69 6e 66 6f | if (so|ng->info|
|000091d0| 29 0a 20 20 20 20 20 20 | 20 20 7b 0a 20 20 20 20 |). | {. |
|000091e0| 20 20 20 20 69 66 20 28 | 73 6f 6e 67 2d 3e 69 6e | if (|song->in|
|000091f0| 66 6f 2d 3e 70 62 6c 6f | 63 6b 73 29 0a 20 20 20 |fo->pblo|cks). |
|00009200| 20 20 20 20 20 20 20 20 | 20 66 72 65 65 28 73 6f | | free(so|
|00009210| 6e 67 2d 3e 69 6e 66 6f | 2d 3e 70 62 6c 6f 63 6b |ng->info|->pblock|
|00009220| 73 29 3b 0a 20 20 20 20 | 20 20 20 20 66 72 65 65 |s);. | free|
|00009230| 28 73 6f 6e 67 2d 3e 69 | 6e 66 6f 29 3b 0a 20 20 |(song->i|nfo);. |
|00009240| 20 20 20 20 20 20 7d 0a | 20 20 20 20 69 66 20 28 | }.| if (|
|00009250| 73 6f 6e 67 2d 3e 74 69 | 74 6c 65 29 0a 20 20 20 |song->ti|tle). |
|00009260| 20 20 20 20 20 66 72 65 | 65 28 73 6f 6e 67 2d 3e | fre|e(song->|
|00009270| 74 69 74 6c 65 29 3b 0a | 20 20 20 20 66 72 65 65 |title);.| free|
|00009280| 28 73 6f 6e 67 29 3b 0a | 20 20 20 20 7d 0a 0a 2f |(song);.| }../|
|00009290| 2a 20 65 72 72 6f 72 5f | 73 6f 6e 67 28 73 6f 6e |* error_|song(son|
|000092a0| 67 29 3a 20 77 68 61 74 | 20 77 65 20 73 68 6f 75 |g): what| we shou|
|000092b0| 6c 64 20 72 65 74 75 72 | 6e 0a 20 2a 20 69 66 20 |ld retur|n. * if |
|000092c0| 74 68 65 72 65 20 77 61 | 73 20 61 6e 20 65 72 72 |there wa|s an err|
|000092d0| 6f 72 2e 20 41 63 74 75 | 61 6c 6c 79 2c 20 69 73 |or. Actu|ally, is|
|000092e0| 20 6d 6f 73 74 6c 79 0a | 20 2a 20 75 73 65 66 75 | mostly.| * usefu|
|000092f0| 6c 20 66 6f 72 20 69 74 | 73 20 73 69 64 65 20 65 |l for it|s side e|
|00009300| 66 66 65 63 74 73 2e 0a | 20 2a 2f 0a 73 74 72 75 |ffects..| */.stru|
|00009310| 63 74 20 73 6f 6e 67 20 | 2a 65 72 72 6f 72 5f 73 |ct song |*error_s|
|00009320| 6f 6e 67 28 73 6f 6e 67 | 29 0a 73 74 72 75 63 74 |ong(song|).struct|
|00009330| 20 73 6f 6e 67 20 2a 73 | 6f 6e 67 3b 0a 20 20 20 | song *s|ong;. |
|00009340| 20 7b 0a 20 20 20 20 72 | 65 6c 65 61 73 65 5f 73 | {. r|elease_s|
|00009350| 6f 6e 67 28 73 6f 6e 67 | 29 3b 0a 20 20 20 20 66 |ong(song|);. f|
|00009360| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|00009370| 45 72 72 6f 72 20 77 68 | 69 6c 65 20 72 65 61 64 |Error wh|ile read|
|00009380| 69 6e 67 20 66 69 6c 65 | 5c 6e 22 29 3b 0a 20 20 |ing file|\n");. |
|00009390| 20 20 72 65 74 75 72 6e | 20 4e 55 4c 4c 3b 0a 20 | return| NULL;. |
|000093a0| 20 20 20 7d 0a 0a 2f 2a | 20 62 61 64 5f 73 69 67 | }../*| bad_sig|
|000093b0| 28 66 29 3a 20 72 65 61 | 64 20 74 68 65 20 73 69 |(f): rea|d the si|
|000093c0| 67 6e 61 74 75 72 65 20 | 6f 6e 20 66 69 6c 65 20 |gnature |on file |
|000093d0| 66 0a 20 2a 20 61 6e 64 | 20 72 65 74 75 72 6e 73 |f. * and| returns|
|000093e0| 20 21 30 20 69 66 20 69 | 74 20 69 73 20 6e 6f 74 | !0 if i|t is not|
|000093f0| 20 61 20 6b 6e 6f 77 6e | 20 73 69 67 2e 0a 20 2a | a known| sig.. *|
|00009400| 2f 0a 69 6e 74 20 62 61 | 64 5f 73 69 67 28 66 29 |/.int ba|d_sig(f)|
|00009410| 0a 46 49 4c 45 20 2a 66 | 3b 0a 20 20 20 20 7b 0a |.FILE *f|;. {.|
|00009420| 20 20 20 20 63 68 61 72 | 20 61 2c 20 62 2c 20 63 | char| a, b, c|
|00009430| 2c 20 64 3b 0a 0a 20 20 | 20 20 61 20 3d 20 66 67 |, d;.. | a = fg|
|00009440| 65 74 63 28 66 29 3b 0a | 20 20 20 20 62 20 3d 20 |etc(f);.| b = |
|00009450| 66 67 65 74 63 28 66 29 | 3b 0a 20 20 20 20 63 20 |fgetc(f)|;. c |
|00009460| 3d 20 66 67 65 74 63 28 | 66 29 3b 0a 20 20 20 20 |= fgetc(|f);. |
|00009470| 64 20 3d 20 66 67 65 74 | 63 28 66 29 3b 0a 20 20 |d = fget|c(f);. |
|00009480| 20 20 69 66 20 28 61 20 | 3d 3d 20 27 4d 27 20 26 | if (a |== 'M' &|
|00009490| 26 20 62 20 3d 3d 20 27 | 2e 27 20 26 26 20 63 20 |& b == '|.' && c |
|000094a0| 3d 3d 20 27 4b 27 20 26 | 26 20 64 20 3d 3d 20 27 |== 'K' &|& d == '|
|000094b0| 2e 27 29 0a 20 20 20 20 | 20 20 20 20 72 65 74 75 |.'). | retu|
|000094c0| 72 6e 20 30 3b 0a 20 20 | 20 20 69 66 20 28 61 20 |rn 0;. | if (a |
|000094d0| 3d 3d 20 27 4d 27 20 26 | 26 20 62 20 3d 3d 20 27 |== 'M' &|& b == '|
|000094e0| 26 27 20 26 26 20 63 20 | 3d 3d 20 27 4b 27 20 26 |&' && c |== 'K' &|
|000094f0| 26 20 64 20 3d 3d 20 27 | 21 27 29 0a 20 20 20 20 |& d == '|!'). |
|00009500| 20 20 20 20 72 65 74 75 | 72 6e 20 30 3b 0a 20 20 | retu|rn 0;. |
|00009510| 20 20 69 66 20 28 61 20 | 3d 3d 20 27 46 27 20 26 | if (a |== 'F' &|
|00009520| 26 20 62 20 3d 3d 20 27 | 4c 27 20 26 26 20 63 20 |& b == '|L' && c |
|00009530| 3d 3d 20 27 54 27 20 26 | 26 20 64 20 3d 3d 20 27 |== 'T' &|& d == '|
|00009540| 34 27 29 0a 20 20 20 20 | 20 20 20 20 72 65 74 75 |4'). | retu|
|00009550| 72 6e 20 30 3b 0a 20 20 | 20 20 72 65 74 75 72 6e |rn 0;. | return|
|00009560| 20 31 3b 0a 20 20 20 20 | 7d 0a 0a 2f 2a 20 73 20 | 1;. |}../* s |
|00009570| 3d 20 72 65 61 64 5f 73 | 6f 6e 67 28 66 2c 20 74 |= read_s|ong(f, t|
|00009580| 79 70 65 29 3a 20 74 72 | 69 65 73 20 74 6f 20 72 |ype): tr|ies to r|
|00009590| 65 61 64 20 61 20 73 6f | 6e 67 20 73 0a 20 2a 20 |ead a so|ng s. * |
|000095a0| 6f 66 20 74 79 70 65 20 | 4e 45 57 2f 4f 4c 44 20 |of type |NEW/OLD |
|000095b0| 69 6e 20 66 69 6c 65 20 | 66 2e 20 4d 69 67 68 74 |in file |f. Might|
|000095c0| 20 66 61 69 6c 2c 20 69 | 2e 65 2e 2c 0a 20 2a 20 | fail, i|.e.,. * |
|000095d0| 72 65 74 75 72 6e 73 20 | 4e 55 4c 4c 20 69 66 20 |returns |NULL if |
|000095e0| 66 69 6c 65 20 69 73 20 | 6e 6f 74 20 61 20 6d 6f |file is |not a mo|
|000095f0| 64 20 66 69 6c 65 20 6f | 66 20 74 68 65 0a 20 2a |d file o|f the. *|
|00009600| 20 63 6f 72 72 65 63 74 | 20 74 79 70 65 2e 0a 20 | correct| type.. |
|00009610| 2a 2f 0a 73 74 72 75 63 | 74 20 73 6f 6e 67 20 2a |*/.struc|t song *|
|00009620| 72 65 61 64 5f 73 6f 6e | 67 28 66 2c 20 74 79 70 |read_son|g(f, typ|
|00009630| 65 2c 20 74 72 29 0a 46 | 49 4c 45 20 2a 66 3b 0a |e, tr).F|ILE *f;.|
|00009640| 69 6e 74 20 74 79 70 65 | 3b 0a 69 6e 74 20 74 72 |int type|;.int tr|
|00009650| 3b 0a 20 20 20 20 7b 0a | 20 20 20 20 73 74 72 75 |;. {.| stru|
|00009660| 63 74 20 73 6f 6e 67 20 | 2a 73 6f 6e 67 3b 0a 20 |ct song |*song;. |
|00009670| 20 20 20 69 6e 74 20 69 | 3b 0a 20 20 20 20 69 6e | int i|;. in|
|00009680| 74 20 6e 69 6e 73 74 72 | 3b 0a 0a 20 20 20 20 65 |t ninstr|;.. e|
|00009690| 72 72 6f 72 20 3d 20 4e | 4f 4e 45 3b 0a 20 20 20 |rror = N|ONE;. |
|000096a0| 20 74 72 61 6e 73 70 6f | 73 65 20 3d 20 74 72 3b | transpo|se = tr;|
|000096b0| 0a 20 20 20 20 69 66 20 | 28 74 79 70 65 20 3d 3d |. if |(type ==|
|000096c0| 20 4e 45 57 20 7c 7c 20 | 74 79 70 65 20 3d 3d 20 | NEW || |type == |
|000096d0| 4e 45 57 5f 4e 4f 5f 43 | 48 45 43 4b 29 0a 20 20 |NEW_NO_C|HECK). |
|000096e0| 20 20 20 20 20 20 6e 69 | 6e 73 74 72 20 3d 20 33 | ni|nstr = 3|
|000096f0| 31 3b 0a 20 20 20 20 65 | 6c 73 65 0a 20 20 20 20 |1;. e|lse. |
|00009700| 20 20 20 20 6e 69 6e 73 | 74 72 20 3d 20 31 35 3b | nins|tr = 15;|
|00009710| 0a 0a 20 20 20 20 73 6f | 6e 67 20 3d 20 6e 65 77 |.. so|ng = new|
|00009720| 5f 73 6f 6e 67 28 29 3b | 0a 20 20 20 20 73 6f 6e |_song();|. son|
|00009730| 67 2d 3e 74 69 74 6c 65 | 20 3d 20 67 65 74 73 74 |g->title| = getst|
|00009740| 72 69 6e 67 28 66 2c 20 | 32 30 29 3b 0a 20 20 20 |ring(f, |20);. |
|00009750| 20 69 66 20 28 65 72 72 | 6f 72 20 21 3d 20 4e 4f | if (err|or != NO|
|00009760| 4e 45 29 0a 20 20 20 20 | 20 20 20 20 72 65 74 75 |NE). | retu|
|00009770| 72 6e 20 65 72 72 6f 72 | 5f 73 6f 6e 67 28 73 6f |rn error|_song(so|
|00009780| 6e 67 29 3b 0a 0a 20 20 | 20 20 66 6f 72 20 28 69 |ng);.. | for (i|
|00009790| 20 3d 20 30 3b 20 69 20 | 3c 3d 20 33 31 3b 20 69 | = 0; i |<= 31; i|
|000097a0| 2b 2b 29 0a 20 20 20 20 | 20 20 20 20 73 6f 6e 67 |++). | song|
|000097b0| 2d 3e 73 61 6d 70 6c 65 | 73 5b 69 5d 20 3d 20 6e |->sample|s[i] = n|
|000097c0| 65 77 5f 73 61 6d 70 6c | 65 5f 69 6e 66 6f 28 29 |ew_sampl|e_info()|
|000097d0| 3b 0a 0a 20 20 20 20 66 | 6f 72 20 28 69 20 3d 20 |;.. f|or (i = |
|000097e0| 31 3b 20 69 20 3c 3d 20 | 6e 69 6e 73 74 72 3b 20 |1; i <= |ninstr; |
|000097f0| 69 2b 2b 29 0a 20 20 20 | 20 20 20 20 20 7b 0a 20 |i++). | {. |
|00009800| 20 20 20 20 20 20 20 66 | 69 6c 6c 5f 73 61 6d 70 | f|ill_samp|
|00009810| 6c 65 5f 69 6e 66 6f 28 | 73 6f 6e 67 2d 3e 73 61 |le_info(|song->sa|
|00009820| 6d 70 6c 65 73 5b 69 5d | 2c 20 66 29 3b 0a 20 20 |mples[i]|, f);. |
|00009830| 20 20 20 20 20 20 69 66 | 20 28 65 72 72 6f 72 20 | if| (error |
|00009840| 21 3d 20 4e 4f 4e 45 29 | 0a 20 20 20 20 20 20 20 |!= NONE)|. |
|00009850| 20 20 20 20 20 72 65 74 | 75 72 6e 20 65 72 72 6f | ret|urn erro|
|00009860| 72 5f 73 6f 6e 67 28 73 | 6f 6e 67 29 3b 0a 20 20 |r_song(s|ong);. |
|00009870| 20 20 20 20 20 20 7d 0a | 20 20 20 20 73 6f 6e 67 | }.| song|
|00009880| 2d 3e 69 6e 66 6f 20 3d | 20 6e 65 77 5f 73 6f 6e |->info =| new_son|
|00009890| 67 5f 69 6e 66 6f 28 29 | 3b 0a 0a 20 20 20 20 66 |g_info()|;.. f|
|000098a0| 69 6c 6c 5f 73 6f 6e 67 | 5f 69 6e 66 6f 28 73 6f |ill_song|_info(so|
|000098b0| 6e 67 2d 3e 69 6e 66 6f | 2c 20 66 29 3b 0a 0a 20 |ng->info|, f);.. |
|000098c0| 20 20 20 69 66 20 28 65 | 72 72 6f 72 20 21 3d 20 | if (e|rror != |
|000098d0| 4e 4f 4e 45 29 0a 20 20 | 20 20 20 20 20 20 72 65 |NONE). | re|
|000098e0| 74 75 72 6e 20 65 72 72 | 6f 72 5f 73 6f 6e 67 28 |turn err|or_song(|
|000098f0| 73 6f 6e 67 29 3b 0a 0a | 20 20 20 20 69 66 20 28 |song);..| if (|
|00009900| 74 79 70 65 20 3d 3d 20 | 4e 45 57 20 20 26 26 20 |type == |NEW && |
|00009910| 62 61 64 5f 73 69 67 28 | 66 29 29 0a 20 20 20 20 |bad_sig(|f)). |
|00009920| 20 20 20 20 72 65 74 75 | 72 6e 20 65 72 72 6f 72 | retu|rn error|
|00009930| 5f 73 6f 6e 67 28 73 6f | 6e 67 29 3b 0a 0a 20 20 |_song(so|ng);.. |
|00009940| 20 20 69 66 20 28 74 79 | 70 65 20 3d 3d 20 4e 45 | if (ty|pe == NE|
|00009950| 57 5f 4e 4f 5f 43 48 45 | 43 4b 29 0a 20 20 20 20 |W_NO_CHE|CK). |
|00009960| 20 20 20 20 62 79 74 65 | 73 6b 69 70 28 66 2c 20 | byte|skip(f, |
|00009970| 34 29 3b 0a 20 20 20 20 | 20 20 20 20 0a 0a 20 20 |4);. | .. |
|00009980| 20 20 73 6f 6e 67 2d 3e | 69 6e 66 6f 2d 3e 70 62 | song->|info->pb|
|00009990| 6c 6f 63 6b 73 20 3d 20 | 28 73 74 72 75 63 74 20 |locks = |(struct |
|000099a0| 62 6c 6f 63 6b 20 2a 29 | 0a 20 20 20 20 20 20 20 |block *)|. |
|000099b0| 20 6d 61 6c 6c 6f 63 28 | 73 69 7a 65 6f 66 28 73 | malloc(|sizeof(s|
|000099c0| 74 72 75 63 74 20 62 6c | 6f 63 6b 29 20 2a 20 73 |truct bl|ock) * s|
|000099d0| 6f 6e 67 2d 3e 69 6e 66 | 6f 2d 3e 6d 61 78 70 61 |ong->inf|o->maxpa|
|000099e0| 74 29 3b 0a 20 20 20 20 | 66 6f 72 20 28 69 20 3d |t);. |for (i =|
|000099f0| 20 30 3b 20 69 20 3c 20 | 73 6f 6e 67 2d 3e 69 6e | 0; i < |song->in|
|00009a00| 66 6f 2d 3e 6d 61 78 70 | 61 74 3b 20 69 2b 2b 29 |fo->maxp|at; i++)|
|00009a10| 0a 20 20 20 20 20 20 20 | 20 7b 0a 20 20 20 20 20 |. | {. |
|00009a20| 20 20 20 66 69 6c 6c 5f | 70 61 74 74 65 72 6e 28 | fill_|pattern(|
|00009a30| 73 6f 6e 67 2d 3e 69 6e | 66 6f 2d 3e 70 62 6c 6f |song->in|fo->pblo|
|00009a40| 63 6b 73 20 2b 20 69 2c | 20 66 29 3b 0a 20 20 20 |cks + i,| f);. |
|00009a50| 20 20 20 20 20 69 66 20 | 28 65 72 72 6f 72 20 21 | if |(error !|
|00009a60| 3d 20 4e 4f 4e 45 29 0a | 20 20 20 20 20 20 20 20 |= NONE).| |
|00009a70| 20 20 20 20 72 65 74 75 | 72 6e 20 65 72 72 6f 72 | retu|rn error|
|00009a80| 5f 73 6f 6e 67 28 73 6f | 6e 67 29 3b 0a 20 20 20 |_song(so|ng);. |
|00009a90| 20 20 20 20 20 7d 0a 0a | 20 20 20 20 66 6f 72 20 | }..| for |
|00009aa0| 28 69 20 3d 20 31 3b 20 | 69 20 3c 3d 20 6e 69 6e |(i = 1; |i <= nin|
|00009ab0| 73 74 72 3b 20 69 2b 2b | 29 0a 20 20 20 20 20 20 |str; i++|). |
|00009ac0| 20 20 72 65 61 64 5f 73 | 61 6d 70 6c 65 28 73 6f | read_s|ample(so|
|00009ad0| 6e 67 2d 3e 73 61 6d 70 | 6c 65 73 5b 69 5d 2c 20 |ng->samp|les[i], |
|00009ae0| 66 29 3b 0a 20 20 20 20 | 0a 20 20 20 20 69 66 20 |f);. |. if |
|00009af0| 28 65 72 72 6f 72 20 21 | 3d 20 4e 4f 4e 45 29 0a |(error !|= NONE).|
|00009b00| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 20 65 | |return e|
|00009b10| 72 72 6f 72 5f 73 6f 6e | 67 28 73 6f 6e 67 29 3b |rror_son|g(song);|
|00009b20| 0a 20 20 20 20 72 65 74 | 75 72 6e 20 73 6f 6e 67 |. ret|urn song|
|00009b30| 3b 0a 20 20 20 20 7d 0a | 0a 2f 2a 2a 2a 0a 20 2a |;. }.|./***. *|
|00009b40| 0a 20 2a 20 20 64 75 6d | 70 5f 62 6c 6f 63 6b 2f |. * dum|p_block/|
|00009b50| 64 75 6d 70 5f 73 6f 6e | 67 3a 0a 20 2a 20 20 73 |dump_son|g:. * s|
|00009b60| 68 6f 77 73 20 6d 6f 73 | 74 20 6f 66 20 74 68 65 |hows mos|t of the|
|00009b70| 20 72 65 61 64 61 62 6c | 65 20 69 6e 66 6f 0a 20 | readabl|e info. |
|00009b80| 2a 20 20 63 6f 6e 63 65 | 72 6e 69 6e 67 20 61 20 |* conce|rning a |
|00009b90| 6d 6f 64 75 6c 65 20 6f | 6e 20 74 68 65 20 73 63 |module o|n the sc|
|00009ba0| 72 65 65 6e 2e 0a 20 2a | 0a 20 2a 2a 2a 2f 0a 0a |reen.. *|. ***/..|
|00009bb0| 76 6f 69 64 20 64 75 6d | 70 5f 62 6c 6f 63 6b 28 |void dum|p_block(|
|00009bc0| 62 29 0a 73 74 72 75 63 | 74 20 62 6c 6f 63 6b 20 |b).struc|t block |
|00009bd0| 2a 62 3b 0a 20 20 20 20 | 7b 0a 20 20 20 20 69 6e |*b;. |{. in|
|00009be0| 74 20 69 2c 20 6a 3b 0a | 0a 20 20 20 20 66 6f 72 |t i, j;.|. for|
|00009bf0| 20 28 69 20 3d 20 30 3b | 20 69 20 3c 20 42 4c 4f | (i = 0;| i < BLO|
|00009c00| 43 4b 5f 4c 45 4e 47 54 | 48 3b 20 69 2b 2b 29 0a |CK_LENGT|H; i++).|
|00009c10| 20 20 20 20 20 20 20 20 | 7b 0a 20 20 20 20 20 20 | |{. |
|00009c20| 20 20 66 6f 72 20 28 6a | 20 3d 20 30 3b 20 6a 20 | for (j| = 0; j |
|00009c30| 3c 20 4e 55 4d 42 45 52 | 5f 54 52 41 43 4b 53 3b |< NUMBER|_TRACKS;|
|00009c40| 20 6a 2b 2b 29 0a 20 20 | 20 20 20 20 20 20 20 20 | j++). | |
|00009c50| 20 20 7b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|00009c60| 70 72 69 6e 74 66 28 22 | 25 38 64 25 35 64 25 32 |printf("|%8d%5d%2|
|00009c70| 64 25 34 64 22 2c 20 62 | 2d 3e 65 5b 6a 5d 5b 69 |d%4d", b|->e[j][i|
|00009c80| 5d 2e 73 61 6d 70 6c 65 | 5f 6e 75 6d 62 65 72 2c |].sample|_number,|
|00009c90| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00009ca0| 20 62 2d 3e 65 5b 6a 5d | 5b 69 5d 2e 70 69 74 63 | b->e[j]|[i].pitc|
|00009cb0| 68 2c 20 62 2d 3e 65 5b | 6a 5d 5b 69 5d 2e 65 66 |h, b->e[|j][i].ef|
|00009cc0| 66 65 63 74 2c 0a 20 20 | 20 20 20 20 20 20 20 20 |fect,. | |
|00009cd0| 20 20 20 20 20 20 62 2d | 3e 65 5b 6a 5d 5b 69 5d | b-|>e[j][i]|
|00009ce0| 2e 70 61 72 61 6d 65 74 | 65 72 73 29 3b 0a 20 20 |.paramet|ers);. |
|00009cf0| 20 20 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 | | }. |
|00009d00| 20 20 20 20 70 72 69 6e | 74 66 28 22 5c 6e 22 29 | prin|tf("\n")|
|00009d10| 3b 0a 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 |;. | }. |
|00009d20| 7d 0a 0a 76 6f 69 64 20 | 64 75 6d 70 5f 73 6f 6e |}..void |dump_son|
|00009d30| 67 28 73 6f 6e 67 29 0a | 73 74 72 75 63 74 20 73 |g(song).|struct s|
|00009d40| 6f 6e 67 20 2a 73 6f 6e | 67 3b 0a 20 20 20 20 7b |ong *son|g;. {|
|00009d50| 0a 20 20 20 20 69 6e 74 | 20 69 3b 0a 0a 20 20 20 |. int| i;.. |
|00009d60| 20 70 72 69 6e 74 66 28 | 22 25 73 5c 6e 22 2c 20 | printf(|"%s\n", |
|00009d70| 73 6f 6e 67 2d 3e 74 69 | 74 6c 65 29 3b 0a 0a 20 |song->ti|tle);.. |
|00009d80| 20 20 20 66 6f 72 20 28 | 69 20 3d 20 31 3b 20 69 | for (|i = 1; i|
|00009d90| 20 3c 3d 20 33 31 3b 20 | 69 2b 2b 29 0a 20 20 20 | <= 31; |i++). |
|00009da0| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 69 | {. | i|
|00009db0| 66 20 28 73 6f 6e 67 2d | 3e 73 61 6d 70 6c 65 73 |f (song-|>samples|
|00009dc0| 5b 69 5d 2d 3e 73 74 61 | 72 74 29 0a 20 20 20 20 |[i]->sta|rt). |
|00009dd0| 20 20 20 20 20 20 20 20 | 7b 0a 20 20 20 20 20 20 | |{. |
|00009de0| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 5c 74 | pr|intf("\t|
|00009df0| 25 2d 33 30 73 22 2c 20 | 73 6f 6e 67 2d 3e 73 61 |%-30s", |song->sa|
|00009e00| 6d 70 6c 65 73 5b 69 5d | 2d 3e 6e 61 6d 65 29 3b |mples[i]|->name);|
|00009e10| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 70 72 69 |. | pri|
|00009e20| 6e 74 66 28 22 25 35 64 | 22 2c 20 73 6f 6e 67 2d |ntf("%5d|", song-|
|00009e30| 3e 73 61 6d 70 6c 65 73 | 5b 69 5d 2d 3e 6c 65 6e |>samples|[i]->len|
|00009e40| 67 74 68 29 3b 0a 20 20 | 20 20 20 20 20 20 20 20 |gth);. | |
|00009e50| 20 20 69 66 20 28 73 6f | 6e 67 2d 3e 73 61 6d 70 | if (so|ng->samp|
|00009e60| 6c 65 73 5b 69 5d 2d 3e | 72 70 5f 6c 65 6e 67 74 |les[i]->|rp_lengt|
|00009e70| 68 20 3e 20 32 29 0a 20 | 20 20 20 20 20 20 20 20 |h > 2). | |
|00009e80| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 28 | p|rintf("(|
|00009e90| 25 35 64 20 25 35 64 29 | 5c 6e 22 2c 20 73 6f 6e |%5d %5d)|\n", son|
|00009ea0| 67 2d 3e 73 61 6d 70 6c | 65 73 5b 69 5d 2d 3e 72 |g->sampl|es[i]->r|
|00009eb0| 70 5f 6f 66 66 73 65 74 | 2c 20 0a 20 20 20 20 20 |p_offset|, . |
|00009ec0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 73 | | s|
|00009ed0| 6f 6e 67 2d 3e 73 61 6d | 70 6c 65 73 5b 69 5d 2d |ong->sam|ples[i]-|
|00009ee0| 3e 72 70 5f 6c 65 6e 67 | 74 68 29 3b 0a 20 20 20 |>rp_leng|th);. |
|00009ef0| 20 20 20 20 20 20 20 20 | 20 65 6c 73 65 0a 20 20 | | else. |
|00009f00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 70 72 | | pr|
|00009f10| 69 6e 74 66 28 22 5c 6e | 22 29 3b 0a 20 20 20 20 |intf("\n|");. |
|00009f20| 20 20 20 20 20 20 20 20 | 7d 0a 20 20 20 20 20 20 | |}. |
|00009f30| 20 20 7d 0a 20 20 20 20 | 7d 0a 2d 3e 6c 65 6e 67 | }. |}.->leng|
|00009f40| 74 68 20 3d 20 30 3b 0a | 20 20 20 20 6e 65 77 2d |th = 0;.| new-|
|00009f50| 3e 6d 61 78 70 61 74 20 | 3d 20 2d 31 3b 0a 20 20 |>maxpat |= -1;. |
|00009f60| 20 20 6e 65 77 2d 3e 70 | 62 6c 6f 63 6b 73 20 3d | new->p|blocks =|
|00009f70| 20 4e 55 4c 4c 3b 0a 20 | 20 20 20 72 65 74 75 72 | NULL;. | retur|
|00009f80| 6e 20 6e 65 77 3b 0a 20 | 20 20 20 7d 0a 0a 2f 2a |n new;. | }../*|
|00009f90| 20 72 65 6c 65 61 73 65 | 5f 73 6f 6e 67 28 73 6f | release|_song(so|
|00009fa0| 6e 67 29 3a 20 67 69 76 | 65 73 20 62 61 63 6b 20 |ng): giv|es back |
|00009fb0| 61 6c 6c 20 6d 65 6d 6f | 72 79 20 0a 20 2a 20 6f |all memo|ry . * o|
|00009fc0| 63 63 75 70 69 65 64 20 | 62 79 20 73 6f 6e 67 2e |ccupied |by song.|
|00009fd0| 20 41 73 73 75 6d 65 20 | 74 68 61 74 20 65 61 63 | Assume |that eac|
|00009fe0| 68 20 73 74 72 75 63 74 | 75 72 65 0a 20 2a 20 68 |h struct|ure. * h|
|00009ff0| 61 73 20 62 65 65 6e 20 | 63 6f 72 72 65 63 74 6c |as been |correctl|
|0000a000| 73 67 69 5f 61 75 64 69 | 6f 2e 63 00 00 00 00 00 |sgi_audi|o.c.....|
|0000a010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|0000a070| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|0000a080| 20 20 20 36 32 37 30 20 | 20 35 31 31 37 31 36 30 | 6270 | 5117160|
|0000a090| 31 33 36 20 20 20 36 32 | 36 31 00 20 00 00 00 00 |136 62|61. ....|
|0000a0a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a0b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a0c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a0d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a0e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a0f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a1a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a1b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a1c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a1d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a1e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a1f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000a200| 2f 2a 20 73 67 69 5f 61 | 75 64 69 6f 2e 63 20 2a |/* sgi_a|udio.c *|
|0000a210| 2f 0a 0a 2f 2a 20 24 41 | 75 74 68 6f 72 3a 20 65 |/../* $A|uthor: e|
|0000a220| 73 70 69 65 20 24 0a 20 | 2a 20 24 49 64 3a 20 73 |spie $. |* $Id: s|
|0000a230| 67 69 5f 61 75 64 69 6f | 2e 63 2c 76 20 32 2e 35 |gi_audio|.c,v 2.5|
|0000a240| 20 31 39 39 31 2f 31 32 | 2f 30 34 20 30 38 3a 32 | 1991/12|/04 08:2|
|0000a250| 38 3a 35 33 20 65 73 70 | 69 65 20 45 78 70 20 65 |8:53 esp|ie Exp e|
|0000a260| 73 70 69 65 20 24 0a 20 | 2a 20 24 52 65 76 69 73 |spie $. |* $Revis|
|0000a270| 69 6f 6e 3a 20 32 2e 35 | 20 24 0a 20 2a 20 24 4c |ion: 2.5| $. * $L|
|0000a280| 6f 67 3a 20 73 67 69 5f | 61 75 64 69 6f 2e 63 2c |og: sgi_|audio.c,|
|0000a290| 76 20 24 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |v $. * R|evision |
|0000a2a0| 32 2e 35 20 20 31 39 39 | 31 2f 31 32 2f 30 34 20 |2.5 199|1/12/04 |
|0000a2b0| 20 30 38 3a 32 38 3a 35 | 33 20 20 65 73 70 69 65 | 08:28:5|3 espie|
|0000a2c0| 0a 20 2a 20 53 65 70 61 | 72 61 74 65 64 20 6d 69 |. * Sepa|rated mi|
|0000a2d0| 78 2f 73 74 65 72 65 6f | 20 73 74 75 66 66 2e 0a |x/stereo| stuff..|
|0000a2e0| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 32 | *. * Re|vision 2|
|0000a2f0| 2e 34 20 20 31 39 39 31 | 2f 31 32 2f 30 33 20 20 |.4 1991|/12/03 |
|0000a300| 32 31 3a 32 34 3a 35 33 | 20 20 65 73 70 69 65 0a |21:24:53| espie.|
|0000a310| 20 2a 20 43 68 65 63 6b | 65 64 20 62 75 66 66 65 | * Check|ed buffe|
|0000a320| 72 20 73 69 7a 65 2e 0a | 20 2a 0a 20 2a 20 52 65 |r size..| *. * Re|
|0000a330| 76 69 73 69 6f 6e 20 32 | 2e 33 20 20 31 39 39 31 |vision 2|.3 1991|
|0000a340| 2f 31 32 2f 30 33 20 20 | 32 30 3a 34 33 3a 34 36 |/12/03 |20:43:46|
|0000a350| 20 20 65 73 70 69 65 0a | 20 2a 20 41 64 64 65 64 | espie.| * Added|
|0000a360| 20 70 6f 73 73 69 62 69 | 6c 69 74 79 20 74 6f 20 | possibi|lity to |
|0000a370| 67 65 74 20 62 61 63 6b | 20 74 6f 20 4d 4f 4e 4f |get back| to MONO|
|0000a380| 20 66 6f 72 20 74 68 65 | 20 73 67 69 2e 0a 20 2a | for the| sgi.. *|
|0000a390| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 32 |. * Revi|sion 2.2|
|0000a3a0| 20 20 31 39 39 31 2f 31 | 32 2f 30 33 20 20 31 38 | 1991/1|2/03 18|
|0000a3b0| 3a 30 37 3a 33 38 20 20 | 65 73 70 69 65 0a 20 2a |:07:38 |espie. *|
|0000a3c0| 20 41 64 64 65 64 20 73 | 74 65 72 65 6f 20 63 61 | Added s|tereo ca|
|0000a3d0| 70 61 62 69 6c 69 74 69 | 65 73 20 74 6f 20 74 68 |pabiliti|es to th|
|0000a3e0| 65 20 69 6e 64 69 67 6f | 20 76 65 72 73 69 6f 6e |e indigo| version|
|0000a3f0| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|0000a400| 20 32 2e 31 20 20 31 39 | 39 31 2f 31 31 2f 31 38 | 2.1 19|91/11/18|
|0000a410| 20 20 30 31 3a 31 30 3a | 34 35 20 20 65 73 70 69 | 01:10:|45 espi|
|0000a420| 65 0a 20 2a 20 4d 69 6e | 6f 72 20 63 6f 72 72 65 |e. * Min|or corre|
|0000a430| 63 74 69 6f 6e 73 2e 0a | 20 2a 0a 20 2a 20 52 65 |ctions..| *. * Re|
|0000a440| 76 69 73 69 6f 6e 20 32 | 2e 30 20 20 31 39 39 31 |vision 2|.0 1991|
|0000a450| 2f 31 31 2f 31 37 20 20 | 32 31 3a 34 32 3a 30 38 |/11/17 |21:42:08|
|0000a460| 20 20 65 73 70 69 65 0a | 20 2a 20 4e 65 77 20 76 | espie.| * New v|
|0000a470| 65 72 73 69 6f 6e 2e 0a | 20 2a 0a 20 2a 20 52 65 |ersion..| *. * Re|
|0000a480| 76 69 73 69 6f 6e 20 31 | 2e 39 20 20 31 39 39 31 |vision 1|.9 1991|
|0000a490| 2f 31 31 2f 31 37 20 20 | 31 37 3a 30 39 3a 35 33 |/11/17 |17:09:53|
|0000a4a0| 20 20 65 73 70 69 65 0a | 20 2a 20 41 64 64 65 64 | espie.| * Added|
|0000a4b0| 20 6d 69 73 73 69 6e 67 | 20 70 72 6f 74 6f 74 79 | missing| prototy|
|0000a4c0| 70 65 73 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |pes.. *.| * Revis|
|0000a4d0| 69 6f 6e 20 31 2e 38 20 | 20 31 39 39 31 2f 31 31 |ion 1.8 | 1991/11|
|0000a4e0| 2f 31 36 20 20 31 35 3a | 34 32 3a 34 33 20 20 65 |/16 15:|42:43 e|
|0000a4f0| 73 70 69 65 0a 20 2a 20 | 43 61 6e 27 74 20 72 65 |spie. * |Can't re|
|0000a500| 6d 65 6d 62 65 72 20 77 | 68 61 74 2e 0a 20 2a 0a |member w|hat.. *.|
|0000a510| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 37 20 | * Revis|ion 1.7 |
|0000a520| 20 31 39 39 31 2f 31 31 | 2f 30 38 20 20 31 34 3a | 1991/11|/08 14:|
|0000a530| 32 35 3a 35 35 20 20 65 | 73 70 69 65 0a 20 2a 20 |25:55 e|spie. * |
|0000a540| 41 73 6b 20 74 68 65 20 | 66 72 65 71 75 65 6e 63 |Ask the |frequenc|
|0000a550| 79 20 74 6f 20 74 68 65 | 20 61 75 64 69 6f 20 64 |y to the| audio d|
|0000a560| 65 76 69 63 65 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 |evice.. |*. * Rev|
|0000a570| 69 73 69 6f 6e 20 31 2e | 36 20 20 31 39 39 31 2f |ision 1.|6 1991/|
|0000a580| 31 31 2f 30 37 20 20 32 | 30 3a 31 32 3a 33 34 20 |11/07 2|0:12:34 |
|0000a590| 20 65 73 70 69 65 0a 20 | 2a 20 4d 69 6e 6f 72 20 | espie. |* Minor |
|0000a5a0| 70 72 6f 62 6c 65 6d 20 | 77 69 74 68 20 76 65 72 |problem |with ver|
|0000a5b0| 73 69 6f 6e 20 69 64 2e | 0a 20 2a 0a 20 2a 20 52 |sion id.|. *. * R|
|0000a5c0| 65 76 69 73 69 6f 6e 20 | 31 2e 35 20 20 31 39 39 |evision |1.5 199|
|0000a5d0| 31 2f 31 31 2f 30 37 20 | 20 32 30 3a 31 31 3a 31 |1/11/07 | 20:11:1|
|0000a5e0| 30 20 20 65 73 70 69 65 | 0a 20 2a 20 41 64 64 65 |0 espie|. * Adde|
|0000a5f0| 64 20 65 6d 62 65 64 64 | 65 64 20 76 65 72 73 69 |d embedd|ed versi|
|0000a600| 6f 6e 20 69 64 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 |on id.. |*. * Rev|
|0000a610| 69 73 69 6f 6e 20 31 2e | 34 20 20 31 39 39 31 2f |ision 1.|4 1991/|
|0000a620| 31 31 2f 30 37 20 20 31 | 35 3a 32 37 3a 30 32 20 |11/07 1|5:27:02 |
|0000a630| 20 65 73 70 69 65 0a 20 | 2a 20 43 6f 72 72 65 63 | espie. |* Correc|
|0000a640| 74 65 64 20 62 75 67 3a | 20 77 68 65 6e 20 63 6c |ted bug:| when cl|
|0000a650| 6f 73 69 6e 67 20 61 75 | 64 69 6f 2c 0a 20 2a 20 |osing au|dio,. * |
|0000a660| 77 65 20 6b 6e 6f 77 20 | 77 61 69 74 20 66 6f 72 |we know |wait for|
|0000a670| 20 74 68 65 20 73 61 6d | 70 6c 65 73 20 71 75 65 | the sam|ples que|
|0000a680| 75 65 20 74 6f 20 62 65 | 20 65 6d 70 74 79 2e 0a |ue to be| empty..|
|0000a690| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|0000a6a0| 2e 33 20 20 31 39 39 31 | 2f 31 31 2f 30 35 20 20 |.3 1991|/11/05 |
|0000a6b0| 32 32 3a 34 39 3a 30 33 | 20 20 65 73 70 69 65 0a |22:49:03| espie.|
|0000a6c0| 20 2a 20 41 64 64 65 64 | 20 61 20 23 64 65 66 69 | * Added| a #defi|
|0000a6d0| 6e 65 2e 20 57 65 20 63 | 61 6e 20 6e 6f 77 20 62 |ne. We c|an now b|
|0000a6e0| 65 20 6e 6f 6e 20 63 6f | 6d 6d 69 74 65 64 20 61 |e non co|mmited a|
|0000a6f0| 73 0a 20 2a 20 66 61 72 | 20 61 73 20 74 68 65 20 |s. * far| as the |
|0000a700| 73 61 6d 70 6c 69 6e 67 | 20 72 61 74 65 20 69 73 |sampling| rate is|
|0000a710| 20 63 6f 6e 63 65 72 6e | 65 64 2e 0a 20 2a 0a 20 | concern|ed.. *. |
|0000a720| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 32 20 20 |* Revisi|on 1.2 |
|0000a730| 31 39 39 31 2f 31 31 2f | 30 34 20 20 31 33 3a 32 |1991/11/|04 13:2|
|0000a740| 33 3a 35 39 20 20 65 73 | 70 69 65 0a 20 2a 20 55 |3:59 es|pie. * U|
|0000a750| 73 65 20 48 5a 20 6d 61 | 63 72 6f 2e 0a 20 2a 0a |se HZ ma|cro.. *.|
|0000a760| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 31 20 | * Revis|ion 1.1 |
|0000a770| 20 31 39 39 31 2f 31 31 | 2f 30 33 20 20 32 32 3a | 1991/11|/03 22:|
|0000a780| 34 36 3a 33 33 20 20 65 | 73 70 69 65 0a 20 2a 20 |46:33 e|spie. * |
|0000a790| 49 6e 69 74 69 61 6c 20 | 72 65 76 69 73 69 6f 6e |Initial |revision|
|0000a7a0| 0a 20 2a 0a 20 2a 0a 20 | 2a 2f 0a 0a 23 69 6e 63 |. *. *. |*/..#inc|
|0000a7b0| 6c 75 64 65 20 3c 61 75 | 64 69 6f 2e 68 3e 0a 23 |lude <au|dio.h>.#|
|0000a7c0| 69 6e 63 6c 75 64 65 20 | 3c 6d 61 6c 6c 6f 63 2e |include |<malloc.|
|0000a7d0| 68 3e 0a 23 69 6e 63 6c | 75 64 65 20 3c 73 74 64 |h>.#incl|ude <std|
|0000a7e0| 69 6f 2e 68 3e 0a 23 69 | 6e 63 6c 75 64 65 20 22 |io.h>.#i|nclude "|
|0000a7f0| 6d 61 63 68 69 6e 65 2e | 68 22 0a 23 69 6e 63 6c |machine.|h".#incl|
|0000a800| 75 64 65 20 22 65 78 74 | 65 72 6e 2e 68 22 0a 0a |ude "ext|ern.h"..|
|0000a810| 65 78 74 65 72 6e 20 69 | 6e 74 20 73 67 69 6e 61 |extern i|nt sgina|
|0000a820| 70 28 6c 6f 6e 67 20 74 | 69 63 6b 73 29 3b 0a 20 |p(long t|icks);. |
|0000a830| 20 20 20 20 0a 73 74 61 | 74 69 63 20 63 68 61 72 | .sta|tic char|
|0000a840| 20 2a 69 64 20 3d 20 22 | 24 49 64 3a 20 73 67 69 | *id = "|$Id: sgi|
|0000a850| 5f 61 75 64 69 6f 2e 63 | 2c 76 20 32 2e 35 20 31 |_audio.c|,v 2.5 1|
|0000a860| 39 39 31 2f 31 32 2f 30 | 34 20 30 38 3a 32 38 3a |991/12/0|4 08:28:|
|0000a870| 35 33 20 65 73 70 69 65 | 20 45 78 70 20 65 73 70 |53 espie| Exp esp|
|0000a880| 69 65 20 24 22 3b 0a 0a | 73 69 67 6e 65 64 20 73 |ie $";..|signed s|
|0000a890| 68 6f 72 74 20 2a 62 75 | 66 66 65 72 3b 0a 69 6e |hort *bu|ffer;.in|
|0000a8a0| 74 20 69 6e 64 65 78 3b | 0a 0a 0a 41 4c 70 6f 72 |t index;|...ALpor|
|0000a8b0| 74 20 61 75 64 69 6f 3b | 0a 41 4c 63 6f 6e 66 69 |t audio;|.ALconfi|
|0000a8c0| 67 20 63 6f 6e 66 69 67 | 3b 0a 0a 6c 6f 6e 67 20 |g config|;..long |
|0000a8d0| 63 68 70 61 72 73 5b 5d | 20 3d 20 7b 41 4c 5f 4f |chpars[]| = {AL_O|
|0000a8e0| 55 54 50 55 54 5f 52 41 | 54 45 2c 20 30 7d 3b 0a |UTPUT_RA|TE, 0};.|
|0000a8f0| 0a 73 74 61 74 69 63 20 | 69 6e 74 20 73 74 65 72 |.static |int ster|
|0000a900| 65 6f 3b 20 20 2f 2a 20 | 61 72 65 20 77 65 20 70 |eo; /* |are we p|
|0000a910| 6c 61 79 69 6e 67 20 73 | 74 65 72 65 6f 20 6f 72 |laying s|tereo or|
|0000a920| 20 6e 6f 74 20 3f 20 2a | 2f 0a 2f 2a 20 32 35 36 | not ? *|/./* 256|
|0000a930| 74 68 20 6f 66 20 70 72 | 69 6d 61 72 79 2f 73 65 |th of pr|imary/se|
|0000a940| 63 6f 6e 64 61 72 79 20 | 73 6f 75 72 63 65 20 66 |condary |source f|
|0000a950| 6f 72 20 74 68 61 74 20 | 73 69 64 65 2e 20 2a 2f |or that |side. */|
|0000a960| 0a 73 74 61 74 69 63 20 | 69 6e 74 20 70 72 69 6d |.static |int prim|
|0000a970| 61 72 79 2c 20 73 65 63 | 6f 6e 64 61 72 79 3b 0a |ary, sec|ondary;.|
|0000a980| 0a 76 6f 69 64 20 73 65 | 74 5f 6d 69 78 28 70 65 |.void se|t_mix(pe|
|0000a990| 72 63 65 6e 74 29 0a 69 | 6e 74 20 70 65 72 63 65 |rcent).i|nt perce|
|0000a9a0| 6e 74 3b 0a 20 20 20 20 | 7b 0a 20 20 20 20 70 65 |nt;. |{. pe|
|0000a9b0| 72 63 65 6e 74 20 2a 3d | 20 32 35 36 3b 0a 20 20 |rcent *=| 256;. |
|0000a9c0| 20 20 70 65 72 63 65 6e | 74 20 2f 3d 20 31 30 30 | percen|t /= 100|
|0000a9d0| 3b 0a 20 20 20 20 70 72 | 69 6d 61 72 79 20 3d 20 |;. pr|imary = |
|0000a9e0| 70 65 72 63 65 6e 74 3b | 0a 20 20 20 20 73 65 63 |percent;|. sec|
|0000a9f0| 6f 6e 64 61 72 79 20 3d | 20 35 31 32 20 2d 20 70 |ondary =| 512 - p|
|0000aa00| 65 72 63 65 6e 74 3b 0a | 20 20 20 20 7d 0a 0a 69 |ercent;.| }..i|
|0000aa10| 6e 74 20 6f 70 65 6e 5f | 61 75 64 69 6f 28 66 72 |nt open_|audio(fr|
|0000aa20| 65 71 75 65 6e 63 79 29 | 0a 69 6e 74 20 66 72 65 |equency)|.int fre|
|0000aa30| 71 75 65 6e 63 79 3b 0a | 20 20 20 20 7b 0a 20 20 |quency;.| {. |
|0000aa40| 20 20 69 6e 74 20 6e 75 | 6d 62 65 72 3b 0a 0a 20 | int nu|mber;.. |
|0000aa50| 20 20 20 63 68 70 61 72 | 73 5b 31 5d 20 3d 20 66 | chpar|s[1] = f|
|0000aa60| 72 65 71 75 65 6e 63 79 | 3b 0a 20 20 20 20 69 66 |requency|;. if|
|0000aa70| 20 28 66 72 65 71 75 65 | 6e 63 79 20 3d 3d 20 30 | (freque|ncy == 0|
|0000aa80| 29 0a 20 20 20 20 20 20 | 20 20 41 4c 67 65 74 70 |). | ALgetp|
|0000aa90| 61 72 61 6d 73 28 41 4c | 5f 44 45 46 41 55 4c 54 |arams(AL|_DEFAULT|
|0000aaa0| 5f 44 45 56 49 43 45 2c | 20 63 68 70 61 72 73 2c |_DEVICE,| chpars,|
|0000aab0| 20 32 29 3b 0a 20 20 20 | 20 65 6c 73 65 0a 20 20 | 2);. | else. |
|0000aac0| 20 20 20 20 20 20 41 4c | 73 65 74 70 61 72 61 6d | AL|setparam|
|0000aad0| 73 28 41 4c 5f 44 45 46 | 41 55 4c 54 5f 44 45 56 |s(AL_DEF|AULT_DEV|
|0000aae0| 49 43 45 2c 20 63 68 70 | 61 72 73 2c 20 32 29 3b |ICE, chp|ars, 2);|
|0000aaf0| 20 0a 20 20 20 20 63 6f | 6e 66 69 67 20 3d 20 41 | . co|nfig = A|
|0000ab00| 4c 6e 65 77 63 6f 6e 66 | 69 67 28 29 3b 0a 20 20 |Lnewconf|ig();. |
|0000ab10| 20 20 69 66 20 28 73 74 | 65 72 65 6f 20 3d 20 21 | if (st|ereo = !|
|0000ab20| 67 65 74 65 6e 76 28 22 | 4d 4f 4e 4f 22 29 29 0a |getenv("|MONO")).|
|0000ab30| 20 20 20 20 20 20 20 20 | 7b 0a 20 20 20 20 20 20 | |{. |
|0000ab40| 20 20 41 4c 73 65 74 63 | 68 61 6e 6e 65 6c 73 28 | ALsetc|hannels(|
|0000ab50| 63 6f 6e 66 69 67 2c 20 | 41 4c 5f 53 54 45 52 45 |config, |AL_STERE|
|0000ab60| 4f 29 3b 0a 20 20 20 20 | 20 20 20 20 6e 75 6d 62 |O);. | numb|
|0000ab70| 65 72 20 3d 20 32 3b 0a | 20 20 20 20 20 20 20 20 |er = 2;.| |
|0000ab80| 73 65 74 5f 6d 69 78 28 | 33 30 29 3b 0a 20 20 20 |set_mix(|30);. |
|0000ab90| 20 20 20 20 20 7d 0a 20 | 20 20 20 65 6c 73 65 0a | }. | else.|
|0000aba0| 20 20 20 20 20 20 20 20 | 7b 0a 20 20 20 20 20 20 | |{. |
|0000abb0| 20 20 41 4c 73 65 74 63 | 68 61 6e 6e 65 6c 73 28 | ALsetc|hannels(|
|0000abc0| 63 6f 6e 66 69 67 2c 20 | 41 4c 5f 4d 4f 4e 4f 29 |config, |AL_MONO)|
|0000abd0| 3b 0a 20 20 20 20 20 20 | 20 20 6e 75 6d 62 65 72 |;. | number|
|0000abe0| 20 3d 20 31 3b 0a 20 20 | 20 20 20 20 20 20 7d 0a | = 1;. | }.|
|0000abf0| 20 20 20 20 41 4c 73 65 | 74 77 69 64 74 68 28 63 | ALse|twidth(c|
|0000ac00| 6f 6e 66 69 67 2c 20 41 | 4c 5f 53 41 4d 50 4c 45 |onfig, A|L_SAMPLE|
|0000ac10| 5f 31 36 29 3b 0a 20 20 | 20 20 61 75 64 69 6f 20 |_16);. | audio |
|0000ac20| 3d 20 41 4c 6f 70 65 6e | 70 6f 72 74 28 22 73 6f |= ALopen|port("so|
|0000ac30| 75 6e 64 74 72 61 63 6b | 65 72 20 6d 6f 6e 6f 22 |undtrack|er mono"|
|0000ac40| 2c 20 22 77 22 2c 20 63 | 6f 6e 66 69 67 29 3b 0a |, "w", c|onfig);.|
|0000ac50| 20 20 20 20 69 6e 64 65 | 78 20 3d 20 30 3b 0a 20 | inde|x = 0;. |
|0000ac60| 20 20 20 62 75 66 66 65 | 72 20 3d 20 6d 61 6c 6c | buffe|r = mall|
|0000ac70| 6f 63 28 73 69 7a 65 6f | 66 28 73 69 67 6e 65 64 |oc(sizeo|f(signed|
|0000ac80| 20 73 68 6f 72 74 29 20 | 2a 20 6e 75 6d 62 65 72 | short) |* number|
|0000ac90| 20 2a 20 63 68 70 61 72 | 73 5b 31 5d 29 3b 0a 20 | * chpar|s[1]);. |
|0000aca0| 20 20 20 72 65 74 75 72 | 6e 20 63 68 70 61 72 73 | retur|n chpars|
|0000acb0| 5b 31 5d 3b 0a 20 20 20 | 20 7d 0a 0a 76 6f 69 64 |[1];. | }..void|
|0000acc0| 20 6f 75 74 70 75 74 5f | 73 61 6d 70 6c 65 73 28 | output_|samples(|
|0000acd0| 69 6e 74 20 6c 65 66 74 | 2c 20 69 6e 74 20 72 69 |int left|, int ri|
|0000ace0| 67 68 74 29 0a 20 20 20 | 20 7b 0a 20 20 20 20 69 |ght). | {. i|
|0000acf0| 66 20 28 73 74 65 72 65 | 6f 29 0a 20 20 20 20 20 |f (stere|o). |
|0000ad00| 20 20 20 7b 0a 20 20 20 | 20 20 20 20 20 62 75 66 | {. | buf|
|0000ad10| 66 65 72 5b 69 6e 64 65 | 78 2b 2b 5d 20 3d 20 28 |fer[inde|x++] = (|
|0000ad20| 6c 65 66 74 20 2a 20 70 | 72 69 6d 61 72 79 20 2b |left * p|rimary +|
|0000ad30| 20 72 69 67 68 74 20 2a | 20 73 65 63 6f 6e 64 61 | right *| seconda|
|0000ad40| 72 79 29 2f 32 35 36 3b | 0a 20 20 20 20 20 20 20 |ry)/256;|. |
|0000ad50| 20 62 75 66 66 65 72 5b | 69 6e 64 65 78 2b 2b 5d | buffer[|index++]|
|0000ad60| 20 3d 20 28 72 69 67 68 | 74 20 2a 20 70 72 69 6d | = (righ|t * prim|
|0000ad70| 61 72 79 20 2b 20 6c 65 | 66 74 20 2a 20 73 65 63 |ary + le|ft * sec|
|0000ad80| 6f 6e 64 61 72 79 29 2f | 32 35 36 3b 0a 20 20 20 |ondary)/|256;. |
|0000ad90| 20 20 20 20 20 7d 0a 20 | 20 20 20 65 6c 73 65 0a | }. | else.|
|0000ada0| 20 20 20 20 20 20 20 20 | 62 75 66 66 65 72 5b 69 | |buffer[i|
|0000adb0| 6e 64 65 78 2b 2b 5d 20 | 3d 20 6c 65 66 74 20 2b |ndex++] |= left +|
|0000adc0| 20 72 69 67 68 74 3b 0a | 20 20 20 20 7d 0a 0a 76 | right;.| }..v|
|0000add0| 6f 69 64 20 66 6c 75 73 | 68 5f 62 75 66 66 65 72 |oid flus|h_buffer|
|0000ade0| 28 76 6f 69 64 29 0a 20 | 20 20 20 7b 0a 20 20 20 |(void). | {. |
|0000adf0| 20 41 4c 77 72 69 74 65 | 73 61 6d 70 73 28 61 75 | ALwrite|samps(au|
|0000ae00| 64 69 6f 2c 20 62 75 66 | 66 65 72 2c 20 69 6e 64 |dio, buf|fer, ind|
|0000ae10| 65 78 29 3b 0a 20 20 20 | 20 69 6e 64 65 78 20 3d |ex);. | index =|
|0000ae20| 20 30 3b 0a 20 20 20 20 | 7d 0a 0a 0a 76 6f 69 64 | 0;. |}...void|
|0000ae30| 20 63 6c 6f 73 65 5f 61 | 75 64 69 6f 28 76 6f 69 | close_a|udio(voi|
|0000ae40| 64 29 0a 20 20 20 20 7b | 0a 20 20 20 20 77 68 69 |d). {|. whi|
|0000ae50| 6c 65 28 41 4c 67 65 74 | 66 69 6c 6c 65 64 28 61 |le(ALget|filled(a|
|0000ae60| 75 64 69 6f 29 20 21 3d | 20 30 29 0a 20 20 20 20 |udio) !=| 0). |
|0000ae70| 20 20 20 20 73 67 69 6e | 61 70 28 31 29 3b 0a 20 | sgin|ap(1);. |
|0000ae80| 20 20 20 41 4c 63 6c 6f | 73 65 70 6f 72 74 28 61 | ALclo|seport(a|
|0000ae90| 75 64 69 6f 29 3b 0a 20 | 20 20 20 41 4c 66 72 65 |udio);. | ALfre|
|0000aea0| 65 63 6f 6e 66 69 67 28 | 63 6f 6e 66 69 67 29 3b |econfig(|config);|
|0000aeb0| 0a 20 20 20 20 7d 0a 0a | 6a 5d 5b 69 5d 2e 65 66 |. }..|j][i].ef|
|0000aec0| 66 65 63 74 2c 0a 20 20 | 20 20 20 20 20 20 20 20 |fect,. | |
|0000aed0| 20 20 20 20 20 20 62 2d | 3e 65 5b 6a 5d 5b 69 5d | b-|>e[j][i]|
|0000aee0| 2e 70 61 72 61 6d 65 74 | 65 72 73 29 3b 0a 20 20 |.paramet|ers);. |
|0000aef0| 20 20 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 | | }. |
|0000af00| 20 20 20 20 70 72 69 6e | 74 66 28 22 5c 6e 22 29 | prin|tf("\n")|
|0000af10| 3b 0a 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 |;. | }. |
|0000af20| 7d 0a 0a 76 6f 69 64 20 | 64 75 6d 70 5f 73 6f 6e |}..void |dump_son|
|0000af30| 67 28 73 6f 6e 67 29 0a | 73 74 72 75 63 74 20 73 |g(song).|struct s|
|0000af40| 6f 6e 67 20 2a 73 6f 6e | 67 3b 0a 20 20 20 20 7b |ong *son|g;. {|
|0000af50| 0a 20 20 20 20 69 6e 74 | 20 69 3b 0a 0a 20 20 20 |. int| i;.. |
|0000af60| 20 70 72 69 6e 74 66 28 | 22 25 73 5c 6e 22 2c 20 | printf(|"%s\n", |
|0000af70| 73 6f 6e 67 2d 3e 74 69 | 74 6c 65 29 3b 0a 0a 20 |song->ti|tle);.. |
|0000af80| 20 20 20 66 6f 72 20 28 | 69 20 3d 20 31 3b 20 69 | for (|i = 1; i|
|0000af90| 20 3c 3d 20 33 31 3b 20 | 69 2b 2b 29 0a 20 20 20 | <= 31; |i++). |
|0000afa0| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 69 | {. | i|
|0000afb0| 66 20 28 73 6f 6e 67 2d | 3e 73 61 6d 70 6c 65 73 |f (song-|>samples|
|0000afc0| 5b 69 5d 2d 3e 73 74 61 | 72 74 29 0a 20 20 20 20 |[i]->sta|rt). |
|0000afd0| 20 20 20 20 20 20 20 20 | 7b 0a 20 20 20 20 20 20 | |{. |
|0000afe0| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 5c 74 | pr|intf("\t|
|0000aff0| 25 2d 33 30 73 22 2c 20 | 73 6f 6e 67 2d 3e 73 61 |%-30s", |song->sa|
|0000b000| 73 70 61 72 63 5f 61 75 | 64 69 6f 2e 63 00 00 00 |sparc_au|dio.c...|
|0000b010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|0000b070| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|0000b080| 20 20 20 36 30 34 30 20 | 20 35 31 31 37 31 36 30 | 6040 | 5117160|
|0000b090| 31 36 32 20 20 20 36 36 | 30 31 00 20 00 00 00 00 |162 66|01. ....|
|0000b0a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b0b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b0c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b0d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b0e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b0f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b1a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b1b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b1c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b1d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b1e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b1f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000b200| 2f 2a 20 73 70 61 72 63 | 5f 61 75 64 69 6f 2e 68 |/* sparc|_audio.h|
|0000b210| 20 2a 2f 0a 0a 2f 2a 20 | 24 41 75 74 68 6f 72 3a | */../* |$Author:|
|0000b220| 20 65 73 70 69 65 20 24 | 0a 20 2a 20 24 49 64 3a | espie $|. * $Id:|
|0000b230| 20 73 70 61 72 63 5f 61 | 75 64 69 6f 2e 63 2c 76 | sparc_a|udio.c,v|
|0000b240| 20 32 2e 35 20 31 39 39 | 31 2f 31 32 2f 30 34 20 | 2.5 199|1/12/04 |
|0000b250| 31 34 3a 30 34 3a 31 35 | 20 65 73 70 69 65 20 45 |14:04:15| espie E|
|0000b260| 78 70 20 65 73 70 69 65 | 20 24 0a 20 2a 20 24 52 |xp espie| $. * $R|
|0000b270| 65 76 69 73 69 6f 6e 3a | 20 32 2e 35 20 24 0a 20 |evision:| 2.5 $. |
|0000b280| 2a 20 24 4c 6f 67 3a 20 | 73 70 61 72 63 5f 61 75 |* $Log: |sparc_au|
|0000b290| 64 69 6f 2e 63 2c 76 20 | 24 0a 20 2a 20 52 65 76 |dio.c,v |$. * Rev|
|0000b2a0| 69 73 69 6f 6e 20 32 2e | 35 20 20 31 39 39 31 2f |ision 2.|5 1991/|
|0000b2b0| 31 32 2f 30 34 20 20 31 | 34 3a 30 34 3a 31 35 20 |12/04 1|4:04:15 |
|0000b2c0| 20 65 73 70 69 65 0a 20 | 2a 20 4d 69 6e 6f 72 20 | espie. |* Minor |
|0000b2d0| 66 69 78 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |fix.. *.| * Revis|
|0000b2e0| 69 6f 6e 20 32 2e 34 20 | 20 31 39 39 31 2f 31 32 |ion 2.4 | 1991/12|
|0000b2f0| 2f 30 34 20 20 30 38 3a | 32 38 3a 35 33 20 20 65 |/04 08:|28:53 e|
|0000b300| 73 70 69 65 0a 20 2a 20 | 53 65 70 61 72 61 74 65 |spie. * |Separate|
|0000b310| 64 20 6d 69 78 2f 73 74 | 65 72 65 6f 20 73 74 75 |d mix/st|ereo stu|
|0000b320| 66 66 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |ff.. *. |* Revisi|
|0000b330| 6f 6e 20 32 2e 33 20 20 | 31 39 39 31 2f 31 32 2f |on 2.3 |1991/12/|
|0000b340| 30 33 20 20 32 30 3a 34 | 33 3a 34 36 20 20 65 73 |03 20:4|3:46 es|
|0000b350| 70 69 65 0a 20 2a 20 41 | 64 64 65 64 20 70 6f 73 |pie. * A|dded pos|
|0000b360| 73 69 62 69 6c 69 74 79 | 20 74 6f 20 67 65 74 20 |sibility| to get |
|0000b370| 62 61 63 6b 20 74 6f 20 | 4d 4f 4e 4f 20 66 6f 72 |back to |MONO for|
|0000b380| 20 74 68 65 20 73 67 69 | 2e 0a 20 2a 0a 20 2a 20 | the sgi|.. *. * |
|0000b390| 52 65 76 69 73 69 6f 6e | 20 32 2e 32 20 20 31 39 |Revision| 2.2 19|
|0000b3a0| 39 31 2f 31 32 2f 30 33 | 20 20 31 38 3a 30 37 3a |91/12/03| 18:07:|
|0000b3b0| 33 38 20 20 65 73 70 69 | 65 0a 20 2a 20 41 64 64 |38 espi|e. * Add|
|0000b3c0| 65 64 20 73 74 65 72 65 | 6f 20 63 61 70 61 62 69 |ed stere|o capabi|
|0000b3d0| 6c 69 74 69 65 73 20 74 | 6f 20 74 68 65 20 69 6e |lities t|o the in|
|0000b3e0| 64 69 67 6f 20 76 65 72 | 73 69 6f 6e 2e 0a 20 2a |digo ver|sion.. *|
|0000b3f0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 31 |. * Revi|sion 2.1|
|0000b400| 20 20 31 39 39 31 2f 31 | 31 2f 31 38 20 20 30 31 | 1991/1|1/18 01|
|0000b410| 3a 31 30 3a 34 35 20 20 | 65 73 70 69 65 0a 20 2a |:10:45 |espie. *|
|0000b420| 20 4d 69 6e 6f 72 20 63 | 6f 72 72 65 63 74 69 6f | Minor c|orrectio|
|0000b430| 6e 73 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |ns.. *. |* Revisi|
|0000b440| 6f 6e 20 32 2e 30 20 20 | 31 39 39 31 2f 31 31 2f |on 2.0 |1991/11/|
|0000b450| 31 37 20 20 32 31 3a 34 | 32 3a 30 38 20 20 65 73 |17 21:4|2:08 es|
|0000b460| 70 69 65 0a 20 2a 20 4e | 65 77 20 76 65 72 73 69 |pie. * N|ew versi|
|0000b470| 6f 6e 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |on.. *. |* Revisi|
|0000b480| 6f 6e 20 31 2e 36 20 20 | 31 39 39 31 2f 31 31 2f |on 1.6 |1991/11/|
|0000b490| 31 36 20 20 31 35 3a 34 | 32 3a 34 33 20 20 65 73 |16 15:4|2:43 es|
|0000b4a0| 70 69 65 0a 20 2a 20 43 | 61 6e 27 74 20 72 65 6d |pie. * C|an't rem|
|0000b4b0| 65 6d 62 65 72 20 77 68 | 61 74 2c 20 6d 75 73 74 |ember wh|at, must|
|0000b4c0| 20 62 65 20 74 61 62 73 | 2e 0a 20 2a 0a 20 2a 20 | be tabs|.. *. * |
|0000b4d0| 52 65 76 69 73 69 6f 6e | 20 31 2e 35 20 20 31 39 |Revision| 1.5 19|
|0000b4e0| 39 31 2f 31 31 2f 30 38 | 20 20 31 34 3a 32 35 3a |91/11/08| 14:25:|
|0000b4f0| 35 35 20 20 65 73 70 69 | 65 0a 20 2a 20 57 65 20 |55 espi|e. * We |
|0000b500| 6e 6f 77 20 68 61 76 65 | 20 74 6f 20 72 65 74 75 |now have| to retu|
|0000b510| 72 6e 20 66 72 65 71 75 | 65 6e 63 79 2e 0a 20 2a |rn frequ|ency.. *|
|0000b520| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 34 |. * Revi|sion 1.4|
|0000b530| 20 20 31 39 39 31 2f 31 | 31 2f 30 37 20 20 32 30 | 1991/1|1/07 20|
|0000b540| 3a 31 32 3a 33 34 20 20 | 65 73 70 69 65 0a 20 2a |:12:34 |espie. *|
|0000b550| 20 4d 69 6e 6f 72 20 70 | 72 6f 62 6c 65 6d 20 77 | Minor p|roblem w|
|0000b560| 69 74 68 20 76 65 72 73 | 69 6f 6e 20 69 64 2e 0a |ith vers|ion id..|
|0000b570| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|0000b580| 2e 33 20 20 31 39 39 31 | 2f 31 31 2f 30 37 20 20 |.3 1991|/11/07 |
|0000b590| 32 30 3a 31 31 3a 31 30 | 20 20 65 73 70 69 65 0a |20:11:10| espie.|
|0000b5a0| 20 2a 20 41 64 64 65 64 | 20 65 6d 62 65 64 64 65 | * Added| embedde|
|0000b5b0| 64 20 76 65 72 73 69 6f | 6e 20 69 64 2e 0a 20 2a |d versio|n id.. *|
|0000b5c0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 32 |. * Revi|sion 1.2|
|0000b5d0| 20 20 31 39 39 31 2f 31 | 31 2f 30 34 20 20 31 33 | 1991/1|1/04 13|
|0000b5e0| 3a 32 33 3a 35 39 20 20 | 65 73 70 69 65 0a 20 2a |:23:59 |espie. *|
|0000b5f0| 20 49 20 64 6f 6e 27 74 | 20 6b 6e 6f 77 2e 2e 2e | I don't| know...|
|0000b600| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|0000b610| 31 2e 31 20 20 31 39 39 | 31 2f 31 31 2f 30 33 20 |1.1 199|1/11/03 |
|0000b620| 20 32 32 3a 34 36 3a 35 | 37 20 20 65 73 70 69 65 | 22:46:5|7 espie|
|0000b630| 0a 20 2a 20 49 6e 69 74 | 69 61 6c 20 72 65 76 69 |. * Init|ial revi|
|0000b640| 73 69 6f 6e 0a 20 2a 0a | 20 2a 0a 20 2a 2f 0a 0a |sion. *.| *. */..|
|0000b650| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 64 69 6f 2e |#include| <stdio.|
|0000b660| 68 3e 0a 23 69 6e 63 6c | 75 64 65 20 22 65 78 74 |h>.#incl|ude "ext|
|0000b670| 65 72 6e 2e 68 22 0a 23 | 69 6e 63 6c 75 64 65 20 |ern.h".#|include |
|0000b680| 22 6d 61 63 68 69 6e 65 | 2e 68 22 0a 20 20 20 20 |"machine|.h". |
|0000b690| 20 0a 0a 73 74 61 74 69 | 63 20 63 68 61 72 20 2a | ..stati|c char *|
|0000b6a0| 69 64 20 3d 20 22 24 49 | 64 3a 20 73 70 61 72 63 |id = "$I|d: sparc|
|0000b6b0| 5f 61 75 64 69 6f 2e 63 | 2c 76 20 32 2e 35 20 31 |_audio.c|,v 2.5 1|
|0000b6c0| 39 39 31 2f 31 32 2f 30 | 34 20 31 34 3a 30 34 3a |991/12/0|4 14:04:|
|0000b6d0| 31 35 20 65 73 70 69 65 | 20 45 78 70 20 65 73 70 |15 espie| Exp esp|
|0000b6e0| 69 65 20 24 22 3b 0a 0a | 46 49 4c 45 20 2a 61 75 |ie $";..|FILE *au|
|0000b6f0| 64 69 6f 3b 0a 0a 69 6e | 74 20 6f 70 65 6e 5f 61 |dio;..in|t open_a|
|0000b700| 75 64 69 6f 28 66 72 65 | 71 75 65 6e 63 79 29 0a |udio(fre|quency).|
|0000b710| 69 6e 74 20 66 72 65 71 | 75 65 6e 63 79 3b 0a 20 |int freq|uency;. |
|0000b720| 20 20 20 7b 0a 20 20 20 | 20 61 75 64 69 6f 20 3d | {. | audio =|
|0000b730| 20 66 6f 70 65 6e 28 22 | 2f 64 65 76 2f 61 75 64 | fopen("|/dev/aud|
|0000b740| 69 6f 22 2c 20 22 77 22 | 29 3b 0a 20 20 20 20 69 |io", "w"|);. i|
|0000b750| 66 20 28 61 75 64 69 6f | 20 3d 3d 20 4e 55 4c 4c |f (audio| == NULL|
|0000b760| 29 0a 20 20 20 20 20 20 | 20 20 7b 0a 20 20 20 20 |). | {. |
|0000b770| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|0000b780| 72 72 2c 20 22 45 72 72 | 6f 72 3a 20 63 6f 75 6c |rr, "Err|or: coul|
|0000b790| 64 20 6e 6f 74 20 6f 70 | 65 6e 20 61 75 64 69 6f |d not op|en audio|
|0000b7a0| 5c 6e 22 29 3b 0a 20 20 | 20 20 20 20 20 20 65 78 |\n");. | ex|
|0000b7b0| 69 74 28 31 30 29 3b 0a | 20 20 20 20 20 20 20 20 |it(10);.| |
|0000b7c0| 7d 0a 20 20 20 20 72 65 | 74 75 72 6e 20 38 30 30 |}. re|turn 800|
|0000b7d0| 30 3b 0a 20 20 20 20 7d | 0a 0a 76 6f 69 64 20 73 |0;. }|..void s|
|0000b7e0| 65 74 5f 6d 69 78 28 70 | 65 72 63 65 6e 74 29 0a |et_mix(p|ercent).|
|0000b7f0| 69 6e 74 20 70 65 72 63 | 65 6e 74 3b 0a 20 20 20 |int perc|ent;. |
|0000b800| 20 7b 0a 20 20 20 20 20 | 20 20 20 2f 2a 20 76 6f | {. | /* vo|
|0000b810| 69 64 20 6f 70 65 72 61 | 74 69 6f 6e 20 2a 2f 0a |id opera|tion */.|
|0000b820| 20 20 20 20 7d 0a 0a 0a | 69 6e 74 20 73 69 67 6e | }...|int sign|
|0000b830| 28 78 29 0a 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |(x).unsi|gned cha|
|0000b840| 72 20 78 3b 0a 20 20 20 | 20 7b 0a 20 20 20 20 72 |r x;. | {. r|
|0000b850| 65 74 75 72 6e 20 78 3b | 0a 20 20 20 20 7d 0a 0a |eturn x;|. }..|
|0000b860| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|0000b870| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b880| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b890| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b8a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2f 0a 2f 2a 20 20 20 |********|*/./* |
|0000b8b0| 20 20 20 46 6f 72 20 72 | 6f 75 74 69 6e 65 20 27 | For r|outine '|
|0000b8c0| 63 76 74 27 20 6f 6e 6c | 79 20 20 20 20 20 20 20 |cvt' onl|y |
|0000b8d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|0000b8e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|0000b8f0| 20 20 20 2a 2f 0a 2f 2a | 2a 2a 2a 2a 2a 2a 2a 2a | */./*|********|
|0000b900| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b910| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b920| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b930| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2f |********|*******/|
|0000b940| 0a 2f 2a 20 20 20 20 20 | 20 43 6f 70 79 72 69 67 |./* | Copyrig|
|0000b950| 68 74 20 31 39 38 39 20 | 62 79 20 52 69 63 68 20 |ht 1989 |by Rich |
|0000b960| 47 6f 70 73 74 65 69 6e | 20 61 6e 64 20 48 61 72 |Gopstein| and Har|
|0000b970| 72 69 73 20 43 6f 72 70 | 6f 72 61 74 69 6f 6e 20 |ris Corp|oration |
|0000b980| 20 20 20 20 20 20 20 20 | 20 2a 2f 0a 2f 2a 2a 2a | | */./***|
|0000b990| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b9a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b9b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b9c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|0000b9d0| 2a 2a 2a 2a 2a 2f 0a 0a | 75 6e 73 69 67 6e 65 64 |*****/..|unsigned|
|0000b9e0| 20 69 6e 74 20 63 76 74 | 28 63 68 29 0a 69 6e 74 | int cvt|(ch).int|
|0000b9f0| 20 63 68 3b 0a 20 20 20 | 20 7b 0a 20 20 20 20 69 | ch;. | {. i|
|0000ba00| 6e 74 20 6d 61 73 6b 3b | 0a 0a 20 20 20 20 69 66 |nt mask;|.. if|
|0000ba10| 20 28 63 68 20 3c 20 30 | 29 0a 20 20 20 20 20 20 | (ch < 0|). |
|0000ba20| 20 20 7b 0a 20 20 20 20 | 20 20 20 20 63 68 20 3d | {. | ch =|
|0000ba30| 20 2d 63 68 3b 0a 20 20 | 20 20 20 20 20 20 6d 61 | -ch;. | ma|
|0000ba40| 73 6b 20 3d 20 30 78 37 | 66 3b 0a 20 20 20 20 20 |sk = 0x7|f;. |
|0000ba50| 20 20 20 7d 0a 20 20 20 | 20 65 6c 73 65 0a 20 20 | }. | else. |
|0000ba60| 20 20 20 20 20 20 6d 61 | 73 6b 20 3d 20 30 78 66 | ma|sk = 0xf|
|0000ba70| 66 3b 0a 0a 20 20 20 20 | 69 66 20 28 63 68 20 3c |f;.. |if (ch <|
|0000ba80| 20 33 32 29 0a 20 20 20 | 20 20 20 20 20 7b 0a 20 | 32). | {. |
|0000ba90| 20 20 20 20 20 20 20 63 | 68 20 3d 20 30 78 46 30 | c|h = 0xF0|
|0000baa0| 20 7c 20 31 35 20 2d 20 | 28 63 68 20 2f 20 32 29 | | 15 - |(ch / 2)|
|0000bab0| 3b 0a 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 |;. | }. |
|0000bac0| 65 6c 73 65 20 69 66 20 | 28 63 68 20 3c 20 39 36 |else if |(ch < 96|
|0000bad0| 29 0a 20 20 20 20 20 20 | 20 20 7b 0a 20 20 20 20 |). | {. |
|0000bae0| 20 20 20 20 63 68 20 3d | 20 30 78 45 30 20 7c 20 | ch =| 0xE0 | |
|0000baf0| 31 35 20 2d 20 28 63 68 | 20 2d 20 33 32 29 20 2f |15 - (ch| - 32) /|
|0000bb00| 20 34 3b 0a 20 20 20 20 | 20 20 20 20 7d 0a 20 20 | 4;. | }. |
|0000bb10| 20 20 65 6c 73 65 20 69 | 66 20 28 63 68 20 3c 20 | else i|f (ch < |
|0000bb20| 32 32 34 29 0a 20 20 20 | 20 20 20 20 20 7b 0a 20 |224). | {. |
|0000bb30| 20 20 20 20 20 20 20 63 | 68 20 3d 20 30 78 44 30 | c|h = 0xD0|
|0000bb40| 20 7c 20 31 35 20 2d 20 | 28 63 68 20 2d 20 39 36 | | 15 - |(ch - 96|
|0000bb50| 29 20 2f 20 38 3b 0a 20 | 20 20 20 20 20 20 20 7d |) / 8;. | }|
|0000bb60| 0a 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 63 68 |. els|e if (ch|
|0000bb70| 20 3c 20 34 38 30 29 0a | 20 20 20 20 20 20 20 20 | < 480).| |
|0000bb80| 7b 0a 20 20 20 20 20 20 | 20 20 63 68 20 3d 20 30 |{. | ch = 0|
|0000bb90| 78 43 30 20 7c 20 31 35 | 20 2d 20 28 63 68 20 2d |xC0 | 15| - (ch -|
|0000bba0| 20 32 32 34 29 20 2f 20 | 31 36 3b 0a 20 20 20 20 | 224) / |16;. |
|0000bbb0| 20 20 20 20 7d 0a 20 20 | 20 20 65 6c 73 65 20 69 | }. | else i|
|0000bbc0| 66 20 28 63 68 20 3c 20 | 39 39 32 29 0a 20 20 20 |f (ch < |992). |
|0000bbd0| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 63 | {. | c|
|0000bbe0| 68 20 3d 20 30 78 42 30 | 20 7c 20 31 35 20 2d 20 |h = 0xB0| | 15 - |
|0000bbf0| 28 63 68 20 2d 20 34 38 | 30 29 20 2f 20 33 32 3b |(ch - 48|0) / 32;|
|0000bc00| 0a 20 20 20 20 20 20 20 | 20 7d 0a 20 20 20 20 65 |. | }. e|
|0000bc10| 6c 73 65 20 69 66 20 28 | 63 68 20 3c 20 32 30 31 |lse if (|ch < 201|
|0000bc20| 36 29 0a 20 20 20 20 20 | 20 20 20 7b 0a 20 20 20 |6). | {. |
|0000bc30| 20 20 20 20 20 63 68 20 | 3d 20 30 78 41 30 20 7c | ch |= 0xA0 ||
|0000bc40| 20 31 35 20 2d 20 28 63 | 68 20 2d 20 39 39 32 29 | 15 - (c|h - 992)|
|0000bc50| 20 2f 20 36 34 3b 0a 20 | 20 20 20 20 20 20 20 7d | / 64;. | }|
|0000bc60| 0a 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 63 68 |. els|e if (ch|
|0000bc70| 20 3c 20 34 30 36 34 29 | 0a 20 20 20 20 20 20 20 | < 4064)|. |
|0000bc80| 20 7b 0a 20 20 20 20 20 | 20 20 20 63 68 20 3d 20 | {. | ch = |
|0000bc90| 30 78 39 30 20 7c 20 31 | 35 20 2d 20 28 63 68 20 |0x90 | 1|5 - (ch |
|0000bca0| 2d 20 32 30 31 36 29 20 | 2f 20 31 32 38 3b 0a 20 |- 2016) |/ 128;. |
|0000bcb0| 20 20 20 20 20 20 20 7d | 0a 20 20 20 20 65 6c 73 | }|. els|
|0000bcc0| 65 20 69 66 20 28 63 68 | 20 3c 20 38 31 36 30 29 |e if (ch| < 8160)|
|0000bcd0| 0a 20 20 20 20 20 20 20 | 20 7b 0a 20 20 20 20 20 |. | {. |
|0000bce0| 20 20 20 63 68 20 3d 20 | 30 78 38 30 20 7c 20 31 | ch = |0x80 | 1|
|0000bcf0| 35 20 2d 20 28 63 68 20 | 2d 20 34 30 36 34 29 20 |5 - (ch |- 4064) |
|0000bd00| 2f 20 20 32 35 36 3b 0a | 20 20 20 20 20 20 20 20 |/ 256;.| |
|0000bd10| 7d 0a 20 20 20 20 65 6c | 73 65 0a 20 20 20 20 20 |}. el|se. |
|0000bd20| 20 20 20 7b 0a 20 20 20 | 20 20 20 20 20 63 68 20 | {. | ch |
|0000bd30| 3d 20 30 78 38 30 3b 0a | 20 20 20 20 20 20 20 20 |= 0x80;.| |
|0000bd40| 7d 0a 20 20 20 20 72 65 | 74 75 72 6e 20 28 6d 61 |}. re|turn (ma|
|0000bd50| 73 6b 20 26 20 63 68 29 | 3b 0a 20 20 20 20 7d 0a |sk & ch)|;. }.|
|0000bd60| 0a 0a 76 6f 69 64 20 6f | 75 74 70 75 74 5f 73 61 |..void o|utput_sa|
|0000bd70| 6d 70 6c 65 73 28 6c 65 | 66 74 2c 20 72 69 67 68 |mples(le|ft, righ|
|0000bd80| 74 29 0a 69 6e 74 20 6c | 65 66 74 2c 20 72 69 67 |t).int l|eft, rig|
|0000bd90| 68 74 3b 0a 20 20 20 20 | 7b 0a 20 20 20 20 66 70 |ht;. |{. fp|
|0000bda0| 75 74 63 28 63 76 74 28 | 28 6c 65 66 74 20 2b 20 |utc(cvt(|(left + |
|0000bdb0| 72 69 67 68 74 29 2f 31 | 36 29 2c 20 61 75 64 69 |right)/1|6), audi|
|0000bdc0| 6f 29 3b 0a 20 20 20 20 | 7d 0a 0a 76 6f 69 64 20 |o);. |}..void |
|0000bdd0| 66 6c 75 73 68 5f 62 75 | 66 66 65 72 28 29 0a 20 |flush_bu|ffer(). |
|0000bde0| 20 20 20 7b 0a 20 20 20 | 20 7d 0a 0a 0a 76 6f 69 | {. | }...voi|
|0000bdf0| 64 20 63 6c 6f 73 65 5f | 61 75 64 69 6f 28 29 0a |d close_|audio().|
|0000be00| 20 20 20 20 7b 0a 20 20 | 20 20 66 63 6c 6f 73 65 | {. | fclose|
|0000be10| 28 61 75 64 69 6f 29 3b | 0a 20 20 20 20 7d 0a 0a |(audio);|. }..|
|0000be20| 20 30 3b 0a 20 20 20 20 | 7d 0a 0a 0a 76 6f 69 64 | 0;. |}...void|
|0000be30| 20 63 6c 6f 73 65 5f 61 | 75 64 69 6f 28 76 6f 69 | close_a|udio(voi|
|0000be40| 64 29 0a 20 20 20 20 7b | 0a 20 20 20 20 77 68 69 |d). {|. whi|
|0000be50| 6c 65 28 41 4c 67 65 74 | 66 69 6c 6c 65 64 28 61 |le(ALget|filled(a|
|0000be60| 75 64 69 6f 29 20 21 3d | 20 30 29 0a 20 20 20 20 |udio) !=| 0). |
|0000be70| 20 20 20 20 73 67 69 6e | 61 70 28 31 29 3b 0a 20 | sgin|ap(1);. |
|0000be80| 20 20 20 41 4c 63 6c 6f | 73 65 70 6f 72 74 28 61 | ALclo|seport(a|
|0000be90| 75 64 69 6f 29 3b 0a 20 | 20 20 20 41 4c 66 72 65 |udio);. | ALfre|
|0000bea0| 65 63 6f 6e 66 69 67 28 | 63 6f 6e 66 69 67 29 3b |econfig(|config);|
|0000beb0| 0a 20 20 20 20 7d 0a 0a | 6a 5d 5b 69 5d 2e 65 66 |. }..|j][i].ef|
|0000bec0| 66 65 63 74 2c 0a 20 20 | 20 20 20 20 20 20 20 20 |fect,. | |
|0000bed0| 20 20 20 20 20 20 62 2d | 3e 65 5b 6a 5d 5b 69 5d | b-|>e[j][i]|
|0000bee0| 2e 70 61 72 61 6d 65 74 | 65 72 73 29 3b 0a 20 20 |.paramet|ers);. |
|0000bef0| 20 20 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 | | }. |
|0000bf00| 20 20 20 20 70 72 69 6e | 74 66 28 22 5c 6e 22 29 | prin|tf("\n")|
|0000bf10| 3b 0a 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 |;. | }. |
|0000bf20| 7d 0a 0a 76 6f 69 64 20 | 64 75 6d 70 5f 73 6f 6e |}..void |dump_son|
|0000bf30| 67 28 73 6f 6e 67 29 0a | 73 74 72 75 63 74 20 73 |g(song).|struct s|
|0000bf40| 6f 6e 67 20 2a 73 6f 6e | 67 3b 0a 20 20 20 20 7b |ong *son|g;. {|
|0000bf50| 0a 20 20 20 20 69 6e 74 | 20 69 3b 0a 0a 20 20 20 |. int| i;.. |
|0000bf60| 20 70 72 69 6e 74 66 28 | 22 25 73 5c 6e 22 2c 20 | printf(|"%s\n", |
|0000bf70| 73 6f 6e 67 2d 3e 74 69 | 74 6c 65 29 3b 0a 0a 20 |song->ti|tle);.. |
|0000bf80| 20 20 20 66 6f 72 20 28 | 69 20 3d 20 31 3b 20 69 | for (|i = 1; i|
|0000bf90| 20 3c 3d 20 33 31 3b 20 | 69 2b 2b 29 0a 20 20 20 | <= 31; |i++). |
|0000bfa0| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 69 | {. | i|
|0000bfb0| 66 20 28 73 6f 6e 67 2d | 3e 73 61 6d 70 6c 65 73 |f (song-|>samples|
|0000bfc0| 5b 69 5d 2d 3e 73 74 61 | 72 74 29 0a 20 20 20 20 |[i]->sta|rt). |
|0000bfd0| 20 20 20 20 20 20 20 20 | 7b 0a 20 20 20 20 20 20 | |{. |
|0000bfe0| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 5c 74 | pr|intf("\t|
|0000bff0| 25 2d 33 30 73 22 2c 20 | 73 6f 6e 67 2d 3e 73 61 |%-30s", |song->sa|
|0000c000| 73 74 72 33 32 2e 63 00 | 00 00 00 00 00 00 00 00 |str32.c.|........|
|0000c010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|0000c070| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|0000c080| 20 20 32 36 33 37 32 20 | 20 35 31 31 37 31 36 30 | 26372 | 5117160|
|0000c090| 31 33 35 20 20 20 35 33 | 31 37 00 20 00 00 00 00 |135 53|17. ....|
|0000c0a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c0b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c0c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c0d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c0e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c0f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c1a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c1b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c1c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c1d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c1e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c1f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000c200| 2f 2a 20 73 74 72 33 32 | 2e 63 20 2a 2f 0a 0a 2f |/* str32|.c */../|
|0000c210| 2a 20 70 6c 61 79 73 20 | 73 6f 75 6e 64 2f 6e 6f |* plays |sound/no|
|0000c220| 69 73 65 74 72 61 63 6b | 65 72 20 66 69 6c 65 73 |isetrack|er files|
|0000c230| 20 6f 6e 20 53 70 61 72 | 63 2c 20 73 69 6c 69 63 | on Spar|c, silic|
|0000c240| 6f 6e 20 67 72 61 70 68 | 69 63 73 2e 0a 20 2a 20 |on graph|ics.. * |
|0000c250| 41 75 74 68 6f 72 73 20 | 20 3a 20 4c 69 61 6d 20 |Authors | : Liam |
|0000c260| 43 6f 72 6e 65 72 20 2d | 20 7a 65 6e 69 74 68 40 |Corner -| zenith@|
|0000c270| 64 63 73 2e 77 61 72 77 | 69 63 6b 2e 61 63 2e 75 |dcs.warw|ick.ac.u|
|0000c280| 6b 0a 20 2a 20 20 20 20 | 20 20 20 20 20 20 20 20 |k. * | |
|0000c290| 4d 61 72 63 20 45 73 70 | 69 65 20 2d 20 65 73 70 |Marc Esp|ie - esp|
|0000c2a0| 69 65 40 64 6d 69 2e 65 | 6e 73 2e 66 72 0a 20 2a |ie@dmi.e|ns.fr. *|
|0000c2b0| 0a 20 2a 20 55 73 61 67 | 65 20 20 20 20 3a 20 74 |. * Usag|e : t|
|0000c2c0| 72 61 63 6b 65 72 20 3c | 66 69 6c 65 6e 61 6d 65 |racker <|filename|
|0000c2d0| 3e 20 0a 20 2a 20 20 74 | 68 69 73 20 76 65 72 73 |> . * t|his vers|
|0000c2e0| 69 6f 6e 20 70 6c 61 79 | 73 20 63 6f 6d 70 72 65 |ion play|s compre|
|0000c2f0| 73 73 65 64 20 66 69 6c | 65 73 20 61 6e 64 20 73 |ssed fil|es and s|
|0000c300| 69 6d 70 6c 65 20 7a 6f | 6f 20 61 72 63 68 69 76 |imple zo|o archiv|
|0000c310| 65 73 0a 20 2a 20 20 61 | 73 20 77 65 6c 6c 2e 0a |es. * a|s well..|
|0000c320| 20 2a 2f 0a 0a 2f 2a 20 | 24 41 75 74 68 6f 72 3a | */../* |$Author:|
|0000c330| 20 65 73 70 69 65 20 24 | 0a 20 2a 20 24 49 64 3a | espie $|. * $Id:|
|0000c340| 20 73 74 72 33 32 2e 63 | 2c 76 20 32 2e 39 20 31 | str32.c|,v 2.9 1|
|0000c350| 39 39 31 2f 31 32 2f 30 | 34 20 30 38 3a 32 38 3a |991/12/0|4 08:28:|
|0000c360| 35 33 20 65 73 70 69 65 | 20 45 78 70 20 65 73 70 |53 espie| Exp esp|
|0000c370| 69 65 20 24 0a 20 2a 20 | 24 52 65 76 69 73 69 6f |ie $. * |$Revisio|
|0000c380| 6e 3a 20 32 2e 39 20 24 | 0a 20 2a 20 24 4c 6f 67 |n: 2.9 $|. * $Log|
|0000c390| 3a 20 73 74 72 33 32 2e | 63 2c 76 20 24 0a 20 2a |: str32.|c,v $. *|
|0000c3a0| 20 52 65 76 69 73 69 6f | 6e 20 32 2e 39 20 20 31 | Revisio|n 2.9 1|
|0000c3b0| 39 39 31 2f 31 32 2f 30 | 34 20 20 30 38 3a 32 38 |991/12/0|4 08:28|
|0000c3c0| 3a 35 33 20 20 65 73 70 | 69 65 0a 20 2a 20 53 65 |:53 esp|ie. * Se|
|0000c3d0| 70 61 72 61 74 65 64 20 | 6d 69 78 2f 73 74 65 72 |parated |mix/ster|
|0000c3e0| 65 6f 20 73 74 75 66 66 | 2e 0a 20 2a 0a 20 2a 20 |eo stuff|.. *. * |
|0000c3f0| 52 65 76 69 73 69 6f 6e | 20 32 2e 38 20 20 31 39 |Revision| 2.8 19|
|0000c400| 39 31 2f 31 32 2f 30 33 | 20 20 32 33 3a 30 33 3a |91/12/03| 23:03:|
|0000c410| 33 39 20 20 65 73 70 69 | 65 0a 20 2a 20 41 64 64 |39 espi|e. * Add|
|0000c420| 65 64 20 74 72 61 6e 73 | 70 6f 73 65 20 66 65 61 |ed trans|pose fea|
|0000c430| 74 75 72 65 2e 0a 20 2a | 0a 20 2a 20 52 65 76 69 |ture.. *|. * Revi|
|0000c440| 73 69 6f 6e 20 32 2e 37 | 20 20 31 39 39 31 2f 31 |sion 2.7| 1991/1|
|0000c450| 32 2f 30 33 20 20 32 30 | 3a 34 33 3a 34 36 20 20 |2/03 20|:43:46 |
|0000c460| 65 73 70 69 65 0a 20 2a | 20 41 64 64 65 64 20 70 |espie. *| Added p|
|0000c470| 6f 73 73 69 62 69 6c 69 | 74 79 20 74 6f 20 67 65 |ossibili|ty to ge|
|0000c480| 74 20 62 61 63 6b 20 74 | 6f 20 4d 4f 4e 4f 20 66 |t back t|o MONO f|
|0000c490| 6f 72 20 74 68 65 20 73 | 67 69 2e 0a 20 2a 0a 20 |or the s|gi.. *. |
|0000c4a0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 32 2e 36 20 20 |* Revisi|on 2.6 |
|0000c4b0| 31 39 39 31 2f 31 32 2f | 30 33 20 20 31 38 3a 30 |1991/12/|03 18:0|
|0000c4c0| 37 3a 33 38 20 20 65 73 | 70 69 65 0a 20 2a 20 41 |7:38 es|pie. * A|
|0000c4d0| 64 64 65 64 20 73 74 65 | 72 65 6f 20 63 61 70 61 |dded ste|reo capa|
|0000c4e0| 62 69 6c 69 74 69 65 73 | 20 74 6f 20 74 68 65 20 |bilities| to the |
|0000c4f0| 69 6e 64 69 67 6f 20 76 | 65 72 73 69 6f 6e 2e 0a |indigo v|ersion..|
|0000c500| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 32 | *. * Re|vision 2|
|0000c510| 2e 35 20 20 31 39 39 31 | 2f 31 32 2f 30 33 20 20 |.5 1991|/12/03 |
|0000c520| 31 37 3a 31 30 3a 31 31 | 20 20 65 73 70 69 65 0a |17:10:11| espie.|
|0000c530| 20 2a 20 41 64 64 65 64 | 20 72 65 63 6f 76 65 72 | * Added| recover|
|0000c540| 79 20 61 6e 64 20 72 65 | 72 65 61 64 20 66 6f 72 |y and re|read for|
|0000c550| 20 61 75 74 6f 6d 61 74 | 69 63 20 72 65 63 6f 67 | automat|ic recog|
|0000c560| 6e 69 74 69 6f 6e 0a 20 | 2a 20 6f 66 20 6f 6c 64 |nition. |* of old|
|0000c570| 2f 6e 65 77 20 74 72 61 | 63 6b 65 72 20 66 69 6c |/new tra|cker fil|
|0000c580| 65 73 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |es.. *. |* Revisi|
|0000c590| 6f 6e 20 32 2e 34 20 20 | 31 39 39 31 2f 31 31 2f |on 2.4 |1991/11/|
|0000c5a0| 32 30 20 20 32 30 3a 34 | 36 3a 33 35 20 20 65 73 |20 20:4|6:35 es|
|0000c5b0| 70 69 65 0a 20 2a 20 4d | 69 6e 6f 72 20 63 6f 72 |pie. * M|inor cor|
|0000c5c0| 72 65 63 74 69 6f 6e 2e | 0a 20 2a 0a 20 2a 20 52 |rection.|. *. * R|
|0000c5d0| 65 76 69 73 69 6f 6e 20 | 32 2e 33 20 20 31 39 39 |evision |2.3 199|
|0000c5e0| 31 2f 31 31 2f 31 38 20 | 20 30 31 3a 32 33 3a 33 |1/11/18 | 01:23:3|
|0000c5f0| 30 20 20 65 73 70 69 65 | 0a 20 2a 20 41 64 64 65 |0 espie|. * Adde|
|0000c600| 64 20 74 77 6f 20 6c 65 | 76 65 6c 20 6f 66 20 66 |d two le|vel of f|
|0000c610| 61 75 6c 74 20 74 6f 6c | 65 72 61 6e 63 79 2e 0a |ault tol|erancy..|
|0000c620| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 32 | *. * Re|vision 2|
|0000c630| 2e 32 20 20 31 39 39 31 | 2f 31 31 2f 31 38 20 20 |.2 1991|/11/18 |
|0000c640| 30 31 3a 31 30 3a 34 35 | 20 20 65 73 70 69 65 0a |01:10:45| espie.|
|0000c650| 20 2a 20 41 64 64 65 64 | 20 6d 6f 72 65 20 72 61 | * Added| more ra|
|0000c660| 74 69 6f 6e 61 6c 20 6f | 70 74 69 6f 6e 73 2e 0a |tional o|ptions..|
|0000c670| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 32 | *. * Re|vision 2|
|0000c680| 2e 31 20 20 31 39 39 31 | 2f 31 31 2f 31 37 20 20 |.1 1991|/11/17 |
|0000c690| 32 33 3a 30 37 3a 35 38 | 20 20 65 73 70 69 65 0a |23:07:58| espie.|
|0000c6a0| 20 2a 20 4d 6f 76 65 64 | 20 61 6c 6d 6f 73 74 20 | * Moved| almost |
|0000c6b0| 65 76 65 72 79 74 68 69 | 6e 67 20 74 6f 20 61 75 |everythi|ng to au|
|0000c6c0| 64 69 6f 20 61 6e 64 20 | 61 75 74 6f 6d 61 74 6f |dio and |automato|
|0000c6d0| 6e 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |n.. *. *| Revisio|
|0000c6e0| 6e 20 32 2e 30 20 20 31 | 39 39 31 2f 31 31 2f 31 |n 2.0 1|991/11/1|
|0000c6f0| 37 20 20 32 31 3a 34 32 | 3a 30 38 20 20 65 73 70 |7 21:42|:08 esp|
|0000c700| 69 65 0a 20 2a 20 53 74 | 72 75 63 74 75 72 65 64 |ie. * St|ructured|
|0000c710| 20 70 61 72 74 20 6f 66 | 20 74 68 65 20 63 6f 64 | part of| the cod|
|0000c720| 65 2c 20 65 73 70 65 63 | 69 61 6c 6c 79 20 72 65 |e, espec|ially re|
|0000c730| 70 6c 61 79 20 60 60 61 | 75 74 6f 6d 61 74 6f 6e |play ``a|utomaton|
|0000c740| 27 27 0a 20 2a 20 61 6e | 64 20 73 65 74 74 69 6e |''. * an|d settin|
|0000c750| 67 20 75 70 20 6f 66 20 | 65 66 66 65 63 74 73 2e |g up of |effects.|
|0000c760| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|0000c770| 31 2e 32 36 20 20 31 39 | 39 31 2f 31 31 2f 31 37 |1.26 19|91/11/17|
|0000c780| 20 20 31 37 3a 30 39 3a | 35 33 20 20 65 73 70 69 | 17:09:|53 espi|
|0000c790| 65 0a 20 2a 20 41 64 64 | 65 64 20 6d 69 73 73 69 |e. * Add|ed missi|
|0000c7a0| 6e 67 20 70 72 6f 74 6f | 74 79 70 65 73 2e 0a 20 |ng proto|types.. |
|0000c7b0| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|0000c7c0| 32 35 20 20 31 39 39 31 | 2f 31 31 2f 31 37 20 20 |25 1991|/11/17 |
|0000c7d0| 31 36 3a 33 30 3a 34 38 | 20 20 65 73 70 69 65 0a |16:30:48| espie.|
|0000c7e0| 20 2a 20 43 6f 72 72 65 | 63 74 65 64 20 63 6f 73 | * Corre|cted cos|
|0000c7f0| 6d 65 74 69 63 20 64 65 | 74 61 69 6c 73 2c 20 6d |metic de|tails, m|
|0000c800| 6f 73 74 6c 79 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 |ostly.. |*. * Rev|
|0000c810| 69 73 69 6f 6e 20 31 2e | 32 34 20 20 31 39 39 31 |ision 1.|24 1991|
|0000c820| 2f 31 31 2f 31 36 20 20 | 31 36 3a 35 37 3a 30 31 |/11/16 |16:57:01|
|0000c830| 20 20 65 73 70 69 65 0a | 20 2a 20 46 6f 72 67 6f | espie.| * Forgo|
|0000c840| 74 20 74 68 61 74 20 72 | 65 61 64 5f 73 6f 6e 67 |t that r|ead_song|
|0000c850| 20 6f 6e 6c 79 20 72 65 | 74 75 72 6e 65 64 20 4e | only re|turned N|
|0000c860| 55 4c 4c 20 6f 6e 20 72 | 65 61 64 20 70 72 6f 62 |ULL on r|ead prob|
|0000c870| 6c 65 6d 2e 0a 20 2a 20 | 53 68 6f 75 6c 64 20 74 |lem.. * |Should t|
|0000c880| 65 73 74 20 74 68 61 74 | 20 62 65 66 6f 72 65 20 |est that| before |
|0000c890| 70 72 69 6e 74 69 6e 67 | 20 4f 6b 2e 0a 20 2a 0a |printing| Ok.. *.|
|0000c8a0| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 32 33 | * Revis|ion 1.23|
|0000c8b0| 20 20 31 39 39 31 2f 31 | 31 2f 31 36 20 20 31 36 | 1991/1|1/16 16|
|0000c8c0| 3a 35 34 3a 31 39 20 20 | 65 73 70 69 65 0a 20 2a |:54:19 |espie. *|
|0000c8d0| 20 53 6f 6d 65 20 6d 6f | 72 65 20 69 6e 66 6f 20 | Some mo|re info |
|0000c8e0| 77 68 69 6c 65 20 6c 6f | 61 64 69 6e 67 20 66 69 |while lo|ading fi|
|0000c8f0| 6c 65 73 2e 0a 20 2a 20 | 41 64 64 65 64 20 46 41 |les.. * |Added FA|
|0000c900| 55 4c 54 20 65 6e 76 20 | 76 61 72 69 61 62 6c 65 |ULT env |variable|
|0000c910| 2c 20 46 41 55 4c 54 20 | 72 65 73 69 73 74 61 6e |, FAULT |resistan|
|0000c920| 74 20 70 6c 61 79 69 6e | 67 2c 0a 20 2a 20 66 6f |t playin|g,. * fo|
|0000c930| 72 20 70 6c 61 79 69 6e | 67 20 6d 6f 64 75 6c 65 |r playin|g module|
|0000c940| 73 20 77 68 69 63 68 20 | 61 72 65 20 6e 6f 74 20 |s which |are not |
|0000c950| 71 75 69 74 65 20 63 6f | 72 72 65 63 74 2e 0a 20 |quite co|rrect.. |
|0000c960| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|0000c970| 32 32 20 20 31 39 39 31 | 2f 31 31 2f 31 36 20 20 |22 1991|/11/16 |
|0000c980| 31 35 3a 34 32 3a 34 33 | 20 20 65 73 70 69 65 0a |15:42:43| espie.|
|0000c990| 20 2a 20 74 61 62 73 2e | 0a 20 2a 0a 20 2a 20 52 | * tabs.|. *. * R|
|0000c9a0| 65 76 69 73 69 6f 6e 20 | 31 2e 32 31 20 20 31 39 |evision |1.21 19|
|0000c9b0| 39 31 2f 31 31 2f 31 35 | 20 20 32 30 3a 35 37 3a |91/11/15| 20:57:|
|0000c9c0| 33 34 20 20 65 73 70 69 | 65 0a 20 2a 20 4d 69 6e |34 espi|e. * Min|
|0000c9d0| 6f 72 20 63 6c 65 61 6e | 75 70 2c 20 6d 6f 73 74 |or clean|up, most|
|0000c9e0| 6c 79 20 63 6f 6d 6d 65 | 6e 74 73 2e 0a 20 2a 0a |ly comme|nts.. *.|
|0000c9f0| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 32 30 | * Revis|ion 1.20|
|0000ca00| 20 20 31 39 39 31 2f 31 | 31 2f 31 35 20 20 31 38 | 1991/1|1/15 18|
|0000ca10| 3a 32 32 3a 31 30 20 20 | 65 73 70 69 65 0a 20 2a |:22:10 |espie. *|
|0000ca20| 20 53 65 72 69 6f 75 73 | 20 62 75 67 3a 20 64 6f | Serious| bug: do|
|0000ca30| 63 68 61 6e 67 65 73 70 | 65 65 64 20 77 61 73 20 |changesp|eed was |
|0000ca40| 6e 6f 74 20 72 65 73 65 | 74 20 61 6c 6c 20 74 68 |not rese|t all th|
|0000ca50| 65 20 74 69 6d 65 2e 0a | 20 2a 20 43 68 65 63 6b |e time..| * Check|
|0000ca60| 20 61 6c 6c 20 74 68 65 | 73 65 20 70 61 72 61 6d | all the|se param|
|0000ca70| 65 74 65 72 73 2c 20 74 | 68 65 79 20 4d 55 53 54 |eters, t|hey MUST|
|0000ca80| 20 62 65 20 72 65 73 65 | 74 20 66 6f 72 0a 20 2a | be rese|t for. *|
|0000ca90| 20 65 61 63 68 20 6e 65 | 77 20 73 6f 6e 67 2e 0a | each ne|w song..|
|0000caa0| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|0000cab0| 2e 31 39 20 20 31 39 39 | 31 2f 31 31 2f 30 39 20 |.19 199|1/11/09 |
|0000cac0| 20 32 30 3a 30 31 3a 35 | 36 20 20 65 73 70 69 65 | 20:01:5|6 espie|
|0000cad0| 0a 20 2a 20 46 69 78 65 | 64 20 61 20 73 74 75 70 |. * Fixe|d a stup|
|0000cae0| 69 64 20 62 75 67 3a 20 | 77 68 65 6e 20 65 6e 76 |id bug: |when env|
|0000caf0| 20 76 61 72 69 61 62 6c | 65 20 4c 4f 4f 50 49 4e | variabl|e LOOPIN|
|0000cb00| 47 20 77 61 73 0a 20 2a | 20 75 6e 64 65 66 69 6e |G was. *| undefin|
|0000cb10| 65 64 2c 20 77 65 20 67 | 6f 74 20 61 20 73 65 67 |ed, we g|ot a seg|
|0000cb20| 76 20 6f 6e 20 73 74 72 | 63 6d 70 2e 0a 20 2a 20 |v on str|cmp.. * |
|0000cb30| 4e 6f 77 20 77 65 20 6a | 75 73 74 20 74 65 73 74 |Now we j|ust test|
|0000cb40| 20 66 6f 72 20 69 74 73 | 20 65 78 69 73 74 65 6e | for its| existen|
|0000cb50| 63 65 2c 20 73 69 6e 63 | 65 20 74 68 69 73 20 69 |ce, sinc|e this i|
|0000cb60| 73 0a 20 2a 20 61 62 6f | 75 74 20 61 6c 6c 20 77 |s. * abo|ut all w|
|0000cb70| 65 20 77 61 6e 74 2e 2e | 2e 0a 20 2a 0a 20 2a 20 |e want..|.. *. * |
|0000cb80| 52 65 76 69 73 69 6f 6e | 20 31 2e 31 38 20 20 31 |Revision| 1.18 1|
|0000cb90| 39 39 31 2f 31 31 2f 30 | 39 20 20 31 37 3a 34 37 |991/11/0|9 17:47|
|0000cba0| 3a 33 33 20 20 65 73 70 | 69 65 0a 20 2a 20 42 75 |:33 esp|ie. * Bu|
|0000cbb0| 67 20 63 6f 72 72 65 63 | 74 69 6f 6e 3a 20 77 68 |g correc|tion: wh|
|0000cbc0| 65 6e 20 64 6f 69 6e 67 | 20 61 72 70 65 67 67 69 |en doing| arpeggi|
|0000cbd0| 6f 2c 20 74 68 65 72 65 | 20 6d 69 67 68 74 20 6e |o, there| might n|
|0000cbe0| 6f 74 0a 20 2a 20 62 65 | 20 61 20 6e 65 77 20 6e |ot. * be| a new n|
|0000cbf0| 6f 74 65 2c 20 73 6f 20 | 77 65 20 68 61 76 65 20 |ote, so |we have |
|0000cc00| 74 6f 20 73 61 76 65 20 | 74 68 65 20 6f 6c 64 20 |to save |the old |
|0000cc10| 6e 6f 74 65 20 76 61 6c | 75 65 0a 20 2a 20 61 6e |note val|ue. * an|
|0000cc20| 64 20 64 6f 20 74 68 65 | 20 61 72 70 70 65 67 67 |d do the| arppegg|
|0000cc30| 69 6f 20 6f 6e 20 74 68 | 61 74 20 6e 6f 74 65 2e |io on th|at note.|
|0000cc40| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|0000cc50| 31 2e 31 37 20 20 31 39 | 39 31 2f 31 31 2f 30 38 |1.17 19|91/11/08|
|0000cc60| 20 20 31 34 3a 34 37 3a | 35 32 20 20 65 73 70 69 | 14:47:|52 espi|
|0000cc70| 65 0a 20 2a 20 43 6f 6d | 70 6c 65 74 65 6c 79 20 |e. * Com|pletely |
|0000cc80| 61 64 64 65 64 20 63 6f | 6e 74 72 6f 6c 20 77 69 |added co|ntrol wi|
|0000cc90| 74 68 20 4f 56 45 52 53 | 41 4d 50 4c 45 20 61 6e |th OVERS|AMPLE an|
|0000cca0| 64 20 46 52 45 51 55 45 | 4e 43 59 2e 0a 20 2a 0a |d FREQUE|NCY.. *.|
|0000ccb0| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 31 35 | * Revis|ion 1.15|
|0000ccc0| 20 20 31 39 39 31 2f 31 | 31 2f 30 38 20 20 31 33 | 1991/1|1/08 13|
|0000ccd0| 3a 33 35 3a 35 37 20 20 | 65 73 70 69 65 0a 20 2a |:35:57 |espie. *|
|0000cce0| 20 41 64 64 65 64 20 63 | 6f 6e 74 72 6f 6c 20 66 | Added c|ontrol f|
|0000ccf0| 6c 6f 77 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |low.. *.| * Revis|
|0000cd00| 69 6f 6e 20 31 2e 31 34 | 20 20 31 39 39 31 2f 31 |ion 1.14| 1991/1|
|0000cd10| 31 2f 30 38 20 20 31 32 | 3a 33 37 3a 33 37 20 20 |1/08 12|:37:37 |
|0000cd20| 65 73 70 69 65 0a 20 2a | 20 41 64 64 65 64 20 70 |espie. *| Added p|
|0000cd30| 69 70 65 20 64 65 63 6f | 6d 70 72 65 73 73 69 6f |ipe deco|mpressio|
|0000cd40| 6e 2c 20 73 6f 20 74 68 | 61 74 20 6e 6f 77 20 79 |n, so th|at now y|
|0000cd50| 6f 75 20 63 61 6e 20 64 | 6f 0a 20 2a 20 73 74 72 |ou can d|o. * str|
|0000cd60| 33 32 20 66 69 6c 65 2e | 5a 20 64 69 72 65 63 74 |32 file.|Z direct|
|0000cd70| 6c 79 2e 0a 20 2a 20 73 | 74 64 69 6e 20 6d 61 79 |ly.. * s|tdin may|
|0000cd80| 20 67 6f 20 61 77 61 79 | 2e 0a 20 2a 0a 20 2a 20 | go away|.. *. * |
|0000cd90| 4c 6f 6f 70 69 6e 67 20 | 69 73 20 6e 6f 77 20 63 |Looping |is now c|
|0000cda0| 6f 6e 74 72 6f 6c 6c 65 | 64 20 62 79 20 61 6e 20 |ontrolle|d by an |
|0000cdb0| 65 6e 76 69 72 6f 6e 6d | 65 6e 74 20 76 61 72 69 |environm|ent vari|
|0000cdc0| 61 62 6c 65 2e 0a 20 2a | 0a 20 2a 20 52 65 76 69 |able.. *|. * Revi|
|0000cdd0| 73 69 6f 6e 20 31 2e 31 | 33 20 20 31 39 39 31 2f |sion 1.1|3 1991/|
|0000cde0| 31 31 2f 30 37 20 20 32 | 31 3a 34 30 3a 31 36 20 |11/07 2|1:40:16 |
|0000cdf0| 20 65 73 70 69 65 0a 20 | 2a 20 41 64 64 65 64 20 | espie. |* Added |
|0000ce00| 61 72 70 65 67 67 69 6f | 2e 0a 20 2a 0a 20 2a 20 |arpeggio|.. *. * |
|0000ce10| 52 65 76 69 73 69 6f 6e | 20 31 2e 31 32 20 20 31 |Revision| 1.12 1|
|0000ce20| 39 39 31 2f 31 31 2f 30 | 37 20 20 32 30 3a 31 32 |991/11/0|7 20:12|
|0000ce30| 3a 33 34 20 20 65 73 70 | 69 65 0a 20 2a 20 4d 69 |:34 esp|ie. * Mi|
|0000ce40| 6e 6f 72 20 70 72 6f 62 | 6c 65 6d 20 77 69 74 68 |nor prob|lem with|
|0000ce50| 20 76 65 72 73 69 6f 6e | 20 69 64 2e 0a 20 2a 0a | version| id.. *.|
|0000ce60| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 31 2e 31 31 | * Revis|ion 1.11|
|0000ce70| 20 20 31 39 39 31 2f 31 | 31 2f 30 37 20 20 32 30 | 1991/1|1/07 20|
|0000ce80| 3a 30 39 3a 30 36 20 20 | 65 73 70 69 65 0a 20 2a |:09:06 |espie. *|
|0000ce90| 20 41 64 64 65 64 20 65 | 6d 62 65 64 64 65 64 20 | Added e|mbedded |
|0000cea0| 76 65 72 73 69 6f 6e 20 | 69 64 2e 0a 20 2a 0a 20 |version |id.. *. |
|0000ceb0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 31 30 20 |* Revisi|on 1.10 |
|0000cec0| 20 31 39 39 31 2f 31 31 | 2f 30 37 20 20 32 30 3a | 1991/11|/07 20:|
|0000ced0| 30 35 3a 35 33 20 20 65 | 73 70 69 65 0a 20 2a 20 |05:53 e|spie. * |
|0000cee0| 41 64 64 65 64 20 76 69 | 62 73 6c 69 64 65 20 61 |Added vi|bslide a|
|0000cef0| 6e 64 20 70 6f 72 74 61 | 73 6c 69 64 65 2e 0a 20 |nd porta|slide.. |
|0000cf00| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|0000cf10| 39 20 20 31 39 39 31 2f | 31 31 2f 30 37 20 20 31 |9 1991/|11/07 1|
|0000cf20| 35 3a 32 37 3a 30 32 20 | 20 65 73 70 69 65 0a 20 |5:27:02 | espie. |
|0000cf30| 2a 20 41 64 64 65 64 20 | 73 70 65 65 64 20 63 6f |* Added |speed co|
|0000cf40| 6d 6d 61 6e 64 2e 0a 20 | 2a 20 41 64 64 65 64 20 |mmand.. |* Added |
|0000cf50| 73 69 67 6e 61 6c 20 63 | 6f 6e 74 72 6f 6c 2e 0a |signal c|ontrol..|
|0000cf60| 20 2a 20 45 72 72 6f 72 | 20 63 68 65 63 6b 69 6e | * Error| checkin|
|0000cf70| 67 3a 20 74 68 65 72 65 | 20 73 68 6f 75 6c 64 6e |g: there| shouldn|
|0000cf80| 27 74 20 62 65 20 74 68 | 61 74 20 6d 61 6e 79 0a |'t be th|at many.|
|0000cf90| 20 2a 20 73 65 67 76 20 | 73 69 67 6e 61 6c 73 20 | * segv |signals |
|0000cfa0| 61 6e 79 20 6d 6f 72 65 | 2e 0a 20 2a 0a 20 2a 20 |any more|.. *. * |
|0000cfb0| 52 65 76 69 73 69 6f 6e | 20 31 2e 38 20 20 31 39 |Revision| 1.8 19|
|0000cfc0| 39 31 2f 31 31 2f 30 36 | 20 20 30 39 3a 34 36 3a |91/11/06| 09:46:|
|0000cfd0| 30 36 20 20 65 73 70 69 | 65 0a 20 2a 20 4d 6f 76 |06 espi|e. * Mov|
|0000cfe0| 65 64 20 65 76 65 72 79 | 20 63 6f 6d 6d 61 6e 64 |ed every| command|
|0000cff0| 20 74 6f 20 63 6f 6d 6d | 61 6e 64 73 2e 63 2e 0a | to comm|ands.c..|
|0000d000| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 31 | *. * Re|vision 1|
|0000d010| 2e 37 20 20 31 39 39 31 | 2f 31 31 2f 30 36 20 20 |.7 1991|/11/06 |
|0000d020| 30 30 3a 30 33 3a 31 31 | 20 20 65 73 70 69 65 0a |00:03:11| espie.|
|0000d030| 20 2a 20 41 64 64 65 64 | 20 65 66 66 65 63 74 20 | * Added| effect |
|0000d040| 23 39 2c 20 63 68 61 6e | 67 65 20 6f 66 66 73 65 |#9, chan|ge offse|
|0000d050| 74 20 69 6e 20 73 61 6d | 70 6c 65 2e 0a 20 2a 20 |t in sam|ple.. * |
|0000d060| 49 74 20 73 65 65 6d 73 | 20 74 6f 20 77 6f 72 6b |It seems| to work|
|0000d070| 20 71 75 69 74 65 20 63 | 6f 72 72 65 63 74 6c 79 | quite c|orrectly|
|0000d080| 20 28 65 78 61 6d 70 6c | 65 3a 20 73 61 6d 70 6c | (exampl|e: sampl|
|0000d090| 65 64 20 61 6e 6e 69 65 | 29 2e 0a 20 2a 0a 20 2a |ed annie|).. *. *|
|0000d0a0| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 36 20 20 31 | Revisio|n 1.6 1|
|0000d0b0| 39 39 31 2f 31 31 2f 30 | 35 20 20 32 32 3a 34 39 |991/11/0|5 22:49|
|0000d0c0| 3a 30 33 20 20 65 73 70 | 69 65 0a 20 2a 20 41 64 |:03 esp|ie. * Ad|
|0000d0d0| 64 65 64 20 73 6f 6d 65 | 20 64 65 62 75 67 20 63 |ded some| debug c|
|0000d0e0| 6f 64 65 20 66 6f 72 20 | 73 68 6f 77 69 6e 67 20 |ode for |showing |
|0000d0f0| 74 68 65 20 66 75 6c 6c | 0a 20 2a 20 73 65 71 75 |the full|. * sequ|
|0000d100| 65 6e 63 65 20 66 6f 72 | 20 61 20 66 69 6c 65 2e |ence for| a file.|
|0000d110| 0a 20 2a 20 43 6f 72 72 | 65 63 74 65 64 20 74 68 |. * Corr|ected th|
|0000d120| 65 20 62 75 67 20 69 6e | 20 76 6f 6c 75 6d 65 20 |e bug in| volume |
|0000d130| 73 6c 69 64 65 3a 20 74 | 68 65 72 65 20 69 73 0a |slide: t|here is.|
|0000d140| 20 2a 20 6e 6f 20 64 65 | 66 61 75 6c 74 20 76 61 | * no de|fault va|
|0000d150| 6c 75 65 2c 20 69 2e 65 | 2e 2c 20 69 66 20 69 74 |lue, i.e|., if it|
|0000d160| 20 69 73 20 30 2c 20 69 | 74 20 69 73 20 30 2c 0a | is 0, i|t is 0,.|
|0000d170| 20 2a 20 61 73 20 73 74 | 75 70 69 64 20 61 73 20 | * as st|upid as |
|0000d180| 69 74 20 6d 61 79 20 73 | 65 65 6d 2e 0a 20 2a 20 |it may s|eem.. * |
|0000d190| 41 64 64 65 64 20 76 69 | 62 72 61 74 6f 2e 0a 20 |Added vi|brato.. |
|0000d1a0| 2a 20 41 64 64 65 64 20 | 66 61 73 74 73 6b 69 70 |* Added |fastskip|
|0000d1b0| 2f 63 6f 72 72 65 63 74 | 65 64 20 73 6b 69 70 2e |/correct|ed skip.|
|0000d1c0| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|0000d1d0| 31 2e 35 20 20 31 39 39 | 31 2f 31 31 2f 30 35 20 |1.5 199|1/11/05 |
|0000d1e0| 20 31 31 3a 31 34 3a 35 | 39 20 20 65 73 70 69 65 | 11:14:5|9 espie|
|0000d1f0| 0a 20 2a 20 4d 6f 64 69 | 66 69 65 64 20 63 6f 6e |. * Modi|fied con|
|0000d200| 74 72 6f 6c 20 66 6c 6f | 77 20 6f 66 20 74 68 65 |trol flo|w of the|
|0000d210| 20 70 6c 61 79 65 72 20 | 74 69 6c 6c 0a 20 2a 20 | player |till. * |
|0000d220| 69 74 20 6c 6f 6f 6b 73 | 20 6c 69 6b 65 20 73 6f |it looks| like so|
|0000d230| 6d 65 74 68 69 6e 67 20 | 72 65 61 73 6f 6e 61 62 |mething |reasonab|
|0000d240| 6c 65 20 28 69 2e 65 2e | 2c 0a 20 2a 20 74 68 65 |le (i.e.|,. * the|
|0000d250| 20 73 74 72 75 63 74 75 | 72 65 20 69 73 20 6d 6f | structu|re is mo|
|0000d260| 72 65 20 6e 61 74 75 72 | 61 6c 20 61 6e 64 20 72 |re natur|al and r|
|0000d270| 65 66 6c 65 63 74 73 0a | 20 2a 20 74 68 65 20 77 |eflects.| * the w|
|0000d280| 61 79 20 73 74 75 66 66 | 20 69 73 20 70 6c 61 79 |ay stuff| is play|
|0000d290| 65 64 20 61 63 74 75 61 | 6c 6c 79 2e 2e 2e 29 0a |ed actua|lly...).|
|0000d2a0| 20 2a 0a 20 2a 20 41 64 | 64 65 64 20 73 6f 6d 65 | *. * Ad|ded some|
|0000d2b0| 20 23 64 65 66 69 6e 65 | 20 66 6f 72 20 61 20 73 | #define| for a s|
|0000d2c0| 6c 69 67 68 74 6c 79 20 | 68 69 67 68 65 72 20 6c |lightly |higher l|
|0000d2d0| 65 76 65 6c 0a 20 2a 20 | 6f 66 20 61 62 73 74 72 |evel. * |of abstr|
|0000d2e0| 61 63 74 69 6f 6e 20 28 | 20 3a 2d 29 20 20 20 20 |action (| :-) |
|0000d2f0| 29 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |).. *. *| Revisio|
|0000d300| 6e 20 31 2e 34 20 20 31 | 39 39 31 2f 31 31 2f 30 |n 1.4 1|991/11/0|
|0000d310| 34 20 20 32 30 3a 32 37 | 3a 30 35 20 20 65 73 70 |4 20:27|:05 esp|
|0000d320| 69 65 0a 20 2a 20 44 6f | 20 6e 6f 74 20 72 65 73 |ie. * Do| not res|
|0000d330| 74 61 72 74 20 74 68 65 | 20 73 6f 75 6e 64 20 77 |tart the| sound w|
|0000d340| 68 65 6e 20 77 65 20 63 | 68 61 6e 67 65 20 69 6e |hen we c|hange in|
|0000d350| 73 74 72 75 6d 65 6e 74 | 73 0a 20 2a 20 6f 6e 20 |strument|s. * on |
|0000d360| 74 68 65 20 66 6c 79 2e | 20 41 20 62 69 74 20 73 |the fly.| A bit s|
|0000d370| 74 72 61 6e 67 65 2c 20 | 62 75 74 20 69 74 20 77 |trange, |but it w|
|0000d380| 6f 72 6b 73 20 74 68 61 | 74 20 77 61 79 2e 0a 20 |orks tha|t way.. |
|0000d390| 2a 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |*. * Rev|ision 1.|
|0000d3a0| 33 20 20 31 39 39 31 2f | 31 31 2f 30 34 20 20 31 |3 1991/|11/04 1|
|0000d3b0| 33 3a 32 33 3a 35 39 20 | 20 65 73 70 69 65 0a 20 |3:23:59 | espie. |
|0000d3c0| 2a 20 4d 6f 64 69 66 69 | 65 64 20 6d 61 69 6e 20 |* Modifi|ed main |
|0000d3d0| 74 6f 20 75 73 65 20 6e | 65 77 20 64 61 74 61 20 |to use n|ew data |
|0000d3e0| 73 74 72 75 63 74 75 72 | 65 73 2e 0a 20 2a 20 54 |structur|es.. * T|
|0000d3f0| 68 65 20 73 6f 75 6e 64 | 20 70 6c 61 79 65 72 20 |he sound| player |
|0000d400| 69 73 20 4d 55 43 48 20 | 63 6c 65 61 6e 65 72 2c |is MUCH |cleaner,|
|0000d410| 20 69 74 20 75 73 65 73 | 20 6e 6f 77 0a 20 2a 20 | it uses| now. * |
|0000d420| 61 20 33 2d 73 74 61 74 | 65 20 61 75 74 6f 6d 61 |a 3-stat|e automa|
|0000d430| 74 6f 6e 20 66 6f 72 20 | 65 61 63 68 20 76 6f 69 |ton for |each voi|
|0000d440| 63 65 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |ce.. *. |* Revisi|
|0000d450| 6f 6e 20 31 2e 32 20 20 | 31 39 39 31 2f 31 31 2f |on 1.2 |1991/11/|
|0000d460| 30 34 20 20 30 38 3a 30 | 31 3a 32 30 20 20 65 73 |04 08:0|1:20 es|
|0000d470| 70 69 65 0a 20 2a 20 43 | 6f 72 72 65 63 74 65 64 |pie. * C|orrected|
|0000d480| 20 72 75 63 6b 75 73 20 | 77 69 74 68 20 64 61 74 | ruckus |with dat|
|0000d490| 61 20 74 79 70 65 20 6f | 66 20 73 61 6d 70 6c 65 |a type o|f sample|
|0000d4a0| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|0000d4b0| 20 31 2e 31 20 20 31 39 | 39 31 2f 31 31 2f 30 33 | 1.1 19|91/11/03|
|0000d4c0| 20 20 32 32 3a 34 37 3a | 30 35 20 20 65 73 70 69 | 22:47:|05 espi|
|0000d4d0| 65 0a 20 2a 20 49 6e 69 | 74 69 61 6c 20 72 65 76 |e. * Ini|tial rev|
|0000d4e0| 69 73 69 6f 6e 0a 20 2a | 0a 20 2a 0a 20 2a 2f 0a |ision. *|. *. */.|
|0000d4f0| 20 20 20 20 20 0a 73 74 | 61 74 69 63 20 63 68 61 | .st|atic cha|
|0000d500| 72 20 2a 69 64 20 3d 20 | 22 24 49 64 3a 20 73 74 |r *id = |"$Id: st|
|0000d510| 72 33 32 2e 63 2c 76 20 | 32 2e 39 20 31 39 39 31 |r32.c,v |2.9 1991|
|0000d520| 2f 31 32 2f 30 34 20 30 | 38 3a 32 38 3a 35 33 20 |/12/04 0|8:28:53 |
|0000d530| 65 73 70 69 65 20 45 78 | 70 20 65 73 70 69 65 20 |espie Ex|p espie |
|0000d540| 24 22 3b 0a 0a 23 69 6e | 63 6c 75 64 65 20 3c 73 |$";..#in|clude <s|
|0000d550| 74 64 69 6f 2e 68 3e 0a | 23 69 6e 63 6c 75 64 65 |tdio.h>.|#include|
|0000d560| 20 3c 73 69 67 6e 61 6c | 2e 68 3e 0a 23 69 6e 63 | <signal|.h>.#inc|
|0000d570| 6c 75 64 65 20 3c 73 74 | 64 6c 69 62 2e 68 3e 0a |lude <st|dlib.h>.|
|0000d580| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 72 69 6e 67 |#include| <string|
|0000d590| 2e 68 3e 0a 20 20 20 20 | 20 0a 2f 2a 20 74 68 69 |.h>. | ./* thi|
|0000d5a0| 73 20 73 68 6f 75 6c 64 | 20 62 65 20 69 6e 20 67 |s should| be in g|
|0000d5b0| 65 74 6f 70 74 2e 68 2c | 20 62 75 74 20 73 70 61 |etopt.h,| but spa|
|0000d5c0| 72 63 20 64 6f 65 73 6e | 27 74 20 6b 6e 6f 77 20 |rc doesn|'t know |
|0000d5d0| 69 74 2e 2e 2e 20 2a 2f | 0a 0a 65 78 74 65 72 6e |it... */|..extern|
|0000d5e0| 20 69 6e 74 20 67 65 74 | 6f 70 74 28 29 3b 0a 65 | int get|opt();.e|
|0000d5f0| 78 74 65 72 6e 20 63 68 | 61 72 20 2a 6f 70 74 61 |xtern ch|ar *opta|
|0000d600| 72 67 3b 0a 65 78 74 65 | 72 6e 20 69 6e 74 20 6f |rg;.exte|rn int o|
|0000d610| 70 74 69 6e 64 2c 20 6f | 70 74 65 72 72 3b 0a 0a |ptind, o|pterr;..|
|0000d620| 23 69 6e 63 6c 75 64 65 | 20 22 65 78 74 65 72 6e |#include| "extern|
|0000d630| 2e 68 22 0a 23 69 6e 63 | 6c 75 64 65 20 22 6d 61 |.h".#inc|lude "ma|
|0000d640| 63 68 69 6e 65 2e 68 22 | 0a 23 69 6e 63 6c 75 64 |chine.h"|.#includ|
|0000d650| 65 20 22 73 6f 6e 67 2e | 68 22 0a 23 69 6e 63 6c |e "song.|h".#incl|
|0000d660| 75 64 65 20 22 70 72 65 | 66 2e 68 22 0a 20 20 20 |ude "pre|f.h". |
|0000d670| 20 20 0a 20 20 20 20 20 | 0a 2f 2a 20 67 6c 6f 62 | . |./* glob|
|0000d680| 61 6c 20 76 61 72 69 61 | 62 6c 65 20 74 6f 20 63 |al varia|ble to c|
|0000d690| 61 74 63 68 20 76 61 72 | 69 6f 75 73 20 74 79 70 |atch var|ious typ|
|0000d6a0| 65 73 20 6f 66 20 65 72 | 72 6f 72 73 0a 20 2a 20 |es of er|rors. * |
|0000d6b0| 61 6e 64 20 61 63 68 69 | 65 76 65 20 74 68 65 20 |and achi|eve the |
|0000d6c0| 64 65 73 69 72 65 64 20 | 66 6c 6f 77 20 6f 66 20 |desired |flow of |
|0000d6d0| 63 6f 6e 74 72 6f 6c 0a | 20 2a 2f 0a 69 6e 74 20 |control.| */.int |
|0000d6e0| 65 72 72 6f 72 3b 0a 0a | 2f 2a 20 73 69 67 6e 61 |error;..|/* signa|
|0000d6f0| 6c 20 68 61 6e 64 6c 65 | 72 73 20 2a 2f 0a 0a 76 |l handle|rs */..v|
|0000d700| 6f 69 64 20 67 6f 6f 64 | 62 79 65 28 73 69 67 29 |oid good|bye(sig)|
|0000d710| 0a 69 6e 74 20 73 69 67 | 3b 0a 20 20 20 20 7b 0a |.int sig|;. {.|
|0000d720| 20 20 20 20 70 72 69 6e | 74 66 28 22 5c 6e 53 69 | prin|tf("\nSi|
|0000d730| 67 6e 61 6c 20 25 64 5c | 6e 22 2c 20 73 69 67 29 |gnal %d\|n", sig)|
|0000d740| 3b 0a 20 20 20 20 65 78 | 69 74 28 31 30 29 3b 0a |;. ex|it(10);.|
|0000d750| 20 20 20 20 7d 0a 0a 76 | 6f 69 64 20 6e 65 78 74 | }..v|oid next|
|0000d760| 73 6f 6e 67 28 73 69 67 | 29 0a 69 6e 74 20 73 69 |song(sig|).int si|
|0000d770| 67 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 70 72 69 |g;. {|. pri|
|0000d780| 6e 74 66 28 22 5c 6e 53 | 69 67 6e 61 6c 20 25 64 |ntf("\nS|ignal %d|
|0000d790| 5c 6e 22 2c 20 73 69 67 | 29 3b 0a 20 20 20 20 73 |\n", sig|);. s|
|0000d7a0| 69 67 6e 61 6c 28 73 69 | 67 2c 20 6e 65 78 74 73 |ignal(si|g, nexts|
|0000d7b0| 6f 6e 67 29 3b 0a 20 20 | 20 20 65 72 72 6f 72 20 |ong);. | error |
|0000d7c0| 3d 20 4e 45 58 54 5f 53 | 4f 4e 47 3b 0a 20 20 20 |= NEXT_S|ONG;. |
|0000d7d0| 20 7d 0a 0a 2f 2a 20 76 | 20 3d 20 72 65 61 64 5f | }../* v| = read_|
|0000d7e0| 65 6e 76 28 6e 61 6d 65 | 2c 20 64 65 66 61 75 6c |env(name|, defaul|
|0000d7f0| 74 29 3a 20 72 65 61 64 | 73 20 74 68 65 20 76 61 |t): read|s the va|
|0000d800| 6c 75 65 20 76 0a 20 2a | 20 69 6e 20 74 68 65 20 |lue v. *| in the |
|0000d810| 65 6e 76 69 72 6f 6e 6d | 65 6e 74 2c 20 73 75 70 |environm|ent, sup|
|0000d820| 70 6c 69 65 73 20 61 20 | 64 65 66 61 75 6c 74 73 |plies a |defaults|
|0000d830| 2e 0a 20 2a 2f 0a 69 6e | 74 20 72 65 61 64 5f 65 |.. */.in|t read_e|
|0000d840| 6e 76 28 6e 61 6d 65 2c | 20 64 65 66 29 0a 63 68 |nv(name,| def).ch|
|0000d850| 61 72 20 2a 6e 61 6d 65 | 3b 0a 69 6e 74 20 64 65 |ar *name|;.int de|
|0000d860| 66 3b 0a 20 20 20 20 7b | 0a 20 20 20 20 63 68 61 |f;. {|. cha|
|0000d870| 72 20 2a 76 61 72 3b 0a | 20 20 20 20 69 6e 74 20 |r *var;.| int |
|0000d880| 76 61 6c 75 65 3b 0a 0a | 20 20 20 20 76 61 72 20 |value;..| var |
|0000d890| 3d 20 67 65 74 65 6e 76 | 28 6e 61 6d 65 29 3b 0a |= getenv|(name);.|
|0000d8a0| 20 20 20 20 69 66 20 28 | 21 76 61 72 29 0a 20 20 | if (|!var). |
|0000d8b0| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 64 65 66 | re|turn def|
|0000d8c0| 3b 0a 20 20 20 20 69 66 | 20 28 73 73 63 61 6e 66 |;. if| (sscanf|
|0000d8d0| 28 76 61 72 2c 20 22 25 | 64 22 2c 20 26 76 61 6c |(var, "%|d", &val|
|0000d8e0| 75 65 29 20 3d 3d 20 31 | 29 0a 20 20 20 20 20 20 |ue) == 1|). |
|0000d8f0| 20 20 72 65 74 75 72 6e | 20 76 61 6c 75 65 3b 0a | return| value;.|
|0000d900| 20 20 20 20 65 6c 73 65 | 0a 20 20 20 20 20 20 20 | else|. |
|0000d910| 20 72 65 74 75 72 6e 20 | 64 65 66 3b 0a 20 20 20 | return |def;. |
|0000d920| 20 7d 0a 0a 2f 2a 2a 2a | 0a 20 2a 0a 20 2a 20 20 | }../***|. *. * |
|0000d930| 48 61 6e 64 6c 69 6e 67 | 20 63 6f 6d 70 72 65 73 |Handling| compres|
|0000d940| 73 65 64 20 6d 6f 64 75 | 6c 65 73 2e 0a 20 2a 0a |sed modu|les.. *.|
|0000d950| 20 2a 2a 2a 2f 0a 20 0a | 69 6e 74 20 63 68 65 63 | ***/. .|int chec|
|0000d960| 6b 5f 5a 28 73 29 0a 63 | 68 61 72 20 2a 73 3b 0a |k_Z(s).c|har *s;.|
|0000d970| 20 20 20 20 7b 0a 20 20 | 20 20 69 6e 74 20 69 3b | {. | int i;|
|0000d980| 0a 0a 20 20 20 20 69 20 | 3d 20 73 74 72 6c 65 6e |.. i |= strlen|
|0000d990| 28 73 29 3b 0a 20 20 20 | 20 69 66 20 28 69 20 3c |(s);. | if (i <|
|0000d9a0| 20 32 29 0a 20 20 20 20 | 20 20 20 20 72 65 74 75 | 2). | retu|
|0000d9b0| 72 6e 20 30 3b 0a 20 20 | 20 20 72 65 74 75 72 6e |rn 0;. | return|
|0000d9c0| 20 73 5b 69 2d 31 5d 20 | 3d 3d 20 27 5a 27 20 26 | s[i-1] |== 'Z' &|
|0000d9d0| 26 20 73 5b 69 2d 32 5d | 20 3d 3d 20 27 2e 27 3b |& s[i-2]| == '.';|
|0000d9e0| 0a 20 20 20 20 7d 0a 0a | 69 6e 74 20 63 68 65 63 |. }..|int chec|
|0000d9f0| 6b 5f 7a 6f 6f 28 73 29 | 0a 63 68 61 72 20 2a 73 |k_zoo(s)|.char *s|
|0000da00| 3b 0a 20 20 20 20 7b 0a | 20 20 20 20 69 6e 74 20 |;. {.| int |
|0000da10| 69 3b 0a 0a 20 20 20 20 | 69 20 3d 20 73 74 72 6c |i;.. |i = strl|
|0000da20| 65 6e 28 73 29 3b 0a 20 | 20 20 20 69 66 20 28 69 |en(s);. | if (i|
|0000da30| 20 3c 20 34 29 0a 20 20 | 20 20 20 20 20 20 72 65 | < 4). | re|
|0000da40| 74 75 72 6e 20 30 3b 0a | 20 20 20 20 72 65 74 75 |turn 0;.| retu|
|0000da50| 72 6e 20 73 5b 69 2d 31 | 5d 20 3d 3d 20 27 6f 27 |rn s[i-1|] == 'o'|
|0000da60| 20 26 26 20 73 5b 69 2d | 32 5d 20 3d 3d 20 27 6f | && s[i-|2] == 'o|
|0000da70| 27 20 26 26 20 73 5b 69 | 2d 33 5d 20 3d 3d 20 27 |' && s[i|-3] == '|
|0000da80| 7a 27 20 26 26 20 73 5b | 69 2d 34 5d 20 3d 3d 20 |z' && s[|i-4] == |
|0000da90| 27 2e 27 3b 0a 20 20 20 | 20 7d 0a 0a 2f 2a 20 73 |'.';. | }../* s|
|0000daa0| 6d 61 6c 6c 20 68 61 63 | 6b 20 66 6f 72 20 74 72 |mall hac|k for tr|
|0000dab0| 61 6e 73 70 6f 73 69 6e | 67 20 73 6f 6e 67 73 20 |ansposin|g songs |
|0000dac0| 6f 6e 20 74 68 65 20 66 | 6c 79 20 2a 2f 0a 73 74 |on the f|ly */.st|
|0000dad0| 61 74 69 63 20 69 6e 74 | 20 74 72 61 6e 73 70 6f |atic int| transpo|
|0000dae0| 73 65 3b 0a 0a 73 74 72 | 75 63 74 20 73 6f 6e 67 |se;..str|uct song|
|0000daf0| 20 2a 64 6f 5f 72 65 61 | 64 5f 73 6f 6e 67 28 73 | *do_rea|d_song(s|
|0000db00| 2c 20 74 79 70 65 29 0a | 63 68 61 72 20 2a 73 3b |, type).|char *s;|
|0000db10| 0a 69 6e 74 20 74 79 70 | 65 3b 0a 20 20 20 20 7b |.int typ|e;. {|
|0000db20| 0a 20 20 20 20 73 74 72 | 75 63 74 20 73 6f 6e 67 |. str|uct song|
|0000db30| 20 2a 73 6f 6e 67 3b 0a | 20 20 20 20 46 49 4c 45 | *song;.| FILE|
|0000db40| 20 2a 66 70 3b 0a 0a 20 | 20 20 20 70 72 69 6e 74 | *fp;.. | print|
|0000db50| 66 28 22 28 25 73 29 2e | 2e 2e 22 2c 20 73 29 3b |f("(%s).|..", s);|
|0000db60| 0a 20 20 20 20 66 66 6c | 75 73 68 28 73 74 64 6f |. ffl|ush(stdo|
|0000db70| 75 74 29 3b 0a 0a 20 20 | 20 20 69 66 20 28 63 68 |ut);.. | if (ch|
|0000db80| 65 63 6b 5f 5a 28 73 29 | 29 0a 20 20 20 20 20 20 |eck_Z(s)|). |
|0000db90| 20 20 7b 0a 20 20 20 20 | 20 20 20 20 63 68 61 72 | {. | char|
|0000dba0| 20 70 69 70 65 5b 32 30 | 30 5d 3b 0a 0a 20 20 20 | pipe[20|0];.. |
|0000dbb0| 20 20 20 20 20 73 70 72 | 69 6e 74 66 28 70 69 70 | spr|intf(pip|
|0000dbc0| 65 2c 20 22 7a 63 61 74 | 20 25 73 22 2c 20 73 29 |e, "zcat| %s", s)|
|0000dbd0| 3b 0a 20 20 20 20 20 20 | 20 20 66 70 20 3d 20 70 |;. | fp = p|
|0000dbe0| 6f 70 65 6e 28 70 69 70 | 65 2c 20 22 72 22 29 3b |open(pip|e, "r");|
|0000dbf0| 0a 20 20 20 20 20 20 20 | 20 69 66 20 28 66 70 20 |. | if (fp |
|0000dc00| 3d 3d 20 4e 55 4c 4c 29 | 0a 20 20 20 20 20 20 20 |== NULL)|. |
|0000dc10| 20 20 20 20 20 7b 0a 20 | 20 20 20 20 20 20 20 20 | {. | |
|0000dc20| 20 20 20 66 70 72 69 6e | 74 66 28 73 74 64 65 72 | fprin|tf(stder|
|0000dc30| 72 2c 20 22 55 6e 61 62 | 6c 65 20 74 6f 20 6f 70 |r, "Unab|le to op|
|0000dc40| 65 6e 20 74 75 6e 65 20 | 66 69 6c 65 20 25 73 5c |en tune |file %s\|
|0000dc50| 6e 22 2c 20 73 29 3b 0a | 20 20 20 20 20 20 20 20 |n", s);.| |
|0000dc60| 20 20 20 20 72 65 74 75 | 72 6e 20 4e 55 4c 4c 3b | retu|rn NULL;|
|0000dc70| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 0a 20 |. | }. |
|0000dc80| 20 20 20 20 20 20 20 73 | 6f 6e 67 20 3d 20 72 65 | s|ong = re|
|0000dc90| 61 64 5f 73 6f 6e 67 28 | 66 70 2c 20 74 79 70 65 |ad_song(|fp, type|
|0000dca0| 2c 20 74 72 61 6e 73 70 | 6f 73 65 29 3b 20 0a 20 |, transp|ose); . |
|0000dcb0| 20 20 20 20 20 20 20 70 | 63 6c 6f 73 65 28 66 70 | p|close(fp|
|0000dcc0| 29 3b 20 0a 20 20 20 20 | 20 20 20 20 7d 0a 20 20 |); . | }. |
|0000dcd0| 20 20 65 6c 73 65 20 69 | 66 20 28 63 68 65 63 6b | else i|f (check|
|0000dce0| 5f 7a 6f 6f 28 73 29 29 | 0a 20 20 20 20 20 20 20 |_zoo(s))|. |
|0000dcf0| 20 7b 0a 20 20 20 20 20 | 20 20 20 63 68 61 72 20 | {. | char |
|0000dd00| 70 69 70 65 5b 32 30 30 | 5d 3b 0a 0a 20 20 20 20 |pipe[200|];.. |
|0000dd10| 20 20 20 20 73 70 72 69 | 6e 74 66 28 70 69 70 65 | spri|ntf(pipe|
|0000dd20| 2c 20 22 7a 6f 6f 20 78 | 70 71 20 25 73 22 2c 20 |, "zoo x|pq %s", |
|0000dd30| 73 29 3b 0a 20 20 20 20 | 20 20 20 20 66 70 20 3d |s);. | fp =|
|0000dd40| 20 70 6f 70 65 6e 28 70 | 69 70 65 2c 20 22 72 22 | popen(p|ipe, "r"|
|0000dd50| 29 3b 0a 20 20 20 20 20 | 20 20 20 69 66 20 28 66 |);. | if (f|
|0000dd60| 70 20 3d 3d 20 4e 55 4c | 4c 29 0a 20 20 20 20 20 |p == NUL|L). |
|0000dd70| 20 20 20 20 20 20 20 7b | 0a 20 20 20 20 20 20 20 | {|. |
|0000dd80| 20 20 20 20 20 66 70 72 | 69 6e 74 66 28 73 74 64 | fpr|intf(std|
|0000dd90| 65 72 72 2c 20 22 55 6e | 61 62 6c 65 20 74 6f 20 |err, "Un|able to |
|0000dda0| 6f 70 65 6e 20 74 75 6e | 65 20 66 69 6c 65 20 25 |open tun|e file %|
|0000ddb0| 73 5c 6e 22 2c 20 73 29 | 3b 0a 20 20 20 20 20 20 |s\n", s)|;. |
|0000ddc0| 20 20 20 20 20 20 72 65 | 74 75 72 6e 20 4e 55 4c | re|turn NUL|
|0000ddd0| 4c 3b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 7d |L;. | }|
|0000dde0| 0a 20 20 20 20 20 20 20 | 20 73 6f 6e 67 20 3d 20 |. | song = |
|0000ddf0| 72 65 61 64 5f 73 6f 6e | 67 28 66 70 2c 20 74 79 |read_son|g(fp, ty|
|0000de00| 70 65 2c 20 74 72 61 6e | 73 70 6f 73 65 29 3b 20 |pe, tran|spose); |
|0000de10| 0a 20 20 20 20 20 20 20 | 20 70 63 6c 6f 73 65 28 |. | pclose(|
|0000de20| 66 70 29 3b 20 0a 20 20 | 20 20 20 20 20 20 7d 0a |fp); . | }.|
|0000de30| 20 20 20 20 65 6c 73 65 | 0a 20 20 20 20 20 20 20 | else|. |
|0000de40| 20 7b 0a 20 20 20 20 20 | 20 20 20 66 70 20 3d 20 | {. | fp = |
|0000de50| 66 6f 70 65 6e 28 73 2c | 20 22 72 22 29 3b 0a 20 |fopen(s,| "r");. |
|0000de60| 20 20 20 20 20 20 20 69 | 66 20 28 66 70 20 3d 3d | i|f (fp ==|
|0000de70| 20 4e 55 4c 4c 29 0a 20 | 20 20 20 20 20 20 20 20 | NULL). | |
|0000de80| 20 20 20 7b 0a 20 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|0000de90| 20 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c | fprintf|(stderr,|
|0000dea0| 20 22 55 6e 61 62 6c 65 | 20 74 6f 20 6f 70 65 6e | "Unable| to open|
|0000deb0| 20 74 75 6e 65 20 66 69 | 6c 65 20 25 73 5c 6e 22 | tune fi|le %s\n"|
|0000dec0| 2c 20 73 29 3b 0a 20 20 | 20 20 20 20 20 20 20 20 |, s);. | |
|0000ded0| 20 20 72 65 74 75 72 6e | 20 4e 55 4c 4c 3b 0a 20 | return| NULL;. |
|0000dee0| 20 20 20 20 20 20 20 20 | 20 20 20 7d 0a 20 20 20 | | }. |
|0000def0| 20 20 20 20 20 73 6f 6e | 67 20 3d 20 72 65 61 64 | son|g = read|
|0000df00| 5f 73 6f 6e 67 28 66 70 | 2c 20 74 79 70 65 2c 20 |_song(fp|, type, |
|0000df10| 74 72 61 6e 73 70 6f 73 | 65 29 3b 20 0a 20 20 20 |transpos|e); . |
|0000df20| 20 20 20 20 20 66 63 6c | 6f 73 65 28 66 70 29 3b | fcl|ose(fp);|
|0000df30| 20 0a 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 | . | }. |
|0000df40| 69 66 20 28 73 6f 6e 67 | 29 0a 20 20 20 20 20 20 |if (song|). |
|0000df50| 20 20 70 72 69 6e 74 66 | 28 22 4f 6b 21 5c 6e 22 | printf|("Ok!\n"|
|0000df60| 29 3b 0a 20 20 20 20 72 | 65 74 75 72 6e 20 73 6f |);. r|eturn so|
|0000df70| 6e 67 3b 0a 20 20 20 20 | 7d 0a 0a 69 6e 74 20 6f |ng;. |}..int o|
|0000df80| 70 74 76 61 6c 75 65 28 | 64 65 66 29 0a 69 6e 74 |ptvalue(|def).int|
|0000df90| 20 64 65 66 3b 0a 20 20 | 20 20 7b 0a 20 20 20 20 | def;. | {. |
|0000dfa0| 69 6e 74 20 64 3b 0a 20 | 20 20 20 20 20 20 20 69 |int d;. | i|
|0000dfb0| 66 20 28 73 73 63 61 6e | 66 28 6f 70 74 61 72 67 |f (sscan|f(optarg|
|0000dfc0| 2c 20 22 25 64 22 2c 20 | 26 64 29 20 3d 3d 20 31 |, "%d", |&d) == 1|
|0000dfd0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 72 65 |). | re|
|0000dfe0| 74 75 72 6e 20 64 3b 0a | 20 20 20 20 20 20 20 20 |turn d;.| |
|0000dff0| 65 6c 73 65 0a 20 20 20 | 20 20 20 20 20 20 20 20 |else. | |
|0000e000| 20 7b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 6f | {. | o|
|0000e010| 70 74 69 6e 64 2d 2d 3b | 0a 20 20 20 20 20 20 20 |ptind--;|. |
|0000e020| 20 20 20 20 20 72 65 74 | 75 72 6e 20 64 65 66 3b | ret|urn def;|
|0000e030| 0a 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 0a 20 |. | }. |
|0000e040| 20 20 20 7d 0a 0a 69 6e | 74 20 6d 61 69 6e 20 28 | }..in|t main (|
|0000e050| 61 72 67 63 2c 20 61 72 | 67 76 29 0a 69 6e 74 20 |argc, ar|gv).int |
|0000e060| 61 72 67 63 3b 0a 63 68 | 61 72 20 2a 2a 61 72 67 |argc;.ch|ar **arg|
|0000e070| 76 3b 0a 20 20 20 20 7b | 0a 0a 20 20 20 20 69 6e |v;. {|.. in|
|0000e080| 74 20 66 72 65 71 75 65 | 6e 63 79 3b 0a 20 20 20 |t freque|ncy;. |
|0000e090| 20 69 6e 74 20 6f 76 65 | 72 73 61 6d 70 6c 65 3b | int ove|rsample;|
|0000e0a0| 0a 0a 20 20 20 20 73 74 | 72 75 63 74 20 70 72 65 |.. st|ruct pre|
|0000e0b0| 66 20 70 72 65 66 3b 0a | 20 20 20 20 73 74 72 75 |f pref;.| stru|
|0000e0c0| 63 74 20 73 6f 6e 67 20 | 2a 73 6f 6e 67 3b 0a 0a |ct song |*song;..|
|0000e0d0| 20 20 20 20 69 6e 74 20 | 69 6e 64 65 78 3b 0a 20 | int |index;. |
|0000e0e0| 20 20 20 69 6e 74 20 63 | 3b 0a 20 20 20 20 69 6e | int c|;. in|
|0000e0f0| 74 20 64 65 66 61 75 6c | 74 5f 74 79 70 65 3b 0a |t defaul|t_type;.|
|0000e100| 0a 20 20 20 20 73 69 67 | 6e 61 6c 28 32 2c 20 6e |. sig|nal(2, n|
|0000e110| 65 78 74 73 6f 6e 67 29 | 3b 0a 20 20 20 20 73 69 |extsong)|;. si|
|0000e120| 67 6e 61 6c 28 33 2c 20 | 67 6f 6f 64 62 79 65 29 |gnal(3, |goodbye)|
|0000e130| 3b 0a 0a 20 20 20 20 66 | 72 65 71 75 65 6e 63 79 |;.. f|requency|
|0000e140| 20 3d 20 72 65 61 64 5f | 65 6e 76 28 22 46 52 45 | = read_|env("FRE|
|0000e150| 51 55 45 4e 43 59 22 2c | 20 30 29 3b 0a 20 20 20 |QUENCY",| 0);. |
|0000e160| 20 6f 76 65 72 73 61 6d | 70 6c 65 20 3d 20 72 65 | oversam|ple = re|
|0000e170| 61 64 5f 65 6e 76 28 22 | 4f 56 45 52 53 41 4d 50 |ad_env("|OVERSAMP|
|0000e180| 4c 45 22 2c 20 31 29 3b | 0a 20 20 20 20 74 72 61 |LE", 1);|. tra|
|0000e190| 6e 73 70 6f 73 65 20 3d | 20 72 65 61 64 5f 65 6e |nspose =| read_en|
|0000e1a0| 76 28 22 54 52 41 4e 53 | 50 4f 53 45 22 2c 20 30 |v("TRANS|POSE", 0|
|0000e1b0| 29 3b 0a 0a 20 20 20 20 | 66 72 65 71 75 65 6e 63 |);.. |frequenc|
|0000e1c0| 79 20 3d 20 6f 70 65 6e | 5f 61 75 64 69 6f 28 66 |y = open|_audio(f|
|0000e1d0| 72 65 71 75 65 6e 63 79 | 29 3b 0a 0a 20 20 20 20 |requency|);.. |
|0000e1e0| 69 6e 69 74 5f 70 6c 61 | 79 65 72 28 6f 76 65 72 |init_pla|yer(over|
|0000e1f0| 73 61 6d 70 6c 65 2c 20 | 66 72 65 71 75 65 6e 63 |sample, |frequenc|
|0000e200| 79 29 3b 0a 0a 20 20 20 | 20 20 20 20 20 2f 2a 20 |y);.. | /* |
|0000e210| 63 68 65 63 6b 20 74 68 | 65 20 63 6f 6d 6d 61 6e |check th|e comman|
|0000e220| 64 20 6e 61 6d 65 20 66 | 6f 72 20 64 65 66 61 75 |d name f|or defau|
|0000e230| 6c 74 20 72 65 61 64 69 | 6e 67 20 74 79 70 65 20 |lt readi|ng type |
|0000e240| 2a 2f 0a 20 20 20 20 69 | 66 20 28 73 74 72 63 6d |*/. i|f (strcm|
|0000e250| 70 28 61 72 67 76 5b 30 | 5d 2c 20 22 6f 74 72 61 |p(argv[0|], "otra|
|0000e260| 63 6b 65 72 22 29 20 3d | 3d 20 30 29 0a 20 20 20 |cker") =|= 0). |
|0000e270| 20 20 20 20 20 64 65 66 | 61 75 6c 74 5f 74 79 70 | def|ault_typ|
|0000e280| 65 20 3d 20 4f 4c 44 3b | 0a 20 20 20 20 65 6c 73 |e = OLD;|. els|
|0000e290| 65 20 69 66 20 28 73 74 | 72 63 6d 70 28 61 72 67 |e if (st|rcmp(arg|
|0000e2a0| 76 5b 30 5d 2c 20 22 6e | 74 72 61 63 6b 65 72 22 |v[0], "n|tracker"|
|0000e2b0| 29 20 3d 3d 20 30 29 0a | 20 20 20 20 20 20 20 20 |) == 0).| |
|0000e2c0| 64 65 66 61 75 6c 74 5f | 74 79 70 65 20 3d 20 4e |default_|type = N|
|0000e2d0| 45 57 3b 0a 20 20 20 20 | 65 6c 73 65 0a 20 20 20 |EW;. |else. |
|0000e2e0| 20 20 20 20 20 64 65 66 | 61 75 6c 74 5f 74 79 70 | def|ault_typ|
|0000e2f0| 65 20 3d 20 42 4f 54 48 | 3b 0a 0a 20 20 20 20 70 |e = BOTH|;.. p|
|0000e300| 72 65 66 2e 74 79 70 65 | 20 3d 20 64 65 66 61 75 |ref.type| = defau|
|0000e310| 6c 74 5f 74 79 70 65 3b | 0a 20 20 20 20 70 72 65 |lt_type;|. pre|
|0000e320| 66 2e 72 65 70 65 61 74 | 73 20 3d 20 31 3b 0a 20 |f.repeat|s = 1;. |
|0000e330| 20 20 20 70 72 65 66 2e | 73 70 65 65 64 20 3d 20 | pref.|speed = |
|0000e340| 35 30 3b 0a 20 20 20 20 | 70 72 65 66 2e 74 6f 6c |50;. |pref.tol|
|0000e350| 65 72 61 74 65 20 3d 20 | 31 3b 0a 0a 20 20 20 20 |erate = |1;.. |
|0000e360| 66 6f 72 20 28 6f 70 74 | 69 6e 64 20 3d 20 31 3b |for (opt|ind = 1;|
|0000e370| 20 6f 70 74 69 6e 64 20 | 3c 20 61 72 67 63 3b 20 | optind |< argc; |
|0000e380| 6f 70 74 69 6e 64 2b 2b | 29 0a 20 20 20 20 20 20 |optind++|). |
|0000e390| 20 20 7b 0a 20 20 20 20 | 20 20 20 20 77 68 69 6c | {. | whil|
|0000e3a0| 65 20 28 28 63 20 3d 20 | 67 65 74 6f 70 74 28 61 |e ((c = |getopt(a|
|0000e3b0| 72 67 63 2c 20 61 72 67 | 76 2c 20 22 6f 6e 68 62 |rgc, arg|v, "onhb|
|0000e3c0| 72 3a 73 3a 66 3a 6d 3a | 22 20 29 29 20 21 3d 20 |r:s:f:m:|" )) != |
|0000e3d0| 2d 31 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |-1). | |
|0000e3e0| 73 77 69 74 63 68 28 63 | 29 0a 20 20 20 20 20 20 |switch(c|). |
|0000e3f0| 20 20 20 20 20 20 20 20 | 20 20 7b 0a 20 20 20 20 | | {. |
|0000e400| 20 20 20 20 20 20 20 20 | 63 61 73 65 20 27 6f 27 | |case 'o'|
|0000e410| 3a 20 20 20 2f 2a 20 6f | 6c 64 20 74 72 61 63 6b |: /* o|ld track|
|0000e420| 65 72 20 74 79 70 65 20 | 2a 2f 0a 20 20 20 20 20 |er type |*/. |
|0000e430| 20 20 20 20 20 20 20 20 | 20 20 20 70 72 65 66 2e | | pref.|
|0000e440| 74 79 70 65 20 3d 20 4f | 4c 44 3b 0a 20 20 20 20 |type = O|LD;. |
|0000e450| 20 20 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 | | brea|
|0000e460| 6b 3b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 63 |k;. | c|
|0000e470| 61 73 65 20 27 6e 27 3a | 20 20 20 2f 2a 20 6e 65 |ase 'n':| /* ne|
|0000e480| 77 20 74 72 61 63 6b 65 | 72 20 74 79 70 65 20 2a |w tracke|r type *|
|0000e490| 2f 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |/. | |
|0000e4a0| 20 20 70 72 65 66 2e 74 | 79 70 65 20 3d 20 4e 45 | pref.t|ype = NE|
|0000e4b0| 57 3b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |W;. | |
|0000e4c0| 20 20 20 62 72 65 61 6b | 3b 0a 20 20 20 20 20 20 | break|;. |
|0000e4d0| 20 20 20 20 20 20 63 61 | 73 65 20 27 62 27 3a 20 | ca|se 'b': |
|0000e4e0| 20 20 2f 2a 20 62 6f 74 | 68 20 74 72 61 63 6b 65 | /* bot|h tracke|
|0000e4f0| 72 20 74 79 70 65 73 20 | 2a 2f 0a 20 20 20 20 20 |r types |*/. |
|0000e500| 20 20 20 20 20 20 20 20 | 20 20 20 70 72 65 66 2e | | pref.|
|0000e510| 74 79 70 65 20 3d 20 42 | 4f 54 48 3b 0a 20 20 20 |type = B|OTH;. |
|0000e520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 72 65 | | bre|
|0000e530| 61 6b 3b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |ak;. | |
|0000e540| 63 61 73 65 20 27 72 27 | 3a 20 20 20 2f 2a 20 6e |case 'r'|: /* n|
|0000e550| 75 6d 62 65 72 20 6f 66 | 20 72 65 70 65 61 74 73 |umber of| repeats|
|0000e560| 20 2a 2f 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | */. | |
|0000e570| 20 20 20 20 70 72 65 66 | 2e 72 65 70 65 61 74 73 | pref|.repeats|
|0000e580| 20 3d 20 6f 70 74 76 61 | 6c 75 65 28 30 29 3b 0a | = optva|lue(0);.|
|0000e590| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|0000e5a0| 62 72 65 61 6b 3b 0a 20 | 20 20 20 20 20 20 20 20 |break;. | |
|0000e5b0| 20 20 20 63 61 73 65 20 | 27 73 27 3a 20 20 20 2f | case |'s': /|
|0000e5c0| 2a 20 73 70 65 65 64 20 | 2a 2f 0a 20 20 20 20 20 |* speed |*/. |
|0000e5d0| 20 20 20 20 20 20 20 20 | 20 20 20 70 72 65 66 2e | | pref.|
|0000e5e0| 73 70 65 65 64 20 3d 20 | 6f 70 74 76 61 6c 75 65 |speed = |optvalue|
|0000e5f0| 28 35 30 29 3b 0a 20 20 | 20 20 20 20 20 20 20 20 |(50);. | |
|0000e600| 20 20 20 20 20 20 62 72 | 65 61 6b 3b 0a 20 20 20 | br|eak;. |
|0000e610| 20 20 20 20 20 20 20 20 | 20 63 61 73 65 20 27 66 | | case 'f|
|0000e620| 27 3a 20 20 20 2f 2a 20 | 6c 65 76 65 6c 20 6f 66 |': /* |level of|
|0000e630| 20 66 61 75 6c 74 20 2a | 2f 0a 20 20 20 20 20 20 | fault *|/. |
|0000e640| 20 20 20 20 20 20 20 20 | 20 20 70 72 65 66 2e 74 | | pref.t|
|0000e650| 6f 6c 65 72 61 74 65 20 | 3d 20 6f 70 74 76 61 6c |olerate |= optval|
|0000e660| 75 65 28 32 29 3b 0a 20 | 20 20 20 20 20 20 20 20 |ue(2);. | |
|0000e670| 20 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0a 20 20 | b|reak;. |
|0000e680| 20 20 20 20 20 20 20 20 | 20 20 63 61 73 65 20 27 | | case '|
|0000e690| 6d 27 3a 20 20 20 2f 2a | 20 25 20 6f 66 20 63 68 |m': /*| % of ch|
|0000e6a0| 61 6e 6e 65 6c 20 6d 69 | 78 2e 20 0a 20 20 20 20 |annel mi|x. . |
|0000e6b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|0000e6c0| 20 20 20 20 20 2a 20 30 | 2d 3e 66 75 6c 6c 20 73 | * 0|->full s|
|0000e6d0| 74 65 72 65 6f 2c 20 31 | 30 30 2d 3e 6d 6f 6e 6f |tereo, 1|00->mono|
|0000e6e0| 20 2a 2f 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | */. | |
|0000e6f0| 20 20 20 20 73 65 74 5f | 6d 69 78 28 6f 70 74 76 | set_|mix(optv|
|0000e700| 61 6c 75 65 28 33 30 29 | 29 3b 0a 20 20 20 20 20 |alue(30)|);. |
|0000e710| 20 20 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b | | break|
|0000e720| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 63 61 |;. | ca|
|0000e730| 73 65 20 27 68 27 3a 20 | 20 20 2f 2a 20 74 65 6d |se 'h': | /* tem|
|0000e740| 70 6c 61 74 65 20 2a 2f | 0a 20 20 20 20 20 20 20 |plate */|. |
|0000e750| 20 20 20 20 20 20 20 20 | 20 66 70 72 69 6e 74 66 | | fprintf|
|0000e760| 28 73 74 64 65 72 72 2c | 20 22 25 73 20 6f 70 74 |(stderr,| "%s opt|
|0000e770| 69 6f 6e 73 3a 5c 6e 22 | 2c 20 61 72 67 76 5b 30 |ions:\n"|, argv[0|
|0000e780| 5d 29 3b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |]);. | |
|0000e790| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|0000e7a0| 72 72 2c 20 22 5c 74 6f | 20 20 3a 20 6f 6c 64 20 |rr, "\to| : old |
|0000e7b0| 74 72 61 63 6b 65 72 20 | 66 6f 72 6d 61 74 22 29 |tracker |format")|
|0000e7c0| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;. | |
|0000e7d0| 20 20 69 66 20 28 64 65 | 66 61 75 6c 74 5f 74 79 | if (de|fault_ty|
|0000e7e0| 70 65 20 3d 3d 20 4f 4c | 44 29 0a 20 20 20 20 20 |pe == OL|D). |
|0000e7f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 66 | | f|
|0000e800| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|0000e810| 20 28 64 65 66 61 75 6c | 74 29 22 29 3b 0a 20 20 | (defaul|t)");. |
|0000e820| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 66 70 | | fp|
|0000e830| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 20 22 5c |rintf(st|derr, "\|
|0000e840| 6e 5c 74 6e 20 20 3a 20 | 6e 65 77 20 74 72 61 63 |n\tn : |new trac|
|0000e850| 6b 65 72 20 66 6f 72 6d | 61 74 22 29 3b 0a 20 20 |ker form|at");. |
|0000e860| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 69 66 | | if|
|0000e870| 20 28 64 65 66 61 75 6c | 74 5f 74 79 70 65 20 3d | (defaul|t_type =|
|0000e880| 3d 20 4e 45 57 29 0a 20 | 20 20 20 20 20 20 20 20 |= NEW). | |
|0000e890| 20 20 20 20 20 20 20 20 | 20 20 20 66 70 72 69 6e | | fprin|
|0000e8a0| 74 66 28 73 74 64 65 72 | 72 2c 20 22 20 28 64 65 |tf(stder|r, " (de|
|0000e8b0| 66 61 75 6c 74 29 22 29 | 3b 0a 20 20 20 20 20 20 |fault)")|;. |
|0000e8c0| 20 20 20 20 20 20 20 20 | 20 20 66 70 72 69 6e 74 | | fprint|
|0000e8d0| 66 28 73 74 64 65 72 72 | 2c 20 22 5c 6e 5c 74 62 |f(stderr|, "\n\tb|
|0000e8e0| 20 20 3a 20 74 72 79 20 | 62 6f 74 68 20 66 6f 72 | : try |both for|
|0000e8f0| 6d 61 74 73 22 29 3b 0a | 20 20 20 20 20 20 20 20 |mats");.| |
|0000e900| 20 20 20 20 20 20 20 20 | 69 66 20 28 64 65 66 61 | |if (defa|
|0000e910| 75 6c 74 5f 74 79 70 65 | 20 3d 3d 20 42 4f 54 48 |ult_type| == BOTH|
|0000e920| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |). | |
|0000e930| 20 20 20 20 20 20 66 70 | 72 69 6e 74 66 28 73 74 | fp|rintf(st|
|0000e940| 64 65 72 72 2c 20 22 20 | 28 64 65 66 61 75 6c 74 |derr, " |(default|
|0000e950| 29 22 29 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |)");. | |
|0000e960| 20 20 20 20 20 66 70 72 | 69 6e 74 66 28 73 74 64 | fpr|intf(std|
|0000e970| 65 72 72 2c 20 22 5c 6e | 5c 74 72 20 6e 3a 20 6e |err, "\n|\tr n: n|
|0000e980| 75 6d 62 65 72 20 6f 66 | 20 72 65 70 65 61 74 73 |umber of| repeats|
|0000e990| 20 28 30 20 69 73 20 66 | 6f 72 65 76 65 72 2c 20 | (0 is f|orever, |
|0000e9a0| 22 29 3b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |");. | |
|0000e9b0| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|0000e9c0| 72 72 2c 20 20 20 20 20 | 22 31 20 69 73 20 74 68 |rr, |"1 is th|
|0000e9d0| 65 20 64 65 66 61 75 6c | 74 29 5c 6e 22 29 3b 0a |e defaul|t)\n");.|
|0000e9e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|0000e9f0| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 20 |fprintf(|stderr, |
|0000ea00| 22 5c 74 73 20 6e 3a 20 | 73 70 65 65 64 20 28 64 |"\ts n: |speed (d|
|0000ea10| 65 66 61 75 6c 74 20 35 | 30 2c 20 22 29 3b 0a 20 |efault 5|0, ");. |
|0000ea20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 66 | | f|
|0000ea30| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 20 |printf(s|tderr, |
|0000ea40| 20 20 20 22 73 6f 6d 65 | 20 73 6f 6e 67 73 20 77 | "some| songs w|
|0000ea50| 61 6e 74 20 36 30 29 5c | 6e 22 29 3b 0a 20 20 20 |ant 60)\|n");. |
|0000ea60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 66 70 72 | | fpr|
|0000ea70| 69 6e 74 66 28 73 74 64 | 65 72 72 2c 20 22 5c 74 |intf(std|err, "\t|
|0000ea80| 66 20 20 3a 20 74 6f 6c | 65 72 61 74 65 20 66 61 |f : tol|erate fa|
|0000ea90| 75 6c 74 73 5c 6e 22 29 | 3b 0a 20 20 20 20 20 20 |ults\n")|;. |
|0000eaa0| 20 20 20 20 20 20 20 20 | 20 20 66 70 72 69 6e 74 | | fprint|
|0000eab0| 66 28 73 74 64 65 72 72 | 2c 20 22 5c 74 66 20 30 |f(stderr|, "\tf 0|
|0000eac0| 3a 20 61 62 6f 72 74 20 | 73 6f 6e 67 20 69 66 20 |: abort |song if |
|0000ead0| 70 72 6f 62 6c 65 6d 20 | 28 64 65 66 61 75 6c 74 |problem |(default|
|0000eae0| 29 5c 6e 22 29 3b 0a 20 | 20 20 20 20 20 20 20 20 |)\n");. | |
|0000eaf0| 20 20 20 20 20 20 20 66 | 70 72 69 6e 74 66 28 73 | f|printf(s|
|0000eb00| 74 64 65 72 72 2c 20 22 | 5c 74 6d 20 70 3a 20 70 |tderr, "|\tm p: p|
|0000eb10| 65 72 63 65 6e 74 20 6f | 66 20 6d 69 78 20 28 30 |ercent o|f mix (0|
|0000eb20| 20 69 73 20 73 70 61 74 | 69 61 6c 22 29 3b 0a 20 | is spat|ial");. |
|0000eb30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 66 | | f|
|0000eb40| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 20 22 |printf(s|tderr, "|
|0000eb50| 31 30 30 20 69 73 20 6d | 6f 6e 6f 29 5c 6e 22 29 |100 is m|ono)\n")|
|0000eb60| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;. | |
|0000eb70| 20 20 65 78 69 74 28 32 | 29 3b 0a 20 20 20 20 20 | exit(2|);. |
|0000eb80| 20 20 20 20 20 20 20 20 | 20 20 20 7d 0a 20 20 20 | | }. |
|0000eb90| 20 20 20 20 20 69 66 20 | 28 6f 70 74 69 6e 64 20 | if |(optind |
|0000eba0| 3c 20 61 72 67 63 29 0a | 20 20 20 20 20 20 20 20 |< argc).| |
|0000ebb0| 20 20 20 20 7b 0a 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|0000ebc0| 20 20 73 77 69 74 63 68 | 28 70 72 65 66 2e 74 79 | switch|(pref.ty|
|0000ebd0| 70 65 29 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |pe). | |
|0000ebe0| 20 20 20 20 7b 0a 20 20 | 20 20 20 20 20 20 20 20 | {. | |
|0000ebf0| 20 20 63 61 73 65 20 42 | 4f 54 48 3a 0a 20 20 20 | case B|OTH:. |
|0000ec00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 73 6f 6e | | son|
|0000ec10| 67 20 3d 20 64 6f 5f 72 | 65 61 64 5f 73 6f 6e 67 |g = do_r|ead_song|
|0000ec20| 28 61 72 67 76 5b 6f 70 | 74 69 6e 64 5d 2c 20 4e |(argv[op|tind], N|
|0000ec30| 45 57 29 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |EW);. | |
|0000ec40| 20 20 20 20 20 69 66 20 | 28 21 73 6f 6e 67 29 0a | if |(!song).|
|0000ec50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|0000ec60| 20 20 20 20 73 6f 6e 67 | 20 3d 20 64 6f 5f 72 65 | song| = do_re|
|0000ec70| 61 64 5f 73 6f 6e 67 28 | 61 72 67 76 5b 6f 70 74 |ad_song(|argv[opt|
|0000ec80| 69 6e 64 5d 2c 20 4f 4c | 44 29 3b 0a 20 20 20 20 |ind], OL|D);. |
|0000ec90| 20 20 20 20 20 20 20 20 | 20 20 20 20 62 72 65 61 | | brea|
|0000eca0| 6b 3b 0a 20 20 20 20 20 | 20 20 20 20 20 20 20 63 |k;. | c|
|0000ecb0| 61 73 65 20 4f 4c 44 3a | 0a 20 20 20 20 20 20 20 |ase OLD:|. |
|0000ecc0| 20 20 20 20 20 20 20 20 | 20 73 6f 6e 67 20 3d 20 | | song = |
|0000ecd0| 64 6f 5f 72 65 61 64 5f | 73 6f 6e 67 28 61 72 67 |do_read_|song(arg|
|0000ece0| 76 5b 6f 70 74 69 6e 64 | 5d 2c 20 70 72 65 66 2e |v[optind|], pref.|
|0000ecf0| 74 79 70 65 29 3b 0a 20 | 20 20 20 20 20 20 20 20 |type);. | |
|0000ed00| 20 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0a 20 20 | b|reak;. |
|0000ed10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2f 2a | | /*|
|0000ed20| 20 74 68 69 73 20 69 73 | 20 65 78 70 6c 69 63 69 | this is| explici|
|0000ed30| 74 6c 79 20 66 6c 61 67 | 67 65 64 20 61 73 20 61 |tly flag|ged as a|
|0000ed40| 20 6e 65 77 20 6d 6f 64 | 75 6c 65 2c 0a 20 20 20 | new mod|ule,. |
|0000ed50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2a 20 | | * |
|0000ed60| 73 6f 20 77 65 20 64 6f | 6e 27 74 20 6e 65 65 64 |so we do|n't need|
|0000ed70| 20 74 6f 20 6c 6f 6f 6b | 20 66 6f 72 20 61 20 73 | to look| for a s|
|0000ed80| 69 67 6e 61 74 75 72 65 | 2e 0a 20 20 20 20 20 20 |ignature|.. |
|0000ed90| 20 20 20 20 20 20 20 20 | 20 20 20 2a 2f 0a 20 20 | | */. |
|0000eda0| 20 20 20 20 20 20 20 20 | 20 20 63 61 73 65 20 4e | | case N|
|0000edb0| 45 57 3a 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |EW:. | |
|0000edc0| 20 20 20 20 73 6f 6e 67 | 20 3d 20 64 6f 5f 72 65 | song| = do_re|
|0000edd0| 61 64 5f 73 6f 6e 67 28 | 61 72 67 76 5b 6f 70 74 |ad_song(|argv[opt|
|0000ede0| 69 6e 64 5d 2c 20 4e 45 | 57 5f 4e 4f 5f 43 48 45 |ind], NE|W_NO_CHE|
|0000edf0| 43 4b 29 3b 0a 20 20 20 | 20 20 20 20 20 20 20 20 |CK);. | |
|0000ee00| 20 20 20 20 20 62 72 65 | 61 6b 3b 0a 20 20 20 20 | bre|ak;. |
|0000ee10| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 0a 20 20 | | }. |
|0000ee20| 20 20 20 20 20 20 20 20 | 20 20 69 66 20 28 73 6f | | if (so|
|0000ee30| 6e 67 20 3d 3d 20 4e 55 | 4c 4c 29 0a 20 20 20 20 |ng == NU|LL). |
|0000ee40| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 6f 6e 74 | | cont|
|0000ee50| 69 6e 75 65 3b 0a 0a 20 | 20 20 20 20 20 20 20 20 |inue;.. | |
|0000ee60| 20 20 20 64 75 6d 70 5f | 73 6f 6e 67 28 73 6f 6e | dump_|song(son|
|0000ee70| 67 29 3b 20 0a 20 20 20 | 20 20 20 20 20 20 20 20 |g); . | |
|0000ee80| 20 70 6c 61 79 5f 73 6f | 6e 67 28 73 6f 6e 67 2c | play_so|ng(song,|
|0000ee90| 20 26 70 72 65 66 29 3b | 0a 20 20 20 20 20 20 20 | &pref);|. |
|0000eea0| 20 20 20 20 20 72 65 6c | 65 61 73 65 5f 73 6f 6e | rel|ease_son|
|0000eeb0| 67 28 73 6f 6e 67 29 3b | 0a 20 20 20 20 20 20 20 |g(song);|. |
|0000eec0| 20 20 20 20 20 7d 0a 20 | 20 20 20 20 20 20 20 7d | }. | }|
|0000eed0| 0a 0a 20 20 20 20 63 6c | 6f 73 65 5f 61 75 64 69 |.. cl|ose_audi|
|0000eee0| 6f 28 29 3b 0a 20 20 20 | 20 72 65 74 75 72 6e 20 |o();. | return |
|0000eef0| 30 3b 0a 20 20 20 20 7d | 0a 0a 3d 20 72 65 61 64 |0;. }|..= read|
|0000ef00| 5f 73 6f 6e 67 28 66 70 | 2c 20 74 79 70 65 2c 20 |_song(fp|, type, |
|0000ef10| 74 72 61 6e 73 70 6f 73 | 65 29 3b 20 0a 20 20 20 |transpos|e); . |
|0000ef20| 20 20 20 20 20 66 63 6c | 6f 73 65 28 66 70 29 3b | fcl|ose(fp);|
|0000ef30| 20 0a 20 20 20 20 20 20 | 20 20 7d 0a 20 20 20 20 | . | }. |
|0000ef40| 69 66 20 28 73 6f 6e 67 | 29 0a 20 20 20 20 20 20 |if (song|). |
|0000ef50| 20 20 70 72 69 6e 74 66 | 28 22 4f 6b 21 5c 6e 22 | printf|("Ok!\n"|
|0000ef60| 29 3b 0a 20 20 20 20 72 | 65 74 75 72 6e 20 73 6f |);. r|eturn so|
|0000ef70| 6e 67 3b 0a 20 20 20 20 | 7d 0a 0a 69 6e 74 20 6f |ng;. |}..int o|
|0000ef80| 70 74 76 61 6c 75 65 28 | 64 65 66 29 0a 69 6e 74 |ptvalue(|def).int|
|0000ef90| 20 64 65 66 3b 0a 20 20 | 20 20 7b 0a 20 20 20 20 | def;. | {. |
|0000efa0| 69 6e 74 20 64 3b 0a 20 | 20 20 20 20 20 20 20 69 |int d;. | i|
|0000efb0| 66 20 28 73 73 63 61 6e | 66 28 6f 70 74 61 72 67 |f (sscan|f(optarg|
|0000efc0| 2c 20 22 25 64 22 2c 20 | 26 64 29 20 3d 3d 20 31 |, "%d", |&d) == 1|
|0000efd0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 72 65 |). | re|
|0000efe0| 74 75 72 6e 20 64 3b 0a | 20 20 20 20 20 20 20 20 |turn d;.| |
|0000eff0| 65 6c 73 65 0a 20 20 20 | 20 20 20 20 20 20 20 20 |else. | |
|0000f000| 73 6f 6e 67 2e 68 00 00 | 00 00 00 00 00 00 00 00 |song.h..|........|
|0000f010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f060| 00 00 00 00 20 20 20 36 | 36 36 20 00 20 20 31 31 |.... 6|66 . 11|
|0000f070| 35 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |55 . 1|44 . |
|0000f080| 20 20 20 33 30 33 33 20 | 20 35 31 31 37 31 36 30 | 3033 | 5117160|
|0000f090| 31 33 35 20 20 20 35 32 | 37 33 00 20 00 00 00 00 |135 52|73. ....|
|0000f0a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f0b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f0c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f0d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f0e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f0f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f1a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f1b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f1c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f1d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f1e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f1f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000f200| 2f 2a 20 73 6f 6e 67 2e | 68 20 2a 2f 0a 0a 2f 2a |/* song.|h */../*|
|0000f210| 20 69 6e 74 65 72 6e 61 | 6c 20 64 61 74 61 20 73 | interna|l data s|
|0000f220| 74 72 75 63 74 75 72 65 | 73 20 66 6f 72 20 74 68 |tructure|s for th|
|0000f230| 65 20 73 6f 75 6e 64 74 | 72 61 63 6b 65 72 20 70 |e soundt|racker p|
|0000f240| 6c 61 79 65 72 20 72 6f | 75 74 69 6e 65 2e 2e 2e |layer ro|utine...|
|0000f250| 2e 0a 20 2a 2f 0a 0a 2f | 2a 20 24 41 75 74 68 6f |.. */../|* $Autho|
|0000f260| 72 3a 20 65 73 70 69 65 | 20 24 0a 20 2a 20 24 44 |r: espie| $. * $D|
|0000f270| 61 74 65 3a 20 31 39 39 | 31 2f 31 31 2f 31 37 20 |ate: 199|1/11/17 |
|0000f280| 32 33 3a 30 37 3a 35 38 | 20 24 0a 20 2a 20 24 52 |23:07:58| $. * $R|
|0000f290| 65 76 69 73 69 6f 6e 3a | 20 32 2e 31 20 24 0a 20 |evision:| 2.1 $. |
|0000f2a0| 2a 20 24 4c 6f 67 3a 20 | 73 6f 6e 67 2e 68 2c 76 |* $Log: |song.h,v|
|0000f2b0| 20 24 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 32 | $. * Re|vision 2|
|0000f2c0| 2e 31 20 20 31 39 39 31 | 2f 31 31 2f 31 37 20 20 |.1 1991|/11/17 |
|0000f2d0| 32 33 3a 30 37 3a 35 38 | 20 20 65 73 70 69 65 0a |23:07:58| espie.|
|0000f2e0| 20 2a 20 41 64 64 65 64 | 20 73 6f 6d 65 20 73 79 | * Added| some sy|
|0000f2f0| 6d 62 6f 6c 69 63 20 63 | 6f 6e 73 74 61 6e 74 73 |mbolic c|onstants|
|0000f300| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|0000f310| 20 32 2e 30 20 20 31 39 | 39 31 2f 31 31 2f 31 37 | 2.0 19|91/11/17|
|0000f320| 20 20 32 31 3a 34 32 3a | 30 38 20 20 65 73 70 69 | 21:42:|08 espi|
|0000f330| 65 0a 20 2a 20 4e 65 77 | 20 76 65 72 73 69 6f 6e |e. * New| version|
|0000f340| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|0000f350| 20 31 2e 31 20 20 31 39 | 39 31 2f 31 31 2f 30 34 | 1.1 19|91/11/04|
|0000f360| 20 20 31 33 3a 32 33 3a | 35 39 20 20 65 73 70 69 | 13:23:|59 espi|
|0000f370| 65 0a 20 2a 20 49 6e 69 | 74 69 61 6c 20 72 65 76 |e. * Ini|tial rev|
|0000f380| 69 73 69 6f 6e 0a 20 2a | 0a 20 2a 0a 20 2a 2f 0a |ision. *|. *. */.|
|0000f390| 0a 0a 23 64 65 66 69 6e | 65 20 4e 55 4d 42 45 52 |..#defin|e NUMBER|
|0000f3a0| 5f 53 41 4d 50 4c 45 53 | 20 33 32 0a 0a 23 64 65 |_SAMPLES| 32..#de|
|0000f3b0| 66 69 6e 65 20 42 4c 4f | 43 4b 5f 4c 45 4e 47 54 |fine BLO|CK_LENGT|
|0000f3c0| 48 20 36 34 0a 23 64 65 | 66 69 6e 65 20 4e 55 4d |H 64.#de|fine NUM|
|0000f3d0| 42 45 52 5f 54 52 41 43 | 4b 53 20 34 0a 23 64 65 |BER_TRAC|KS 4.#de|
|0000f3e0| 66 69 6e 65 20 4e 55 4d | 42 45 52 5f 50 41 54 54 |fine NUM|BER_PATT|
|0000f3f0| 45 52 4e 53 20 31 32 38 | 0a 0a 23 64 65 66 69 6e |ERNS 128|..#defin|
|0000f400| 65 20 4e 55 4d 42 45 52 | 5f 45 46 46 45 43 54 53 |e NUMBER|_EFFECTS|
|0000f410| 20 31 36 0a 0a 23 64 65 | 66 69 6e 65 20 4d 49 4e | 16..#de|fine MIN|
|0000f420| 5f 50 49 54 43 48 20 31 | 31 33 0a 23 64 65 66 69 |_PITCH 1|13.#defi|
|0000f430| 6e 65 20 4d 41 58 5f 50 | 49 54 43 48 20 31 30 32 |ne MAX_P|ITCH 102|
|0000f440| 33 0a 0a 23 64 65 66 69 | 6e 65 20 4d 49 4e 5f 56 |3..#defi|ne MIN_V|
|0000f450| 4f 4c 55 4d 45 20 30 0a | 23 64 65 66 69 6e 65 20 |OLUME 0.|#define |
|0000f460| 4d 41 58 5f 56 4f 4c 55 | 4d 45 20 36 34 0a 0a 2f |MAX_VOLU|ME 64../|
|0000f470| 2a 20 74 68 65 20 66 75 | 7a 7a 20 69 6e 20 6e 6f |* the fu|zz in no|
|0000f480| 74 65 20 70 69 74 63 68 | 20 2a 2f 0a 23 64 65 66 |te pitch| */.#def|
|0000f490| 69 6e 65 20 46 55 5a 5a | 20 32 0a 0a 2f 2a 20 77 |ine FUZZ| 2../* w|
|0000f4a0| 65 20 72 65 66 75 73 65 | 20 74 6f 20 61 6c 6c 6f |e refuse| to allo|
|0000f4b0| 63 61 74 65 20 6d 6f 72 | 65 20 74 68 61 6e 20 35 |cate mor|e than 5|
|0000f4c0| 30 30 30 30 30 20 62 79 | 74 65 73 20 66 6f 72 20 |00000 by|tes for |
|0000f4d0| 6f 6e 65 20 73 61 6d 70 | 6c 65 20 2a 2f 0a 23 64 |one samp|le */.#d|
|0000f4e0| 65 66 69 6e 65 20 4d 41 | 58 5f 53 41 4d 50 4c 45 |efine MA|X_SAMPLE|
|0000f4f0| 5f 4c 45 4e 47 54 48 20 | 35 30 30 30 30 30 0a 0a |_LENGTH |500000..|
|0000f500| 73 74 72 75 63 74 20 73 | 61 6d 70 6c 65 5f 69 6e |struct s|ample_in|
|0000f510| 66 6f 0a 20 20 20 7b 0a | 20 20 20 63 68 61 72 20 |fo. {.| char |
|0000f520| 2a 6e 61 6d 65 3b 0a 20 | 20 20 69 6e 74 20 20 6c |*name;. | int l|
|0000f530| 65 6e 67 74 68 2c 20 72 | 70 5f 6f 66 66 73 65 74 |ength, r|p_offset|
|0000f540| 2c 20 72 70 5f 6c 65 6e | 67 74 68 3b 0a 20 20 20 |, rp_len|gth;. |
|0000f550| 69 6e 74 20 76 6f 6c 75 | 6d 65 3b 0a 20 20 20 69 |int volu|me;. i|
|0000f560| 6e 74 20 66 69 6e 65 74 | 75 6e 65 3b 0a 20 20 20 |nt finet|une;. |
|0000f570| 53 41 4d 50 4c 45 20 2a | 73 74 61 72 74 2c 20 2a |SAMPLE *|start, *|
|0000f580| 72 70 5f 73 74 61 72 74 | 3b 0a 20 20 20 7d 3b 0a |rp_start|;. };.|
|0000f590| 0a 2f 2a 20 74 68 65 20 | 61 63 74 75 61 6c 20 70 |./* the |actual p|
|0000f5a0| 61 72 61 6d 65 74 65 72 | 73 20 6d 61 79 20 62 65 |arameter|s may be|
|0000f5b0| 20 73 70 6c 69 74 20 69 | 6e 20 74 77 6f 20 68 61 | split i|n two ha|
|0000f5c0| 6c 76 65 73 20 6f 63 63 | 61 73 69 6f 6e 6e 61 6c |lves occ|asionnal|
|0000f5d0| 6c 79 20 2a 2f 0a 0a 23 | 64 65 66 69 6e 65 20 4c |ly */..#|define L|
|0000f5e0| 4f 57 28 70 61 72 61 29 | 20 28 28 70 61 72 61 29 |OW(para)| ((para)|
|0000f5f0| 20 26 20 31 35 29 0a 23 | 64 65 66 69 6e 65 20 48 | & 15).#|define H|
|0000f600| 49 28 70 61 72 61 29 20 | 28 28 70 61 72 61 29 20 |I(para) |((para) |
|0000f610| 3e 3e 20 34 29 0a 0a 73 | 74 72 75 63 74 20 65 76 |>> 4)..s|truct ev|
|0000f620| 65 6e 74 0a 20 20 20 7b | 0a 20 20 20 75 6e 73 69 |ent. {|. unsi|
|0000f630| 67 6e 65 64 20 63 68 61 | 72 20 73 61 6d 70 6c 65 |gned cha|r sample|
|0000f640| 5f 6e 75 6d 62 65 72 3b | 0a 20 20 20 75 6e 73 69 |_number;|. unsi|
|0000f650| 67 6e 65 64 20 63 68 61 | 72 20 65 66 66 65 63 74 |gned cha|r effect|
|0000f660| 3b 0a 20 20 20 75 6e 73 | 69 67 6e 65 64 20 63 68 |;. uns|igned ch|
|0000f670| 61 72 20 70 61 72 61 6d | 65 74 65 72 73 3b 0a 20 |ar param|eters;. |
|0000f680| 20 20 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 | unsign|ed char |
|0000f690| 6e 6f 74 65 3b 0a 20 20 | 20 69 6e 74 20 70 69 74 |note;. | int pit|
|0000f6a0| 63 68 3b 0a 20 20 20 7d | 3b 0a 0a 73 74 72 75 63 |ch;. }|;..struc|
|0000f6b0| 74 20 62 6c 6f 63 6b 0a | 20 20 20 7b 0a 20 20 20 |t block.| {. |
|0000f6c0| 73 74 72 75 63 74 20 65 | 76 65 6e 74 20 65 5b 4e |struct e|vent e[N|
|0000f6d0| 55 4d 42 45 52 5f 54 52 | 41 43 4b 53 5d 5b 42 4c |UMBER_TR|ACKS][BL|
|0000f6e0| 4f 43 4b 5f 4c 45 4e 47 | 54 48 5d 3b 0a 20 20 20 |OCK_LENG|TH];. |
|0000f6f0| 7d 3b 0a 20 20 20 20 0a | 20 20 20 20 20 20 20 20 |};. .| |
|0000f700| 0a 73 74 72 75 63 74 20 | 73 6f 6e 67 5f 69 6e 66 |.struct |song_inf|
|0000f710| 6f 0a 20 20 20 7b 0a 20 | 20 20 69 6e 74 20 6c 65 |o. {. | int le|
|0000f720| 6e 67 74 68 3b 0a 20 20 | 20 69 6e 74 20 6d 61 78 |ngth;. | int max|
|0000f730| 70 61 74 3b 0a 20 20 20 | 63 68 61 72 20 70 61 74 |pat;. |char pat|
|0000f740| 6e 75 6d 62 65 72 5b 4e | 55 4d 42 45 52 5f 50 41 |number[N|UMBER_PA|
|0000f750| 54 54 45 52 4e 53 5d 3b | 0a 20 20 20 73 74 72 75 |TTERNS];|. stru|
|0000f760| 63 74 20 62 6c 6f 63 6b | 20 2a 70 62 6c 6f 63 6b |ct block| *pblock|
|0000f770| 73 3b 0a 20 20 20 7d 3b | 0a 0a 73 74 72 75 63 74 |s;. };|..struct|
|0000f780| 20 73 6f 6e 67 0a 20 20 | 20 7b 0a 20 20 20 63 68 | song. | {. ch|
|0000f790| 61 72 20 2a 74 69 74 6c | 65 3b 0a 20 20 20 20 20 |ar *titl|e;. |
|0000f7a0| 20 2f 2a 20 73 61 6d 70 | 6c 65 20 30 20 69 73 20 | /* samp|le 0 is |
|0000f7b0| 61 6c 77 61 79 73 20 61 | 20 64 75 6d 6d 79 20 73 |always a| dummy s|
|0000f7c0| 61 6d 70 6c 65 20 2a 2f | 0a 20 20 20 73 74 72 75 |ample */|. stru|
|0000f7d0| 63 74 20 73 61 6d 70 6c | 65 5f 69 6e 66 6f 20 2a |ct sampl|e_info *|
|0000f7e0| 73 61 6d 70 6c 65 73 5b | 4e 55 4d 42 45 52 5f 53 |samples[|NUMBER_S|
|0000f7f0| 41 4d 50 4c 45 53 5d 3b | 0a 20 20 20 73 74 72 75 |AMPLES];|. stru|
|0000f800| 63 74 20 73 6f 6e 67 5f | 69 6e 66 6f 20 2a 69 6e |ct song_|info *in|
|0000f810| 66 6f 3b 0a 20 20 20 7d | 3b 0a 0a 73 65 20 27 66 |fo;. }|;..se 'f|
|0000f820| 27 3a 20 20 20 2f 2a 20 | 6c 65 76 65 6c 20 6f 66 |': /* |level of|
|0000f830| 20 66 61 75 6c 74 20 2a | 2f 0a 20 20 20 20 20 20 | fault *|/. |
|0000f840| 20 20 20 20 20 20 20 20 | 20 20 70 72 65 66 2e 74 | | pref.t|
|0000f850| 6f 6c 65 72 61 74 65 20 | 3d 20 6f 70 74 76 61 6c |olerate |= optval|
|0000f860| 75 65 28 32 29 3b 0a 20 | 20 20 20 20 20 20 20 20 |ue(2);. | |
|0000f870| 20 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0a 20 20 | b|reak;. |
|0000f880| 20 20 20 20 20 20 20 20 | 20 20 63 61 73 65 20 27 | | case '|
|0000f890| 6d 27 3a 20 20 20 2f 2a | 20 25 20 6f 66 20 63 68 |m': /*| % of ch|
|0000f8a0| 61 6e 6e 65 6c 20 6d 69 | 78 2e 20 0a 20 20 20 20 |annel mi|x. . |
|0000f8b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|0000f8c0| 20 20 20 20 20 2a 20 30 | 2d 3e 66 75 6c 6c 20 73 | * 0|->full s|
|0000f8d0| 74 65 72 65 6f 2c 20 31 | 30 30 2d 3e 6d 6f 6e 6f |tereo, 1|00->mono|
|0000f8e0| 20 2a 2f 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 | */. | |
|0000f8f0| 20 20 20 20 73 65 74 5f | 6d 69 78 28 6f 70 74 76 | set_|mix(optv|
|0000f900| 61 6c 75 65 28 33 30 29 | 29 3b 0a 20 20 20 20 20 |alue(30)|);. |
|0000f910| 20 20 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b | | break|
|0000f920| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 63 61 |;. | ca|
|0000f930| 73 65 20 27 68 27 3a 20 | 20 20 2f 2a 20 74 65 6d |se 'h': | /* tem|
|0000f940| 70 6c 61 74 65 20 2a 2f | 0a 20 20 20 20 20 20 20 |plate */|. |
|0000f950| 20 20 20 20 20 20 20 20 | 20 66 70 72 69 6e 74 66 | | fprintf|
|0000f960| 28 73 74 64 65 72 72 2c | 20 22 25 73 20 6f 70 74 |(stderr,| "%s opt|
|0000f970| 69 6f 6e 73 3a 5c 6e 22 | 2c 20 61 72 67 76 5b 30 |ions:\n"|, argv[0|
|0000f980| 5d 29 3b 0a 20 20 20 20 | 20 20 20 20 20 20 20 20 |]);. | |
|0000f990| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|0000f9a0| 72 72 2c 20 22 5c 74 6f | 20 20 3a 20 6f 6c 64 20 |rr, "\to| : old |
|0000f9b0| 74 72 61 63 6b 65 72 20 | 66 6f 72 6d 61 74 22 29 |tracker |format")|
|0000f9c0| 3b 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;. | |
|0000f9d0| 20 20 69 66 20 28 64 65 | 66 61 75 6c 74 5f 74 79 | if (de|fault_ty|
|0000f9e0| 70 65 20 3d 3d 20 4f 4c | 44 29 0a 20 20 20 20 20 |pe == OL|D). |
|0000f9f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 66 | | f|
|0000fa00| 73 67 69 2e 68 00 00 00 | 00 00 00 00 00 00 00 00 |sgi.h...|........|
|0000fa10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fa20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fa30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fa40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fa50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fa60| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|0000fa70| 35 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |55 . 1|44 . |
|0000fa80| 20 20 20 31 35 30 31 20 | 20 35 31 31 37 31 36 30 | 1501 | 5117160|
|0000fa90| 31 33 36 20 20 20 35 31 | 30 32 00 20 00 00 00 00 |136 51|02. ....|
|0000faa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fab0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fac0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fad0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fae0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000faf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb00| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fb90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fba0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fbb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fbc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fbd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fbe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fbf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|0000fc00| 2f 2a 20 73 67 69 2e 68 | 20 2a 2f 0a 0a 2f 2a 20 |/* sgi.h| */../* |
|0000fc10| 24 41 75 74 68 6f 72 3a | 20 65 73 70 69 65 20 24 |$Author:| espie $|
|0000fc20| 0a 20 2a 20 24 49 64 3a | 20 73 67 69 2e 68 2c 76 |. * $Id:| sgi.h,v|
|0000fc30| 20 32 2e 31 20 31 39 39 | 31 2f 31 31 2f 31 38 20 | 2.1 199|1/11/18 |
|0000fc40| 30 31 3a 31 30 3a 34 35 | 20 65 73 70 69 65 20 45 |01:10:45| espie E|
|0000fc50| 78 70 20 65 73 70 69 65 | 20 24 0a 20 2a 20 24 52 |xp espie| $. * $R|
|0000fc60| 65 76 69 73 69 6f 6e 3a | 20 32 2e 31 20 24 0a 20 |evision:| 2.1 $. |
|0000fc70| 2a 20 24 4c 6f 67 3a 20 | 73 67 69 2e 68 2c 76 20 |* $Log: |sgi.h,v |
|0000fc80| 24 0a 20 2a 20 52 65 76 | 69 73 69 6f 6e 20 32 2e |$. * Rev|ision 2.|
|0000fc90| 31 20 20 31 39 39 31 2f | 31 31 2f 31 38 20 20 30 |1 1991/|11/18 0|
|0000fca0| 31 3a 31 30 3a 34 35 20 | 20 65 73 70 69 65 0a 20 |1:10:45 | espie. |
|0000fcb0| 2a 20 4d 69 6e 6f 72 20 | 63 6f 72 72 65 63 74 69 |* Minor |correcti|
|0000fcc0| 6f 6e 73 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |ons.. *.| * Revis|
|0000fcd0| 69 6f 6e 20 32 2e 30 20 | 20 31 39 39 31 2f 31 31 |ion 2.0 | 1991/11|
|0000fce0| 2f 31 37 20 20 32 31 3a | 34 32 3a 30 38 20 20 65 |/17 21:|42:08 e|
|0000fcf0| 73 70 69 65 0a 20 2a 20 | 4e 65 77 20 76 65 72 73 |spie. * |New vers|
|0000fd00| 69 6f 6e 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |ion.. *.| * Revis|
|0000fd10| 69 6f 6e 20 31 2e 35 20 | 20 31 39 39 31 2f 31 31 |ion 1.5 | 1991/11|
|0000fd20| 2f 30 38 20 20 31 34 3a | 32 35 3a 35 35 20 20 65 |/08 14:|25:55 e|
|0000fd30| 73 70 69 65 0a 20 2a 20 | 53 74 61 74 69 63 20 73 |spie. * |Static s|
|0000fd40| 70 65 65 64 20 70 61 72 | 61 6d 65 74 65 72 73 20 |peed par|ameters |
|0000fd50| 56 53 59 4e 43 20 61 6e | 64 20 6e 53 20 61 72 65 |VSYNC an|d nS are|
|0000fd60| 20 6e 6f 77 20 64 79 6e | 61 6d 69 63 2e 0a 20 2a | now dyn|amic.. *|
|0000fd70| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 34 |. * Revi|sion 1.4|
|0000fd80| 20 20 31 39 39 31 2f 31 | 31 2f 30 34 20 20 32 30 | 1991/1|1/04 20|
|0000fd90| 3a 32 37 3a 30 35 20 20 | 65 73 70 69 65 0a 20 2a |:27:05 |espie. *|
|0000fda0| 20 4d 6f 76 65 64 20 74 | 6f 20 34 38 30 30 30 48 | Moved t|o 48000H|
|0000fdb0| 7a 2c 20 61 67 61 69 6e | 2e 0a 20 2a 0a 20 2a 20 |z, again|.. *. * |
|0000fdc0| 52 65 76 69 73 69 6f 6e | 20 31 2e 33 20 20 31 39 |Revision| 1.3 19|
|0000fdd0| 39 31 2f 31 31 2f 30 34 | 20 20 31 33 3a 32 33 3a |91/11/04| 13:23:|
|0000fde0| 35 39 20 20 65 73 70 69 | 65 0a 20 2a 20 4a 75 73 |59 espi|e. * Jus|
|0000fdf0| 74 20 63 68 61 6e 67 65 | 64 20 73 61 6d 70 6c 69 |t change|d sampli|
|0000fe00| 6e 67 20 66 72 65 71 75 | 65 6e 63 79 20 74 6f 20 |ng frequ|ency to |
|0000fe10| 61 6c 6c 6f 77 20 66 6f | 72 20 64 65 62 75 67 67 |allow fo|r debugg|
|0000fe20| 69 6e 67 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |ing.. *.| * Revis|
|0000fe30| 69 6f 6e 20 31 2e 32 20 | 20 31 39 39 31 2f 31 31 |ion 1.2 | 1991/11|
|0000fe40| 2f 30 34 20 20 30 38 3a | 30 31 3a 32 30 20 20 65 |/04 08:|01:20 e|
|0000fe50| 73 70 69 65 0a 20 2a 20 | 43 6f 72 72 65 63 74 65 |spie. * |Correcte|
|0000fe60| 64 20 72 75 63 6b 75 73 | 20 77 69 74 68 20 64 61 |d ruckus| with da|
|0000fe70| 74 61 20 74 79 70 65 20 | 6f 66 20 73 61 6d 70 6c |ta type |of sampl|
|0000fe80| 65 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |e.. *. *| Revisio|
|0000fe90| 6e 20 31 2e 31 20 20 31 | 39 39 31 2f 31 31 2f 30 |n 1.1 1|991/11/0|
|0000fea0| 33 20 20 32 32 3a 34 36 | 3a 30 35 20 20 65 73 70 |3 22:46|:05 esp|
|0000feb0| 69 65 0a 20 2a 20 49 6e | 69 74 69 61 6c 20 72 65 |ie. * In|itial re|
|0000fec0| 76 69 73 69 6f 6e 0a 20 | 2a 0a 20 2a 0a 20 2a 2f |vision. |*. *. */|
|0000fed0| 0a 2f 2a 20 74 68 69 73 | 20 69 73 20 74 68 65 20 |./* this| is the |
|0000fee0| 70 72 65 63 69 73 65 20 | 74 79 70 65 20 66 6f 72 |precise |type for|
|0000fef0| 20 73 74 6f 72 69 6e 67 | 20 74 68 65 20 73 61 6d | storing| the sam|
|0000ff00| 70 6c 65 73 3a 0a 20 2a | 20 73 68 6f 75 6c 64 20 |ples:. *| should |
|0000ff10| 62 65 20 73 69 67 6e 65 | 64 20 63 68 61 72 2e 0a |be signe|d char..|
|0000ff20| 20 2a 2f 0a 0a 74 79 70 | 65 64 65 66 20 73 69 67 | */..typ|edef sig|
|0000ff30| 6e 65 64 20 63 68 61 72 | 20 53 41 4d 50 4c 45 3b |ned char| SAMPLE;|
|0000ff40| 0a 20 72 70 5f 6c 65 6e | 67 74 68 3b 0a 20 20 20 |. rp_len|gth;. |
|0000ff50| 69 6e 74 20 76 6f 6c 75 | 6d 65 3b 0a 20 20 20 69 |int volu|me;. i|
|0000ff60| 6e 74 20 66 69 6e 65 74 | 75 6e 65 3b 0a 20 20 20 |nt finet|une;. |
|0000ff70| 53 41 4d 50 4c 45 20 2a | 73 74 61 72 74 2c 20 2a |SAMPLE *|start, *|
|0000ff80| 72 70 5f 73 74 61 72 74 | 3b 0a 20 20 20 7d 3b 0a |rp_start|;. };.|
|0000ff90| 0a 2f 2a 20 74 68 65 20 | 61 63 74 75 61 6c 20 70 |./* the |actual p|
|0000ffa0| 61 72 61 6d 65 74 65 72 | 73 20 6d 61 79 20 62 65 |arameter|s may be|
|0000ffb0| 20 73 70 6c 69 74 20 69 | 6e 20 74 77 6f 20 68 61 | split i|n two ha|
|0000ffc0| 6c 76 65 73 20 6f 63 63 | 61 73 69 6f 6e 6e 61 6c |lves occ|asionnal|
|0000ffd0| 6c 79 20 2a 2f 0a 0a 23 | 64 65 66 69 6e 65 20 4c |ly */..#|define L|
|0000ffe0| 4f 57 28 70 61 72 61 29 | 20 28 28 70 61 72 61 29 |OW(para)| ((para)|
|0000fff0| 20 26 20 31 35 29 0a 23 | 64 65 66 69 6e 65 20 48 | & 15).#|define H|
|00010000| 73 70 61 72 63 2e 68 00 | 00 00 00 00 00 00 00 00 |sparc.h.|........|
|00010010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00010070| 35 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |55 . 1|44 . |
|00010080| 20 20 20 32 31 33 33 20 | 20 35 31 31 37 31 36 30 | 2133 | 5117160|
|00010090| 31 33 36 20 20 20 35 34 | 33 32 00 20 00 00 00 00 |136 54|32. ....|
|000100a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000100b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000100c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000100d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000100e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000100f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000101a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000101b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000101c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000101d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000101e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000101f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010200| 2f 2a 20 73 70 61 72 63 | 2e 68 20 2a 2f 0a 0a 2f |/* sparc|.h */../|
|00010210| 2a 20 24 41 75 74 68 6f | 72 3a 20 65 73 70 69 65 |* $Autho|r: espie|
|00010220| 20 24 0a 20 2a 20 24 49 | 64 3a 20 73 70 61 72 63 | $. * $I|d: sparc|
|00010230| 2e 68 2c 76 20 32 2e 30 | 20 31 39 39 31 2f 31 31 |.h,v 2.0| 1991/11|
|00010240| 2f 31 37 20 32 31 3a 34 | 32 3a 30 38 20 65 73 70 |/17 21:4|2:08 esp|
|00010250| 69 65 20 45 78 70 20 65 | 73 70 69 65 20 24 0a 20 |ie Exp e|spie $. |
|00010260| 2a 20 24 52 65 76 69 73 | 69 6f 6e 3a 20 32 2e 30 |* $Revis|ion: 2.0|
|00010270| 20 24 0a 20 2a 20 24 4c | 6f 67 3a 20 73 70 61 72 | $. * $L|og: spar|
|00010280| 63 2e 68 2c 76 20 24 0a | 20 2a 20 52 65 76 69 73 |c.h,v $.| * Revis|
|00010290| 69 6f 6e 20 32 2e 30 20 | 20 31 39 39 31 2f 31 31 |ion 2.0 | 1991/11|
|000102a0| 2f 31 37 20 20 32 31 3a | 34 32 3a 30 38 20 20 65 |/17 21:|42:08 e|
|000102b0| 73 70 69 65 0a 20 2a 20 | 4e 65 77 20 76 65 72 73 |spie. * |New vers|
|000102c0| 69 6f 6e 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |ion.. *.| * Revis|
|000102d0| 69 6f 6e 20 31 2e 33 20 | 20 31 39 39 31 2f 31 31 |ion 1.3 | 1991/11|
|000102e0| 2f 30 38 20 20 31 34 3a | 32 35 3a 35 35 20 20 65 |/08 14:|25:55 e|
|000102f0| 73 70 69 65 0a 20 2a 20 | 57 65 20 6e 6f 77 20 68 |spie. * |We now h|
|00010300| 61 76 65 20 74 6f 20 72 | 65 74 75 72 6e 20 66 72 |ave to r|eturn fr|
|00010310| 65 71 75 65 6e 63 79 2e | 0a 20 2a 0a 20 2a 20 52 |equency.|. *. * R|
|00010320| 65 76 69 73 69 6f 6e 20 | 31 2e 32 20 20 31 39 39 |evision |1.2 199|
|00010330| 31 2f 31 31 2f 30 34 20 | 20 30 38 3a 30 31 3a 32 |1/11/04 | 08:01:2|
|00010340| 30 20 20 65 73 70 69 65 | 0a 20 2a 20 43 6f 72 72 |0 espie|. * Corr|
|00010350| 65 63 74 65 64 20 72 75 | 63 6b 75 73 20 77 69 74 |ected ru|ckus wit|
|00010360| 68 20 64 61 74 61 20 74 | 79 70 65 20 6f 66 20 73 |h data t|ype of s|
|00010370| 61 6d 70 6c 65 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 |ample.. |*. * Rev|
|00010380| 69 73 69 6f 6e 20 31 2e | 31 20 20 31 39 39 31 2f |ision 1.|1 1991/|
|00010390| 31 31 2f 30 33 20 20 32 | 32 3a 34 36 3a 32 33 20 |11/03 2|2:46:23 |
|000103a0| 20 65 73 70 69 65 0a 20 | 2a 20 49 6e 69 74 69 61 | espie. |* Initia|
|000103b0| 6c 20 72 65 76 69 73 69 | 6f 6e 0a 20 2a 0a 20 2a |l revisi|on. *. *|
|000103c0| 0a 20 2a 2f 0a 0a 0a 2f | 2a 2a 2a 2a 2a 2a 2a 2a |. */.../|********|
|000103d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000103e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000103f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00010400| 2a 2a 2a 2a 2f 0a 2f 2a | 20 6e 53 20 69 73 20 74 |****/./*| nS is t|
|00010410| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 6e 53 65 |he numbe|r of nSe|
|00010420| 63 6f 6e 64 73 20 74 68 | 61 74 20 61 20 73 61 6d |conds th|at a sam|
|00010430| 70 6c 65 20 69 73 20 70 | 6c 61 79 65 64 20 66 6f |ple is p|layed fo|
|00010440| 72 20 2a 2f 0a 2f 2a 20 | 74 68 65 20 73 70 61 72 |r */./* |the spar|
|00010450| 63 20 70 6c 61 79 73 20 | 61 74 20 38 30 30 30 20 |c plays |at 8000 |
|00010460| 62 79 74 65 73 2f 73 65 | 63 20 20 3d 3e 20 20 20 |bytes/se|c => |
|00010470| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00010480| 20 2a 2f 0a 2f 2a 20 31 | 20 62 79 74 65 20 3d 20 | */./* 1| byte = |
|00010490| 31 32 35 30 30 30 20 6e | 53 65 63 20 20 20 20 20 |125000 n|Sec |
|000104a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000104b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000104c0| 2a 2f 0a 2f 2a 20 56 53 | 59 4e 43 20 69 73 20 74 |*/./* VS|YNC is t|
|000104d0| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 62 79 74 |he numbe|r of byt|
|000104e0| 65 73 20 70 6c 61 79 65 | 64 20 69 6e 20 31 2f 35 |es playe|d in 1/5|
|000104f0| 30 20 73 65 63 20 20 20 | 20 20 20 20 20 20 20 2a |0 sec | *|
|00010500| 2f 0a 2f 2a 20 69 2e 65 | 2e 2c 20 38 30 30 30 2f |/./* i.e|., 8000/|
|00010510| 35 30 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |50 | |
|00010520| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00010530| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2a 2f | | */|
|00010540| 0a 2f 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |./******|********|
|00010550| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00010560| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00010570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2f 0a |********|******/.|
|00010580| 23 64 65 66 69 6e 65 20 | 48 5a 20 38 30 30 30 0a |#define |HZ 8000.|
|00010590| 20 20 20 20 20 0a 2f 2a | 20 61 74 20 73 6f 6d 65 | ./*| at some|
|000105a0| 20 70 6f 69 6e 74 2c 20 | 77 65 20 73 68 6f 75 6c | point, |we shoul|
|000105b0| 64 20 64 65 63 69 64 65 | 20 66 6f 72 20 61 6e 20 |d decide| for an |
|000105c0| 6f 76 65 72 73 61 6d 70 | 6c 65 20 72 61 74 65 2e |oversamp|le rate.|
|000105d0| 0a 20 2a 20 32 20 73 65 | 65 6d 73 20 6c 69 6b 65 |. * 2 se|ems like|
|000105e0| 20 61 20 67 6f 6f 64 20 | 69 64 65 61 2e 0a 20 2a | a good |idea.. *|
|000105f0| 2f 0a 0a 2f 2a 20 74 68 | 69 73 20 69 73 20 74 68 |/../* th|is is th|
|00010600| 65 20 74 79 70 65 20 66 | 6f 72 20 73 74 6f 72 69 |e type f|or stori|
|00010610| 6e 67 20 74 68 65 20 73 | 61 6d 70 6c 65 73 2e 0a |ng the s|amples..|
|00010620| 20 2a 20 57 61 72 6e 69 | 6e 67 3a 20 63 68 61 72 | * Warni|ng: char|
|00010630| 20 6d 75 73 74 20 62 65 | 20 73 69 67 6e 65 64 2e | must be| signed.|
|00010640| 0a 20 2a 2f 0a 0a 74 79 | 70 65 64 65 66 20 63 68 |. */..ty|pedef ch|
|00010650| 61 72 20 53 41 4d 50 4c | 45 3b 0a 66 66 65 63 74 |ar SAMPL|E;.ffect|
|00010660| 3b 0a 20 20 20 75 6e 73 | 69 67 6e 65 64 20 63 68 |;. uns|igned ch|
|00010670| 61 72 20 70 61 72 61 6d | 65 74 65 72 73 3b 0a 20 |ar param|eters;. |
|00010680| 20 20 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 | unsign|ed char |
|00010690| 6e 6f 74 65 3b 0a 20 20 | 20 69 6e 74 20 70 69 74 |note;. | int pit|
|000106a0| 63 68 3b 0a 20 20 20 7d | 3b 0a 0a 73 74 72 75 63 |ch;. }|;..struc|
|000106b0| 74 20 62 6c 6f 63 6b 0a | 20 20 20 7b 0a 20 20 20 |t block.| {. |
|000106c0| 73 74 72 75 63 74 20 65 | 76 65 6e 74 20 65 5b 4e |struct e|vent e[N|
|000106d0| 55 4d 42 45 52 5f 54 52 | 41 43 4b 53 5d 5b 42 4c |UMBER_TR|ACKS][BL|
|000106e0| 4f 43 4b 5f 4c 45 4e 47 | 54 48 5d 3b 0a 20 20 20 |OCK_LENG|TH];. |
|000106f0| 7d 3b 0a 20 20 20 20 0a | 20 20 20 20 20 20 20 20 |};. .| |
|00010700| 0a 73 74 72 75 63 74 20 | 73 6f 6e 67 5f 69 6e 66 |.struct |song_inf|
|00010710| 6f 0a 20 20 20 7b 0a 20 | 20 20 69 6e 74 20 6c 65 |o. {. | int le|
|00010720| 6e 67 74 68 3b 0a 20 20 | 20 69 6e 74 20 6d 61 78 |ngth;. | int max|
|00010730| 70 61 74 3b 0a 20 20 20 | 63 68 61 72 20 70 61 74 |pat;. |char pat|
|00010740| 6e 75 6d 62 65 72 5b 4e | 55 4d 42 45 52 5f 50 41 |number[N|UMBER_PA|
|00010750| 54 54 45 52 4e 53 5d 3b | 0a 20 20 20 73 74 72 75 |TTERNS];|. stru|
|00010760| 63 74 20 62 6c 6f 63 6b | 20 2a 70 62 6c 6f 63 6b |ct block| *pblock|
|00010770| 73 3b 0a 20 20 20 7d 3b | 0a 0a 73 74 72 75 63 74 |s;. };|..struct|
|00010780| 20 73 6f 6e 67 0a 20 20 | 20 7b 0a 20 20 20 63 68 | song. | {. ch|
|00010790| 61 72 20 2a 74 69 74 6c | 65 3b 0a 20 20 20 20 20 |ar *titl|e;. |
|000107a0| 20 2f 2a 20 73 61 6d 70 | 6c 65 20 30 20 69 73 20 | /* samp|le 0 is |
|000107b0| 61 6c 77 61 79 73 20 61 | 20 64 75 6d 6d 79 20 73 |always a| dummy s|
|000107c0| 61 6d 70 6c 65 20 2a 2f | 0a 20 20 20 73 74 72 75 |ample */|. stru|
|000107d0| 63 74 20 73 61 6d 70 6c | 65 5f 69 6e 66 6f 20 2a |ct sampl|e_info *|
|000107e0| 73 61 6d 70 6c 65 73 5b | 4e 55 4d 42 45 52 5f 53 |samples[|NUMBER_S|
|000107f0| 41 4d 50 4c 45 53 5d 3b | 0a 20 20 20 73 74 72 75 |AMPLES];|. stru|
|00010800| 65 78 74 65 72 6e 2e 68 | 00 00 00 00 00 00 00 00 |extern.h|........|
|00010810| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010860| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00010870| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00010880| 20 20 31 32 35 35 30 20 | 20 35 31 31 37 31 36 30 | 12550 | 5117160|
|00010890| 31 33 34 20 20 20 35 36 | 34 34 00 20 00 00 00 00 |134 56|44. ....|
|000108a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000108b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000108c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000108d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000108e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000108f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010900| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010910| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010920| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010930| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010940| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010950| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010970| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010980| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000109a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000109b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000109c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000109d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000109e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000109f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00010a00| 2f 2a 20 65 78 74 65 72 | 6e 2e 68 20 2a 2f 0a 0a |/* exter|n.h */..|
|00010a10| 2f 2a 20 24 41 75 74 68 | 6f 72 3a 20 65 73 70 69 |/* $Auth|or: espi|
|00010a20| 65 20 24 0a 20 2a 20 24 | 49 64 3a 20 65 78 74 65 |e $. * $|Id: exte|
|00010a30| 72 6e 2e 68 2c 76 20 32 | 2e 39 20 31 39 39 31 2f |rn.h,v 2|.9 1991/|
|00010a40| 31 32 2f 30 34 20 30 38 | 3a 32 38 3a 35 33 20 65 |12/04 08|:28:53 e|
|00010a50| 73 70 69 65 20 45 78 70 | 20 65 73 70 69 65 20 24 |spie Exp| espie $|
|00010a60| 0a 20 2a 20 24 52 65 76 | 69 73 69 6f 6e 3a 20 32 |. * $Rev|ision: 2|
|00010a70| 2e 39 20 24 0a 20 2a 20 | 24 4c 6f 67 3a 20 65 78 |.9 $. * |$Log: ex|
|00010a80| 74 65 72 6e 2e 68 2c 76 | 20 24 0a 20 2a 20 52 65 |tern.h,v| $. * Re|
|00010a90| 76 69 73 69 6f 6e 20 32 | 2e 39 20 20 31 39 39 31 |vision 2|.9 1991|
|00010aa0| 2f 31 32 2f 30 34 20 20 | 30 38 3a 32 38 3a 35 33 |/12/04 |08:28:53|
|00010ab0| 20 20 65 73 70 69 65 0a | 20 2a 20 53 65 70 61 72 | espie.| * Separ|
|00010ac0| 61 74 65 64 20 6d 69 78 | 2f 73 74 65 72 65 6f 20 |ated mix|/stereo |
|00010ad0| 73 74 75 66 66 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 |stuff.. |*. * Rev|
|00010ae0| 69 73 69 6f 6e 20 32 2e | 38 20 20 31 39 39 31 2f |ision 2.|8 1991/|
|00010af0| 31 32 2f 30 33 20 20 32 | 30 3a 34 33 3a 34 36 20 |12/03 2|0:43:46 |
|00010b00| 20 65 73 70 69 65 0a 20 | 2a 20 41 64 64 65 64 20 | espie. |* Added |
|00010b10| 70 6f 73 73 69 62 69 6c | 69 74 79 20 74 6f 20 67 |possibil|ity to g|
|00010b20| 65 74 20 62 61 63 6b 20 | 74 6f 20 4d 4f 4e 4f 20 |et back |to MONO |
|00010b30| 66 6f 72 20 74 68 65 20 | 73 67 69 2e 0a 20 2a 0a |for the |sgi.. *.|
|00010b40| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 32 2e 37 20 | * Revis|ion 2.7 |
|00010b50| 20 31 39 39 31 2f 31 32 | 2f 30 33 20 20 31 38 3a | 1991/12|/03 18:|
|00010b60| 30 37 3a 33 38 20 20 65 | 73 70 69 65 0a 20 2a 20 |07:38 e|spie. * |
|00010b70| 41 64 64 65 64 20 73 74 | 65 72 65 6f 20 63 61 70 |Added st|ereo cap|
|00010b80| 61 62 69 6c 69 74 69 65 | 73 20 74 6f 20 74 68 65 |abilitie|s to the|
|00010b90| 20 69 6e 64 69 67 6f 20 | 76 65 72 73 69 6f 6e 2e | indigo |version.|
|00010ba0| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00010bb0| 32 2e 36 20 20 31 39 39 | 31 2f 31 32 2f 30 33 20 |2.6 199|1/12/03 |
|00010bc0| 20 31 37 3a 31 30 3a 31 | 31 20 20 65 73 70 69 65 | 17:10:1|1 espie|
|00010bd0| 0a 20 2a 20 41 64 64 65 | 64 20 73 6f 6d 65 20 6e |. * Adde|d some n|
|00010be0| 65 77 20 73 6f 6e 67 20 | 74 79 70 65 73 20 74 6f |ew song |types to|
|00010bf0| 20 61 75 74 6f 6d 61 74 | 69 7a 65 20 74 68 65 20 | automat|ize the |
|00010c00| 63 68 6f 69 63 65 20 70 | 72 6f 63 65 73 73 2e 0a |choice p|rocess..|
|00010c10| 20 2a 0a 20 2a 20 52 65 | 76 69 73 69 6f 6e 20 32 | *. * Re|vision 2|
|00010c20| 2e 35 20 20 31 39 39 31 | 2f 31 31 2f 31 39 20 20 |.5 1991|/11/19 |
|00010c30| 31 36 3a 30 37 3a 31 39 | 20 20 65 73 70 69 65 0a |16:07:19| espie.|
|00010c40| 20 2a 20 41 64 64 65 64 | 20 63 6f 6d 6d 65 6e 74 | * Added| comment|
|00010c50| 73 2c 20 6d 6f 76 65 64 | 20 6d 69 6e 6f 72 20 73 |s, moved| minor s|
|00010c60| 74 75 66 66 20 61 72 6f | 75 6e 64 2e 0a 20 2a 0a |tuff aro|und.. *.|
|00010c70| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 32 2e 34 20 | * Revis|ion 2.4 |
|00010c80| 20 31 39 39 31 2f 31 31 | 2f 31 38 20 20 31 34 3a | 1991/11|/18 14:|
|00010c90| 31 30 3a 33 30 20 20 65 | 73 70 69 65 0a 20 2a 20 |10:30 e|spie. * |
|00010ca0| 4d 6f 76 65 64 20 72 65 | 73 61 6d 70 6c 69 6e 67 |Moved re|sampling|
|00010cb0| 20 74 6f 20 61 75 64 69 | 6f 2c 20 61 64 64 65 64 | to audi|o, added|
|00010cc0| 20 70 72 6f 74 6f 74 79 | 70 65 2e 0a 20 2a 0a 20 | prototy|pe.. *. |
|00010cd0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 32 2e 33 20 20 |* Revisi|on 2.3 |
|00010ce0| 31 39 39 31 2f 31 31 2f | 31 38 20 20 30 31 3a 32 |1991/11/|18 01:2|
|00010cf0| 33 3a 33 30 20 20 65 73 | 70 69 65 0a 20 2a 20 41 |3:30 es|pie. * A|
|00010d00| 64 64 65 64 20 53 41 4d | 50 4c 45 5f 46 41 55 4c |dded SAM|PLE_FAUL|
|00010d10| 54 2c 20 66 6f 72 20 74 | 72 79 69 6e 67 20 74 6f |T, for t|rying to|
|00010d20| 20 70 6c 61 79 0a 20 2a | 20 61 20 6e 6f 74 65 20 | play. *| a note |
|00010d30| 77 69 74 68 6f 75 74 20 | 61 20 73 61 6d 70 6c 65 |without |a sample|
|00010d40| 20 28 6e 6f 74 20 72 65 | 61 6c 6c 79 20 61 6e 20 | (not re|ally an |
|00010d50| 65 72 72 6f 72 29 2e 0a | 20 2a 0a 20 2a 20 52 65 |error)..| *. * Re|
|00010d60| 76 69 73 69 6f 6e 20 32 | 2e 32 20 20 31 39 39 31 |vision 2|.2 1991|
|00010d70| 2f 31 31 2f 31 38 20 20 | 30 31 3a 31 30 3a 34 35 |/11/18 |01:10:45|
|00010d80| 20 20 65 73 70 69 65 0a | 20 2a 20 41 64 64 65 64 | espie.| * Added|
|00010d90| 20 73 6f 6d 65 20 70 72 | 6f 74 6f 74 79 70 65 73 | some pr|ototypes|
|00010da0| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|00010db0| 20 32 2e 31 20 20 31 39 | 39 31 2f 31 31 2f 31 37 | 2.1 19|91/11/17|
|00010dc0| 20 20 32 33 3a 30 37 3a | 35 38 20 20 65 73 70 69 | 23:07:|58 espi|
|00010dd0| 65 0a 20 2a 20 4d 6f 76 | 65 64 20 70 72 6f 74 6f |e. * Mov|ed proto|
|00010de0| 74 79 70 65 73 20 61 72 | 6f 75 6e 64 2c 20 61 64 |types ar|ound, ad|
|00010df0| 64 65 64 20 6e 65 77 20 | 66 75 6e 63 74 69 6f 6e |ded new |function|
|00010e00| 73 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |s.. *. *| Revisio|
|00010e10| 6e 20 32 2e 30 20 20 31 | 39 39 31 2f 31 31 2f 31 |n 2.0 1|991/11/1|
|00010e20| 37 20 20 32 31 3a 34 32 | 3a 30 38 20 20 65 73 70 |7 21:42|:08 esp|
|00010e30| 69 65 0a 20 2a 20 41 64 | 64 65 64 20 70 72 6f 74 |ie. * Ad|ded prot|
|00010e40| 6f 74 79 70 65 73 20 66 | 6f 72 20 6e 65 77 20 66 |otypes f|or new f|
|00010e50| 75 6e 63 74 69 6f 6e 73 | 2e 0a 20 2a 20 52 65 6d |unctions|.. * Rem|
|00010e60| 6f 76 65 64 20 70 72 6f | 74 6f 74 79 70 65 73 20 |oved pro|totypes |
|00010e70| 66 6f 72 20 73 6f 6d 65 | 20 63 6f 6d 6d 61 6e 64 |for some| command|
|00010e80| 73 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |s.. *. *| Revisio|
|00010e90| 6e 20 31 2e 37 20 20 31 | 39 39 31 2f 31 31 2f 30 |n 1.7 1|991/11/0|
|00010ea0| 38 20 20 31 34 3a 32 35 | 3a 35 35 20 20 65 73 70 |8 14:25|:55 esp|
|00010eb0| 69 65 0a 20 2a 20 4d 6f | 64 69 66 69 65 64 20 61 |ie. * Mo|dified a|
|00010ec0| 75 64 69 6f 20 70 72 6f | 74 6f 74 79 70 65 20 73 |udio pro|totype s|
|00010ed0| 6f 20 74 68 61 74 20 79 | 6f 75 20 63 61 6e 20 63 |o that y|ou can c|
|00010ee0| 68 61 6e 67 65 0a 20 2a | 20 66 72 65 71 75 65 6e |hange. *| frequen|
|00010ef0| 63 79 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |cy.. *. |* Revisi|
|00010f00| 6f 6e 20 31 2e 36 20 20 | 31 39 39 31 2f 31 31 2f |on 1.6 |1991/11/|
|00010f10| 30 38 20 20 31 33 3a 33 | 35 3a 35 37 20 20 65 73 |08 13:3|5:57 es|
|00010f20| 70 69 65 0a 20 2a 20 41 | 64 64 65 64 20 70 72 6f |pie. * A|dded pro|
|00010f30| 74 6f 74 79 70 65 20 66 | 6f 72 20 72 65 6c 65 61 |totype f|or relea|
|00010f40| 73 65 5f 73 6f 6e 67 2e | 0a 20 2a 0a 20 2a 20 52 |se_song.|. *. * R|
|00010f50| 65 76 69 73 69 6f 6e 20 | 31 2e 35 20 20 31 39 39 |evision |1.5 199|
|00010f60| 31 2f 31 31 2f 30 37 20 | 20 32 31 3a 34 30 3a 31 |1/11/07 | 21:40:1|
|00010f70| 36 20 20 65 73 70 69 65 | 0a 20 2a 20 41 64 64 65 |6 espie|. * Adde|
|00010f80| 64 20 61 72 70 65 67 67 | 69 6f 20 65 66 66 65 63 |d arpegg|io effec|
|00010f90| 74 2e 0a 20 2a 0a 20 2a | 20 52 65 76 69 73 69 6f |t.. *. *| Revisio|
|00010fa0| 6e 20 31 2e 34 20 20 31 | 39 39 31 2f 31 31 2f 30 |n 1.4 1|991/11/0|
|00010fb0| 37 20 20 32 30 3a 30 35 | 3a 35 33 20 20 65 73 70 |7 20:05|:53 esp|
|00010fc0| 69 65 0a 20 2a 20 41 64 | 64 65 64 20 65 6e 74 72 |ie. * Ad|ded entr|
|00010fd0| 69 65 73 20 66 6f 72 20 | 6e 65 77 20 65 66 66 65 |ies for |new effe|
|00010fe0| 63 74 73 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |cts.. *.| * Revis|
|00010ff0| 69 6f 6e 20 31 2e 33 20 | 20 31 39 39 31 2f 31 31 |ion 1.3 | 1991/11|
|00011000| 2f 30 36 20 20 30 39 3a | 34 36 3a 30 36 20 20 65 |/06 09:|46:06 e|
|00011010| 73 70 69 65 0a 20 2a 20 | 41 64 64 65 64 20 65 6e |spie. * |Added en|
|00011020| 74 72 69 65 73 20 66 6f | 72 20 63 6f 6d 6d 61 6e |tries fo|r comman|
|00011030| 64 73 2e 63 2e 0a 20 2a | 0a 20 2a 20 52 65 76 69 |ds.c.. *|. * Revi|
|00011040| 73 69 6f 6e 20 31 2e 32 | 20 20 31 39 39 31 2f 31 |sion 1.2| 1991/1|
|00011050| 31 2f 30 34 20 20 31 33 | 3a 32 33 3a 35 39 20 20 |1/04 13|:23:59 |
|00011060| 65 73 70 69 65 0a 20 2a | 20 4d 6f 76 65 64 20 73 |espie. *| Moved s|
|00011070| 6f 6d 65 20 64 65 66 69 | 6e 69 74 69 6f 6e 73 20 |ome defi|nitions |
|00011080| 66 72 6f 6d 20 73 74 72 | 33 32 2e 0a 20 2a 20 41 |from str|32.. * A|
|00011090| 64 64 65 64 20 64 65 62 | 75 67 2e 0a 20 2a 0a 20 |dded deb|ug.. *. |
|000110a0| 2a 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 31 20 20 |* Revisi|on 1.1 |
|000110b0| 31 39 39 31 2f 31 31 2f | 30 33 20 20 32 32 3a 34 |1991/11/|03 22:4|
|000110c0| 35 3a 32 36 20 20 65 73 | 70 69 65 0a 20 2a 20 49 |5:26 es|pie. * I|
|000110d0| 6e 69 74 69 61 6c 20 72 | 65 76 69 73 69 6f 6e 0a |nitial r|evision.|
|000110e0| 20 2a 0a 20 2a 2f 0a 0a | 2f 2a 20 73 74 72 33 32 | *. */..|/* str32|
|000110f0| 2e 63 20 2a 2f 0a 0a 2f | 2a 20 65 72 72 6f 72 20 |.c */../|* error |
|00011100| 74 79 70 65 73 2e 20 45 | 76 65 72 79 74 68 69 6e |types. E|verythin|
|00011110| 67 20 69 73 20 63 65 6e | 74 72 61 6c 69 7a 65 64 |g is cen|tralized|
|00011120| 2c 0a 20 2a 20 61 6e 64 | 20 77 65 20 63 68 65 63 |,. * and| we chec|
|00011130| 6b 20 69 6e 20 73 6f 6d | 65 20 70 6c 61 63 65 73 |k in som|e places|
|00011140| 20 28 73 65 65 20 72 65 | 61 64 2c 20 70 6c 61 79 | (see re|ad, play|
|00011150| 65 72 20 61 6e 64 20 73 | 74 72 33 32 29 0a 20 2a |er and s|tr32). *|
|00011160| 20 74 68 61 74 20 74 68 | 65 72 65 20 77 61 73 20 | that th|ere was |
|00011170| 6e 6f 20 65 72 72 6f 72 | 2e 20 41 64 64 69 74 69 |no error|. Additi|
|00011180| 6f 6e 6e 61 6c 6c 79 20 | 73 69 67 6e 61 6c 20 74 |onnally |signal t|
|00011190| 72 61 70 73 20 77 6f 72 | 6b 0a 20 2a 20 74 68 61 |raps wor|k. * tha|
|000111a0| 74 20 77 61 79 20 74 6f | 6f 2e 0a 20 2a 2f 0a 20 |t way to|o.. */. |
|000111b0| 0a 2f 2a 20 6e 6f 72 6d | 61 6c 20 73 74 61 74 65 |./* norm|al state|
|000111c0| 20 2a 2f 0a 23 64 65 66 | 69 6e 65 20 4e 4f 4e 45 | */.#def|ine NONE|
|000111d0| 20 30 20 20 0a 2f 2a 20 | 72 65 61 64 20 65 72 72 | 0 ./* |read err|
|000111e0| 6f 72 20 2a 2f 0a 23 64 | 65 66 69 6e 65 20 46 49 |or */.#d|efine FI|
|000111f0| 4c 45 5f 54 4f 4f 5f 53 | 48 4f 52 54 20 31 0a 23 |LE_TOO_S|HORT 1.#|
|00011200| 64 65 66 69 6e 65 20 43 | 4f 52 52 55 50 54 5f 46 |define C|ORRUPT_F|
|00011210| 49 4c 45 20 32 0a 2f 2a | 20 74 72 61 70 20 65 72 |ILE 2./*| trap er|
|00011220| 72 6f 72 3a 20 67 6f 74 | 6f 20 6e 65 78 74 20 73 |ror: got|o next s|
|00011230| 6f 6e 67 20 72 69 67 68 | 74 20 6e 6f 77 20 2a 2f |ong righ|t now */|
|00011240| 0a 23 64 65 66 69 6e 65 | 20 4e 45 58 54 5f 53 4f |.#define| NEXT_SO|
|00011250| 4e 47 20 33 0a 2f 2a 20 | 72 75 6e 20 74 69 6d 65 |NG 3./* |run time|
|00011260| 20 70 72 6f 62 6c 65 6d | 20 2a 2f 0a 23 64 65 66 | problem| */.#def|
|00011270| 69 6e 65 20 46 41 55 4c | 54 20 34 0a 2f 2a 20 74 |ine FAUL|T 4./* t|
|00011280| 68 65 20 73 6f 6e 67 20 | 68 61 73 20 65 6e 64 65 |he song |has ende|
|00011290| 64 20 2a 2f 0a 23 64 65 | 66 69 6e 65 20 45 4e 44 |d */.#de|fine END|
|000112a0| 45 44 20 35 0a 2f 2a 20 | 75 6e 72 65 63 6f 76 65 |ED 5./* |unrecove|
|000112b0| 72 61 62 6c 65 20 70 72 | 6f 62 6c 65 6d 3a 20 74 |rable pr|oblem: t|
|000112c0| 79 70 69 63 61 6c 6c 79 | 2c 20 74 72 79 69 6e 67 |ypically|, trying|
|000112d0| 20 74 6f 20 0a 20 2a 20 | 6a 75 6d 70 20 74 6f 20 | to . * |jump to |
|000112e0| 6e 6f 77 68 65 72 65 20 | 6c 61 6e 64 2e 0a 20 2a |nowhere |land.. *|
|000112f0| 2f 0a 23 64 65 66 69 6e | 65 20 55 4e 52 45 43 4f |/.#defin|e UNRECO|
|00011300| 56 45 52 41 42 4c 45 20 | 36 0a 2f 2a 20 4d 69 73 |VERABLE |6./* Mis|
|00011310| 73 69 6e 67 20 73 61 6d | 70 6c 65 2e 20 56 65 72 |sing sam|ple. Ver|
|00011320| 79 20 63 6f 6d 6d 6f 6e | 20 65 72 72 6f 72 2c 20 |y common| error, |
|00011330| 6e 6f 74 20 74 6f 6f 20 | 73 65 72 69 6f 75 73 2e |not too |serious.|
|00011340| 20 2a 2f 0a 23 64 65 66 | 69 6e 65 20 53 41 4d 50 | */.#def|ine SAMP|
|00011350| 4c 45 5f 46 41 55 4c 54 | 20 37 0a 0a 65 78 74 65 |LE_FAULT| 7..exte|
|00011360| 72 6e 20 69 6e 74 20 65 | 72 72 6f 72 3b 0a 0a 0a |rn int e|rror;...|
|00011370| 2f 2a 20 78 78 78 5f 61 | 75 64 69 6f 2e 63 20 2a |/* xxx_a|udio.c *|
|00011380| 2f 0a 0a 2f 2a 20 72 65 | 61 6c 5f 66 72 65 71 20 |/../* re|al_freq |
|00011390| 3d 20 6f 70 65 6e 5f 61 | 75 64 69 6f 28 61 73 6b |= open_a|udio(ask|
|000113a0| 5f 66 72 65 71 29 3a 0a | 20 2a 20 74 72 79 20 74 |_freq):.| * try t|
|000113b0| 6f 20 6f 70 65 6e 20 61 | 75 64 69 6f 20 77 69 74 |o open a|udio wit|
|000113c0| 68 20 61 20 73 61 6d 70 | 6c 69 6e 67 20 72 61 74 |h a samp|ling rat|
|000113d0| 65 20 6f 66 20 61 73 6b | 5f 66 72 65 71 2e 0a 20 |e of ask|_freq.. |
|000113e0| 2a 20 57 65 20 67 65 74 | 20 74 68 65 20 72 65 61 |* We get| the rea|
|000113f0| 6c 20 66 72 65 71 75 65 | 6e 63 79 20 62 61 63 6b |l freque|ncy back|
|00011400| 2e 20 49 66 20 77 65 20 | 61 73 6b 20 66 6f 72 20 |. If we |ask for |
|00011410| 30 2c 20 77 65 0a 20 2a | 20 67 65 74 20 74 68 65 |0, we. *| get the|
|00011420| 20 60 60 70 72 65 66 65 | 72 72 65 64 27 27 20 66 | ``prefe|rred'' f|
|00011430| 72 65 71 75 65 6e 63 79 | 2e 0a 20 2a 2f 0a 65 78 |requency|.. */.ex|
|00011440| 74 65 72 6e 20 69 6e 74 | 20 6f 70 65 6e 5f 61 75 |tern int| open_au|
|00011450| 64 69 6f 28 29 3b 0a 2f | 2a 20 63 6c 6f 73 65 5f |dio();./|* close_|
|00011460| 61 75 64 69 6f 28 29 3a | 0a 20 2a 20 72 65 74 75 |audio():|. * retu|
|00011470| 72 6e 73 20 74 68 65 20 | 61 75 64 69 6f 20 74 6f |rns the |audio to|
|00011480| 20 74 68 65 20 73 79 73 | 74 65 6d 20 63 6f 6e 74 | the sys|tem cont|
|00011490| 72 6f 6c 2c 20 64 6f 69 | 6e 67 20 6e 65 63 65 73 |rol, doi|ng neces|
|000114a0| 73 61 72 79 0a 20 2a 20 | 63 6c 65 61 6e 75 70 0a |sary. * |cleanup.|
|000114b0| 20 2a 2f 0a 65 78 74 65 | 72 6e 20 76 6f 69 64 20 | */.exte|rn void |
|000114c0| 63 6c 6f 73 65 5f 61 75 | 64 69 6f 28 29 3b 0a 2f |close_au|dio();./|
|000114d0| 2a 20 73 65 74 5f 6d 69 | 78 28 70 65 72 63 65 6e |* set_mi|x(percen|
|000114e0| 74 29 3a 20 73 65 74 20 | 6d 69 78 20 63 68 61 6e |t): set |mix chan|
|000114f0| 6e 65 6c 73 20 6c 65 76 | 65 6c 2e 0a 20 2a 20 30 |nels lev|el.. * 0|
|00011500| 3a 20 73 70 61 74 69 61 | 6c 20 73 74 65 72 65 6f |: spatia|l stereo|
|00011510| 2e 20 31 30 30 3a 20 6d | 6f 6e 6f 2e 0a 20 2a 2f |. 100: m|ono.. */|
|00011520| 0a 65 78 74 65 72 6e 20 | 76 6f 69 64 20 73 65 74 |.extern |void set|
|00011530| 5f 6d 69 78 28 29 3b 0a | 2f 2a 20 6f 75 74 70 75 |_mix();.|/* outpu|
|00011540| 74 5f 73 61 6d 70 6c 65 | 73 28 6c 2c 20 72 29 3a |t_sample|s(l, r):|
|00011550| 20 6f 75 74 70 75 74 73 | 20 61 20 70 61 69 72 20 | outputs| a pair |
|00011560| 6f 66 20 73 74 65 72 65 | 6f 20 73 61 6d 70 6c 65 |of stere|o sample|
|00011570| 73 2e 0a 20 2a 20 53 61 | 6d 70 6c 65 73 20 61 72 |s.. * Sa|mples ar|
|00011580| 65 20 31 35 20 62 69 74 | 73 20 73 69 67 6e 65 64 |e 15 bit|s signed|
|00011590| 2e 0a 20 2a 2f 0a 65 78 | 74 65 72 6e 20 76 6f 69 |.. */.ex|tern voi|
|000115a0| 64 20 6f 75 74 70 75 74 | 5f 73 61 6d 70 6c 65 73 |d output|_samples|
|000115b0| 28 29 3b 0a 2f 2a 20 66 | 6c 75 73 68 5f 62 75 66 |();./* f|lush_buf|
|000115c0| 66 65 72 28 29 3a 20 63 | 61 6c 6c 20 66 72 6f 6d |fer(): c|all from|
|000115d0| 20 74 69 6d 65 20 74 6f | 20 74 69 6d 65 2c 20 62 | time to| time, b|
|000115e0| 65 63 61 75 73 65 20 62 | 75 66 66 65 72 69 6e 67 |ecause b|uffering|
|000115f0| 0a 20 2a 20 69 73 20 64 | 6f 6e 65 20 62 79 20 74 |. * is d|one by t|
|00011600| 68 65 20 70 72 6f 67 72 | 61 6d 20 74 6f 20 67 65 |he progr|am to ge|
|00011610| 74 20 62 65 74 74 65 72 | 20 28 3f 29 20 70 65 72 |t better| (?) per|
|00011620| 66 6f 72 6d 61 6e 63 65 | 2e 0a 20 2a 2f 0a 65 78 |formance|.. */.ex|
|00011630| 74 65 72 6e 20 76 6f 69 | 64 20 66 6c 75 73 68 5f |tern voi|d flush_|
|00011640| 62 75 66 66 65 72 28 29 | 3b 0a 0a 2f 2a 20 61 75 |buffer()|;../* au|
|00011650| 74 6f 6d 61 74 6f 6e 2e | 63 20 2a 2f 0a 0a 2f 2a |tomaton.|c */../*|
|00011660| 20 69 6e 69 74 5f 61 75 | 74 6f 6d 61 74 6f 6e 28 | init_au|tomaton(|
|00011670| 61 2c 20 73 6f 6e 67 29 | 3a 0a 20 2a 20 70 75 74 |a, song)|:. * put|
|00011680| 20 74 68 65 20 61 75 74 | 6f 6d 61 74 6f 6e 20 61 | the aut|omaton a|
|00011690| 20 69 6e 20 74 68 65 20 | 72 69 67 68 74 20 73 74 | in the |right st|
|000116a0| 61 74 65 20 74 6f 20 70 | 6c 61 79 20 73 6f 6e 67 |ate to p|lay song|
|000116b0| 2e 0a 20 2a 2f 0a 65 78 | 74 65 72 6e 20 76 6f 69 |.. */.ex|tern voi|
|000116c0| 64 20 69 6e 69 74 5f 61 | 75 74 6f 6d 61 74 6f 6e |d init_a|utomaton|
|000116d0| 28 29 3b 0a 2f 2a 20 6e | 65 78 74 5f 74 69 63 6b |();./* n|ext_tick|
|000116e0| 28 61 29 3a 0a 20 2a 20 | 73 65 74 20 75 70 20 65 |(a):. * |set up e|
|000116f0| 76 65 72 79 74 68 69 6e | 67 20 66 6f 72 20 74 68 |verythin|g for th|
|00011700| 65 20 6e 65 78 74 20 74 | 69 63 6b 2e 0a 20 2a 2f |e next t|ick.. */|
|00011710| 0a 65 78 74 65 72 6e 20 | 76 6f 69 64 20 6e 65 78 |.extern |void nex|
|00011720| 74 5f 74 69 63 6b 28 29 | 3b 0a 0a 2f 2a 20 72 65 |t_tick()|;../* re|
|00011730| 61 64 2e 63 20 2a 2f 0a | 0a 2f 2a 20 73 20 3d 20 |ad.c */.|./* s = |
|00011740| 72 65 61 64 5f 73 6f 6e | 67 28 66 2c 20 74 79 70 |read_son|g(f, typ|
|00011750| 65 29 3a 0a 20 2a 20 74 | 72 69 65 73 20 74 6f 20 |e):. * t|ries to |
|00011760| 72 65 61 64 20 66 20 61 | 73 20 61 20 73 6f 6e 67 |read f a|s a song|
|00011770| 20 6f 66 20 74 79 70 65 | 20 4e 45 57 2f 4f 4c 44 | of type| NEW/OLD|
|00011780| 2e 0a 20 2a 20 72 65 74 | 75 72 6e 73 20 4e 55 4c |.. * ret|urns NUL|
|00011790| 4c 20 28 61 6e 64 20 61 | 6e 20 65 72 72 6f 72 29 |L (and a|n error)|
|000117a0| 20 69 66 20 69 74 20 64 | 6f 65 73 6e 27 74 20 77 | if it d|oesn't w|
|000117b0| 6f 72 6b 2e 0a 20 2a 20 | 52 65 74 75 72 6e 73 20 |ork.. * |Returns |
|000117c0| 61 20 64 79 6e 61 6d 69 | 63 20 73 6f 6e 67 20 73 |a dynami|c song s|
|000117d0| 74 72 75 63 74 75 72 65 | 20 69 66 20 73 75 63 63 |tructure| if succ|
|000117e0| 65 73 73 66 75 6c 2e 0a | 20 2a 2f 0a 65 78 74 65 |essful..| */.exte|
|000117f0| 72 6e 20 73 74 72 75 63 | 74 20 73 6f 6e 67 20 2a |rn struc|t song *|
|00011800| 72 65 61 64 5f 73 6f 6e | 67 28 29 3b 0a 0a 2f 2a |read_son|g();../*|
|00011810| 20 64 75 6d 70 5f 73 6f | 6e 67 28 73 29 3a 20 0a | dump_so|ng(s): .|
|00011820| 20 2a 20 64 69 73 70 6c | 61 79 73 20 73 6f 6d 65 | * displ|ays some|
|00011830| 20 69 6e 66 6f 72 6d 61 | 74 69 6f 6e 20 70 65 72 | informa|tion per|
|00011840| 74 69 6e 65 6e 74 20 74 | 6f 20 74 68 65 20 67 69 |tinent t|o the gi|
|00011850| 76 65 6e 20 0a 20 2a 20 | 73 6f 6e 67 20 73 2e 0a |ven . * |song s..|
|00011860| 20 2a 2f 0a 65 78 74 65 | 72 6e 20 76 6f 69 64 20 | */.exte|rn void |
|00011870| 64 75 6d 70 5f 73 6f 6e | 67 28 29 3b 0a 0a 2f 2a |dump_son|g();../*|
|00011880| 20 72 65 6c 65 61 73 65 | 5f 73 6f 6e 67 28 73 29 | release|_song(s)|
|00011890| 3a 0a 20 2a 20 72 65 6c | 65 61 73 65 20 61 6c 6c |:. * rel|ease all|
|000118a0| 20 74 68 65 20 6d 65 6d | 6f 72 79 20 73 6f 6e 67 | the mem|ory song|
|000118b0| 20 6f 63 63 75 70 69 65 | 73 2e 0a 20 2a 2f 0a 65 | occupie|s.. */.e|
|000118c0| 78 74 65 72 6e 20 76 6f | 69 64 20 72 65 6c 65 61 |xtern vo|id relea|
|000118d0| 73 65 5f 73 6f 6e 67 28 | 29 3b 0a 0a 0a 0a 0a 0a |se_song(|);......|
|000118e0| 2f 2a 20 63 6f 6d 6d 61 | 6e 64 73 2e 63 20 2a 2f |/* comma|nds.c */|
|000118f0| 0a 0a 2f 2a 20 69 6e 69 | 74 5f 65 66 66 65 63 74 |../* ini|t_effect|
|00011900| 73 28 29 3a 20 73 65 74 | 73 20 75 70 20 61 6c 6c |s(): set|s up all|
|00011910| 20 64 61 74 61 20 66 6f | 72 20 74 68 65 20 65 66 | data fo|r the ef|
|00011920| 66 65 63 74 73 20 2a 2f | 0a 65 78 74 65 72 6e 20 |fects */|.extern |
|00011930| 76 6f 69 64 20 69 6e 69 | 74 5f 65 66 66 65 63 74 |void ini|t_effect|
|00011940| 73 28 29 3b 0a 2f 2a 20 | 64 6f 5f 6e 6f 74 68 69 |s();./* |do_nothi|
|00011950| 6e 67 3a 20 74 68 69 73 | 20 69 73 20 74 68 65 20 |ng: this| is the |
|00011960| 64 65 66 61 75 6c 74 20 | 62 65 68 61 76 69 6f 72 |default |behavior|
|00011970| 20 66 6f 72 20 61 6e 20 | 65 66 66 65 63 74 2e 0a | for an |effect..|
|00011980| 20 2a 2f 0a 65 78 74 65 | 72 6e 20 76 6f 69 64 20 | */.exte|rn void |
|00011990| 64 6f 5f 6e 6f 74 68 69 | 6e 67 28 29 3b 0a 0a 0a |do_nothi|ng();...|
|000119a0| 0a 0a 2f 2a 20 61 75 64 | 69 6f 2e 63 20 2a 2f 0a |../* aud|io.c */.|
|000119b0| 0a 2f 2a 20 69 6e 69 74 | 5f 74 61 62 6c 65 73 28 |./* init|_tables(|
|000119c0| 6f 76 65 72 73 61 6d 70 | 6c 65 2c 20 66 72 65 71 |oversamp|le, freq|
|000119d0| 75 65 6e 63 79 29 3a 0a | 20 2a 20 70 72 65 63 6f |uency):.| * preco|
|000119e0| 6d 70 75 74 65 73 20 74 | 68 65 20 73 74 65 70 5f |mputes t|he step_|
|000119f0| 74 61 62 6c 65 20 61 6e | 64 20 74 68 65 20 70 69 |table an|d the pi|
|00011a00| 74 63 68 5f 74 61 62 6c | 65 0a 20 2a 20 61 63 63 |tch_tabl|e. * acc|
|00011a10| 6f 72 64 69 6e 67 20 74 | 6f 20 74 68 65 20 64 65 |ording t|o the de|
|00011a20| 73 69 72 65 64 20 6f 76 | 65 72 73 61 6d 70 6c 65 |sired ov|ersample|
|00011a30| 20 61 6e 64 20 66 72 65 | 71 75 65 6e 63 79 2e 0a | and fre|quency..|
|00011a40| 20 2a 20 54 68 69 73 20 | 69 73 20 73 74 61 74 69 | * This |is stati|
|00011a50| 63 2c 20 79 6f 75 20 63 | 61 6e 20 63 61 6c 6c 20 |c, you c|an call |
|00011a60| 69 74 20 61 67 61 69 6e | 20 77 68 65 6e 65 76 65 |it again| wheneve|
|00011a70| 72 20 79 6f 75 20 77 61 | 6e 74 2e 0a 20 2a 2f 0a |r you wa|nt.. */.|
|00011a80| 65 78 74 65 72 6e 20 76 | 6f 69 64 20 69 6e 69 74 |extern v|oid init|
|00011a90| 5f 74 61 62 6c 65 73 28 | 29 3b 0a 0a 2f 2a 20 70 |_tables(|);../* p|
|00011aa0| 69 74 63 68 20 6f 66 20 | 65 61 63 68 20 61 6e 64 |itch of |each and|
|00011ab0| 20 65 76 65 72 79 20 6e | 6f 74 65 20 2a 2f 0a 65 | every n|ote */.e|
|00011ac0| 78 74 65 72 6e 20 69 6e | 74 20 70 69 74 63 68 5f |xtern in|t pitch_|
|00011ad0| 74 61 62 6c 65 5b 5d 3b | 0a 0a 2f 2a 20 72 65 73 |table[];|../* res|
|00011ae0| 61 6d 70 6c 65 28 63 68 | 61 6e 2c 20 6f 76 65 72 |ample(ch|an, over|
|00011af0| 73 61 6d 70 6c 65 2c 20 | 6e 75 6d 62 65 72 29 3a |sample, |number):|
|00011b00| 0a 20 2a 20 73 65 6e 64 | 20 6e 75 6d 62 65 72 20 |. * send| number |
|00011b10| 73 61 6d 70 6c 65 73 20 | 6f 75 74 20 63 6f 6d 70 |samples |out comp|
|00011b20| 75 74 65 64 20 61 63 63 | 6f 72 64 69 6e 67 0a 20 |uted acc|ording. |
|00011b30| 2a 20 74 6f 20 74 68 65 | 20 63 75 72 72 65 6e 74 |* to the| current|
|00011b40| 20 73 74 61 74 65 20 6f | 66 20 63 68 61 6e 5b 30 | state o|f chan[0|
|00011b50| 3a 4e 55 4d 42 45 52 5f | 43 48 41 4e 4e 45 4c 53 |:NUMBER_|CHANNELS|
|00011b60| 5d 2c 0a 20 2a 20 61 6e | 64 20 6f 76 65 72 73 61 |],. * an|d oversa|
|00011b70| 6d 70 6c 65 2e 0a 20 2a | 2f 0a 65 78 74 65 72 6e |mple.. *|/.extern|
|00011b80| 20 76 6f 69 64 20 72 65 | 73 61 6d 70 6c 65 28 29 | void re|sample()|
|00011b90| 3b 0a 0a 2f 2a 20 72 65 | 73 65 74 5f 6e 6f 74 65 |;../* re|set_note|
|00011ba0| 28 63 68 2c 20 6e 6f 74 | 65 2c 20 70 69 74 63 68 |(ch, not|e, pitch|
|00011bb0| 29 3a 0a 20 2a 20 73 65 | 74 20 63 68 61 6e 6e 65 |):. * se|t channe|
|00011bc0| 6c 20 63 68 20 74 6f 20 | 70 6c 61 79 20 6e 6f 74 |l ch to |play not|
|00011bd0| 65 20 61 74 20 70 69 74 | 63 68 20 70 69 74 63 68 |e at pit|ch pitch|
|00011be0| 0a 20 2a 2f 0a 65 78 74 | 65 72 6e 20 76 6f 69 64 |. */.ext|ern void|
|00011bf0| 20 72 65 73 65 74 5f 6e | 6f 74 65 28 29 3b 0a 0a | reset_n|ote();..|
|00011c00| 2f 2a 20 73 65 74 5f 63 | 75 72 72 65 6e 74 5f 70 |/* set_c|urrent_p|
|00011c10| 69 74 63 68 28 63 68 2c | 20 70 69 74 63 68 29 3a |itch(ch,| pitch):|
|00011c20| 0a 20 2a 20 73 65 74 20 | 63 68 61 6e 6e 65 6c 20 |. * set |channel |
|00011c30| 63 68 20 74 6f 20 70 6c | 61 79 20 61 74 20 70 69 |ch to pl|ay at pi|
|00011c40| 74 63 68 20 70 69 74 63 | 68 0a 20 2a 2f 0a 65 78 |tch pitc|h. */.ex|
|00011c50| 74 65 72 6e 20 76 6f 69 | 64 20 73 65 74 5f 63 75 |tern voi|d set_cu|
|00011c60| 72 72 65 6e 74 5f 70 69 | 74 63 68 28 29 3b 0a 0a |rrent_pi|tch();..|
|00011c70| 0a 0a 2f 2a 20 70 6c 61 | 79 65 72 2e 63 20 2a 2f |../* pla|yer.c */|
|00011c80| 0a 0a 2f 2a 20 69 6e 69 | 74 5f 70 6c 61 79 65 72 |../* ini|t_player|
|00011c90| 28 6f 76 65 72 73 61 6d | 70 6c 65 2c 20 66 72 65 |(oversam|ple, fre|
|00011ca0| 71 75 65 6e 63 79 29 3a | 0a 20 2a 20 73 65 74 73 |quency):|. * sets|
|00011cb0| 20 75 70 20 74 68 65 20 | 70 6c 61 79 65 72 20 66 | up the |player f|
|00011cc0| 6f 72 20 61 20 67 69 76 | 65 6e 20 6f 76 65 72 73 |or a giv|en overs|
|00011cd0| 61 6d 70 6c 65 20 61 6e | 64 0a 20 2a 20 6f 75 74 |ample an|d. * out|
|00011ce0| 70 75 74 20 66 72 65 71 | 75 65 6e 63 79 2e 0a 20 |put freq|uency.. |
|00011cf0| 2a 2f 0a 65 78 74 65 72 | 6e 20 76 6f 69 64 20 69 |*/.exter|n void i|
|00011d00| 6e 69 74 5f 70 6c 61 79 | 65 72 28 29 3b 0a 0a 2f |nit_play|er();../|
|00011d10| 2a 20 70 6c 61 79 5f 73 | 6f 6e 67 28 73 6f 6e 67 |* play_s|ong(song|
|00011d20| 2c 20 70 72 65 66 29 3a | 0a 20 2a 20 70 6c 61 79 |, pref):|. * play|
|00011d30| 73 20 74 68 65 20 73 6f | 6e 67 20 61 63 63 6f 72 |s the so|ng accor|
|00011d40| 64 69 6e 67 20 74 6f 20 | 74 68 65 20 63 75 72 72 |ding to |the curr|
|00011d50| 65 6e 74 20 70 72 65 66 | 2e 0a 20 2a 2f 0a 65 78 |ent pref|.. */.ex|
|00011d60| 74 65 72 6e 20 76 6f 69 | 64 20 70 6c 61 79 5f 73 |tern voi|d play_s|
|00011d70| 6f 6e 67 28 29 3b 0a 0a | 0a 23 64 65 66 69 6e 65 |ong();..|.#define|
|00011d80| 20 41 43 43 55 52 41 43 | 59 20 31 36 0a 23 64 65 | ACCURAC|Y 16.#de|
|00011d90| 66 69 6e 65 20 66 69 78 | 5f 74 6f 5f 69 6e 74 28 |fine fix|_to_int(|
|00011da0| 78 29 20 28 28 78 29 20 | 3e 3e 20 41 43 43 55 52 |x) ((x) |>> ACCUR|
|00011db0| 41 43 59 29 0a 23 64 65 | 66 69 6e 65 20 69 6e 74 |ACY).#de|fine int|
|00011dc0| 5f 74 6f 5f 66 69 78 28 | 78 29 20 28 28 78 29 20 |_to_fix(|x) ((x) |
|00011dd0| 3c 3c 20 41 43 43 55 52 | 41 43 59 29 0a 0a 0a 2f |<< ACCUR|ACY).../|
|00011de0| 2a 20 73 6f 6d 65 20 64 | 65 66 69 6e 69 74 69 6f |* some d|efinitio|
|00011df0| 6e 73 20 66 6f 72 20 62 | 65 69 6e 67 20 61 62 6c |ns for b|eing abl|
|00011e00| 65 20 74 6f 20 72 65 61 | 64 20 73 6f 6e 67 2e 68 |e to rea|d song.h|
|00011e10| 20 2a 2f 0a 0a 23 64 65 | 66 69 6e 65 20 4f 4c 44 | */..#de|fine OLD|
|00011e20| 20 30 0a 23 64 65 66 69 | 6e 65 20 4e 45 57 20 31 | 0.#defi|ne NEW 1|
|00011e30| 0a 2f 2a 20 73 70 65 63 | 69 61 6c 20 6e 65 77 20 |./* spec|ial new |
|00011e40| 74 79 70 65 3a 20 66 6f | 72 20 77 68 65 6e 20 77 |type: fo|r when w|
|00011e50| 65 20 74 72 79 20 74 6f | 20 72 65 61 64 20 69 74 |e try to| read it|
|00011e60| 20 61 73 20 62 6f 74 68 | 20 74 79 70 65 73 2e 0a | as both| types..|
|00011e70| 20 2a 2f 0a 23 64 65 66 | 69 6e 65 20 42 4f 54 48 | */.#def|ine BOTH|
|00011e80| 20 32 0a 2f 2a 20 73 70 | 65 63 69 61 6c 20 74 79 | 2./* sp|ecial ty|
|00011e90| 70 65 3a 20 64 6f 65 73 | 20 6e 6f 74 20 63 68 65 |pe: does| not che|
|00011ea0| 63 6b 20 74 68 65 20 73 | 69 67 6e 61 74 75 72 65 |ck the s|ignature|
|00011eb0| 20 2a 2f 0a 23 64 65 66 | 69 6e 65 20 4e 45 57 5f | */.#def|ine NEW_|
|00011ec0| 4e 4f 5f 43 48 45 43 4b | 20 33 0a 0a 23 64 65 66 |NO_CHECK| 3..#def|
|00011ed0| 69 6e 65 20 4e 55 4d 42 | 45 52 5f 4e 4f 54 45 53 |ine NUMB|ER_NOTES|
|00011ee0| 20 31 32 30 0a 0a 23 64 | 65 66 69 6e 65 20 4d 49 | 120..#d|efine MI|
|00011ef0| 4e 28 41 2c 42 29 20 28 | 28 41 29 3c 28 42 29 20 |N(A,B) (|(A)<(B) |
|00011f00| 3f 20 28 41 29 20 3a 20 | 28 42 29 29 0a 23 64 65 |? (A) : |(B)).#de|
|00011f10| 66 69 6e 65 20 4d 41 58 | 28 41 2c 42 29 20 28 28 |fine MAX|(A,B) ((|
|00011f20| 41 29 3e 28 42 29 20 3f | 20 28 41 29 20 3a 20 28 |A)>(B) ?| (A) : (|
|00011f30| 42 29 29 0a 20 20 20 20 | 20 0a 23 64 65 66 69 6e |B)). | .#defin|
|00011f40| 65 20 44 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 |e D fpri|ntf(stde|
|00011f50| 72 72 2c 20 22 25 64 5c | 6e 22 2c 20 5f 5f 4c 49 |rr, "%d\|n", __LI|
|00011f60| 4e 45 5f 5f 29 3b 0a 0a | 65 74 75 72 6e 20 73 6f |NE__);..|eturn so|
|00011f70| 6e 67 3b 0a 20 20 20 20 | 7d 0a 0a 69 6e 74 20 6f |ng;. |}..int o|
|00011f80| 70 74 76 61 6c 75 65 28 | 64 65 66 29 0a 69 6e 74 |ptvalue(|def).int|
|00011f90| 20 64 65 66 3b 0a 20 20 | 20 20 7b 0a 20 20 20 20 | def;. | {. |
|00011fa0| 69 6e 74 20 64 3b 0a 20 | 20 20 20 20 20 20 20 69 |int d;. | i|
|00011fb0| 66 20 28 73 73 63 61 6e | 66 28 6f 70 74 61 72 67 |f (sscan|f(optarg|
|00011fc0| 2c 20 22 25 64 22 2c 20 | 26 64 29 20 3d 3d 20 31 |, "%d", |&d) == 1|
|00011fd0| 29 0a 20 20 20 20 20 20 | 20 20 20 20 20 20 72 65 |). | re|
|00011fe0| 74 75 72 6e 20 64 3b 0a | 20 20 20 20 20 20 20 20 |turn d;.| |
|00011ff0| 65 6c 73 65 0a 20 20 20 | 20 20 20 20 20 20 20 20 |else. | |
|00012000| 63 68 61 6e 6e 65 6c 2e | 68 00 00 00 00 00 00 00 |channel.|h.......|
|00012010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00012070| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00012080| 20 20 20 36 37 37 32 20 | 20 35 31 31 37 31 36 30 | 6772 | 5117160|
|00012090| 31 33 35 20 20 20 35 37 | 34 31 00 20 00 00 00 00 |135 57|41. ....|
|000120a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000120b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000120c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000120d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000120e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000120f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000121a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000121b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000121c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000121d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000121e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000121f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00012200| 2f 2a 20 63 68 61 6e 6e | 65 6c 2e 68 20 2a 2f 0a |/* chann|el.h */.|
|00012210| 0a 2f 2a 20 24 41 75 74 | 68 6f 72 3a 20 65 73 70 |./* $Aut|hor: esp|
|00012220| 69 65 20 24 0a 20 2a 20 | 24 49 64 3a 20 63 68 61 |ie $. * |$Id: cha|
|00012230| 6e 6e 65 6c 2e 68 2c 76 | 20 32 2e 33 20 31 39 39 |nnel.h,v| 2.3 199|
|00012240| 31 2f 31 32 2f 30 33 20 | 32 33 3a 30 33 3a 33 39 |1/12/03 |23:03:39|
|00012250| 20 65 73 70 69 65 20 45 | 78 70 20 65 73 70 69 65 | espie E|xp espie|
|00012260| 20 24 0a 20 2a 20 24 52 | 65 76 69 73 69 6f 6e 3a | $. * $R|evision:|
|00012270| 20 32 2e 33 20 24 0a 20 | 2a 20 24 4c 6f 67 3a 20 | 2.3 $. |* $Log: |
|00012280| 63 68 61 6e 6e 65 6c 2e | 68 2c 76 20 24 0a 20 2a |channel.|h,v $. *|
|00012290| 20 52 65 76 69 73 69 6f | 6e 20 32 2e 33 20 20 31 | Revisio|n 2.3 1|
|000122a0| 39 39 31 2f 31 32 2f 30 | 33 20 20 32 33 3a 30 33 |991/12/0|3 23:03|
|000122b0| 3a 33 39 20 20 65 73 70 | 69 65 0a 20 2a 20 41 64 |:39 esp|ie. * Ad|
|000122c0| 64 65 64 20 74 72 61 6e | 73 70 6f 73 65 20 66 65 |ded tran|spose fe|
|000122d0| 61 74 75 72 65 2e 0a 20 | 2a 0a 20 2a 20 52 65 76 |ature.. |*. * Rev|
|000122e0| 69 73 69 6f 6e 20 32 2e | 32 20 20 31 39 39 31 2f |ision 2.|2 1991/|
|000122f0| 31 31 2f 31 39 20 20 31 | 36 3a 30 37 3a 31 39 20 |11/19 1|6:07:19 |
|00012300| 20 65 73 70 69 65 0a 20 | 2a 20 41 64 64 65 64 20 | espie. |* Added |
|00012310| 63 6f 6d 6d 65 6e 74 73 | 2c 20 6d 6f 76 65 64 20 |comments|, moved |
|00012320| 6d 69 6e 6f 72 20 73 74 | 75 66 66 20 61 72 6f 75 |minor st|uff arou|
|00012330| 6e 64 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |nd.. *. |* Revisi|
|00012340| 6f 6e 20 32 2e 31 20 20 | 31 39 39 31 2f 31 31 2f |on 2.1 |1991/11/|
|00012350| 31 37 20 20 32 33 3a 30 | 37 3a 35 38 20 20 65 73 |17 23:0|7:58 es|
|00012360| 70 69 65 0a 20 2a 20 41 | 64 64 65 64 20 73 6f 6d |pie. * A|dded som|
|00012370| 65 20 63 6f 6d 6d 65 6e | 74 73 2e 0a 20 2a 0a 20 |e commen|ts.. *. |
|00012380| 2a 20 52 65 76 69 73 69 | 6f 6e 20 32 2e 30 20 20 |* Revisi|on 2.0 |
|00012390| 31 39 39 31 2f 31 31 2f | 31 37 20 20 32 31 3a 34 |1991/11/|17 21:4|
|000123a0| 32 3a 30 38 20 20 65 73 | 70 69 65 0a 20 2a 20 53 |2:08 es|pie. * S|
|000123b0| 74 72 75 63 74 75 72 65 | 64 20 70 61 72 74 20 6f |tructure|d part o|
|000123c0| 66 20 74 68 65 20 63 6f | 64 65 2c 20 65 73 70 65 |f the co|de, espe|
|000123d0| 63 69 61 6c 6c 79 20 72 | 65 70 6c 61 79 20 60 60 |cially r|eplay ``|
|000123e0| 61 75 74 6f 6d 61 74 6f | 6e 27 27 0a 20 2a 20 61 |automato|n''. * a|
|000123f0| 6e 64 20 73 65 74 74 69 | 6e 67 20 75 70 20 6f 66 |nd setti|ng up of|
|00012400| 20 65 66 66 65 63 74 73 | 2e 0a 20 2a 0a 20 2a 20 | effects|.. *. * |
|00012410| 52 65 76 69 73 69 6f 6e | 20 31 2e 35 20 20 31 39 |Revision| 1.5 19|
|00012420| 39 31 2f 31 31 2f 31 36 | 20 20 31 36 3a 35 34 3a |91/11/16| 16:54:|
|00012430| 31 39 20 20 65 73 70 69 | 65 0a 20 2a 20 41 64 64 |19 espi|e. * Add|
|00012440| 65 64 20 63 6f 6d 6d 65 | 6e 74 73 20 74 6f 20 65 |ed comme|nts to e|
|00012450| 61 63 68 20 61 6e 64 20 | 65 76 65 72 79 20 66 69 |ach and |every fi|
|00012460| 65 6c 64 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |eld.. *.| * Revis|
|00012470| 69 6f 6e 20 31 2e 34 20 | 20 31 39 39 31 2f 31 31 |ion 1.4 | 1991/11|
|00012480| 2f 31 36 20 20 31 35 3a | 34 32 3a 34 33 20 20 65 |/16 15:|42:43 e|
|00012490| 73 70 69 65 0a 20 2a 20 | 74 61 62 73 2e 0a 20 2a |spie. * |tabs.. *|
|000124a0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 33 |. * Revi|sion 1.3|
|000124b0| 20 20 31 39 39 31 2f 31 | 31 2f 30 39 20 20 31 37 | 1991/1|1/09 17|
|000124c0| 3a 34 37 3a 33 33 20 20 | 65 73 70 69 65 0a 20 2a |:47:33 |espie. *|
|000124d0| 20 42 75 67 20 63 6f 72 | 72 65 63 74 69 6f 6e 3a | Bug cor|rection:|
|000124e0| 20 77 68 65 6e 20 64 6f | 69 6e 67 20 61 72 70 65 | when do|ing arpe|
|000124f0| 67 67 69 6f 2c 20 74 68 | 65 72 65 20 6d 69 67 68 |ggio, th|ere migh|
|00012500| 74 20 6e 6f 74 0a 20 2a | 20 62 65 20 61 20 6e 65 |t not. *| be a ne|
|00012510| 77 20 6e 6f 74 65 2c 20 | 73 6f 20 77 65 20 68 61 |w note, |so we ha|
|00012520| 76 65 20 74 6f 20 73 61 | 76 65 20 74 68 65 20 6f |ve to sa|ve the o|
|00012530| 6c 64 20 6e 6f 74 65 20 | 76 61 6c 75 65 0a 20 2a |ld note |value. *|
|00012540| 20 61 6e 64 20 64 6f 20 | 74 68 65 20 61 72 70 70 | and do |the arpp|
|00012550| 65 67 67 69 6f 20 6f 6e | 20 74 68 61 74 20 6e 6f |eggio on| that no|
|00012560| 74 65 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |te.. *. |* Revisi|
|00012570| 6f 6e 20 31 2e 32 20 20 | 31 39 39 31 2f 31 31 2f |on 1.2 |1991/11/|
|00012580| 30 37 20 20 32 31 3a 34 | 30 3a 31 36 20 20 65 73 |07 21:4|0:16 es|
|00012590| 70 69 65 0a 20 2a 20 41 | 64 64 65 64 20 66 69 65 |pie. * A|dded fie|
|000125a0| 6c 64 73 20 66 6f 72 20 | 61 72 70 65 67 67 69 6f |lds for |arpeggio|
|000125b0| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|000125c0| 20 31 2e 31 20 20 31 39 | 39 31 2f 31 31 2f 30 36 | 1.1 19|91/11/06|
|000125d0| 20 20 30 39 3a 34 36 3a | 30 36 20 20 65 73 70 69 | 09:46:|06 espi|
|000125e0| 65 0a 20 2a 20 49 6e 69 | 74 69 61 6c 20 72 65 76 |e. * Ini|tial rev|
|000125f0| 69 73 69 6f 6e 0a 20 2a | 0a 20 2a 0a 20 2a 2f 0a |ision. *|. *. */.|
|00012600| 0a 20 20 20 20 20 0a 2f | 2a 20 44 4f 5f 4e 4f 54 |. ./|* DO_NOT|
|00012610| 48 49 4e 47 20 69 73 20 | 61 6c 73 6f 20 75 73 65 |HING is |also use|
|00012620| 64 20 66 6f 72 20 74 68 | 65 20 61 75 74 6f 6d 61 |d for th|e automa|
|00012630| 74 6f 6e 20 2a 2f 0a 23 | 64 65 66 69 6e 65 20 44 |ton */.#|define D|
|00012640| 4f 5f 4e 4f 54 48 49 4e | 47 20 30 0a 23 64 65 66 |O_NOTHIN|G 0.#def|
|00012650| 69 6e 65 20 50 4c 41 59 | 20 31 0a 23 64 65 66 69 |ine PLAY| 1.#defi|
|00012660| 6e 65 20 52 45 50 4c 41 | 59 20 32 0a 20 20 20 20 |ne REPLA|Y 2. |
|00012670| 20 0a 23 64 65 66 69 6e | 65 20 4d 41 58 5f 41 52 | .#defin|e MAX_AR|
|00012680| 50 20 33 0a 20 20 20 20 | 20 0a 2f 2a 20 74 68 65 |P 3. | ./* the|
|00012690| 72 65 20 69 73 20 6e 6f | 20 6e 6f 74 65 20 69 6e |re is no| note in|
|000126a0| 20 65 61 63 68 20 63 68 | 61 6e 6e 65 6c 20 69 6e | each ch|annel in|
|000126b0| 69 74 69 61 6c 6c 79 2e | 0a 20 2a 20 54 68 69 73 |itially.|. * This|
|000126c0| 20 69 73 20 64 65 66 65 | 6e 73 69 76 65 20 70 72 | is defe|nsive pr|
|000126d0| 6f 67 72 61 6d 6d 69 6e | 67 2c 20 62 65 63 61 75 |ogrammin|g, becau|
|000126e0| 73 65 20 73 6f 6d 65 0a | 20 2a 20 63 6f 6d 6d 61 |se some.| * comma|
|000126f0| 6e 64 73 20 72 65 6c 79 | 20 6f 6e 20 74 68 65 20 |nds rely| on the |
|00012700| 70 72 65 76 69 6f 75 73 | 20 6e 6f 74 65 2e 20 43 |previous| note. C|
|00012710| 68 65 63 6b 69 6e 67 0a | 20 2a 20 74 68 61 74 20 |hecking.| * that |
|00012720| 74 68 65 72 65 20 77 61 | 73 20 6e 6f 20 70 72 65 |there wa|s no pre|
|00012730| 76 69 6f 75 73 20 6e 6f | 74 65 20 69 73 20 61 20 |vious no|te is a |
|00012740| 77 61 79 20 74 6f 0a 20 | 2a 20 64 65 74 65 63 74 |way to. |* detect|
|00012750| 20 66 61 75 6c 74 79 20 | 6d 6f 64 75 6c 65 73 2e | faulty |modules.|
|00012760| 0a 20 2a 2f 0a 23 64 65 | 66 69 6e 65 20 4e 4f 5f |. */.#de|fine NO_|
|00012770| 4e 4f 54 45 20 32 35 35 | 0a 0a 73 74 72 75 63 74 |NOTE 255|..struct|
|00012780| 20 63 68 61 6e 6e 65 6c | 0a 20 20 20 20 7b 0a 20 | channel|. {. |
|00012790| 20 20 20 73 74 72 75 63 | 74 20 73 61 6d 70 6c 65 | struc|t sample|
|000127a0| 5f 69 6e 66 6f 20 2a 73 | 61 6d 70 3b 0a 20 20 20 |_info *s|amp;. |
|000127b0| 20 69 6e 74 20 6d 6f 64 | 65 3b 20 20 20 20 20 20 | int mod|e; |
|000127c0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 61 75 74 6f | | /* auto|
|000127d0| 6d 61 74 6f 6e 20 73 74 | 61 74 65 20 66 6f 72 20 |maton st|ate for |
|000127e0| 74 68 65 20 73 6f 75 6e | 64 20 67 65 6e 65 72 61 |the soun|d genera|
|000127f0| 74 69 6f 20 2a 2f 0a 20 | 20 20 20 75 6e 73 69 67 |tio */. | unsig|
|00012800| 6e 65 64 20 69 6e 74 20 | 70 6f 69 6e 74 65 72 3b |ned int |pointer;|
|00012810| 20 20 20 2f 2a 20 63 75 | 72 72 65 6e 74 20 73 61 | /* cu|rrent sa|
|00012820| 6d 70 6c 65 20 70 6f 73 | 69 74 69 6f 6e 20 28 66 |mple pos|ition (f|
|00012830| 69 78 65 64 20 70 6f 73 | 29 20 2a 2f 0a 20 20 20 |ixed pos|) */. |
|00012840| 20 75 6e 73 69 67 6e 65 | 64 20 69 6e 74 20 73 74 | unsigne|d int st|
|00012850| 65 70 3b 20 20 20 20 20 | 20 2f 2a 20 73 61 6d 70 |ep; | /* samp|
|00012860| 6c 65 20 70 6f 73 69 74 | 69 6f 6e 20 69 6e 63 72 |le posit|ion incr|
|00012870| 65 6d 65 6e 74 20 28 67 | 69 76 65 73 20 70 69 74 |ement (g|ives pit|
|00012880| 63 68 29 20 2a 2f 0a 20 | 20 20 20 69 6e 74 20 76 |ch) */. | int v|
|00012890| 6f 6c 75 6d 65 3b 20 20 | 20 20 20 20 20 20 20 20 |olume; | |
|000128a0| 20 20 20 2f 2a 20 63 75 | 72 72 65 6e 74 20 76 6f | /* cu|rrent vo|
|000128b0| 6c 75 6d 65 20 6f 66 20 | 74 68 65 20 73 61 6d 70 |lume of |the samp|
|000128c0| 6c 65 20 28 30 2d 36 34 | 29 20 2a 2f 0a 20 20 20 |le (0-64|) */. |
|000128d0| 20 69 6e 74 20 70 69 74 | 63 68 3b 20 20 20 20 20 | int pit|ch; |
|000128e0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 63 75 72 72 | | /* curr|
|000128f0| 65 6e 74 20 70 69 74 63 | 68 20 6f 66 20 74 68 65 |ent pitc|h of the|
|00012900| 20 73 61 6d 70 6c 65 20 | 2a 2f 0a 20 20 20 20 69 | sample |*/. i|
|00012910| 6e 74 20 6e 6f 74 65 3b | 20 20 20 20 20 20 20 20 |nt note;| |
|00012920| 20 20 20 20 20 20 20 2f | 2a 20 77 65 20 68 61 76 | /|* we hav|
|00012930| 65 20 74 6f 20 73 61 76 | 65 20 74 68 65 20 6e 6f |e to sav|e the no|
|00012940| 74 65 20 63 61 75 73 65 | 20 2a 2f 0a 20 20 20 20 |te cause| */. |
|00012950| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00012960| 20 20 20 20 20 20 20 20 | 2f 2a 20 77 65 20 63 61 | |/* we ca|
|00012970| 6e 20 64 6f 20 61 6e 20 | 61 72 70 65 67 67 69 6f |n do an |arpeggio|
|00012980| 20 77 69 74 68 6f 75 74 | 20 61 20 6e 65 77 20 6e | without| a new n|
|00012990| 6f 74 65 20 2a 2f 0a 20 | 20 20 20 0a 20 20 20 20 |ote */. | . |
|000129a0| 69 6e 74 20 61 72 70 5b | 4d 41 58 5f 41 52 50 5d |int arp[|MAX_ARP]|
|000129b0| 3b 20 20 20 20 20 20 20 | 2f 2a 20 74 68 65 20 74 |; |/* the t|
|000129c0| 68 72 65 65 20 70 69 74 | 63 68 20 76 61 6c 75 65 |hree pit|ch value|
|000129d0| 73 20 66 6f 72 20 61 6e | 20 61 72 70 65 67 67 69 |s for an| arpeggi|
|000129e0| 6f 20 2a 2f 0a 20 20 20 | 20 69 6e 74 20 61 72 70 |o */. | int arp|
|000129f0| 69 6e 64 65 78 3b 20 20 | 20 20 20 20 20 20 20 20 |index; | |
|00012a00| 20 2f 2a 20 61 6e 20 69 | 6e 64 65 78 20 74 6f 20 | /* an i|ndex to |
|00012a10| 6b 6e 6f 77 20 77 68 69 | 63 68 20 6e 6f 74 65 20 |know whi|ch note |
|00012a20| 74 68 65 20 61 72 70 65 | 67 67 69 6f 20 69 73 20 |the arpe|ggio is |
|00012a30| 64 6f 69 6e 67 0a 20 20 | 20 20 20 20 20 20 20 20 |doing. | |
|00012a40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00012a50| 20 20 20 2a 2f 0a 0a 20 | 20 20 20 69 6e 74 20 76 | */.. | int v|
|00012a60| 69 62 6f 66 66 73 65 74 | 3b 20 20 20 20 20 20 20 |iboffset|; |
|00012a70| 20 20 20 2f 2a 20 63 75 | 72 72 65 6e 74 20 6f 66 | /* cu|rrent of|
|00012a80| 66 73 65 74 20 66 6f 72 | 20 76 69 62 72 61 74 6f |fset for| vibrato|
|00012a90| 20 28 69 66 20 61 6e 79 | 29 20 2a 2f 0a 20 20 20 | (if any|) */. |
|00012aa0| 20 69 6e 74 20 76 69 62 | 64 65 70 74 68 3b 20 20 | int vib|depth; |
|00012ab0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 64 65 70 74 | | /* dept|
|00012ac0| 68 20 6f 66 20 76 69 62 | 72 61 74 6f 20 28 69 66 |h of vib|rato (if|
|00012ad0| 20 61 6e 79 29 20 2a 2f | 0a 0a 20 20 20 20 69 6e | any) */|.. in|
|00012ae0| 74 20 73 6c 69 64 65 3b | 20 20 20 20 20 20 20 20 |t slide;| |
|00012af0| 20 20 20 20 20 20 2f 2a | 20 73 74 65 70 20 73 69 | /*| step si|
|00012b00| 7a 65 20 6f 66 20 70 69 | 74 63 68 20 73 6c 69 64 |ze of pi|tch slid|
|00012b10| 65 20 2a 2f 0a 0a 20 20 | 20 20 69 6e 74 20 70 69 |e */.. | int pi|
|00012b20| 74 63 68 67 6f 61 6c 3b | 20 20 20 20 20 20 20 20 |tchgoal;| |
|00012b30| 20 20 2f 2a 20 70 69 74 | 63 68 20 74 6f 20 73 6c | /* pit|ch to sl|
|00012b40| 69 64 65 20 74 6f 20 2a | 2f 0a 20 20 20 20 69 6e |ide to *|/. in|
|00012b50| 74 20 70 69 74 63 68 72 | 61 74 65 3b 20 20 20 20 |t pitchr|ate; |
|00012b60| 20 20 20 20 20 20 2f 2a | 20 73 74 65 70 20 72 61 | /*| step ra|
|00012b70| 74 65 20 66 6f 72 20 70 | 6f 72 74 61 6d 65 6e 74 |te for p|ortament|
|00012b80| 6f 20 2a 2f 0a 0a 20 20 | 20 20 69 6e 74 20 76 6f |o */.. | int vo|
|00012b90| 6c 75 6d 65 72 61 74 65 | 3b 20 20 20 20 20 20 20 |lumerate|; |
|00012ba0| 20 20 2f 2a 20 73 74 65 | 70 20 72 61 74 65 20 66 | /* ste|p rate f|
|00012bb0| 6f 72 20 76 6f 6c 75 6d | 65 20 73 6c 69 64 65 20 |or volum|e slide |
|00012bc0| 2a 2f 0a 0a 20 20 20 20 | 69 6e 74 20 76 69 62 72 |*/.. |int vibr|
|00012bd0| 61 74 65 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |ate; | |
|00012be0| 2f 2a 20 73 74 65 70 20 | 72 61 74 65 20 66 6f 72 |/* step |rate for|
|00012bf0| 20 76 69 62 72 61 74 6f | 20 2a 2f 0a 20 20 20 20 | vibrato| */. |
|00012c00| 76 6f 69 64 20 28 2a 61 | 64 6a 75 73 74 29 28 29 |void (*a|djust)()|
|00012c10| 3b 20 20 20 20 20 20 20 | 2f 2a 20 63 75 72 72 65 |; |/* curre|
|00012c20| 6e 74 20 63 6f 6d 6d 61 | 6e 64 20 74 6f 20 61 64 |nt comma|nd to ad|
|00012c30| 6a 75 73 74 20 70 61 72 | 61 6d 65 74 65 72 73 20 |just par|ameters |
|00012c40| 2a 2f 0a 20 20 20 20 7d | 3b 0a 0a 2f 2a 20 44 4f |*/. }|;../* DO|
|00012c50| 5f 4e 4f 54 48 49 4e 47 | 20 77 61 73 20 61 6c 72 |_NOTHING| was alr|
|00012c60| 65 61 64 79 20 64 65 63 | 6c 61 72 65 64 20 66 6f |eady dec|lared fo|
|00012c70| 72 20 74 68 65 20 63 68 | 61 6e 6e 65 6c 0a 20 20 |r the ch|annel. |
|00012c80| 20 23 64 65 66 69 6e 65 | 20 44 4f 5f 4e 4f 54 48 | #define| DO_NOTH|
|00012c90| 49 4e 47 20 30 20 2a 2f | 0a 23 64 65 66 69 6e 65 |ING 0 */|.#define|
|00012ca0| 20 53 45 54 5f 53 50 45 | 45 44 20 31 0a 23 64 65 | SET_SPE|ED 1.#de|
|00012cb0| 66 69 6e 65 20 53 45 54 | 5f 53 4b 49 50 20 32 0a |fine SET|_SKIP 2.|
|00012cc0| 23 64 65 66 69 6e 65 20 | 53 45 54 5f 46 41 53 54 |#define |SET_FAST|
|00012cd0| 53 4b 49 50 20 34 0a 0a | 23 64 65 66 69 6e 65 20 |SKIP 4..|#define |
|00012ce0| 4e 4f 52 4d 41 4c 5f 53 | 50 45 45 44 20 36 0a 23 |NORMAL_S|PEED 6.#|
|00012cf0| 64 65 66 69 6e 65 20 4e | 4f 52 4d 41 4c 5f 46 49 |define N|ORMAL_FI|
|00012d00| 4e 45 53 50 45 45 44 20 | 31 30 30 0a 0a 73 74 72 |NESPEED |100..str|
|00012d10| 75 63 74 20 61 75 74 6f | 6d 61 74 6f 6e 0a 20 20 |uct auto|maton. |
|00012d20| 20 20 7b 0a 20 20 20 20 | 69 6e 74 20 70 61 74 74 | {. |int patt|
|00012d30| 65 72 6e 5f 6e 75 6d 3b | 20 20 20 20 20 20 20 20 |ern_num;| |
|00012d40| 20 20 20 20 2f 2a 20 74 | 68 65 20 70 61 74 74 65 | /* t|he patte|
|00012d50| 72 6e 20 69 6e 20 74 68 | 65 20 73 6f 6e 67 20 2a |rn in th|e song *|
|00012d60| 2f 0a 20 20 20 20 69 6e | 74 20 6e 6f 74 65 5f 6e |/. in|t note_n|
|00012d70| 75 6d 3b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |um; | |
|00012d80| 20 20 2f 2a 20 74 68 65 | 20 6e 6f 74 65 20 69 6e | /* the| note in|
|00012d90| 20 74 68 65 20 70 61 74 | 74 65 72 6e 20 2a 2f 0a | the pat|tern */.|
|00012da0| 20 20 20 20 73 74 72 75 | 63 74 20 62 6c 6f 63 6b | stru|ct block|
|00012db0| 20 2a 70 61 74 74 65 72 | 6e 3b 20 20 20 20 20 20 | *patter|n; |
|00012dc0| 2f 2a 20 74 68 65 20 70 | 68 79 73 69 63 61 6c 20 |/* the p|hysical |
|00012dd0| 70 61 74 74 65 72 6e 20 | 2a 2f 0a 20 20 20 20 73 |pattern |*/. s|
|00012de0| 74 72 75 63 74 20 73 6f | 6e 67 5f 69 6e 66 6f 20 |truct so|ng_info |
|00012df0| 2a 69 6e 66 6f 3b 20 20 | 20 20 20 2f 2a 20 77 65 |*info; | /* we|
|00012e00| 20 6e 65 65 64 20 74 68 | 65 20 73 6f 6e 67 5f 69 | need th|e song_i|
|00012e10| 6e 66 6f 20 2a 2f 0a 0a | 20 20 20 20 69 6e 74 20 |nfo */..| int |
|00012e20| 63 6f 75 6e 74 65 72 3b | 20 20 20 20 20 20 20 20 |counter;| |
|00012e30| 20 20 20 20 20 20 20 20 | 2f 2a 20 74 68 65 20 66 | |/* the f|
|00012e40| 69 6e 65 20 70 6f 73 69 | 74 69 6f 6e 20 69 6e 73 |ine posi|tion ins|
|00012e50| 69 64 65 20 74 68 65 20 | 65 66 66 65 63 74 20 2a |ide the |effect *|
|00012e60| 2f 0a 20 20 20 20 69 6e | 74 20 73 70 65 65 64 3b |/. in|t speed;|
|00012e70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00012e80| 20 20 2f 2a 20 74 68 65 | 20 60 73 70 65 65 64 27 | /* the| `speed'|
|00012e90| 2c 20 6e 75 6d 62 65 72 | 20 6f 66 20 65 66 66 65 |, number| of effe|
|00012ea0| 63 74 20 72 65 70 65 61 | 74 73 20 2a 2f 0a 20 20 |ct repea|ts */. |
|00012eb0| 20 20 69 6e 74 20 66 69 | 6e 65 73 70 65 65 64 3b | int fi|nespeed;|
|00012ec0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2f 2a | | /*|
|00012ed0| 20 74 68 65 20 66 69 6e | 65 73 70 65 65 64 2c 20 | the fin|espeed, |
|00012ee0| 62 61 73 65 20 69 73 20 | 31 30 30 20 2a 2f 0a 0a |base is |100 */..|
|00012ef0| 20 20 20 20 69 6e 74 20 | 64 6f 5f 73 74 75 66 66 | int |do_stuff|
|00012f00| 3b 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |; | |
|00012f10| 2f 2a 20 6b 65 65 70 69 | 6e 67 20 73 6f 6d 65 20 |/* keepi|ng some |
|00012f20| 73 74 75 66 66 20 74 6f | 20 64 6f 20 2a 2f 0a 20 |stuff to| do */. |
|00012f30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00012f40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2f | | /|
|00012f50| 2a 20 2e 2e 2e 20 61 6e | 64 20 70 61 72 61 6d 65 |* ... an|d parame|
|00012f60| 74 65 72 73 20 66 6f 72 | 20 69 74 3a 20 2a 2f 0a |ters for| it: */.|
|00012f70| 20 20 20 20 69 6e 74 20 | 6e 65 77 5f 73 70 65 65 | int |new_spee|
|00012f80| 64 2c 20 6e 65 77 5f 6e | 6f 74 65 2c 20 6e 65 77 |d, new_n|ote, new|
|00012f90| 5f 70 61 74 74 65 72 6e | 2c 20 6e 65 77 5f 66 61 |_pattern|, new_fa|
|00012fa0| 73 74 73 70 65 65 64 3b | 0a 0a 20 20 20 20 69 6e |stspeed;|.. in|
|00012fb0| 74 20 70 69 74 63 68 2c | 20 6e 6f 74 65 2c 20 70 |t pitch,| note, p|
|00012fc0| 61 72 61 3b 20 20 20 20 | 20 20 2f 2a 20 73 6f 6d |ara; | /* som|
|00012fd0| 65 20 65 78 74 72 61 20 | 70 61 72 61 6d 65 74 65 |e extra |paramete|
|00012fe0| 72 73 20 65 66 66 65 63 | 74 73 20 6e 65 65 64 20 |rs effec|ts need |
|00012ff0| 2a 2f 0a 20 20 20 20 7d | 3b 0a 6e 67 20 61 62 6c |*/. }|;.ng abl|
|00013000| 70 72 65 66 2e 68 00 00 | 00 00 00 00 00 00 00 00 |pref.h..|........|
|00013010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013060| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00013070| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00013080| 20 20 20 31 30 33 37 20 | 20 35 31 31 37 31 36 30 | 1037 | 5117160|
|00013090| 31 33 35 20 20 20 35 32 | 35 32 00 20 00 00 00 00 |135 52|52. ....|
|000130a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000130b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000130c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000130d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000130e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000130f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013100| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000131a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000131b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000131c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000131d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000131e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000131f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013200| 2f 2a 20 70 72 65 66 2e | 68 20 2a 2f 0a 0a 2f 2a |/* pref.|h */../*|
|00013210| 20 24 41 75 74 68 6f 72 | 3a 20 65 73 70 69 65 20 | $Author|: espie |
|00013220| 24 0a 20 2a 20 24 49 64 | 3a 20 70 72 65 66 2e 68 |$. * $Id|: pref.h|
|00013230| 2c 76 20 32 2e 32 20 31 | 39 39 31 2f 31 32 2f 30 |,v 2.2 1|991/12/0|
|00013240| 33 20 32 30 3a 34 33 3a | 34 36 20 65 73 70 69 65 |3 20:43:|46 espie|
|00013250| 20 45 78 70 20 65 73 70 | 69 65 20 24 0a 20 2a 20 | Exp esp|ie $. * |
|00013260| 24 52 65 76 24 0a 20 2a | 20 24 4c 6f 67 3a 20 70 |$Rev$. *| $Log: p|
|00013270| 72 65 66 2e 68 2c 76 20 | 24 0a 20 2a 20 52 65 76 |ref.h,v |$. * Rev|
|00013280| 69 73 69 6f 6e 20 32 2e | 32 20 20 31 39 39 31 2f |ision 2.|2 1991/|
|00013290| 31 32 2f 30 33 20 20 32 | 30 3a 34 33 3a 34 36 20 |12/03 2|0:43:46 |
|000132a0| 20 65 73 70 69 65 0a 20 | 2a 20 41 64 64 65 64 20 | espie. |* Added |
|000132b0| 70 6f 73 73 69 62 69 6c | 69 74 79 20 74 6f 20 67 |possibil|ity to g|
|000132c0| 65 74 20 62 61 63 6b 20 | 74 6f 20 4d 4f 4e 4f 20 |et back |to MONO |
|000132d0| 66 6f 72 20 74 68 65 20 | 73 67 69 2e 0a 20 2a 0a |for the |sgi.. *.|
|000132e0| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 32 2e 31 20 | * Revis|ion 2.1 |
|000132f0| 20 31 39 39 31 2f 31 32 | 2f 30 33 20 20 31 38 3a | 1991/12|/03 18:|
|00013300| 30 37 3a 33 38 20 20 65 | 73 70 69 65 0a 20 2a 20 |07:38 e|spie. * |
|00013310| 41 64 64 65 64 20 73 74 | 65 72 65 6f 20 63 61 70 |Added st|ereo cap|
|00013320| 61 62 69 6c 69 74 69 65 | 73 20 74 6f 20 74 68 65 |abilitie|s to the|
|00013330| 20 69 6e 64 69 67 6f 20 | 76 65 72 73 69 6f 6e 2e | indigo |version.|
|00013340| 0a 20 2a 0a 20 2a 20 52 | 65 76 69 73 69 6f 6e 20 |. *. * R|evision |
|00013350| 32 2e 30 20 20 31 39 39 | 31 2f 31 31 2f 31 38 20 |2.0 199|1/11/18 |
|00013360| 20 30 39 3a 30 32 3a 30 | 39 20 20 65 73 70 69 65 | 09:02:0|9 espie|
|00013370| 0a 20 2a 20 2a 2a 2a 20 | 65 6d 70 74 79 20 6c 6f |. * *** |empty lo|
|00013380| 67 20 6d 65 73 73 61 67 | 65 20 2a 2a 2a 0a 20 2a |g messag|e ***. *|
|00013390| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 31 |. * Revi|sion 1.1|
|000133a0| 20 20 31 39 39 31 2f 31 | 31 2f 31 38 20 20 30 39 | 1991/1|1/18 09|
|000133b0| 3a 30 30 3a 35 38 20 20 | 65 73 70 69 65 0a 20 2a |:00:58 |espie. *|
|000133c0| 20 49 6e 69 74 69 61 6c | 20 72 65 76 69 73 69 6f | Initial| revisio|
|000133d0| 6e 0a 20 2a 0a 20 2a 0a | 20 2a 2f 0a 0a 73 74 72 |n. *. *.| */..str|
|000133e0| 75 63 74 20 70 72 65 66 | 0a 20 20 20 20 7b 0a 20 |uct pref|. {. |
|000133f0| 20 20 20 69 6e 74 20 74 | 79 70 65 2c 20 73 70 65 | int t|ype, spe|
|00013400| 65 64 2c 20 74 6f 6c 65 | 72 61 74 65 2c 20 72 65 |ed, tole|rate, re|
|00013410| 70 65 61 74 73 3b 0a 20 | 20 20 20 7d 3b 0a 0a 39 |peats;. | };..9|
|00013420| 39 31 2f 31 31 2f 31 36 | 20 20 31 36 3a 35 34 3a |91/11/16| 16:54:|
|00013430| 31 39 20 20 65 73 70 69 | 65 0a 20 2a 20 41 64 64 |19 espi|e. * Add|
|00013440| 65 64 20 63 6f 6d 6d 65 | 6e 74 73 20 74 6f 20 65 |ed comme|nts to e|
|00013450| 61 63 68 20 61 6e 64 20 | 65 76 65 72 79 20 66 69 |ach and |every fi|
|00013460| 65 6c 64 2e 0a 20 2a 0a | 20 2a 20 52 65 76 69 73 |eld.. *.| * Revis|
|00013470| 69 6f 6e 20 31 2e 34 20 | 20 31 39 39 31 2f 31 31 |ion 1.4 | 1991/11|
|00013480| 2f 31 36 20 20 31 35 3a | 34 32 3a 34 33 20 20 65 |/16 15:|42:43 e|
|00013490| 73 70 69 65 0a 20 2a 20 | 74 61 62 73 2e 0a 20 2a |spie. * |tabs.. *|
|000134a0| 0a 20 2a 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 33 |. * Revi|sion 1.3|
|000134b0| 20 20 31 39 39 31 2f 31 | 31 2f 30 39 20 20 31 37 | 1991/1|1/09 17|
|000134c0| 3a 34 37 3a 33 33 20 20 | 65 73 70 69 65 0a 20 2a |:47:33 |espie. *|
|000134d0| 20 42 75 67 20 63 6f 72 | 72 65 63 74 69 6f 6e 3a | Bug cor|rection:|
|000134e0| 20 77 68 65 6e 20 64 6f | 69 6e 67 20 61 72 70 65 | when do|ing arpe|
|000134f0| 67 67 69 6f 2c 20 74 68 | 65 72 65 20 6d 69 67 68 |ggio, th|ere migh|
|00013500| 74 20 6e 6f 74 0a 20 2a | 20 62 65 20 61 20 6e 65 |t not. *| be a ne|
|00013510| 77 20 6e 6f 74 65 2c 20 | 73 6f 20 77 65 20 68 61 |w note, |so we ha|
|00013520| 76 65 20 74 6f 20 73 61 | 76 65 20 74 68 65 20 6f |ve to sa|ve the o|
|00013530| 6c 64 20 6e 6f 74 65 20 | 76 61 6c 75 65 0a 20 2a |ld note |value. *|
|00013540| 20 61 6e 64 20 64 6f 20 | 74 68 65 20 61 72 70 70 | and do |the arpp|
|00013550| 65 67 67 69 6f 20 6f 6e | 20 74 68 61 74 20 6e 6f |eggio on| that no|
|00013560| 74 65 2e 0a 20 2a 0a 20 | 2a 20 52 65 76 69 73 69 |te.. *. |* Revisi|
|00013570| 6f 6e 20 31 2e 32 20 20 | 31 39 39 31 2f 31 31 2f |on 1.2 |1991/11/|
|00013580| 30 37 20 20 32 31 3a 34 | 30 3a 31 36 20 20 65 73 |07 21:4|0:16 es|
|00013590| 70 69 65 0a 20 2a 20 41 | 64 64 65 64 20 66 69 65 |pie. * A|dded fie|
|000135a0| 6c 64 73 20 66 6f 72 20 | 61 72 70 65 67 67 69 6f |lds for |arpeggio|
|000135b0| 2e 0a 20 2a 0a 20 2a 20 | 52 65 76 69 73 69 6f 6e |.. *. * |Revision|
|000135c0| 20 31 2e 31 20 20 31 39 | 39 31 2f 31 31 2f 30 36 | 1.1 19|91/11/06|
|000135d0| 20 20 30 39 3a 34 36 3a | 30 36 20 20 65 73 70 69 | 09:46:|06 espi|
|000135e0| 65 0a 20 2a 20 49 6e 69 | 74 69 61 6c 20 72 65 76 |e. * Ini|tial rev|
|000135f0| 69 73 69 6f 6e 0a 20 2a | 0a 20 2a 0a 20 2a 2f 0a |ision. *|. *. */.|
|00013600| 6d 61 6b 65 66 69 6c 65 | 2e 73 67 69 00 00 00 00 |makefile|.sgi....|
|00013610| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013620| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013630| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013640| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013650| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013660| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00013670| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00013680| 20 20 20 35 31 37 37 20 | 20 35 31 31 37 31 36 30 | 5177 | 5117160|
|00013690| 31 37 31 20 20 20 36 34 | 33 37 00 20 00 00 00 00 |171 64|37. ....|
|000136a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000136b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000136c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000136d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000136e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000136f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013700| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013710| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013720| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013730| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013740| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013750| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013770| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013780| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013790| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000137a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000137b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000137c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000137d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000137e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000137f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00013800| 23 20 4d 61 6b 65 66 69 | 6c 65 20 66 6f 72 20 73 |# Makefi|le for s|
|00013810| 67 69 0a 23 0a 23 20 24 | 41 75 74 68 6f 72 3a 20 |gi.#.# $|Author: |
|00013820| 65 73 70 69 65 20 24 0a | 23 20 24 49 64 3a 20 6d |espie $.|# $Id: m|
|00013830| 61 6b 65 66 69 6c 65 2e | 73 67 69 2c 76 20 32 2e |akefile.|sgi,v 2.|
|00013840| 35 20 31 39 39 31 2f 31 | 32 2f 30 34 20 31 34 3a |5 1991/1|2/04 14:|
|00013850| 30 34 3a 31 35 20 65 73 | 70 69 65 20 45 78 70 20 |04:15 es|pie Exp |
|00013860| 65 73 70 69 65 20 24 0a | 23 20 24 52 65 76 69 73 |espie $.|# $Revis|
|00013870| 69 6f 6e 3a 20 32 2e 35 | 20 24 0a 23 20 24 4c 6f |ion: 2.5| $.# $Lo|
|00013880| 67 3a 20 6d 61 6b 65 66 | 69 6c 65 2e 73 67 69 2c |g: makef|ile.sgi,|
|00013890| 76 20 24 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 32 |v $.# Re|vision 2|
|000138a0| 2e 35 20 20 31 39 39 31 | 2f 31 32 2f 30 34 20 20 |.5 1991|/12/04 |
|000138b0| 31 34 3a 30 34 3a 31 35 | 20 20 65 73 70 69 65 0a |14:04:15| espie.|
|000138c0| 23 20 41 64 64 65 64 20 | 64 6f 63 20 66 69 6c 65 |# Added |doc file|
|000138d0| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 32 |..#.# Re|vision 2|
|000138e0| 2e 34 20 20 31 39 39 31 | 2f 31 32 2f 30 33 20 20 |.4 1991|/12/03 |
|000138f0| 31 37 3a 31 39 3a 32 39 | 20 20 65 73 70 69 65 0a |17:19:29| espie.|
|00013900| 23 20 41 64 64 65 64 20 | 6e 74 72 61 63 6b 65 72 |# Added |ntracker|
|00013910| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 32 |..#.# Re|vision 2|
|00013920| 2e 33 20 20 31 39 39 31 | 2f 31 31 2f 31 39 20 20 |.3 1991|/11/19 |
|00013930| 31 36 3a 30 37 3a 31 39 | 20 20 65 73 70 69 65 0a |16:07:19| espie.|
|00013940| 23 20 41 64 64 65 64 20 | 63 6f 6d 6d 65 6e 74 73 |# Added |comments|
|00013950| 2c 20 6d 6f 76 65 64 20 | 6d 69 6e 6f 72 20 73 74 |, moved |minor st|
|00013960| 75 66 66 20 61 72 6f 75 | 6e 64 2e 0a 23 0a 23 20 |uff arou|nd..#.# |
|00013970| 52 65 76 69 73 69 6f 6e | 20 32 2e 32 20 20 31 39 |Revision| 2.2 19|
|00013980| 39 31 2f 31 31 2f 31 38 | 20 20 30 31 3a 31 30 3a |91/11/18| 01:10:|
|00013990| 34 35 20 20 65 73 70 69 | 65 0a 23 20 55 70 64 61 |45 espi|e.# Upda|
|000139a0| 74 65 64 2c 20 61 64 64 | 65 64 20 69 6e 73 74 61 |ted, add|ed insta|
|000139b0| 6c 6c 20 65 6e 74 72 79 | 2e 0a 23 0a 23 20 52 65 |ll entry|..#.# Re|
|000139c0| 76 69 73 69 6f 6e 20 32 | 2e 31 20 20 31 39 39 31 |vision 2|.1 1991|
|000139d0| 2f 31 31 2f 31 37 20 20 | 32 33 3a 30 37 3a 35 38 |/11/17 |23:07:58|
|000139e0| 20 20 65 73 70 69 65 0a | 23 20 41 64 64 65 64 20 | espie.|# Added |
|000139f0| 6e 65 77 20 66 69 6c 65 | 73 2e 0a 23 0a 23 20 52 |new file|s..#.# R|
|00013a00| 65 76 69 73 69 6f 6e 20 | 32 2e 30 20 20 31 39 39 |evision |2.0 199|
|00013a10| 31 2f 31 31 2f 31 37 20 | 20 32 31 3a 34 32 3a 30 |1/11/17 | 21:42:0|
|00013a20| 38 20 20 65 73 70 69 65 | 0a 23 20 43 6f 6d 70 6c |8 espie|.# Compl|
|00013a30| 65 74 65 6c 79 20 63 6f | 72 72 65 63 74 65 64 20 |etely co|rrected |
|00013a40| 62 75 67 67 79 20 74 61 | 62 73 2e 0a 23 0a 23 20 |buggy ta|bs..#.# |
|00013a50| 52 65 76 69 73 69 6f 6e | 20 31 2e 31 31 20 20 31 |Revision| 1.11 1|
|00013a60| 39 39 31 2f 31 31 2f 31 | 37 20 20 31 36 3a 33 30 |991/11/1|7 16:30|
|00013a70| 3a 34 38 20 20 65 73 70 | 69 65 0a 23 20 53 74 75 |:48 esp|ie.# Stu|
|00013a80| 70 69 64 20 62 75 67 73 | 3a 20 68 61 76 65 20 74 |pid bugs|: have t|
|00013a90| 6f 20 6b 65 65 70 20 74 | 68 65 20 74 61 62 73 20 |o keep t|he tabs |
|00013aa0| 74 6f 20 6b 65 65 70 20 | 74 68 65 20 6d 61 6b 65 |to keep |the make|
|00013ab0| 66 69 6c 65 20 77 6f 72 | 6b 69 6e 67 2e 0a 23 0a |file wor|king..#.|
|00013ac0| 23 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 31 30 20 |# Revisi|on 1.10 |
|00013ad0| 20 31 39 39 31 2f 31 31 | 2f 31 36 20 20 31 35 3a | 1991/11|/16 15:|
|00013ae0| 35 30 3a 33 34 20 20 65 | 73 70 69 65 0a 23 20 54 |50:34 e|spie.# T|
|00013af0| 61 62 73 2e 0a 23 0a 23 | 20 52 65 76 69 73 69 6f |abs..#.#| Revisio|
|00013b00| 6e 20 31 2e 39 20 31 39 | 39 31 2f 31 31 2f 31 36 |n 1.9 19|91/11/16|
|00013b10| 20 31 35 3a 34 32 3a 34 | 33 20 20 65 73 70 69 65 | 15:42:4|3 espie|
|00013b20| 0a 23 20 4d 69 6e 6f 72 | 20 6d 6f 64 69 66 69 63 |.# Minor| modific|
|00013b30| 61 74 69 6f 6e 73 20 69 | 6e 20 6d 61 6b 65 20 63 |ations i|n make c|
|00013b40| 6c 65 61 6e 2e 0a 23 0a | 23 20 52 65 76 69 73 69 |lean..#.|# Revisi|
|00013b50| 6f 6e 20 31 2e 38 20 31 | 39 39 31 2f 31 31 2f 30 |on 1.8 1|991/11/0|
|00013b60| 39 20 31 37 3a 34 39 3a | 31 34 20 20 65 73 70 69 |9 17:49:|14 espi|
|00013b70| 65 0a 23 20 41 64 64 65 | 64 20 6f 70 74 69 6d 69 |e.# Adde|d optimi|
|00013b80| 7a 61 74 69 6f 6e 20 61 | 20 6c 61 20 73 67 69 2e |zation a| la sgi.|
|00013b90| 0a 23 0a 23 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |.#.# Rev|ision 1.|
|00013ba0| 37 20 31 39 39 31 2f 31 | 31 2f 30 37 20 32 31 3a |7 1991/1|1/07 21:|
|00013bb0| 34 30 3a 31 36 20 20 65 | 73 70 69 65 0a 23 20 41 |40:16 e|spie.# A|
|00013bc0| 64 64 65 64 20 73 6f 6d | 65 20 6d 61 63 72 6f 73 |dded som|e macros|
|00013bd0| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 31 |..#.# Re|vision 1|
|00013be0| 2e 35 20 31 39 39 31 2f | 31 31 2f 30 34 20 31 33 |.5 1991/|11/04 13|
|00013bf0| 3a 32 33 3a 35 39 20 20 | 65 73 70 69 65 0a 23 20 |:23:59 |espie.# |
|00013c00| 41 64 64 65 64 20 73 6f | 6d 65 20 64 65 70 65 6e |Added so|me depen|
|00013c10| 64 65 6e 63 69 65 73 2e | 0a 23 20 45 6e 74 72 79 |dencies.|.# Entry|
|00013c20| 20 66 6f 72 20 72 65 61 | 64 2e 63 2e 0a 23 0a 23 | for rea|d.c..#.#|
|00013c30| 20 52 65 76 69 73 69 6f | 6e 20 31 2e 34 20 31 39 | Revisio|n 1.4 19|
|00013c40| 39 31 2f 31 31 2f 30 34 | 20 30 38 3a 30 31 3a 32 |91/11/04| 08:01:2|
|00013c50| 30 20 20 65 73 70 69 65 | 0a 23 20 41 64 64 65 64 |0 espie|.# Added|
|00013c60| 20 72 63 70 20 74 6f 20 | 63 6c 69 70 70 65 72 0a | rcp to |clipper.|
|00013c70| 23 0a 23 20 52 65 76 69 | 73 69 6f 6e 20 31 2e 33 |#.# Revi|sion 1.3|
|00013c80| 20 31 39 39 31 2f 31 31 | 2f 30 33 20 32 32 3a 35 | 1991/11|/03 22:5|
|00013c90| 38 3a 34 31 20 20 65 73 | 70 69 65 0a 23 20 46 69 |8:41 es|pie.# Fi|
|00013ca0| 78 65 64 20 6e 61 6d 65 | 20 6d 69 73 74 61 6b 65 |xed name| mistake|
|00013cb0| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 31 |..#.# Re|vision 1|
|00013cc0| 2e 32 20 31 39 39 31 2f | 31 31 2f 30 33 20 32 32 |.2 1991/|11/03 22|
|00013cd0| 3a 35 35 3a 32 33 20 20 | 65 73 70 69 65 0a 23 20 |:55:23 |espie.# |
|00013ce0| 41 64 64 65 64 20 61 6c | 6c 2c 20 63 6c 65 61 6e |Added al|l, clean|
|00013cf0| 20 61 6e 64 20 65 78 70 | 6f 72 74 20 65 6e 74 72 | and exp|ort entr|
|00013d00| 69 65 73 2e 0a 23 0a 23 | 20 52 65 76 69 73 69 6f |ies..#.#| Revisio|
|00013d10| 6e 20 31 2e 31 20 31 39 | 39 31 2f 31 31 2f 30 33 |n 1.1 19|91/11/03|
|00013d20| 20 32 32 3a 34 35 3a 33 | 39 20 20 65 73 70 69 65 | 22:45:3|9 espie|
|00013d30| 0a 23 20 49 6e 69 74 69 | 61 6c 20 72 65 76 69 73 |.# Initi|al revis|
|00013d40| 69 6f 6e 0a 23 0a 23 0a | 0a 49 4e 53 54 41 4c 4c |ion.#.#.|.INSTALL|
|00013d50| 5f 44 49 52 20 3d 20 24 | 28 48 4f 4d 45 29 2f 62 |_DIR = $|(HOME)/b|
|00013d60| 69 6e 0a 4f 20 3d 20 2e | 75 0a 4d 41 49 4e 5f 4f |in.O = .|u.MAIN_O|
|00013d70| 50 54 53 20 3d 20 2d 4f | 33 20 0a 43 4f 50 54 53 |PTS = -O|3 .COPTS|
|00013d80| 20 3d 20 24 28 4d 41 49 | 4e 5f 4f 50 54 53 29 20 | = $(MAI|N_OPTS) |
|00013d90| 2d 6a 0a 4d 41 43 48 49 | 4e 45 20 3d 20 73 67 69 |-j.MACHI|NE = sgi|
|00013da0| 0a 4f 42 4a 45 43 54 53 | 20 3d 20 73 74 72 33 32 |.OBJECTS| = str32|
|00013db0| 24 4f 20 24 28 4d 41 43 | 48 49 4e 45 29 5f 61 75 |$O $(MAC|HINE)_au|
|00013dc0| 64 69 6f 24 4f 20 72 65 | 61 64 24 4f 20 63 6f 6d |dio$O re|ad$O com|
|00013dd0| 6d 61 6e 64 73 24 4f 20 | 5c 0a 61 75 64 69 6f 24 |mands$O |\.audio$|
|00013de0| 4f 20 61 75 74 6f 6d 61 | 74 6f 6e 24 4f 20 70 6c |O automa|ton$O pl|
|00013df0| 61 79 65 72 24 4f 0a 0a | 0a 61 6c 6c 3a 20 74 72 |ayer$O..|.all: tr|
|00013e00| 61 63 6b 65 72 20 6f 74 | 72 61 63 6b 65 72 20 6e |acker ot|racker n|
|00013e10| 74 72 61 63 6b 65 72 0a | 0a 69 6e 73 74 61 6c 6c |tracker.|.install|
|00013e20| 3a 20 61 6c 6c 0a 09 63 | 70 20 74 72 61 63 6b 65 |: all..c|p tracke|
|00013e30| 72 20 24 28 49 4e 53 54 | 41 4c 4c 5f 44 49 52 29 |r $(INST|ALL_DIR)|
|00013e40| 0a 09 2d 72 6d 20 2d 66 | 20 24 7b 49 4e 53 54 41 |..-rm -f| ${INSTA|
|00013e50| 4c 4c 5f 44 49 52 7d 2f | 6f 74 72 61 63 6b 65 72 |LL_DIR}/|otracker|
|00013e60| 0a 09 6c 6e 20 24 7b 49 | 4e 53 54 41 4c 4c 5f 44 |..ln ${I|NSTALL_D|
|00013e70| 49 52 7d 2f 74 72 61 63 | 6b 65 72 20 24 7b 49 4e |IR}/trac|ker ${IN|
|00013e80| 53 54 41 4c 4c 5f 44 49 | 52 7d 2f 6f 74 72 61 63 |STALL_DI|R}/otrac|
|00013e90| 6b 65 72 0a 09 2d 72 6d | 20 2d 66 20 24 7b 49 4e |ker..-rm| -f ${IN|
|00013ea0| 53 54 41 4c 4c 5f 44 49 | 52 7d 2f 6e 74 72 61 63 |STALL_DI|R}/ntrac|
|00013eb0| 6b 65 72 0a 09 6c 6e 20 | 24 7b 49 4e 53 54 41 4c |ker..ln |${INSTAL|
|00013ec0| 4c 5f 44 49 52 7d 2f 74 | 72 61 63 6b 65 72 20 24 |L_DIR}/t|racker $|
|00013ed0| 7b 49 4e 53 54 41 4c 4c | 5f 44 49 52 7d 2f 6e 74 |{INSTALL|_DIR}/nt|
|00013ee0| 72 61 63 6b 65 72 0a 0a | 74 72 61 63 6b 65 72 3a |racker..|tracker:|
|00013ef0| 20 24 7b 4f 42 4a 45 43 | 54 53 7d 0a 09 63 63 20 | ${OBJEC|TS}..cc |
|00013f00| 2d 6f 20 74 72 61 63 6b | 65 72 20 24 7b 4d 41 49 |-o track|er ${MAI|
|00013f10| 4e 5f 4f 50 54 53 7d 20 | 24 7b 4f 42 4a 45 43 54 |N_OPTS} |${OBJECT|
|00013f20| 53 7d 20 2d 6c 61 75 64 | 69 6f 20 2d 6c 6d 0a 09 |S} -laud|io -lm..|
|00013f30| 73 74 72 69 70 20 74 72 | 61 63 6b 65 72 0a 0a 6f |strip tr|acker..o|
|00013f40| 74 72 61 63 6b 65 72 3a | 20 74 72 61 63 6b 65 72 |tracker:| tracker|
|00013f50| 0a 09 2d 72 6d 20 2d 66 | 20 6f 74 72 61 63 6b 65 |..-rm -f| otracke|
|00013f60| 72 0a 09 6c 6e 20 74 72 | 61 63 6b 65 72 20 6f 74 |r..ln tr|acker ot|
|00013f70| 72 61 63 6b 65 72 0a 0a | 6e 74 72 61 63 6b 65 72 |racker..|ntracker|
|00013f80| 3a 20 74 72 61 63 6b 65 | 72 0a 09 2d 72 6d 20 2d |: tracke|r..-rm -|
|00013f90| 66 20 6e 74 72 61 63 6b | 65 72 0a 09 6c 6e 20 74 |f ntrack|er..ln t|
|00013fa0| 72 61 63 6b 65 72 20 6e | 74 72 61 63 6b 65 72 0a |racker n|tracker.|
|00013fb0| 0a 73 74 72 33 32 24 4f | 3a 20 73 74 72 33 32 2e |.str32$O|: str32.|
|00013fc0| 63 20 6d 61 63 68 69 6e | 65 2e 68 20 73 6f 6e 67 |c machin|e.h song|
|00013fd0| 2e 68 0a 09 63 63 20 24 | 7b 43 4f 50 54 53 7d 20 |.h..cc $|{COPTS} |
|00013fe0| 73 74 72 33 32 2e 63 0a | 0a 24 28 4d 41 43 48 49 |str32.c.|.$(MACHI|
|00013ff0| 4e 45 29 5f 61 75 64 69 | 6f 24 4f 3a 20 24 28 4d |NE)_audi|o$O: $(M|
|00014000| 41 43 48 49 4e 45 29 5f | 61 75 64 69 6f 2e 63 20 |ACHINE)_|audio.c |
|00014010| 6d 61 63 68 69 6e 65 2e | 68 0a 09 63 63 20 24 7b |machine.|h..cc ${|
|00014020| 43 4f 50 54 53 7d 20 24 | 28 4d 41 43 48 49 4e 45 |COPTS} $|(MACHINE|
|00014030| 29 5f 61 75 64 69 6f 2e | 63 0a 0a 61 75 64 69 6f |)_audio.|c..audio|
|00014040| 24 4f 3a 20 61 75 64 69 | 6f 2e 63 0a 09 63 63 20 |$O: audi|o.c..cc |
|00014050| 24 7b 43 4f 50 54 53 7d | 20 61 75 64 69 6f 2e 63 |${COPTS}| audio.c|
|00014060| 0a 0a 61 75 74 6f 6d 61 | 74 6f 6e 24 4f 3a 20 61 |..automa|ton$O: a|
|00014070| 75 74 6f 6d 61 74 6f 6e | 2e 63 20 6d 61 63 68 69 |utomaton|.c machi|
|00014080| 6e 65 2e 68 20 73 6f 6e | 67 2e 68 20 63 68 61 6e |ne.h son|g.h chan|
|00014090| 6e 65 6c 2e 68 0a 09 63 | 63 20 24 7b 43 4f 50 54 |nel.h..c|c ${COPT|
|000140a0| 53 7d 20 61 75 74 6f 6d | 61 74 6f 6e 2e 63 0a 0a |S} autom|aton.c..|
|000140b0| 70 6c 61 79 65 72 24 4f | 3a 20 70 6c 61 79 65 72 |player$O|: player|
|000140c0| 2e 63 20 6d 61 63 68 69 | 6e 65 2e 68 20 73 6f 6e |.c machi|ne.h son|
|000140d0| 67 2e 68 20 63 68 61 6e | 6e 65 6c 2e 68 0a 09 63 |g.h chan|nel.h..c|
|000140e0| 63 20 24 7b 43 4f 50 54 | 53 7d 20 70 6c 61 79 65 |c ${COPT|S} playe|
|000140f0| 72 2e 63 0a 0a 72 65 61 | 64 24 4f 3a 20 72 65 61 |r.c..rea|d$O: rea|
|00014100| 64 2e 63 20 6d 61 63 68 | 69 6e 65 2e 68 20 73 6f |d.c mach|ine.h so|
|00014110| 6e 67 2e 68 0a 09 63 63 | 20 24 7b 43 4f 50 54 53 |ng.h..cc| ${COPTS|
|00014120| 7d 20 72 65 61 64 2e 63 | 0a 0a 63 6f 6d 6d 61 6e |} read.c|..comman|
|00014130| 64 73 24 4f 3a 20 63 6f | 6d 6d 61 6e 64 73 2e 63 |ds$O: co|mmands.c|
|00014140| 20 63 68 61 6e 6e 65 6c | 2e 68 20 6d 61 63 68 69 | channel|.h machi|
|00014150| 6e 65 2e 68 20 73 6f 6e | 67 2e 68 0a 09 63 63 20 |ne.h son|g.h..cc |
|00014160| 24 7b 43 4f 50 54 53 7d | 20 63 6f 6d 6d 61 6e 64 |${COPTS}| command|
|00014170| 73 2e 63 0a 0a 6d 61 63 | 68 69 6e 65 2e 68 3a 20 |s.c..mac|hine.h: |
|00014180| 24 28 4d 41 43 48 49 4e | 45 29 2e 68 0a 09 63 70 |$(MACHIN|E).h..cp|
|00014190| 20 24 28 4d 41 43 48 49 | 4e 45 29 2e 68 20 6d 61 | $(MACHI|NE).h ma|
|000141a0| 63 68 69 6e 65 2e 68 0a | 0a 63 6c 65 61 6e 3a 0a |chine.h.|.clean:.|
|000141b0| 09 2d 72 6d 20 2a 2e 75 | 20 2a 2e 6f 20 6d 61 63 |.-rm *.u| *.o mac|
|000141c0| 68 69 6e 65 2e 68 20 74 | 72 61 63 6b 65 72 20 6f |hine.h t|racker o|
|000141d0| 74 72 61 63 6b 65 72 20 | 63 6f 72 65 20 73 74 72 |tracker |core str|
|000141e0| 2e 74 61 72 20 73 74 72 | 2e 74 61 72 2e 5a 0a 65 |.tar str|.tar.Z.e|
|000141f0| 78 70 6f 72 74 3a 0a 09 | 74 61 72 20 63 76 66 20 |xport:..|tar cvf |
|00014200| 73 74 72 2e 74 61 72 20 | 2a 2e 63 20 73 6f 6e 67 |str.tar |*.c song|
|00014210| 2e 68 20 73 67 69 2e 68 | 20 73 70 61 72 63 2e 68 |.h sgi.h| sparc.h|
|00014220| 20 65 78 74 65 72 6e 2e | 68 20 63 68 61 6e 6e 65 | extern.|h channe|
|00014230| 6c 2e 68 20 5c 0a 09 70 | 72 65 66 2e 68 20 6d 61 |l.h \..p|ref.h ma|
|00014240| 6b 65 66 69 6c 65 2e 2a | 20 74 72 61 63 6b 65 72 |kefile.*| tracker|
|00014250| 2e 64 6f 63 0a 09 63 6f | 6d 70 72 65 73 73 20 73 |.doc..co|mpress s|
|00014260| 74 72 2e 74 61 72 0a 09 | 72 63 70 20 73 74 72 2e |tr.tar..|rcp str.|
|00014270| 74 61 72 2e 5a 20 63 6c | 69 70 70 65 72 3a 0a 75 |tar.Z cl|ipper:.u|
|00014280| 70 69 64 20 62 75 67 73 | 3a 20 68 61 76 65 20 74 |pid bugs|: have t|
|00014290| 6f 20 6b 65 65 70 20 74 | 68 65 20 74 61 62 73 20 |o keep t|he tabs |
|000142a0| 74 6f 20 6b 65 65 70 20 | 74 68 65 20 6d 61 6b 65 |to keep |the make|
|000142b0| 66 69 6c 65 20 77 6f 72 | 6b 69 6e 67 2e 0a 23 0a |file wor|king..#.|
|000142c0| 23 20 52 65 76 69 73 69 | 6f 6e 20 31 2e 31 30 20 |# Revisi|on 1.10 |
|000142d0| 20 31 39 39 31 2f 31 31 | 2f 31 36 20 20 31 35 3a | 1991/11|/16 15:|
|000142e0| 35 30 3a 33 34 20 20 65 | 73 70 69 65 0a 23 20 54 |50:34 e|spie.# T|
|000142f0| 61 62 73 2e 0a 23 0a 23 | 20 52 65 76 69 73 69 6f |abs..#.#| Revisio|
|00014300| 6e 20 31 2e 39 20 31 39 | 39 31 2f 31 31 2f 31 36 |n 1.9 19|91/11/16|
|00014310| 20 31 35 3a 34 32 3a 34 | 33 20 20 65 73 70 69 65 | 15:42:4|3 espie|
|00014320| 0a 23 20 4d 69 6e 6f 72 | 20 6d 6f 64 69 66 69 63 |.# Minor| modific|
|00014330| 61 74 69 6f 6e 73 20 69 | 6e 20 6d 61 6b 65 20 63 |ations i|n make c|
|00014340| 6c 65 61 6e 2e 0a 23 0a | 23 20 52 65 76 69 73 69 |lean..#.|# Revisi|
|00014350| 6f 6e 20 31 2e 38 20 31 | 39 39 31 2f 31 31 2f 30 |on 1.8 1|991/11/0|
|00014360| 39 20 31 37 3a 34 39 3a | 31 34 20 20 65 73 70 69 |9 17:49:|14 espi|
|00014370| 65 0a 23 20 41 64 64 65 | 64 20 6f 70 74 69 6d 69 |e.# Adde|d optimi|
|00014380| 7a 61 74 69 6f 6e 20 61 | 20 6c 61 20 73 67 69 2e |zation a| la sgi.|
|00014390| 0a 23 0a 23 20 52 65 76 | 69 73 69 6f 6e 20 31 2e |.#.# Rev|ision 1.|
|000143a0| 37 20 31 39 39 31 2f 31 | 31 2f 30 37 20 32 31 3a |7 1991/1|1/07 21:|
|000143b0| 34 30 3a 31 36 20 20 65 | 73 70 69 65 0a 23 20 41 |40:16 e|spie.# A|
|000143c0| 64 64 65 64 20 73 6f 6d | 65 20 6d 61 63 72 6f 73 |dded som|e macros|
|000143d0| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 31 |..#.# Re|vision 1|
|000143e0| 2e 35 20 31 39 39 31 2f | 31 31 2f 30 34 20 31 33 |.5 1991/|11/04 13|
|000143f0| 3a 32 33 3a 35 39 20 20 | 65 73 70 69 65 0a 23 20 |:23:59 |espie.# |
|00014400| 6d 61 6b 65 66 69 6c 65 | 2e 73 70 61 72 63 00 00 |makefile|.sparc..|
|00014410| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014420| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014430| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014440| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014450| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014460| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00014470| 35 35 20 00 20 20 20 33 | 31 30 20 00 20 20 20 20 |55 . 3|10 . |
|00014480| 20 20 20 35 32 30 35 20 | 20 35 31 31 37 31 36 30 | 5205 | 5117160|
|00014490| 31 37 33 20 20 20 36 37 | 35 37 00 20 00 00 00 00 |173 67|57. ....|
|000144a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000144b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000144c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000144d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000144e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000144f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014500| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014510| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014520| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014530| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014540| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014550| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014560| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014570| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014580| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014590| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000145a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000145b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000145c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000145d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000145e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000145f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00014600| 23 20 4d 61 6b 65 66 69 | 6c 65 20 66 6f 72 20 73 |# Makefi|le for s|
|00014610| 70 61 72 63 0a 23 0a 23 | 20 24 41 75 74 68 6f 72 |parc.#.#| $Author|
|00014620| 3a 20 65 73 70 69 65 20 | 24 0a 23 20 24 49 64 3a |: espie |$.# $Id:|
|00014630| 20 6d 61 6b 65 66 69 6c | 65 2e 73 70 61 72 63 2c | makefil|e.sparc,|
|00014640| 76 20 32 2e 34 20 31 39 | 39 31 2f 31 32 2f 30 34 |v 2.4 19|91/12/04|
|00014650| 20 31 34 3a 30 34 3a 31 | 35 20 65 73 70 69 65 20 | 14:04:1|5 espie |
|00014660| 45 78 70 20 65 73 70 69 | 65 20 24 0a 23 20 24 52 |Exp espi|e $.# $R|
|00014670| 65 76 69 73 69 6f 6e 3a | 20 32 2e 34 20 24 0a 23 |evision:| 2.4 $.#|
|00014680| 20 24 4c 6f 67 3a 20 6d | 61 6b 65 66 69 6c 65 2e | $Log: m|akefile.|
|00014690| 73 70 61 72 63 2c 76 20 | 24 0a 23 20 52 65 76 69 |sparc,v |$.# Revi|
|000146a0| 73 69 6f 6e 20 32 2e 34 | 20 20 31 39 39 31 2f 31 |sion 2.4| 1991/1|
|000146b0| 32 2f 30 34 20 20 31 34 | 3a 30 34 3a 31 35 20 20 |2/04 14|:04:15 |
|000146c0| 65 73 70 69 65 0a 23 20 | 41 64 64 65 64 20 64 6f |espie.# |Added do|
|000146d0| 63 20 66 69 6c 65 2e 0a | 23 0a 23 20 52 65 76 69 |c file..|#.# Revi|
|000146e0| 73 69 6f 6e 20 32 2e 33 | 20 20 31 39 39 31 2f 31 |sion 2.3| 1991/1|
|000146f0| 32 2f 30 33 20 20 31 37 | 3a 31 39 3a 32 39 20 20 |2/03 17|:19:29 |
|00014700| 65 73 70 69 65 0a 23 20 | 41 64 64 65 64 20 6e 74 |espie.# |Added nt|
|00014710| 72 61 63 6b 65 72 2e 0a | 23 0a 23 20 52 65 76 69 |racker..|#.# Revi|
|00014720| 73 69 6f 6e 20 32 2e 32 | 20 20 31 39 39 31 2f 31 |sion 2.2| 1991/1|
|00014730| 31 2f 31 39 20 20 31 36 | 3a 30 37 3a 31 39 20 20 |1/19 16|:07:19 |
|00014740| 65 73 70 69 65 0a 23 20 | 41 64 64 65 64 20 63 6f |espie.# |Added co|
|00014750| 6d 6d 65 6e 74 73 2c 20 | 6d 6f 76 65 64 20 6d 69 |mments, |moved mi|
|00014760| 6e 6f 72 20 73 74 75 66 | 66 20 61 72 6f 75 6e 64 |nor stuf|f around|
|00014770| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 32 |..#.# Re|vision 2|
|00014780| 2e 32 20 20 31 39 39 31 | 2f 31 31 2f 31 38 20 20 |.2 1991|/11/18 |
|00014790| 30 31 3a 31 30 3a 34 35 | 20 20 65 73 70 69 65 0a |01:10:45| espie.|
|000147a0| 23 20 55 70 64 61 74 65 | 64 2c 20 61 64 64 65 64 |# Update|d, added|
|000147b0| 20 69 6e 73 74 61 6c 6c | 20 65 6e 74 72 79 2e 0a | install| entry..|
|000147c0| 23 0a 23 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 31 |#.# Revi|sion 2.1|
|000147d0| 20 20 31 39 39 31 2f 31 | 31 2f 31 37 20 20 32 33 | 1991/1|1/17 23|
|000147e0| 3a 30 37 3a 35 38 20 20 | 65 73 70 69 65 0a 23 20 |:07:58 |espie.# |
|000147f0| 41 64 64 65 64 20 6e 65 | 77 20 66 69 6c 65 73 2e |Added ne|w files.|
|00014800| 0a 23 0a 23 20 52 65 76 | 69 73 69 6f 6e 20 32 2e |.#.# Rev|ision 2.|
|00014810| 30 20 20 31 39 39 31 2f | 31 31 2f 31 37 20 20 32 |0 1991/|11/17 2|
|00014820| 31 3a 34 32 3a 30 38 20 | 20 65 73 70 69 65 0a 23 |1:42:08 | espie.#|
|00014830| 20 43 6f 6d 70 6c 65 74 | 65 6c 79 20 63 6f 72 72 | Complet|ely corr|
|00014840| 65 63 74 65 64 20 62 75 | 67 67 79 20 74 61 62 73 |ected bu|ggy tabs|
|00014850| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 31 |..#.# Re|vision 1|
|00014860| 2e 31 31 20 20 31 39 39 | 31 2f 31 31 2f 31 37 20 |.11 199|1/11/17 |
|00014870| 20 31 36 3a 33 30 3a 34 | 38 20 20 65 73 70 69 65 | 16:30:4|8 espie|
|00014880| 0a 23 20 53 74 75 70 69 | 64 20 62 75 67 73 3a 20 |.# Stupi|d bugs: |
|00014890| 68 61 76 65 20 74 6f 20 | 6b 65 65 70 20 74 68 65 |have to |keep the|
|000148a0| 20 74 61 62 73 20 74 6f | 20 6b 65 65 70 20 74 68 | tabs to| keep th|
|000148b0| 65 20 6d 61 6b 65 66 69 | 6c 65 20 77 6f 72 6b 69 |e makefi|le worki|
|000148c0| 6e 67 2e 0a 23 0a 23 20 | 52 65 76 69 73 69 6f 6e |ng..#.# |Revision|
|000148d0| 20 31 2e 31 30 20 20 31 | 39 39 31 2f 31 31 2f 31 | 1.10 1|991/11/1|
|000148e0| 36 20 20 31 35 3a 35 30 | 3a 33 34 20 20 65 73 70 |6 15:50|:34 esp|
|000148f0| 69 65 0a 23 20 54 61 62 | 73 2e 0a 23 0a 23 20 52 |ie.# Tab|s..#.# R|
|00014900| 65 76 69 73 69 6f 6e 20 | 31 2e 39 20 31 39 39 31 |evision |1.9 1991|
|00014910| 2f 31 31 2f 31 36 20 31 | 35 3a 34 32 3a 34 33 20 |/11/16 1|5:42:43 |
|00014920| 20 65 73 70 69 65 0a 23 | 20 4d 69 6e 6f 72 20 6d | espie.#| Minor m|
|00014930| 6f 64 69 66 69 63 61 74 | 69 6f 6e 73 20 69 6e 20 |odificat|ions in |
|00014940| 6d 61 6b 65 20 63 6c 65 | 61 6e 2e 0a 23 0a 23 20 |make cle|an..#.# |
|00014950| 52 65 76 69 73 69 6f 6e | 20 31 2e 38 20 31 39 39 |Revision| 1.8 199|
|00014960| 31 2f 31 31 2f 30 39 20 | 31 37 3a 34 39 3a 31 34 |1/11/09 |17:49:14|
|00014970| 20 20 65 73 70 69 65 0a | 23 20 41 64 64 65 64 20 | espie.|# Added |
|00014980| 6f 70 74 69 6d 69 7a 61 | 74 69 6f 6e 20 61 20 6c |optimiza|tion a l|
|00014990| 61 20 73 67 69 2e 0a 23 | 0a 23 20 52 65 76 69 73 |a sgi..#|.# Revis|
|000149a0| 69 6f 6e 20 31 2e 37 20 | 31 39 39 31 2f 31 31 2f |ion 1.7 |1991/11/|
|000149b0| 30 37 20 32 31 3a 34 30 | 3a 31 36 20 20 65 73 70 |07 21:40|:16 esp|
|000149c0| 69 65 0a 23 20 41 64 64 | 65 64 20 73 6f 6d 65 20 |ie.# Add|ed some |
|000149d0| 6d 61 63 72 6f 73 2e 0a | 23 0a 23 20 52 65 76 69 |macros..|#.# Revi|
|000149e0| 73 69 6f 6e 20 31 2e 35 | 20 31 39 39 31 2f 31 31 |sion 1.5| 1991/11|
|000149f0| 2f 30 34 20 31 33 3a 32 | 33 3a 35 39 20 20 65 73 |/04 13:2|3:59 es|
|00014a00| 70 69 65 0a 23 20 41 64 | 64 65 64 20 73 6f 6d 65 |pie.# Ad|ded some|
|00014a10| 20 64 65 70 65 6e 64 65 | 6e 63 69 65 73 2e 0a 23 | depende|ncies..#|
|00014a20| 20 45 6e 74 72 79 20 66 | 6f 72 20 72 65 61 64 2e | Entry f|or read.|
|00014a30| 63 2e 0a 23 0a 23 20 52 | 65 76 69 73 69 6f 6e 20 |c..#.# R|evision |
|00014a40| 31 2e 34 20 31 39 39 31 | 2f 31 31 2f 30 34 20 30 |1.4 1991|/11/04 0|
|00014a50| 38 3a 30 31 3a 32 30 20 | 20 65 73 70 69 65 0a 23 |8:01:20 | espie.#|
|00014a60| 20 41 64 64 65 64 20 72 | 63 70 20 74 6f 20 63 6c | Added r|cp to cl|
|00014a70| 69 70 70 65 72 0a 23 0a | 23 20 52 65 76 69 73 69 |ipper.#.|# Revisi|
|00014a80| 6f 6e 20 31 2e 33 20 31 | 39 39 31 2f 31 31 2f 30 |on 1.3 1|991/11/0|
|00014a90| 33 20 32 32 3a 35 38 3a | 34 31 20 20 65 73 70 69 |3 22:58:|41 espi|
|00014aa0| 65 0a 23 20 46 69 78 65 | 64 20 6e 61 6d 65 20 6d |e.# Fixe|d name m|
|00014ab0| 69 73 74 61 6b 65 2e 0a | 23 0a 23 20 52 65 76 69 |istake..|#.# Revi|
|00014ac0| 73 69 6f 6e 20 31 2e 32 | 20 31 39 39 31 2f 31 31 |sion 1.2| 1991/11|
|00014ad0| 2f 30 33 20 32 32 3a 35 | 35 3a 32 33 20 20 65 73 |/03 22:5|5:23 es|
|00014ae0| 70 69 65 0a 23 20 41 64 | 64 65 64 20 61 6c 6c 2c |pie.# Ad|ded all,|
|00014af0| 20 63 6c 65 61 6e 20 61 | 6e 64 20 65 78 70 6f 72 | clean a|nd expor|
|00014b00| 74 20 65 6e 74 72 69 65 | 73 2e 0a 23 0a 23 20 52 |t entrie|s..#.# R|
|00014b10| 65 76 69 73 69 6f 6e 20 | 31 2e 31 20 31 39 39 31 |evision |1.1 1991|
|00014b20| 2f 31 31 2f 30 33 20 32 | 32 3a 34 35 3a 33 39 20 |/11/03 2|2:45:39 |
|00014b30| 20 65 73 70 69 65 0a 23 | 20 49 6e 69 74 69 61 6c | espie.#| Initial|
|00014b40| 20 72 65 76 69 73 69 6f | 6e 0a 23 0a 23 0a 0a 49 | revisio|n.#.#..I|
|00014b50| 4e 53 54 41 4c 4c 5f 44 | 49 52 20 3d 20 24 28 48 |NSTALL_D|IR = $(H|
|00014b60| 4f 4d 45 29 2f 62 69 6e | 2f 73 70 61 72 63 0a 4f |OME)/bin|/sparc.O|
|00014b70| 20 3d 20 2e 6f 0a 4d 41 | 49 4e 5f 4f 50 54 53 20 | = .o.MA|IN_OPTS |
|00014b80| 3d 20 2d 4f 34 20 0a 43 | 4f 50 54 53 20 3d 20 24 |= -O4 .C|OPTS = $|
|00014b90| 28 4d 41 49 4e 5f 4f 50 | 54 53 29 20 2d 63 0a 4d |(MAIN_OP|TS) -c.M|
|00014ba0| 41 43 48 49 4e 45 20 3d | 20 73 70 61 72 63 0a 4f |ACHINE =| sparc.O|
|00014bb0| 42 4a 45 43 54 53 20 3d | 20 73 74 72 33 32 24 4f |BJECTS =| str32$O|
|00014bc0| 20 24 28 4d 41 43 48 49 | 4e 45 29 5f 61 75 64 69 | $(MACHI|NE)_audi|
|00014bd0| 6f 24 4f 20 72 65 61 64 | 24 4f 20 63 6f 6d 6d 61 |o$O read|$O comma|
|00014be0| 6e 64 73 24 4f 20 5c 0a | 61 75 64 69 6f 24 4f 20 |nds$O \.|audio$O |
|00014bf0| 61 75 74 6f 6d 61 74 6f | 6e 24 4f 20 70 6c 61 79 |automato|n$O play|
|00014c00| 65 72 24 4f 0a 0a 0a 61 | 6c 6c 3a 20 74 72 61 63 |er$O...a|ll: trac|
|00014c10| 6b 65 72 20 6f 74 72 61 | 63 6b 65 72 20 6e 74 72 |ker otra|cker ntr|
|00014c20| 61 63 6b 65 72 0a 0a 69 | 6e 73 74 61 6c 6c 3a 20 |acker..i|nstall: |
|00014c30| 61 6c 6c 0a 09 63 70 20 | 74 72 61 63 6b 65 72 20 |all..cp |tracker |
|00014c40| 24 28 49 4e 53 54 41 4c | 4c 5f 44 49 52 29 0a 09 |$(INSTAL|L_DIR)..|
|00014c50| 2d 72 6d 20 2d 66 20 24 | 7b 49 4e 53 54 41 4c 4c |-rm -f $|{INSTALL|
|00014c60| 5f 44 49 52 7d 2f 6f 74 | 72 61 63 6b 65 72 0a 09 |_DIR}/ot|racker..|
|00014c70| 6c 6e 20 24 7b 49 4e 53 | 54 41 4c 4c 5f 44 49 52 |ln ${INS|TALL_DIR|
|00014c80| 7d 2f 74 72 61 63 6b 65 | 72 20 24 7b 49 4e 53 54 |}/tracke|r ${INST|
|00014c90| 41 4c 4c 5f 44 49 52 7d | 2f 6f 74 72 61 63 6b 65 |ALL_DIR}|/otracke|
|00014ca0| 72 0a 09 2d 72 6d 20 2d | 66 20 24 7b 49 4e 53 54 |r..-rm -|f ${INST|
|00014cb0| 41 4c 4c 5f 44 49 52 7d | 2f 6e 74 72 61 63 6b 65 |ALL_DIR}|/ntracke|
|00014cc0| 72 0a 09 6c 6e 20 24 7b | 49 4e 53 54 41 4c 4c 5f |r..ln ${|INSTALL_|
|00014cd0| 44 49 52 7d 2f 74 72 61 | 63 6b 65 72 20 24 7b 49 |DIR}/tra|cker ${I|
|00014ce0| 4e 53 54 41 4c 4c 5f 44 | 49 52 7d 2f 6e 74 72 61 |NSTALL_D|IR}/ntra|
|00014cf0| 63 6b 65 72 0a 0a 74 72 | 61 63 6b 65 72 3a 20 24 |cker..tr|acker: $|
|00014d00| 7b 4f 42 4a 45 43 54 53 | 7d 0a 09 63 63 20 2d 6f |{OBJECTS|}..cc -o|
|00014d10| 20 74 72 61 63 6b 65 72 | 20 24 7b 4d 41 49 4e 5f | tracker| ${MAIN_|
|00014d20| 4f 50 54 53 7d 20 24 7b | 4f 42 4a 45 43 54 53 7d |OPTS} ${|OBJECTS}|
|00014d30| 20 2d 6c 6d 0a 09 73 74 | 72 69 70 20 74 72 61 63 | -lm..st|rip trac|
|00014d40| 6b 65 72 0a 0a 6f 74 72 | 61 63 6b 65 72 3a 20 74 |ker..otr|acker: t|
|00014d50| 72 61 63 6b 65 72 0a 09 | 2d 72 6d 20 2d 66 20 6f |racker..|-rm -f o|
|00014d60| 74 72 61 63 6b 65 72 0a | 09 6c 6e 20 74 72 61 63 |tracker.|.ln trac|
|00014d70| 6b 65 72 20 6f 74 72 61 | 63 6b 65 72 0a 0a 6e 74 |ker otra|cker..nt|
|00014d80| 72 61 63 6b 65 72 3a 20 | 74 72 61 63 6b 65 72 0a |racker: |tracker.|
|00014d90| 09 2d 72 6d 20 2d 66 20 | 6e 74 72 61 63 6b 65 72 |.-rm -f |ntracker|
|00014da0| 0a 09 6c 6e 20 74 72 61 | 63 6b 65 72 20 6e 74 72 |..ln tra|cker ntr|
|00014db0| 61 63 6b 65 72 0a 0a 73 | 74 72 33 32 24 4f 3a 20 |acker..s|tr32$O: |
|00014dc0| 73 74 72 33 32 2e 63 20 | 6d 61 63 68 69 6e 65 2e |str32.c |machine.|
|00014dd0| 68 20 73 6f 6e 67 2e 68 | 0a 09 63 63 20 24 7b 43 |h song.h|..cc ${C|
|00014de0| 4f 50 54 53 7d 20 73 74 | 72 33 32 2e 63 0a 0a 24 |OPTS} st|r32.c..$|
|00014df0| 28 4d 41 43 48 49 4e 45 | 29 5f 61 75 64 69 6f 24 |(MACHINE|)_audio$|
|00014e00| 4f 3a 20 24 28 4d 41 43 | 48 49 4e 45 29 5f 61 75 |O: $(MAC|HINE)_au|
|00014e10| 64 69 6f 2e 63 20 6d 61 | 63 68 69 6e 65 2e 68 0a |dio.c ma|chine.h.|
|00014e20| 09 63 63 20 24 7b 43 4f | 50 54 53 7d 20 24 28 4d |.cc ${CO|PTS} $(M|
|00014e30| 41 43 48 49 4e 45 29 5f | 61 75 64 69 6f 2e 63 0a |ACHINE)_|audio.c.|
|00014e40| 0a 61 75 64 69 6f 24 4f | 3a 20 61 75 64 69 6f 2e |.audio$O|: audio.|
|00014e50| 63 0a 09 63 63 20 24 7b | 43 4f 50 54 53 7d 20 61 |c..cc ${|COPTS} a|
|00014e60| 75 64 69 6f 2e 63 0a 0a | 61 75 74 6f 6d 61 74 6f |udio.c..|automato|
|00014e70| 6e 24 4f 3a 20 61 75 74 | 6f 6d 61 74 6f 6e 2e 63 |n$O: aut|omaton.c|
|00014e80| 20 6d 61 63 68 69 6e 65 | 2e 68 20 73 6f 6e 67 2e | machine|.h song.|
|00014e90| 68 20 63 68 61 6e 6e 65 | 6c 2e 68 0a 09 63 63 20 |h channe|l.h..cc |
|00014ea0| 24 7b 43 4f 50 54 53 7d | 20 61 75 74 6f 6d 61 74 |${COPTS}| automat|
|00014eb0| 6f 6e 2e 63 0a 0a 70 6c | 61 79 65 72 24 4f 3a 20 |on.c..pl|ayer$O: |
|00014ec0| 70 6c 61 79 65 72 2e 63 | 20 6d 61 63 68 69 6e 65 |player.c| machine|
|00014ed0| 2e 68 20 73 6f 6e 67 2e | 68 20 63 68 61 6e 6e 65 |.h song.|h channe|
|00014ee0| 6c 2e 68 0a 09 63 63 20 | 24 7b 43 4f 50 54 53 7d |l.h..cc |${COPTS}|
|00014ef0| 20 70 6c 61 79 65 72 2e | 63 0a 0a 72 65 61 64 24 | player.|c..read$|
|00014f00| 4f 3a 20 72 65 61 64 2e | 63 20 6d 61 63 68 69 6e |O: read.|c machin|
|00014f10| 65 2e 68 20 73 6f 6e 67 | 2e 68 0a 09 63 63 20 24 |e.h song|.h..cc $|
|00014f20| 7b 43 4f 50 54 53 7d 20 | 72 65 61 64 2e 63 0a 0a |{COPTS} |read.c..|
|00014f30| 63 6f 6d 6d 61 6e 64 73 | 24 4f 3a 20 63 6f 6d 6d |commands|$O: comm|
|00014f40| 61 6e 64 73 2e 63 20 63 | 68 61 6e 6e 65 6c 2e 68 |ands.c c|hannel.h|
|00014f50| 20 6d 61 63 68 69 6e 65 | 2e 68 20 73 6f 6e 67 2e | machine|.h song.|
|00014f60| 68 0a 09 63 63 20 24 7b | 43 4f 50 54 53 7d 20 63 |h..cc ${|COPTS} c|
|00014f70| 6f 6d 6d 61 6e 64 73 2e | 63 0a 0a 6d 61 63 68 69 |ommands.|c..machi|
|00014f80| 6e 65 2e 68 3a 20 24 28 | 4d 41 43 48 49 4e 45 29 |ne.h: $(|MACHINE)|
|00014f90| 2e 68 0a 09 63 70 20 24 | 28 4d 41 43 48 49 4e 45 |.h..cp $|(MACHINE|
|00014fa0| 29 2e 68 20 6d 61 63 68 | 69 6e 65 2e 68 0a 0a 63 |).h mach|ine.h..c|
|00014fb0| 6c 65 61 6e 3a 0a 09 2d | 72 6d 20 2a 2e 75 20 2a |lean:..-|rm *.u *|
|00014fc0| 2e 6f 20 6d 61 63 68 69 | 6e 65 2e 68 20 74 72 61 |.o machi|ne.h tra|
|00014fd0| 63 6b 65 72 20 6f 74 72 | 61 63 6b 65 72 20 63 6f |cker otr|acker co|
|00014fe0| 72 65 20 73 74 72 2e 74 | 61 72 20 73 74 72 2e 74 |re str.t|ar str.t|
|00014ff0| 61 72 2e 5a 0a 65 78 70 | 6f 72 74 3a 0a 09 74 61 |ar.Z.exp|ort:..ta|
|00015000| 72 20 63 76 66 20 73 74 | 72 2e 74 61 72 20 2a 2e |r cvf st|r.tar *.|
|00015010| 63 20 73 6f 6e 67 2e 68 | 20 73 67 69 2e 68 20 73 |c song.h| sgi.h s|
|00015020| 70 61 72 63 2e 68 20 65 | 78 74 65 72 6e 2e 68 20 |parc.h e|xtern.h |
|00015030| 63 68 61 6e 6e 65 6c 2e | 68 20 5c 0a 09 70 72 65 |channel.|h \..pre|
|00015040| 66 2e 68 20 6d 61 6b 65 | 66 69 6c 65 2e 2a 20 74 |f.h make|file.* t|
|00015050| 72 61 63 6b 65 72 2e 64 | 6f 63 0a 09 63 6f 6d 70 |racker.d|oc..comp|
|00015060| 72 65 73 73 20 73 74 72 | 2e 74 61 72 0a 09 72 63 |ress str|.tar..rc|
|00015070| 70 20 73 74 72 2e 74 61 | 72 2e 5a 20 63 6c 69 70 |p str.ta|r.Z clip|
|00015080| 70 65 72 3a 0a 3a 20 6d | 61 6b 65 66 69 6c 65 2e |per:.: m|akefile.|
|00015090| 73 70 61 72 63 2c 76 20 | 24 0a 23 20 52 65 76 69 |sparc,v |$.# Revi|
|000150a0| 73 69 6f 6e 20 32 2e 34 | 20 20 31 39 39 31 2f 31 |sion 2.4| 1991/1|
|000150b0| 32 2f 30 34 20 20 31 34 | 3a 30 34 3a 31 35 20 20 |2/04 14|:04:15 |
|000150c0| 65 73 70 69 65 0a 23 20 | 41 64 64 65 64 20 64 6f |espie.# |Added do|
|000150d0| 63 20 66 69 6c 65 2e 0a | 23 0a 23 20 52 65 76 69 |c file..|#.# Revi|
|000150e0| 73 69 6f 6e 20 32 2e 33 | 20 20 31 39 39 31 2f 31 |sion 2.3| 1991/1|
|000150f0| 32 2f 30 33 20 20 31 37 | 3a 31 39 3a 32 39 20 20 |2/03 17|:19:29 |
|00015100| 65 73 70 69 65 0a 23 20 | 41 64 64 65 64 20 6e 74 |espie.# |Added nt|
|00015110| 72 61 63 6b 65 72 2e 0a | 23 0a 23 20 52 65 76 69 |racker..|#.# Revi|
|00015120| 73 69 6f 6e 20 32 2e 32 | 20 20 31 39 39 31 2f 31 |sion 2.2| 1991/1|
|00015130| 31 2f 31 39 20 20 31 36 | 3a 30 37 3a 31 39 20 20 |1/19 16|:07:19 |
|00015140| 65 73 70 69 65 0a 23 20 | 41 64 64 65 64 20 63 6f |espie.# |Added co|
|00015150| 6d 6d 65 6e 74 73 2c 20 | 6d 6f 76 65 64 20 6d 69 |mments, |moved mi|
|00015160| 6e 6f 72 20 73 74 75 66 | 66 20 61 72 6f 75 6e 64 |nor stuf|f around|
|00015170| 2e 0a 23 0a 23 20 52 65 | 76 69 73 69 6f 6e 20 32 |..#.# Re|vision 2|
|00015180| 2e 32 20 20 31 39 39 31 | 2f 31 31 2f 31 38 20 20 |.2 1991|/11/18 |
|00015190| 30 31 3a 31 30 3a 34 35 | 20 20 65 73 70 69 65 0a |01:10:45| espie.|
|000151a0| 23 20 55 70 64 61 74 65 | 64 2c 20 61 64 64 65 64 |# Update|d, added|
|000151b0| 20 69 6e 73 74 61 6c 6c | 20 65 6e 74 72 79 2e 0a | install| entry..|
|000151c0| 23 0a 23 20 52 65 76 69 | 73 69 6f 6e 20 32 2e 31 |#.# Revi|sion 2.1|
|000151d0| 20 20 31 39 39 31 2f 31 | 31 2f 31 37 20 20 32 33 | 1991/1|1/17 23|
|000151e0| 3a 30 37 3a 35 38 20 20 | 65 73 70 69 65 0a 23 20 |:07:58 |espie.# |
|000151f0| 41 64 64 65 64 20 6e 65 | 77 20 66 69 6c 65 73 2e |Added ne|w files.|
|00015200| 74 72 61 63 6b 65 72 2e | 64 6f 63 00 00 00 00 00 |tracker.|doc.....|
|00015210| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015220| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015230| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015240| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015250| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015260| 00 00 00 00 20 20 20 36 | 34 34 20 00 20 20 31 31 |.... 6|44 . 11|
|00015270| 35 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |55 . 1|44 . |
|00015280| 20 20 31 30 37 34 32 20 | 20 35 31 32 31 33 34 37 | 10742 | 5121347|
|00015290| 32 37 37 20 20 20 36 33 | 33 30 00 20 00 00 00 00 |277 63|30. ....|
|000152a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000152b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000152c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000152d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000152e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000152f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015300| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015310| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015320| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015330| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015340| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015350| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015370| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015380| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015390| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000153a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000153b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000153c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000153d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000153e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000153f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00015400| 74 72 61 63 6b 65 72 20 | 69 73 20 61 20 73 6f 75 |tracker |is a sou|
|00015410| 6e 64 74 72 61 63 6b 65 | 72 20 70 6c 61 79 65 72 |ndtracke|r player|
|00015420| 20 66 6f 72 20 73 70 61 | 72 63 20 6f 72 20 73 69 | for spa|rc or si|
|00015430| 6c 69 63 6f 6e 20 67 72 | 61 70 68 69 63 73 0a 6d |licon gr|aphics.m|
|00015440| 61 63 68 69 6e 65 73 2e | 0a 54 6f 20 62 75 69 6c |achines.|.To buil|
|00015450| 64 20 69 74 2c 20 6a 75 | 73 74 20 75 73 65 20 74 |d it, ju|st use t|
|00015460| 68 65 20 61 70 70 72 6f | 70 72 69 61 74 65 20 6d |he appro|priate m|
|00015470| 61 6b 65 66 69 6c 65 2e | 0a 0a 0a 74 72 61 63 6b |akefile.|...track|
|00015480| 65 72 20 69 73 20 61 20 | 70 75 62 6c 69 63 20 64 |er is a |public d|
|00015490| 6f 6d 61 69 6e 20 70 72 | 6f 67 72 61 6d 2c 20 69 |omain pr|ogram, i|
|000154a0| 74 20 69 73 20 6e 6f 74 | 20 67 75 61 72 61 6e 74 |t is not| guarant|
|000154b0| 65 65 64 20 74 6f 20 64 | 6f 20 61 6e 79 74 68 69 |eed to d|o anythi|
|000154c0| 6e 67 0a 61 74 20 61 6c | 6c 2c 20 65 69 74 68 65 |ng.at al|l, eithe|
|000154d0| 72 20 75 73 65 66 75 6c | 20 6f 72 20 75 73 65 6c |r useful| or usel|
|000154e0| 65 73 73 2e 20 44 6f 20 | 77 69 74 68 20 69 74 20 |ess. Do |with it |
|000154f0| 61 73 20 79 6f 75 20 77 | 69 6c 6c 2c 20 62 75 74 |as you w|ill, but|
|00015500| 20 0a 75 73 65 20 69 74 | 20 61 74 20 79 6f 75 72 | .use it| at your|
|00015510| 20 6f 77 6e 20 72 69 73 | 6b 2e 0a 0a 60 60 53 6f | own ris|k...``So|
|00015520| 75 6e 64 74 72 61 63 6b | 65 72 27 27 20 69 73 20 |undtrack|er'' is |
|00015530| 61 20 66 61 6d 69 6c 79 | 20 6f 66 20 6d 75 73 69 |a family| of musi|
|00015540| 63 20 63 6f 6d 70 6f 73 | 69 74 69 6f 6e 20 70 72 |c compos|ition pr|
|00015550| 6f 67 72 61 6d 73 0a 74 | 68 61 74 20 65 78 69 73 |ograms.t|hat exis|
|00015560| 74 73 20 6f 6e 20 74 68 | 65 20 61 6d 69 67 61 2e |ts on th|e amiga.|
|00015570| 20 54 68 65 20 72 65 73 | 75 6c 74 69 6e 67 20 64 | The res|ulting d|
|00015580| 61 74 61 20 66 69 6c 65 | 73 20 28 6d 6f 64 75 6c |ata file|s (modul|
|00015590| 65 73 29 0a 68 61 76 65 | 20 62 65 65 6e 20 61 70 |es).have| been ap|
|000155a0| 70 65 61 72 69 6e 67 20 | 6f 6e 20 66 74 70 20 73 |pearing |on ftp s|
|000155b0| 69 74 65 73 20 66 6f 72 | 20 73 6f 6d 65 20 74 69 |ites for| some ti|
|000155c0| 6d 65 20 6e 6f 77 2e 0a | 0a 46 6f 72 20 61 20 6d |me now..|.For a m|
|000155d0| 61 63 68 69 6e 65 20 77 | 69 74 68 20 73 75 66 66 |achine w|ith suff|
|000155e0| 69 63 69 65 6e 74 20 68 | 6f 72 73 65 70 6f 77 65 |icient h|orsepowe|
|000155f0| 72 20 61 6e 64 20 73 6f | 6d 65 20 61 75 64 69 6f |r and so|me audio|
|00015600| 20 63 61 70 61 62 69 6c | 69 74 79 2c 0a 69 74 20 | capabil|ity,.it |
|00015610| 69 73 20 70 6f 73 73 69 | 62 6c 65 20 74 6f 20 65 |is possi|ble to e|
|00015620| 6d 75 6c 61 74 65 20 74 | 68 65 20 61 6d 69 67 61 |mulate t|he amiga|
|00015630| 20 61 75 64 69 6f 20 68 | 61 72 64 77 61 72 65 20 | audio h|ardware |
|00015640| 69 6e 20 72 65 61 6c 20 | 74 69 6d 65 2c 0a 61 6e |in real |time,.an|
|00015650| 64 20 70 6c 61 79 20 74 | 68 6f 73 65 20 6d 6f 64 |d play t|hose mod|
|00015660| 75 6c 65 73 2e 0a 41 66 | 74 65 72 20 74 68 61 74 |ules..Af|ter that|
|00015670| 2c 20 79 6f 75 27 72 65 | 20 6f 6e 6c 79 20 6c 69 |, you're| only li|
|00015680| 6d 69 74 65 64 20 62 79 | 20 74 68 65 20 6d 61 63 |mited by| the mac|
|00015690| 68 69 6e 65 27 73 20 63 | 61 70 61 62 69 6c 69 74 |hine's c|apabilit|
|000156a0| 69 65 73 2e 20 54 68 65 | 0a 73 70 61 72 63 20 69 |ies. The|.sparc i|
|000156b0| 73 20 61 20 62 69 74 20 | 70 6f 6f 72 20 28 61 73 |s a bit |poor (as|
|000156c0| 20 61 20 38 4b 20 6d 61 | 63 68 69 6e 65 29 2c 20 | a 8K ma|chine), |
|000156d0| 69 6e 20 63 6f 6e 74 72 | 61 73 74 20 77 69 74 68 |in contr|ast with|
|000156e0| 20 74 68 65 20 69 6e 64 | 69 67 6f 2c 0a 77 68 69 | the ind|igo,.whi|
|000156f0| 63 68 20 67 69 76 65 73 | 20 61 6e 20 61 6c 6d 6f |ch gives| an almo|
|00015700| 73 74 20 70 65 72 66 65 | 63 74 20 72 65 6e 64 69 |st perfe|ct rendi|
|00015710| 74 69 6f 6e 20 6f 66 20 | 6d 6f 73 74 20 6d 6f 64 |tion of |most mod|
|00015720| 75 6c 65 73 2e 0a 0a 54 | 68 69 73 20 72 65 6c 65 |ules...T|his rele|
|00015730| 61 73 65 20 6f 66 20 74 | 72 61 63 6b 65 72 20 73 |ase of t|racker s|
|00015740| 75 70 70 6f 72 74 73 20 | 6d 6f 73 74 20 61 6d 69 |upports |most ami|
|00015750| 67 61 20 73 6f 75 6e 64 | 74 72 61 63 6b 65 72 20 |ga sound|tracker |
|00015760| 66 69 6c 65 20 66 6f 72 | 6d 61 74 73 2c 0a 61 6e |file for|mats,.an|
|00015770| 64 20 70 6c 61 79 73 20 | 6d 6f 73 74 20 6f 66 20 |d plays |most of |
|00015780| 74 68 65 20 65 78 69 73 | 74 69 6e 67 20 65 66 66 |the exis|ting eff|
|00015790| 65 63 74 73 2c 20 73 6f | 20 74 68 61 74 20 61 62 |ects, so| that ab|
|000157a0| 6f 75 74 20 39 35 25 20 | 6f 66 20 74 68 65 20 6d |out 95% |of the m|
|000157b0| 6f 64 75 6c 65 73 0a 61 | 72 65 20 6f 75 74 70 75 |odules.a|re outpu|
|000157c0| 74 20 63 6f 72 72 65 63 | 74 6c 79 2e 0a 0a 54 68 |t correc|tly...Th|
|000157d0| 65 72 65 20 69 73 20 6e | 6f 20 6d 61 6e 20 70 61 |ere is n|o man pa|
|000157e0| 67 65 20 28 77 72 69 74 | 65 20 69 74 20 79 6f 75 |ge (writ|e it you|
|000157f0| 72 73 65 6c 66 29 2c 20 | 62 75 74 20 61 20 73 68 |rself), |but a sh|
|00015800| 6f 72 74 20 64 65 73 63 | 72 69 70 74 69 6f 6e 20 |ort desc|ription |
|00015810| 6f 66 0a 74 68 65 20 6f | 70 74 69 6f 6e 73 20 63 |of.the o|ptions c|
|00015820| 61 6e 20 62 65 20 6f 62 | 74 61 69 6e 65 64 20 77 |an be ob|tained w|
|00015830| 69 74 68 20 74 72 61 63 | 6b 65 72 20 2d 68 2e 0a |ith trac|ker -h..|
|00015840| 0a 48 65 72 65 20 69 73 | 20 73 6f 6d 65 20 73 75 |.Here is| some su|
|00015850| 70 70 6c 65 6d 65 6e 74 | 61 72 79 20 69 6e 66 6f |pplement|ary info|
|00015860| 72 6d 61 74 69 6f 6e 2e | 0a 0a 45 6e 76 69 72 6f |rmation.|..Enviro|
|00015870| 6e 6d 65 6e 74 20 76 61 | 72 69 61 62 6c 65 73 3a |nment va|riables:|
|00015880| 0a 4f 56 45 52 53 41 4d | 50 4c 45 20 63 61 6e 20 |.OVERSAM|PLE can |
|00015890| 62 65 20 75 73 65 64 20 | 74 6f 20 63 6f 6e 74 72 |be used |to contr|
|000158a0| 6f 6c 20 74 68 65 20 61 | 63 75 72 61 74 65 6e 65 |ol the a|curatene|
|000158b0| 73 73 20 6f 66 20 74 68 | 65 20 72 65 70 72 6f 64 |ss of th|e reprod|
|000158c0| 75 63 74 69 6f 6e 2e 0a | 28 49 74 20 69 73 20 74 |uction..|(It is t|
|000158d0| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 73 61 6d |he numbe|r of sam|
|000158e0| 70 6c 65 73 20 75 73 65 | 64 20 74 6f 20 6f 75 74 |ples use|d to out|
|000158f0| 70 75 74 20 6f 6e 65 20 | 61 75 64 69 6f 20 77 6f |put one |audio wo|
|00015900| 72 64 29 2e 0a 54 68 65 | 20 68 69 67 68 65 72 2c |rd)..The| higher,|
|00015910| 20 74 68 65 20 62 65 74 | 74 65 72 2c 20 62 75 74 | the bet|ter, but|
|00015920| 20 74 68 65 20 6d 6f 72 | 65 20 43 50 55 20 69 74 | the mor|e CPU it|
|00015930| 20 77 69 6c 6c 20 75 73 | 65 2e 20 54 68 65 20 64 | will us|e. The d|
|00015940| 65 66 61 75 6c 74 0a 76 | 61 6c 75 65 20 28 31 29 |efault.v|alue (1)|
|00015950| 20 69 73 20 71 75 69 74 | 65 20 67 6f 6f 64 20 61 | is quit|e good a|
|00015960| 74 20 68 69 67 68 20 66 | 72 65 71 75 65 6e 63 69 |t high f|requenci|
|00015970| 65 73 2c 20 62 75 74 20 | 6e 6f 74 20 73 6f 20 66 |es, but |not so f|
|00015980| 6f 72 2c 20 66 6f 72 20 | 69 6e 73 74 61 6e 63 65 |or, for |instance|
|00015990| 0a 61 20 70 6f 6f 72 20 | 73 70 61 72 63 20 73 74 |.a poor |sparc st|
|000159a0| 61 74 69 6f 6e 27 73 20 | 38 30 30 30 20 48 7a 2e |ation's |8000 Hz.|
|000159b0| 20 59 6f 75 20 63 61 6e | 20 74 72 79 2c 20 73 61 | You can| try, sa|
|000159c0| 79 2c 20 32 20 6f 72 20 | 33 2e 20 41 66 74 65 72 |y, 2 or |3. After|
|000159d0| 20 74 68 61 74 2c 0a 74 | 68 65 72 65 20 77 6f 6e | that,.t|here won|
|000159e0| 27 74 20 62 65 20 61 6e | 79 20 6e 6f 74 69 63 65 |'t be an|y notice|
|000159f0| 61 62 6c 65 20 69 6d 70 | 72 6f 76 65 6d 65 6e 74 |able imp|rovement|
|00015a00| 2c 20 61 6e 64 20 61 6e | 79 77 61 79 2c 20 74 68 |, and an|yway, th|
|00015a10| 65 20 70 72 6f 67 72 61 | 6d 20 77 6f 6e 27 74 0a |e progra|m won't.|
|00015a20| 62 65 20 66 61 73 74 20 | 65 6e 6f 75 67 68 20 74 |be fast |enough t|
|00015a30| 6f 20 6b 65 65 70 20 75 | 70 20 77 69 74 68 20 74 |o keep u|p with t|
|00015a40| 68 65 20 6f 75 74 70 75 | 74 20 72 61 74 65 2e 0a |he outpu|t rate..|
|00015a50| 0a 46 52 45 51 55 45 4e | 43 59 20 63 61 6e 20 62 |.FREQUEN|CY can b|
|00015a60| 65 20 75 73 65 64 20 74 | 6f 20 73 65 74 20 74 68 |e used t|o set th|
|00015a70| 65 20 61 75 64 69 6f 20 | 6f 75 74 70 75 74 20 61 |e audio |output a|
|00015a80| 74 20 61 20 73 70 65 63 | 69 66 69 63 20 66 72 65 |t a spec|ific fre|
|00015a90| 71 75 65 6e 63 79 0a 28 | 69 66 20 74 68 65 20 68 |quency.(|if the h|
|00015aa0| 61 72 64 77 61 72 65 20 | 73 75 70 70 6f 72 74 73 |ardware |supports|
|00015ab0| 20 69 74 29 2e 20 54 68 | 65 20 68 61 72 64 77 61 | it). Th|e hardwa|
|00015ac0| 72 65 20 77 69 6c 6c 20 | 64 65 63 69 64 65 20 77 |re will |decide w|
|00015ad0| 68 69 63 68 20 66 72 65 | 71 75 65 6e 63 79 0a 74 |hich fre|quency.t|
|00015ae0| 6f 20 61 63 74 75 61 6c | 6c 79 20 75 73 65 2c 20 |o actual|ly use, |
|00015af0| 61 63 63 6f 72 64 69 6e | 67 20 74 6f 20 6f 74 68 |accordin|g to oth|
|00015b00| 65 72 20 65 78 74 65 72 | 6e 61 6c 20 70 61 72 61 |er exter|nal para|
|00015b10| 6d 65 74 65 72 73 2e 0a | 0a 4d 4f 4e 4f 20 6f 6e |meters..|.MONO on|
|00015b20| 20 74 68 65 20 73 67 69 | 20 63 61 6e 20 62 65 20 | the sgi| can be |
|00015b30| 75 73 65 64 20 74 6f 20 | 66 6f 72 63 65 20 6d 6f |used to |force mo|
|00015b40| 6e 6f 20 6f 75 74 70 75 | 74 2c 20 77 68 69 63 68 |no outpu|t, which|
|00015b50| 20 75 73 65 73 20 6c 65 | 73 73 0a 63 70 75 20 70 | uses le|ss.cpu p|
|00015b60| 6f 77 65 72 2e 0a 0a 54 | 52 41 4e 53 50 4f 53 45 |ower...T|RANSPOSE|
|00015b70| 20 69 73 20 74 68 65 20 | 6e 75 6d 62 65 72 20 6f | is the |number o|
|00015b80| 66 20 68 61 6c 66 74 6f | 6e 65 73 20 74 6f 20 74 |f halfto|nes to t|
|00015b90| 72 61 6e 73 70 6f 73 65 | 20 65 61 63 68 20 6e 6f |ranspose| each no|
|00015ba0| 74 65 20 28 3e 30 20 69 | 73 20 68 69 67 68 65 72 |te (>0 i|s higher|
|00015bb0| 29 2e 0a 55 73 65 66 75 | 6c 20 66 6f 72 20 6c 6f |)..Usefu|l for lo|
|00015bc0| 77 20 66 72 65 71 75 65 | 6e 63 79 20 73 70 61 72 |w freque|ncy spar|
|00015bd0| 63 73 20 77 68 69 63 68 | 20 63 61 6e 27 74 20 70 |cs which| can't p|
|00015be0| 6c 61 79 20 73 6f 6d 65 | 20 74 75 6e 65 73 20 61 |lay some| tunes a|
|00015bf0| 63 63 75 72 61 74 65 6c | 79 2c 20 6f 72 0a 77 68 |ccuratel|y, or.wh|
|00015c00| 65 6e 20 79 6f 75 20 67 | 65 74 20 62 6f 72 65 64 |en you g|et bored|
|00015c10| 2e 2e 2e 0a 0a 4d 6f 73 | 74 20 6f 66 20 74 68 65 |.....Mos|t of the|
|00015c20| 20 73 77 69 74 63 68 65 | 73 20 61 72 65 20 68 65 | switche|s are he|
|00015c30| 72 65 20 66 6f 72 20 63 | 6f 6d 70 61 74 69 62 69 |re for c|ompatibi|
|00015c40| 6c 69 74 79 20 72 65 61 | 73 6f 6e 73 2e 20 41 73 |lity rea|sons. As|
|00015c50| 20 74 68 65 72 65 0a 61 | 72 65 20 62 69 6c 6c 69 | there.a|re billi|
|00015c60| 6f 6e 73 20 61 6e 64 20 | 62 69 6c 6c 69 6f 6e 73 |ons and |billions|
|00015c70| 2e 2e 20 77 61 69 74 2c | 20 77 72 6f 6e 67 20 73 |.. wait,| wrong s|
|00015c80| 65 72 69 65 73 2e 20 41 | 73 20 74 68 65 72 65 20 |eries. A|s there |
|00015c90| 61 72 65 20 6c 6f 74 73 | 20 61 6e 64 0a 6c 6f 74 |are lots| and.lot|
|00015ca0| 73 20 6f 66 20 73 6f 75 | 6e 64 74 72 61 63 6b 65 |s of sou|ndtracke|
|00015cb0| 72 73 20 63 6c 6f 6e 65 | 73 20 6f 75 74 20 74 68 |rs clone|s out th|
|00015cc0| 65 72 65 2c 20 74 68 65 | 79 20 61 72 65 20 6e 6f |ere, the|y are no|
|00015cd0| 74 20 2a 71 75 69 74 65 | 2a 20 0a 63 6f 6d 70 61 |t *quite|* .compa|
|00015ce0| 74 69 62 6c 65 20 77 69 | 74 68 20 6f 6e 65 20 61 |tible wi|th one a|
|00015cf0| 6e 6f 74 68 65 72 2e 20 | 4d 61 69 6e 6c 79 2c 20 |nother. |Mainly, |
|00015d00| 74 68 65 72 65 20 77 61 | 73 20 61 6e 20 6f 6c 64 |there wa|s an old|
|00015d10| 20 66 6f 72 6d 61 74 20 | 61 6e 64 20 61 20 0a 6e | format |and a .n|
|00015d20| 65 77 65 72 20 66 6f 72 | 6d 61 74 2e 0a 59 6f 75 |ewer for|mat..You|
|00015d30| 20 63 61 6e 20 66 6f 72 | 63 65 20 6f 6e 65 20 6f | can for|ce one o|
|00015d40| 66 20 74 68 65 73 65 20 | 66 6f 72 6d 61 74 73 20 |f these |formats |
|00015d50| 62 79 20 65 69 74 68 65 | 72 20 72 65 6e 61 6d 69 |by eithe|r renami|
|00015d60| 6e 67 20 79 6f 75 72 20 | 63 6f 6d 6d 61 6e 64 0a |ng your |command.|
|00015d70| 74 6f 20 6e 74 72 61 63 | 6b 65 72 20 6f 72 20 6f |to ntrac|ker or o|
|00015d80| 74 72 61 63 6b 65 72 2c | 20 6f 72 20 79 6f 75 20 |tracker,| or you |
|00015d90| 63 61 6e 20 75 73 65 20 | 74 68 65 20 2d 6e 20 61 |can use |the -n a|
|00015da0| 6e 64 20 2d 6f 20 73 77 | 69 74 63 68 20 74 6f 20 |nd -o sw|itch to |
|00015db0| 74 72 79 0a 72 65 61 64 | 69 6e 67 20 61 20 66 69 |try.read|ing a fi|
|00015dc0| 6c 65 20 61 73 20 61 20 | 6e 65 77 20 74 72 61 63 |le as a |new trac|
|00015dd0| 6b 65 72 20 66 69 6c 65 | 2c 20 6f 72 20 61 6e 20 |ker file|, or an |
|00015de0| 6f 6c 64 20 74 72 61 63 | 6b 65 72 20 66 69 6c 65 |old trac|ker file|
|00015df0| 2e 0a 54 68 65 20 64 65 | 66 61 75 6c 74 20 69 73 |..The de|fault is|
|00015e00| 20 74 6f 20 74 72 79 20 | 66 69 72 73 74 20 74 68 | to try |first th|
|00015e10| 65 20 6e 65 77 20 74 72 | 61 63 6b 65 72 20 66 6f |e new tr|acker fo|
|00015e20| 72 6d 61 74 2c 20 74 68 | 65 6e 20 72 65 76 65 72 |rmat, th|en rever|
|00015e30| 74 20 74 6f 0a 74 68 65 | 20 6f 6c 64 20 74 72 61 |t to.the| old tra|
|00015e40| 63 6b 65 72 20 66 6f 72 | 6d 61 74 20 28 73 77 69 |cker for|mat (swi|
|00015e50| 74 63 68 20 2d 62 20 66 | 6f 72 20 62 6f 74 68 29 |tch -b f|or both)|
|00015e60| 2e 0a 54 68 65 72 65 20 | 69 73 20 61 6c 73 6f 20 |..There |is also |
|00015e70| 61 20 73 70 65 65 64 20 | 70 72 6f 62 6c 65 6d 73 |a speed |problems|
|00015e80| 2e 20 4d 6f 73 74 20 74 | 72 61 63 6b 65 72 73 20 |. Most t|rackers |
|00015e90| 75 73 65 20 73 6f 6d 65 | 20 74 69 6d 69 6e 67 20 |use some| timing |
|00015ea0| 77 68 69 63 68 0a 69 73 | 20 64 65 70 65 6e 64 65 |which.is| depende|
|00015eb0| 6e 74 20 75 70 6f 6e 20 | 74 68 65 20 70 6f 77 65 |nt upon |the powe|
|00015ec0| 72 6c 69 6e 65 20 66 72 | 65 71 75 65 6e 63 79 2e |rline fr|equency.|
|00015ed0| 2e 2e 20 36 30 48 7a 20 | 69 6e 20 74 68 65 20 73 |.. 60Hz |in the s|
|00015ee0| 74 61 74 65 73 2c 20 35 | 30 48 7a 0a 69 6e 20 45 |tates, 5|0Hz.in E|
|00015ef0| 75 72 6f 70 65 2e 20 4d | 6f 73 74 20 6d 6f 64 75 |urope. M|ost modu|
|00015f00| 6c 65 73 20 68 61 76 65 | 20 62 65 65 6e 20 63 6f |les have| been co|
|00015f10| 6d 70 6f 73 65 64 20 69 | 6e 20 45 75 72 6f 70 65 |mposed i|n Europe|
|00015f20| 2c 20 73 6f 20 74 68 65 | 20 64 65 66 61 75 6c 74 |, so the| default|
|00015f30| 0a 69 73 20 35 30 48 7a | 2c 20 62 75 74 20 79 6f |.is 50Hz|, but yo|
|00015f40| 75 20 63 61 6e 20 73 65 | 74 20 74 68 61 74 20 73 |u can se|t that s|
|00015f50| 70 65 65 64 20 74 6f 20 | 36 30 48 7a 20 77 69 74 |peed to |60Hz wit|
|00015f60| 68 20 2d 73 36 30 2e 0a | 28 49 6e 63 69 64 65 6e |h -s60..|(Inciden|
|00015f70| 74 61 6c 6c 79 2c 20 79 | 6f 75 20 63 61 6e 20 74 |tally, y|ou can t|
|00015f80| 72 79 20 61 6e 64 20 73 | 70 65 65 64 20 75 70 20 |ry and s|peed up |
|00015f90| 61 20 6d 6f 64 75 6c 65 | 20 74 6f 20 61 6d 61 7a |a module| to amaz|
|00015fa0| 69 6e 67 20 73 70 65 65 | 64 73 20 6c 69 6b 65 0a |ing spee|ds like.|
|00015fb0| 2d 73 32 30 30 2c 20 6a | 75 73 74 20 66 6f 72 20 |-s200, j|ust for |
|00015fc0| 66 75 6e 29 2e 0a 0a 54 | 68 65 20 2d 66 20 73 77 |fun)...T|he -f sw|
|00015fd0| 69 74 63 68 20 69 73 20 | 6e 6f 74 20 72 65 61 6c |itch is |not real|
|00015fe0| 6c 79 20 74 68 65 72 65 | 20 74 6f 20 62 65 20 75 |ly there| to be u|
|00015ff0| 73 65 64 2c 20 65 78 63 | 65 70 74 20 69 66 20 74 |sed, exc|ept if t|
|00016000| 68 65 72 65 20 69 73 20 | 61 0a 6d 6f 64 75 6c 65 |here is |a.module|
|00016010| 20 79 6f 75 20 72 65 61 | 6c 6c 79 20 63 61 6e 27 | you rea|lly can'|
|00016020| 74 20 70 6c 61 79 2c 20 | 74 68 65 6e 20 74 72 79 |t play, |then try|
|00016030| 20 2d 66 32 2e 0a 0a 54 | 68 65 20 2d 72 20 73 77 | -f2...T|he -r sw|
|00016040| 69 74 63 68 20 69 73 20 | 6f 62 76 69 6f 75 73 20 |itch is |obvious |
|00016050| 28 49 20 68 6f 70 65 29 | 2e 0a 0a 54 68 65 20 2d |(I hope)|...The -|
|00016060| 6d 20 76 61 6c 75 65 20 | 69 73 20 61 20 6d 69 78 |m value |is a mix|
|00016070| 20 76 61 6c 75 65 2e 20 | 49 6e 20 72 65 61 6c 2d | value. |In real-|
|00016080| 77 6f 72 6c 64 20 73 74 | 65 72 65 6f 2c 20 79 6f |world st|ereo, yo|
|00016090| 75 20 68 65 61 72 20 65 | 61 63 68 20 73 69 64 65 |u hear e|ach side|
|000160a0| 20 6f 6e 0a 74 68 65 20 | 6f 74 68 65 72 20 73 69 | on.the |other si|
|000160b0| 64 65 2c 20 61 74 20 6c | 65 61 73 74 20 61 20 62 |de, at l|east a b|
|000160c0| 69 74 2e 20 57 69 74 68 | 20 68 65 61 64 70 68 6f |it. With| headpho|
|000160d0| 6e 65 73 2c 20 74 68 69 | 73 20 65 66 66 65 63 74 |nes, thi|s effect|
|000160e0| 20 64 69 73 61 70 70 65 | 61 72 73 2c 0a 75 6e 6c | disappe|ars,.unl|
|000160f0| 65 73 73 20 79 6f 75 20 | 6d 69 78 20 61 20 62 69 |ess you |mix a bi|
|00016100| 74 20 6f 66 20 65 61 63 | 68 20 73 69 64 65 20 6f |t of eac|h side o|
|00016110| 6e 20 74 68 65 20 6f 74 | 68 65 72 20 73 69 64 65 |n the ot|her side|
|00016120| 2e 0a 30 20 69 73 20 73 | 70 61 74 69 61 6c 20 73 |..0 is s|patial s|
|00016130| 74 65 72 65 6f 20 28 6e | 6f 74 20 66 6f 72 20 68 |tereo (n|ot for h|
|00016140| 65 61 64 70 68 6f 6e 65 | 73 29 2c 20 31 30 30 20 |eadphone|s), 100 |
|00016150| 69 73 20 6d 6f 6e 6f 2e | 0a 41 20 72 65 61 73 6f |is mono.|.A reaso|
|00016160| 6e 61 62 6c 65 20 76 61 | 6c 75 65 20 69 73 20 33 |nable va|lue is 3|
|00016170| 30 2e 20 54 68 65 20 70 | 65 72 63 65 69 76 65 64 |0. The p|erceived|
|00016180| 20 63 68 61 6e 67 65 20 | 74 65 6e 64 73 20 74 6f | change |tends to|
|00016190| 20 62 65 20 6c 6f 67 61 | 72 69 74 68 6d 69 63 2c | be loga|rithmic,|
|000161a0| 0a 69 6e 74 65 72 65 73 | 74 69 6e 67 20 76 61 6c |.interes|ting val|
|000161b0| 75 65 73 20 77 6f 75 6c | 64 20 62 65 20 33 30 2c |ues woul|d be 30,|
|000161c0| 20 37 30 2c 20 38 35 2c | 20 39 30 2c 20 39 32 2c | 70, 85,| 90, 92,|
|000161d0| 20 39 35 2e 2e 2e 0a 0a | 46 69 6e 61 6c 6c 79 2c | 95.....|Finally,|
|000161e0| 20 74 68 65 20 70 72 6f | 67 72 61 6d 20 69 74 73 | the pro|gram its|
|000161f0| 65 6c 66 20 69 73 20 72 | 65 61 73 6f 6e 61 62 6c |elf is r|easonabl|
|00016200| 79 20 73 6d 61 72 74 2c | 20 79 6f 75 20 63 61 6e |y smart,| you can|
|00016210| 20 75 73 65 20 69 74 20 | 61 73 20 61 0a 6d 6f 64 | use it |as a.mod|
|00016220| 75 6c 65 20 6a 75 6b 65 | 62 6f 78 20 62 79 20 67 |ule juke|box by g|
|00016230| 69 76 69 6e 67 20 61 20 | 74 72 61 63 6b 65 72 20 |iving a |tracker |
|00016240| 2a 20 20 2d 6c 69 6b 65 | 20 63 6f 6d 6d 61 6e 64 |* -like| command|
|00016250| 20 6c 69 6e 65 2c 20 74 | 68 65 6e 20 73 6b 69 70 | line, t|hen skip|
|00016260| 20 66 72 6f 6d 0a 6f 6e | 65 20 6d 6f 64 75 6c 65 | from.on|e module|
|00016270| 20 74 6f 20 74 68 65 20 | 6e 65 78 74 20 62 79 20 | to the |next by |
|00016280| 73 65 6e 64 69 6e 67 20 | 61 20 73 69 67 6e 61 6c |sending |a signal|
|00016290| 20 32 20 28 75 73 75 61 | 6c 6c 79 20 5e 43 29 20 | 2 (usua|lly ^C) |
|000162a0| 61 6e 64 20 61 62 6f 72 | 74 69 6e 67 0a 61 6c 74 |and abor|ting.alt|
|000162b0| 6f 67 65 74 68 65 72 20 | 77 69 74 68 20 61 20 73 |ogether |with a s|
|000162c0| 69 67 6e 61 6c 20 32 20 | 28 75 73 75 61 6c 6c 79 |ignal 2 |(usually|
|000162d0| 20 5e 5c 29 2e 20 49 74 | 20 72 65 63 6f 67 6e 69 | ^\). It| recogni|
|000162e0| 7a 65 73 20 61 6c 73 6f | 20 6d 6f 64 75 6c 65 73 |zes also| modules|
|000162f0| 0a 70 61 63 6b 65 64 20 | 77 69 74 68 20 65 69 74 |.packed |with eit|
|00016300| 68 65 72 20 63 6f 6d 70 | 72 65 73 73 20 6f 72 20 |her comp|ress or |
|00016310| 7a 6f 6f 2e 2e 2e 20 41 | 64 64 69 6e 67 20 79 6f |zoo... A|dding yo|
|00016320| 75 72 20 6f 77 6e 20 63 | 6f 6d 70 72 65 73 73 69 |ur own c|ompressi|
|00016330| 6f 6e 20 6d 65 74 68 6f | 64 0a 73 68 6f 75 6c 64 |on metho|d.should|
|00016340| 20 62 65 20 65 61 73 79 | 2e 20 49 74 20 69 73 20 | be easy|. It is |
|00016350| 61 6c 73 6f 20 66 61 69 | 72 6c 79 20 64 69 66 66 |also fai|rly diff|
|00016360| 69 63 75 6c 74 20 74 6f | 20 63 72 61 73 68 2c 20 |icult to| crash, |
|00016370| 62 65 63 61 75 73 65 20 | 74 72 61 63 6b 65 72 0a |because |tracker.|
|00016380| 6d 6f 64 75 6c 65 73 20 | 61 72 65 20 6e 6f 74 6f |modules |are noto|
|00016390| 72 69 6f 75 73 20 70 72 | 6f 62 6c 65 6d 20 66 69 |rious pr|oblem fi|
|000163a0| 6c 65 73 2c 20 77 69 74 | 68 20 6c 6f 74 73 20 6f |les, wit|h lots o|
|000163b0| 66 20 66 6f 72 6d 61 74 | 73 20 70 72 6f 62 6c 65 |f format|s proble|
|000163c0| 6d 73 2e 0a 0a 0a 54 68 | 65 20 6f 72 69 67 69 6e |ms....Th|e origin|
|000163d0| 61 6c 20 69 64 65 61 20 | 6f 66 20 74 68 65 20 74 |al idea |of the t|
|000163e0| 72 61 63 6b 65 72 20 77 | 61 73 20 62 79 20 4c 69 |racker w|as by Li|
|000163f0| 61 6d 20 43 6f 72 6e 65 | 72 2c 20 62 61 63 6b 20 |am Corne|r, back |
|00016400| 77 68 65 6e 20 69 74 0a | 77 61 73 20 63 61 6c 6c |when it.|was call|
|00016410| 65 64 20 73 74 72 33 32 | 2c 20 62 75 74 20 74 68 |ed str32|, but th|
|00016420| 65 72 65 20 69 73 20 70 | 72 65 63 69 6f 75 73 20 |ere is p|recious |
|00016430| 6c 69 74 74 6c 65 20 6c | 65 66 74 20 6f 66 20 68 |little l|eft of h|
|00016440| 69 73 20 6f 72 69 67 69 | 6e 61 6c 0a 63 6f 64 65 |is origi|nal.code|
|00016450| 20 28 69 66 20 61 6e 79 | 20 6f 66 20 69 74 29 2e | (if any| of it).|
|00016460| 20 49 20 6d 75 73 74 20 | 61 64 6d 69 74 2c 20 49 | I must |admit, I|
|00016470| 20 77 6f 75 6c 64 20 6e | 65 76 65 72 20 68 61 76 | would n|ever hav|
|00016480| 65 20 68 61 64 20 74 68 | 65 20 69 64 65 61 0a 28 |e had th|e idea.(|
|00016490| 6e 6f 72 20 74 68 65 20 | 63 6f 75 72 61 67 65 29 |nor the |courage)|
|000164a0| 20 74 6f 20 73 74 61 72 | 74 20 74 68 61 74 20 70 | to star|t that p|
|000164b0| 72 6f 6a 65 63 74 20 61 | 6c 6c 20 62 79 20 6d 79 |roject a|ll by my|
|000164c0| 73 65 6c 66 2e 0a 0a 59 | 6f 75 20 63 61 6e 20 64 |self...Y|ou can d|
|000164d0| 6f 20 77 68 61 74 20 79 | 6f 75 20 77 61 6e 74 20 |o what y|ou want |
|000164e0| 77 69 74 68 20 74 68 65 | 20 73 6f 75 72 63 65 20 |with the| source |
|000164f0| 63 6f 64 65 2c 20 74 68 | 6f 75 67 68 20 49 20 77 |code, th|ough I w|
|00016500| 6f 75 6c 64 20 73 75 67 | 67 65 73 74 0a 74 68 61 |ould sug|gest.tha|
|00016510| 74 20 4c 69 61 6d 20 61 | 6e 64 20 6d 79 73 65 6c |t Liam a|nd mysel|
|00016520| 66 20 62 65 20 63 69 74 | 65 64 20 69 66 20 79 6f |f be cit|ed if yo|
|00016530| 75 20 61 64 64 20 61 6e | 79 74 68 69 6e 67 20 74 |u add an|ything t|
|00016540| 6f 20 69 74 2e 0a 0a 53 | 65 6e 64 20 62 75 67 20 |o it...S|end bug |
|00016550| 72 65 70 6f 72 74 73 20 | 74 6f 20 65 73 70 69 65 |reports |to espie|
|00016560| 40 65 6e 73 2e 66 72 2c | 0a 65 6e 63 6f 75 72 61 |@ens.fr,|.encoura|
|00016570| 67 65 6d 65 6e 74 73 20 | 61 6e 64 20 6e 69 63 65 |gements |and nice|
|00016580| 20 74 68 69 6e 67 73 20 | 74 6f 20 65 73 70 69 65 | things |to espie|
|00016590| 40 65 6e 73 2e 66 72 20 | 61 6e 64 20 7a 65 6e 69 |@ens.fr |and zeni|
|000165a0| 74 68 40 64 63 73 2e 77 | 61 72 77 69 63 6b 2e 61 |th@dcs.w|arwick.a|
|000165b0| 63 2e 75 6b 2e 0a 2d 2d | 0a 0a 09 4d 61 72 63 20 |c.uk..--|...Marc |
|000165c0| 45 73 70 69 65 2c 20 50 | 61 72 69 73 2c 20 64 65 |Espie, P|aris, de|
|000165d0| 63 65 6d 62 65 72 20 31 | 31 74 68 20 31 39 39 31 |cember 1|1th 1991|
|000165e0| 2e 0a 20 62 65 20 61 6e | 79 20 6e 6f 74 69 63 65 |.. be an|y notice|
|000165f0| 61 62 6c 65 20 69 6d 70 | 72 6f 76 65 6d 65 6e 74 |able imp|rovement|
|00016600| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016610| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016620| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016630| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016640| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016650| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016660| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016670| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016680| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016690| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000166a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000166b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000166c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000166d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000166e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000166f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016700| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016710| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016720| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016730| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016740| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016750| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016770| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016780| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016790| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000167a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000167b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000167c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000167d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000167e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000167f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016800| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016810| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016880| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016890| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000168a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000168b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000168c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000168d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000168e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000168f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016900| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016910| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016920| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016930| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016940| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016950| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016970| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016980| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000169a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000169b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000169c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000169d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000169e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000169f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00016a00| 2c 20 61 6e 64 20 61 6e | 79 77 61 79 2c 20 74 68 |, and an|yway, th|
|00016a10| 65 20 70 72 6f 67 72 61 | 6d 20 77 6f 6e 27 74 0a |e progra|m won't.|
|00016a20| 62 65 20 66 61 73 74 20 | 65 6e 6f 75 67 68 20 74 |be fast |enough t|
|00016a30| 6f 20 6b 65 65 70 20 75 | 70 20 77 69 74 68 20 74 |o keep u|p with t|
|00016a40| 68 65 20 6f 75 74 70 75 | 74 20 72 61 74 65 2e 0a |he outpu|t rate..|
|00016a50| 0a 46 52 45 51 55 45 4e | 43 59 20 63 61 6e 20 62 |.FREQUEN|CY can b|
|00016a60| 65 20 75 73 65 64 20 74 | 6f 20 73 65 74 20 74 68 |e used t|o set th|
|00016a70| 65 20 61 75 64 69 6f 20 | 6f 75 74 70 75 74 20 61 |e audio |output a|
|00016a80| 74 20 61 20 73 70 65 63 | 69 66 69 63 20 66 72 65 |t a spec|ific fre|
|00016a90| 71 75 65 6e 63 79 0a 28 | 69 66 20 74 68 65 20 68 |quency.(|if the h|
|00016aa0| 61 72 64 77 61 72 65 20 | 73 75 70 70 6f 72 74 73 |ardware |supports|
|00016ab0| 20 69 74 29 2e 20 54 68 | 65 20 68 61 72 64 77 61 | it). Th|e hardwa|
|00016ac0| 72 65 20 77 69 6c 6c 20 | 64 65 63 69 64 65 20 77 |re will |decide w|
|00016ad0| 68 69 63 68 20 66 72 65 | 71 75 65 6e 63 79 0a 74 |hich fre|quency.t|
|00016ae0| 6f 20 61 63 74 75 61 6c | 6c 79 20 75 73 65 2c 20 |o actual|ly use, |
|00016af0| 61 63 63 6f 72 64 69 6e | 67 20 74 6f 20 6f 74 68 |accordin|g to oth|
|00016b00| 65 72 20 65 78 74 65 72 | 6e 61 6c 20 70 61 72 61 |er exter|nal para|
|00016b10| 6d 65 74 65 72 73 2e 0a | 0a 4d 4f 4e 4f 20 6f 6e |meters..|.MONO on|
|00016b20| 20 74 68 65 20 73 67 69 | 20 63 61 6e 20 62 65 20 | the sgi| can be |
|00016b30| 75 73 65 64 20 74 6f 20 | 66 6f 72 63 65 20 6d 6f |used to |force mo|
|00016b40| 6e 6f 20 6f 75 74 70 75 | 74 2c 20 77 68 69 63 68 |no outpu|t, which|
|00016b50| 20 75 73 65 73 20 6c 65 | 73 73 0a 63 70 75 20 70 | uses le|ss.cpu p|
|00016b60| 6f 77 65 72 2e 0a 0a 54 | 52 41 4e 53 50 4f 53 45 |ower...T|RANSPOSE|
|00016b70| 20 69 73 20 74 68 65 20 | 6e 75 6d 62 65 72 20 6f | is the |number o|
|00016b80| 66 20 68 61 6c 66 74 6f | 6e 65 73 20 74 6f 20 74 |f halfto|nes to t|
|00016b90| 72 61 6e 73 70 6f 73 65 | 20 65 61 63 68 20 6e 6f |ranspose| each no|
|00016ba0| 74 65 20 28 3e 30 20 69 | 73 20 68 69 67 68 65 72 |te (>0 i|s higher|
|00016bb0| 29 2e 0a 55 73 65 66 75 | 6c 20 66 6f 72 20 6c 6f |)..Usefu|l for lo|
|00016bc0| 77 20 66 72 65 71 75 65 | 6e 63 79 20 73 70 61 72 |w freque|ncy spar|
|00016bd0| 63 73 20 77 68 69 63 68 | 20 63 61 6e 27 74 20 70 |cs which| can't p|
|00016be0| 6c 61 79 20 73 6f 6d 65 | 20 74 75 6e 65 73 20 61 |lay some| tunes a|
|00016bf0| 63 63 75 72 61 74 65 6c | 79 2c 20 6f 72 0a 77 68 |ccuratel|y, or.wh|
|00016c00| 65 6e 20 79 6f 75 20 67 | 65 74 20 62 6f 72 65 64 |en you g|et bored|
|00016c10| 2e 2e 2e 0a 0a 4d 6f 73 | 74 20 6f 66 20 74 68 65 |.....Mos|t of the|
|00016c20| 20 73 77 69 74 63 68 65 | 73 20 61 72 65 20 68 65 | switche|s are he|
|00016c30| 72 65 20 66 6f 72 20 63 | 6f 6d 70 61 74 69 62 69 |re for c|ompatibi|
|00016c40| 6c 69 74 79 20 72 65 61 | 73 6f 6e 73 2e 20 41 73 |lity rea|sons. As|
|00016c50| 20 74 68 65 72 65 0a 61 | 72 65 20 62 69 6c 6c 69 | there.a|re billi|
|00016c60| 6f 6e 73 20 61 6e 64 20 | 62 69 6c 6c 69 6f 6e 73 |ons and |billions|
|00016c70| 2e 2e 20 77 61 69 74 2c | 20 77 72 6f 6e 67 20 73 |.. wait,| wrong s|
|00016c80| 65 72 69 65 73 2e 20 41 | 73 20 74 68 65 72 65 20 |eries. A|s there |
|00016c90| 61 72 65 20 6c 6f 74 73 | 20 61 6e 64 0a 6c 6f 74 |are lots| and.lot|
|00016ca0| 73 20 6f 66 20 73 6f 75 | 6e 64 74 72 61 63 6b 65 |s of sou|ndtracke|
|00016cb0| 72 73 20 63 6c 6f 6e 65 | 73 20 6f 75 74 20 74 68 |rs clone|s out th|
|00016cc0| 65 72 65 2c 20 74 68 65 | 79 20 61 72 65 20 6e 6f |ere, the|y are no|
|00016cd0| 74 20 2a 71 75 69 74 65 | 2a 20 0a 63 6f 6d 70 61 |t *quite|* .compa|
|00016ce0| 74 69 62 6c 65 20 77 69 | 74 68 20 6f 6e 65 20 61 |tible wi|th one a|
|00016cf0| 6e 6f 74 68 65 72 2e 20 | 4d 61 69 6e 6c 79 2c 20 |nother. |Mainly, |
|00016d00| 74 68 65 72 65 20 77 61 | 73 20 61 6e 20 6f 6c 64 |there wa|s an old|
|00016d10| 20 66 6f 72 6d 61 74 20 | 61 6e 64 20 61 20 0a 6e | format |and a .n|
|00016d20| 65 77 65 72 20 66 6f 72 | 6d 61 74 2e 0a 59 6f 75 |ewer for|mat..You|
|00016d30| 20 63 61 6e 20 66 6f 72 | 63 65 20 6f 6e 65 20 6f | can for|ce one o|
|00016d40| 66 20 74 68 65 73 65 20 | 66 6f 72 6d 61 74 73 20 |f these |formats |
|00016d50| 62 79 20 65 69 74 68 65 | 72 20 72 65 6e 61 6d 69 |by eithe|r renami|
|00016d60| 6e 67 20 79 6f 75 72 20 | 63 6f 6d 6d 61 6e 64 0a |ng your |command.|
|00016d70| 74 6f 20 6e 74 72 61 63 | 6b 65 72 20 6f 72 20 6f |to ntrac|ker or o|
|00016d80| 74 72 61 63 6b 65 72 2c | 20 6f 72 20 79 6f 75 20 |tracker,| or you |
|00016d90| 63 61 6e 20 75 73 65 20 | 74 68 65 20 2d 6e 20 61 |can use |the -n a|
|00016da0| 6e 64 20 2d 6f 20 73 77 | 69 74 63 68 20 74 6f 20 |nd -o sw|itch to |
|00016db0| 74 72 79 0a 72 65 61 64 | 69 6e 67 20 61 20 66 69 |try.read|ing a fi|
|00016dc0| 6c 65 20 61 73 20 61 20 | 6e 65 77 20 74 72 61 63 |le as a |new trac|
|00016dd0| 6b 65 72 20 66 69 6c 65 | 2c 20 6f 72 20 61 6e 20 |ker file|, or an |
|00016de0| 6f 6c 64 20 74 72 61 63 | 6b 65 72 20 66 69 6c 65 |old trac|ker file|
|00016df0| 2e 0a 54 68 65 20 64 65 | 66 61 75 6c 74 20 69 73 |..The de|fault is|
|00016e00| 20 74 6f 20 74 72 79 20 | 66 69 72 73 74 20 74 68 | to try |first th|
|00016e10| 65 20 6e 65 77 20 74 72 | 61 63 6b 65 72 20 66 6f |e new tr|acker fo|
|00016e20| 72 6d 61 74 2c 20 74 68 | 65 6e 20 72 65 76 65 72 |rmat, th|en rever|
|00016e30| 74 20 74 6f 0a 74 68 65 | 20 6f 6c 64 20 74 72 61 |t to.the| old tra|
|00016e40| 63 6b 65 72 20 66 6f 72 | 6d 61 74 20 28 73 77 69 |cker for|mat (swi|
|00016e50| 74 63 68 20 2d 62 20 66 | 6f 72 20 62 6f 74 68 29 |tch -b f|or both)|
|00016e60| 2e 0a 54 68 65 72 65 20 | 69 73 20 61 6c 73 6f 20 |..There |is also |
|00016e70| 61 20 73 70 65 65 64 20 | 70 72 6f 62 6c 65 6d 73 |a speed |problems|
|00016e80| 2e 20 4d 6f 73 74 20 74 | 72 61 63 6b 65 72 73 20 |. Most t|rackers |
|00016e90| 75 73 65 20 73 6f 6d 65 | 20 74 69 6d 69 6e 67 20 |use some| timing |
|00016ea0| 77 68 69 63 68 0a 69 73 | 20 64 65 70 65 6e 64 65 |which.is| depende|
|00016eb0| 6e 74 20 75 70 6f 6e 20 | 74 68 65 20 70 6f 77 65 |nt upon |the powe|
|00016ec0| 72 6c 69 6e 65 20 66 72 | 65 71 75 65 6e 63 79 2e |rline fr|equency.|
|00016ed0| 2e 2e 20 36 30 48 7a 20 | 69 6e 20 74 68 65 20 73 |.. 60Hz |in the s|
|00016ee0| 74 61 74 65 73 2c 20 35 | 30 48 7a 0a 69 6e 20 45 |tates, 5|0Hz.in E|
|00016ef0| 75 72 6f 70 65 2e 20 4d | 6f 73 74 20 6d 6f 64 75 |urope. M|ost modu|
|00016f00| 6c 65 73 20 68 61 76 65 | 20 62 65 65 6e 20 63 6f |les have| been co|
|00016f10| 6d 70 6f 73 65 64 20 69 | 6e 20 45 75 72 6f 70 65 |mposed i|n Europe|
|00016f20| 2c 20 73 6f 20 74 68 65 | 20 64 65 66 61 75 6c 74 |, so the| default|
|00016f30| 0a 69 73 20 35 30 48 7a | 2c 20 62 75 74 20 79 6f |.is 50Hz|, but yo|
|00016f40| 75 20 63 61 6e 20 73 65 | 74 20 74 68 61 74 20 73 |u can se|t that s|
|00016f50| 70 65 65 64 20 74 6f 20 | 36 30 48 7a 20 77 69 74 |peed to |60Hz wit|
|00016f60| 68 20 2d 73 36 30 2e 0a | 28 49 6e 63 69 64 65 6e |h -s60..|(Inciden|
|00016f70| 74 61 6c 6c 79 2c 20 79 | 6f 75 20 63 61 6e 20 74 |tally, y|ou can t|
|00016f80| 72 79 20 61 6e 64 20 73 | 70 65 65 64 20 75 70 20 |ry and s|peed up |
|00016f90| 61 20 6d 6f 64 75 6c 65 | 20 74 6f 20 61 6d 61 7a |a module| to amaz|
|00016fa0| 69 6e 67 20 73 70 65 65 | 64 73 20 6c 69 6b 65 0a |ing spee|ds like.|
|00016fb0| 2d 73 32 30 30 2c 20 6a | 75 73 74 20 66 6f 72 20 |-s200, j|ust for |
|00016fc0| 66 75 6e 29 2e 0a 0a 54 | 68 65 20 2d 66 20 73 77 |fun)...T|he -f sw|
|00016fd0| 69 74 63 68 20 69 73 20 | 6e 6f 74 20 72 65 61 6c |itch is |not real|
|00016fe0| 6c 79 20 74 68 65 72 65 | 20 74 6f 20 62 65 20 75 |ly there| to be u|
|00016ff0| 73 65 64 2c 20 65 78 63 | 65 70 74 20 69 66 20 74 |sed, exc|ept if t|
+--------+-------------------------+-------------------------+--------+--------+