NNNNNNOp NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNN /@`/#@%`')/1379;=?A C@E`GIKMOQ S@U`Y[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ @ ` ǀ ɠ @ ` ٠  @` @`!A   !Aa!!O%a')+-/1!3A5a79;=?A!O /@`/#@%`')/1379;=?A C@E`GIKMOQ S@U`Y[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ @ ` ǀ ɠ @ ` ٠  @` @`!A   !Aa!!O%a')+-/1!3A5a79;=?A!OSWSWL 169lMUSIC t SOUNDCOMP_Dt .  t..  tSTUECKE MUSt MUSIK PRGt 4SOURCE t ENGLISH DOCpGB.  t..  tINFANZIAMUSt ORFANA MUSt RISVEGLIMUSt RUMORES MUSt MSEVILLA MUSt "ANDALUSAMUSt  DANZA MUSt !!STUNDE t *g#c#f#PP5PP5A45| PP5PP5PP5| PP5PP5PP5| G44.F43C45F45| C45C45PP5| A25E35C35| E46A45| G36PP5| D35C35#H25| G44.F43C45F45| C45C45PP5| A25E35C35| E46F45| G36G35| D35C35#H25| E44.D43PP5D45| G35A35F35| C35D35H25| C46H35| A35E35#D35| E25F25F25| C45.H34C45| A35.F34G35| E25.D34E25| A36A45| C36PP5| A26PP5| G44.F43C45F45| C45C45PP5| A25E35C35| E46A45| G36PP5| D35C35#H25| G44.F43C45F45| C45C45PP5| A25E35C35| E46F45| G36G35| D35C35H25| E44.D43PP5D45| G35A35F35| C35D35H25| C46H35| A35E35#D35| E25F25F25| C45.H34C45| A35.F34G35| E25.D34E25| A36A45| C36PP5| A26PP5| G44.E43C45PP5| G36G35| C35A25bH25| G35F35F45| D35D35PP5| bH25A25PP5| E43F43E43#D43E45G45| G34.F33G35bH35| #A25H25C35| G45F45D55| bH35A35D45| #C35D35PP5| H44.A43G45F45| D44.C43H35A35| D34.F33G35A25| E45D45C45| G35F35PP5| #A25H25C35| F36H35| #H35.A44PP5| D36#D35| C46A45| E36PP5| A26PP5| G44.E43C45G35| G36PP5| C35A25bH25| G35F35F45| D35D35PP5| bH25A25PP5| E43F43E43#D43E45G45| G34.F33G35bH35| #A25H25C35| G45F45D55| bH35A35D45| #C35D35PP5| H44.A43G45F45| D44.C43H35A35| D34.F33G35A25| E45D45C45| G35F35PP5| #A25H25C35| F36H35| #H35.A44PP5| D36#D35| C46A45| E36PP5| A26PP5| G44.F43C45F45| C45C45PP5| A25E35C35| E46A45| G36PP5| D35C35#H25| G44.F43C45F45| C45C45PP5| A25E35C35| E46F45| G36G35| D35C35#H25| E44.D43PP5D45| G35A35F35| C35D35H25| C46H35| A35E35#D35| E25F25F25| C45.H34C45| A35.F34G35| E25.D34E25| A36PP5| C36PP5| A26PP5| hbF45E44.D43#C43D43E43#C43| A35G36| D24A24H24D24D25| F45E44.D43#C43D43E43#C43| A35G36| D24A24H24D24D25| F45E43F43E43D43C43D43C43H33| A35G35E35| D24A24H24D24G25| A46.| PP3G23A23H23A24.G23A25| D26D24A24| F45E44.D43#C43D43E43#C43| A35G36| D24A24H24D24D25| F45E44.D43#C43D43E43#C43| A35G36| D24A24H24D24D25| F44G43F43E43F43E43D43C43E43H34| A35G35E35| D24A24H25G25| A46.| PP3G33A33H33A33G33A34A35| D26D34A24| A34.E43E45E45| G36.| C36.| A46.| D46.| D23A23D33E33F33G33F33E33F33E33D34| A34.E43E45E45| G36.| #C36.| A46.| D46.| D23A23D33E33F33G33F33E33F33E33D34| F45E44.D43#C43D43E43#C43| PP4A24PP4D24D25| D25H26| F45E44.D43#C43D43E43#C43| PP4A24PP4D24D25| D25H26| F45E43F43E43D43C43D43C43H33| A35G35E35| D24A24H25G25| PP3G33A33H33A33G33H35A24| D36PP5| D26PP5| A34.E43E45E45| G36.| C36.| A46.| D46.| D23A23D33E33F33G33F33E33F33E33D34| A34.E43E45E45| G36.| #C36.| A46.| D46.| D23A23D33E33F33G33F33E33F33E33D34| c#f#D44F45A44| F34A35D44| D24D34D34F34| A44.G43F44E44| D44.H33A34G34| F34.D33D34D34| D44D44D43H33C43H33| F34F34F34G34| D24D34D24D34| A36| F36| D24A24D34E34| D44D45A44| A34F35C44| D34D25G34| D44D45A44| A34A35C44| D34D35E34| D45C44D44| A35#G34#G34| F35E34H24| E46| C46| A26| A34A33A33A34| G34G33G33G34| C34C33C33C34| A34A33H33C44C43D43| G34G33G33G34A33A33| C34C33D33E34E33F33| E46| G36| A26| PP4G44PP4G44| PP4C44PP4C44| A34.H33G34E34| PP4F44PP4F44| PP4A34PP4A34| D34H24A24H23C33| PP4D44PP4G44| PP4C44PP4D44| D34E33F33G34A33H33| PP5PP4G43A43| PP5PP4H33D43| D26| H36| G36| D26| A44H43A43G44E44| PP4C44PP4H34| E34G34A24C34| PP5D45| PP5F35| D24A24D25| c#f#D44F45A44| F34A35D44| D24D34D34F34| A44.G43F44E44| D44.H33A34G34| F34.D33D34D34| D44D44D43H33C43H33| F34F34F34G34| D24D34D24D34| A36| F36| D24A24D34E34| PP4E44PP4F44| PP4#A34PP4#A34| F33G33F33E33D33E33D33C33| F45PP3C43D43F43| D45PP5| H23C33D33F33H33PP3PP4| H44A43G43F43E43D43E43| PP5PP5| G34C34D34H34| F44F43F43F45| C44C43C43C45| #A34A33A33A35| F45PP4F44| C45PP5| #A35PP5| E43F43E43D43C43H33#A34| PP4H34PP4E34| G34E34F34C34| H36| PP4A34PP4G34| H24#D34E24E34| H34#A34H35| PP4E34D35| F24C34H25| PP5PP3C43D43E43| PP5PP5| H23C33D33F33H33PP3PP4| H44A43G43F43E43D43E43| PP5PP5| G43E43C43A33D33G33F33H33| F44F43F43F45| C44C43C43C45| #A34A33A33A35| A43A43A44A44A33H33| E33E33E34E34PP4| A23A23A24A24C33G33| C46| G36| A26| F46| A36| D26| E22H22E32#G32H32E42#G42E56PP2| PP5PP5PP5| PP5PP5PP5| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| A23C33D34F34| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| A23C33D34F34| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34H34| A23H23C33D33E33F33| PP4A34A34| PP4H34H34| D33E33C33D33H23C33| PP4A34A34| PP4H34H34| A23H23G23A23F23G23| PP4A34A34| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| C34F34D33H23| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| C34F34D33H23| PP4A34PP4| PP4H44D54| E24@#G33H33E43H34| PP4PP4PP4| D54C54.D52C52| E24A34E24| PP4F44PP4| H44PP4A43H43| E24@#G33H33E43H34| PP4PP4PP4| C55D54| PP4F44PP4| E24A34H34| @C53D53C53H45| E24@#G33H33E43H34| PP4PP4PP4| @A43H43A43G44F44| PP4C44C44| E24A24A34| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| A23C33D34F34| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34H34| A23H23C33D33E33F33| PP4A34A34| PP4H34H34| D33E33C33D33H23C33| PP4A34A34| PP4H34H34| A23H23G23A23F23G23| PP4A34A34| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H44D54| E24@#G33H33E43H34| PP4PP4PP4| D54C54.D52C52| E24A34E24| PP4F44PP4| H44PP4A43H43| E24@#G33H33E43H34| PP4PP4PP4| C55D54| PP4F44PP4| E24A34H34| @C53D53C53H45| E24@#G33H33E43H34| PP4PP4PP4| @A43H43A43G44F44| PP4C44C44| E24A24A34| PP4@#G33H33E43E34| PP4H25| E25.| PP3G43A43H43D53C53| E24H34F44| PP4PP4PP4| @C53D53C53PP4PP4| E24@A43A33E43C44| PP4PP4PP4| @A43H43A43G44F44| PP4C44C44| E24A24A34| PP4@#G33H33E43E34| PP4H25| E25.| #G43A43H43C53E53D53| E25F44| PP4PP4H34| @H43C53H43PP4PP4| E24@A43A33E43C44| PP4PP4PP4| @G43A43G43F43C43G33F33| PP4PP4PP4| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP5PP5E45E45| E25H25#G36| PP5PP5PP5PP5| E23E34.E44.E54| #G24#G34.#G45| H24.H34.H44.| E55D54| PP4PP4PP4| PP4PP4PP4| E52F52E54.D54| PP4PP4PP4| PP4PP4PP4| E52F52E53PP3@D52E52D52C52A42F42D42| PP4PP4PP4| PP4PP4PP4| PP3G43PP3G43PP3G43| C45.| C33E43G33E43E43E43| PP3G43PP3G43PP3G43| C45.| C33E43G33E43E43E43| G44A43H43C54| PP3E43PP3E43PP3E43| C33C43G33C43PP3C43| C54PP3@bH42C52bH42A42bH42C52bH42| PP3E43PP3E43PP4| C33C43G34C44| A45.| PP3F43PP3F43PP3F43| F33C43A33C43C43C43| A45.| PP3F43PP3F43PP3F43| F33C43A33C43C43C43| G44A43H43C54| PP3E43PP3E43PP3E43| C33C43G33C43PP3C43| C54PP3@H42C52H42A42H42A42G42| PP3F43PP3F44PP3| G23H33D34G34| C54PP3@A42H42A42G43E43| PP3E43PP3E44PP3| C33C43G34PP4| PP3G43PP3G43PP3G43| C45.| C33E43G33E43E43E43| G44C55| PP3E43PP3E43PP3E43| C33C43G33C43C43C43| PP4PP3H42C52H42A42G42A42| PP3E43PP3E43PP3E43| C33C43G33C43PP3C43| H45@A43H43A43| PP3F43PP3F43PP4| G23H33D33H33G34| G45.| PP3F43PP3F43PP3F43| G23H33D33H33G33H33| F44G43A43H44| PP3H33PP3H33PP3H33| G24D34G33F43| H44.A42H42A43G43| PP3F43PP3F43PP4| G23H33D33H33G34| A44PP3G42A42G43E43| PP3E43PP3E43PP4| C33C43G34PP4| PP3G43PP3G43PP3G43| C45.| C33E43G33E43E43E43| F43A33G43A43C54| PP3F34PP3PP4| F23C33G33A33C44| C54H44A34| C44H34F34| PP4PP4H24| H44PP3C52H42A42H42C52D52| PP4PP4PP4| PP4PP4PP4| C51D51C52H42A42H42C52D52C52H42C52A42H42| PP4PP4PP4| PP4PP4PP4| G41A41G42F42E42F42G42F42C42A32G32F32C32| PP4PP4PP4| PP4PP4PP4| E22H22E32#G32H32E42#G42E54PP2| PP4PP4PP4| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| A23C33D34F34| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| A23C33D34F34| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34H34| A23H23C33D33E33F33| PP4A34A34| PP4H34H34| D33E33C33D33H23C33| PP4A34A34| PP4H34H34| A23H23G23A23F23G23| PP4A34A34| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| C34F34D33H23| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| C34F34D33H23| PP4A34PP4| PP4H44D54| E24@#G33H33E43H34| PP4PP4PP4| D54C54.D52C52| E24A34E24| PP4F44PP4| H44PP4A43H43| E24@#G33H33E43H34| PP4PP4PP4| C55D54| PP4F44PP4| E24A34H34| @C53D53C53H45| E24@#G33H33E43H34| PP4PP4PP4| @A43H43A43G44F44| PP4C44C44| E24A24A34| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| A23C33D34F34| PP4A34PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34H34| A23H23C33D33E33F33| PP4A34A34| PP4H34H34| D33E33C33D33H23C33| PP4A34A34| PP4H34H34| A23H23G23A23F23G23| PP4A34A34| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H44D54| E24@#G33H33E43H34| PP4PP4PP4| D54C54.D52C52| E24A34E24| PP4F44PP4| H44PP4A43H43| E24@#G33H33E43H34| PP4PP4PP4| C55D54| PP4F44PP4| E24A34H34| @C53D53C53H45| E24@#G33H33E43H34| PP4PP4PP4| @A43H43A43G44F44| PP4C44C44| E24A24A34| PP4@#G33H33E43E34| PP4H25| E25.| PP3G43A43H43D53C53| E24H34F44| PP4PP4PP4| @C53D53C53PP4PP4| E24@A43A33E43C44| PP4PP4PP4| @A43H43A43G44F44| PP4C44C44| E24A24A34| PP4@#G33H33E43E34| PP4H25| E25.| #G43A43H43C53E53D53| E25F44| PP4PP4H34| @H43C53H43PP4PP4| E24@A43A33E43C44| PP4PP4PP4| @G43A43G43F43C43G33F33| PP4PP4PP4| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| @PP3F33A33@PP3A33H33@PP3F33A33| C34D34H24| PP4PP4PP4| PP4@#G33H33E43E34| PP4H25| E25.| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP4H34PP4| @A23H23C33@D33E33F33@G33F33E33| PP4PP4PP4| PP5PP5E45E45| E25H25#G36| PP5PP5PP5PP5| E23E34.E44.E54| #G24#G34.#G45| H24.H34.H44.| f#H44H44H44H44C54C54| G44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| H44H44H44H44C54C54| G44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| H34D43E43D44D44F54.D53| G56A44.PP3| G26C44.PP3| E54@E53F53E53D55C54.A43| H34PP4PP4D44F44.PP3| G26A34.PP3| H43C53D54G34H33D43C43D43C43D43| H35PP5F34D34| G35PP5PP5| H34D43E43D43E43G43E43F44E43D43| G34H34H34PP4C44PP4| G24D34D34D34G25| H34D43E43D44D44F54.D53| G56A44.PP3| G26C44.PP3| E54@E53F53E53D55C54.A43| H34PP4PP4D44F44.PP3| G26A34.PP3| H43C53D54G34H33D43C43D43C43D43| H35PP5F34D34| G35PP5PP5| H34D43E43D43E43G43E43F44E43D43| G34H34H34PP4C44PP4| G24D34D34D34G25| G44D43bE43D44D44F44.C43| PP4bH34PP5A35| G24G34PP5F35| D44D43bE43F45bE44.C43| bH35PP5A35| F35PP4F34F35| D43bE43D43bE43F43G43A43G43F43bE43D43C43| F33PP3PP4PP5PP5| bH25.F34bH25| D43bE43D43bE43F43G43A43G43F43bE43D43C43| F33PP3PP4PP5PP5| bH25.F34bH25| D46D44D43C43| F34F33G33F34F34#F35| bH26A25| H35.C43D43bE44F43bE43| F34G33bA33G34PP4C45| G26.| D44H33C43D44H43C53H44A43H43| H34PP4H34PP4F44PP4| G34PP4D34D34C44PP4| G44H44H44H44C54C54| D44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| H44H44H44H44C54C54| G44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| PP4H34H34D44D44G44| PP4G33F33G34H33#A33H34D43#C43| G26.| G44H44H44D54D54G54| D44G43F43G44H43#A43H44H43#A43| G26.| G54G54G54G54G54G54| H44H43#A43H44H43#A43H44H43#A43| G35G35G35| G54G54G54G54G54G54| H44H43#A43H44H43#A43H44H43#A43| G35G35G35| G54PP4PP5PP5| H44PP4PP5PP5| G34G23G23G23G23G23G23G23G23G23G23| PP5PP5PP5| PP5PP5PP5| G24G23G23G24G23G23G24G24| abebhbE56D54.H43| G44H33C43H34H34A44H34| E36E35| C54@C53D53C53H45A44.F43| G44PP4PP4H34D44.PP3| E36H35| G43A43H44H44G33H33A33H33A33H33| E44PP4PP5PP5| H35PP5D35| G34H33C43H33C43E43C43D44C43H33| E34G25PP4A34PP4| PP5PP5F34PP4| G56D54.H43| H34H33C43H34H34A44.PP3| G46E34H34| C54@C53D53C53H45A44.G43| G44PP4PP4H34#C44.PP3| E36E35| c#f#F43G43A45F33A33G33A33G33A33| D44PP4D34PP4A25| A34PP4PP5PP5| F34A33H33A33H33D43H33C44H33A33| PP4F33PP3F33PP3F33PP3A34PP4| D26G34PP4| A34A33H33A34A34C54.A43| D56G44A34| D36D35| H44@H43C53H43A45G44.E43| F44PP4PP4A34C44.PP3| D26A35| F43G43A45F33A33G33A33G33A33| D44PP4D34PP4A25| A34PP4PP5PP5| F34A33H33A33H33D43H33C44H33A33| PP4F33PP3F33PP3F33PP3A34PP4| D26G34PP4| D55.D54C54.A43| A34A33H33A35G44.PP3| D36E35| D55.D54C54.A43| F44A33H33A35G44.PP3| D26E35| D55.D54C54.A33| F44A33H33A35G44.PP3| D26bE34PP4| C43D43bE43F43bE43F43bE43D43C43D43C43bH33| PP5PP5PP5| PP5PP5PP5| A33bH33C43D43C43D43C43bH33A33bH33A33G33| PP5PP5PP5| PP5PP5PP5| #F33G33A33bH33C43bH33A33G33F33G33F33bE33| PP5PP5PP5| PP5PP5PP5| PP4F44A44D54bE54bE44| D34D44D44F44G44bH34| D24A34F34D34C44G34| PP4F44A44D54bE54bE44| D34D44D44F44G44bH34| D24A34F34D34C44G34| F44F44F44F44G44G44| D44D43C43C44H33bH33A34#C43A33| A34PP4PP4A24E34A24| F44F44F44F44G44G44| D44D43C43C44H33bH33A34#C43A33| A34PP4PP4A24E34A24| F44PP4PP5PP5| D44PP4PP5PP5| A34D33D33D33D33D33D33D33D33D33D33| PP4D53D53D54D53D53D54D53D53| PP4F44F44F44F44F44| D24C44D24C44D24C44| f#G54H44H44H44C54C54| H34G43F43F44E43bE43D44#F43D43| G35.D34A34D34| H44H44H44H44C54C54| H34G43F43F44E43bE43D44#F43D43| G35.D34A34D34| G56F54.D53| D34D43E43D44D44A44.PP3| G36C44.PP3| E54@E53F53E53D55C54.A43| H34PP4PP4D34F44.PP3| G26A34.PP3| H43C53D54PP5PP5| H35G34H33D43C43D43C43D43| G35PP5F34D34| H34D43E43D43E43G43E43F44E43D43| G34H33PP3H33PP3PP3PP3C44PP4| G24D34D34D34D35| G56F54.D53| D34D43E43D44D44A44.PP3| G36C44.PP3| E54@E53F53E53D55C54.A43| H34PP4PP4D34F44.PP3| G26A34.PP3| H43C53D54PP5PP5| H35G34H33D43C43D43C43D43| G35PP5F34D34| H34D43E43D43E43G43E43F44E43D43| G34H33PP3H33PP3PP3PP3C44PP4| G24D34D34D34D35| G44D43bE43D44D44F44.C43| PP4bH33PP3PP5A35| G24G33PP3PP5F35| D44D43bE43F45bE44.C43| bH34PP4PP5A34PP4| F34PP4PP4F34F35| D43bE43D43bE43F43G43A43G43F43bE43D43C43| bH33PP3PP4PP4F34PP5| F33PP3PP4PP5bH25| D43bE43D43bE43F43G43A43G43F43bE43D43C43| bH33PP3PP4PP4F34PP5| F33PP3PP4PP5bH25| D46D44D43C43| F34F33G33F34F34#F35| bH26A25| H35.C43D43bE44F43E43| F34G33bA33G34PP4PP5| G26C45| D44H33C43D44H43C53H44A43H43| H34PP4H34PP4F44PP4| G34PP4D34D34C44PP4| G44H44H44H44C54C54| D44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| H44H44H44H44C54C54| G44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| PP4H34H34D44D44G44| PP4G33F33G34H33#A33H34D43#C43| G26.| G44H44H44D54D54G54| D44G43F43G44H43#A43H44H43#A43| G26.| G54G54G54G54G54G54| H44H43#A43H44H43#A43H44H43#A43| G35G35G35| G54G54G54G54G54G54| H44H43#A43H44H43#A43H44H43#A43| G35G35G35| G54PP4PP5PP5| H44PP4PP5PP5| G34G23G23G23G23G23G23G23G23G23G23| PP5PP5PP5| PP5PP5PP5| G24G23G23G24G23G23G24G24| PP5PP5PP5| PP5PP5PP5| G24PP4PP5PP5| abebhbPP4C44D44E44F44A44| PP5PP5PP5| PP5PP5PP5| C55C53H43A43G43F43G43A43F43| PP5PP5PP5| PP5PP5PP5| G43A43G43F43E43F43E43D43C43D43E43G43| PP5PP5PP5| PP5PP5PP5| G45.F43E43D43E43F43A43| PP4C44PP5PP5| PP4A24D34PP4PP5| @G43A43G43F43E43D43E43F43G43@F43G43F43E43D43| C46H35| D36G35| C45F44PP4PP5| PP5C44PP4PP5| PP4F33G33F33G33A33H33C43A33G33F33| G34G33C43C43E43E43G43H35| PP4E34G34C44G35| PP5PP5D34G24| C54C44D44E44F44A44| G44PP4PP5PP5| E44PP4PP5PP5| E55E53D53C53H43@C53D53C53H43A43| PP5PP5PP5| PP5PP5PP5| H43C53H43A43G44F43G43A43H43C53A43| PP5PP5PP5| PP5PP5PP5| @G43A43G43F43G43E44D43E43@F43G43F43E43F43| PP5PP5PP5| PP5PP5PP5| @D43E43D43C43E43D44C43D43E43F43G43A43| PP5PP5PP5| PP5PP5PP5| @F43G43F43@E43F43E43@D43E43D43| PP5.| PP5.| @C43D43C43@H33C43H33@A33H33A33| PP5.| PP5.| G34G24D46| PP5PP5PP5| PP5D23E23#F23G23A23H23C33A23| H34D43G43G43H43H43D53H35| G34H34D44G44G35| D34PP4PP5D34D24| G54G44G44G44G44.G43| H34PP4PP5PP5| G34PP4PP5PP5| G45F44.D43E43F43G43A43| PP5D45PP5| A24.A33PP5PP5| G44.A42G42F44D43F43@E43F43E43D43C43| A24A34D44PP4F35| PP5PP5PP5| H34.D43D45H45| G25H34D34G34D34| PP5PP5PP5| H34G44G44G44G44.G43| G34PP4PP5PP5| PP5PP5PP5| G45F44D43E43@F43G43A43H42C52H42A42| PP5PP5PP5| A24.A33D45PP5| G44.A42G42F44D43E43@F43G43F43@E43D43C43| A24A34D44PP4A35| PP5PP5D35| H34F53F53A54D53D53F54H43H43| G34F44A44D44F44H34| G24PP4PP5PP5| D54A43A43C54F43F43A44D43D43| D44A34C44F34A34D34| PP5PP5PP5| G44F43F43A43A43D43D43F43F43H33H33| G34F34A34D34F34H24| PP5PP5PP5| D43D43A33A33C43C43F33F33A33A33D33D33| D34A24C34F24A24D24| PP5PP5PP5| G34PP4PP5PP5| G24G23G23G23G23G23G23G23G23G23G23| PP5PP5PP5| PP5PP5PP5| G24PP4PP5PP5| PP5PP5PP5| PP4C44D44E44F44A44| PP5PP5PP5| PP5PP5PP5| C55C53H43A43G43F43G43A43F43| PP5PP5PP5| PP5PP5PP5| G43A43G43F43E43F43E43D43C43D43E43G43| PP5PP5PP5| PP5PP5PP5| G45.F43E43D43E43F43A43| PP4C44PP5PP5| PP4A24D34PP4PP5| @G43A43G43F43E43D43E43F43G43@F43G43F43E43D43| C46H35| D36G35| C45F44PP4PP5| PP5C44PP4PP5| PP4F33G33F33G33A33H33C43A33G33F33| G34G33C43C43E43E43G43H35| PP4E34G34C44G35| PP5PP5D34G24| C54C54C54G44G45| E44E43D43E44E43H33E45| C34PP4PP5C44G34| H34E44E44H34H35| G34G33#F33G34E33D33E34H24| #C34PP4PP5PP5| D44D44D44G44G44H44| H34H33#A33H34D43#C43D44G43#F43| D25D35D35| H44D54D54D53D53D54D54| G44H43#A43H44PP4F44F44| D35D35D24C44| f#G54H44H44H44C54C54| H34G43F43F44E43bE43D44#F43D43| G25.D34A34D34| H44H44H44H44C54C54| G44G43F43F44E43bE43D44#F43D43| D45.D34A34D34| H34D43E43D44D44F54.D53| G56A44.PP3| G26C44.PP3| E54@E53F53E53D55C54.A43| H34PP4PP4D44F44.PP3| G26A34.PP3| H43C53D54G34H33D43C43D43C43D43| H35PP5F34D34| G35PP5PP5| H34D43E43D43E43G43E43F44E43D43| G34H34H34PP4C44PP4| G24D34D34D34G25| H34D43E43D44D44F54.D53| G56A44.PP3| G26C44.PP3| E54@E53F53E53D55C54.A43| H34PP4PP4D44F44.PP3| G26A34.PP3| H43C53D54G34H33D43C43D43C43D43| H35PP5F34D34| G35PP5PP5| H34D43E43D43E43G43E43F44E43D43| G34H34H34PP4C44PP4| G24D34D34D34G25| G44D43bE43D44D44F44.C43| PP4bH34PP5A35| G24G34PP5F35| D44D43bE43F45bE44.C43| bH35PP5A35| F35PP4F34F35| D43bE43D43bE43F43G43A43G43F43bE43D43C43| F33PP3PP4PP5PP5| bH25.F34bH25| D43bE43D43bE43F43G43A43G43F43bE43D43C43| F33PP3PP4PP5PP5| bH25.F34bH25| D46D44D43C43| F34F33G33F34F34#F35| bH26A25| H35.C43D43bE44F43bE43| F34G33bA33G34PP4C45| G26.| D44H33C43D44H43C53H44A43H43| H34PP4H34PP4F44PP4| G34PP4D34D34C44PP4| G44H44H44H44C54C54| D44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| H44H44H44H44C54C54| G44G43F43F44E43bE43D44#F43D43| G25.D34A34D34| PP4H34H34D44D44G44| PP4G33F33G34H33#A33H34D43#C43| G26.| G44H44H44D54D54G54| D44G43F43G44H43#A43H44H43#A43| G26.| G54G54G54G54G54G54| H44H43#A43H44H43#A43H44H43#A43| G35G35G35| G54G54G54G54G54G54| H44H43#A43H44H43#A43H44H43#A43| G35G35G35| G54PP4PP5PP5| H44PP4PP5PP5| G34G23G23G23G23G23G23G23G23G23G23| PP5PP5PP5| PP5PP5PP5| G24G23G23G24G23G23G24G24| D33.D43.D53.G53PP4| H23H33.H43.G43.PP4| G22G33.G43.G34PP3G23| f#PP5PP4PP3H33PP3H33PP3H33| PP4#A23PP3A23PP3A23G33A23G33A23G33| E24H24H24H24H24H24| PP5PP4PP3H33PP3H33PP3H33| PP4#A23PP3A23PP3A23G33A23G33A23G33| E24H24H24H24H24H24| PP4PP3H33PP3H33PP3H33PP3E43F43G43| PP4#A23G33A23G33A23G33A23PP3PP4| E24H24H24H24H24PP4| H44H44.A43H44A45| PP3H33PP3H33PP3H33PP3E43PP3E43PP3E43| E24G34H24F34F34F34| H43#D43E43H33PP3H33PP3H33PP3H33PP3H33| PP3A33PP3G33#A23G33A23G33A23G33A23G33| H24E24H24H24H24H24| PP3H33PP3H33PP3H33PP3H33PP3E43F43G43| PP3G33#A23G33A23G33A23G33A23PP3PP4| E24H24H24H24H24PP4| H44H44.A43H44A44.E43| PP3H33PP3H33PP3H33PP3E43PP3E43PP3C43| E24G34H24F34F34E34| H43F43D43H33PP3H33PP3H33PP3H33PP3H33| PP3C43PP3G33PP3G33#C33G33C33G33C33G33| D34G24D34D34D34D34| D43F43A43D43PP3D43PP3D43PP3D43A44| PP4.A33PP3A33PP3A33PP3A33@F43E43F43| D34F34D34F34D34D34| G43C43PP3C43PP3C43PP3C43PP3C43F43E43| PP3G33PP3G33PP3G33PP3G33PP3G33G44| C34E34C34E34C34A24| G44H35H35.| PP4G34G34G34G34G34| E23H24H24H24H24H24H23| H34PP5PP4.E43F43G43| G34G34G34G34G34PP4| E23H24H24H24H23PP5| H44H44.A43H44C54E43E43| PP3H33PP3H33PP3H33PP3E43PP3C43PP4| E24G34H24F34E34A24| G43H33PP3H33F43C43| PP3G33PP3G33PP3A33| H24H24H24| E43H33PP3H33PP3H33E43H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33G43H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33PP3H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| E42F42#G44E43PP3E43PP3E43PP5| PP3#G33PP3G33PP3G33PP3G23PP3G23PP3G23| E24H24H24H24H24H24| PP3H33PP3H33PP3H33PP3H33PP3E43F43#G43| PP3#G33PP3G33PP3G33PP3G33PP5| E24H24H24H24H24H24| H44H44.A43H44C55| E44E44.PP3E44E45| #G34G34.F33G34C45| D54D31G31H31D41G44.A44A44.F43| A44H35C44E44.PP3| F34G25F34F34.PP3| F31H31D41F41H44F43PP3F43PP3F43PP3A43F43A43| #D44PP3D43PP3D43PP3D43PP3#C43E43C43| H24F33H33H23H33F33H33F34PP4| H44.F43PP3F43PP3F43PP3A43F43A43| PP4PP3#D43PP3D43PP3D43PP3C43E43C43| H24F34F34F34F34PP4| H44.F43PP3F43PP3F43PP3E43F43G43| PP4PP3#D43PP3D43PP3D43PP5| H24F34F34H24H24PP4| H44H44.A43H44C54.E43| PP3H33PP3H33PP3H33PP3E43PP3E43PP4| E24G34H24F34E34A24| G43H33PP3H33F43C43| PP3G33PP3G33PP3A33| H24H24H24| E43H33PP3H33PP3H33E43H33PP3F43E43F43| PP3G33#A23G33A23G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33G43H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33PP3H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| E42F42#G44E43PP3E43PP3E43PP5| PP4.#G33PP3G33PP3G33PP3G33PP3G33| E24H24H24H24H24H24| PP5.PP4.E43F43#G43| PP4#A23PP4.PP5.| E24H24H24H24H24PP4| d#g#c#f#H44.PP3H45.A44| E44.PP3E45.E44| G34.PP3G35.F34| H45PP4E44F44G44| E45PP5PP5| G35PP5PP5| A44.PP3A45.G44| C44.PP3C45.PP4| F34.PP3F35.E34| F45.D44E44F44| A35.PP5.| H26PP5| G45G45.F44| D45C45.PP4| E35E35.D34| G45PP4C44D44E44| C45PP5PP5| E35.PP4PP5| F45F45.E44| C45H35.H34| A25A25.G24| E44.C53H43G43| H34.PP4.| G24.PP4.| F44E44F44| C44H34D44| A34G34H24| G44.C53H43G43| H34.PP4.| E24E33PP4.| F44E44F44| C44H34D44| A34G34H24| G44.C53H43G43| H34.PP4.| E24E33PP4.| F44E43C53H43G43| C44H33PP4.| A34G33PP4.| F44E43C53H43G43| C44H33PP4.| A34G33PP4.| F44E44F44| C44H34D44| A34G34H24| G45.E44F44G44| H35.PP5.| E25E34PP5.| H45H45.A44| G35G35.F34| PP5PP5PP5| H45.E44F44G44| G35PP5PP5| PP5PP5PP5| A45A45.G44| F35F35.E34| PP5PP5PP5| F45.D44E44F44| H25.PP5.| PP5PP5PP5| G45G45.F44| E35E35.D34| PP5PP5PP5| G45.C44D44E44| E35.PP5.| PP5PP5PP5| F45F45.E44| A25A26| PP5PP5PP5| E44.C53H43G43| H34.PP4.| G24.PP4.| F44E44F44| C44H34D44| A34G34H34| G44.C53H43G43| H34.PP4.| E24E33PP4.| F44E44F44| C44H34D44| A34G34H34| G44.C53H43G43| H34.PP4.| E24E33PP4.| F44E43C53H43G43| C44H33PP4.| A34G33PP4.| F44E43C53H43G43| C44H33PP4.| A34G33PP4.| F44E44F44| C44H34D44| A34G34A34| G45.C54H44G44| G35.PP5.| E25.PP5.| F45E45F45| C46.| A26.| f#G43H33PP3H33PP3H33PP3H33PP3H33PP3H33| PP3G33PP3G33PP3G33PP3G33PP3G33PP3G33| E24H24H24H24H24H24| PP5PP4PP3H33PP3H33PP3H33| PP4#A23PP3A23PP3A23G33A23G33A23G33| E24H24H24H24H24H24| PP4PP3H33PP3H33PP3H33PP3E43F43G43| PP4#A23G33A23G33A23G33A23PP3PP4| E24H24H24H24H24PP4| H44H44.A43H44A45| PP3H33PP3H33PP3H33PP3E43PP3E43PP3E43| E24G34H24F34F34F34| H43#D43E43H33PP3H33PP3H33PP3H33PP3H33| PP3A33PP3G33#A23G33A23G33A23G33A23G33| H24E24H24H24H24H24| PP3H33PP3H33PP3H33PP3H33PP3E43F43G43| PP3G33#A23G33A23G33A23G33A23PP3PP4| E24H24H24H24H24PP4| H44H44.A43H44A44.E43| PP3H33PP3H33PP3H33PP3E43PP3E43PP3C43| E24G34H24F34F34E34| H43F43D43H33PP3H33PP3H33PP3H33PP3H33| PP3C43PP3G33PP3G33#C33G33C33G33C33G33| D34G24D34D34D34D34| D43F43A43D43PP3D43PP3D43PP3D43A44| PP4.A33PP3A33PP3A33PP3A33@F43E43F43| D34F34D34F34D34D34| G43C43PP3C43PP3C43PP3C43PP3C43F43E43| PP3G33PP3G33PP3G33PP3G33PP3G33G44| C34E34C34E34C34A24| G44H35H35.| PP4G34G34G34G34G34| E23H24H24H24H24H24H23| H34PP5PP4.E43F43G43| G34G34G34G34G34PP4| E23H24H24H24H23PP5| H44H44.A43H44C54E43E43| PP3H33PP3H33PP3H33PP3E43PP3C43PP4| E24G34H24F34E34A24| G43H33PP3H33F43C43| PP3G33PP3G33PP3A33| H24H24H24| E43H33PP3H33PP3H33E43H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33G43H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33PP3H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| E42F42#G44E43PP3E43PP3E43PP5| PP3#G33PP3G33PP3G33PP3G23PP3G23PP3G23| E24H24H24H24H24H24| PP3H33PP3H33PP3H33PP3H33PP3E43F43#G43| PP3#G33PP3G33PP3G33PP3G33PP5| E24H24H24H24H24H24| H44H44.A43H44C55| E44E44.PP3E44E45| #G34G34.F33A34C45| D54D31G31H31D41G44.A44A44.F43| A44H35C44E44.PP3| F34G25F34F34.PP3| F31H31D41F41H44F43PP3F43PP3F43PP3A43F43A43| #D44PP3D43PP3D43PP3D43PP3#C43E43C43| H24F33H33H23H33F33H33F34PP4| H44.F43PP3F43PP3F43PP3A43F43A43| PP4PP3#D43PP3D43PP3D43PP3C43E43C43| H24F34F34F34F34PP4| H44.F43PP3F43PP3F43PP3E43F43G43| PP4PP3#D43PP3D43PP3D43PP5| H24F34F34H24H24PP4| H44H44.A43H44C54.E43| PP3H33PP3H33PP3H33PP3E43PP3E43PP4| E24G34H24F34E34A24| G43H33PP3H33F43C43| PP3G33PP3G33PP3A33| H24H24H24| E43H33PP3H33PP3H33E43H33PP3F43E43F43| PP3G33#A23G33A23G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33G43H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| G43H33PP3H33PP3H33PP3H33PP3F43E43F43| PP3G33PP3G33PP3G33PP3G33PP3A33C43A33| E24H24H24H24H24PP4| E42F42#G44E43PP3E43PP3E43PP5| PP4.#G33PP3G33PP3G33PP3G33PP3G33| E24H24H24H24H24H24| PP4H34H34H34H34H34| PP4#G34G34G34G34G34| E23H24H24H24H24H24H23| H35.PP5.| #G35.PP5.| E25.E25.| hbPP5PP5PP5| PP5PP5PP5| D24A24D24A24D24A24| PP5PP5PP5| PP5PP5PP5| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| E44E43F43G44E44#C45| #G34A35G35.| D35.H25.| D44D43E43F44PP4#G43A43#C53D53| F35.#G34A35| D25.PP5.| E44E43F43G44E44#C45| #G34A35G35.| D36.| D46.| F36.| D24A24D24A24D24A24| E44E43F43G44E44#C45| #G34A35G35.| D35.H25.| D44D43E43F44PP4#G43A43#C53D53| F35.#G34A35| D25.PP5.| E44E43F43G44E44#C45| #G34A35G35.| D36.| D46.| F36.| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| #F36.| D24A24D24A24D24A24| c#f#F44E44E45D44D44| D44C44C45H34H34| D24A24G34A24D24A24| D44C44C45H34H34| H34A34A35G34G34| D24A24D24A24D24A24| F44E44E45D54C54| D44C44C45G44E44| D24A24G34A24D24A24| C44H34H34H34A34A34| A34G34G34G34F34F34| D24A24D24A24D24A24| A35#C34D35.| F36.| D24C34D24A24D24A24| A44G44G44E44D44D44| #A34E44E44#C44H34A34| D24H34C44G34#E34F34| A44G44G44E44D44D44| #A34E44E44#C44H34A34| D24H34C44G34#E34F34| A35#C34D35.| F36.| D24C34D24A24D24A24| F44E44E45D44D44| D44C44C45H34H34| D24A24G34A24D24A24| D44C44C45H34H34| H34A34A35G34G34| D24A24D24A24D24A24| F44E44E45D54C54| D44C44C45G44E44| D24A24G34A24D24A24| C44H34H34H34A34A34| A34G34G34G34F34F34| D24A24D24A24D24A24| A35#C34D35.| F36.| D24C34D24A24D24A24| A44G44G44E44D44D44| #A34E44E44#C44H34A34| D24H34C44G34#E34F34| A44G44G44E44D44D44| #A34E44E44#C44H34A34| D24H34C44G34#E34F34| A35#C34D35.| F36.| D24C34D24A24D24A24| hbPP5PP5PP5| PP5PP5PP5| D24A24D24A24D24A24| PP5PP5PP5| PP5PP5PP5| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| E44E43F43G44E44#C45| #G34A35G35.| D35.H25.| D44D43E43F44PP4#G43A43#C53D53| F35.#G34A35| D25.PP5.| E44E43F43G44E44#C45| #G34A35G35.| D36.| D46.| F36.| D24A24D24A24D24A24| E44E43F43G44E44#C45| #G34A35G35.| D35.H25.| D44D43E43F44PP4#G43A43#C53D53| F35.#G34A35| D25.PP5.| E44E43F43G44E44#C45| #G34A35G35.| D36.| D46.| F36.| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| #F36.| D24A24D24A24D24A24| c#f#PP3D34.PP3A44.PP3A44.| PP2A22A24.PP2F42F44.PP2F42F44.| D25D45D45| D44D44E44C44A35| PP5.PP5.| D34D34E34C34A25| bH35D35PP3A33E43.D32| PP5PP5PP2D33E42PP2D43H22| bH25D25H23.D42PP3G33| D35| H22D32A32D42E44| H25| PP3A33E43.D32| PP2D33E42PP2D43H22| H23.D42PP3G33| D35| H22D32A32D42E44| H25| PP3D34.PP3A44.PP3A44.| PP2A22A24.PP2F42F44.PP2F42F44.| D25D45D45| D44D44E44C44A35| PP5PP5PP5| D34D34E34C34A25| C45PP5A44G44| PP5PP5F44F44| C35C35C44H34| A45A44G44#C45| F45F44E44A22A32#C42E42A44| C45bH34H34A25| D44D44D44C44A35| PP5PP5PP5| D34D34D34C34A25| PP5A44G44A45| bH35D44D44D45| bH25H34H34H35| A34G34A35PP5| D34D34D35PP5| H24H24H25A24G24| PP5PP5PP5| PP5PP5PP5| A25C34H24C35| D44D44E44C44A35| PP5PP5PP5| D34D34E34C34A25| C45A44G44A45| PP5F44F44F45| C35C44bH34C45| A34G34A35PP5| F34F34F35PP5| C34bH24C35A24G24| PP5E45E45| PP5A22A32C42E42A44A22A32C42E42A44| A25A25A25| G44F44G44F44E45| G35.D44C45| bH25.G25.| D44C45PP5.| bH34A35A34A34G34| A25.A24A24G24| PP5A45A45| A35E32A32C44.E32A32C44.| A25E35E35| bH35.C45.| D45.A35.| G25.A25.| C46.| A36.| A24A24G24A25.| PP5PP5PP5| PP5PP5PP5| A25D35A35| hbPP5PP5PP5| PP5PP5PP5| D24A24D24A24D24A24| PP5PP5PP5| PP5PP5PP5| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| E44E43F43G44E44#C45| #G34A35G35.| D35.H25.| D44D43E43F44PP4#G43A43#C53D53| F35.#G34A35| D25.PP5.| E44E43F43G44E44#C45| #G34A35G35.| D36.| D46.| F36.| D24A24D24A24D24A24| E44E43F43G44E44#C45| #G34A35G35.| D35.H25.| D44D43E43F44PP4#G43A43#C53D53| F35.#G34A35| D25.PP5.| E44E43F43G44E44#C45| #G34A35G35.| D36.| D46.| F36.| D24A24D24A24D24A24| F44E44E44E44D44D44| D44C44C44C44H34H34| D24A24D24A24D24A24| D44C44C44C44H34H34| H34A34A34A34G34G34| D24A24D24A24D24A24| H34A34A34A35.| G34F34F34F35.| D24A24D24A24D24A24| A36.| F36.| D24A24D24A24D24A24| F44E44E44E44D54C54| D44C44C44C44F44E44| D24A24D24A24D24A24| D44C44C44C44H34C44| H34A34A34A34G34A34| D24A24D24A24D24A24| D46.| F36.| D24A24D24A24D24A24| D46.| #F36.| D24A24D24A24D24A24| hbD44D44E44#C44A35| PP5PP5PP5| D34D34E34#C34A25| H36.| PP5.PP5.| H26.| D44D44E44#C44A35| PP5PP5PP5| D34D34E34#C34A25| C46.| PP5.PP5.| C36.| @D44D44E44#C43A34.H35| PP5.PP5.| @D34D34E34#C33A24.H25| E33E33E33E33| @H32D42G42@G42D42H32@H32D42G42@G42D42H32| A23A23A23A23| E33E33E33E33| @H32D42G42@G42D42H32@H32D42G42@G42D42H32| A23A23A23A23| E33E34PP3| @A32#C42A42@A42C42A32E33.PP2| A23PP2A24PP2| @D44D44E44#C43A34.H35| PP5.PP5.| @D34D34E34#C33A24.H25| F43C43F43C43| @A32C42A42@A42F42A32@A32C42A42@A42F42A32| A23A23A23A23| F43C43F43C43| @A32C42A42@A42F42A32@A32C42A42@A42F42A32| A23A23A23A23| #C43C44PP3| @A32E42A42@A42E42C42A33.PP2| A23PP2A24PP2| c#f#D44E44F44G44E45| A24A35A24D45| D24D35D24bH35| F44E44F44E44D45| A24A35A24bH35| D24D35D24E35| D44E44F44G44E45| A24A35A24D45| D24D35D24bH35| F44E44F44E44G35| A24A35A24E35| D24D35D24bH25| D44E44F44G44E45| A24A35A24D45| D24D35D24bH35| F44E44F44E44D45| A24A35A24bH35| D24D35D24E35| D44E44F44G44E45| A24A35A24D45| D24D35D24bH35| PP5.PP5.| D44D44E44C44A35| D34D34E34C34A25| PP5.PP5.| D44D44E44C44A35| D34D34E34C34A25| D44E44C44D44E44C44| PP5.PP5.| D34E34C34D34E34C34| D44E44C44D45.| PP5.PP5.| D34E34C34D35A24| PP5.PP5.| PP5.PP5.| G24A24F24G24F24E24| D22A42A43.A42A43E32A42A43| A22F43F43F43F43F43F42| D43PP2D42D43.D42D43PP2D42| F32A42A43.A42A43A22A42A43| C32F43F43F43F43F43F42| D43PP2D42D43.D42D43D32D42| F45.PP5.| A22D32D42F42A45PP5.| D25.PP5.| F45| A22D32D42F42D54| D25| .  t*..  tSTUDIE_9MUSt +mANDANTE6MUSt - VOLKLIEDMUSt 0MENUETT MUSt 2PP3A33C43E43E43E43E43E43E44A24E24E44| PP5PP5PP5.H34| A26PP5.#G34| PP3A33C43E43F43E43E43E43E44A24E24E44| PP5PP5PP5.H34| A26PP5.#G34| PP3A33C43E43A45PP3A33H33F43F44D34| PP5.A24PP5PP5| A26D35PP5| PP3#G33H33E43F43E43PP3E43PP3E43PP3E43PP3E43PP3E43| PP5PP5PP5PP5| E35PP4H34G34E34D34H24| PP3A33C43E43E43E43E43E43E44A24E24E44| PP5PP5PP5.H34| A26PP5.#G34| PP3A33C43E43F43E43E43E43E44A24#F24E44| PP5PP5PP5.C44| A26PP5.A34| PP3G33C43E43E43E43E43E43G46| PP5PP5PP5PP5| G26PP4F33G33E33G33D33G33| PP3G33C43E43G33C43E33G33C35PP5| PP5PP5PP5PP5| C36PP5PP5| PP3#G33H33E43E43E43E43E43E44H34C44A34| PP5PP5PP5PP5| E26PP4E24E24E24| PP3#G33H33E43E43E43E43E43E44H34C44A34| PP5PP5PP5PP5| E26PP4E24E24E24| PP3#G33H33E43E44E44E44E44E44E44| PP5.C44PP4H34PP4C44| E25.A34PP4G34PP4A34| H34PP3E43PP3E43PP3E43PP3E43PP3E43PP3E43PP3E43| #G34PP5.PP5PP5| E24#D34E34D34E34D34C34H24| PP3A33C43E43E43E43E43E43E44A24E24E44| PP5PP5PP5.H34| A26PP5.#G34| PP3A33C43E43E43E43E43E43E44A24D34F44| PP5PP5PP5.H34| A26PP5PP5| PP3A33C43E43E44PP4E55#G45| PP5PP5PP5PP5| E25PP4E24PP4E24PP4E24| A45E45A35| PP5H35PP5| C44A24#G34E24A25| g#c#f#C44PP4F44PP4E44PP4| A34A24D44A24C44A24| PP5PP5PP5| D44PP4C44PP4D44PP4| H34E24#A34E24H34E24| PP5PP5PP5| H34PP4E44PP4D44PP4| G34E24C44E24H34E24| PP5PP5PP5| C44PP4H34PP4C44PP4| A34A24G34A24A34A24| PP5PP5PP5| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| PP4G34D44G34PP4C44| H26PP4A34| PP5PP5A25| C45H34E44D44H34| A35G34PP5.| E25E24PP5.| C44PP4F44PP4E44PP4| A34A24D44A24C44A24| PP5PP5PP5| D44PP4C44PP4D44PP4| H34E24#A34E24H34E24| PP5PP5PP5| H34PP4E44PP4D44PP4| G34E24C44E24H34E24| PP5PP5PP5| C44PP4H34PP4C44PP4| A34A24G34A24A34A24| PP5PP5PP5| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| PP4G34D44G34PP4C44| H26PP4A34| PP5PP5A25| C45H34E34G34A34| A35G34PP5.| E25E24PP5.| H34PP4D44PP4E44PP4| G34E24H34E24C44E24| PP5PP5PP5| F44PP4E44PP4D44PP4| D44E24C44E24H34E24| PP5PP5PP5| C44PP4H34PP4C44PP4| A34E24G34E24A34E24| PP5PP5PP5| E44PP4D44PP4C44PP4| C44E24H34E24A34E24| PP5PP5PP5| C44PP4H34PP4H34PP4| A34E24A34E24A34E24| PP4#D34PP4D34PP4D34| H34PP4E44PP4H34PP4| G34E24H34E24G34E24| E34PP4G34PP4E34PP4| C44PP4H34PP4H34PP4| A34E24A34E24A34E24| PP4#D34PP4D34PP4D34| H34E34F34G34A34H34| G34PP5.PP5| E24PP5.PP5| C44PP4F44PP4E44PP4| A34A24D44A24C44A24| PP5PP5PP5| D44PP4C44PP4D44PP4| H34E24#A34E24H34E24| PP5PP5PP5| H34PP4E44PP4D44PP4| G34E24C44E24H34E24| PP5PP5PP5| C44PP4H34PP4C44PP4| A34A24G34A24A34A24| PP5PP5PP5| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| F45PP5G45| A35PP5H35| D35PP5E25| A45PP4E34G34A34| C45PP5PP5| A25PP5PP5| H34PP4D44PP4E44PP4| G34E24H34E24C44E24| PP5PP5PP5| F44PP4E44PP4D44PP4| D44E24C44E24H34E24| PP5PP5PP5| C44PP4H34PP4C44PP4| A34E24G34E24A34E24| PP5PP5PP5| E44PP4D44PP4C44PP4| C44E24H34E24A34E24| PP5PP5PP5| C44PP4H34PP4H34PP4| A34E24A34E24A34E24| PP4#D34PP4D34PP4D34| H34PP4E44PP4H34PP4| G34E24H34E24G34E24| E34PP4G34PP4E34PP4| C44PP4H34PP4H34PP4| A34E24A34E24A34E24| PP4#D34PP4D34PP4D34| H34E34F34G34A34H34| G34PP5.PP5| E24PP5.PP5| C44PP4F44PP4E44PP4| A34A24D44A24C44A24| PP5PP5PP5| D44PP4C44PP4D44PP4| H34E24#A34E24H34E24| PP5PP5PP5| H34PP4E44PP4D44PP4| G34E24C44E24H34E24| PP5PP5PP5| C44PP4H34PP4C44PP4| A34A24G34A24A34A24| PP5PP5PP5| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| PP4G34H34E44PP4E44| D36PP4A34| PP5PP5C35| F45PP5G45| A35PP5H35| D35PP5E25| A45PP5PP5| C45PP5PP5| A25PP5PP5| G35| PP5| PP5| C45C45D45D45| G35G35G35G35| E35C35H25G25| E45E44G44D45D44E44| G35PP5F35PP5| C35PP5H25PP5| G35PP5PP5PP5| E35PP5PP5PP5| C35D34.E33C35G35| C45C45D45D45| PP5PP5PP5PP5| E34G34C34G34H24G34G24G34| E45E44G44D45D44E44| PP5PP5PP5PP5| C34G34E34G34H24G34G24G34| C45PP5PP5| E35PP5PP5| C35D34.E33C35| G35| PP5| PP5| C45C45D45D45| G35G35G35G35| E35C35H25G25| E45E44G44D45D44E44| G35PP5F35PP5| C35PP5H25PP5| G35PP5PP5PP5| E35PP5PP5PP5| C35D34.E33C35G35| C45C45D45D45| PP5PP5PP5PP5| E34G34C34G34H24G34G24G34| E45E44G44D45D44E44| PP5PP5PP5PP5| C34G34E34G34H24G34G24G34| C45PP5PP5| E35PP5PP5| C35D34.E33C35| G35| PP5| PP5| F45F45F45A44G44| D45D45D45PP5| H25G25H25PP5| G45E44E44F44E44D44C44| E45G34G34A34G34F34E34| C35PP5PP5PP5| D44D44D44D44E44D44C44H34| F34F34F34F34G34F34E34D34| H26G26| C45C44D44E44G44F44D44| E35E34F34G34PP4H34PP4| C35PP5C35G25| C45PP5PP5| G35PP5PP5| C35D34.E33C35| G35| PP5| PP5| F45F45F45A44G44| D45D45D45PP5| H25G25H25PP5| G45E44E44F44E44D44C44| E45G34G34A34G34F34E34| C35PP5PP5PP5| D44D44D44D44E44D44C44H34| F34F34F34F34G34F34E34D34| H26G26| C45C44D44E44G44F44D44| E35E34F34G34PP4H34PP4| C35PP5C35G25| C45PP5PP5| G35PP5PP5| C35D34.E33C35| G35| PP5| PP5| G35C45C45| PP5PP5PP5| C35E35C35| C45H35C45| G36G35| E36E35| D46E44C44| G36G35| H25G25C35| D45PP5PP5| G35PP5G35| G25H25D35| G35F45F45| PP5PP5G35| H25G25H25| F45E45D45| G36A35| C36F25| C46D44H34| E35G35F34PP4| G26G25| C45PP5| E35PP5| C35C35| G35| PP5| PP5| G35C45C45| PP5PP5PP5| C35E35C35| C45H35C45| G36G35| E36E35| D46E44C44| G36G35| H25G25C35| D45PP5PP5| G35PP5G35| G25H25D35| G35F45F45| PP5PP5G35| H25G25H25| F45E45D45| G36A35| C36F25| C46D44H34| E35G35F34PP4| G26G25| C45PP5| E35PP5| C35C35| A35| PP5| PP5| A45A45A45| PP5PP5PP5| #C35A25C35| A46F44D44| PP5PP5PP5| D35F35D35| D45#C45D44E44| E36PP5| A26A25| E44F44D45bA35| PP5PP5bE35| D36C35| G35G45G45| D35PP5PP5| H25G25H25| G46E44C44| PP5PP5PP5| C35E35C35| C45H35C44D44| F36PP5| G26G25| C45PP5| E35PP5| C35C35| A35| PP5| PP5| A45A45A45| PP5PP5PP5| #C35A25C35| A46F44D44| PP5PP5PP5| D35F35D35| D45#C45D44E44| E36PP5| A26A25| E44F44D45bA35| PP5PP5bE35| D36C35| G35G45G45| D35PP5PP5| H25G25H25| G46E44C44| PP5PP5PP5| C35E35C35| C45H35C44D44| F36PP5| G26G25| C45PP5| E35PP5| C35C35| .  t4..  tMUSIC IMGt 54MUSIC BASt 6GFABASROPRGt W-MUSIC DOCt MUSIC LSTt ,o$OO(NRX%^%^%^ ^Khh "^ ^*(&BjI&^%^%^%V%KBBBKB%Y%QC0*S@o0*jf$,j |g|>*ara%N5G0*jf$,j |g|>*aHa%N5G0*jf$,j |g|>*aap%N5G0*>*ؾje>*je>*5GSGjP0*؀jjg j1| j j1j1j1h NZ.JNu> Gg~ gg0~5`g0S`gއއRGO`އއ H@J@gGRGO .f0H@RN -g!=FF$/!;!x!WeiterF(!!!PFM7F F "! ! FEF Ä HF6,# 0 88 ! ! FejF}FEFFE "! ! FF& H F} F |F hFMFLEGF E@ F 2FY! "Taktnr. "!!F FM  ! F F  "F< IJ 4\\>> FZurck/Weiter ejF F4 FMF FMFFMFF FjFF F BFZurck Ev! FMF! TF Weiter Eu! F FEY! "Taktnr. "!!FMF ĚEGFn E@ F ĀFM  ! F F*  X@@P F  @ FB` "F E @F} F F FE#  #  F ń F@,# 0 88 !uv ! ! !  F F ʾ  F ȸFjFjF Ƣ 0 HHF0!F,E@  F schlechter Stil ... j!!FEbF H 8FE#F FE f @FEF FE Ƅ HFE@F FE@  EFh ǒF : `F0 !F( E#   F hchstes C E`# ` Ft EA# `` #C FEA#  F nF EPFEPF E FEA#   F FEj!F ǎ FE.F FE FEEFE@  F  F"@  EF. F@  EF F *FMFM  ! F ȢF Ȟ F \  @F EF hF  EF FEFE*M ! !!#  !# ! FF F FF ȦRF ʺF ʶ 0 @@F  F1 !FFF@ ʲ  @  p Fs E#  # 0 F&EBB#@# ` F ɒbFEhF FEEF ɸ 8FE#F FE  0FEbF FEMFb ; @ cF E> @ Fc F E F r F(h: a: h: bF E> @ F:(FMFF F ʘ F Ec F FM  ! FEF FE FE FE FE FEESF  F jFMFM  ! F F < BDD FMF< F F F^FMFF}F.FF F+! ! Fh!FE܀F   F!F ˾ F˺EGHF!! !F ˘F FEFE FjFF P FF".E@G H@Fb!! !F  FE@FE@F FE  `FF"̪EpG H@@Fb!! !F ̈FE@@FEpF FE!F FF.FF F+Fh!!! FEGFEFEBEG FE@ F@ EF F EF"z?@ @ a?@ @ hF0 !FHFF,E@#@@ @b@@ @@@ F F#!! E@?@@ F F ~FΚE G6 FE?@@ F ΐ#bF E?@@ F b # b FE;@ >@ F FE Ό PFE;@ >@ F FE FE F* < b< #< < @F* ?@6 @ h?@6 @ aFE;@6  F FE FE E|F F.F + Fh F%FFF!! !F!X! !XF EG(F Ϭ `F E@@F ϾF EF FEM !!! ! ! F τ F4 F EF M ! ! FM ! ! FM ! ! FF(!!!@F"'# @@ ! !3F(!!!PFEFEG F0!! !P!F!!!PF!!F0!@F ЈFF.F + ! Fh!!!! F* F E FJ !FJ !F%FFF ! ! !F( : a: h: bFMF:0YH! "Vorzeichen in Taktnr. "" F FMFM! ! Fh N6   FnFEGFM FM F F jFEGFFM F Notenzeile M Fo>M! Fo belegt Felder fr Tonkanal i% (s. gettakt)  \FEF0!FDOrdnet Noten der drei Kanle passend nach Dauer untereinander an s$V      F$Eu@ !@ !@ FFEGF! E F <@ FM! FE@ F E @ F M! F F:M@ !@ !@ !! @ ! FdM !! @ F4 F F |F0!F&FFM!! F F E FF FF.F  +! F(!!!@F&'! @ !3F (!!!PF.F +Fh!F"՞E GhHF3E `F Ք  FՐEGFF Epp F0M ! !#  #    F >F F F.F +! ! Fh ! F0 E #    F. EGpF !2  @ F0 ! F  F.F +! Fh!FE? @ @ F 0 !FE? @ @ F:@|b##AP Fd EF4 FE? @ @ F|F X FF>)! Zeile zu lang! !! Stop | Cont !F PF HF  F jF@ EFl F.F +!! F :!!!@F| Taktstrich 0!!!@Fi.F  +! FhF!F "Ez F6|"#!@  !z !HH! FF".F"|F$30720,63488,116736,231424,198656 z&395264,395264,264192,268288,268288 &274432,290816,319488,376832,491520 (458752,917504,1835008,3932160,7602176 214942208,29622272,58982400,119521280,239067136 4209711104,417609728,281286656,277089280,277089280 4277087232,277087232,277087232,272892928,136579072 ,67373056,33820672,25452544,8355840,262144 (262144,262144,262144,262144,29622272 2065273856,65273856,46399488,50855936,32505856 9 5+ F6 Notenzeile 9hFvEGFe*!@! !@@F BF.F +! F*bergibt Ergebnisse fr einen Takt in: F2laenge%(chan%,count%) : Tonlnge von 0 bis 12 7@hhals%( " ) : Richtung bzw. Lnge des Notenhalses d<vorz%( " ) : +1 = # ; -1 = b | 1=b 2=# 3= s&sep!( " ) : Einzelnote ,x% ( " ) : Spalte in Bytes 0y% ( " ) : Pixelreihe ohne y0%! h! ! ! !!#! !!$Foj!#FEFt6 Fj F @# EF@# E? @@ @F b@# F 4F F ܐ? @@ bF @# EF4F F# ܾ? @@ #F @# EF4F F# ? @@ F @# EF4F F F F ? @@ @F @# EF4F F p? @@ PF EF0!F$ E#7> @ @  Fh \F7ݦ EG`F ݦZ? @@  F ݄ F@  `F<)!Schlechter Takt!|Pointer: A | !! Stop !F qF! F!4FS4 E # (#7> @ @ F4F  E#7> @ @ F FE$E #7> @ @ F4F# ޮ? @@ .F4 F?4F?2$!@F F$ EF  @FF E F FE@# E FF@# E FF @# EF@# EFF @# E FF0!$F4#F$ l? @@ -F(4F? Bgen noch nicht implementiert.  FF @# EFc  E#F.F +FEh FEE !B FE12345678F  MUSIC.IMG!z Fcj FSRFSQ FS : *F E b5&H FQ F F|FFD206F,0006,5848,2A58,2C58,2E18,4285,7C50,046F,0004,0004,6704,2C18 dD2A18,3F3C,0002,4E4E,544F,2200,0681,0000,7D00,DBC0,5347,B28D,651E dDBBC0,651A,241E,4A45,670A,6B04,EBAA,6004,3805,EAAA,8495,2A82,DBC6 d51CF,FFE0,4E75,* 4.F1 1+ F,:*@  F wird normalerweise nur bis 40 gebraucht * !@  FE FE``F%EFE FE# F EppF E F E FE  FFE @@Fr EF EF.FE E+FF F*@  F.F +Fh!F*HH FRFH$EGHF  Eb@ b0 b F E b b FEGFFQ&F E b& F FEGF Q'F E b' F F tF |FL240,136,132,146,137,133,145,137,3973,4241,8201,16389,16401,8233,4165,3970 F0,112,120,108,118,122,110,118,122,3950,8182,16378,16366,8134,3970,0 L960,544,528,584,548,532,580,548,15892,16964,32804,23,68,32932,16663,15880 J0,448,480,432,472,488,440,472,488,15800,32728,65512,65467,32539,15880,0 L240,136,132,146,137,133,145,137,3973,4241,8217,16405,16405,8226,4160,3968 F0,112,120,108,118,122,110,118,122,3950,8166,16354,16354,8128,3968,0 L240,136,132,146,137,133,145,137,3973,4241,8217,16413,16403,8242,4172,3968 F0,112,120,108,118,122,110,118,122,3950,8166,16354,16364,8140,3968,0 L240,136,132,146,137,133,145,153,3989,4245,8210,16400,16400,8224,4160,3968 F0,112,120,108,118,122,110,102,98,3938,8160,16352,16352,8128,3968,0 0L240,136,132,146,137,133,145,153,3989,4245,8210,16406,16409,8233,4166,3968 F0,112,120,108,118,122,110,102,98,3938,8160,16352,16358,8134,3968,0 6L240,136,132,146,153,149,149,149,3986,4240,8208,16400,16384,8224,4160,3968 B0,112,120,108,102,98,98,98,96,3936,8160,16352,16352,8128,3968,0 L240,136,132,146,153,149,149,149,3986,4240,8208,16406,16409,8233,4166,3968 B0,112,120,108,102,98,98,98,96,3936,8160,16352,16358,8134,3968,0 L240,144,144,144,144,144,144,144,3984,4112,8208,16400,16400,8224,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,16352,16352,8128,3968,0 L240,144,144,144,144,144,144,144,3984,4240,8214,16409,16409,8230,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,16358,16358,8128,3968,0 L240,144,144,144,144,144,144,144,3984,4240,8208,20368,20368,8224,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,12384,12384,8128,3968,0 L240,144,144,144,144,144,144,144,3984,4240,8214,20377,20377,8230,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,12390,12390,8128,3968,0 <0,0,0,0,0,0,0,0,3968,4160,8224,20368,20368,8224,4160,3968 60,0,0,0,0,0,0,0,0,3968,8128,12384,12384,8128,3968,0 <0,0,0,0,0,0,0,0,3968,4160,8230,20377,20377,8230,4160,3968 60,0,0,0,0,0,0,0,0,3968,8128,12390,12390,8128,3968,0 pausen: 1/32 pause ,R1172,2132,2132,1252,1544,2536,4328,4296,2512,3600,5072,8592,8608,5024,3104,832 oL776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 1/32 punkt.pause ,\4688,8528,8528,5015,6184,10152,17320,17191,10048,14400,20288,34368,34432,20096,12416,3328 X3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 31/16 pause 7R3104,4688,8528,8528,5008,6176,10144,17312,17184,10048,6208,1856,576,640,640,640 L0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 1/16 punkt.pause 3\9376,17056,17070,10033,12369,20305,34638,34368,20096,12416,3712,1152,1280,1280,1280,1280 R6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 1/8 pause D0,0,0,3104,4688,8528,8592,8992,9888,4512,3872,320,320,576,640,640 @0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 1/8 punkt.pause L0,0,0,6208,9390,17073,17201,18001,19790,9024,7744,640,640,1152,1280,1280 1D0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 1/4 pause N6144,5120,2560,1280,640,576,1088,2176,1280,640,832,1056,2240,2304,1280,640 ,F0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 21/4 punkt.pause N6144,5120,2560,1280,654,593,1105,2193,1294,640,832,1056,2240,2304,1280,640 ,F0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 2 b-Vorz. "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 #-Vorz. "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 48,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 Auflsungszeichen "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 264,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0  4"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 *0,0,0,0,0,0,62,63,3,3,14,14,3,51,63,30 , ,.F,+F0\*@ !@ !@ !@ !@ ! @ ! Fa* @pp ! FRFREGF Q F @FG|F "",b,#, RF,EGF EGpF Q @ F FF xFF|F b-Vorz. >128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 #-Vorz. 48,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 Auflsungszeichen 264,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0  4* ! H FRF!EGDF,Q  F FGRF* @ FEGF EGF, Q @ F FF FF|F126,195,129,195,126 126,255,255,255,126  2RF2* 00@p FEG`FFEGpFFQ$F @ E$F FE ~FE|FL776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 X3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 L0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 R6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 @0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 D0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 F0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 ,F0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 , ,RF4*((@@@ FEGF@E(IFQ$F@@ E$F  F@@ E$ F, F@&@@ E F6 F VF BF|EGpF@@ EF@ @ EF$@@ E F6$@ @ E F6 F|FZ224,240,184,220,236,246,186,222,238,246,186,222,238,246,186,158,142,134,130,130,132,128 X0,128,192,224,240,184,220,238,246,186,222,238,246,186,158,142,134,130,130,132,128,128 P0,0,0,0,0,128,128,192,224,240,184,220,238,246,186,158,142,134,130,130,132,128 J0,0,0,0,0,0,0,0,128,128,192,224,240,184,156,142,134,130,130,132,128,128  ,RF0*`` F EG`F,Q F FG|FC,D,E,F,G,A,H,C .F, ,+ ! !!! ! FErklrung der Parameter: 2$laenge% = Notendauer von 0 bis 12 Hhals% = Lnge des Notenhalses ( >0 => nach oben; <0 => nach unten ) @sep! = Note einzeln setzen (ohne gemeinsame Achtel-balken) L das Vorzeichen von Hals% gibt an, ob Hals nach oben oder unten. Hx%,y% = Position der Note (y% in Pixelreihen, x% in Byte-spalten.). vorz$ = # oder b oder h! !$!(!!)FF)E >> F v FFn)!MERROR in PROCEDUR plotnote !|Nicht ber Bildschirmrand|hinaus plotten!|( x = A  )!! Stop !F HF  F   Fix)!WERROR in PROCEDURE plotnote !|Plotten von Note nur an|gerade Bildschirm-Adresse!|( x = A  )!! Stop !*F HF  F$E#   F $z$Fx)!VERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( XBIOS(2)+A$  )!! Stop !F HF  F E)$F E#2 #2   F  R `F 8+E#   F 10 bis 12 => ganze und halbe Noten e1 !F(E F tF"M! !## # F  FPEGF $ )n  )F n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F ! +@ 2 F 0 ! F F" T FF => punktierte Note E(FFPEGF=0 ! F> 4 )n  )F n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F !`2 F F F J @FU  PFUEF FE E(F  F,E F F,E F FE >F "Ez F-E# ) > FnEz@%  @#  F&|"-!!(!,!! Fa FF! ` F($EF rF$EF FEBEG H$ F " )n  )F!n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F !$4 FR0 !,F F  F F vFrEGpFU  )n  )F n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F 0F !3  `@ Fe ZF & !4  `@ Fh F 0 ! F fF F.F + !! FhF0 !FEpF  F(!! !F0!@FFEFJ F(!! !F1!@FF.F +! F h!.!F C@. FE;@C@.  F Ff*. !!F E6 F ,F EF?@@ \F5F?F E;@ FE>@ F\ (C@. F\E. F\ F F EF.FE E +" F M!MUS F rF 7R!M!F\ F.F +#FMh!!$!/!0F M!MUS F  FE!B F!z FF F*@zz F0EFpEGz FZEGF/E@|@0 F ZZ/F@ E?@0@/0 F 0E/F F pZ/F FEFEFjFFjFFMFF F.F +$FFh!!$! !!!1FP)!1Das File wird vor dem|aktuellen Takt eingefgt!| !! Ok |Abbruch!$F V$Fl M" F RF EF FF[FYFFInserting file: ""FkFF EFr rM F  F F Fj$FEGFf =`M" F  F  F F0$!6 Fl $ F $F MF F RF E FFE RF FpFF"RS FjFR^FFRjFR8F F F.F +%FR h!!F FNY! ";Abspeichern von aktuellem Takt bis einschlielich (maximal "F") "F:F"  5 FjFM&!u!5 Fr F&FjF.F  +&2!3 Fh!F M!MUS F  F   d FAF F7R!M!F  E2G3F  EGFFY! " Writing Takt "!!FnM"@ F  F  F8F F.F + FEFEF4EF* ! ! `` F*88 FR F8 LEG8FQ F  :FG |F |JDiese Periodenlngen entsprechen den Kehrwerten der Frequenzen, die in l<SPECTRUM DER WISSENSCHAFT 7/1987 Seite 8 abgedruckt sind. 0Sie sind auf Kammerton a = 440.0 Hz getrimmt.  i*2273,2025,3823,3405,3034,2864,2551,2025 , A H C D E F G H *2145,1911,3608,3214,2864,2703,2408,1911 , #A #H #C #D #E #F #G #H *2419,2145,4049,3608,3214,3034,2703,2145 , bA bH bC bD bE bF bG bH  LDiese Periodenlngen sind selbst errechnet, so da das Produkt einer Note Nmit einem bestimmten Faktor die nchste Note ergibt, wobei sich nach zwlf 4Iterationen genau die halbe Periodendauer ergibt. FDer Faktor ist 2^(1/12). Nach demselben Algorithmus wurden auch die 6Frequenzen in SPEKTRUM DER WISSENSCHAFT berechnet. Kammerton a = 438.0 Hz.  a0 DATA 2283,2034,3840,3421,3048,2877,2563,2034 , A H C D E F G H 0 DATA 2155,1920,3624,3229,2877,2715,2419,1920 , #A #H #C #D #E #F #G #H 0 DATA 2419,2155,4068,3624,3229,3048,2715,2155 , bA bH bC bD bE bF bG bH   .F  +FbhFbMFbjFbF  7 B F 7 B E? @@ F @ E; @ F F E> @ FF4F>: a: hF E ` FjFEG`F    FE  F F E F FE nFF C@ FE01234567F FE.FE E+F0hF0EG`F  EF F`E01234567F.FE E +'5 F5h!!!1!F h6!7FE  !B F E FB E FB E FB( : a: h: bFHMF: F H ! F4 ^#C @|  #C @|  #C @|  Fw X F7EF6EF 8Ez FV|8 ! ! !z !!z !!4!!!z7 !z !z6 ! FE6F! 6F:Echan0: A |chan1: A |chan2: A F6)!Fehler bei der Taktlnge !|!! OK !$F  F! H6F >)!Fehler bei der Tonhhe:|   !! OK !$F F!5E;@7 F  jF5EF F5.F5 5+F*  FR F xEG FTQ F (  ***Key klickF|&  2 F Key-klick ist an.  E Key klick offFl $F E Key klick onF F F xZ ***FF n: - Fs E  F F F  EF  EF |FDesk ,Music Writer (----------------------,1,2,3,4,5,6,"" 0File ,Clear,Write,Write Part,--------------- BRead,Merge,---------------,Quit,---------------,Delete File,"" z8Edit ,Next,Preceeding,--------------------,Goto nr. eBGoto first,Goto last,--------------------,Skip Edits,Clear Takt "" o<Put ,Put into Buffer,Get from Buffer,------------------- BReplace,Insert,-------------------,Skip Edits,Delete aktual,"" 8Actions ,Compile Takt,Play Takt,-------------------- (Compile all,Play all,Play from actual D--------------------,Double Speed,Half Speed,-------------------- Save Sound,Read Sound,"" o$Specials ,***Key klick,Noten eng 2-----------------,Volume,Transpose,Tempo,Gap,"" *** .F* *+ F-h!!.!! FlE F FEEC@ F F E;@ >@ F FE F EFEF  MUSICWRITERFaMF F CLEARFI>)! | Wirklich alles lschen? | !! Ja | nein !.F- .FkB)!" | Ganz hundertprozent sicher ? | !!doch, ja|ach nein!.F .FzpF F F F WRITEFeMF M&! FI F&  WRITEPARTFrMFM%F F% &READFM#FMF F NMERGEFRMFM$FMF F QUITF:)!Haben sie alles gesichert?!! Ende | Weiter !.F .FsFqFF FF FF | DELETEFILEFEF EFEF M!* F h.*FLF)! Soll ich | |wirklich lschen?| !! Ja | nein !.F d. FAF F FEFE F FE NEXTFMFE# F FE  PRECEEDINGFMFE# FMF F GOTONR.FGMFF>Y! "!Bitte Taktnummer eingeben (0 bis "") : "Fi:F V6 F E5 F  FE FeY! "  FMF F  GOTOFIRSTF MFMFjF F GOTOLASTFMFEFMFF F  CLEARTAKTF MFMFEFjF F  DELETEAKTUALF4)! | Wirklich ? | | !!na klar!|ne,ne !!9F" 9FrM(FMF F9EF FE FE  COMPILEALLFMFM) F F) PLAYALLFLMFM* F F* PLAYFROMACTUALFMFjF M* FP F* 6 DOUBLESPEEDFL M+ F  F+ X HALFSPEEDFFM+ F F+ ~ READSOUNDFFEFM,F F,  SAVESOUNDFFEFM-F F-  PUTINTOBUFFERFEFM.F F.  GETFROMBUFFERFM/F F/ INSERTFMFMF F 8REPLACEFFMFM0F F0 ^ SKIPEDITSFEM1FjF F  COMPILETAKTFFMF M' FEF FE PLAYTAKTFMFM2F F2 VOLUMEFM3FEFjF F P KEYKLICKONF E Keyklick off F! F klick on l !2  FnEFM7F  FE  KEYKLICKOFFF  E Keyklick on F F l !2  FnEFM7F  FE NOTENENGF E Noten weit FMF  FEFEF FE T NOTENWEITF  E Noten eng FMF  FEFEFo FE z TRANSPOSEF EFM4F F4 TEMPOFSEFM5F F5 GAPFFEFM6F F6F.FF F+2F M' FEB`` B` F &EGF EB B F  FEB B F!z FEF.FE E+4F h!.!!!!!!!!$FH)!! |Explizite Eingabe oder Tunen?| !!Explizit|Tuning|Abbruch!.F-F !.Fi!! !pFr!! !pFrY! "1000 ist normal.WWFr<72000 ist eine Oktave tiefer ; 500 ist eine Oktave hherF4Y! "Bitte Transpose eingeben! "zz WWFv:F !6 FtE5 z Fn FE FE %.F $E F EPPF !! !HFg!! !HFgFF.Y! " Auf welchen Ton? (zB: C oder #C)WWWF:F "@6 Fw E F "< BFl E#HF FE"EG`F  "Z<  F "F "<`F  %`F I ! F EPP3|F E FY! "Oktave (zB: 3)WWWF:F E5 Fk EA 3|F3EnF>Y! "-Drcken der linken Maustaste erhht den Ton.F:Y!  "( " rechten " erniedrigt "FTNY!@ "=Mit der + bzw - Taste kann die Schrittweite verndert werden.F&Y!` "Zurck mit < ENTER >F FF0!##R #R FEu /!v! Fi^Y!  "Transpose: "z un! %un! " FS4Y!0 "Schrittweite: "zz WWWFM2FESF %`+FEu!  F FE %-FEv7!  F FE$pBPP F I ! F FF E$FP FFjFjF.F +5Fh!FF!! !pFw!! !pFwY! "1000 ist normal; "F*%> 1000: langsamer / < 1000: schnellerFBY ! "1{ Mglichst 'glatte' Werte whlen! ( zB: 750 ) }F0Y! "Bitte Tempo eingeben! "zz WWFe:F ' 6 FtE5 z Fp FEFjFjF.F +6Fh.FF.v)!IGap bedeutet die Lcke|zwischen unverbundenen Tnen.|Momentan haben wir: A4 !! lnger | OK | krzer !.F04!#. #. F '6.F#jF.F +1FMF.F +Fh.F (FFB` "F("RF(FFR)!/ Was machen wir mit dem | aktuellen Takt ?| !!Replace|Insert|Skip!.F4 (. FmMF Fw.L0!!1F F.jF0.F +F0h!FEF!)6   Fe)EGFH !@ F (F4F(F4FF4FFj!F.F +0FhF)bEGF@ E F )HF 1!F j!F.F +3F h!!F F!! !pFm!! !pFm*lEGFF<Y! "Lautstrke von Stimme "" : "A " ? "F`!F *DF  E5 F F)  pFe )F FjF.F  +) Fh!!.!/Fj.F *F/MF FEB`` B` F+EGF EB B F *F /E6 FE6 !B F EF(,0@ @ @ FAY! "Compiling Takt "F E@ F E@ F E@ F M' F ,F ()!Weiter machen?!! ja | Edit !.F +.F jFEF FE FE ,0Z.F !/ EF 0/!6 F4F+2FMFF Y! !!!Fc!/ EB B FE;@/ F .F  +*: F ,F M): F F)X F!z F.F +,Fh;F M!SON F -F  - F7R!M !FF;EsM  F 8M F -L;FE;!B F!z FEF -zF!*)!Dateilnge ist NULL!! OK !F F! -Fa>)!$Es existiert keine Datei mit|Namen:|!! OK !F F! F!.F! !+-FE -FM) F F) M!SON F .F !z !6 F F.F +(F h.!!FR)!2 Haben sie sich das grndlich | berlegt ? | !!freilich|nicht so!.F /.F EFFE.EGFi@ E@ Fr .F4F(.@ @ @ Fe5FjF F.F +F h.!!F /NF EFvLFF 00FZ)!9 Katastrophaler Fehler! | | Retten, was zu retten ist ?| !! Jaaa.. |Weg mit!!.Fl /.FtjF ,&! Fr F&B)!# | | Was nun ? | !!Abbruch|Neustart!.F 0$.F pF 0,F.F F F.F +.FFhFFMFF0pEGF  E F 0XF.F +/FhF0EGF  E F 0FMFjFEF.FE E ++< F h!FMF1EGF 1lEG6 F  1b5> @ F * 1^5> @ ? @@ PF ! EB7> @ < F F F 0F @ E F 0FEF.FE E+Fh!F1EIFE:@ F 1ZahbF 1F 2LFa E Fa E@ FMF EF0YH! "Vorzeichen in Taktnr. "" Fb F.F +Fh!!=!! Fc EF7I!M! MUSIC.DOCFi 3 Fx)!bDas file 'MUSIC.DOC' mu sich|im selben Ordner befinden,|von dem aus das Programm|gestartet wurde!!!Abbruch!F 46FaFF[FYFF3rM F=`M!F4=F 3=0FI6-MEHR-"BX "p "BX "q"BP "FbFESF 3F=E0 F FE  "BP "F" 3ZB F3&F 4B FF 4SF  F^FFS 8MF jF F.F +F.F 7+7F hF 4EG F !FG 4lFG.F7s"*T$:.]<<uNUGPxx*N 488.~~~~~tJ"6|^V&.X R4D/xߠD l,r< '(1,2Zզ~6Ԇ~R>d &.&*,r0,-0>0~)4') f%',4R`^`THGFA BASIC RUN ONLY *o#^n - ЭЭl// #^rBg?<JNA ?<NN#^R>NNT3^ȠC^V"L?H>aShHx?<HNA\@#]/?<HNA\#]3%]Xa\la`N^C"AJgAtJg  gSfa[Da]aV``NuaE*B9LBy2aV2Nka *y]`$daZfa]jarByrhAN[N vN^vaZBypN``SEvf$H$& y^:C^>e a^>d, a,A^>ךf B E^JdђXbђNup`Kd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNu$H$&"BA 9^:a(XA^>f B E^JdXdNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNu2(g"P@g:RADAH""y^>r2g"ZA^:e& 1@##^>Nu1@Nu y]\]`a"y^>^:dp`I`H y^B$y^>"Hg< k&@0+R`g k#&@0+S@H3 Q&f#^>LNuH?<?<NAXJgJf&AH@B p`\A] \ @BBPtNua*Adp`:a*AV0p`,a*AH p`a#za_A6 1Ap`a#daad$a BS@kH2Q y]] tNuHpg`aS@Q`a""@ Y0g0]b(2RA4DAH! ^>fXչ^>NuaaJBkdHNuaHPaJBkd8 `bCgBJ@gv  g &g a]NutNuRptr ae OgR Xgh HgSRB ae Fb$0k  c_  c b退`tSJBjblNuRB0 b b瀀`RB0 fрd`aJ@g`c`c^aJ@g`aJ@g0` y] Bh\]tNua`ca `aa!a( Shda [PHP Pa _`8LNua!Va( Shda [PHP2( P`Qa _]b6(gRC8DCHHP P!@ _Nua a(.?p`a a( ?La( S2fr4(Ae.RBBc0?af2 [PHP PS`Qa` _`~ [Pav` @"[PHPHQ0(ie4k2a t _aN2( P`Q _a:2( P`QNup `Ep @HPa Sa [P"_0( X2)"Y@`VNuag"`af`a(e`a"c` ab `adtNu <r$<Nu @HPa Sa [P"_0( P2)"Q4Ae4v`Vf@Nua @2(g]b P"H`/0Ha.2  _ PSAvjx E&Wf* ae zb QNua8U@k0`aa*Y@k `_za]@jW``aY@k rtHHBBNuaQ@k 24HHBBNuaBjtpr Bc4<prJjAjNua Bp`8a 1A1Bp`&atЀUrЀQ`Da%A(Jf J0p`NuatV0 9c^Q A`at `V0Q`H?<,NATA2X@a&:0H@?a:AAa Avp`N0H 0 0H@NuH?<*NATAJ2@a.0H@a.YdaHAaAp `a$a$2 P`a$r b?a2`Q tNua Nuaa patNua$H gJg ba"P @4(gHP bn aX$_// Z4HQ`S@Q _Q _al tNua#B9"?Hy"?<GaPHNAPA"pR@J0fH`a#/aN `aDa@a#/ [P` Ba.a* @a/? [Pa"X20 _$gS@cY6 :fRS@g.t;ak&AA :fRS@g t;akIA??<-NAXaZ @a."X0gZtaZkT6gP .fJS@gFt aFk@Ag6paX -Fgz !g %Fgna6pja8 -FgZ !g %FgNa6p a -Fg: !g" %Fg.a#drtp aAj -Fg Fg a6p`NuaBg?aN/a?@a@ @a'7 _a "X24$[A"0@@[000][vx`* [g" ]g |g QSx` xQSrQ][vx`* [g" ]g |g QSx` xQStQ]BA"0a:`taD?9d?9f09dyrdaTR0yrfaFR0`>a?a3d3fpirta@*09f `Ua|??at -Fg$@@?@a^@@oaP@o?@?<NN\Nup`7p`7p`7p`p`p 3a d3vgC@@@A^ p hf X ~e#TvgC@@@A^ p hfT X 4eN#R3rd3rf FgaJ3aL3 "|d z9f?:`aJ*aRz2TSWjT`0:2:`$@2TQ"|d z9f?:`aIaRPzT2SWjT`0:2:z`$@T2Qr4:f0:^`>. @a"X0AdH2`0Qppta> vp`a JBkaQ@3pN`= @a"X0AdH2`0Qtpoa=`DHv y^CC`I HvC y^փփ`IHv y^ CC 00`PHvC y^ փփ 08`Pv y^CCHp0Ra@ _`HvC y^փփHp8Ra _`Haj/A^eeeee `H@J@g`쐨g`Hd`v y^ CCHp0Ra _ NuvC y^ փփHp8Ra _ Nuv y^CJp0g*H <r$<NuvC y^փJp8fHtNuv y^CHp0Ra4 _0NuvC y^փHp8Ra _0NuHv 9^CCCCtNuHvC 9^փЃփЃtNua*/A^eаdʐH@J@g0`v y^CC`vC y^փփHp8Ra~ _g$]c/"@0)a _$PS@kH2QNu2(g"PRAA4DBH#"@$Y2g 1ARAA%NuBhNuvgCg"Wkg2WkR/&SEg$`LR/ bZ RbJp0@:<Jf` փSGgЃЃЃA^6H aLp$4`YE PQƐFrd0` Qj`prgAA^BBB p "X2g UAk$QNuHaT`EaBPJg, BgBUBg8j(Ѐ"ЀЁE Y0gR@2DAH!b` `ЀЀ`Ѐ"ЀЁE. y^ 9^`2"X2g,e($UAk&QHPS Y2g RSj _b y^ 9^""X2geb 9^: J"F^6^:`~aSk.TH@gX V0"~:00.LKLRLLJZ,>,N0D000J4! V ^0 33,,$&xV3ThU8b^b $#"]#&\"""hZPR 01,1>1Xn2]]3f3_f3F RNuR@HTNu33` p@  : HxFF~AJ0pk*c`TG<;p0N`~-A*B0p`G<;pN``p `$p `$??@@@8899HAAA>AzAzAtAtAVAPAߢߺߺ߮߮ߴߨߜ" ?>??B>9rC8C*F^F@BDzEt4J$26`޸RbEFH4LdNAd 8 .<$h6 \LrJx:$ pr.!!@&D`pxh&X?BXDXD&hS  ?>12h233>h3,32$REEEEEEEܤE(,z BRz((2## <<<<<<<^:`e a׎^>d#^:%` -Ig&a$y^:%@ -Hf&a$y^:%@Nu%ea^>d#^:!@ -Ig2a. y^:!@1A!B -Hf2a$y^:Y%5%Nu!<B`!<HPa$_%5%NuY!<B`!<Nu"y^:$] ! @g !k А n (JNuА l#^:Nu 2($4AB*!kB8!&!a34*!8!&!Jk JkEffDb(J`2#^:`2JjBf涀fA`8!&!a2*!8!&!JkJj`Jk`/RaJBgpgX^:(_NuXNuaJBfprtNua" bNua bNup`p` ga`9~A~-J0pfR~RHGG y^ 0pNu y^n`l y^n^r`^A.`VAV`NAb`FA`>A`6A`.A`&A`A`A`Ar$`AH `8Ra0,/JkTSGgL`NM.F`84  f R~ NuBg` BgarRW g %g - f>NuRar`a,/JkTSGgL`NN.F`7a,/JkTSGgL`NA.F`7a@J@g6@Hz ?<&NN\NuJ9]ZfjNua~#1 /aH _Jg/JkTSGgL`Hx1NLx.z `7Fa&/aD:HP1 M"JGg` -JBj @aՂSGkL` _HV?LPN\LPNuBg -FgaxJBj @ `a7LtRW - f>Nupg@ЀЀ y^" 0g(@Nup`V Fga~HA^JLpNuaBNu~G<6p N`  gNuR~G<6p N``>D? *_a 3rh2HUa fRp"Ma !g yXNf pCaaVJ9]Zfr |"pghfb "f.R 0"g 0 gR@` 0,g 0 fHp`R@ 0,g 0 fHpa _ Fg  f`pXNupR@ 0,g 0 fadJBkHQ ! gRfa`X yXNg yXNgp`<9XNk&a(HS&|"a  g f< &_Nu\F Fg Fga(ZHS&|"??<NMXJk!g f< &_NuHPa2  _`Q`N3rh2Ra fRp"MaD !g yXNf pC$a*a4J9]ZfA"pR@ 0 fa FfNu??<NMXJkNu\F Fg Fga'HS&|"a "f#g 9""g& ,g g!f< &_Nua g`Ra ,g ga| ,g f`<9XNkva' HS&|"ab "f#g 9""g& ,g g"f< &_Nua*  g`Ra ,g ga ,g  f`HSHx??<?NA JkSfNup`v`v??a?@NMX`2DW?<`a?k?<NM" Af J@fH@`4g \SG??<NMXJkJ9]ZV t&_NuRa dd XAB0kH?<?B?<BNA `1tNuak `1a kf`2Rar dd AB0kH?<?B?<BNA Jk.,?<?B?<BNA *kBg?/?<BNA JkNu` y]~ (g (fB76Nu#7637:Nu FgvgCփփֹ^" C g @~`p!`tp"`np#`hp$`b :g @|Sg`pR@ 0,g 0 farJBkHQ ! gRfa _  f z4~a8 FfNuR37: FfNup "f.R 0"g 0 g,R@` 0,g 0 fHp`R@ 0,g 0 fHpa&`~09u@29uBR@RANuS@SA3u@3uBNu3,p`84:`fprta09f29dNu4:Df3f3dp rt` By8`pBy8` p3 8|38@38a383838~`&aJf,H@ Kg Mg Pg Hf~`DSGj@RGFc:>`6 |" g6 g0 gd gXz`ez\gFf6pRGRFa`an` `?~aa!p a>p a80NuCpE`bf`FgRGJGgLSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NAXJ9]ZfJgNup Nu4:f??<?<NM\Nu3XN`a!0:R2:Pa0zEfpa\ppaX |"Eg0PaEfa<`@a @aN"X0g?Ra dbTABJfHPaH @a"X>EFr$WfFA0 _3XNTNuApHPB2/ Og* Rgz Ag< Ug. Ig ogB`&p=`pNAXJ@kNu~cGBVgB+B+eHk ??<>NAXQNupA` p9`p:`p;?a @a*>"X0AHPBHQ?NA\ _JkTNu?<`?<Rat db AB0Hk?aVJj Jof?|/?<BNA `a./a(/ @"X2B1HQ ["X2B1HQBg?<VNA _a _a~`p`p3GN Ff #*.*"`8a~S @aP"X0gA" @f ):f 0 *.*`QB?:Hy"?<NHz?<NA\NAP3XN Fgar9AH3XNa`\Jj @g @g ?aF0`NuC"EpAJyGNg *g|*fSJyGNg$ 1f *a8JfP|0ala  " C"a?<ONAT`d'/Qa H@HaHda H aNqJfJg0P H@HNu 0*X@a:0*H@?a:0*@@` 0*@a.0*H@a.0*X@@H`haS@k ??<NAXNua?Hz?<6NAP0:`av @aJ"X4g,A HPBBgHQ?<=NAP _J@k??<>NAX`tNuaa @a/? [a"X2A"#`QB2"_Ar# A e ` \gQBapZa aA""H09g"Hg \f`ArfS A"`Ja : -Fga9@Hk$3XN//<??<?aNA Jk ` aa#JTaa"z9AH3XNaR` xp6`p5` p4`p3`p2`0ap(fgTA3JgJhf~X?HPa Wv- eC-00ÑyJm y^FaZ _> FWfBNup?`p@3JaFr(fgpTAHP0( -Fg aSk _1@RhHhBg?9XN/.?<BNA JkN&_>gF2ҹ^ A"XPfHQH/?9XN?:NA Jkgp y?Jgp%` Nu @fp7`Ha y^R"y^F`Han"y^R y^F <}arLNup=arkHQ??<>NAX"WA"fSp g \g .WgJfS.BAKBHy"?<ANAT//Bg?<VNA "_`VBgHQ?NA"oPJ@Nua4L #L#NJy|Zg a2Sy|Zf y^B"y^>E~` k&@p0+R@Db bPL y]$z\p (g&fQLܐ#L (f[L:"J9LfA gXgJf`C^Jj* fANSfpAZahJyXf zx"b` C^AfJj<-TDd0@H@H 0 0H@B`3#p4`&][Return]H:FHH`H:8HH` f" LWLfp e@3LNu -f. FV\bg LfD9\bp e@3LNuv Lgv g gh f.v RA eC0H"y^&J8n0Nu@aT@aJaHAv2+&gvA020000` Lg$a3M a3M a3Mv`aߖ`ߒv`r0z B9L^&"o$y^:X^>eaε^>d#^:B*A`ո0z^&"o.$y^:X^>ea^>dۜ#^:% *A`xB9\b` ֹ^& C"nNuvgCg Yk,gL`b y^փփHPaRaXa, _` y^ փփHPRaޒ _ѐiNuvgCg Yk,g`0 y^փփHPajRaa _`p y^ փփHPRa. _iNuvgCg Yk,g` y^փփHPaRa֐aT _` y^ փփHP aRala0aF _ NuvgCg Yk,g` y^փփHPaRa"aZ _` y^ փփHP adRaa6a _ NuvgCg Yk4gp` y^փփHPa*&<x*<a _`( y^ փփRi`NuvgCg Yk4gF`\ y^փփHPa &<x*<a$ _` y^ փփShp`Rֹ^a̪ЀЀ`ֹ^a̐ЀЀ`ֹ^axЀЀ`ֹ^a^ЀЀ`ֹ^aFЀЀ`ֹ^a,ЀЀ`ֹ^aЀЀ`Pֹ^aЀЀ`Zֹ^aЀЀ`ֹ^aЀЀRiNuֹ^aˬЀЀ`ֹ^a˒ЀЀSiNuL88PdRBNu#SPp arpMal3.pd |dr 0Q0tr a3.`peapp`0pAUaS@fa @aBaA aN_$BgNA`"|:2AUV@p222a"<^0<NB09Nurt3"3(3$a"<^psNB09dNu Fg a43a"<FpsNBNu Fg2aCV2 @ e @}bAUV@p222a`"<.0<NBNu A`H JA"#C#B0\* BpZaHSa.09g$A""Hg \f`Af09NuGfABASICByZ 0:A@ fB fB @m ??<>NAXNuAa&|.BASa^g <.BASa6B^JB^NaC"p apA#CelVfdC"XptaPZ A]C^:E" "Ҁ f Cdb("y] 9^2aha&J9XfXNup `p `p ?a&`p`p?a0`Nua/a8/a o("_ _" $Id*b` QjNuQjNubd`aHaa"[`a6aa"[<:HS?HQ/a.&_<k/HS/??<?NA Jk0&_fDNu\Fj.?^:,*B(9]؅kr/9]?<INA\/?<HNA\JgH y^>"y^B۹^F۹^B۹^>#]$I`&bۛp0R@@b CX`/9]?<HNA\p=`Na|a aaA"a&HRLaHRLaHRL??<KNA` J$H @a"X0 J @cp~QBNuH <r$<NuH <r$<NuH <r$<Nua 0`a`vHJ9rh`6?<%NNTNuH`HP?< aNA\LNuQ[J[f H LNuJ9[g*P[Jy[gH y^V hBP By[LNupAav`xa f`pNupAaXS@NuaJ]\k J9[gaJ9]ZgB9]ZJ9\bf aaa`j3]X%`bHy\?<&NN\P]\aJBy]Z3]X%Nu xVC]gJf! ?<"NNT|' @"hE]:g G]<&!JNuHy\?<&NN\Nu xVC] gfB?<"NNT| @"hE]:f 9] :#^6#^: zb :~grHd0` Qj`xNu:F"ddddB?< NA\#_ /?< NA\Hy_4?<&NN\NuHy_?<&NN\NuALH_C$pJg XXQA#`Z `LNu________LH!`ZNuHx`(Hx`"Hx`Hx`Hx`Hx` Hx`Hx !4VxH A3`J Ni LHO |1R/:?< NAO 0: @d`HarLxN 2$4BANuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`BL8<gJEgEjCDEDF Fe"Fk8BCHC`PFk\QF^FkTQkDуdQRBNuDdBDA@kgAр[SBk(NuJlJBkNu0gH@rB JkЀ[`JBjtNuJ9afgPagpr$<Nup`JBgVB&8TTDуdQRBNuaDNuz` L8JEgJBgJjBEB:gHC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB Bb@Nup`Nu&8*LJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@`H?<,>CEdGH@0r`?<`DAр&AdRAрAрDуNuprt|PafQag  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dadSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`TJjDDDS4</a$JFkSFkLaRFBd&8*L?a><JBgaSF Be BgQRB`ApdR e <rRF&0xaffEv+0JFjDFv-Hƌd0BFHF 0HF0A Nuprt|`HQ2:( A dHC 5e2!R 0c 9c0`<R"_`Z ar`2:C0 Ef"_Nuaa/ Cr  g 00VJAgB @ nN @mHJ@j0.4DBUBk0QSAg Q.`S@k 0`0BAF "_Nu.WAkQA" 0g` a| @e3fNuaJBg <r4<NuaAd RdQRBABe B/dNAрQ4<`BNuaag `.aag`@Ad RdQRB>Ge GbFGNu G0dFGNu~NuatAd RdQRB6Ce C/jC C@j C jr0H@{0AFG0000X0000X0000X0000Gr$~A0g0  pia QNua?S@kF8LfBfLC`HNua -FgH?aa"AJWfHa #rdTNu3`ʰzbzbHr`a0S@k@> A0P"G0(JgRJ)@g1@C2fZ2HP"("(pdaj W091@A00 piaJ3@pia2 _C""pe` 3 pia3phaLHrdHsSBSC@AHdHsPrhPuDPd0<rt`pa"papapaLr`a,S@k<@ A3gFBPpfahpgab3 phaT3f8Bya.QrhBdBrd`bNuXNurt`rtH`aS@k@?aN @a""X80L6BPA E\G66&JDg DNexMQBBJyg *gpi`Nua`< d8 VuDg* g gj g& fzSyu@jByu@`j3d0:z"3d0:R@S@z3fprta|Ryu@0ΰz|e$Byu@RyuB<SFEzbcSyuBaQj&_NuByu@`3dH AdEE1FL HHhha a6BydAd0(1@hV@1@1@ `H AdL a Byda LNu??<?<NM\`L3pkaD3dAdL fHL|D@ASBSCHHa Bypk` z#g.vGJRC+ g33p!aĶSeNuALp #gBypaܚBwAprt0 0BBB R@ @efA000 0PB0 00 000\0X00000 0P0BX0:@00p1| 1|QBX0 $HTH0P 00,NuSk [0NupNupNp M gz gp g g*Ha:a6rHA3@@"TAt #zg0A9( f hgSASAgRB`3`DSAgNu@  f/az _^&X PfR/|~ Kzza0g @ ep 24C&"2 S@ػȊTd BTA3A0C4$I2a222B"0@2A\xvag@2#M 4B3BS@ -f ػȊTd@BAb8RGRC`3RSG5GC5C J1DcaRF F eXNuRG GcdNuPNuXASF1F41R 1h4 x1EDgZA##w3?<NNTU@g.A"g dRhdRh(gp`zp>`Ap0rtCLagQ0CLL000zH?#|<pa0LHH|Lv3|:ALff$f*f*fNu y |6(`86(`2629|BWAARA09|DA hfRAS@f3|: Cf0Nua$@k0;` <`   FgbSa@gS@ AHP -Fg^a| W@ -FgL Mg4ad W -FgaR W HAA}:20i0d R@`Ra. W@H@?< NN\ -FfbNu0^ M / haw FgSaF|H| -Fgra|c|o|{f|cf|of|{ -Fg$ab| -FgaP|H|AxHP P0P T0T X0X?< NN\ -FfdNuaJk$ Be B baS@ogRR FfNu$y^:X^>eN^>dJ#^:% p e@ЀЀ y^& 0gk g$(@Nup`T`* f /BaN"_pHq )eRXar(_Sy|ZNu&y^: 9^> nN 9^> ovgC C@g,U@kBg^6BP`X^ &B`D^&B6BP`*^"X0gBPr2RAA#&6&#^: Ff@NupZ`9L#^: fJ9Lg`,Nu&y^: #k g#^:(@Nu0@H@@gU@k,g ^0`^ ` ^1c ` ^"X0gHR@@"D#0#"c0g! HR@#`zvgCGGA^ pp,08gH F gF g&& ] m&feHUKa*_Nup*`p-`p.` p/`p+`p,`& fRHPa&"_HUa6RLa*_HSy|ZaLNuHSa - fH$_Nu y^:X^>oN^>nn#^:BRy|ZEHRK"y^: 9^> nN 9^> c2$""" "v eC Cg\Ukxg8JBk^20"#^:g  f`  f&_NuJBk^ a" `JBk^"2aB`JBj^H f"HQHP0(N$W$RNH2Q  _"_$X4BPY"2gHRB]%(\$@$2g@]e$HQ/0NB$_$RS@H2Q"_L` 1A$BHRA%L`p\B9L`"p^`#^6^:p]`a b6J9Lf 9ZLg 9[LgB9L(yL Ff(yLNuv eCֹ^" C/g y^:^6c> k `g& @gJf,Y^:`Jf aT` ^: ^:`fDJ(_B9LNu((@((?<NN.?<NNX LA HA HNua aa -Fga`Hp3da SN"X0 @e024EH$Jydk Bb5B5A6CC5CK5C8+:+AdB0000Dk~Ekz00Ad<:>:SFSGFn`Gn\DDk0BhDEk1EBh Fchh Gchh0hb&0hbpmrt#0#4`ϠNu _pNBaaaaa/a4>+<+:+8+&DbFEbGAdHP@dAdBD0ƞE03dAFC&000FF22N23BRG0@\@ _NB"2#`2a @0<}NB&IaNa @&XaH`az?<NNT @"K <}Nu @HPa^ _"X0 @Jg8zf:HPEJH LppJ`$_44&b'JJBNHD'BNNuTpNup d@Tй^ @"X PfXLNupN z&"z2gB` zBp( g;j `` $&( "A2;N,PX2P,(r /` f"_#Hѩ` f@"_!I` f"_#Hѩ` g`/`j f"_#Hѩ` f"_!IE#J`: f&"_#Hѩ(g|`|` f"_2(if()g AdE#JE!J`  g  ft"_E#J`  fd"_E#J/ ` g g g f /`lHz`"Hz`Hz`Hz`Hz` Hz`Hz#]`tgB"#] g0 g0 g0 g0 g0 g0 +g0A`.X`zHz`"Hz`Hz`Hz`HzM` Hzp`HzAa" _aJf~NuH lHz``Hz`XJfHPr((( eA(ҁҁ"zpJf# Fgpѱ`T +fX`DHzM``8r(` r(A("zJf>"ёEXJg +fp`NqEXJg +f`Hz`Hz` +gJgHz`|Hz`trHPTgAGGCt"qpJf # _` _Hz`6 zFp( g -g g`~Nu (e`|vCgCֺ*"C&"CgijgHPbH~t( g(  g* +g .g±e _JgBHzc`R`S`Sj`vCgCֺа"C&"CgP~t) g,  g* +g .g g`JgBHz`*R`Sj`Division durch NullberlaufZahl nicht Integer|-2147483648 .. 2147483647Zahl nicht Byte|0 .. 255Zahl nicht Wort|0 .. 65535Quadratwurzel nur fr|positive ZahlenLogarithmen nur fr|Zahlen grer NullUnbekannter Fehler Speicher voll Funktion oder Befehl|noch nicht mglich String zu lang|max. 32767 Zeichen Kein GFA-BASIC V2.0 Programm Programm zu lang|Speicher voll|New Kein GFA-Basic Programm|File zu kurz|NewFeld zweimal dimensioniertFeld nicht dimensioniertFeld Index zu groDim Index zu groFalsche Anzahl IndizesProcedure nicht gefundenLabel nicht gefundenBei Open nur erlaubt:|"I"nput "O"utput "R"andom|"A"ppend "U"pdateFile schon geffnetFile # falschFile nicht geffnetFalsche Eingabe, keine ZahlFileende erreicht|EOFZu viele Punkte fr|Polyline/Polyfill|maximal 128Feld mu eindimensional seinAnzahl Punkte grer als FeldMerge - Kein ASCII-FileMerge - Zeile zu lang - Abbruch ==> Syntax nicht korrekt|Programmabbruch!Marke nicht definiert"Zuwenig Data#Data nicht numerisch$Syntaxfehler in Data|""paarweise verwenden%Diskette voll&Befehl im Direktmodus nicht mglich'Programmfehler|Kein Gosub mglich(Clear nicht mglich in|For-Next-Schleifen oder|Proceduren)Cont nicht mglich*Zuwenig Parameter+Ausdruck zu komplex,Funktion nicht definiert-Zuviele Parameter.Parameter falsch|mu Zahl sein/Parameter falsch|mu String sein0Open "R" - Satzlnge falsch1Zu viele "R"-Files (max. 10)2Kein "R"-File3Nur ein Field zu einem|Open "R" mglich4Fields grer als Satzlnge5Zu viele Fields (max. 19)6GET/PUT Field-String Lnge falsch7GET/PUT Satznummer falschFehlerhaftes Menu?Fehlerhaftes Reserve@Fehlerhafter PointerZFehler bei Local[Fehler bei For\Resume (next) nicht mglich |Fatal, For oder LocaldGFA-BASIC Version 2.0| Copyright 1986|GFA Systemtechnik GmbHf2 Bomben - Bus Error|Vielleicht Peek oder Poke falschg3 Bomben - Adress error|Ungerade Wort-Adresse!|Bei Dpoke, Dpeek, Lpoke|oder Lpeek?h4 Bomben - Illegal Instruktion|Ausfhrung eines ungltigen|68000-Maschinenbefehlsi5 Bomben - Divide by Zero|Division durch Null in|68000-Maschinensprachej6 Bomben - CHK-Exeption|68000-Interrupt durch CHK-Befehlk7 Bomben - TRAPV-Exeption|68000-Interrupt durch TRAPV-Befehll8 Bomben - Privilege Violation|68000-Interrupt durch Ausfhrung|eines priviligierten Befehlsm9 Bomben - Trace Exeption|68000-Trace-InterruptAllgemeiner FehlerDrive not Ready|ZeitberschreitungUnbekannter BefehlCRC Fehler|Disk-Prfsumme falschBad Request|Ungltiger BefehlSeek Error|Spur nicht gefundenUnknown Media|Falscher BootsektorSektor nicht gefundenKein PapierSchreibfehlerLesefehlerAllgemeiner Fehler 12Diskette schreibgeschtztDiskette wurde gewechseltUnbekanntes GertBad Sektor (Verify)Andere Diskette einlegenUngltige FunktionsnummerDatei nicht gefundenPfadname nicht gefundenZuviele Dateien offenZugriff nicht mglichUngltiges HandleSpeicher vollUngltige SpeicherblockadresseUngltige LaufwerksbezeichnungKeine weiteren DateienGEMDOS-Bereichsfehler|Seek falsch?Interner GEMDOS FehlerKein BinrprogrammfileSpeicherblockfehler[1][Wollen Sie den Interpreter|wirklich verlassen?][Ja|Nein][1][Programmende][Return][2][Programmstop?][Stop|Cont][2][Druckerlisting?][Ja|Nein][2][NEW - Programm Lschen?][Ja|Nein]Mll - Editor FehlerWhile ohne WendRepeat ohne UntilDo ohne LoopFor ohne nextWend ohne WhileUntil ohne RepeatLoop ohne DoNext ohne ForIf ohne EndifEndif ohne IfElse ohne IfElse ohne EndifExit ohne SchleifeProcedure ohne ReturnProcedure in SchleifeProcedure doppelt definiertReturn ohne ProcedureMarke doppelt definiertLocal nur in ProcedureLocal nicht in SchleifeFunction doppelt definiertGoto in/aus For-Next oder ProcedureResume in For-Next-SchleifeResume ohne ProcedurejH lSyntax FehlerjH lZeile zu langVFb[3][\"& 6     B2p\ x~ 4*"t:< 2X00FB^  "  < T2&$"F"* &$ L&8@h24&"* &lJ"$,(:$P X>   x@& V4 j  @*JLr &:z$J( (.(F < Zt"N\"`  @*(<,8L*(j<,( @<    4^> 6 X:dH.( ZMusik - Editor von Johannes Uhrlau Harsdrfferplatz 14 8500 Nrnberg 30 Tel. 0911/468457 Dieses Programm entstand um die Eingabe von Musikstcken (eigene oder Fremdkompositionen) auf unkomplizierte Weise in Notenschrift zu ermglichen. ****** Dieses Programm ist Public Domain, daher darf es frei kopiert und ****** weitergegeben werden, jedoch mu immer die Datei MUSIC.DOC unverndert ****** mit kopiert werden. ****** Weitergabe von irgendwie genderten Versionen des Programms nur nach ****** Mitteilung an den Autor! ****** Jeder Verkauf ohne Zustimmung des Autors ist verboten! Vorzge des Programms: Steuerung vollstndig mittels Maus. Pulldown menues. Das Stck wird in einen Soundstring bersetzt, der auch als solcher abgespeichert werden kann. Die Anfangsadresse dieses Strings wird zum Abspielen einfach der XBIOS - Routine 'dosound' { XBIOS(32) } bergeben. Dadurch kann das Musikstck in beliebige Programme in jeder Sprache eingebaut werden (selbst in Assembler ein Kinderspiel von einer handvoll Befehlen). Da die Soundroutine interupt-gesteuert ist, luft die Musik im Hinter - grund whrend das Hauptprogramm seinen eigenen Ttigkeiten nachgeht. Sehr schnelles bersetzen( compilieren ) durch Einsatz eines Unterprogramms in Assembler. etc. GRUNDFUNKTION: Man schnappt sich mit der Maus eines der Symbole unterhalb der Titelleiste durch Hinfahren und Druck auf die linke Maustaste. Der Mauscursor verwandelt sich in das entsprechende Symbol. Nun schiebt man das Symbol an die gewnschte Stelle an einer der drei Noten- zeilen, drckt wieder die linke Maustaste und schon ist die Note (oder Pause etc. ) gesetzt. Befand sich an dieser Stelle bereits eine Note, so ist diese nun berschrieben. Wenn man ein Vorzeichen oder ein Auflsungszeichen setzen will, so schiebt man es auf oder vor die entsprechende Note. Will man eine Triole schreiben, so setzt man die kleine 3 vor oder auf die erste der drei Noten. (Es wird nicht kontrolliert, ob die drei Noten gleiche Lnge haben, mu man selbst drauf achten! ). Vorzeichen ( Auflsungszeichen ), die vor eine einzelne Note gesetzt sind gelten wie allgemein blich fr den ganzen restlichen Takt. Vorzeichen, die fr mehrere Takte gelten sollen, mssen vor den linken Taktstrich gesetzt werden. Sie gelten so lange, bis neue Vorzeichen am Anfang eines Taktes gesetzt sind. Editiert man in der Mitte eines Stckes, so wird angezeigt, in welchem Takt die hier gltigen Vorzeichen gesetzt wurden. ACHTUNG: ************************************************************************* Die drei Notenzeilen sind fr die drei Tonkanle des Soundchips. ***** Die gesamte Tonlnge mu auf allen drei Zeilen gleich sein! ****** Sonst gibt es beim bersetzen eine Fehlermeldung! Wenn man nur ein oder zweistimmig schreiben will, so mu man die nicht bentzten Zeilen mit Pausen der entsprechenden Lnge auffllen. ************************************************************************* Wenn ein Takt fertig eingegeben ist, geht man normalerweise auf das Feld < Weiter > unten am Bildschirm, und man kann den Nchsten eingeben. Wenn der Takt nicht der letzte war ( man kann natrlich auch in der Mitte eines Stckes Takte einfgen ), erscheint nun die Frage < Replace, Insert, oder Skip >. Replace bewirkt Ersetzen des alten Taktes durch den neu editierten. Insert bewirkt Einfgen des neu editierten vor den alten Takt wobei die folgenden weitergeschoben werden. Skip bewirkt eine Anullierung der Edits. ERKLRUNG DER MENUE PUNKTE: Unter FILE liegen die blichen Funktionen wie Laden, Abspeichern, teilweises Abspeichern, und Mergen ( hier von Musikstcken ). CLEAR bewirkt einen Programmneustart. Es erscheint jedesmal eine Fileselect Box in der blichen Form. Anklicken von Abbruch anulliert die Menueauswahl. Unter EDIT findet man diverse sich selbst erklrende Editorfunktionen. GOTO FIRST, GOTOLAST, GOTO NR. bewirken einen Sprung an den Anfang, das Ende bzw. zu einem bestimmten Takt des Stckes. Unter PUT findet man die Punkte INSERT, REPLACE und SKIP EDITS, deren Bedeutung bereits beschrieben ist. Die Punkte PUT INTO BUFFER, bzw. GET FROM BUFFER dienen zum Zwischen- speichern eines Taktes in einem Puffer bzw. zum Holen eines Taktes aus dem Puffer. Unter ACTIONS findet man die ntigen Schritte zum bersetzen ( COMPILE ) und Abspielen ( PLAY ) eines Taktes oder des kompletten Stckes. Auch die Menuepunkte zum Abspeichern oder Laden eines bersetzten Soundstrings befinden sich hier. DOUBLE bzw. HALF SPEED halbieren bzw. verdoppeln smtliche Noten- und Pausenlngen des aktuellen Taktes. Unter SPECIALS liegen die Punkte VOLUME fr Einstellung der Lautstrke, GAP ist die Lnge der kurzen Pause zwischen zwei Noten, damit sie getrennt sind. Mit TRANSPOSE kann man die Grundtonhhe des Stckes bestimmen, und zwar durch direkte Eingabe ( explizit ) oder durch Stimmen ( praktisch, wenn man die Tonhhe an ein Instrument anpassen will ). NOTEN ENG bzw. NOTEN WEIT verndern die Breite der Darstellung ( wenn man sehr lange Takte eingibt, mu man die enge Darstellung whlen, da es sonst eine Fehlermeldung gibt! ). KEYKLICK ON bzw. OFF schaltet den Tastaturklick an bzw. aus ( Ein Tastaturklick beendet in jedem Fall ein evtl. laufendes Musikstck! Dies ist im TOS begrndet. ). Sollte beim Editieren ein fataler Fehler auftreten, der einen Programmabbruch ntig macht, ( zB. wenn die Lnge der Notenzeile nicht ausreicht s.o. ) so besteht wenigstens noch die Mglichkeit, das bis dahin eingegebene Stck zu retten, in dem man die Option "Retten was zu retten ist" anklickt. Man kann dann das Programm neu starten, die gerettete Datei wieder einladen und weitermachen. Fr Fragen ( Rckumschlag! ), Anregungen und natrlich fr eine kleine Spende ( es ist ja wirklich ein recht langes Programm geworden, ) bin ich immer offen. ( Spender kommen in den Genu aller updates die noch entstehen werden, u.a Bgen zum Verbinden von Noten und keine fatalen Fehler mehr. ) Johannes Uhrlau Harsdrfferplatz 14 8500 Nrnberg 30 Tel. 0911/468457 ' Version vom 09.09.87 17:30 ON BREAK GOSUB break DEFLIST 0 OPENW 0 GOSUB initall ON ERROR GOSUB fehler GOSUB edit ' PROCEDURE initall ON ERROR GOSUB initerror filemax%=1000 DIM takt$(2),takte$(2,filemax%),taktbuf$(2),volume%(2),tsave$(2) ARRAYFILL volume%(),11 pfad$="\STUECKE.MUS\" IF NOT EXIST(pfad$+"*.MUS") pfad$="\" ENDIF y1%=60 ! Zeilenabstand okt%=4 ! Verschiebt oktavenweise y0%=60 ! oberste Zeile x0%=8 ! linker Rand dist%=4 ! Abstand zwischen Noten in Bytes (gerade Anzahl!) GOSUB initmenu GOSUB initmc GOSUB initmouse GOSUB initplot GOSUB initedit GOSUB initcomp RETURN ' PROCEDURE initerror IF ERR=-33 ALERT 3,"Das file 'MUSIC.IMG' mu sich|im selben Ordner befinden,|von dem aus das Programm|gestartet wurde!",1,"Abbruch",dummy ENDIF RESUME RETURN ' PROCEDURE edit LOCAL i%,j%,x%,y%,k%,laenge%,hoehe%,hals%,not$,laenge$,oktave$ LOCAL punkt$ MENU grundmenue$() ON MENU GOSUB grundmenue laenge%=8 FOR i%=0 TO 2 takt$(i%)=takte$(i%,filep%) NEXT i% PRINT AT(1,3);"Taktnr. ";filep%,, GOSUB headline IF LEN(takt$(1)+takt$(2)+takt$(0))<>0 @plottakt(yedit%(0)-1,abst%) ELSE FOR i%=0 TO 2 @drawline(yedit%(i%)-1) @schluessel(yedit%(i%)) NEXT i% @taktstrich(lrand%-2,yedit%(0),abst%) ENDIF CLR y0hilfsalt% DEFMOUSE mouse$(laenge%) DEFTEXT ,1,,13 RBOX 220,360,300,379 TEXT 230,375,62,"Zurck" RBOX 300,360,380,379 TEXT 310,375,62,"Weiter" DEFTEXT ,0,,13 @disable DO MOUSE x%,y%,k% neu!=FALSE IF y%>=400 GOSUB edithilfs(x%-16*(laenge%=22 OR laenge%=23),yedit%(0),yedit%(0)) CLR y0hilfsalt% DEFMOUSE 3 no_menue!=TRUE REPEAT MOUSE x%,y%,k% ON MENU UNTIL y%<400 AND MENU(9)=34 DEFMOUSE mouse$(laenge%) IF NOT no_menue! IF neu! @eraeditfeld FOR i%=0 TO 2 takt$(i%)=takte$(i%,filep%) NEXT i% PRINT AT(1,3);"Taktnr. ";filep%,, ENDIF @plottakt(yedit%(0)-1,abst%) ENDIF ELSE IF y%>360 AND x%>220 AND x%<380 AND k% !Zurck/Weiter CLR y0hilfsalt% IF edflag! IF filep%laenge% PRINT CHR$(7); laenge%=x% DIV 24 DEFMOUSE mouse$(laenge%) ENDIF ENDIF chan%=-(y%>grenz1%)-(y%>grenz2%) IF k%=0 GOSUB edithilfs(x%-16*(laenge%=22 OR laenge%=23),MIN(MAX(y%,grenz0%),grenz3%),yedit%(chan%)-1) ENDIF IF k%<>0 AND y%>grenz0% AND y%=lrand%*8 CLR y0hilfsalt% CLR vorz$ IF laenge%>=22 AND laenge%<=25 ADD x%,16 not$=t$(chan%,x% DIV 16) ! schlechter Stil ... CLR oktave$,laenge$,punkt$ vorz$="b" IF laenge%=23 vorz$="#" ENDIF IF laenge%=24 vorz$="" ENDIF IF laenge%=25 vorz$="@" ENDIF t$(chan%,x% DIV 16)=vorz$ ELSE IF laenge%<14 ADD y%,2 hoehe%=(y%-yedit%(chan%)+33)/3 ! hchstes C not$=noten$(7-(hoehe% MOD 7)) oktave$=STR$(maxokt%-(hoehe% DIV 7)-(not$="C")) laenge$=STR$((laenge% DIV 2)+1) ELSE not$="P" oktave$="P" y%=yedit%(chan%) laenge$=STR$((laenge% DIV 2)-5) ENDIF CLR punkt$,vorz$ IF ODD(laenge%) punkt$="." ENDIF ENDIF edflag!=TRUE replace!=t$(chan%,x% DIV 16)<>"" IF k%=1 t$(chan%,x% DIV 16)=vorz$+not$+oktave$+laenge$+punkt$ ELSE t$(chan%,x% DIV 16)="" ENDIF IF replace! @put_t_to_taktfeld @plottakt(yedit%(0)-1,abst%) ELSE IF k%=1 IF y%>yedit%(chan%)+12 hals%=1 ELSE hals%=-1 ENDIF HIDEM @plotnote(laenge%,hals%,TRUE,2*(x% DIV 16),3*(y% DIV 3),vorz$) SHOWM ENDIF ENDIF REPEAT UNTIL MOUSEK=0 ELSE IF laenge%>=22 AND laenge%<=24 WHILE y%>grenz1% SUB y%,abst% WEND IF y%>=yedit%(0)-6 AND y%="a" AND LEFT$(takt$(0))<="h" AND LEFT$(takt$(0))<>"b" takt$(0)=MID$(takt$(0),3) WEND @clear_vorz ENDIF IF vorz$="" AND k%=1 takt$(0)="c"+takt$(0) ENDIF @plottakt(yedit%(0)-1,abst%) edflag!=TRUE ENDIF ENDIF ENDIF ENDIF ENDIF inp$=INKEY$ IF inp$=" " CLR y0hilfsalt% @put_t_to_taktfeld @plottakt(yedit%(0)-1,abst%) ELSE IF RIGHT$(inp$)=CHR$(&H62) @anleitung ENDIF ENDIF ENDIF LOOP @put_t_to_taktfeld DEFMOUSE 0 RETURN ' PROCEDURE edithilfs(x%,y%,y0%) LOCAL i%,xtemp% xtemp%=x% AND &HFFFFFFF0 IF xtemp%<>xhilfsalt% OR y%<>yhilfsalt% GRAPHMODE 3 IF y0hilfsalt%<>0 FOR i%=y0hilfsalt% TO yhilfsalt% STEP stephilfsalt% LINE xhilfsalt%-2,i%,xhilfsalt%+10,i% NEXT i% ENDIF xhilfsalt%=xtemp% yhilfsalt%=y% CLR y0hilfsalt% IF y%y0%+28 FOR i%=y0%+30 TO y% STEP 6 LINE xhilfsalt%-2,i%,xhilfsalt%+10,i% NEXT i% stephilfsalt%=6 y0hilfsalt%=y0%+30 ENDIF GRAPHMODE 1 ENDIF RETURN ' PROCEDURE put_t_to_taktfeld LOCAL i%,j%,t$,k% FOR i%=0 TO 2 t$="" FOR j%=0 TO 40 t$=t$+t$(i%,j%) t$(i%,j%)="" NEXT j% k%=1 WHILE MID$(t$,k%,1)>="a" AND MID$(t$,k%,1)<="h" ADD k%,2 WEND REPEAT j%=INSTR(t$,"#@",k%) OR INSTR(t$,"b@",k%) OR INSTR(t$,"@",k%) IF j% MID$(t$,j%,2)="@"+MID$(t$,j%,1) ENDIF UNTIL j%=0 FOR j%=k% TO LEN(t$)-1 temp$=MID$(t$,j%,1) IF temp$="#" OR temp$="b" OR temp$="" temp2$=MID$(t$,j%+1,1) IF temp2$="#" OR temp2$="b" OR temp2$="" t$=LEFT$(t$,j%)+MID$(t$,j%+2) ENDIF IF temp2$="P" t$=LEFT$(t$,j%-1)+MID$(t$,j%+1) ENDIF ENDIF NEXT j% IF RIGHT$(t$)="b" OR RIGHT$(t$)="#" OR RIGHT$(t$)="" OR RIGHT$(t$)="@" IF MID$(t$,LEN(t$)-1,1)>"h" OR MID$(t$,LEN(t$)-1,1)<"a" t$=LEFT$(t$,LEN(t$)-1) ENDIF ENDIF takt$(i%)=t$+"|" NEXT i% RETURN ' PROCEDURE headline LOCAL laenge% DEFFILL 0 HIDEM PBOX 0,0,639,32 LINE 0,27,639,27 FOR laenge%=0 TO 21 IF laenge%<14 y%=24 ELSE y%=8 ENDIF @plotnote(laenge%,1,TRUE,laenge%*2,y%,"") NEXT laenge% INC laenge% y%=16 @plotvorz(laenge%*2,y%,0) @plotvorz(laenge%*2+2,y%,1) @plotvorz(laenge%*2+4,y%,2) DEFTEXT ,1,,6 TEXT (laenge%*2+6)*8,y%,"3" DEFTEXT ,0,,13 x%=0 FOR i%=1 TO laenge%+1 GET x%,19,639-8,26+19,temp$ PBOX x%,0,x%+8,26 PUT x%+8,19,temp$ ADD x%,24 NEXT i% SHOWM RETURN ' PROCEDURE plottakt(y0%,y1%) LOCAL x%,i%,xmin%,v%,tsave$ DIM index%(2) tsave$=takt$(0) ARRAYFILL index%(),1 ARRAYFILL c%(),0 DEFFILL 0 HIDEM PBOX 0,y0%-35,639,y0%+3*y1% IF LEFT$(takt$(0))>="a" AND LEFT$(takt$(0))<="h" AND LEFT$(takt$(0))<>"b" @set_glob_vorz PRINT AT(50,3);"Vorzeichen in Taktnr. ";filep%;" " ENDIF @put_glob_vorz @taktstrich(lrand%-1,yedit%(0),abst%) IF LEN(takt$(1)+takt$(2)+takt$(0))=0 FOR i%=0 TO 2 @drawline(y0%+i%*y1%) @schluessel(y0%+i%*y1%) NEXT i% ELSE FOR i%=0 TO 2 @drawline(i%*y1%+y0%) ! Notenzeile @schluessel(i%*y1%+y0%) @gettakt(i%,takt$(i%)) ! belegt Felder fr Tonkanal i% (s. gettakt) NEXT i% x%=lrand% ADD x%,2 ' Ordnet Noten der drei Kanle passend nach Dauer untereinander an WHILE c%(0)<>count%(0) OR c%(1)<>count%(1) OR c%(2)<>count%(2) xmin%=MIN(x%(0,c%(0)),x%(1,c%(1)),x%(2,c%(2))) FOR i%=0 TO 2 j%=c%(i%) IF x%(i%,j%)=xmin% @restore_t_string(i%,x% DIV 2) vorz$=vorz$(vorz%(i%,j%)) ' IF triole!(i%,j%) @plottriole(i%,x%) ENDIF @plotnote(laenge%(i%,j%),hhals%(i%,j%),sep!(i%,j%),x%,y0%+y1%*i%+y%(i%,j%),vorz$) @hilfszeilen(y1%*i%+y0%,x%,y%(i%,j%)) INC c%(i%) ENDIF NEXT i% ADD x%,dist% WEND @taktstrich(x%,y0%,y1%) ENDIF takt$(0)=tsave$ ERASE index%() SHOWM RETURN ' PROCEDURE plottriole(chan%,x%) DEFTEXT ,1,,6 TEXT x%*8-2,y0%+y1%*chan%+y%(chan%,j%),"3" DEFTEXT ,0,,13 RETURN ' PROCEDURE put_glob_vorz LOCAL j%,h% FOR j%=5 TO 29 STEP 4 h%=j% MOD 7 IF vorzeichen$(h%)<>"" FOR i%=0 TO 2 y%=15-3*h%+yedit%(i%) @plotvorz(j% DIV 4+3,y%,-(vorzeichen$(h%)="#")-2*vorzeichen$(h%)="") NEXT i% ENDIF NEXT j% RETURN ' PROCEDURE plotvorz(x%,y%,v%) LOCAL k%,bildadr% bildadr%=XBIOS(2)+(y%-10+v%+19)*80+x%-1 FOR k%=0 TO 15 POKE bildadr%,PEEK(bildadr%) OR vorzplot%(v%,k%) ADD bildadr%,80 NEXT k% RETURN ' PROCEDURE restore_t_string(chan%,x%) LOCAL t$,temp$ t$=MID$(takt$(chan%),index%(chan%),3) ADD index%(chan%),3 temp$=MID$(takt$(chan%),index%(chan%),1) WHILE temp$<>"@" AND temp$<>"|" AND temp$<>"b" AND temp$<>"#" AND temp$<>"" AND (temp$<"A" OR temp$>"P") t$=t$+temp$ INC index%(chan%) temp$=MID$(takt$(chan%),index%(chan%),1) WEND IF x%>40 ALERT 1," Zeile zu lang! ",1," Stop | Cont ",x% IF x%=1 ERROR 100 ENDIF ELSE t$(chan%,x%)=t$ ENDIF RETURN ' PROCEDURE taktstrich(x%,y0%,y1%) LINE x%*8,y0%,x%*8,y0%+2*y1%+24 ! Taktstrich LINE x%*8+1,y0%,x%*8+1,y0%+2*y1%+24 RETURN ' PROCEDURE schluessel(z%) LOCAL i% HIDEM LET lpoke%=VARPTR(lpoke$) CALL lpoke%((z%-12+19)*80,VARPTR(schluessel%(0)),50,0) SHOWM RETURN schluessel: DATA 30720,63488,116736,231424,198656 DATA 395264,395264,264192,268288,268288 DATA 274432,290816,319488,376832,491520 DATA 458752,917504,1835008,3932160,7602176 DATA 14942208,29622272,58982400,119521280,239067136 DATA 209711104,417609728,281286656,277089280,277089280 DATA 277087232,277087232,277087232,272892928,136579072 DATA 67373056,33820672,25452544,8355840,262144 DATA 262144,262144,262144,262144,29622272 DATA 65273856,65273856,46399488,50855936,32505856 ' PROCEDURE drawline(y1%) ! Notenzeile LOCAL i% FOR i%=0 TO 4 LINE 0,y1%+6*i%,639,y1%+6*i% NEXT i% RETURN ' PROCEDURE gettakt(chan%,takt$) ' bergibt Ergebnisse fr einen Takt in: ' laenge%(chan%,count%) : Tonlnge von 0 bis 12 ' hhals%( " ) : Richtung bzw. Lnge des Notenhalses ' vorz%( " ) : +1 = # ; -1 = b | 1=b 2=# 3= ' sep!( " ) : Einzelnote ' x% ( " ) : Spalte in Bytes ' y% ( " ) : Pixelreihe ohne y0%! LOCAL j%,hoehe%,laenge%,y%,i%,c%,hals%,x%,temp% CLR x%,c% j%=1 WHILE j%7 ALERT 3,"Schlechter Takt!|Pointer: "+STR$(j%)+"|"+takt$,1," Stop ",dummy END ENDIF INC j% y%=10-(hoehe%*3+21*(ASC(MID$(takt$,j%))-48-okt%)) INC j% laenge%=2*(ASC(MID$(takt$,j%))-48)-2 ENDIF temp%=2^(ASC(MID$(takt$,j%))-48) INC j% IF MID$(takt$,j%,1)="." INC laenge% INC j% MUL temp%,1.5 ENDIF hals%=16 IF y%<12 hals%=-hals% ENDIF laenge%(chan%,c%)=laenge% hhals%(chan%,c%)=hals% sep!(chan%,c%)=TRUE x%(chan%,c%)=x% y%(chan%,c%)=y% ADD x%,temp% INC c% IF MID$(takt$,j%,1)="-" INC j% ! Bgen noch nicht implementiert. ENDIF WEND x%(chan%,c%)=&H7FFFFFFF count%(chan%)=c% RETURN ' PROCEDURE initmc LOCAL a$ cmc$=STRING$(2048,CHR$(0)) vorzeichen$="12345678" BLOAD "MUSIC.IMG",VARPTR(cmc$) CLR lpoke$ RESTORE llpoke READ a$ WHILE LEFT$(a$)<>"*" LET lpoke$=lpoke$+MKI$(VAL("&H"+a$)) READ a$ WEND llpoke: DATA 206F,0006,5848,2A58,2C58,2E18,4285,7C50,046F,0004,0004,6704,2C18 DATA 2A18,3F3C,0002,4E4E,544F,2200,0681,0000,7D00,DBC0,5347,B28D,651E DATA BBC0,651A,241E,4A45,670A,6B04,EBAA,6004,3805,EAAA,8495,2A82,DBC6 DATA 51CF,FFE0,4E75,* RETURN ' PROCEDURE initedit DIM t$(2,80) ! wird normalerweise nur bis 40 gebraucht DIM yedit%(2),triole!(2,80) maxokt%=5 lrand%=14 rrand%=78 abst%=80 abst%=3*(abst% DIV 3) yedit%(0)=120 yedit%(1)=yedit%(0)+abst% yedit%(2)=yedit%(1)+abst% grenz0%=yedit%(0)-35 grenz1%=yedit%(0)+abst%/2+12 grenz2%=grenz1%+abst% grenz3%=grenz2%+abst% RETURN ' PROCEDURE eraeditfeld ERASE t$() DIM t$(2,80) RETURN ' PROCEDURE initmouse LOCAL i%,j% DIM mouse$(25) RESTORE mmousedat FOR i%=0 TO 25 LET mouse$(i%)=MKI$(6)+MKI$(11)+MKI$(1) LET mouse$(i%)=mouse$(i%)+MKI$(0)+MKI$(1) FOR j%=1 TO 16 READ hinten% LET mouse$(i%)=mouse$(i%)+MKI$(hinten%) NEXT j% FOR j%=1 TO 16 READ vorn% LET mouse$(i%)=mouse$(i%)+MKI$(vorn%) NEXT j% NEXT i% ' mmousedat: DATA 240,136,132,146,137,133,145,137,3973,4241,8201,16389,16401,8233,4165,3970 DATA 0,112,120,108,118,122,110,118,122,3950,8182,16378,16366,8134,3970,0 DATA 960,544,528,584,548,532,580,548,15892,16964,32804,23,68,32932,16663,15880 DATA 0,448,480,432,472,488,440,472,488,15800,32728,65512,65467,32539,15880,0 DATA 240,136,132,146,137,133,145,137,3973,4241,8217,16405,16405,8226,4160,3968 DATA 0,112,120,108,118,122,110,118,122,3950,8166,16354,16354,8128,3968,0 DATA 240,136,132,146,137,133,145,137,3973,4241,8217,16413,16403,8242,4172,3968 DATA 0,112,120,108,118,122,110,118,122,3950,8166,16354,16364,8140,3968,0 DATA 240,136,132,146,137,133,145,153,3989,4245,8210,16400,16400,8224,4160,3968 DATA 0,112,120,108,118,122,110,102,98,3938,8160,16352,16352,8128,3968,0 DATA 240,136,132,146,137,133,145,153,3989,4245,8210,16406,16409,8233,4166,3968 DATA 0,112,120,108,118,122,110,102,98,3938,8160,16352,16358,8134,3968,0 DATA 240,136,132,146,153,149,149,149,3986,4240,8208,16400,16384,8224,4160,3968 DATA 0,112,120,108,102,98,98,98,96,3936,8160,16352,16352,8128,3968,0 DATA 240,136,132,146,153,149,149,149,3986,4240,8208,16406,16409,8233,4166,3968 DATA 0,112,120,108,102,98,98,98,96,3936,8160,16352,16358,8134,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4112,8208,16400,16400,8224,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,16352,16352,8128,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4240,8214,16409,16409,8230,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,16358,16358,8128,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4240,8208,20368,20368,8224,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,12384,12384,8128,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4240,8214,20377,20377,8230,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,12390,12390,8128,3968,0 DATA 0,0,0,0,0,0,0,0,3968,4160,8224,20368,20368,8224,4160,3968 DATA 0,0,0,0,0,0,0,0,0,3968,8128,12384,12384,8128,3968,0 DATA 0,0,0,0,0,0,0,0,3968,4160,8230,20377,20377,8230,4160,3968 DATA 0,0,0,0,0,0,0,0,0,3968,8128,12390,12390,8128,3968,0 ' pausen: ' 1/32 pause DATA 1172,2132,2132,1252,1544,2536,4328,4296,2512,3600,5072,8592,8608,5024,3104,832 DATA 776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 ' 1/32 punkt.pause DATA 4688,8528,8528,5015,6184,10152,17320,17191,10048,14400,20288,34368,34432,20096,12416,3328 DATA 3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 ' 1/16 pause DATA 3104,4688,8528,8528,5008,6176,10144,17312,17184,10048,6208,1856,576,640,640,640 DATA 0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 ' 1/16 punkt.pause DATA 9376,17056,17070,10033,12369,20305,34638,34368,20096,12416,3712,1152,1280,1280,1280,1280 DATA 6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 ' 1/8 pause DATA 0,0,0,3104,4688,8528,8592,8992,9888,4512,3872,320,320,576,640,640 DATA 0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 ' 1/8 punkt.pause DATA 0,0,0,6208,9390,17073,17201,18001,19790,9024,7744,640,640,1152,1280,1280 DATA 0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 ' 1/4 pause DATA 6144,5120,2560,1280,640,576,1088,2176,1280,640,832,1056,2240,2304,1280,640 DATA 0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 ' 1/4 punkt.pause DATA 6144,5120,2560,1280,654,593,1105,2193,1294,640,832,1056,2240,2304,1280,640 DATA 0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 ' b-Vorz. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 ' #-Vorz. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 8,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 ' Auflsungszeichen DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 64,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0 ' DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,62,63,3,3,14,14,3,51,63,30 ' RETURN PROCEDURE initplot DIM laenge%(2,64),hhals%(2,64),vorz%(2,64),sep!(2,64),x%(2,64),y%(2,64),count%(2) DIM vorzplot%(2,15),vorz$(3) RESTORE vorz FOR i%=0 TO 3 READ vorz$(i%) NEXT i% vorz: DATA "",b,#, RESTORE vorzplot FOR j%=0 TO 2 FOR i%=0 TO 15 READ vorzplot%(j%,i%) NEXT i% NEXT j% vorzplot: ' b-Vorz. DATA 128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 ' #-Vorz. DATA 8,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 ' Auflsungszeichen DATA 64,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0 ' DIM c%(2),schluessel%(50) RESTORE schluessel FOR i%=0 TO 49 READ schluessel%(i%) NEXT i% RESTORE kopfdat DIM kopf%(1,4) FOR i%=0 TO 1 FOR j%=0 TO 4 READ kopf%(i%,j%) NEXT j% NEXT i% kopfdat: DATA 126,195,129,195,126 DATA 126,255,255,255,126 ' RESTORE ppausendat DIM pausen%(11,15) FOR i%=0 TO 7 FOR j%=0 TO 15 READ temp% LET pausen%(i%,j%)=temp% NEXT j% NEXT i% ppausendat: DATA 776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 DATA 3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 DATA 0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 DATA 6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 DATA 0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 DATA 0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 DATA 0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 DATA 0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 ' RESTORE halsdat DIM hals%(21,6,1) FOR i%=0 TO 3 FOR j%=21 DOWNTO 0 READ temp% hals%(j%,i%,0)=temp% IF j%<=18 hals%(j%+3,i%,1)=temp%*512 ELSE hals%(j%-19,i%,1)=128*512 ENDIF NEXT j% NEXT i% FOR j%=0 TO 15 hals%(j%,4,0)=128 hals%(j%,5,0)=128 hals%(j%,4,1)=128*512 hals%(j%,5,1)=128*512 NEXT j% halsdat: DATA 224,240,184,220,236,246,186,222,238,246,186,222,238,246,186,158,142,134,130,130,132,128 DATA 0,128,192,224,240,184,220,238,246,186,222,238,246,186,158,142,134,130,130,132,128,128 DATA 0,0,0,0,0,128,128,192,224,240,184,220,238,246,186,158,142,134,130,130,132,128 DATA 0,0,0,0,0,0,0,0,128,128,192,224,240,184,156,142,134,130,130,132,128,128 ' RESTORE notenbezeichner DIM noten$(7) FOR i%=0 TO 7 READ noten$(i%) NEXT i% notenbezeichner: DATA C,D,E,F,G,A,H,C RETURN ' PROCEDURE plotnote(laenge%,hals%,sep!,x%,y%,vorz$) ' Erklrung der Parameter: ' laenge% = Notendauer von 0 bis 12 ' hals% = Lnge des Notenhalses ( >0 => nach oben; <0 => nach unten ) ' sep! = Note einzeln setzen (ohne gemeinsame Achtel-balken) ' das Vorzeichen von Hals% gibt an, ob Hals nach oben oder unten. ' x%,y% = Position der Note (y% in Pixelreihen, x% in Byte-spalten.). ' vorz$ = # oder b oder LOCAL i%,bildadr%,temp%,zwi%,shift!,bild% HIDEM bild%=XBIOS(2)+1520 IF x%>=80 ALERT 3,"ERROR in PROCEDUR plotnote !|Nicht ber Bildschirmrand|hinaus plotten!|( x = "+STR$(x%)+" )",1," Stop ",dummy ERROR 100 ENDIF IF ODD(x%) ALERT 3,"ERROR in PROCEDURE plotnote !|Plotten von Note nur an|gerade Bildschirm-Adresse!|( x = "+STR$(x%)+" )",1," Stop ",dummy% ERROR 100 ENDIF temp%=(y%-3)*80+x% IF temp%>32000 OR temp%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( XBIOS(2)+"+STR$(temp%)+" )",1," Stop ",dummy ERROR 100 ENDIF bildadr%=bild%+temp% shift!=(PEEK(bildadr%)<>0) OR (PEEK(bildadr%+320)<>0) IF laenge%<14 kopf%=-(laenge%<10) ! 10 bis 12 => ganze und halbe Noten SUB bildadr%,shift! zwi%=bildadr% IF vorz$<>"" @plotvorz(x%,y%,-(vorz$="#")-2*(vorz$="")) ENDIF FOR i%=0 TO 4 IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF POKE bildadr%,kopf%(kopf%,i%) OR PEEK(bildadr%) ADD bildadr%,80 NEXT i% IF ODD(laenge%) ! => punktierte Note bildadr%=zwi%+1 FOR i%=0 TO 2 ADD bildadr%,80 IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF POKE bildadr%,&X111000 OR PEEK(bildadr%) NEXT i% ENDIF IF laenge%<12 IF laenge%>13 sep!=TRUE ENDIF bildadr%=zwi%+158+shift! IF hals%>0 d%=-80 ELSE d%=80 ENDIF IF sep! LET lpoke%=VARPTR(lpoke$) b%=(bildadr%-bild%)-shift!*2+1520 v%=VARPTR(hals%(0,INT(laenge%/2),-(hals%<0))) CALL lpoke%(b%,v%,21,d%,-8*shift!,0) ELSE IF hals%>0 temp%=&H80 ELSE temp%=&H10000 ENDIF FOR i%=0 TO hals% STEP SGN(hals%) IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF LPOKE bildadr%,temp% OR LPEEK(bildadr%) ADD bildadr%,d% NEXT i% ENDIF ENDIF ELSE FOR i%=0 TO 15 IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF IF NOT shift! DPOKE bildadr%,DPEEK(bildadr%) OR pausen%(laenge%-14,i%) ELSE LPOKE bildadr%,LPEEK(bildadr%) OR 256*pausen%(laenge%-14,i%) ENDIF ADD bildadr%,80 NEXT i% ENDIF RETURN ' PROCEDURE hilfszeilen(y1%,x%,y%) LOCAL i% ADD y%,y1% i%=y1%+30 WHILE i%y%-2 LINE x%*8-2,i%,x%*8+10,i% SUB i%,6 WEND RETURN ' PROCEDURE select_file(a$) LOCAL i%,inp%,newname$ IF INSTR(name$,".")<>0 LET name$=LEFT$(name$,INSTR(name$,"."))+a$ ENDIF FILESELECT pfad$+"*."+a$,name$,newname$ i%=LEN(newname$) IF i% LET name$=newname$ WHILE MID$(name$,i%,1)<>"\" DEC i% WEND pfad$=LEFT$(name$,i%) LET name$=MID$(name$,i%+1) IF INSTR(name$,".")=0 LET name$=name$+"."+a$ ENDIF ENDIF sel!=i%>0 RETURN ' PROCEDURE open_file(voll_name$) @select_file("MUS") IF sel! OPEN "R",#0,pfad$+name$ ENDIF RETURN ' PROCEDURE read_file LOCAL i%,load$,temp%,p%,pa% @select_file("MUS") IF sel! AND EXIST(pfad$+name$) LET load$=STRING$(32760,CHR$(0)) BLOAD pfad$+name$,VARPTR(load$) ERASE takte$() DIM takte$(2,1000) pa%=1 FOR j%=0 TO 1000 FOR i%=0 TO 2 p%=INSTR(load$,"|",pa%) EXIT IF p%=0 takte$(i%,j%)=MID$(load$,pa%,p%-pa%+1) pa%=p%+3 NEXT i% EXIT IF p%=0 NEXT j% filep%=j% maxfilep%=j% CLR edflag! CLR compileflag! @clear_vorz ENDIF RETURN ' PROCEDURE merge_file LOCAL i%,screen$,temp%,k%,temp$,j%,n% ALERT 2,"Das File wird vor dem|aktuellen Takt eingefgt!| ",1," Ok |Abbruch",temp% IF temp%=1 @open_file(pfad$+name$) IF sel! j%=filep% SGET screen$ CLOSEW 0 CLS PRINT "Inserting file: ";pfad$;name$ PRINT PRINT k%=NOT 0 WHILE NOT EOF(#0) IF k% PRINT ENDIF CLR temp% FOR i%=0 TO 2 LINE INPUT #0;takt$(i%) IF k% PRINT takt$(i%) ENDIF ADD temp%,LEN(takt$(i%)) ' NEXT i% IF temp% @insert ENDIF IF MOUSEK k%=NOT k% REPEAT UNTIL MOUSEK=0 ENDIF WEND REPEAT UNTIL MOUSEK OR INKEY$<>"" OR k%=0 CLR compileflag! OPENW 0 SPUT screen$ CLR screen$ CLOSE ENDIF ENDIF RETURN ' PROCEDURE write_part LOCAL i%,screen$,inp$ SGET screen$ PRINT AT(1,4);"Abspeichern von aktuellem Takt bis einschlielich (maximal "; PRINT maxfilep%-1;") "; INPUT inp$ IF inp$<>"" AND VAL(inp$)>=filep% CLR name$ @write_file(filep%,MIN(maxfilep%-1,VAL(inp$))) ENDIF SPUT screen$ CLR screen$ RETURN ' PROCEDURE write_file(von%,bis%) LOCAL i%,j% @select_file("MUS") IF sel! IF EXIST(pfad$+name$) KILL pfad$+name$ ENDIF OPEN "R",#0,pfad$+name$ FOR j%=von% TO bis% FOR i%=0 TO 2 PRINT AT(1,3);"Writing Takt ";j%,, PRINT #0;takte$(i%,j%) NEXT i% NEXT j% CLOSE ENDIF RETURN ' PROCEDURE initcomp transpose=1 tempo=1 gap%=2 DIM nd%(2),compt$(2),vorzeichen$(7) DIM nnote%(23) RESTORE periodendauer FOR i%=0 TO 23 READ nnote%(i%) NEXT i% periodendauer: ' ' Diese Periodenlngen entsprechen den Kehrwerten der Frequenzen, die in ' SPECTRUM DER WISSENSCHAFT 7/1987 Seite 8 abgedruckt sind. ' Sie sind auf Kammerton a = 440.0 Hz getrimmt. ' DATA 2273,2025,3823,3405,3034,2864,2551,2025 ' A H C D E F G H DATA 2145,1911,3608,3214,2864,2703,2408,1911 ' #A #H #C #D #E #F #G #H DATA 2419,2145,4049,3608,3214,3034,2703,2145 ' bA bH bC bD bE bF bG bH ' ' Diese Periodenlngen sind selbst errechnet, so da das Produkt einer Note ' mit einem bestimmten Faktor die nchste Note ergibt, wobei sich nach zwlf ' Iterationen genau die halbe Periodendauer ergibt. ' Der Faktor ist 2^(1/12). Nach demselben Algorithmus wurden auch die ' Frequenzen in SPEKTRUM DER WISSENSCHAFT berechnet. ' Kammerton a = 438.0 Hz. ' ' DATA 2283,2034,3840,3421,3048,2877,2563,2034 ' A H C D E F G H ' DATA 2155,1920,3624,3229,2877,2715,2419,1920 ' #A #H #C #D #E #F #G #H ' DATA 2419,2155,4068,3624,3229,3048,2715,2155 ' bA bH bC bD bE bF bG bH ' ' RETURN ' PROCEDURE set_glob_vorz LOCAL i% @clear_vorz CLR i% REPEAT IF vorzeichen$(ASC(takt$(0))-97)="" vorzeichen$(ASC(takt$(0))-97)=MID$(takt$(0),2,1) t$(0,i%)=LEFT$(takt$(0),2) ENDIF takt$(0)=MID$(takt$(0),3) INC i% UNTIL LEFT$(takt$(0))<"a" OR LEFT$(takt$(0))>"h" vorzeichen$(1)=vorzeichen$(7) CLR vorzeichen$ FOR i%=0 TO 7 IF vorzeichen$(i%)<>"" vorzeichen$=vorzeichen$+vorzeichen$(i%) ELSE vorzeichen$=vorzeichen$+" " ENDIF NEXT i% IF INSTR(vorzeichen$,"") vorzeichen$="01234567" ENDIF RETURN ' PROCEDURE clear_vorz LOCAL i% FOR i%=0 TO 7 vorzeichen$(i%)="" NEXT i% vorzeichen$="01234567" RETURN ' PROCEDURE comptakt(rueck%) LOCAL compilat$,i%,j%,n%,temp$ LOCAL meld%,len% compilat$=STRING$(1025,CHR$(0)) compt$(0)=takt$(0) compt$(1)=takt$(1) compt$(2)=takt$(2) IF LEFT$(takt$(0))>="a" AND LEFT$(takt$(0))<="h" AND LEFT$(takt$(0))<>"b" @set_glob_vorz ENDIF SWAP compt$(0),takt$(0) IF (INSTR(compt$(0),"|")>0) AND (INSTR(compt$(1),"|")>0) AND (INSTR(compt$(2),"|")>0) VOID FRE(8) len%=256 meld%=0 cmc%=VARPTR(cmc$) CALL cmc%(compt$(0),compt$(1),compt$(2),VARPTR(volume%(0)),vorzeichen$,VARPTR(nnote%(0)),transpose*256,gap%,tempo*256,compilat$,VARPTR(len%),VARPTR(nd%(0)),VARPTR(meld%),0) compileerror!=meld% IF meld%=1 err$="chan0: "+STR$(nd%(0))+"|chan1: "+STR$(nd%(1))+"|chan2: "+STR$(nd%(2)) ALERT 3,"Fehler bei der Taktlnge !|"+err$,1," OK ",temp% ENDIF IF meld%=2 ALERT 3,"Fehler bei der Tonhhe:|"+takt$(0)+takt$(1)+takt$(2),1," OK ",temp% ENDIF *rueck%=LEFT$(compilat$,len%) ELSE *rueck%="" ENDIF RETURN ' PROCEDURE initmenu DIM grundmenue$(70) RESTORE grundmenue FOR i%=0 TO 70 READ grundmenue$(i%) IF grundmenue$(i%)="***Key klick" IF PEEK(&H484) AND 1 ! Key-klick ist an. grundmenue$(i%)="Key klick off" ELSE grundmenue$(i%)="Key klick on" ENDIF ENDIF EXIT IF grundmenue$(i%)="***" IF LEFT$(grundmenue$(i%))<>"-" AND grundmenue$(i%)<>"" grundmenue$(i%)=" "+grundmenue$(i%) ENDIF NEXT i% grundmenue$(i%)="" grundmenue$(i%+1)="" grundmenue: DATA Desk ,Music Writer DATA ----------------------,1,2,3,4,5,6,"" DATA File ,Clear,Write,Write Part,--------------- DATA Read,Merge,---------------,Quit,---------------,Delete File,"" DATA Edit ,Next,Preceeding,--------------------,Goto nr. DATA Goto first,Goto last,--------------------,Skip Edits,Clear Takt DATA "" DATA Put ,Put into Buffer,Get from Buffer,------------------- DATA Replace,Insert,-------------------,Skip Edits,Delete aktual,"" DATA Actions ,Compile Takt,Play Takt,-------------------- DATA Compile all,Play all,Play from actual DATA --------------------,Double Speed,Half Speed,-------------------- DATA Save Sound,Read Sound,"" DATA Specials ,***Key klick,Noten eng DATA -----------------,Volume,Transpose,Tempo,Gap,"" DATA *** RETURN ' PROCEDURE grundmenue LOCAL m$,i%,inp%,temp$,temp2$ m$=UPPER$(grundmenue$(MENU(0))) REPEAT i%=INSTR(m$," ") IF i% m$=LEFT$(m$,i%-1)+MID$(m$,i%+1) ENDIF UNTIL i%=0 no_menue!=FALSE neu!=TRUE IF m$="MUSICWRITER" @anleitung ENDIF IF m$="CLEAR" ALERT 2," | Wirklich alles lschen? | ",1," Ja | nein ",inp% IF inp%=1 ALERT 2," | Ganz hundertprozent sicher ? | ",1,"doch, ja|ach nein",inp% IF inp%=1 RUN ENDIF ENDIF ENDIF IF m$="WRITE" @ask @write_file(0,maxfilep%) ENDIF IF m$="WRITEPART" @ask @write_part ENDIF IF m$="READ" @read_file @find_akt_vorz ENDIF IF m$="MERGE" @ask @merge_file @find_akt_vorz ENDIF IF m$="QUIT" ALERT 2,"Haben sie alles gesichert?",2," Ende | Weiter ",inp% IF inp%=1 MENU KILL END ENDIF ENDIF IF m$="DELETEFILE" temp$=name$ temp2$=pfad$ LET name$="" @select_file("*") IF sel! AND name$<>".*" ALERT 3,"Soll ich |"+UPPER$(name$)+"|wirklich lschen?| ",2," Ja | nein ",inp% IF inp%=1 AND EXIST(pfad$+name$) KILL pfad$+name$ ENDIF ENDIF LET name$=temp$ pfad$=temp2$ ENDIF IF m$="NEXT" @ask filep%=filep%-(filep%0) @find_akt_vorz ENDIF IF m$="GOTONR." @ask REPEAT PRINT AT(1,4);"Bitte Taktnummer eingeben (0 bis ";maxfilep%;") : "; INPUT temp$ IF LEN(temp$) filep%=VAL(temp$) ENDIF UNTIL filep%>=0 AND filep%<=maxfilep% PRINT AT(1,4);SPACE$(80) @find_akt_vorz ENDIF IF m$="GOTOFIRST" @ask @clear_vorz CLR filep% ENDIF IF m$="GOTOLAST" @ask filep%=maxfilep% @find_akt_vorz ENDIF IF m$="CLEARTAKT" @eraeditfeld @put_t_to_taktfeld edflag!=TRUE CLR neu! ENDIF IF m$="DELETEAKTUAL" ALERT 2," | Wirklich ? | | ",0,"na klar!|ne,ne !",delinp% IF delinp%=1 @delete @find_akt_vorz ELSE neu!=FALSE ENDIF ENDIF IF m$="COMPILEALL" @ask @compile_all(0) ENDIF IF m$="PLAYALL" @ask @play_all(0) ENDIF IF m$="PLAYFROMACTUAL" @ask CLR compileflag! @play_all(filep%) ENDIF IF m$="DOUBLESPEED" @change_speed(-1) ENDIF IF m$="HALFSPEED" @change_speed(1) ENDIF IF m$="READSOUND" neu!=FALSE @read_sound ENDIF IF m$="SAVESOUND" neu!=FALSE @save_sound ENDIF IF m$="PUTINTOBUFFER" neu!=FALSE @put_to_buf ENDIF IF m$="GETFROMBUFFER" @get_from_buf ENDIF IF m$="INSERT" @put_t_to_taktfeld @insert ENDIF IF m$="REPLACE" @put_t_to_taktfeld @replace ENDIF IF m$="SKIPEDITS" @skip CLR edflag! ENDIF IF m$="COMPILETAKT" @put_t_to_taktfeld @comptakt(*taktsound$) neu!=FALSE ENDIF IF m$="PLAYTAKT" @put_t_to_taktfeld @play_takt ENDIF IF m$="VOLUME" @volume neu!=FALSE CLR compileflag! ENDIF IF m$="KEYKLICKON" grundmenue$(MENU(0))=" Keyklick off " MENU grundmenue$() ' klick on SPOKE &H484,PEEK(&H484) OR 5 neu!=FALSE @disable ENDIF IF m$="KEYKLICKOFF" grundmenue$(MENU(0))=" Keyklick on " MENU grundmenue$() SPOKE &H484,PEEK(&H484) AND NOT 5 neu!=FALSE @disable ENDIF IF m$="NOTENENG" grundmenue$(MENU(0))=" Noten weit " @put_t_to_taktfeld MENU grundmenue$() neu!=FALSE dist%=2 ENDIF IF m$="NOTENWEIT" grundmenue$(MENU(0))=" Noten eng " @put_t_to_taktfeld MENU grundmenue$() neu!=FALSE dist%=4 ENDIF IF m$="TRANSPOSE" neu!=FALSE @transpose ENDIF IF m$="TEMPO" neu!=FALSE @tempo ENDIF IF m$="GAP" neu!=FALSE @gap ENDIF MENU OFF RETURN ' PROCEDURE play_takt @comptakt(*taktsound$) LET temp$=CHR$(7)+CHR$(56) FOR i%=0 TO 2 temp$=temp$+CHR$(i%+8)+CHR$(volume%(i%)) NEXT i% LET taktsound$=temp$+taktsound$+CHR$(255)+CHR$(0) VOID XBIOS(32,L:VARPTR(taktsound$)) neu!=FALSE RETURN ' PROCEDURE transpose LOCAL screen$,inp%,inp$,h%,sound$,okt%,step,i%,temp$,temp% ALERT 2," |Explizite Eingabe oder Tunen?| ",1,"Explizit|Tuning|Abbruch",inp% SGET screen$ IF inp%=1 PBOX 8,0,631,60 BOX 8,0,631,60 PRINT AT(3,1);"1000 ist normal."'' PRINT "2000 ist eine Oktave tiefer ; 500 ist eine Oktave hher" PRINT AT(3,3);"Bitte Transpose eingeben! ";transpose*1000'' INPUT temp$ IF LEN(temp$) transpose=VAL(temp$)/1000 ENDIF ENDIF IF inp%=2 temp%=volume%(0) volume%(0)=13 PBOX 8,0,631,200 BOX 8,0,631,200 REPEAT REPEAT PRINT AT(3,1);"Auf welchen Ton? (zB: C oder #C)"''' INPUT inp$ UNTIL LEN(inp$)<=2 inp$=UPPER$(inp$) IF RIGHT$(inp$)="B" inp$="#H" ENDIF FOR h%=0 TO 7 EXIT IF RIGHT$(inp$)=noten$(h%) NEXT h% UNTIL h%<7 OR inp$="" IF h%<7 AND inp$<>"" SWAP tsave$(),takt$() takt$(2)="PP3|" takt$(1)=takt$(2) PRINT AT(3,2);"Oktave (zB: 3)"''' INPUT temp$ okt%=VAL(temp$) takt$(0)=inp$+STR$(okt%)+"3|" step=0.001 PRINT AT(3,4);"Drcken der linken Maustaste erhht den Ton." PRINT AT(3,5);" "" rechten "" erniedrigt """ PRINT AT(3,6);"Mit der + bzw - Taste kann die Schrittweite verndert werden." PRINT AT(3,7);"Zurck mit < ENTER >" HIDEM REPEAT ADD transpose,step*((MOUSEK=1)-(MOUSEK=2)) transpose=MIN(8.574,MAX(0,transpose)) PRINT AT(16,10);"Transpose: ";1000*MIN(0.001,step)*INT(transpose/MIN(0.001,step));" " PRINT AT(16,11);"Schrittweite: ";step*1000''' @play_takt i$=INKEY$ IF i$="+" step=MIN(1,step*10) ENDIF IF i$="-" step=MAX(1.0E-06,step/10) ENDIF UNTIL i$=CHR$(13) SWAP takt$(),tsave$() ENDIF SHOWM volume%(0)=temp% ENDIF SPUT screen$ CLR screen$ CLR compileflag! RETURN ' PROCEDURE tempo LOCAL screen$,temp$ SGET screen$ PBOX 8,0,631,60 BOX 8,0,631,60 PRINT AT(3,1);"1000 ist normal; "; PRINT "> 1000: langsamer / < 1000: schneller" PRINT AT(10,2);"{ Mglichst 'glatte' Werte whlen! ( zB: 750 ) }" PRINT AT(3,3);"Bitte Tempo eingeben! ";tempo*1000'' INPUT temp$ IF LEN(temp$) tempo=VAL(temp$)/1000 ENDIF SPUT screen$ CLR screen$ CLR compileflag! RETURN ' PROCEDURE gap LOCAL inp% REPEAT ALERT 0,"Gap bedeutet die Lcke|zwischen unverbundenen Tnen.|Momentan haben wir: "+STR$(gap%),0," lnger | OK | krzer ",inp% ADD gap%,(inp%=3)-(inp%=1) UNTIL inp%=2 CLR compileflag! RETURN ' PROCEDURE skip @eraeditfeld RETURN ' PROCEDURE ask LOCAL inp% IF edflag! PRINT CHR$(7); WHILE MOUSEK WEND ALERT 2," Was machen wir mit dem | aktuellen Takt ?| ",1,"Replace|Insert|Skip",inp% IF inp%<>3 @put_t_to_taktfeld ENDIF ON inp% GOSUB replace,insert,skip ENDIF CLR edflag! RETURN ' PROCEDURE insert LOCAL i%,j% j%=filep% WHILE LEN(takt$(1)+takt$(2)+takt$(0))<>0 FOR i%=0 TO 2 SWAP takt$(i%),takte$(i%,j%) NEXT i% INC j% WEND INC filep% INC maxfilep% CLR compileflag!,edflag! RETURN ' PROCEDURE replace LOCAL i% FOR i%=0 TO 2 takte$(i%,filep%)=takt$(i%) NEXT i% SUB maxfilep%,maxfilep%=filep% CLR compileflag!,edflag! RETURN ' PROCEDURE volume LOCAL i%,screen$,inp$ SGET screen$ PBOX 8,0,631,60 BOX 8,0,631,60 FOR i%=0 TO 2 REPEAT PRINT AT(3,1+i%);"Lautstrke von Stimme ";i%;" : ";STR$(volume%(i%));" ? "; FORM INPUT 2,inp$ IF inp$<>"" volume%(i%)=VAL(inp$) ENDIF UNTIL volume%(i%)>=0 AND volume%(i%)<=15 NEXT i% SPUT screen$ CLR screen$ RETURN ' PROCEDURE compile_all(j%) LOCAL i%,tt$,inp%,p% CLR inp% IF j%=0 @clear_vorz ENDIF LET sound$=CHR$(7)+CHR$(56) FOR i%=0 TO 2 LET sound$=sound$+CHR$(i%+8)+CHR$(volume%(i%)) NEXT i% p%=LEN(sound$)+1 LET sound$=sound$+STRING$(32760-LEN(sound$),CHR$(0)) compileflag!=TRUE WHILE takte$(0,j%)<>"" AND takte$(1,j%)<>"" AND takte$(2,j%)<>"" PRINT AT(1,3);"Compiling Takt ";j% takt$(0)=takte$(0,j%) takt$(1)=takte$(1,j%) takt$(2)=takte$(2,j%) @comptakt(*tt$) IF compileerror! ALERT 2,"Weiter machen?",2," ja | Edit ",inp% IF inp%=2 CLR compileflag! filep%=j% ENDIF ENDIF EXIT IF inp%=2 MID$(sound$,p%)=tt$ ADD p%,LEN(tt$) INC j% WEND @find_akt_vorz PRINT AT(1,3),,, MID$(sound$,p%)=CHR$(255)+CHR$(0) LET sound$=LEFT$(sound$,p%+1) RETURN ' PROCEDURE play_all(start%) IF NOT compileflag! @compile_all(start%) ENDIF VOID FRE(0) VOID XBIOS(32,L:VARPTR(sound$)) RETURN ' PROCEDURE read_sound LOCAL lof% @select_file("SON") IF sel! IF EXIST(pfad$+name$) OPEN "R",#69,pfad$+name$ lof%=LOF(#69) CLOSE #69 IF lof%>0 LET sound$=STRING$(lof%,CHR$(0)) BLOAD pfad$+name$,VARPTR(sound$) compileflag!=TRUE ELSE ALERT 3,"Dateilnge ist NULL",1," OK ",dummy ENDIF ELSE ALERT 3,"Es existiert keine Datei mit|Namen:|"+name$,1," OK ",dummy ENDIF ENDIF RETURN ' PROCEDURE save_sound IF NOT compileflag! @compile_all(0) ENDIF @select_file("SON") IF sel! BSAVE pfad$+name$,VARPTR(sound$),LEN(sound$) ENDIF RETURN ' PROCEDURE delete LOCAL inp%,i%,j% ALERT 2," Haben sie sich das grndlich | berlegt ? | ",2,"freilich|nicht so",inp% IF inp%=1 j%=filep% REPEAT FOR i%=0 TO 2 takte$(i%,j%)=takte$(i%,j%+1) NEXT i% INC j% UNTIL takte$(0,j%)="" OR takte$(1,j%)="" OR takte$(2,j%)="" DEC maxfilep% CLR compileflag! ENDIF RETURN ' PROCEDURE fehler LOCAL inp%,i%,j% IF ERR=-33 fileerror!=TRUE ON ERROR GOSUB fehler RESUME NEXT ELSE ALERT 1," Katastrophaler Fehler! | | Retten, was zu retten ist ?| ",0," Jaaa.. |Weg mit!",inp% IF inp%=1 CLR name$ GOSUB write_file(0,maxfilep%) ENDIF ALERT 2," | | Was nun ? | ",0,"Abbruch|Neustart",inp% IF inp%=2 RUN ELSE RESUME ENDIF ENDIF RETURN ' PROCEDURE put_to_buf LOCAL i% @put_t_to_taktfeld FOR i%=0 TO 2 taktbuf$(i%)=takt$(i%) NEXT i% RETURN ' PROCEDURE get_from_buf LOCAL i% FOR i%=0 TO 2 takt$(i%)=taktbuf$(i%) NEXT i% @eraeditfeld CLR neu! edflag!=TRUE RETURN ' PROCEDURE change_speed(s%) LOCAL i%,j% @put_t_to_taktfeld FOR i%=0 TO 2 FOR j%=3 TO LEN(takt$(i%)) IF VAL(MID$(takt$(i%),j%)) IF VAL(MID$(takt$(i%),j%-1))<>0 OR MID$(takt$(i%),j%-1,1)="P" MID$(takt$(i%),j%)=CHR$(ASC(MID$(takt$(i%),j%))+s%) ENDIF ENDIF NEXT j% takte$(i%,filep%)=takt$(i%) NEXT i% edflag!=FALSE RETURN ' PROCEDURE find_akt_vorz LOCAL i%,temp$ FOR i%=filep% DOWNTO 0 temp$=LEFT$(takte$(0,i%)) EXIT IF temp$>="a" AND temp$<="h" AND temp$<>"b" NEXT i% IF i%>=0 temp$=takt$(0) takt$(0)=takte$(0,i%) @set_glob_vorz takt$(0)=temp$ PRINT AT(50,3);"Vorzeichen in Taktnr. ";i%;" " ENDIF RETURN ' PROCEDURE anleitung LOCAL screen$,d$,lc%,inp$,fileerror! fileerror!=FALSE OPEN "I",#68,"MUSIC.DOC" IF fileerror! ALERT 3,"Das file 'MUSIC.DOC' mu sich|im selben Ordner befinden,|von dem aus das Programm|gestartet wurde!",1,"Abbruch",dummy ELSE SGET screen$ CLOSEW 0 CLS WHILE NOT EOF(#68) LINE INPUT #68,d$ INC lc% IF lc%>22 PRINT "-MEHR-";CHR$(27);"p ";CHR$(27);"q";CHR$(13); REPEAT inp$=INKEY$ UNTIL inp$<>"" lc%=-22*inp$<>" " ENDIF PRINT SPACE$(20);CHR$(13);d$ EXIT IF inp$=CHR$(3) WEND IF inp$<>CHR$(3) REPEAT UNTIL INKEY$<>"" ENDIF OPENW 0 SPUT screen$ CLOSE #68 CLR screen$ ENDIF RETURN ' PROCEDURE break RETURN ' PROCEDURE disable LOCAL i% FOR i%=0 TO 5 MENU i%+3,2 NEXT i% RETURN .  t..  tMUSIC BASt MUSIC LSTt GfABASIC<<^BE|||}}}~~~~~DUMMY TRANSPOSETEMPOSTEPPFADNOTLAENGEOKTAVEPUNKTVORZINPTTEMPTEMP2TSAVELPOKETAKTACMC VORZEICHENNEWNAMENAME VOLL_NAMELOADSCREENCOMPILATERRM TAKTSOUNDSOUNDITTDFILEMAXY1OKTY0X0DISTIJXYKLAENGEHOEHEHALSFILEPABSTLRAND Y0HILFSALTMAXFILEPCHANGRENZ1GRENZ2GRENZ0GRENZ3MAXOKTXTEMP XHILFSALT YHILFSALT STEPHILFSALTXMINVHBILDADRZLPOKECTEMPRRANDHINTENVORNZWIBILDDUMMYKOPFDBINPPPANVONBISGAPRUECKMELDLENCMCDELINPSTARTLOFSLCNEUNO_MENUEEDFLAGREPLACESEPSHIFTSEL COMPILEFLAG COMPILEERROR FILEERRORTAKTTAKTETAKTBUFTSAVE GRUNDMENUEMOUSETNOTENVORZ VORZEICHENCOMPTVOLUMEYEDITINDEXCCOUNTXVORZLAENGEHHALSYVORZPLOT SCHLUESSELKOPFPAUSENHALSNDNNOTETRIOLESEP SCHLUESSELLLPOKE MMOUSEDATVORZVORZPLOTKOPFDAT PPAUSENDATHALSDATNOTENBEZEICHNER PERIODENDAUER GRUNDMENUEBREAKINITALLFEHLEREDIT INITERRORINITMENUINITMC INITMOUSEINITPLOTINITEDITINITCOMP GRUNDMENUEHEADLINEPLOTTAKTDRAWLINE SCHLUESSEL TAKTSTRICH EDITHILFS ERAEDITFELDASKPUT_T_TO_TAKTFELDINSERT FIND_AKT_VORZPLOTNOTE CLEAR_VORZ ANLEITUNGPLOTVORZ SET_GLOB_VORZ PUT_GLOB_VORZGETTAKTRESTORE_T_STRING PLOTTRIOLE HILFSZEILEN SELECT_FILE OPEN_FILE READ_FILE MERGE_FILE WRITE_PART WRITE_FILECOMPTAKTDELETE COMPILE_ALLPLAY_ALL CHANGE_SPEED READ_SOUND SAVE_SOUND PUT_TO_BUF GET_FROM_BUFREPLACESKIP PLAY_TAKTVOLUME TRANSPOSETEMPOGAPDISABLEP Version vom 09.09.87 17:30 vLF iF^F,FFvLF ,FF +FFvLF Ezz F * !@ ! ! ! FJ !00FE \STUECKE.MUS\F *.MUS FE\F FEEppF* Zeilenabstand (EF* Verschiebt oktavenweise EppF* oberste Zeile EF* linker Rand BEF* Abstand zwischen Noten in Bytes (gerade Anzahl!) .,F,F,F,F, F, F.F  +F |Fbx)!bDas file 'MUSIC.IMG' mu sich|im selben Ordner befinden,|von dem aus das Programm|gestartet wurde!!!Abbruch!F F!F!.F! !+FD$h!!! ! ! ! ! !!!FOhF FvL F EF!EGF E@ F FY! "Taktnr. "!!F, F  L6   F!M  ! F F~EGF M  F M F ZF M! ! F FjF} F(!!!PF$\!4!!=FO$/f!;!x!ZurckF$!4!>!=FF$/!;!x!WeiterF(!!!PFM7F F "! ! FEF Ä HF6,# 0 88 ! ! FejF}FEFFE "! ! FF& H F} F |F hFMFLEGF E@ F 2FY! "Taktnr. "!!F FM  ! F F  "F< IJ 4\\>> FZurck/Weiter ejF F4 FMF FMFFMFF FjFF F BFZurck Ev! FMF! TF Weiter Eu! F FEY! "Taktnr. "!!FMF ĚEGFn E@ F ĀFM  ! F F*  X@@P F  @ FB` "F E @F} F F FE#  #  F ń F@,# 0 88 !uv ! ! !  F F ʾ  F ȸFjFjF Ƣ 0 HHF0!F,E@  F schlechter Stil ... j!!FEbF H 8FE#F FE f @FEF FE Ƅ HFE@F FE@  EFh ǒF : `F0 !F( E#   F hchstes C E`# ` Ft EA# `` #C FEA#  F nF EPFEPF E FEA#   F FEj!F ǎ FE.F FE FEEFE@  F  F"@  EF. F@  EF F *FMFM  ! F ȢF Ȟ F \  @F EF hF  EF FEFE*M ! !!#  !# ! FF F FF ȦRF ʺF ʶ 0 @@F  F1 !FFF@ ʲ  @  p Fs E#  # 0 F&EBB#@# ` F ɒbFEhF FEEF ɸ 8FE#F FE  0FEbF FEMFb ; @ cF E> @ Fc F E F r F(h: a: h: bF E> @ F:(FMFF F ʘ F Ec F FM  ! FEF FE FE FE FE FEESF  F jFMFM  ! F F < BDD FMF< F F F^FMFF}F.FF F+! ! Fh!FE܀F   F!F ˾ F˺EGHF!! !F ˘F FEFE FjFF P FF".E@G H@Fb!! !F  FE@FE@F FE  `FF"̪EpG H@@Fb!! !F ̈FE@@FEpF FE!F FF.FF F+Fh!!! FEGFEFEBEG FE@ F@ EF F EF"z?@ @ a?@ @ hF0 !FHFF,E@#@@ @b@@ @@@ F F#!! E@?@@ F F ~FΚE G6 FE?@@ F ΐ#bF E?@@ F b # b FE;@ >@ F FE Ό PFE;@ >@ F FE FE F* < b< #< < @F* ?@6 @ h?@6 @ aFE;@6  F FE FE E|F F.F + Fh F%FFF!! !F!X! !XF EG(F Ϭ `F E@@F ϾF EF FEM !!! ! ! F τ F4 F EF M ! ! FM ! ! FM ! ! FF(!!!@F"'# @@ ! !3F(!!!PFEFEG F0!! !P!F!!!PF!!F0!@F ЈFF.F + ! Fh!!!! F* F E FJ !FJ !F%FFF ! ! !F( : a: h: bFMF:0YH! "Vorzeichen in Taktnr. "" F FMFM! ! Fh N6   FnFEGFM FM F F jFEGFFM F Notenzeile M Fo>M! Fo belegt Felder fr Tonkanal i% (s. gettakt)  \FEF0!FDOrdnet Noten der drei Kanle passend nach Dauer untereinander an s$V      F$Eu@ !@ !@ FFEGF! E F <@ FM! FE@ F E @ F M! F F:M@ !@ !@ !! @ ! FdM !! @ F4 F F |F0!F&FFM!! F F E FF FF.F  +! F(!!!@F&'! @ !3F (!!!PF.F +Fh!F"՞E GhHF3E `F Ք  FՐEGFF Epp F0M ! !#  #    F >F F F.F +! ! Fh ! F0 E #    F. EGpF !2  @ F0 ! F  F.F +! Fh!FE? @ @ F 0 !FE? @ @ F:@|b##AP Fd EF4 FE? @ @ F|F X FF>)! Zeile zu lang! !! Stop | Cont !F PF HF  F jF@ EFl F.F +!! F :!!!@F| Taktstrich 0!!!@Fi.F  +! FhF!F "Ez F6|"#!@  !z !HH! FF".F"|F$30720,63488,116736,231424,198656 z&395264,395264,264192,268288,268288 &274432,290816,319488,376832,491520 (458752,917504,1835008,3932160,7602176 214942208,29622272,58982400,119521280,239067136 4209711104,417609728,281286656,277089280,277089280 4277087232,277087232,277087232,272892928,136579072 ,67373056,33820672,25452544,8355840,262144 (262144,262144,262144,262144,29622272 2065273856,65273856,46399488,50855936,32505856 9 5+ F6 Notenzeile 9hFvEGFe*!@! !@@F BF.F +! F*bergibt Ergebnisse fr einen Takt in: F2laenge%(chan%,count%) : Tonlnge von 0 bis 12 7@hhals%( " ) : Richtung bzw. Lnge des Notenhalses d<vorz%( " ) : +1 = # ; -1 = b | 1=b 2=# 3= s&sep!( " ) : Einzelnote ,x% ( " ) : Spalte in Bytes 0y% ( " ) : Pixelreihe ohne y0%! h! ! ! !!#! !!$Foj!#FEFt6 Fj F @# EF@# E? @@ @F b@# F 4F F ܐ? @@ bF @# EF4F F# ܾ? @@ #F @# EF4F F# ? @@ F @# EF4F F F F ? @@ @F @# EF4F F p? @@ PF EF0!F$ E#7> @ @  Fh \F7ݦ EG`F ݦZ? @@  F ݄ F@  `F<)!Schlechter Takt!|Pointer: A | !! Stop !F qF! F!4FS4 E # (#7> @ @ F4F  E#7> @ @ F FE$E #7> @ @ F4F# ޮ? @@ .F4 F?4F?2$!@F F$ EF  @FF E F FE@# E FF@# E FF @# EF@# EFF @# E FF0!$F4#F$ l? @@ -F(4F? Bgen noch nicht implementiert.  FF @# EFc  E#F.F +FEh FEE !B FE12345678F  MUSIC.IMG!z Fcj FSRFSQ FS : *F E b5&H FQ F F|FFD206F,0006,5848,2A58,2C58,2E18,4285,7C50,046F,0004,0004,6704,2C18 dD2A18,3F3C,0002,4E4E,544F,2200,0681,0000,7D00,DBC0,5347,B28D,651E dDBBC0,651A,241E,4A45,670A,6B04,EBAA,6004,3805,EAAA,8495,2A82,DBC6 d51CF,FFE0,4E75,* 4.F1 1+ F,:*@  F wird normalerweise nur bis 40 gebraucht * !@  FE FE``F%EFE FE# F EppF E F E FE  FFE @@Fr EF EF.FE E+FF F*@  F.F +Fh!F*HH FRFH$EGHF  Eb@ b0 b F E b b FEGFFQ&F E b& F FEGF Q'F E b' F F tF |FL240,136,132,146,137,133,145,137,3973,4241,8201,16389,16401,8233,4165,3970 F0,112,120,108,118,122,110,118,122,3950,8182,16378,16366,8134,3970,0 L960,544,528,584,548,532,580,548,15892,16964,32804,23,68,32932,16663,15880 J0,448,480,432,472,488,440,472,488,15800,32728,65512,65467,32539,15880,0 L240,136,132,146,137,133,145,137,3973,4241,8217,16405,16405,8226,4160,3968 F0,112,120,108,118,122,110,118,122,3950,8166,16354,16354,8128,3968,0 L240,136,132,146,137,133,145,137,3973,4241,8217,16413,16403,8242,4172,3968 F0,112,120,108,118,122,110,118,122,3950,8166,16354,16364,8140,3968,0 L240,136,132,146,137,133,145,153,3989,4245,8210,16400,16400,8224,4160,3968 F0,112,120,108,118,122,110,102,98,3938,8160,16352,16352,8128,3968,0 0L240,136,132,146,137,133,145,153,3989,4245,8210,16406,16409,8233,4166,3968 F0,112,120,108,118,122,110,102,98,3938,8160,16352,16358,8134,3968,0 6L240,136,132,146,153,149,149,149,3986,4240,8208,16400,16384,8224,4160,3968 B0,112,120,108,102,98,98,98,96,3936,8160,16352,16352,8128,3968,0 L240,136,132,146,153,149,149,149,3986,4240,8208,16406,16409,8233,4166,3968 B0,112,120,108,102,98,98,98,96,3936,8160,16352,16358,8134,3968,0 L240,144,144,144,144,144,144,144,3984,4112,8208,16400,16400,8224,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,16352,16352,8128,3968,0 L240,144,144,144,144,144,144,144,3984,4240,8214,16409,16409,8230,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,16358,16358,8128,3968,0 L240,144,144,144,144,144,144,144,3984,4240,8208,20368,20368,8224,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,12384,12384,8128,3968,0 L240,144,144,144,144,144,144,144,3984,4240,8214,20377,20377,8230,4160,3968 >0,96,96,96,96,96,96,96,96,3936,8160,12390,12390,8128,3968,0 <0,0,0,0,0,0,0,0,3968,4160,8224,20368,20368,8224,4160,3968 60,0,0,0,0,0,0,0,0,3968,8128,12384,12384,8128,3968,0 <0,0,0,0,0,0,0,0,3968,4160,8230,20377,20377,8230,4160,3968 60,0,0,0,0,0,0,0,0,3968,8128,12390,12390,8128,3968,0 pausen: 1/32 pause ,R1172,2132,2132,1252,1544,2536,4328,4296,2512,3600,5072,8592,8608,5024,3104,832 oL776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 1/32 punkt.pause ,\4688,8528,8528,5015,6184,10152,17320,17191,10048,14400,20288,34368,34432,20096,12416,3328 X3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 31/16 pause 7R3104,4688,8528,8528,5008,6176,10144,17312,17184,10048,6208,1856,576,640,640,640 L0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 1/16 punkt.pause 3\9376,17056,17070,10033,12369,20305,34638,34368,20096,12416,3712,1152,1280,1280,1280,1280 R6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 1/8 pause D0,0,0,3104,4688,8528,8592,8992,9888,4512,3872,320,320,576,640,640 @0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 1/8 punkt.pause L0,0,0,6208,9390,17073,17201,18001,19790,9024,7744,640,640,1152,1280,1280 1D0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 1/4 pause N6144,5120,2560,1280,640,576,1088,2176,1280,640,832,1056,2240,2304,1280,640 ,F0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 21/4 punkt.pause N6144,5120,2560,1280,654,593,1105,2193,1294,640,832,1056,2240,2304,1280,640 ,F0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 2 b-Vorz. "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 #-Vorz. "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 48,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 Auflsungszeichen "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 264,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0  4"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 *0,0,0,0,0,0,62,63,3,3,14,14,3,51,63,30 , ,.F,+F0\*@ !@ !@ !@ !@ ! @ ! Fa* @pp ! FRFREGF Q F @FG|F "",b,#, RF,EGF EGpF Q @ F FF xFF|F b-Vorz. >128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 #-Vorz. 48,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 Auflsungszeichen 264,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0  4* ! H FRF!EGDF,Q  F FGRF* @ FEGF EGF, Q @ F FF FF|F126,195,129,195,126 126,255,255,255,126  2RF2* 00@p FEG`FFEGpFFQ$F @ E$F FE ~FE|FL776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 X3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 L0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 R6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 @0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 D0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 F0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 ,F0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 , ,RF4*((@@@ FEGF@E(IFQ$F@@ E$F  F@@ E$ F, F@&@@ E F6 F VF BF|EGpF@@ EF@ @ EF$@@ E F6$@ @ E F6 F|FZ224,240,184,220,236,246,186,222,238,246,186,222,238,246,186,158,142,134,130,130,132,128 X0,128,192,224,240,184,220,238,246,186,222,238,246,186,158,142,134,130,130,132,128,128 P0,0,0,0,0,128,128,192,224,240,184,220,238,246,186,158,142,134,130,130,132,128 J0,0,0,0,0,0,0,0,128,128,192,224,240,184,156,142,134,130,130,132,128,128  ,RF0*`` F EG`F,Q F FG|FC,D,E,F,G,A,H,C .F, ,+ ! !!! ! FErklrung der Parameter: 2$laenge% = Notendauer von 0 bis 12 Hhals% = Lnge des Notenhalses ( >0 => nach oben; <0 => nach unten ) @sep! = Note einzeln setzen (ohne gemeinsame Achtel-balken) L das Vorzeichen von Hals% gibt an, ob Hals nach oben oder unten. Hx%,y% = Position der Note (y% in Pixelreihen, x% in Byte-spalten.). vorz$ = # oder b oder h! !$!(!!)FF)E >> F v FFn)!MERROR in PROCEDUR plotnote !|Nicht ber Bildschirmrand|hinaus plotten!|( x = A  )!! Stop !F HF  F   Fix)!WERROR in PROCEDURE plotnote !|Plotten von Note nur an|gerade Bildschirm-Adresse!|( x = A  )!! Stop !*F HF  F$E#   F $z$Fx)!VERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( XBIOS(2)+A$  )!! Stop !F HF  F E)$F E#2 #2   F  R `F 8+E#   F 10 bis 12 => ganze und halbe Noten e1 !F(E F tF"M! !## # F  FPEGF $ )n  )F n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F ! +@ 2 F 0 ! F F" T FF => punktierte Note E(FFPEGF=0 ! F> 4 )n  )F n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F !`2 F F F J @FU  PFUEF FE E(F  F,E F F,E F FE >F "Ez F-E# ) > FnEz@%  @#  F&|"-!!(!,!! Fa FF! ` F($EF rF$EF FEBEG H$ F " )n  )F!n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F !$4 FR0 !,F F  F F vFrEGpFU  )n  )F n)!MERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( A  )!! Stop !F HF  F 0F !3  `@ Fe ZF & !4  `@ Fh F 0 ! F fF F.F + !! FhF0 !FEpF  F(!! !F0!@FFEFJ F(!! !F1!@FF.F +! F h!.!F C@. FE;@C@.  F Ff*. !!F E6 F ,F EF?@@ \F5F?F E;@ FE>@ F\ (C@. F\E. F\ F F EF.FE E +" F M!MUS F rF 7R!M!F\ F.F +#FMh!!$!/!0F M!MUS F  FE!B F!z FF F*@zz F0EFpEGz FZEGF/E@|@0 F ZZ/F@ E?@0@/0 F 0E/F F pZ/F FEFEFjFFjFFMFF F.F +$FFh!!$! !!!1FP)!1Das File wird vor dem|aktuellen Takt eingefgt!| !! Ok |Abbruch!$F V$Fl M" F RF EF FF[FYFFInserting file: ""FkFF EFr rM F  F F Fj$FEGFf =`M" F  F  F F0$!6 Fl $ F $F MF F RF E FFE RF FpFF"RS FjFR^FFRjFR8F F F.F +%FR h!!F FNY! ";Abspeichern von aktuellem Takt bis einschlielich (maximal "F") "F:F"  5 FjFM&!u!5 Fr F&FjF.F  +&2!3 Fh!F M!MUS F  F   d FAF F7R!M!F  E2G3F  EGFFY! " Writing Takt "!!FnM"@ F  F  F8F F.F + FEFEF4EF* ! ! `` F*88 FR F8 LEG8FQ F  :FG |F |JDiese Periodenlngen entsprechen den Kehrwerten der Frequenzen, die in l<SPECTRUM DER WISSENSCHAFT 7/1987 Seite 8 abgedruckt sind. 0Sie sind auf Kammerton a = 440.0 Hz getrimmt.  i*2273,2025,3823,3405,3034,2864,2551,2025 , A H C D E F G H *2145,1911,3608,3214,2864,2703,2408,1911 , #A #H #C #D #E #F #G #H *2419,2145,4049,3608,3214,3034,2703,2145 , bA bH bC bD bE bF bG bH  LDiese Periodenlngen sind selbst errechnet, so da das Produkt einer Note Nmit einem bestimmten Faktor die nchste Note ergibt, wobei sich nach zwlf 4Iterationen genau die halbe Periodendauer ergibt. FDer Faktor ist 2^(1/12). Nach demselben Algorithmus wurden auch die 6Frequenzen in SPEKTRUM DER WISSENSCHAFT berechnet. Kammerton a = 438.0 Hz.  a0 DATA 2283,2034,3840,3421,3048,2877,2563,2034 , A H C D E F G H 0 DATA 2155,1920,3624,3229,2877,2715,2419,1920 , #A #H #C #D #E #F #G #H 0 DATA 2419,2155,4068,3624,3229,3048,2715,2155 , bA bH bC bD bE bF bG bH   .F  +FbhFbMFbjFbF  7 B F 7 B E? @@ F @ E; @ F F E> @ FF4F>: a: hF E ` FjFEG`F    FE  F F E F FE nFF C@ FE01234567F FE.FE E+F0hF0EG`F  EF F`E01234567F.FE E +'5 F5h!!!1!F h6!7FE  !B F E FB E FB E FB( : a: h: bFHMF: F H ! F4 ^#C @|  #C @|  #C @|  Fw X F7EF6EF 8Ez FV|8 ! ! !z !!z !!4!!!z7 !z !z6 ! FE6F! 6F:Echan0: A |chan1: A |chan2: A F6)!Fehler bei der Taktlnge !|!! OK !$F  F! H6F >)!Fehler bei der Tonhhe:|   !! OK !$F F!5E;@7 F  jF5EF F5.F5 5+F*  FR F xEG FTQ F (  ***Key klickF|&  2 F Key-klick ist an.  E Key klick offFl $F E Key klick onF F F xZ ***FF n: - Fs E  F F F  EF  EF |FDesk ,Music Writer (----------------------,1,2,3,4,5,6,"" 0File ,Clear,Write,Write Part,--------------- BRead,Merge,---------------,Quit,---------------,Delete File,"" z8Edit ,Next,Preceeding,--------------------,Goto nr. eBGoto first,Goto last,--------------------,Skip Edits,Clear Takt "" o<Put ,Put into Buffer,Get from Buffer,------------------- BReplace,Insert,-------------------,Skip Edits,Delete aktual,"" 8Actions ,Compile Takt,Play Takt,-------------------- (Compile all,Play all,Play from actual D--------------------,Double Speed,Half Speed,-------------------- Save Sound,Read Sound,"" o$Specials ,***Key klick,Noten eng 2-----------------,Volume,Transpose,Tempo,Gap,"" *** .F* *+ F-h!!.!! FlE F FEEC@ F F E;@ >@ F FE F EFEF  MUSICWRITERFaMF F CLEARFI>)! | Wirklich alles lschen? | !! Ja | nein !.F- .FkB)!" | Ganz hundertprozent sicher ? | !!doch, ja|ach nein!.F .FzpF F F F WRITEFeMF M&! FI F&  WRITEPARTFrMFM%F F% &READFM#FMF F NMERGEFRMFM$FMF F QUITF:)!Haben sie alles gesichert?!! Ende | Weiter !.F .FsFqFF FF FF | DELETEFILEFEF EFEF M!* F h.*FLF)! Soll ich | |wirklich lschen?| !! Ja | nein !.F d. FAF F FEFE F FE NEXTFMFE# F FE  PRECEEDINGFMFE# FMF F GOTONR.FGMFF>Y! "!Bitte Taktnummer eingeben (0 bis "") : "Fi:F V6 F E5 F  FE FeY! "  FMF F  GOTOFIRSTF MFMFjF F GOTOLASTFMFEFMFF F  CLEARTAKTF MFMFEFjF F  DELETEAKTUALF4)! | Wirklich ? | | !!na klar!|ne,ne !!9F" 9FrM(FMF F9EF FE FE  COMPILEALLFMFM) F F) PLAYALLFLMFM* F F* PLAYFROMACTUALFMFjF M* FP F* 6 DOUBLESPEEDFL M+ F  F+ X HALFSPEEDFFM+ F F+ ~ READSOUNDFFEFM,F F,  SAVESOUNDFFEFM-F F-  PUTINTOBUFFERFEFM.F F.  GETFROMBUFFERFM/F F/ INSERTFMFMF F 8REPLACEFFMFM0F F0 ^ SKIPEDITSFEM1FjF F  COMPILETAKTFFMF M' FEF FE PLAYTAKTFMFM2F F2 VOLUMEFM3FEFjF F P KEYKLICKONF E Keyklick off F! F klick on l !2  FnEFM7F  FE  KEYKLICKOFFF  E Keyklick on F F l !2  FnEFM7F  FE NOTENENGF E Noten weit FMF  FEFEF FE T NOTENWEITF  E Noten eng FMF  FEFEFo FE z TRANSPOSEF EFM4F F4 TEMPOFSEFM5F F5 GAPFFEFM6F F6F.FF F+2F M' FEB`` B` F &EGF EB B F  FEB B F!z FEF.FE E+4F h!.!!!!!!!!$FH)!! |Explizite Eingabe oder Tunen?| !!Explizit|Tuning|Abbruch!.F-F !.Fi!! !pFr!! !pFrY! "1000 ist normal.WWFr<72000 ist eine Oktave tiefer ; 500 ist eine Oktave hherF4Y! "Bitte Transpose eingeben! "zz WWFv:F !6 FtE5 z Fn FE FE %.F $E F EPPF !! !HFg!! !HFgFF.Y! " Auf welchen Ton? (zB: C oder #C)WWWF:F "@6 Fw E F "< BFl E#HF FE"EG`F  "Z<  F "F "<`F  %`F I ! F EPP3|F E FY! "Oktave (zB: 3)WWWF:F E5 Fk EA 3|F3EnF>Y! "-Drcken der linken Maustaste erhht den Ton.F:Y!  "( " rechten " erniedrigt "FTNY!@ "=Mit der + bzw - Taste kann die Schrittweite verndert werden.F&Y!` "Zurck mit < ENTER >F FF0!##R #R FEu /!v! Fi^Y!  "Transpose: "z un! %un! " FS4Y!0 "Schrittweite: "zz WWWFM2FESF %`+FEu!  F FE %-FEv7!  F FE$pBPP F I ! F FF E$FP FFjFjF.F +5Fh!FF!! !pFw!! !pFwY! "1000 ist normal; "F*%> 1000: langsamer / < 1000: schnellerFBY ! "1{ Mglichst 'glatte' Werte whlen! ( zB: 750 ) }F0Y! "Bitte Tempo eingeben! "zz WWFe:F ' 6 FtE5 z Fp FEFjFjF.F +6Fh.FF.v)!IGap bedeutet die Lcke|zwischen unverbundenen Tnen.|Momentan haben wir: A4 !! lnger | OK | krzer !.F04!#. #. F '6.F#jF.F +1FMF.F +Fh.F (FFB` "F("RF(FFR)!/ Was machen wir mit dem | aktuellen Takt ?| !!Replace|Insert|Skip!.F4 (. FmMF Fw.L0!!1F F.jF0.F +F0h!FEF!)6   Fe)EGFH !@ F (F4F(F4FF4FFj!F.F +0FhF)bEGF@ E F )HF 1!F j!F.F +3F h!!F F!! !pFm!! !pFm*lEGFF<Y! "Lautstrke von Stimme "" : "A " ? "F`!F *DF  E5 F F)  pFe )F FjF.F  +) Fh!!.!/Fj.F *F/MF FEB`` B` F+EGF EB B F *F /E6 FE6 !B F EF(,0@ @ @ FAY! "Compiling Takt "F E@ F E@ F E@ F M' F ,F ()!Weiter machen?!! ja | Edit !.F +.F jFEF FE FE ,0Z.F !/ EF 0/!6 F4F+2FMFF Y! !!!Fc!/ EB B FE;@/ F .F  +*: F ,F M): F F)X F!z F.F +,Fh;F M!SON F -F  - F7R!M !FF;EsM  F 8M F -L;FE;!B F!z FEF -zF!*)!Dateilnge ist NULL!! OK !F F! -Fa>)!$Es existiert keine Datei mit|Namen:|!! OK !F F! F!.F! !+-FE -FM) F F) M!SON F .F !z !6 F F.F +(F h.!!FR)!2 Haben sie sich das grndlich | berlegt ? | !!freilich|nicht so!.F /.F EFFE.EGFi@ E@ Fr .F4F(.@ @ @ Fe5FjF F.F +F h.!!F /NF EFvLFF 00FZ)!9 Katastrophaler Fehler! | | Retten, was zu retten ist ?| !! Jaaa.. |Weg mit!!.Fl /.FtjF ,&! Fr F&B)!# | | Was nun ? | !!Abbruch|Neustart!.F 0$.F pF 0,F.F F F.F +.FFhFFMFF0pEGF  E F 0XF.F +/FhF0EGF  E F 0FMFjFEF.FE E ++< F h!FMF1EGF 1lEG6 F  1b5> @ F * 1^5> @ ? @@ PF ! EB7> @ < F F F 0F @ E F 0FEF.FE E+Fh!F1EIFE:@ F 1ZahbF 1F 2LFa E Fa E@ FMF EF0YH! "Vorzeichen in Taktnr. "" Fb F.F +Fh!!=!! Fc EF7I!M! MUSIC.DOCFi 3 Fx)!bDas file 'MUSIC.DOC' mu sich|im selben Ordner befinden,|von dem aus das Programm|gestartet wurde!!!Abbruch!F 46FaFF[FYFF3rM F=`M!F4=F 3=0FI6-MEHR-"BX "p "BX "q"BP "FbFESF 3F=E0 F FE  "BP "F" 3ZB F3&F 4B FF 4SF  F^FFS 8MF jF F.F +F.F 7+7F hF 4EG F !FG 4lFG.F7s"*T$:.]<<uNUGPxx*N 488.~~~~~tJ"6|^V&.X R4D/xߠD l,r< '(1,2Zզ~6Ԇ~R>d &.&*,r0,-0>0~)4') f%',4R' Version vom 09.09.87 17:30 ON BREAK GOSUB break DEFLIST 0 OPENW 0 GOSUB initall ON ERROR GOSUB fehler GOSUB edit ' PROCEDURE initall ON ERROR GOSUB initerror filemax%=1000 DIM takt$(2),takte$(2,filemax%),taktbuf$(2),volume%(2),tsave$(2) ARRAYFILL volume%(),11 pfad$="\STUECKE.MUS\" IF NOT EXIST(pfad$+"*.MUS") pfad$="\" ENDIF y1%=60 ! Zeilenabstand okt%=4 ! Verschiebt oktavenweise y0%=60 ! oberste Zeile x0%=8 ! linker Rand dist%=4 ! Abstand zwischen Noten in Bytes (gerade Anzahl!) GOSUB initmenu GOSUB initmc GOSUB initmouse GOSUB initplot GOSUB initedit GOSUB initcomp RETURN ' PROCEDURE initerror IF ERR=-33 ALERT 3,"Das file 'MUSIC.IMG' mu sich|im selben Ordner befinden,|von dem aus das Programm|gestartet wurde!",1,"Abbruch",dummy ENDIF RESUME RETURN ' PROCEDURE edit LOCAL i%,j%,x%,y%,k%,laenge%,hoehe%,hals%,not$,laenge$,oktave$ LOCAL punkt$ MENU grundmenue$() ON MENU GOSUB grundmenue laenge%=8 FOR i%=0 TO 2 takt$(i%)=takte$(i%,filep%) NEXT i% PRINT AT(1,3);"Taktnr. ";filep%,, GOSUB headline IF LEN(takt$(1)+takt$(2)+takt$(0))<>0 @plottakt(yedit%(0)-1,abst%) ELSE FOR i%=0 TO 2 @drawline(yedit%(i%)-1) @schluessel(yedit%(i%)) NEXT i% @taktstrich(lrand%-2,yedit%(0),abst%) ENDIF CLR y0hilfsalt% DEFMOUSE mouse$(laenge%) DEFTEXT ,1,,13 RBOX 220,360,300,379 TEXT 230,375,62,"Zurck" RBOX 300,360,380,379 TEXT 310,375,62,"Weiter" DEFTEXT ,0,,13 @disable DO MOUSE x%,y%,k% neu!=FALSE IF y%>=400 GOSUB edithilfs(x%-16*(laenge%=22 OR laenge%=23),yedit%(0),yedit%(0)) CLR y0hilfsalt% DEFMOUSE 3 no_menue!=TRUE REPEAT MOUSE x%,y%,k% ON MENU UNTIL y%<400 AND MENU(9)=34 DEFMOUSE mouse$(laenge%) IF NOT no_menue! IF neu! @eraeditfeld FOR i%=0 TO 2 takt$(i%)=takte$(i%,filep%) NEXT i% PRINT AT(1,3);"Taktnr. ";filep%,, ENDIF @plottakt(yedit%(0)-1,abst%) ENDIF ELSE IF y%>360 AND x%>220 AND x%<380 AND k% !Zurck/Weiter CLR y0hilfsalt% IF edflag! IF filep%laenge% PRINT CHR$(7); laenge%=x% DIV 24 DEFMOUSE mouse$(laenge%) ENDIF ENDIF chan%=-(y%>grenz1%)-(y%>grenz2%) IF k%=0 GOSUB edithilfs(x%-16*(laenge%=22 OR laenge%=23),MIN(MAX(y%,grenz0%),grenz3%),yedit%(chan%)-1) ENDIF IF k%<>0 AND y%>grenz0% AND y%=lrand%*8 CLR y0hilfsalt% CLR vorz$ IF laenge%>=22 AND laenge%<=25 ADD x%,16 not$=t$(chan%,x% DIV 16) ! schlechter Stil ... CLR oktave$,laenge$,punkt$ vorz$="b" IF laenge%=23 vorz$="#" ENDIF IF laenge%=24 vorz$="" ENDIF IF laenge%=25 vorz$="@" ENDIF t$(chan%,x% DIV 16)=vorz$ ELSE IF laenge%<14 ADD y%,2 hoehe%=(y%-yedit%(chan%)+33)/3 ! hchstes C not$=noten$(7-(hoehe% MOD 7)) oktave$=STR$(maxokt%-(hoehe% DIV 7)-(not$="C")) laenge$=STR$((laenge% DIV 2)+1) ELSE not$="P" oktave$="P" y%=yedit%(chan%) laenge$=STR$((laenge% DIV 2)-5) ENDIF CLR punkt$,vorz$ IF ODD(laenge%) punkt$="." ENDIF ENDIF edflag!=TRUE replace!=t$(chan%,x% DIV 16)<>"" IF k%=1 t$(chan%,x% DIV 16)=vorz$+not$+oktave$+laenge$+punkt$ ELSE t$(chan%,x% DIV 16)="" ENDIF IF replace! @put_t_to_taktfeld @plottakt(yedit%(0)-1,abst%) ELSE IF k%=1 IF y%>yedit%(chan%)+12 hals%=1 ELSE hals%=-1 ENDIF HIDEM @plotnote(laenge%,hals%,TRUE,2*(x% DIV 16),3*(y% DIV 3),vorz$) SHOWM ENDIF ENDIF REPEAT UNTIL MOUSEK=0 ELSE IF laenge%>=22 AND laenge%<=24 WHILE y%>grenz1% SUB y%,abst% WEND IF y%>=yedit%(0)-6 AND y%="a" AND LEFT$(takt$(0))<="h" AND LEFT$(takt$(0))<>"b" takt$(0)=MID$(takt$(0),3) WEND @clear_vorz ENDIF IF vorz$="" AND k%=1 takt$(0)="c"+takt$(0) ENDIF @plottakt(yedit%(0)-1,abst%) edflag!=TRUE ENDIF ENDIF ENDIF ENDIF ENDIF inp$=INKEY$ IF inp$=" " CLR y0hilfsalt% @put_t_to_taktfeld @plottakt(yedit%(0)-1,abst%) ELSE IF RIGHT$(inp$)=CHR$(&H62) @anleitung ENDIF ENDIF ENDIF LOOP @put_t_to_taktfeld DEFMOUSE 0 RETURN ' PROCEDURE edithilfs(x%,y%,y0%) LOCAL i%,xtemp% xtemp%=x% AND &HFFFFFFF0 IF xtemp%<>xhilfsalt% OR y%<>yhilfsalt% GRAPHMODE 3 IF y0hilfsalt%<>0 FOR i%=y0hilfsalt% TO yhilfsalt% STEP stephilfsalt% LINE xhilfsalt%-2,i%,xhilfsalt%+10,i% NEXT i% ENDIF xhilfsalt%=xtemp% yhilfsalt%=y% CLR y0hilfsalt% IF y%y0%+28 FOR i%=y0%+30 TO y% STEP 6 LINE xhilfsalt%-2,i%,xhilfsalt%+10,i% NEXT i% stephilfsalt%=6 y0hilfsalt%=y0%+30 ENDIF GRAPHMODE 1 ENDIF RETURN ' PROCEDURE put_t_to_taktfeld LOCAL i%,j%,t$,k% FOR i%=0 TO 2 t$="" FOR j%=0 TO 40 t$=t$+t$(i%,j%) t$(i%,j%)="" NEXT j% k%=1 WHILE MID$(t$,k%,1)>="a" AND MID$(t$,k%,1)<="h" ADD k%,2 WEND REPEAT j%=INSTR(t$,"#@",k%) OR INSTR(t$,"b@",k%) OR INSTR(t$,"@",k%) IF j% MID$(t$,j%,2)="@"+MID$(t$,j%,1) ENDIF UNTIL j%=0 FOR j%=k% TO LEN(t$)-1 temp$=MID$(t$,j%,1) IF temp$="#" OR temp$="b" OR temp$="" temp2$=MID$(t$,j%+1,1) IF temp2$="#" OR temp2$="b" OR temp2$="" t$=LEFT$(t$,j%)+MID$(t$,j%+2) ENDIF IF temp2$="P" t$=LEFT$(t$,j%-1)+MID$(t$,j%+1) ENDIF ENDIF NEXT j% IF RIGHT$(t$)="b" OR RIGHT$(t$)="#" OR RIGHT$(t$)="" OR RIGHT$(t$)="@" IF MID$(t$,LEN(t$)-1,1)>"h" OR MID$(t$,LEN(t$)-1,1)<"a" t$=LEFT$(t$,LEN(t$)-1) ENDIF ENDIF takt$(i%)=t$+"|" NEXT i% RETURN ' PROCEDURE headline LOCAL laenge% DEFFILL 0 HIDEM PBOX 0,0,639,32 LINE 0,27,639,27 FOR laenge%=0 TO 21 IF laenge%<14 y%=24 ELSE y%=8 ENDIF @plotnote(laenge%,1,TRUE,laenge%*2,y%,"") NEXT laenge% INC laenge% y%=16 @plotvorz(laenge%*2,y%,0) @plotvorz(laenge%*2+2,y%,1) @plotvorz(laenge%*2+4,y%,2) DEFTEXT ,1,,6 TEXT (laenge%*2+6)*8,y%,"3" DEFTEXT ,0,,13 x%=0 FOR i%=1 TO laenge%+1 GET x%,19,639-8,26+19,temp$ PBOX x%,0,x%+8,26 PUT x%+8,19,temp$ ADD x%,24 NEXT i% SHOWM RETURN ' PROCEDURE plottakt(y0%,y1%) LOCAL x%,i%,xmin%,v%,tsave$ DIM index%(2) tsave$=takt$(0) ARRAYFILL index%(),1 ARRAYFILL c%(),0 DEFFILL 0 HIDEM PBOX 0,y0%-35,639,y0%+3*y1% IF LEFT$(takt$(0))>="a" AND LEFT$(takt$(0))<="h" AND LEFT$(takt$(0))<>"b" @set_glob_vorz PRINT AT(50,3);"Vorzeichen in Taktnr. ";filep%;" " ENDIF @put_glob_vorz @taktstrich(lrand%-1,yedit%(0),abst%) IF LEN(takt$(1)+takt$(2)+takt$(0))=0 FOR i%=0 TO 2 @drawline(y0%+i%*y1%) @schluessel(y0%+i%*y1%) NEXT i% ELSE FOR i%=0 TO 2 @drawline(i%*y1%+y0%) ! Notenzeile @schluessel(i%*y1%+y0%) @gettakt(i%,takt$(i%)) ! belegt Felder fr Tonkanal i% (s. gettakt) NEXT i% x%=lrand% ADD x%,2 ' Ordnet Noten der drei Kanle passend nach Dauer untereinander an WHILE c%(0)<>count%(0) OR c%(1)<>count%(1) OR c%(2)<>count%(2) xmin%=MIN(x%(0,c%(0)),x%(1,c%(1)),x%(2,c%(2))) FOR i%=0 TO 2 j%=c%(i%) IF x%(i%,j%)=xmin% @restore_t_string(i%,x% DIV 2) vorz$=vorz$(vorz%(i%,j%)) ' IF triole!(i%,j%) @plottriole(i%,x%) ENDIF @plotnote(laenge%(i%,j%),hhals%(i%,j%),sep!(i%,j%),x%,y0%+y1%*i%+y%(i%,j%),vorz$) @hilfszeilen(y1%*i%+y0%,x%,y%(i%,j%)) INC c%(i%) ENDIF NEXT i% ADD x%,dist% WEND @taktstrich(x%,y0%,y1%) ENDIF takt$(0)=tsave$ ERASE index%() SHOWM RETURN ' PROCEDURE plottriole(chan%,x%) DEFTEXT ,1,,6 TEXT x%*8-2,y0%+y1%*chan%+y%(chan%,j%),"3" DEFTEXT ,0,,13 RETURN ' PROCEDURE put_glob_vorz LOCAL j%,h% FOR j%=5 TO 29 STEP 4 h%=j% MOD 7 IF vorzeichen$(h%)<>"" FOR i%=0 TO 2 y%=15-3*h%+yedit%(i%) @plotvorz(j% DIV 4+3,y%,-(vorzeichen$(h%)="#")-2*vorzeichen$(h%)="") NEXT i% ENDIF NEXT j% RETURN ' PROCEDURE plotvorz(x%,y%,v%) LOCAL k%,bildadr% bildadr%=XBIOS(2)+(y%-10+v%+19)*80+x%-1 FOR k%=0 TO 15 POKE bildadr%,PEEK(bildadr%) OR vorzplot%(v%,k%) ADD bildadr%,80 NEXT k% RETURN ' PROCEDURE restore_t_string(chan%,x%) LOCAL t$,temp$ t$=MID$(takt$(chan%),index%(chan%),3) ADD index%(chan%),3 temp$=MID$(takt$(chan%),index%(chan%),1) WHILE temp$<>"@" AND temp$<>"|" AND temp$<>"b" AND temp$<>"#" AND temp$<>"" AND (temp$<"A" OR temp$>"P") t$=t$+temp$ INC index%(chan%) temp$=MID$(takt$(chan%),index%(chan%),1) WEND IF x%>40 ALERT 1," Zeile zu lang! ",1," Stop | Cont ",x% IF x%=1 ERROR 100 ENDIF ELSE t$(chan%,x%)=t$ ENDIF RETURN ' PROCEDURE taktstrich(x%,y0%,y1%) LINE x%*8,y0%,x%*8,y0%+2*y1%+24 ! Taktstrich LINE x%*8+1,y0%,x%*8+1,y0%+2*y1%+24 RETURN ' PROCEDURE schluessel(z%) LOCAL i% HIDEM LET lpoke%=VARPTR(lpoke$) CALL lpoke%((z%-12+19)*80,VARPTR(schluessel%(0)),50,0) SHOWM RETURN schluessel: DATA 30720,63488,116736,231424,198656 DATA 395264,395264,264192,268288,268288 DATA 274432,290816,319488,376832,491520 DATA 458752,917504,1835008,3932160,7602176 DATA 14942208,29622272,58982400,119521280,239067136 DATA 209711104,417609728,281286656,277089280,277089280 DATA 277087232,277087232,277087232,272892928,136579072 DATA 67373056,33820672,25452544,8355840,262144 DATA 262144,262144,262144,262144,29622272 DATA 65273856,65273856,46399488,50855936,32505856 ' PROCEDURE drawline(y1%) ! Notenzeile LOCAL i% FOR i%=0 TO 4 LINE 0,y1%+6*i%,639,y1%+6*i% NEXT i% RETURN ' PROCEDURE gettakt(chan%,takt$) ' bergibt Ergebnisse fr einen Takt in: ' laenge%(chan%,count%) : Tonlnge von 0 bis 12 ' hhals%( " ) : Richtung bzw. Lnge des Notenhalses ' vorz%( " ) : +1 = # ; -1 = b | 1=b 2=# 3= ' sep!( " ) : Einzelnote ' x% ( " ) : Spalte in Bytes ' y% ( " ) : Pixelreihe ohne y0%! LOCAL j%,hoehe%,laenge%,y%,i%,c%,hals%,x%,temp% CLR x%,c% j%=1 WHILE j%7 ALERT 3,"Schlechter Takt!|Pointer: "+STR$(j%)+"|"+takt$,1," Stop ",dummy END ENDIF INC j% y%=10-(hoehe%*3+21*(ASC(MID$(takt$,j%))-48-okt%)) INC j% laenge%=2*(ASC(MID$(takt$,j%))-48)-2 ENDIF temp%=2^(ASC(MID$(takt$,j%))-48) INC j% IF MID$(takt$,j%,1)="." INC laenge% INC j% MUL temp%,1.5 ENDIF hals%=16 IF y%<12 hals%=-hals% ENDIF laenge%(chan%,c%)=laenge% hhals%(chan%,c%)=hals% sep!(chan%,c%)=TRUE x%(chan%,c%)=x% y%(chan%,c%)=y% ADD x%,temp% INC c% IF MID$(takt$,j%,1)="-" INC j% ! Bgen noch nicht implementiert. ENDIF WEND x%(chan%,c%)=&H7FFFFFFF count%(chan%)=c% RETURN ' PROCEDURE initmc LOCAL a$ cmc$=STRING$(2048,CHR$(0)) vorzeichen$="12345678" BLOAD "MUSIC.IMG",VARPTR(cmc$) CLR lpoke$ RESTORE llpoke READ a$ WHILE LEFT$(a$)<>"*" LET lpoke$=lpoke$+MKI$(VAL("&H"+a$)) READ a$ WEND llpoke: DATA 206F,0006,5848,2A58,2C58,2E18,4285,7C50,046F,0004,0004,6704,2C18 DATA 2A18,3F3C,0002,4E4E,544F,2200,0681,0000,7D00,DBC0,5347,B28D,651E DATA BBC0,651A,241E,4A45,670A,6B04,EBAA,6004,3805,EAAA,8495,2A82,DBC6 DATA 51CF,FFE0,4E75,* RETURN ' PROCEDURE initedit DIM t$(2,80) ! wird normalerweise nur bis 40 gebraucht DIM yedit%(2),triole!(2,80) maxokt%=5 lrand%=14 rrand%=78 abst%=80 abst%=3*(abst% DIV 3) yedit%(0)=120 yedit%(1)=yedit%(0)+abst% yedit%(2)=yedit%(1)+abst% grenz0%=yedit%(0)-35 grenz1%=yedit%(0)+abst%/2+12 grenz2%=grenz1%+abst% grenz3%=grenz2%+abst% RETURN ' PROCEDURE eraeditfeld ERASE t$() DIM t$(2,80) RETURN ' PROCEDURE initmouse LOCAL i%,j% DIM mouse$(25) RESTORE mmousedat FOR i%=0 TO 25 LET mouse$(i%)=MKI$(6)+MKI$(11)+MKI$(1) LET mouse$(i%)=mouse$(i%)+MKI$(0)+MKI$(1) FOR j%=1 TO 16 READ hinten% LET mouse$(i%)=mouse$(i%)+MKI$(hinten%) NEXT j% FOR j%=1 TO 16 READ vorn% LET mouse$(i%)=mouse$(i%)+MKI$(vorn%) NEXT j% NEXT i% ' mmousedat: DATA 240,136,132,146,137,133,145,137,3973,4241,8201,16389,16401,8233,4165,3970 DATA 0,112,120,108,118,122,110,118,122,3950,8182,16378,16366,8134,3970,0 DATA 960,544,528,584,548,532,580,548,15892,16964,32804,23,68,32932,16663,15880 DATA 0,448,480,432,472,488,440,472,488,15800,32728,65512,65467,32539,15880,0 DATA 240,136,132,146,137,133,145,137,3973,4241,8217,16405,16405,8226,4160,3968 DATA 0,112,120,108,118,122,110,118,122,3950,8166,16354,16354,8128,3968,0 DATA 240,136,132,146,137,133,145,137,3973,4241,8217,16413,16403,8242,4172,3968 DATA 0,112,120,108,118,122,110,118,122,3950,8166,16354,16364,8140,3968,0 DATA 240,136,132,146,137,133,145,153,3989,4245,8210,16400,16400,8224,4160,3968 DATA 0,112,120,108,118,122,110,102,98,3938,8160,16352,16352,8128,3968,0 DATA 240,136,132,146,137,133,145,153,3989,4245,8210,16406,16409,8233,4166,3968 DATA 0,112,120,108,118,122,110,102,98,3938,8160,16352,16358,8134,3968,0 DATA 240,136,132,146,153,149,149,149,3986,4240,8208,16400,16384,8224,4160,3968 DATA 0,112,120,108,102,98,98,98,96,3936,8160,16352,16352,8128,3968,0 DATA 240,136,132,146,153,149,149,149,3986,4240,8208,16406,16409,8233,4166,3968 DATA 0,112,120,108,102,98,98,98,96,3936,8160,16352,16358,8134,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4112,8208,16400,16400,8224,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,16352,16352,8128,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4240,8214,16409,16409,8230,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,16358,16358,8128,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4240,8208,20368,20368,8224,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,12384,12384,8128,3968,0 DATA 240,144,144,144,144,144,144,144,3984,4240,8214,20377,20377,8230,4160,3968 DATA 0,96,96,96,96,96,96,96,96,3936,8160,12390,12390,8128,3968,0 DATA 0,0,0,0,0,0,0,0,3968,4160,8224,20368,20368,8224,4160,3968 DATA 0,0,0,0,0,0,0,0,0,3968,8128,12384,12384,8128,3968,0 DATA 0,0,0,0,0,0,0,0,3968,4160,8230,20377,20377,8230,4160,3968 DATA 0,0,0,0,0,0,0,0,0,3968,8128,12390,12390,8128,3968,0 ' pausen: ' 1/32 pause DATA 1172,2132,2132,1252,1544,2536,4328,4296,2512,3600,5072,8592,8608,5024,3104,832 DATA 776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 ' 1/32 punkt.pause DATA 4688,8528,8528,5015,6184,10152,17320,17191,10048,14400,20288,34368,34432,20096,12416,3328 DATA 3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 ' 1/16 pause DATA 3104,4688,8528,8528,5008,6176,10144,17312,17184,10048,6208,1856,576,640,640,640 DATA 0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 ' 1/16 punkt.pause DATA 9376,17056,17070,10033,12369,20305,34638,34368,20096,12416,3712,1152,1280,1280,1280,1280 DATA 6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 ' 1/8 pause DATA 0,0,0,3104,4688,8528,8592,8992,9888,4512,3872,320,320,576,640,640 DATA 0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 ' 1/8 punkt.pause DATA 0,0,0,6208,9390,17073,17201,18001,19790,9024,7744,640,640,1152,1280,1280 DATA 0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 ' 1/4 pause DATA 6144,5120,2560,1280,640,576,1088,2176,1280,640,832,1056,2240,2304,1280,640 DATA 0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 ' 1/4 punkt.pause DATA 6144,5120,2560,1280,654,593,1105,2193,1294,640,832,1056,2240,2304,1280,640 DATA 0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 ' b-Vorz. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 ' #-Vorz. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 8,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 ' Auflsungszeichen DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 64,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0 ' DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,62,63,3,3,14,14,3,51,63,30 ' RETURN PROCEDURE initplot DIM laenge%(2,64),hhals%(2,64),vorz%(2,64),sep!(2,64),x%(2,64),y%(2,64),count%(2) DIM vorzplot%(2,15),vorz$(3) RESTORE vorz FOR i%=0 TO 3 READ vorz$(i%) NEXT i% vorz: DATA "",b,#, RESTORE vorzplot FOR j%=0 TO 2 FOR i%=0 TO 15 READ vorzplot%(j%,i%) NEXT i% NEXT j% vorzplot: ' b-Vorz. DATA 128,128,128,128,128,128,176,200,136,136,144,160,192,128,0,0 ' #-Vorz. DATA 8,8,72,72,76,88,104,200,72,76,88,104,200,72,64,64 ' Auflsungszeichen DATA 64,64,64,76,124,116,68,68,68,92,124,100,4,4,4,0 ' DIM c%(2),schluessel%(50) RESTORE schluessel FOR i%=0 TO 49 READ schluessel%(i%) NEXT i% RESTORE kopfdat DIM kopf%(1,4) FOR i%=0 TO 1 FOR j%=0 TO 4 READ kopf%(i%,j%) NEXT j% NEXT i% kopfdat: DATA 126,195,129,195,126 DATA 126,255,255,255,126 ' RESTORE ppausendat DIM pausen%(11,15) FOR i%=0 TO 7 FOR j%=0 TO 15 READ temp% LET pausen%(i%,j%)=temp% NEXT j% NEXT i% ppausendat: DATA 776,1928,1928,792,496,1552,3856,3888,1568,480,3104,7776,7744,3136,960,128 DATA 3104,7712,7712,3168,1991,6215,15431,15552,6272,1920,12416,31104,30976,12544,3840,512 DATA 0,3104,7712,7712,3168,1984,6208,15424,15552,6272,1920,128,384,256,256,256 DATA 6208,15424,15424,6350,3982,12430,30848,31104,12544,3840,256,768,512,512,512,512 DATA 0,0,0,0,3104,7712,7776,7360,6464,3648,192,128,128,384,256,256 DATA 0,0,0,0,6208,15438,15566,14734,12928,7296,384,256,256,768,512,512 DATA 0,2048,1024,512,256,384,896,1792,512,256,128,960,1792,1536,512,256 DATA 0,2048,1024,512,256,398,910,1806,512,256,128,960,1792,1536,512,256 ' RESTORE halsdat DIM hals%(21,6,1) FOR i%=0 TO 3 FOR j%=21 DOWNTO 0 READ temp% hals%(j%,i%,0)=temp% IF j%<=18 hals%(j%+3,i%,1)=temp%*512 ELSE hals%(j%-19,i%,1)=128*512 ENDIF NEXT j% NEXT i% FOR j%=0 TO 15 hals%(j%,4,0)=128 hals%(j%,5,0)=128 hals%(j%,4,1)=128*512 hals%(j%,5,1)=128*512 NEXT j% halsdat: DATA 224,240,184,220,236,246,186,222,238,246,186,222,238,246,186,158,142,134,130,130,132,128 DATA 0,128,192,224,240,184,220,238,246,186,222,238,246,186,158,142,134,130,130,132,128,128 DATA 0,0,0,0,0,128,128,192,224,240,184,220,238,246,186,158,142,134,130,130,132,128 DATA 0,0,0,0,0,0,0,0,128,128,192,224,240,184,156,142,134,130,130,132,128,128 ' RESTORE notenbezeichner DIM noten$(7) FOR i%=0 TO 7 READ noten$(i%) NEXT i% notenbezeichner: DATA C,D,E,F,G,A,H,C RETURN ' PROCEDURE plotnote(laenge%,hals%,sep!,x%,y%,vorz$) ' Erklrung der Parameter: ' laenge% = Notendauer von 0 bis 12 ' hals% = Lnge des Notenhalses ( >0 => nach oben; <0 => nach unten ) ' sep! = Note einzeln setzen (ohne gemeinsame Achtel-balken) ' das Vorzeichen von Hals% gibt an, ob Hals nach oben oder unten. ' x%,y% = Position der Note (y% in Pixelreihen, x% in Byte-spalten.). ' vorz$ = # oder b oder LOCAL i%,bildadr%,temp%,zwi%,shift!,bild% HIDEM bild%=XBIOS(2)+1520 IF x%>=80 ALERT 3,"ERROR in PROCEDUR plotnote !|Nicht ber Bildschirmrand|hinaus plotten!|( x = "+STR$(x%)+" )",1," Stop ",dummy ERROR 100 ENDIF IF ODD(x%) ALERT 3,"ERROR in PROCEDURE plotnote !|Plotten von Note nur an|gerade Bildschirm-Adresse!|( x = "+STR$(x%)+" )",1," Stop ",dummy% ERROR 100 ENDIF temp%=(y%-3)*80+x% IF temp%>32000 OR temp%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( XBIOS(2)+"+STR$(temp%)+" )",1," Stop ",dummy ERROR 100 ENDIF bildadr%=bild%+temp% shift!=(PEEK(bildadr%)<>0) OR (PEEK(bildadr%+320)<>0) IF laenge%<14 kopf%=-(laenge%<10) ! 10 bis 12 => ganze und halbe Noten SUB bildadr%,shift! zwi%=bildadr% IF vorz$<>"" @plotvorz(x%,y%,-(vorz$="#")-2*(vorz$="")) ENDIF FOR i%=0 TO 4 IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF POKE bildadr%,kopf%(kopf%,i%) OR PEEK(bildadr%) ADD bildadr%,80 NEXT i% IF ODD(laenge%) ! => punktierte Note bildadr%=zwi%+1 FOR i%=0 TO 2 ADD bildadr%,80 IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF POKE bildadr%,&X111000 OR PEEK(bildadr%) NEXT i% ENDIF IF laenge%<12 IF laenge%>13 sep!=TRUE ENDIF bildadr%=zwi%+158+shift! IF hals%>0 d%=-80 ELSE d%=80 ENDIF IF sep! LET lpoke%=VARPTR(lpoke$) b%=(bildadr%-bild%)-shift!*2+1520 v%=VARPTR(hals%(0,INT(laenge%/2),-(hals%<0))) CALL lpoke%(b%,v%,21,d%,-8*shift!,0) ELSE IF hals%>0 temp%=&H80 ELSE temp%=&H10000 ENDIF FOR i%=0 TO hals% STEP SGN(hals%) IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF LPOKE bildadr%,temp% OR LPEEK(bildadr%) ADD bildadr%,d% NEXT i% ENDIF ENDIF ELSE FOR i%=0 TO 15 IF bildadr%-bild%>30480 OR bildadr%-bild%<0 ALERT 3,"ERROR in PROCEDURE plotnote !|Versuch auerhalb des |Bildschirms zu poken!|( "+STR$(bildadr%)+" )",1," Stop ",dummy ERROR 100 ENDIF IF NOT shift! DPOKE bildadr%,DPEEK(bildadr%) OR pausen%(laenge%-14,i%) ELSE LPOKE bildadr%,LPEEK(bildadr%) OR 256*pausen%(laenge%-14,i%) ENDIF ADD bildadr%,80 NEXT i% ENDIF RETURN ' PROCEDURE hilfszeilen(y1%,x%,y%) LOCAL i% ADD y%,y1% i%=y1%+30 WHILE i%y%-2 LINE x%*8-2,i%,x%*8+10,i% SUB i%,6 WEND RETURN ' PROCEDURE select_file(a$) LOCAL i%,inp%,newname$ IF INSTR(name$,".")<>0 LET name$=LEFT$(name$,INSTR(name$,"."))+a$ ENDIF FILESELECT pfad$+"*."+a$,name$,newname$ i%=LEN(newname$) IF i% LET name$=newname$ WHILE MID$(name$,i%,1)<>"\" DEC i% WEND pfad$=LEFT$(name$,i%) LET name$=MID$(name$,i%+1) IF INSTR(name$,".")=0 LET name$=name$+"."+a$ ENDIF ENDIF sel!=i%>0 RETURN ' PROCEDURE open_file(voll_name$) @select_file("MUS") IF sel! OPEN "R",#0,pfad$+name$ ENDIF RETURN ' PROCEDURE read_file LOCAL i%,load$,temp%,p%,pa% @select_file("MUS") IF sel! AND EXIST(pfad$+name$) LET load$=STRING$(32760,CHR$(0)) BLOAD pfad$+name$,VARPTR(load$) ERASE takte$() DIM takte$(2,1000) pa%=1 FOR j%=0 TO 1000 FOR i%=0 TO 2 p%=INSTR(load$,"|",pa%) EXIT IF p%=0 takte$(i%,j%)=MID$(load$,pa%,p%-pa%+1) pa%=p%+3 NEXT i% EXIT IF p%=0 NEXT j% filep%=j% maxfilep%=j% CLR edflag! CLR compileflag! @clear_vorz ENDIF RETURN ' PROCEDURE merge_file LOCAL i%,screen$,temp%,k%,temp$,j%,n% ALERT 2,"Das File wird vor dem|aktuellen Takt eingefgt!| ",1," Ok |Abbruch",temp% IF temp%=1 @open_file(pfad$+name$) IF sel! j%=filep% SGET screen$ CLOSEW 0 CLS PRINT "Inserting file: ";pfad$;name$ PRINT PRINT k%=NOT 0 WHILE NOT EOF(#0) IF k% PRINT ENDIF CLR temp% FOR i%=0 TO 2 LINE INPUT #0;takt$(i%) IF k% PRINT takt$(i%) ENDIF ADD temp%,LEN(takt$(i%)) ' NEXT i% IF temp% @insert ENDIF IF MOUSEK k%=NOT k% REPEAT UNTIL MOUSEK=0 ENDIF WEND REPEAT UNTIL MOUSEK OR INKEY$<>"" OR k%=0 CLR compileflag! OPENW 0 SPUT screen$ CLR screen$ CLOSE ENDIF ENDIF RETURN ' PROCEDURE write_part LOCAL i%,screen$,inp$ SGET screen$ PRINT AT(1,4);"Abspeichern von aktuellem Takt bis einschlielich (maximal "; PRINT maxfilep%-1;") "; INPUT inp$ IF inp$<>"" AND VAL(inp$)>=filep% CLR name$ @write_file(filep%,MIN(maxfilep%-1,VAL(inp$))) ENDIF SPUT screen$ CLR screen$ RETURN ' PROCEDURE write_file(von%,bis%) LOCAL i%,j% @select_file("MUS") IF sel! IF EXIST(pfad$+name$) KILL pfad$+name$ ENDIF OPEN "R",#0,pfad$+name$ FOR j%=von% TO bis% FOR i%=0 TO 2 PRINT AT(1,3);"Writing Takt ";j%,, PRINT #0;takte$(i%,j%) NEXT i% NEXT j% CLOSE ENDIF RETURN ' PROCEDURE initcomp transpose=1 tempo=1 gap%=2 DIM nd%(2),compt$(2),vorzeichen$(7) DIM nnote%(23) RESTORE periodendauer FOR i%=0 TO 23 READ nnote%(i%) NEXT i% periodendauer: ' ' Diese Periodenlngen entsprechen den Kehrwerten der Frequenzen, die in ' SPECTRUM DER WISSENSCHAFT 7/1987 Seite 8 abgedruckt sind. ' Sie sind auf Kammerton a = 440.0 Hz getrimmt. ' DATA 2273,2025,3823,3405,3034,2864,2551,2025 ' A H C D E F G H DATA 2145,1911,3608,3214,2864,2703,2408,1911 ' #A #H #C #D #E #F #G #H DATA 2419,2145,4049,3608,3214,3034,2703,2145 ' bA bH bC bD bE bF bG bH ' ' Diese Periodenlngen sind selbst errechnet, so da das Produkt einer Note ' mit einem bestimmten Faktor die nchste Note ergibt, wobei sich nach zwlf ' Iterationen genau die halbe Periodendauer ergibt. ' Der Faktor ist 2^(1/12). Nach demselben Algorithmus wurden auch die ' Frequenzen in SPEKTRUM DER WISSENSCHAFT berechnet. ' Kammerton a = 438.0 Hz. ' ' DATA 2283,2034,3840,3421,3048,2877,2563,2034 ' A H C D E F G H ' DATA 2155,1920,3624,3229,2877,2715,2419,1920 ' #A #H #C #D #E #F #G #H ' DATA 2419,2155,4068,3624,3229,3048,2715,2155 ' bA bH bC bD bE bF bG bH ' ' RETURN ' PROCEDURE set_glob_vorz LOCAL i% @clear_vorz CLR i% REPEAT IF vorzeichen$(ASC(takt$(0))-97)="" vorzeichen$(ASC(takt$(0))-97)=MID$(takt$(0),2,1) t$(0,i%)=LEFT$(takt$(0),2) ENDIF takt$(0)=MID$(takt$(0),3) INC i% UNTIL LEFT$(takt$(0))<"a" OR LEFT$(takt$(0))>"h" vorzeichen$(1)=vorzeichen$(7) CLR vorzeichen$ FOR i%=0 TO 7 IF vorzeichen$(i%)<>"" vorzeichen$=vorzeichen$+vorzeichen$(i%) ELSE vorzeichen$=vorzeichen$+" " ENDIF NEXT i% IF INSTR(vorzeichen$,"") vorzeichen$="01234567" ENDIF RETURN ' PROCEDURE clear_vorz LOCAL i% FOR i%=0 TO 7 vorzeichen$(i%)="" NEXT i% vorzeichen$="01234567" RETURN ' PROCEDURE comptakt(rueck%) LOCAL compilat$,i%,j%,n%,temp$ LOCAL meld%,len% compilat$=STRING$(1025,CHR$(0)) compt$(0)=takt$(0) compt$(1)=takt$(1) compt$(2)=takt$(2) IF LEFT$(takt$(0))>="a" AND LEFT$(takt$(0))<="h" AND LEFT$(takt$(0))<>"b" @set_glob_vorz ENDIF SWAP compt$(0),takt$(0) IF (INSTR(compt$(0),"|")>0) AND (INSTR(compt$(1),"|")>0) AND (INSTR(compt$(2),"|")>0) VOID FRE(8) len%=256 meld%=0 cmc%=VARPTR(cmc$) CALL cmc%(compt$(0),compt$(1),compt$(2),VARPTR(volume%(0)),vorzeichen$,VARPTR(nnote%(0)),transpose*256,gap%,tempo*256,compilat$,VARPTR(len%),VARPTR(nd%(0)),VARPTR(meld%),0) compileerror!=meld% IF meld%=1 err$="chan0: "+STR$(nd%(0))+"|chan1: "+STR$(nd%(1))+"|chan2: "+STR$(nd%(2)) ALERT 3,"Fehler bei der Taktlnge !|"+err$,1," OK ",temp% ENDIF IF meld%=2 ALERT 3,"Fehler bei der Tonhhe:|"+takt$(0)+takt$(1)+takt$(2),1," OK ",temp% ENDIF *rueck%=LEFT$(compilat$,len%) ELSE *rueck%="" ENDIF RETURN ' PROCEDURE initmenu DIM grundmenue$(70) RESTORE grundmenue FOR i%=0 TO 70 READ grundmenue$(i%) IF grundmenue$(i%)="***Key klick" IF PEEK(&H484) AND 1 ! Key-klick ist an. grundmenue$(i%)="Key klick off" ELSE grundmenue$(i%)="Key klick on" ENDIF ENDIF EXIT IF grundmenue$(i%)="***" IF LEFT$(grundmenue$(i%))<>"-" AND grundmenue$(i%)<>"" grundmenue$(i%)=" "+grundmenue$(i%) ENDIF NEXT i% grundmenue$(i%)="" grundmenue$(i%+1)="" grundmenue: DATA Desk ,Music Writer DATA ----------------------,1,2,3,4,5,6,"" DATA File ,Clear,Write,Write Part,--------------- DATA Read,Merge,---------------,Quit,---------------,Delete File,"" DATA Edit ,Next,Preceeding,--------------------,Goto nr. DATA Goto first,Goto last,--------------------,Skip Edits,Clear Takt DATA "" DATA Put ,Put into Buffer,Get from Buffer,------------------- DATA Replace,Insert,-------------------,Skip Edits,Delete aktual,"" DATA Actions ,Compile Takt,Play Takt,-------------------- DATA Compile all,Play all,Play from actual DATA --------------------,Double Speed,Half Speed,-------------------- DATA Save Sound,Read Sound,"" DATA Specials ,***Key klick,Noten eng DATA -----------------,Volume,Transpose,Tempo,Gap,"" DATA *** RETURN ' PROCEDURE grundmenue LOCAL m$,i%,inp%,temp$,temp2$ m$=UPPER$(grundmenue$(MENU(0))) REPEAT i%=INSTR(m$," ") IF i% m$=LEFT$(m$,i%-1)+MID$(m$,i%+1) ENDIF UNTIL i%=0 no_menue!=FALSE neu!=TRUE IF m$="MUSICWRITER" @anleitung ENDIF IF m$="CLEAR" ALERT 2," | Wirklich alles lschen? | ",1," Ja | nein ",inp% IF inp%=1 ALERT 2," | Ganz hundertprozent sicher ? | ",1,"doch, ja|ach nein",inp% IF inp%=1 RUN ENDIF ENDIF ENDIF IF m$="WRITE" @ask @write_file(0,maxfilep%) ENDIF IF m$="WRITEPART" @ask @write_part ENDIF IF m$="READ" @read_file @find_akt_vorz ENDIF IF m$="MERGE" @ask @merge_file @find_akt_vorz ENDIF IF m$="QUIT" ALERT 2,"Haben sie alles gesichert?",2," Ende | Weiter ",inp% IF inp%=1 MENU KILL END ENDIF ENDIF IF m$="DELETEFILE" temp$=name$ temp2$=pfad$ LET name$="" @select_file("*") IF sel! AND name$<>".*" ALERT 3,"Soll ich |"+UPPER$(name$)+"|wirklich lschen?| ",2," Ja | nein ",inp% IF inp%=1 AND EXIST(pfad$+name$) KILL pfad$+name$ ENDIF ENDIF LET name$=temp$ pfad$=temp2$ ENDIF IF m$="NEXT" @ask filep%=filep%-(filep%0) @find_akt_vorz ENDIF IF m$="GOTONR." @ask REPEAT PRINT AT(1,4);"Bitte Taktnummer eingeben (0 bis ";maxfilep%;") : "; INPUT temp$ IF LEN(temp$) filep%=VAL(temp$) ENDIF UNTIL filep%>=0 AND filep%<=maxfilep% PRINT AT(1,4);SPACE$(80) @find_akt_vorz ENDIF IF m$="GOTOFIRST" @ask @clear_vorz CLR filep% ENDIF IF m$="GOTOLAST" @ask filep%=maxfilep% @find_akt_vorz ENDIF IF m$="CLEARTAKT" @eraeditfeld @put_t_to_taktfeld edflag!=TRUE CLR neu! ENDIF IF m$="DELETEAKTUAL" ALERT 2," | Wirklich ? | | ",0,"na klar!|ne,ne !",delinp% IF delinp%=1 @delete @find_akt_vorz ELSE neu!=FALSE ENDIF ENDIF IF m$="COMPILEALL" @ask @compile_all(0) ENDIF IF m$="PLAYALL" @ask @play_all(0) ENDIF IF m$="PLAYFROMACTUAL" @ask CLR compileflag! @play_all(filep%) ENDIF IF m$="DOUBLESPEED" @change_speed(-1) ENDIF IF m$="HALFSPEED" @change_speed(1) ENDIF IF m$="READSOUND" neu!=FALSE @read_sound ENDIF IF m$="SAVESOUND" neu!=FALSE @save_sound ENDIF IF m$="PUTINTOBUFFER" neu!=FALSE @put_to_buf ENDIF IF m$="GETFROMBUFFER" @get_from_buf ENDIF IF m$="INSERT" @put_t_to_taktfeld @insert ENDIF IF m$="REPLACE" @put_t_to_taktfeld @replace ENDIF IF m$="SKIPEDITS" @skip CLR edflag! ENDIF IF m$="COMPILETAKT" @put_t_to_taktfeld @comptakt(*taktsound$) neu!=FALSE ENDIF IF m$="PLAYTAKT" @put_t_to_taktfeld @play_takt ENDIF IF m$="VOLUME" @volume neu!=FALSE CLR compileflag! ENDIF IF m$="KEYKLICKON" grundmenue$(MENU(0))=" Keyklick off " MENU grundmenue$() ' klick on SPOKE &H484,PEEK(&H484) OR 5 neu!=FALSE @disable ENDIF IF m$="KEYKLICKOFF" grundmenue$(MENU(0))=" Keyklick on " MENU grundmenue$() SPOKE &H484,PEEK(&H484) AND NOT 5 neu!=FALSE @disable ENDIF IF m$="NOTENENG" grundmenue$(MENU(0))=" Noten weit " @put_t_to_taktfeld MENU grundmenue$() neu!=FALSE dist%=2 ENDIF IF m$="NOTENWEIT" grundmenue$(MENU(0))=" Noten eng " @put_t_to_taktfeld MENU grundmenue$() neu!=FALSE dist%=4 ENDIF IF m$="TRANSPOSE" neu!=FALSE @transpose ENDIF IF m$="TEMPO" neu!=FALSE @tempo ENDIF IF m$="GAP" neu!=FALSE @gap ENDIF MENU OFF RETURN ' PROCEDURE play_takt @comptakt(*taktsound$) LET temp$=CHR$(7)+CHR$(56) FOR i%=0 TO 2 temp$=temp$+CHR$(i%+8)+CHR$(volume%(i%)) NEXT i% LET taktsound$=temp$+taktsound$+CHR$(255)+CHR$(0) VOID XBIOS(32,L:VARPTR(taktsound$)) neu!=FALSE RETURN ' PROCEDURE transpose LOCAL screen$,inp%,inp$,h%,sound$,okt%,step,i%,temp$,temp% ALERT 2," |Explizite Eingabe oder Tunen?| ",1,"Explizit|Tuning|Abbruch",inp% SGET screen$ IF inp%=1 PBOX 8,0,631,60 BOX 8,0,631,60 PRINT AT(3,1);"1000 ist normal."'' PRINT "2000 ist eine Oktave tiefer ; 500 ist eine Oktave hher" PRINT AT(3,3);"Bitte Transpose eingeben! ";transpose*1000'' INPUT temp$ IF LEN(temp$) transpose=VAL(temp$)/1000 ENDIF ENDIF IF inp%=2 temp%=volume%(0) volume%(0)=13 PBOX 8,0,631,200 BOX 8,0,631,200 REPEAT REPEAT PRINT AT(3,1);"Auf welchen Ton? (zB: C oder #C)"''' INPUT inp$ UNTIL LEN(inp$)<=2 inp$=UPPER$(inp$) IF RIGHT$(inp$)="B" inp$="#H" ENDIF FOR h%=0 TO 7 EXIT IF RIGHT$(inp$)=noten$(h%) NEXT h% UNTIL h%<7 OR inp$="" IF h%<7 AND inp$<>"" SWAP tsave$(),takt$() takt$(2)="PP3|" takt$(1)=takt$(2) PRINT AT(3,2);"Oktave (zB: 3)"''' INPUT temp$ okt%=VAL(temp$) takt$(0)=inp$+STR$(okt%)+"3|" step=0.001 PRINT AT(3,4);"Drcken der linken Maustaste erhht den Ton." PRINT AT(3,5);" "" rechten "" erniedrigt """ PRINT AT(3,6);"Mit der + bzw - Taste kann die Schrittweite verndert werden." PRINT AT(3,7);"Zurck mit < ENTER >" HIDEM REPEAT ADD transpose,step*((MOUSEK=1)-(MOUSEK=2)) transpose=MIN(8.574,MAX(0,transpose)) PRINT AT(16,10);"Transpose: ";1000*MIN(0.001,step)*INT(transpose/MIN(0.001,step));" " PRINT AT(16,11);"Schrittweite: ";step*1000''' @play_takt i$=INKEY$ IF i$="+" step=MIN(1,step*10) ENDIF IF i$="-" step=MAX(1.0E-06,step/10) ENDIF UNTIL i$=CHR$(13) SWAP takt$(),tsave$() ENDIF SHOWM volume%(0)=temp% ENDIF SPUT screen$ CLR screen$ CLR compileflag! RETURN ' PROCEDURE tempo LOCAL screen$,temp$ SGET screen$ PBOX 8,0,631,60 BOX 8,0,631,60 PRINT AT(3,1);"1000 ist normal; "; PRINT "> 1000: langsamer / < 1000: schneller" PRINT AT(10,2);"{ Mglichst 'glatte' Werte whlen! ( zB: 750 ) }" PRINT AT(3,3);"Bitte Tempo eingeben! ";tempo*1000'' INPUT temp$ IF LEN(temp$) tempo=VAL(temp$)/1000 ENDIF SPUT screen$ CLR screen$ CLR compileflag! RETURN ' PROCEDURE gap LOCAL inp% REPEAT ALERT 0,"Gap bedeutet die Lcke|zwischen unverbundenen Tnen.|Momentan haben wir: "+STR$(gap%),0," lnger | OK | krzer ",inp% ADD gap%,(inp%=3)-(inp%=1) UNTIL inp%=2 CLR compileflag! RETURN ' PROCEDURE skip @eraeditfeld RETURN ' PROCEDURE ask LOCAL inp% IF edflag! PRINT CHR$(7); WHILE MOUSEK WEND ALERT 2," Was machen wir mit dem | aktuellen Takt ?| ",1,"Replace|Insert|Skip",inp% IF inp%<>3 @put_t_to_taktfeld ENDIF ON inp% GOSUB replace,insert,skip ENDIF CLR edflag! RETURN ' PROCEDURE insert LOCAL i%,j% j%=filep% WHILE LEN(takt$(1)+takt$(2)+takt$(0))<>0 FOR i%=0 TO 2 SWAP takt$(i%),takte$(i%,j%) NEXT i% INC j% WEND INC filep% INC maxfilep% CLR compileflag!,edflag! RETURN ' PROCEDURE replace LOCAL i% FOR i%=0 TO 2 takte$(i%,filep%)=takt$(i%) NEXT i% SUB maxfilep%,maxfilep%=filep% CLR compileflag!,edflag! RETURN ' PROCEDURE volume LOCAL i%,screen$,inp$ SGET screen$ PBOX 8,0,631,60 BOX 8,0,631,60 FOR i%=0 TO 2 REPEAT PRINT AT(3,1+i%);"Lautstrke von Stimme ";i%;" : ";STR$(volume%(i%));" ? "; FORM INPUT 2,inp$ IF inp$<>"" volume%(i%)=VAL(inp$) ENDIF UNTIL volume%(i%)>=0 AND volume%(i%)<=15 NEXT i% SPUT screen$ CLR screen$ RETURN ' PROCEDURE compile_all(j%) LOCAL i%,tt$,inp%,p% CLR inp% IF j%=0 @clear_vorz ENDIF LET sound$=CHR$(7)+CHR$(56) FOR i%=0 TO 2 LET sound$=sound$+CHR$(i%+8)+CHR$(volume%(i%)) NEXT i% p%=LEN(sound$)+1 LET sound$=sound$+STRING$(32760-LEN(sound$),CHR$(0)) compileflag!=TRUE WHILE takte$(0,j%)<>"" AND takte$(1,j%)<>"" AND takte$(2,j%)<>"" PRINT AT(1,3);"Compiling Takt ";j% takt$(0)=takte$(0,j%) takt$(1)=takte$(1,j%) takt$(2)=takte$(2,j%) @comptakt(*tt$) IF compileerror! ALERT 2,"Weiter machen?",2," ja | Edit ",inp% IF inp%=2 CLR compileflag! filep%=j% ENDIF ENDIF EXIT IF inp%=2 MID$(sound$,p%)=tt$ ADD p%,LEN(tt$) INC j% WEND @find_akt_vorz PRINT AT(1,3),,, MID$(sound$,p%)=CHR$(255)+CHR$(0) LET sound$=LEFT$(sound$,p%+1) RETURN ' PROCEDURE play_all(start%) IF NOT compileflag! @compile_all(start%) ENDIF VOID FRE(0) VOID XBIOS(32,L:VARPTR(sound$)) RETURN ' PROCEDURE read_sound LOCAL lof% @select_file("SON") IF sel! IF EXIST(pfad$+name$) OPEN "R",#69,pfad$+name$ lof%=LOF(#69) CLOSE #69 IF lof%>0 LET sound$=STRING$(lof%,CHR$(0)) BLOAD pfad$+name$,VARPTR(sound$) compileflag!=TRUE ELSE ALERT 3,"Dateilnge ist NULL",1," OK ",dummy ENDIF ELSE ALERT 3,"Es existiert keine Datei mit|Namen:|"+name$,1," OK ",dummy ENDIF ENDIF RETURN ' PROCEDURE save_sound IF NOT compileflag! @compile_all(0) ENDIF @select_file("SON") IF sel! BSAVE pfad$+name$,VARPTR(sound$),LEN(sound$) ENDIF RETURN ' PROCEDURE delete LOCAL inp%,i%,j% ALERT 2," Haben sie sich das grndlich | berlegt ? | ",2,"freilich|nicht so",inp% IF inp%=1 j%=filep% REPEAT FOR i%=0 TO 2 takte$(i%,j%)=takte$(i%,j%+1) NEXT i% INC j% UNTIL takte$(0,j%)="" OR takte$(1,j%)="" OR takte$(2,j%)="" DEC maxfilep% CLR compileflag! ENDIF RETURN ' PROCEDURE fehler LOCAL inp%,i%,j% IF ERR=-33 fileerror!=TRUE ON ERROR GOSUB fehler RESUME NEXT ELSE ALERT 1," Katastrophaler Fehler! | | Retten, was zu retten ist ?| ",0," Jaaa.. |Weg mit!",inp% IF inp%=1 CLR name$ GOSUB write_file(0,maxfilep%) ENDIF ALERT 2," | | Was nun ? | ",0,"Abbruch|Neustart",inp% IF inp%=2 RUN ELSE RESUME ENDIF ENDIF RETURN ' PROCEDURE put_to_buf LOCAL i% @put_t_to_taktfeld FOR i%=0 TO 2 taktbuf$(i%)=takt$(i%) NEXT i% RETURN ' PROCEDURE get_from_buf LOCAL i% FOR i%=0 TO 2 takt$(i%)=taktbuf$(i%) NEXT i% @eraeditfeld CLR neu! edflag!=TRUE RETURN ' PROCEDURE change_speed(s%) LOCAL i%,j% @put_t_to_taktfeld FOR i%=0 TO 2 FOR j%=3 TO LEN(takt$(i%)) IF VAL(MID$(takt$(i%),j%)) IF VAL(MID$(takt$(i%),j%-1))<>0 OR MID$(takt$(i%),j%-1,1)="P" MID$(takt$(i%),j%)=CHR$(ASC(MID$(takt$(i%),j%))+s%) ENDIF ENDIF NEXT j% takte$(i%,filep%)=takt$(i%) NEXT i% edflag!=FALSE RETURN ' PROCEDURE find_akt_vorz LOCAL i%,temp$ FOR i%=filep% DOWNTO 0 temp$=LEFT$(takte$(0,i%)) EXIT IF temp$>="a" AND temp$<="h" AND temp$<>"b" NEXT i% IF i%>=0 temp$=takt$(0) takt$(0)=takte$(0,i%) @set_glob_vorz takt$(0)=temp$ PRINT AT(50,3);"Vorzeichen in Taktnr. ";i%;" " ENDIF RETURN ' PROCEDURE anleitung LOCAL screen$,d$,lc%,inp$,fileerror! fileerror!=FALSE OPEN "I",#68,"MUSIC.DOC" IF fileerror! ALERT 3,"Das file 'MUSIC.DOC' mu sich|im selben Ordner befinden,|von dem aus das Programm|gestartet wurde!",1,"Abbruch",dummy ELSE SGET screen$ CLOSEW 0 CLS WHILE NOT EOF(#68) LINE INPUT #68,d$ INC lc% IF lc%>22 PRINT "-MEHR-";CHR$(27);"p ";CHR$(27);"q";CHR$(13); REPEAT inp$=INKEY$ UNTIL inp$<>"" lc%=-22*inp$<>" " ENDIF PRINT SPACE$(20);CHR$(13);d$ EXIT IF inp$=CHR$(3) WEND IF inp$<>CHR$(3) REPEAT UNTIL INKEY$<>"" ENDIF OPENW 0 SPUT screen$ CLOSE #68 CLR screen$ ENDIF RETURN ' PROCEDURE break RETURN ' PROCEDURE disable LOCAL i% FOR i%=0 TO 5 MENU i%+3,2 NEXT i% RETURN .  t..  tSOUNDCOMPRGt 1sSOUNDCOMPICt #}BITTE_LESENt C MASCHINESNDt ESOUNDS SND t F8`j4"R` Efv*oM' m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNھHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNHz2?< NA\pdAxr0XQ)K\NN 0BBZJrBjNuHz?<&NN\CAp$L Qp NDBlJpNNDpMND9@pdAr 0Q0tr Nے9lNNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu &8*:EENuHn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuNvpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@NB?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|ފ  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NTJFkSFk&aQNT`Ha"FFaQL8N(6.ފJgtBnފNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N(<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dGe GbFGNu G0dFGHANu~NuAd RdQRB6Ce0 C/jC C@j C jr0H@{0DH@Nur{0Nu{0NutNuJj(:,af AfBfNu&<x*<NրHn݄r$g4jDk( b4<J@`@[H@0Nu4<Ѐ[Nu4<NuNuAd RdQRBBkBjDBJjDNupNufJj fJAkNupNdRdRrxaAffBWHNuJjDBDA@JBfprJjDEDD@JEfvxNuaغBffAVHNuCDEaEf fDUHNu]HNuCDEaEffDftNuCDEHHN.NL8N޸L8NN.NJjtNupN&NAXJ@jNNu ::/rI IN<,(k$/<??<?N`NA Jj ?a0NNHrO INLA NNaHQ` @gS@@CNu   aH@@`"aH@@`a0) 4a3B HA2;i`0^ M / hawA~FNuAXr%eee%NuA]NuA>A6HP 0 0 &0&?< NN\Hx?< NN\JfNu HPa _Np"Np,`vNۄ)@p `H@)@prtNےAHplrtNےB 2pNۂpNvpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNےpapap9@p`pvNۄv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNےAl 2l 4HVNuAl 2l 4L VA0000000000prtNے9Cp rtNےAv` Av `Avl 2l 4)lVHNaBp0,l 2Nua40,HNua*p0,l 4Nuaprt0,l 22,l 44,NuN9||BlBlrҌpsNBNu0<}N& ?<NNC`&?<NNT"@ C <}N`N~@((?<NN.?<NNX@LvA HA HNuNup9@HA)A,N~ FN @e024E$ Bb5B5A6CC5CK5CAB008:Dk`Ek\00<,>,SFSGFnHGnDDDk9DBlDEk9EBlFcllGcll0,lb 0,lcNurpmrtA)HA)HNےpNHHPN~4 _:8><DbFEbGCHP@dʾAdBD2ƞE29|C???FF22N23BRG0@\@N"2)INr(* 9AJA)H@@[000][ˈN Evz`* [g" ]g |g QSz` zQSpQ][ɈN Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NDHNu*( INA)H @depd ae zb QB DNA\)H @ e` ae zb \gQBA BhN6pZNDA BP"`#|}NJA"H0,tg"Hg \f`A\fS A ENAR@H`2QNu@9@JpNNDr|<N @xepw2A$JBjDFHB t`0QBl9F)lVTAtp 9| Nے2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NNh"l`dpNAtrdJhk\QpaNH ld$l`"Hg: k&@0+R`g k#&@0+S@H3 Q&f)I`LNu?<?<NAXJgJgNAH@B pNA NuApNN$NP$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0NuNJ@gpNu _0HpN _0HpNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNuNVHNuJhg NNNu Ihd*NP$E$RR@H`2QˈN ENu2)A IJAfr4(Ae*RBBc0*SA?NP$E$R`QˈN ENup`(* 0(iNP$E 4R`Q$D 4R`QˈN DN ENua NuN IHPg"B  g &gN@JBjt BNut`Rptr ae OgT Xgj HgSRB ae Fb$0k  c_  c b退`tSJBkNRB0 b b瀀`RB0 fрd`?Hl?<GNAPA"HJf SNH&NրN鈶jNuHRp` HRpJQfpNNq Y QfdЀЀ 0NuNN(Nq Y Qfd ЀЀNuNNL$_& Y Qfdփփ!8NNNp$_& if"QdփփHRN^NN~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@NL"2` NqR YEjrd0` SjN$_NDЀЀ 0N YQf "_Nq*eNN*< NqbІSGfN$_Nփփ!8N YQf "_&Nq*eNN*<&NqbֆSGfN~$_NDЀЀЈN" KC`e Nh`d \N l\Ӭ\ NupNd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNuPj0,lf$J,nk l*fp?Np N9|nN"A0,l2J,jk 0"fZRAR@ 0"g 0 f` 0 g 0,f9@lTll`BllA"H"g"A4`Q"AA 0! NuS@R@ 0 g 0,f9@lRll`R@ 0 fQj`NNBll?<?<?<NM\NHQN&g ! ge l*g l*gpNNu<,*?Hj\F FfN.`H FfN&`RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HNLNu0,^2,`N zEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(NldeS@f lbfSl`9Ab9FdNupapqr`p`C l ", Ⲭ dfѬ SA 0! Nup"NNNJfNup#`N,Np`pNu)H9@Jp4NDP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N>  8fQ 8J,'gNupB <``L@ H)l26)z @W , , HA [1][Crg g>Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C]fApNNN.HP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Fehler # ][Abbruch]\f.B &lX)K\)ld` lp ,BQjNup(NXtHB9BL@@TAt )l g.A( f hgSASAgRB`9BJNDSAgNu)l g,vARC( g9CJ9|Lp!,ND FPeNuA JpBQA/)H )l gBlJpNDB Aprt0 0BBB R@ @efA000 0PB0 *00 000\0X0 *0000 0P0BX0, *@00p1| 1|QBX0 $HTH0P &0 *0,NupNSk [0NupNuHPaH8 _&X Pf/|~ K!zag @ ep 24C"2 S@ػ Td BTA3A0C4$I2a222B"0@2A\xvaRg<2#M 4B3BS@ -f ػ Td>BAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8NDp>L8NAJ0?C bL000zH?A/.)HpNDLrHH/>Bl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CN>0`@k Ap0(/.NuA Nu|`|*Md A l)G Z`A b)G V0, HF 00Nup)@JphNDLtH &JKBCH .A/~0 1PP1P1PA L? &<@>AFG0000X0000X0000X0000C ~AJ0g0  pi, ND"F QNuYp-KNu"l`Yd&-KNNh"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`$Y8gHRDD*D%H8#$c2g# HRDD%H`p"l`Qd&&| NuNh"l`QepZNt"l`]d6&|0NuNh"l`]epZNC ҳfHP0(NP$W$RR@H`2Q"H _$l` dd" $X&0BP6Y&|Hg R@@%E ҳeHQ0)N$_$RR@H`2QNu$Y 0P1@Hg R@@%NuNh$l` epZN,jJk `BffAge Jj 2$NuJjNu,jJj `BffAgb Jj 2$NuJjNuA.N>A/N>N.p2CBNpPCZNpC`NpCHNpCfNpClNpCrNpCxNpC~NpC큄NHxHxpC큊~NHxpC큐~NpC큖NpC큜NpC큢Np CNNpC큨NHxp2C큮~NpCTNA N6NF soundcom.picHP - "_NNF SOUNDS.SNDHPAd:N>NdN.A0NA2NA퀄N)|4 +|p A퀄N@/-NCNNlNn`NqNq)|y BpA퀄N@/-N>C큨NHNn`NqNq)|s N>+@BpA퀄N@B -NH <r$<L8NNA퀌N@/-/-N>C큮~NrNn`NqNqNn`NqNq)|N A\N>pC`NT+@A NJBgBg?<?<A" NBgBg?< ?<A" NBgBg?<,?<A" NpCfN?pClN?pCfNNHpCrNNL8NN?pClNNHpCxNNL8NN?A$" NpCfN?pClN?pCfNNHpCrNNL8NN?pClNNHpCxNNL8NN?A*" NpCfN?pClN?pCfNNHpCrNNL8NN?pClNNHpCxNNL8NN?A0" NpCfN?pClN?pCfNNHpCrNNL8N&<x*<NN?pClNNHpCxNNL8NN?A6" NpCfN?pClN?pCfNNHpCrNNL8NN?pClNNHpCxNNL8NN?A<" NpCfN?pClN?pCfNNHpCrNNL8NN?pClNNHpCxNNL8NN?AB" NpCfN?pClN?pCfNNHpCrNNL8NN?pClNNHpCxNNL8NN?AH" NA[N>+| -R/p"NZACN>AX0N>N4-2NpJBgN54-0pJBgp/NN&<x*<NFpJBgp$VHfN5A_0N>AMN>AJN>AX0N>4-4pJBgp/4-6pJBgp$VHfN5AX0N>`LNdN.pNt;B0HxpCfN?pClN?pCrN/pCxN""_ _.<6(NdNdN.pNBm0HxpCfN?pClN?pCrN/pCxN""_ _.<5N`NdN.Aa&N>N -JWHfN6pNpNNAAN>AX0N> -SWHfNHmNAc8N> -UWHfN8pNHPNF\*.SND"_NHPA HPAN""_NHmNA "_NfN7NRSNDHPAeN>HmNAd:N>/-BAAN>A[N> -WWHfN8NF$Achtung!|Das Soundmen wird gelschtCTN^HxHmTNF ok|Abbruchr"_ N+@ -SWHfN8B/-BAAN>A[N> -[WHfN; - \HfN9|NR1Das Sound-Men ist leider voll!| Abhilfe:|4CTN^HmTNF:->speichern mit 'Sound ersetzen'|->anderen Soundsatz laden"_NCTN^HxHmTNF OK r"_ N+@N;R?<?<?<l?<TAZ" NpNpNprN\pT"<lNNRBitte Namen fr Sound eingeben:4C`N^pN pNpNp N`p("<N\A`NNF2~ Weiter gehts mit >RETURN< oder einer Maustaste ~C`N^pN pNpNpN`pP"<N\A`NHxHxAHx AgHN>Bp NHPA`"_NHPp N"_NCTNlB/-Af|N>/-BAAN>/-HxAAN>?<?<AZ"NA[N> -]WHfNS+m -A퀄N@ -R//-Af|N>Nn`NqNq+|A[N>HxHxAAN>AX0N> -QWHfN -WWHfN@ -W_HfN? +m?- -NH <r$<L8NN/BpC큊~N4? -NH <r$<L8NN/HxpC큊~N4/ -NH <r$<L8NN/HxpC큊~N4" _N`NRKanalHP -@N"_NCTN^BHmTNFweiterr"_ N+@BpC큐~N4NHxpC큐~N4NHxpC큐~N4NHxpC큐~N4N -YWHfN?BpC큐~N4NHxpC큐~N4NHxpC큐~N4NHxpC큐~N4NBNR> Gesamtklang <HPNRweiter|noch malr"_ N+@ -SWHgd -]WHfN@4-4pJBgp/4-6pJBgpFF$VHfN@"+|AMN>4-6pJBgpF$VH;B64-4pJBgp/4-6pJBgpF$VHfN@x+|AMN>4-6NpJBfN@pNH/NF Normaltest CBNlN@pNH/NF Liedchen CBNlAaN> -YWHfNA -Э/BAAN>pC`NR/BAAN> -NH <r$<L8NN+@ -Э/HxAAN> -J_HfNA+|HxHxAAN>NAHxHxAAN>ACN>AX0N>NdN. A퀴N A퀰N -"-NZ/- -CZNHNdN.A퀸NA퀼NANB N>+@N>+@N>+@N>+@pN pNpNpN`pNpNpNvA N6 -"-N\ -"-N -T/ -T"N\ -NH <r$<L8NN/ -NH <r$<L8NN"Nn)| -+@NC`N^Hm`NR***"_NfNC\ -"-N^A`N <Ѝ/p _ѐNC`N^`NJVHgNJWHgA NJNdN.ANA퀌N/-BAf|N>+|BpAN@AJ^N>/-BpC큊~N4+@?-?-A0"N -N&<x*<NH -NANXN޸L8NN? -R?Hmp _"N/-BpC큊~N4NNHPAb,N>RAJ^N>/-HxpC큊~N4CNN&HPAb,N>RAJ^N>/-HxpC큊~N4NH <r$<L8N&<x*<NzNN+@?-?-A6"N -NH -NANXN޸L8NN??-Hmp _"NRAJ^N>/-BpC큐~N4/ -N&<x*<NNC큖NH -C큖N$VH?Ae,N>RAJ^N>/-BpC큐~N4/ -N&<x*<N&<x*<NNC큜NH -C큜N$VH?Ae,N>RAJ^N>/-HxpC큐~N4/ -N&<x*<NNC큢NH -C큢N$VH?Ae,N>RNn`NqAJ^N>BpC큐~N4N&<x*<NN+@?-?-A<"N -NH -NANXN޸L8NN? -T?A"N -N&<x*<NNHPAb,N>RAJ^N>HxpC큐~N4N&<x*<N.&<x*<NN H <ȴ92RRAJ^N>HxpC큐~N4R+@4-4NpJBfNI&?-?-A<"N -NH -NANXN޸L8NN? -T?A"NHxpC큐~N4N&<x*<NNHPAb,N>RAJ^N>BpA퀌N@HxpC큐~N4NH -C큨NNL8NFfNI -N&<x*<NN+@ -N&<x*<NN+@Nn`~Nq?-?-AH"N -NH -NANXN޸L8N&<x*<NN? -NH -NANXN޸L8NN?Hmp _"NNdN. -CfN+@ -ClN+@ -CrNNH -C~NNL8N(AN݄ -CxNNH -C큄NNL8N(AN݄NdN.A퀄N -JVHfNM -SWHfNM`+|pA퀄N@/-NFsound HP -NN"_NHPNF ,"_NHP -NH <r$<L8NN/BpC큊~N4NN"_NHPNF ,"_NHP -NH <r$<L8NN/HxpC큊~N4NN"_NHPNF ,"_NHP -NH <r$<L8NN/HxpC큊~N4NN"_NHPNF "_NCHNlNn`NqHxNFwave HPBpC큐~N4NN"_NHPNF ,"_NHPHxpC큐~N4NN"_NHPNF ,"_NHPHxpC큐~N4NN"_NHPNF ,"_NHPHxpC큐~N4NN"_NHPNF "_NCHNl+|pN pNpNpN`+| -A퀄N@ -NvN4&<x*<NN"<,N\ -CHN&NNn`NqNqNdN.ANA퀴N - ]HfNN -NH <r$<L8N&<x*<NN+@ -NH <r$<L8N&<x*<NN+@NN -NH <r$<L8NN+@ -JWHfNO`/-BB -C큊~Nr?-?-A0"N -N&<x*<NH -NANXN޸L8NN? -R?Hmp _"N/-BpC큊~N4NNHPAb,N> -SWHfNP* -JWHfNO -N&<x*<N&<x*<NN+@NO -N&<x*<NN,N+@ -]]HfNOR/-HxB -C큊~Nr -CNN&HPAb,N> -UWHfNP/-HxB -RC큊~Nr?-?-A6"N -NH -NANXN޸L8NN??-Hmp _"N -WWHfNQ2/- -C큖NFC큖NHBBBpC큐~N4/ -N&<x*<NN"C큐~Nr -C큖N$VH?Ae,N> -YWHfNQ/- -C큜NFC큜NHBBBpC큐~N4/ -N&<x*<N&<x*<NN"C큐~Nr -C큜N$VH?Ae,N> -[WHfNR\/- -C큢NFC큢NHHxBHxpC큐~N4/ -N&<x*<NN"C큐~Nr -C큢N$VH?Ae,N> -]WHfNS.BBBpC큐~N4NH -NvN4L8NNC큐~Nr?-?-A<"N -NH -NANXN޸L8NN? -T?A"N -N&<x*<NNHPAb,N> -_WHfNUp -N&<x*<NpJBgp/HxpC큐~N4NzNpJBgp$VHfNSHxpC큐~N @S -N&<x*<NpJBgp/HxpC큐~N4N&<x*<NpJBgp$VHfNT HxpC큐~N @R -N&<x*<NpJBgp/ -N&<x*<NpJBgp$VHfNULHxB -NH <r$<L8N&<ȴ98 -N&<x*<NFpJBgp/4-6pJBgpF$VHfNVHRAJ^N>4-4pJBgpF$VH;B44-4NpJBfNV RHxpC큐~N4R+@NV4?-?-A<"NNRA U SHPAb,N>NJWHgNVH` -N&<x*<NFpJBgp/4-4pJBgp$VHfNWFHxB -NH <r$<L8NNC큐~Nr?-?-A<"N -NH -NANXN޸L8NN? -T?A"NHxpC큐~N4N&<x*<NNHPAb,N> - WHfNX(HxB -NH -NvN4L8NNC큨NC큐~Nr?-?-AH"N -NH -NANXN޸L8N&<x*<NN? -NH -NANXN޸L8NN?Hmp _"NNdN.4-6NpJBfNYP -\HfNXtB -Q\HfNXpBR?<BBpC큊~N4?B -C큮~N4/BHxpC큊~N4" _N`?<HxBpC큊~N4?Hx -C큮~N4/HxHxpC큊~N4" _N`?<HxBpC큊~N4?Hx -C큮~N4/HxHxpC큊~N4" _N`RNZ(?<BBpC큊~N4?BHxpC큊~N4/BHxpC큊~N4" _N`?<HxBpC큊~N4?HxHxpC큊~N4/HxHxpC큊~N4" _N`?<HxBpC큊~N4?HxHxpC큊~N4/HxHxpC큊~N4" _N`BpC큐~N4NHxpC큐~N4NHxpC큐~N4NHxpC큐~N4N4-4pJBgp/4-6pJBgp$VHfN[BpNRNNNzN~pJBgp/ -NHHxpC큐~N4NL8NpJBgp/4-2pJBgp$VHgNdN. -JWHfN[ -R/NF ! NIX DRIN ! CBNl -T/A CBNl -V/A CBNlAaN> -R/p"NZprNZN\~+| -A퀄N@ -Э/p NHP -CTN&"_NCBNlNn`NqNq -NH -NL8N&<x*<NN/A CBNl -NH -NL8N&<x*<NN/A CBNlAaN>prNZNdN.A퀄NA퀌NANANANANA NN,;B8N>+@BN>+@ - RWHfN]N>+@N>+@N>+@N>+@+m -A퀌N@/- -CfNЭCfNH/- -ClNЭClNH/- -CrNCrNH/- -CxNCxNH/- -C~NC~NH/- -C큄NC큄NHRNn`^NqN^./- - CfNH/-N>ClNH/-N>CrNH/-N>CxNH/-N>C~NH/-N>C큄NHR -^Hg4-8NpJBfN_(B/-pC`NHRBpdA퀄N@/-NCBNl -CBN&HPA "_NfN^/- -RC`NHR -CBN&HPNR***"_Ng N0N^Nn`NqNq/-A CBNl -R/A CBNl/-pdC`NHABNNdN.A퀄NA:NANNH -NL8NANXNN+@NNH -NL8NANXNN+@NdN.A퀌NBpNHNH -C`NNL8NfNal+mR`pNHNH -C`NNL8NN+@NdN.NABNBp2A퀰N@ -CZN"-NZNn`NqNq)|6| JHxpCfN?pClN?pCrN/pCxN""_ _.<5N`NdN."_AlNANANpN pNpNpN`AlN]]HfNbp NHPAl"_NHPp N"_NClN^` -NH -CrNNvN4L8NHAlNNvN4L8NN+@ -NH <r$<L8NN+@ -"-N\AlNNdN.N."_ArNpONHPArr"_NpN -NN+| -A퀄N@pN -CTN&NFNBpAN@BpA퀌N@pN/-/- -C큊~N4NNNn`NqNqNn`NqNqBpA퀌N@pN/- -C큐~N4NNNn`NqNqNn`TNqpNhNdN."_ArNpINHPArr"_NpNN+@+| -A퀄N@pN/-NCTNlBpAN@BpA퀌N@pN/-/-/-NC큊~NrNn`NqNqNn`NqNqBpA퀌N@pN/-/-NC큐~NrNn`NqNqNn``NqpNhNdN.4A>N4->NpJBfNe`?-?-A$"NNer?-?-A*"NNJVHfNe`NdN."_AxNA@NA퀄NA~NBm@ANN+@HmNp"-"_NbC~N^Hm~p.N"_NfNet;B@S -NzNFpJBgp/Hm~p\N"_NpJBgp$VHg4-@pJBgpF$VHfNftHmNp.N"_NHPAx"_NCNN^NdN. A N AN/- -CTN&CTNlBpAN@BpA퀌N@/-/-/- /-/- -C큊~N4C큊~NrNn`NqNqNn`NqNqBpA퀌N@/-/- /- -C큐~N4C큐~NrNn`NqNqNdN. A,N A(N A$NA C`N^pN pNpNp N` -$NH <r$<L8NN/ -(NH <r$<L8NN"N\ -$NH -,NvN4L8N&<x*<NN/ -(Z"Nn+| -,A퀄N@Hm`p_N"_NC`N^Nn`NqNq -("-$N\A`NA C`N^NC~N^Hm~A "_NpJBgp/NNzN~pJBgp$VHgA~N8 ^HfNi4Hm` -,NH <r$<L8NN"_N4HPA~N""_NC`N^ -("-$N\A`NA~N8N&<x*<NFpJBgp/A`NNzNpJBgp$VHfNiHm`A`NNH <r$<L8NN"_N4C`N^ -("-$N\Hm`p_N"_NNA~N8N&<x*<NFpJBgp/NNzN~pJBgp$VHgPNdN.110 49530350 Dieses Programm ist PUBLIC DOMAIN Es darf jederzeit -ohne nderungen- frei kopiert und weitergegeben werden. Wie bei vielen anderen Public Domain- Programmen auch hier die Bitte um eine kleine Spende (Wegen der vielen Arbeit, die drinsteckt und als Aufmunterung fr den sich aufopfernden Programmierer. Auch hier gibt's was als Dankeschn: - ab 5,-- DM eine Anleitung. - fr zustzlich eine Diskette - und frankierten Rckumschlag - die Anleitung und kommentiertes - Listing auf ebendieser Diskette. Das alles gibt es bei: 12/1986 Thomas Wiedel Zanggasse 34 65 MainzMainzer Volksbank Blz:551 900 00 Konto:190463018***C do#C do+D re#D re+E miF fa#F fa+G so#G so+A lab la+H si9118101513121424 1 6 6 6 8 1 1 8 8 810 6 1313101311 8 1111 81110 6 610101011 6 61111111310 181813181511 1515111513101313101311 8 1111 81110 6 1 6 6 6 8 1 1 8 8 810 624 3 5 6 81011 21110 8 6 5 6 610101515 8 814141717 6 610101515 8 814141717 3 5 6 81011 21110 8 6 5 3 5 6 81011 21110 8 6 5 6 610101515 8 814141717-123100110520270 1 1109142 87 18 16 1110193 84 31 84 2112243 80 21 8 1109282 87 25 1 1109312 87 25 1 1109342 87 25 1 1-1 1 6109 0-1 1 6218 0444126176 18 32 1444192176 18176 1594220 25 23 1 1444258171 18 50 1442314176 58 4 2 Desk Version 2.0 TOP SECRET-----------------------123456 Daten Soundmen speichern Soundmen laden Soundmen lschen--------------------- Sound speichern Sound lschen--------------------- quit Anzeigen Gfa - Basic ------------- Anzeige aus Test Kanal A Kanal B Kanal C Gesamtklang ------------- Liedchen Soundmen Nullsung ---------------***. " @ .ZT "DD j :2, ,.BTh.H(&B  r| (Zl\,J~<:80~txVvjF . &BRR"zކT@@T$l`QP  8 T?2 T* T p 8 0    ? ?               !! >   !!!! !!!!!  ?!!!!!?!! !!    !!!! ! !!    !!!! >>!   !!!!  !   !!!  !   !!! ! !!    !   0#0F ~/_~ ??* 98<4qy9 `l 2 0`l `l 2`g`g`g0`l  @(#?`g?p`g0 @( @(p`fpx```0 @( @( &`fpf`f|```0 @ @( `fxf`fnf```0 @ @( &`f|f`gf```0 @ @( `fnf`cf```4 @ @( &`fgf`af```0 @ @( `fcf``f```0 @ @( #`faf```g``0 @ @( `f`f``g``0 @ @(  `f`pf``f````0 @ @( `f`8f``f````0 @ @( `f`f``f```00 @ @(`f`f``f```04 @ `h `f`f``f```0 @ `h`f```f```0 @  0 &`f``f`f``` 0 @ ? `f``f`f``` 0 @ ~ &`f`f`f`f```0@  p`fp`fp`00@ #?`g?`f?0 `g`f4 <"sϒ 0>| A"(0!Q@ 9*?ȼ!Wx 6(!T@ 8x"o !S| d" T> L?" 8   ?  ' ( /H`4H`0V (p8=?px6@ '(-@ 1@ P(% P@@ Ph P`@@ `hhH `hh@ `H`H C QIHQIԅFDKFC S K 0@S K T HJJ HHB WO%p@0@WOT_2_ UM%Q0UM d$h"(Hh  I=߄IĤĬH HpHpGCCKG     UUUUUUUUUUUV* UUUUUUUUUUUU` UUUUUUUUUUUUX UUUUUUUUUU} MUUUUUUUUUUZjUUUUUUUUUUVac  ֪UUUUUUUUUUU "@ eUUUUUUUUUUZ*UUUUUUUUUUV  UUUUUUUUUU} "@ UUUUUUUUUUUUXUUUUUUUUUUUV   UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV  T XjVDDX  `U T XjV  `U T XjV?DDDDDDDX  `U T XjV  `U `T XjVDDDDDDDDDDDDX @ `U  @T XjV  `U T XjVDDDDDDDDDDDDDDDDDX AB¯? jCeB#TX?V *EE%&D"`?  *II )TXV 2QQ1T` $bQ"a$aTcT?XV áá#`? TX?V ` TXV ?` TX?V `? TXV ` T?XV `? TX?V  UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU@@ UUUUUUUUUUUUXUUUUUUUUUUUV@ UUUUUUUUUUUU@ UUUUUUUUUUUUXUUUUUUUUUUUV@ UUUUUUUUUUUU@ UUUUUUUUUUUUXUUUUUUUUUUUV C UUUUUUUUUUUU DKFC UUUUUUUUUUUUXUUUUUUUUUUUV HJJ HHB UUUUUUUUUUUU_2_ UUUUUUUUUUUUXUUUUUUUUUUUV$(h"(Hh  UUUUUUUUUUUUDLH UUUUUUUUUUUUXUUUUUUUUUUUVCCG UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU WXV  `U T XjVac   `U "@ T XjV   `U "@ T XjV    `U T XjV  `U T XjV  `U T XjV  `U WXV   ?:P  V ?=XՀV   ?:P   V ?=XՀV`   ?:P  BV ?=XՀV  @B ?:P?# V ?=XՀV!  ?:P?# V ?=XՀV  e#BcB  ?:P  &DD V ?=XՀV`  y*LzO ?:P   !2T"TV ?=XՀV  A"TBTa ?:P  "##V =X>>Հ|>V     :P V   =XՀV    :P V   =XՀV    :P V   =XՀV    :P V   =XՀV    :P V   =XՀV    :P? V   =XՀV     :P  V   =XՀV  _  UXV  W " UUUUUUUUUUUUXUUUUUUUUUUUV > UUUUUUUUUUUU@@@ " UUUUUUUUUUUUXUUUUUUUUUUUV@@ " UUUUUUUUUUUU!@@  UUUUUUUUUUUUXUUUUUUUUUUUV @@  UUUUUUUUUUUU @@  UUUUUUUUUUUUXUUUUUUUUUUUV"C C  UUUUUUUUUUUU&DKF DKFC O UUUUUUUUUUUUXUUUUUUUUUUUV*HHJLNHJJ HHB!P UUUUUUUUUUUU2_4_2_!N UUUUUUUUUUUUXUUUUUUUUUUUV"((h"D(h"(Hh !A UUUUUUUUUUUU"HLH! UUUUUUUUUUUUXUUUUUUUUUUUVGGG  UUUUUUUUUUUU  UUUUUUUUUUUUXUUUUUUUUUUUV    T Xj@V?  A0TJ`U@ TB @ TUMXj@V @ `U@ T 0 @ Xj@Vac   `@ U@ "@ T X0j@V  b?8 `U@ "@ T b$ "D Xjx@xV    #$/c `U@ AT" D.( Xj@?V Cj :0T!H `U@ E* T !<@XF Xjx@xV  * aȶ `U@ Q2$T (: X0j@V "Q$b$`¬ * `@ U@  áÀT H$!` Xj@V  #1b@ `U@ T?? Xj@VDDX ?| `U@ T Xj@V  `U@ WXV?DDDDDDDX UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUVDDDDDDDDDDDDX UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUVDDDDDDDDDDDDDDDDDX UUUUUUUUUUUU? UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUVV UUUUUUUUUUUU6 UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV  TX*V 6l U5XV `|>5r' TNX>"p* (V `{P`c5z' T`_xNXcp* V @`n A`~cp`5y T`wAXc0*V `;`c85 T`}Xc*pV e"b% `n`cw5 $$% T`GqXc;*`V y,/ c`5 !44 Ta߀X*wV@ A$da) `|5; #T0wX* V ?`5  T~X{*߀V `?5 TX*xVUDC 6l  UHB U5XV4 `5$$H  WXVDDH UUUUUUUUUUUUCCCB UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV  TX*V 6l U5XV `5r' TNX"p* (V  P`x5z'  T }NX{p*` V  @ ;A`5y0 @ @T 0wAX* V0   `x5;@@(  8 HCTaX*wV( 8 ԅFJ@c`5  $ AX T HJ@TGyX;*`V, x T_@n`w5"! d$h"@T}X*xV*   ĤĨS;À`5!B GCCGG#T7X8* V+ ± @`x5D " @  @T~X{*߀Vƪ** `?5$ H @ TX*xV*ʲj 6l (  U5XV `5  P WXV꺮ڸ UUUUUUUUUUUU@`  UUUUUUUUUUUUXUUUUUUUUUUUV UUUUUUUUUUUU UUUUUUUUUUUUXUUUUUUUUUUUV  TX*V `5 TX*V Ȝ`<~D5r' TD (X!E* (V@   `>!xD5z'@` QBBBTD }(XB!{D*` V `( QBBB ;<`?!95y$ `BBT0wX* V(  l @BC `x5;@ ( @B BCDATaX*wV*h JBJE c`5@  H  JGJE* TGyX;*`Vj* * JJ In`w5@@ " @ RRRQ$T}X*xV jj RR""RQ$`;À`5@!BX !!ÁT7X8* V + `x5@"!8 T~X{*߀V*k  `?5 @ $ A TX*xVj* `5@@@(  TX*V j* `5@0  WXV ꪸ UUUUUUUUUUUU @ }UUUUUUUUUUWXꪪUUUUUUUUUUU* ΪuUUUUUUUUUUE.   UUUUUUUUUUU_UUUUUUUUUUWj* 檪5UUUUUUUUUUE. }UUUUUUUUUUWXꪪUUUUUUUUUUU  UUUUUUUUUUUUj UUUUUUUUUUUp5UUUUUUUUUUU\ ' (?V /V (V '  ?   |||0| |0xxxx0x|xxxxxxxx$x0|~|D|x ||xx|@|| x ||||xxx8x|x8xxxxx|||x8|xx HORCH - SOUNDCOMPUTER V 1.2 Das vorliegende Programm ermglicht es auf sehr komfortabele Weise, Dem AtariST selbstkreierte Gerusche zu entlocken. Da das Programm vollstndig Maus- und Mengesteuert ist, drfte die Bedienung kein Problem darstellen. Die Idee zu diesem Projekt hat mir der Artikel "Der Soundchip" in ST COMPUTER, Juni '86, Seite 14 geliefert. Dort findet der geneigte Leser auch Hintergrundinformation zur Sounderzeugung auf den ST. Motiviert wurde ich durch den Erwerb des GfA-Interpreters, den ich durch dieses Programm benutzen lernen wollte. Das Produkt ist, glaube ich, eine so hbsche Spielerei geworden, da ich mich ent- schlossen habe, es als Public Domain Programm weiterzugeben. ACHTUNG! Das Programm funktioniert nur, wenn sich alle Hilfsdateien, also SOUNDCOM.PRG, SOUNDCOM.PIC sowie SOUNDS.SND in einem Ordner befin- den. In diesem Ordner sollten sich folgende Dateien befinden: SOUNDCOM.PRG - Das Programm \ SOUNDCOM.PIC - Das Titelbild > unbedingt erforderlich SOUNDS .SND - Die Grundgerusche / MASCHINE.SND - irgenwelche Gerusche TEST .SND - " " BITTE_LE.SEN - dieses Schriftstck An dieser Stelle sei ein Wort des Dankes gerichtet an: ... GfA fr das schne Basic ... meine WG-Genossen fr die Pfege und das Mitgefhl, das Programmierer nach durchgehackten Nchten zuweilen brauchen. ... und an Dagmar ganz speziell! Fr Fragen und Anregungen: Meine Adresse: Thomas Wiedel Zanggasse 34 6500 Mainz 1 Und Nun... Viel Spass beim Spielen 6 " Hubschrauber " 0 1 1 0 1 1 0 12 1 56 7 10 395 0 " Motor 1 " 15 2 2 0 1 1 0 12 1 5641 1 10 85 0 " Flugzeug " 15 2 4 0 1 1 14 12 2 3100 3 12 76 0 " Motorboot " 15 1 3 11 1 2 11 1 1 15 1 10 300 0 " Turbine " 15 11 7 0 1 1 2 11 7 2345 6 8 32 -1 " Motor 2 " 15 1 5 15 1 5 15 1 5 4415 7 10 95 9 9 " Hubschrauber " 0 1 1 0 1 1 0 12 1 56 7 10 395 0 " Glckchen " 15 10 6 0 1 1 0 12 1 1 1 9 12085 0 " Pfeife " 15 12 8 0 1 1 0 12 1 0 1 10 0 0 " Motor 1 " 15 2 2 0 1 1 0 12 1 5641 1 10 85 0 " Flugzeug " 15 2 4 0 1 1 14 12 2 3100 3 12 76 0 " Motorboot " 15 1 3 11 1 2 11 1 1 15 1 10 300 0 " Herzton " 9 1 4 7 1 4 10 1 1 7739 3 8 4964 31 " Orchester " 14 1 3 14 5 5 14 8 2 39 5 9 16511 5 " comp " 14 1 5 14 5 7 14 8 6 7 7 9 17391 -1 In a perfect world, I would have translated the docs, but my German is limited, and they seem to use a special programmers' jargon which omits vowels from some words. Anyway here's how to load a tune into Music Writer: First start up the GFABASRO.PRG, which is inside the MUSIK.PRG folder, inside the MUSIC folder. When GFA BASIC's File Selector appears, open up in turn the folders MUSIC and MUSIK.PRG, and select MUSIK.BAS to load the Music Writer program into GFA BASIC. When Music Writer's screen and menu etc appears, go to the File menu and choose Read. Another File Selector pops up (good aren't they). Open up in turn the folders MUSIC and STUECKE.MUS which means `pieces'. You can now choose any of the files ANDALUSA, DANZA etc, or open up the STUNDE folder (means `hour' I think) for ANDANTE6, MENUETT etc. The file gets loaded into Music Writer and can be edited etc as well as played. Much better than The Music Studio at 30 and it runs in hi-res too. Best wishes, The South West Software Library Martyn Dryden 16 November 1988