home *** CD-ROM | disk | FTP | other *** search
/ Sauce 'n' Code 2 / sauce-n-code-02.adf / ASCII_Source / DiskSample.asc < prev    next >
Text File  |  1995-07-02  |  2KB  |  70 lines

  1. MAIN:
  2.    '      Direct from Disk sample playing by Freak of NFA.
  3.    '      ------------------------------------------------  
  4.    '      This version actually WORKS as opposed to the one 
  5.    '      in the AMOSPro manual that stuttered like mad on  
  6.    '      MY bloody machine.  
  7.    '      ------------------------------------------------  
  8.    '      Programmed on A1200 with 4Mb Fast RAM and a very
  9.    '      slooooow (400k/s) harddrive running DiskExpander! 
  10.    '      ------------------------------------------------  
  11.    '      Permission given to ßudda/NFA to use this source
  12.    '      in his excellent AMOS mag - "Sauce n' Code". 
  13.  
  14.    FILE$="A:DiCK/Our_Song.smp"
  15.    Open In 1,FILE$
  16.       FLEN=Lof(1)
  17.    Close 1
  18.  
  19.    '      Explanation of Variables
  20.    '      ------------------------
  21.    '  SECONDS    =  Seconds of Lead-in Time, low as 2s is okay! 
  22.    '  SPEED      =  Speed you want to play the sample at. 
  23.    '  CHUNKSIZE  =  Speed of Sample * Lead-in time
  24.    '  CHUNKS     =  Number of chunks to load and play 
  25.    '  LASTCHUNK  =  "Remainder" for last chunk (it's SMALLER!)
  26.    '  FLEN       =  Length of the sample you want to play 
  27.    '  BANK       =  Bank currently loading/playing
  28.    '
  29.    SECONDS=5 : SPEED=8343
  30.    CHUNKSIZE=SPEED*SECONDS
  31.    CHUNKS=FLEN/CHUNKSIZE
  32.    If CHUNKS*CHUNKSIZE<>FLEN Then Inc CHUNKS
  33.    LASTCHUNK=FLEN-(CHUNKSIZE*(CHUNKS-1))
  34.  
  35.    '  Two banks of size CHUNKSIZE reserved, one to
  36.    '  play while the other is being filled. 
  37.  
  38.    Reserve As Chip Work 10,CHUNKSIZE
  39.    Reserve As Chip Work 11,CHUNKSIZE
  40.    BANK=10
  41.  
  42.    '  Playing the samples, remember:
  43.    '  ------------------------------
  44.    '    1 - No need to wait before playing FIRST chunk  
  45.    '    2 - All but the LAST chunks are the same length.
  46.    '    3 - LAST chunk is smaller and thus shorter. 
  47.  
  48.    Led Off 
  49.    Open In 1,FILE$
  50.       For CHUNK=1 To CHUNKS
  51.          Timer=0
  52.          BANK=21-BANK
  53.          Sload 1 To Start(BANK),CHUNKSIZE
  54.          If CHUNK<>1 Then While Timer<>(50*SECONDS) : Wend 
  55.          If CHUNK<>CHUNKS
  56.             Sam Raw 15,Start(BANK),CHUNKSIZE,SPEED
  57.          Else 
  58.             Sam Raw 15,Start(BANK),LASTCHUNK,SPEED
  59.          End If 
  60.       Next CHUNK
  61.    Close 1
  62.  
  63.    Erase 10
  64.    Erase 11
  65.  
  66.  
  67.  
  68.  
  69.  
  70.