home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 166.lha / 8pus.doc < prev    next >
Encoding:
Text File  |  1988-04-28  |  6.3 KB  |  148 lines

  1.        OCTOPUS (8pus)  8-voice Amiga MIDI instrument       Sept 13 88
  2.        By J Henry H Lowengard
  3.  
  4. This is a demo program which shows you a couple of aspects of sound:
  5. First, you can draw or use preset waveforms, and do some rudimentary
  6. editing and processing on them. Second, you can compare a 12-tone
  7. equal temperament scale to a just scale. It also is a partially
  8. featured MIDI synthesizer, capable of 8-voice synthesis.
  9.  
  10. The most important line of any doc file:
  11. To exit the program, you can use the Close gadget, the Escape key, or
  12. the Stop gadget. 
  13.  
  14. The MIDI implementation:
  15.   8pus acts on  note_on,note_off and pedal signals. When you try 
  16. to play 9 notes, the 9th will not be played. The pedal holds the
  17. notes in a chord. Velocity is not yet used. An 'All-notes-off'
  18. can be done by using the 'Shutup' gadget or pressing the space bar.
  19.  
  20. Tunings:
  21.  The 12-Equal tuning is the default. The '12ET' gadget also sets
  22. the tuning to 12ET, as does the number '1' on the keypad. 
  23.  The just tuning consists of these ratios 
  24.  
  25.  C    C#   D   Eb  E   F    F#  G   Ab  A   Bb  B
  26.  1/1 ( c#) 9/8 6/5 5/4 4/3 (f#) 3/2 8/5 5/3 7/4 15/8
  27.  
  28. The Just tuning is set by the 'Just' gadget and the number '2' on the keypad.
  29.  
  30. A change of tuning takes effect immediately.
  31.  
  32.  
  33. You can play the Amiga keyboard in a way similar to that of Sonix, Soundscape,
  34. Synthia, SoundLab etc. etc. 
  35. The Z key represents c-below-middle-c (note #48). it continues in the
  36. usual B&W pattern. Middle C (note # 60) is on Q. Because of the "key
  37. ghosting problem", certain combinations of keys cause mysterious notes
  38. to turn on. Hit the spacebar to "Kill" any stuck notes which may result
  39. from this. You can use the shift keys as "sustain pedals" to build large
  40. chords without this problem. Using Caps lock and the spacebar is one way to
  41. build the chords up.  You don't need to grow an extra finger either.
  42.  
  43.  
  44.  
  45. The waveforms:
  46. Gadgets provide the following preset waveforms, also found on F-keys:
  47.  F1 ... Sine
  48.  F2 ... Square
  49.  F3 ... Triangle
  50.  F4 ... Upgoing sawtooth (double frequency)
  51.  
  52. The waveforms can be changed by hand with the mouse while 8pus is
  53. playing.
  54.  
  55. Also, there are these functions:
  56.  F6 ... F*2:  doubles the frequency of the sound by moving the
  57.         even samples to the front and the odd samples to the back.
  58.     Nine 'doubles' brings you back to the original waveform.
  59.     (since 2^9 = 512, the length of the wave)
  60.  F7 ... Shrink: ramps the amplitude down on the waveform -
  61.         good for making "chips"
  62.  F8 ... Filter: filters the waveform with the equation:
  63.         S(i) = (s(i-1)+2*s(i)+s(i+1) ) /4
  64.  
  65. There will be a slight buzz while the screen fixes itself after these
  66. operations (if the sound is on).
  67.  
  68. Audio Characteristics:
  69. The high-pitched whine, at 5000 Hz, is in fact my output sample frequency.
  70. If you want to discover something about aliasing, play some high notes.
  71. I realize the thing is noisy .. the rate is so low because of the enormous
  72. throughput needed. If you play eight notes and move the mouse, you can hear
  73. the program hiccup. 
  74.  
  75. The length of the wave which I'm playing is 512 bytes. You can hear the
  76. frequency getting less accurate in the low notes while the aliasing starts
  77. early in the high notes. Although you can turn the just intonation on,
  78. and hear a difference, the accuracy in not the hottest in the world.
  79. The length of the CHIP-buffers are 128 bytes each. At 5000 Hz, a new
  80. buffer comes out every 39th of a second. This is perceptively slow
  81. in reacting to lots of MIDI messages.  
  82.  
  83. So what's the point?
  84. Well, This is just one byproduct of my researches into double buffered
  85. audio and MIDI parsing. Played with cleaner sounding MIDI instruments,
  86.  it adds colorful distortion and texture. Re-drawing the waveform
  87. while you play it is lots of fun. It sounds like playing with a
  88. graphic equalizer.  And the fact that 8 go on at once is the real
  89. story here. I'm going to use the tools developed for Octopus to make
  90. more interesting (monophonic) synthesizers.
  91.  
  92. Tips and fun stuff:
  93. Start with a square wave and carve pieces out of it. Then filter it,
  94. double it and filter it some more.
  95. Doodle something on the screen, double it until it's a meaningless mush,
  96. then filter it and draw over it some more.
  97. Take the UpSaw wave and double it and filter it. Sounds just like a
  98. Juno-6 or a dying Casio PT-20, eh?
  99. Now shrink it .. note the vocal quality? Like someone snoring over
  100. AM radio 1000 miles away?
  101. Toggle between tunings while playing a C7/9 chord (C-E-G-Bb-C-D)
  102. Ditto for a Bb7 (Bb-D-F-Bb-C). Sounds lousy when the tuning is Just, eh?
  103. That's why people don't use just tunings on fixed pitch instruments too
  104. often. (Maybe I'll put up an "adjusting just" scheme in a future version) 
  105.  
  106. Rules and reulations:
  107.  
  108. This  program may be freely distributed...or it may not.
  109.  
  110.   Copy this program and give it to your friends, especially educational
  111. institutions. Send no money, but if you are developing a product on
  112. similar lines, you can consult me . The low quality of the output should
  113. be enough to convince you of the foolishness of trying to do this on
  114. a standard Amiga. The program is written in assembler, using some very
  115. nasty optimization inthe inner sound computation loop. I use the HiSoft
  116. "GenAm" assembler, which takes about 15 seconds to go from source to 
  117. executable. I also use Metascope a whole lot.
  118.  
  119. The program may be slightly improved, but other, related programs
  120. will be more interesting. For instance, I may add an ARexx interface,
  121. to allow it to be retuned from ARexx, started, stopped, maybe play
  122. some notes (I suppose it multitasks). Or, I may put in some savable
  123. waveforms, or operate in a more sophisticated way, with envelopes,
  124. velocity, stereo panning, etc, etc. Reading and using Iff 8svx files
  125. might be nice.
  126.  
  127.  
  128.  
  129. CAUTION: Don't try running this with  other Music programs on the same
  130. machine - it won't work. I amd doing low, low level things to the
  131. serial port and audio interrupts. Don't try multitasking it with
  132. itself either. You can leave it running  if you are aren't using the
  133. serial port or the audio chips, but  my intese work might make you
  134. miss other, high I/O type work. It does crash on exit with a memory list
  135. bug (GURU #81000009) from time to time, but I can't reproduce it.
  136.  
  137.  
  138.  
  139.  
  140.     J Henry H Lowengard, 43 W 16th Street, Apt. 2D, NYC 10011-6320
  141.     CIS: 76625,2425      NYTEL: 212-675-6046
  142. Previously released version dates:
  143. Sept 4 1988 (CIS)
  144. Sept 5 1988 (Eniac,Gateway) 
  145.  : fixed drawing bugs, added shrink
  146. Sept 13 1988 
  147.  : Added keys, widened display, etc.
  148.