⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbprog.doc

📁 linux下录音程序
💻 DOC
📖 第 1 页 / 共 2 页
字号:
     +-----+-----+-----+-----+-----+-----+-----+-----+          bit 7 - Apply amplitude modulation when set; AM depth is                  controlled by the AM-Depth flag in address BD.          bit 6 - Apply vibrato when set;  vibrato depth is controlled                  by the Vib-Depth flag in address BD.          bit 5 - When set, the sustain level of the voice is maintained                  until released; when clear, the sound begins to decay                  immediately after hitting the SUSTAIN phase.          bit 4 - Keyboard scaling rate.  This is another incomprehensible                  bit in the Sound Blaster manual.  From experience, if                   this bit is set, the sound's envelope is foreshortened as                  it rises in pitch.          bits 3-0 - These bits indicate which harmonic the operator will                   produce sound (or modulation) in relation to the voice's                   specified frequency:                      0 - one octave below                      1 - at the voice's specified frequency                      2 - one octave above                      3 - an octave and a fifth above                      4 - two octaves above                      5 - two octaves and a major third above                      6 - two octaves and a fifth above                      7 - two octaves and a minor seventh above                      8 - three octaves above                      9 - three octaves and a major second above                      A - three octaves and a major third above                      B -  "       "     "  "   "     "     "                      C - three octaves and a fifth above                      D -   "      "     "  "   "     "                      E - three octaves and a major seventh above                      F -   "      "     "  "   "      "      "                  Bytes 40-55 - Level Key Scaling / Total Level        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     |  Scaling  |             Total Level           |     |   Level   | 24    12     6     3    1.5   .75 | <-- dB     +-----+-----+-----+-----+-----+-----+-----+-----+          bits 7-6 - causes output levels to decrease as the frequency                     rises:                          00   -  no change                          10   -  1.5 dB/8ve                          01   -  3 dB/8ve                          11   -  6 dB/8ve          bits 5-0 - controls the total output level of the operator.                     all bits CLEAR is loudest; all bits SET is the                     softest.  Don't ask me why.Bytes 60-75 - Attack Rate / Decay Rate        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     |         Attack        |          Decay        |     |          Rate         |          Rate         |     +-----+-----+-----+-----+-----+-----+-----+-----+          bits 7-4 - Attack rate.  0 is the slowest, F is the fastest.          bits 3-0 - Decay rate.  0 is the slowest, F is the fastest.Bytes 80-95 - Sustain Level / Release Rate        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     |     Sustain Level     |         Release       |     | 24    12     6     3  |          Rate         |     +-----+-----+-----+-----+-----+-----+-----+-----+          bits 7-4 - Sustain Level.  0 is the loudest, F is the softest.          bits 3-0 - Release Rate.  0 is the slowest, F is the fastest.Bytes A0-B8 - Octave / F-Number / Key-On        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     |        F-Number (least significant byte)      |  (A0-A8)     |                                               |     +-----+-----+-----+-----+-----+-----+-----+-----+        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     |  Unused   | Key |    Octave       | F-Number  |  (B0-B8)     |           | On  |                 | most sig. |     +-----+-----+-----+-----+-----+-----+-----+-----+          bit   5  - Channel is voiced when set, silent when clear.          bits 4-2 - Octave (0-7).  0 is lowest, 7 is highest.          bits 1-0 - Most significant bits of F-number.     In octave 4, the F-number values for the chromatic scale and their      corresponding frequencies would be:        F Number     Frequency     Note           16B          277.2       C#           181          293.7       D           198          311.1       D#           1B0          329.6       E           1CA          349.2       F           1E5          370.0       F#           202          392.0       G           220          415.3       G#           241          440.0       A           263          466.2       A#           287          493.9       B           2AE          523.3       CBytes C0-C8 - Feedback / Algorithm        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     |         unused        |    Feedback     | Alg |     |                       |                 |     |     +-----+-----+-----+-----+-----+-----+-----+-----+          bits 3-1 - Feedback strength.  If all three bits are set to                     zero, no feedback is present.  With values 1-7,                     operator 1 will send a portion of its output back                     into itself.  1 is the least amount of feedback,                     7 is the most.          bit 0    - If set to 0, operator 1 modulates operator 2.  In this                     case, operator 2 is the only one producing sound.                     If set to 1, both operators produce sound directly.                     Complex sounds are more easily created if the algorithm                     is set to 0.Byte BD - Amplitude Modulation Depth / Vibrato Depth / Rhythm        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     | AM  | Vib | Rhy | BD  | SD  | TOM | Top | HH  |     | Dep | Dep | Ena |     |     |     | Cym |     |     +-----+-----+-----+-----+-----+-----+-----+-----+          bit 7 - Set:    AM depth is 4.8dB                  Clear:  AM depth is 1 dB          bit 6 - Set:    Vibrato depth is 14 cent                  Clear:  Vibrato depth is 7 cent          bit 5 - Set:    Rhythm enabled  (6 melodic voices)                   Clear:  Rhythm disabled (9 melodic voices)          bit 4 - Bass drum on/off          bit 3 - Snare drum on/off          bit 2 - Tom tom on/off          bit 1 - Cymbal on/off          bit 0 - Hi Hat on/off          Note:  KEY-ON registers for channels 06, 07, and 08 must be OFF                 in order to use the rhythm section.  Other parameters                 such as attack/decay/sustain/release must also be set                 appropriately.Bytes E0-F5 - Waveform Select        7     6     5     4     3     2     1     0     +-----+-----+-----+-----+-----+-----+-----+-----+     |               unused              |  Waveform |     |                                   |  Select   |     +-----+-----+-----+-----+-----+-----+-----+-----+          bits 1-0 - When bit 5 of address 01 is set, the output waveform                     will be distorted according to the waveform indicated                     by these two bits.  I'll try to diagram them here,                     but this medium is fairly restrictive.         ___              ___            ___    ___       _      _        /   \            /   \          /   \  /   \     / |    / |       /_____\_______   /_____\_____   /_____\/_____\   /__|___/__|___              \     /               \___/            00              01               10               11 |                          Detecting a Sound Card | |   According to the AdLib manual, the 'official' method of checking for a  |   sound card is as follows: | |      1)  Reset both timers by writing 60h to register 4. |      2)  Enable the interrupts by writing 80h to register 4.  NOTE: this |          must be a separate step from number 1. |      3)  Read the status register (port 388h).  Store the result. |      4)  Write FFh to register 2 (Timer 1). |      5)  Start timer 1 by writing 21h to register 4. |      6)  Delay for at least 80 microseconds. |      7)  Read the status register (port 388h).  Store the result. |      8)  Reset both timers and interrupts (see steps 1 and 2). |      9)  Test the stored results of steps 3 and 7 by ANDing them |          with E0h.  The result of step 3 should be 00h, and the  |          result of step 7 should be C0h.  If both are correct, an |          AdLib-compatible board is installed in the computer. | | |                              Making a Sound |  |   Many people have asked me, upon reading this document, what the proper |   register values should be to make a simple sound.  Well, here they are. |  |   First, clear out all of the registers by setting all of them to zero. |   This is the quick-and-dirty method of resetting the sound card, but it |   works.  Note that if you wish to use different waveforms, you must then |   turn on bit 5 of register 1.  (This reset need be done only once, at the |   start of the program, and optionally when the program exits, just to  |   make sure that your program doesn't leave any notes on when it exits.) | |   Now, set the following registers to the indicated value: | |     REGISTER     VALUE     DESCRIPTION |        20          01      Set the modulator's multiple to 1 |        40          10      Set the modulator's level to about 40 dB |        60          F0      Modulator attack:  quick;   decay:   long |        80          77      Modulator sustain: medium;  release: medium |        A0          98      Set voice frequency's LSB (it'll be a D#) |        23          01      Set the carrier's multiple to 1 |        43          00      Set the carrier to maximum volume (about 47 dB) |        63          F0      Carrier attack:  quick;   decay:   long |        83          77      Carrier sustain: medium;  release: medium |        B0          31      Turn the voice on; set the octave and freq MSB | |   To turn the voice off, set register B0h to 11h (or, in fact, any value  |   which leaves bit 5 clear).  It's generally preferable, of course, to |   induce a delay before doing so. | | |                             Acknowledgements | |   Thanks are due to the following people: | |   Ezra M. Dreisbach (ed10+@andrew.cmu.edu), for providing the information |     about the recommended port write delay from the AdLib manual, and the |     'official' method of detecting an AdLib-compatible sound card. | |   Nathan Isaac Laredo (gt7080a@prism.gatech.edu), for providing the |     port numbers for stereo sound on the Sound Blaster Pro.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -