more docs for PROTESTPLAYER v1.13 sorry there's no 1.14 update, but it should all be self-explanatory. Notice the new KS3.0 features!! :-D COPYRIGHT NOTICE This program, including all its associated files, is hereby placed in the Public Domain. You may spread it freely, as long as you do not charge anything for it, and as long as this documentation file is included. If you remove it, I'll sue your ass off. So you've been warned, pack maker lamers. And I do mean NO charge. Not even the so-called "nominal fee for copying and distribution" that PD companies seem to think they can get away with. Anyway, if you want to include this on a cover disk, PD library disk or anything else you have to pay for to get, you're welcome to contact me, and I'm sure we can work out some sort of arrangement. And of course this is © 1993 Banana Dezign, and if you even look at it with a disassembler or a file zapper my lawyers will pick you clean. BACKGROUND ProtestPlayer was originally intended as a cheap substitute for NPlay 3 during the development of the latter program. Then I decided to make it tough enough for me to listen to music while I coded demos that would use the CIA resources for themselves without allocating them system-wise. Other players always fucked up after the system was up and running again, because the demos would modify the CIA registers and the players never considered this situation. So I wanted to make a player that could. Time passed. ProtestPlayer just kept getting bigger. That's the way it is with me. The original program took me one day to code, interface, tough replayer and all. But I couldn't stay away from it. I kept adding little widgets here and there, making improvements all the time, even major additions like replayers for more module formats, and even an ARexx port. ProtestPlayer today could perhaps have been one of the best players in the business, if the choice of module formats and user interface hadn't been so eccentric. But I don't care. ProtestPlayer was always intended for my own personal use, and never for public distribution. The fact that I decided to release it doesn't change this. If you like it, fine! If not, don't complain to me, because I think it's just the way it's supposed to be. I still hope you'll like ProtestPlayer. If you do, keep in mind that it was based on a small part of the actual NPlay 3 source, and that NPlay 3 will be a LOT better. It'll be like nothing you've ever seen before. You're welcome to hold your breath. SYSTEM REQUIREMENTS ProtestPlayer has to my knowledge only been tested on A1200s and an early A2000 with OS1.3. If you wish to use ProtestPlayer on an OS1.3 machine, well, you're doing it to yourself. Well, let's be more specific. All ProtestPlayer requires of your computer is that it is fitted with an OS2.04 ROM or something more recent. It should work on anything from an upgraded A500 to an A4000, but as I said it's only been betatested on A1200s with various configurations. I can't really vouch for it if you're running on something less than a 60EC020, but I think it should work all right. And before you start asking depraved questions, no, I won't consider writing an OS1.3 version. I don't intend to work my butt off with system routines only marginally better than those in the PC just to please a nation of change-resistant neanderthals. USAGE This is the easy bit. Just launch it, either from Workbench or from the CLI. If you choose the latter, you'll want to Run >NIL: it, as it's not going to detatch itself. Then just press the Load gadget or the L key, and select a module, or drop an icon into the window, or type a filename in the string gadget, and ProtestPlayer will load the file and play it. If you want to use the other features, either figure them out for yourself or press the Help key for a list. Of course, there are gadgets for most of them too. If you launch ProtestPlayer from ARexx, it'd be a good idea to Run >NIL: it, or the script will hang until you end the player. That's probably not what you want to do if you're going to use ProtestPlayer's ARexx port... ProtestPlayer can accept one parameter from the CLI, but it is only really useful for ARexx programmers. The template is as follows: ProtestPlayer [hide] The keyword 'hide' must be given in lower case letters to be recognized (quick and dirty code, call me generous for even including it...) If specified, it will make ProtestPlayer hide the interface upon starting, like pressing the 'Hide' gadget but automatic. FEATURES In short, ProtestPlayer has: * An AppWindow, so you can drop icons in it for playing * An AppMenuItem when it's hidden * Autoadjusting to the current screen font * A clean and healthy GadTools interface * An ARexx port * Doublebuffering while loading modules so the last module doesn't end before it has to * Correct handling of tempo commands, recognizes modules from VBL-only editors as well as newer ones * Very robust CIA interrupt that kicks itself back in if something's been altered (eg. by a demo) * The CIA interrupt defers to a Softint to enable fast serial transfer while playing * Continuous updating (25 times a second) of available memory * Can move itself during run-time to any public screen you like * A very constructive and informative documentation :-) There are also a few things it can't do that you should know about, and my reason for not including them: * It doesn't support Kickstart 1.3 machines. I swear upon the Coca Cola Company that I will NEVER write an OS1.3 version! If you insist on clinging to outdated system software, you'll have to pay the price. * It doesn't support any packer format at all. This is because I don't feel it's necessary. All decent packers have some way of making the unpacking of their data files transparent to the system (like XFH for XPK and PPPatcher for PowerPacker). Use these if you have to pack your modules. * It won't play all module formats ever conceived in the history of the Amiga. It only plays those I have modules for that I care to listen to. If you want to see a specific module format supported, you'll have to send me a module that'll make it worthwhile for me to include it. * It isn't a commodity, yet. I'll get around to making it one real soon now. * No preferences setting. It's hardwired to suit my own taste, and that's just the way I like it. :-) SUPPORT As of today, ProtestPlayer will only play standard 31-instrument #?Tracker modules, NoisePacker 3, UNIC-Tracker and ProRunner 1.0 encoded modules. Note that ProRunner converts its modules during initialisation, so that you'd only need to play this format if you're a ripper. If you are, rejoice! - ProtestPlayer actually converts the PR1.0 format back to standard ProTracker format in memory before playing it. This not only takes less memory, it allows you to rip the module while ProtestPlayer is playing it, and voila! you can load the module into ProTracker! I might add this feature for UNIC-Tracker too, as it looks fairly easy to do. I definitely WON'T for NP3! It's not even close to standard ProTracker... My next planned update is the IFF 8SVX sample format. You see, I've got quite a few samples I'd like to hear lying about, including a 400Kb long Hare Krishna sample! YEAH! (hare krishna hare krishna krishna krishna hare hare hare rama hare rama rama rama hare hare) Sometime real soon now I'm also planning to make a few Tracker converters, to convert eccentric module formats into standard ProTracker, thus saving the memory occupied by additional replayers, besides being a useful feature in general. Planned converters are at least UNIC-Tracker and NP3, but probably also a few other optimizer formats (ProPacker, NP2, ProRunner 2, etc.) As I said, NO packer support! Too bad, but then again I'm working on NPlay v3.0 as well, and that'll take ANYTHING. ProtestPlayer is really only a temporary solution to meet my own requirements. It's still a better player than most of the competition, though. AREXX ProtestPlayer's ARexx port is called 'PROTEST'. Its ARexx handling code is very basic, so if you launch more than one ProtestPlayer, their ARexx ports will all be called 'PROTEST'. I'll fix this in later versions, but for now you'll have to work around it by having only one ProtestPlayer running. ProtestPlayer recognizes the following commands: PLAY - starts playing the current module. STOP - stops playing. CONT - starts playing the module from where it was last stopped. LOAD filename - attempts to load the specified module. If successful, ProtestPlayer will NOT start playing it - you'll have to issue a PLAY command yourself. QUIT - ends ProtestPlayer, closes down everything. HIDE - closes the ProtestPlayer window. SHOW - restores the window. GETTING IN TOUCH If you want to contact me, it'd better be for a valid reason (anything but ProtestPlayer). I'd be happy to answer your letter if you're a fellow coder, especially if you're into players or music editors. But NO beginners! I'm a coder, not an elementary school teacher. I'd also welcome any potential elite mailtrading or friendship contacts, but if you're a nobody, it's not advisable to send disks in the first letter, as you'll probably never see them again. If you're a potential distributor, feel free to write anytime. I'm not THAT expensive. :-) My address: Necro / BDZ Postboks 2032 N-6501 KRISTIANSUND Norway Or phone +47-715-72107 (073-72107 before September 9th) ACKNOWLEDGEMENTS Thanks to the ProtestPlayer betatesters: Mostly myself, but also Saracen/BDZ for his suggestions about the ARexx support. Hello to Kjøttmace, Stripe and the rest of Talent (sorry for leaving you, but I can't say no to It...), Khul/Nerve Axis (good luck with your module player, but I'm afraid you'll be out of business soon :-D), Scourger/ Destiny (OK so Saracen left you, but if you don't return my Book of Mormon thou wilt surely burn in Hell!!), the guys in Andromeda (nice talking to you at Rendezvous - almost compensated for it being the worst party I've been to so far :-( ), Optic/Devils (you look cute with the tie), and of course the naughty boys in Banana Dezign! NOW PISS OFF