home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 428.lha / cbtaudio / revision.h < prev   
Text File  |  1990-08-28  |  13KB  |  272 lines

  1. "My mistress' eyes are nothing like the sun."
  2.                                                Shakespeare/Sting
  3.  
  4.  
  5. CBTAudio (c) 1989 by Jerry J. Trantow
  6.  
  7. This program was originally written to test out volume modulation ideas on the Amiga.  It has gradually become an Intuition Program.  I have a lot of high hopes for it, but a lot of hardwork remains.  Unfortunately I have not stuck the volume modulation b
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. ack in yet.
  18.  
  19.   Some of the More Interesting PLANS
  20.     Linking of Windows for Looped Sound
  21.     Filtering the Loops to Avoid Clicks
  22.   * Aggressive Techniques to Play back >8bits of resolution
  23.     Adaptive Filtering
  24.     Seperate tasks for audio, display, and interface
  25.   * Samples reside in either FAST or CHIP Ram (Double Buffering)
  26.   * CD type 2 or 4 times oversampling SHOULD BE DONE
  27.     Adjustable Screen Size, Type and Position would be nice
  28.   * Clipboard functional with standard Amiga programs
  29.     FFT Clipboard compatible
  30.     Need to add Special/Decimate and FFT/Window functionality
  31.     Faster Selecting using DELTA MOUSE MOVES
  32.     Human Hearing Tranfer Function Display
  33.   * Fancier Gadgetry
  34.     Full range of Filtering Functions including Adaptive
  35.     ASM the FFT(), Filter() etc to get performance increases
  36.  ** Need to add Fade In / Fade Out to the Amplify Feature (Easy)
  37.     Dynamically size menus/gadgets or explicitly declare fonts 
  38.   * Memory cleanup to flush WHENEVER low memory
  39.     FFT editor for Don Senzig
  40.     GadgetIntuiText be selectable (LONG/SHORT menus)
  41.     various data compression schemes
  42.     should allow projects to pass environment if ~extended 
  43.     Display should have a vert scroll Gadget to show volume
  44.     Need to watch for 2*64K Limitation in Play()
  45.     Make the ChunkList editable (Utility)
  46.     Make the ToolType Array editable (Utility)
  47.     Save/Load variety of formats (Utility)
  48.     fr should be an structure instance instead of a pointer
  49.     Should implement LACE ToolType and check for PAL
  50.   * Need to have Execute Requester pop up on the CUSTOMSCREEN
  51.  
  52.   History
  53.   Spring1986  Started audio.c used assembly to play back samples
  54.         1987  Changed from mix of ASM & C to Complete C
  55.   5 Feb 1988  Changed over to a Multiple Project Scheme
  56.  10 Feb 1988  Added Mouse Selection to the Display
  57.  13 Feb 1988  Mouse Select Works
  58.  14 Feb 1988  Partitioned Program (It's about time!!)
  59.  15 Feb 1988  Fixed File input for AZTEC_C
  60.  17 Feb 1988  Worked on Zoom In, Zoom Out
  61.  23 Feb 1988  Added Flags to Node Structure
  62.  24 Feb 1988  Fixed Gadget MOUSEMOVEs screwing up select
  63.  24 Feb 1988  Gave up on DELTAMOVEs w/Select
  64.  26 Feb 1988  ModifyProp() math to FLOATs, ULONG overflowed
  65.  27 Feb 1988  Changed loop variables in Display() for speed
  66.  19 Feb 1988  Did some more partioning - cleanup()
  67.  24 Mar 1988  Added Access! File and Color Requesters
  68.  26 Mar 1988  Added IFF Reader
  69.  30 Mar 1988  Added CUT functionality (non-clipboard)
  70.  31 Mar 1988  Added PASTE,COPY functions (still non-Clipboard)
  71.   *********** CBT00 ****************************************
  72.   1 Apr 88  Cleaned up the Menus a little, Added COMMSEQ
  73.   1 Apr 88  Added PLAY Gadgets to all windows
  74.  10 Apr 88  Incorporated FFT
  75.  10 Apr 88  Added Special and FFT to MenuBar
  76.  10 Apr 88  Implemented SPECIAL_Amplify (AUTORANGE)Function
  77.  10 Apr 88  Added SPECIAL_Frequency that multiplies freq by .7
  78.  ************** CBT01**************************************
  79.  11 Apr 88  Changed Project Windows to be SIMPLE_REFRESH
  80.  11 Apr 88  Screen Size uses GfxBase->Normal Values
  81.  12 Apr 88  Fixed Amplify Problem
  82.  20 May 88  Fixed up the IFFRead to Pad the NAME,ANNO,etc chunks
  83.  20 May 88 Added ChunkList and Voice8Header to Jerrys Node
  84.  23 May 88 Added RectFill() to Display() to clear empty windows
  85.   1 Jun 88 Added Requesters for AMPLIFY,FREQUENCY and MULTIPLE
  86.  ************** CBT03 **************************************
  87.  16 Jun 88 Finished ChunkList linked to Node and IFFWriter()
  88.  16 Jun 88 Started coding the OverSampling IDEAs
  89.  21 Jun 88 Did a little bit of ASM speed up to Display()
  90.       Looks like an easy 20% size and factor of 2 in speed
  91.  22 Jun 88 Added some mutual excludes to the menus
  92.  23 Jun 88 Explicitly defined register vars : 4% code size saved
  93.  27 Jun 88 Made the Play Gadgets a little more recognizeable
  94.   5 Jun 88 Lost a lot of time tracking FFT cleanup problem
  95.   7 Jul 88 Strip() was Nulling the UserPort before SafeClose
  96.  24 Jul 88 Added Busy Pointer to the FFT() and Display()
  97.  25 Jul 88 Added Select Pointer for Mouse Selections
  98.  27 Jul 88 Register Variables in audio5.c to speed Mouse Select
  99.      Mouse Select is still too slow, Needs to use ReportMouse() 
  100.  27 Jul 88 Off/OnMenu() for Cut, Copy, Paste
  101.  27 Jul 88 Implemented Crude Filtering
  102.   8 Aug 88 Added File Open Cancel code
  103.   8 Aug 88 Added WaitTOF()s for Select All
  104.   8 Aug 88 Changed Screen BackGround
  105.  23 Oct 88 Somehow managed to lose revision file, used old backup
  106. ********************  CBT05 Release *****************************
  107.  24 Oct 88 Released CBT05 along with some sounds
  108.   1 Nov 88 Figured out most of the WB, still need to write icons
  109.   6 Nov 88 Support multiple Project startup from the WorkBench
  110.   6 Nov 88 Support for COLOR= and ICON=
  111.   7 Nov 88 Fixed the 0 select problem with the play selection 
  112.   8 Nov 88 Starting Cleaning for Fred Fish Submission
  113.   9 Nov 88 Fixed NO_ICON_POSITION for default saves 
  114.   9 Nov 88 Fixed SampleRate/2 in FFT display Window
  115.   9 Nov 88 Added SaveAs Requester for Default Project Name
  116.  15 Nov 88 Started an About Requester
  117.  30 Nov 88 Entered code on Prop_Gad_Calculate()
  118.   1 Dec 88 Integer Proportional Gadget works fine
  119.  17 Dec 88 Changed over to 1.3, Was unable to recreate problems
  120.  10 Jan 89 Sidetracked some time on Prop Gadget Example
  121.            Results are cleaner calculations that work >< 64K
  122.  23 Jan 89 Compiled with +f8 for Lucas Board (ffts fast!!)
  123.   2 Feb 89 Finished PropGadget Example, found Rob Peck's example
  124.   2 Feb 89 Added the a bunch of DEFAULT_DIR to the WB tool info
  125.   3 Feb 89 Tool Info saves the Defaults
  126.   5 Feb 89 Tool Info works with LAST_DIR
  127.   8 Feb 89 TOOL Info settings (DIRs, COLOR, ICON) are remembered
  128.   8 Feb 89 PROJECT Icons get modified ToolTypes & Default Names
  129.  13 Feb 89 Posted ffp and f8 versions to PSA
  130. ----------------------------------------------------------------
  131.  18 Feb 89 Put _checkMath() into f8 version to exit gracefully
  132.  18 Feb 89 Replaced _checkMath with C statement
  133.   5 Mar 89 eliminated floating point in amplify and mouse select
  134.   5 Mar 89 Split the amplify section off from menu.inc 
  135.   9 Mar 89 Added Shrink/Expand Gadgets to all the windows
  136.            Help from Marco P -Thanks-
  137.  14 Mar 89 Finished Images,etc for shrink/expand project window
  138.  18 Mar 89 Implemented WINDOW= for WBmessage and file save
  139.  19 Mar 89 Added WBIconPtr to project
  140.  24 Mar 89 Split off functions to work on ToolTypes (tool.inc)
  141.  30 Mar 89 Finished AllocTool() & FreeTool() for better support
  142.   4 Apr 89 Fixed p_open() to work with startup message or menu
  143.   5 Apr 89 WINDOW= string during all opens, saves
  144.   9 Apr 89 Updated the comments a little bit (DEFAULT_ -> DEF_ 
  145.   9 Apr 89 Started JJTsDisplayBeep to replace all the printf
  146.  15 May 89 My wife finished her paper, so I can play again
  147.  15 May 89 Brought Voice8Header into the JerrysNode structure
  148.  15 May 89 Play() looks at Voice8Header to get the volume
  149.  16 May 89 Implemented FLUSH= to flush libs/fonts on exit
  150.  22 May 89 Samples are played as they get read in
  151.  22 May 89 Implemented EDIT_KEEP option
  152.   1 Jun 89 Iplemented an OPENSND when program starts
  153.  12 Jun 89 Implemented REVISED Flag in the JerrysNode Structure
  154.  12 Jun 89 .Voice8Header should really be a pointer to the VHDR chunk
  155.  18 Jun 89 Fixed fseek() in iff.c and implemented FileSave if changed
  156.  18 Jun 89 Sent a version to Pixelations, to demonstrate ToolTypes
  157.  --------------------------------------------------------------------
  158.  19 Jun 89 Hacked up Play(), SetUpAudio(), etc to play VolModulated
  159.  still need to AllocJerrysNode for Volume and set up Volume Body
  160.  19 Jun 89 Serious hacking on  PlayCursors(), started double buffering
  161.  21 Jun 89 There are a lot of Arp functions I would like to use
  162.            could not find the "C" bindings 'ArpBase.h' so it must wait
  163.  23 Jun 89 Changed to ARP library to avoid the FileRequest(),PathName
  164.  23 Jun 89 Arp CloseWSafely() saved me 96 bytes of code
  165.            Arp Create,DeletePort() saved 280 bytes
  166.            Arp Puts() saved 68 bytes
  167.  23 Jun 89 fixed Window Titles were occasionally munged from Save_as
  168.  23 Jun 89 Temporarily disabled palette()-should use WorkBench Tool
  169.  23 Jun 89 Using Arp saved at least 7.5K of data ~6K of code
  170.  24 Jun 89 Removed DEF_DIRs which are not use with ARP
  171.  27 Jun 89 Disabled code for infinite Play because of synchronous Play 
  172.  28 Jun 89 Execute(sys:tools/Palette) to change Screen Colors
  173.   8 Jul 89 Changed Screen Depth from 3 to 2 for memory conservation
  174.   8 Jul 89 Added a very basic PROJECT_ABOUT window
  175.   9 Jul 89 Fixed Scroll Gadget because Play() was word aligning cursors
  176.  12 Jul 89 Added some ASM to display() to speed up display
  177.  15 Jul 89 Directed Requesters to BackWindow, Execute Req still goto WB
  178.  15 Jul 89 Turned off Refresh during FileRequest fixes refresh twice
  179.  15 Jul 89 Started to Highlight selection in display()
  180.  17 Jul 89 Removed Floatpt from gadget.inc, removed some cases in menu.inc
  181.  25 Jul 89 Added ellipsis and general cleanup
  182.  27 Jul 89 Added GraphicDump to Print menu option
  183.  13 Aug 89 Found error in EDIT_KEEP, now use byteCopyMem() in ASM
  184.  20 Aug 89 Now sets the File Comment
  185.  23 Sep 89 Now uses the pathname when Extended Selecting icons
  186.  24 Sep 89 Huffman Compression works, but not written up as IFF extension
  187.   1 Oct 89 Measured 62% to 28% Entropy savings with Delta Huffman code (ave=40%)
  188.   4 Nov 89 Restored support of samples with repeatHiSamples, check for compression 
  189.  14 Nov 89 Added SpinPointer to Busy Pointer
  190.   3 Aug 90 After a long spell of school, work, etc I cleaned up SpinTask
  191.            and changed the implementation of the busy Pointer
  192.  
  193. Program Requirements
  194.  
  195. With an Four Color Screen approximately 100K is required to run the program.  You must have ARP.library in LIBS: and you should assign TOOLS: to the directory that the WorkBench palette program is in. (it comes on Disk2 in the
  196. Tools directory) assign TOOLS: df0:tools
  197.  
  198. The sounds are played synchronously right now.  I will return to asynch when I add in the double buffering.  This will allow multiple samples and the samples wouldn't have to be in MEMF_CHIP. (just the buffers will)  This will take a week or so of program
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208. ming to have Play() as a task and useinterrupts to switch buffers.  Hopefully, I can integrate Volume Modulation back in at this time.
  209.  
  210. I am interested in providing sound support to anyone developing an Amiga program.
  211.  
  212. Jerry J. Trantow
  213. 1560 A. East Irving Place
  214. Milwaukee, Wi 53202
  215. (414) 289-0503
  216.  
  217. If you are fortunate enough to have an 020-881 combo you can use the 
  218. version CBTAudio_f8.  This will ONLY work with a math chip in the co-
  219. processor mode.  (i.e. the CMI board which uses a 68000 and a 881 or 882
  220. in peripheral mode will not work)
  221.  
  222. The program supports the WorkBench, I suggest you use extended select (shift
  223. key) to start multiple projects.  In order to use the defaults in the tool 
  224. icon you must select it before or with the double click.
  225.  
  226. I check the Tool.info for
  227.  
  228. ICON=fileName    Name of default ICON (does not have to be a PROJECT)
  229. COLOR=fileName   needs to be the peculiar hex file Keith defined.
  230. OPENSND=fileName Sound to play when program starts
  231. LAST_DIR= last(present) directory used in file requester
  232. AUTO_PLAY=Y      Plays the sample when it gets opened
  233. AUTO_PREF=Y      This en/disables the automatic saves to the .info files
  234. AUTO_ICON=Y      Adds the default Icon if the file doesn't have an Icon
  235. DELAY=3          Number of seconds to delay before exiting program (debugging)
  236. FLUSH=Y          Flushes Libraries and Fonts when exiting
  237. WINDOW=          Use this to see any debugging messages
  238.  
  239. FONT1=Not implemented Yet
  240. FONT2=Not implemented Yet
  241. ERROR_BEEP= Not Implemented Yet
  242. PLUS_MORE_TO_COME.....
  243.  
  244. I check the Project.info for the following
  245.  
  246. FILETYPE=8SVX
  247. WINDOW=          Dimensions to open the window with
  248.  
  249. Please check the .info file and customize to your hearts content.
  250.  
  251. Known Bugs
  252.  
  253. I still do a CleanUp() instead of a DisplayError() on Gadget Memory allocations
  254. The probablility of this causing a problem is relatively low, but could cause
  255. a problem with low memory.
  256.  
  257. First time the program is run and opens a project I lose 24 bytes (a lock?).  On 
  258. subsequent runs this loss does not occur.  I have not tracked this down.
  259.  
  260. I had a guru when opening a ~IFF file.  I did not track this down yet.
  261.  
  262.  
  263. Special Thanks
  264.  
  265. To Keith Young (of Access! Fame ) whose file and color requester
  266. were blatantly used (until I converted over to the ARP religion).
  267.  
  268. Thanks to Rob Peck for his example on Saving .info information, I still
  269. can not believe how easy it was!!!
  270.  
  271. To all the ARP programmers who have done such a wonderful job!
  272.