💾 Archived View for mirrors.apple2.org.za › archive › apple.cabi.net › Music.and.Sound › DOCVu2.CDA.… captured on 2024-06-16 at 14:07:02.

View Raw

More Information

⬅️ Previous capture (2023-01-29)

-=-=-=-=-=-=-

    _
   / \OCVu
  / ^ \
 / / > >   -The Ensoniq like you've never seen it before-
 \/ / /
   / /
  <_/


DOCVu v2.0
==========

DOCVu is -FREEWARE- distribute freely, but do not sell...

 - CDA based.
 - 32 SHR-based oscilloscopes, 100% configurable layout, selectable scan rate
 - 32 SHR-based volume level sensitive vu-meters
 - Full Ensoniq DOC data, including DOC pause function
 - Ensoniq DOC RAM peeker
 - Instant and Average CPU load
 - Left/Right channel volume output levels
 - Optional digitizing oscilloscope
 - Fully compatible with all GS/OS desktop and shell based programs
 - Runs unsynchronized in real-time, for best results with accelerators


Installation
============
DOCVu.CDA:  place into */System/Desk.Accs
DOCVu.Dox:  read, remember, then delete...


Operation
=========
Initially invoking DOCVu from the CDA menu will cause it to load its
data files from the disk, this is only required once, subsequent calls
to DOCVu will not require disk access.  Should DOCVu have problems loading
or obtaining memory then it will display an error message indicating the
problem, and then exit back to the CDA menu.
If you have problems check the following:

	1> DOCVu requires about 95K of memory and will not run if it cannot
		allocate the needed space.
	2> DOCVu is not compatible with ProDOS 8 and will not run under it.

As soon as the DOCVu screen comes up, it will put you in "normal mode".  The
following options are available:

<All keypresses are case irrelevant...>

'esc' - this key will exit DOCVu and return you to the CDA menu.

'/' or '?' - these are a couple of the most important keys, they bring
	up the online help screen.  It pretty much sums up this whole
	doc file, so use it, it's cool :>

'left/right arrow keys' - the oscillators now have selectable scan rates.
	In the top, right corner there will be a sliding indicator which
	will indicate the current scanning rate.  A higher number scan rate
	will increase the scanning period and will give you a larger view
	of the wave, however on the whole the wave will take longer to
	complete and will appear to update more slowly.  The available rates
	are 8, 10, and 16.  Some rates such as 16 will be unsuitable for high
	CPU loads, such as when using a mod player.

'b' - pressing the 'b' key will activate the busy flag suppression.  This
	will insure that the busy flag is clear when DOCVu is active.  The
	method that DOCVu uses to accomplish this task is nothing short of
	illegal, so use it at your own risk...  The top right corner of the
	screen will show the status of this feature.  There are two lights next
	to the word "BSY":  the left one indicates if the busy flag was clear
	on entry into DOCVu <black means it was clear, red means it wasn't>,
	and the right one indicates if the suppression is active.  These
	lights do not toggle, either one or both may be lit.

'c' - pressing the 'c' key will put you into a "configuration mode".  The
	oscillators will black out to reveal the current DOC oscillator
	mapped to that position.  The "red" number will represent the current
	cursor position while the green numbers represent all the other current
	oscillators mapped.  In this mode -ONLY- the following keypresses
	will have any effect:

        <esc> - this key will back you out of the configuration mode into
		normal operating mode.

        <p> - pause, this acts like the normal pause explained below.

	<arrow keys> - use the arrow keys to position the config cursor
		to the appropriate location you wish to re-map.

        <number keys 0-9> - typing the number keys will modify the 
		oscillator number currently displayed.

	<return> - the return key is used to "lock" in the new oscillator
		to the current map position.  Only valid oscillator
		numbers will be allowed, valid numbers range from 0 to 31.

        The procedure for modifying the map is as follows:

	1> Use the arrow keys to position the "red" cursor to the location
		you want to modify.
	2> Input the new oscillator number (0-31) by using the number keys.
	3> Press <return> to lock in the new number.  If you do not do this
	        the old oscillator number will be returned.
        4> Press <esc> to exit configuration mode, or repeat the above
		procedure.

        The CDA will always boot up in its default mode, which displays
	all 32 of the oscs, however once you re-map the oscs, it will
	remain in that configuration until you reboot again.

'd' - pressing the 'd' key will invoke the digitizing oscillator, you will
	see the left-hand 'DE' logo open to reveal a digitizing osc.  This
	oscillator will respond only to sound input into the DOC.  It's
	nothing super-special, but it is a nifty feature to test mic/recorder
	volume input.  Pressing the 'd' key a second time will cover it
	back up.

'i' - pressing the 'i' key will turn on a mode which causes the border to
	change colors when the sound interrupt occurs.  This is useful for
	programmers who need to have the interrupt occur at a specific time
	frame.  It will provide a visual means of determining where the
	interrupt occurs relative to the 60Hz screen refresh.  Pressing 'i'
	a second time will turn it off.

'p' - this key is to pause the DOC <and everything else>, it will work in
	any mode.  When you press this key the computer will come to a
	grinding halt.  This is useful for programmers like myself who
	cannot read the DOC information as quickly as its being updated.
	It allows you to freeze the DOC internals so you can examine them
	more closely. Pressing any key afterwards will continue normal
	operation.

'r' - pressing the 'r' key will activate RAM-VU mode, the RAM-VU screen
	will fade in at the bottom.  You will see four rows of numbers
	divided into two groups.  The four digit numbers to the far left
	are the address in DOC RAM <in hex>, and the 16 two digit numbers
	to its right correspond to the data stored at that address <also
	in hex>.  The current cursor position will be determined by the
	"red" address.  While in RAM-VU mode -ONLY- the following
	keypresses will have any effect:

        <esc> - this key will back you out of the RAM-VU mode into
		normal operating mode, the bottom eight oscillators
		will fade back in.

        <p> - pause, this acts like the normal pause explained above.

	<up/down arrow> - these two arrow keys will move the current
		"red" cursor position between the address locations.

	<left/right arrow> - these two arrow keys will decrement or
		increment the current address location.

        <number keys 0-9> - these keys are used to enter the new DOC
        <letter keys a-f>   RAM address to be viewed.  The number must
			    be entered in hex format.

	<return> - the return key is used to "lock" in the new address
		to the current location.  Any 4 digit hex number will be
		valid.  Numbers greater than $FFF0 will cause RAM-VU to
	        wrap around to address $0000 when displaying data.

        The procedure for modifying the addresses is as follows:

	1> Use the arrow keys to position the "red" cursor to the location
		you want to modify.
	2> Input the new address in hex by using the number and letter keys.
	3> Press <return> to lock in the new address.  If you do not do this
	        the old address will be returned.

        The CDA will always boot up in its default mode, which sets
	all address locations to $0000, however once you enter new
	addresses it will remain in that configuration until you
	reboot again.

'v' - this key will remove the main 32 oscillator array and replace it with
	32 volume level sensitive vu-meters.  The new vu-meter block will
	have a series of numbers along the top, which will display the
	current DOC oscillator mapped to that vu-meter.  The way in which
	the oscillators are mapped to the vu-meters is in direct correspondance
	with how they are mapped to the oscillators using the configuration
	mode.  The top row of oscs will be mapped to the far left and the
	bottom row to the far right.

	Below these numbers are the vu-meters, they will respond to the
	-real- volume output that you hear, which is not to be confused
	with the DOC volume registers.  Directly below the vu-meters
	will be a light, if the light is lit that means the corresponding
	DOC oscillator is currently running.  If it is not lit then the DOC
	oscillator is halted.

	Finally, below these lights are another row of numbers.  These numbers
	represent the DOC volume registers.  Within this mode the only
	thing you can do is exit <'esc' key> or pause <'p' key>.

'ctrl-r' - every once in a while, but most likely when debugging new
	programs, DOCVu's screen data can become garbled.  Since DOCVu
	stores its data in a compressed format this can lead to bizzare
	effects such as turning the screen all green-blue or something.
	If this ever happens, then press this key sequence and DOCVu will
	reload all of its data off of the disk again and everything will
	return to normal.


Display
=======
In the top right of the screen there is a box which looks like this:

 Average CPU load..................         ........Busy Flag set on entry
                                  :         :
 Instantaneous CPU load.......    :         :  .....Busy Flag suppression
                             :    :         :  :
               ______________:____:_________:__:____
              |              :_   :_        :  :    |
              |  |\  /      |  | |  |  BSY  [] []   |
              |  | ><-       \/   \/      SCAN      |
              |  |/  \       00% CPU   8 =[]== 16   |
              |______________:_____________:________|
                             :             :
 Average CPU load............:             :................Osc Scan Rate
   (percentage)

The left-hand CPU meter indicates the instantaneous load that the sound
interrupt places on the CPU.  The right-hand meter is the avarage CPU load
over a period of 1/3rd of a second.  The % CPU reading is the exact
percentage number associated with the right-hand meter.  The sliding switch
represents the current osc scan rate, and has three settings: 8, 10, and 16.
The two busy flag lights show the status of the busy flag suppression.

The top left has a similar box which has the three registers: OSC INT
<oscillator interrupt>, OSC ENABLE <oscillator enable>, and
A/D CONVRT <Analog/Digital Converter>.

Below these are two horizontal VU meters which represent the total channel
output volume for the left and right channels.

Below that is the array of oscs, the area around each osc looks like this:

                   [sample-size] [DOC RAM loc]
                   FREQ            [frequency]
Oscillator............./\  [osc mode]  /\....................Interrupt
  enabled             /__\____________/__\                    enabled
                    _|                    |_
                   |_|                    |_|
Left channel.......|_| ***Oscilloscope*** |_|...............Right channel
   in use          |_|                    |_|                  in use
                     |____________________|

Sample Size - will show the size of the sample in DOC memory, valid sizes are
	256 bytes, 512 bytes, 1K, 2K, 4K, 8K, 16K, and 32K.

DOC Ram Location - this is a hex number representing the location of the
        sample in DOC Ram.

Frequency - this is a hex number representing the speed at which the oscillator
        is reading the wavetable from DOC Ram.

Oscillator Mode - this indicates which mode the oscillator is in, the different
	modes are FREE, SHOT, SYNC, and SWAP.

Oscillator Enabled - a yellow light will indicate if the oscillator is 
	currently running.

Interrupt Enabled - a red light will indicate if the oscillator is interrupt
        enabled.

Left/Right channel - green lights will indicate the channel that the oscillator
	is currently sending to.

The oscillator display will become brighter as the -real- volume output
by the oscillator increases.  Thus, those oscillators which are not enabled
or are not producing volume will appear black.


Notes and Author Blurb
======================
Many thanks to everyone who suggested ideas and continued to show interest
in DOCVu's completion.  Most of the new features were requested, however I
did add in a couple more of my own ideas.  This new version should solve most
of the previous bugs and quirks of DOCVu 1.0.

The CPU load meter is probably one of the more practical additions to DOCVu.
Now programmers have the ability to directly judge sequencer performance
while its playing.  One small thing I've noticed is that for most sequencers,
including SoundSmith and the various mod players, the CPU speed of the system
seems to have little effect on performance.  I'm fairly sure this is a
direct result of the I/O bottleneck on the DOC.  Naturally you will probably
see a difference in the screen update speed of DOCVu, however the sound IRQ
load will probably remain relatively unchanged.

This version does have some remaining bugs which I know of, but as yet do not
have enough info on to fix.  One of these is the problem with the digitizing
osc not responding to the sound card input.  I know why this happens, however
I am still gathering information on how to fix it.

For those of you who are wondering about this busy flag thing, it was put
in to fix one specific problem.  The problem had to do with using Shellplay
inside GNO.  Shellplay checks the busy flag before it loads a new song and
for some mysterious reason <still unknown> whenever you enter the CDA menu
from GNO the busy flag is set to 3.  Therefore, if you happen to be watching
DOCVu when Shellplay tries to switch songs it would stop until you exit the
CDA menu.  Since according to ToolBox Vol.1 <Desk Manager> "CDAs have all
system resources available to them", DOCVu adjusts the busy flag to fix the
problem <only when busy flag suppression is on>.  I haven't had any
problems using this yet, however if anyone does let me know.

The resource fork of DOCVu has been adjusted to take care of the AppleShare
problem.  I do not have access to an AppleShare network myself, so if this
does not correct the problem then let me know.

I added in a Pause function this time, I cannot fathom why I left it out
in the last version.  Since most people, such as me, cannot read something that
changes at 60Hz, I put something in so you can now stop and take a look at
whats happening.

People were complaining that I did not include the volume registers on the
original version.  Well take a look at the 'v' key, now you got volume with
a vengence.


Credits
=======
DOCVu 2.0 <c> 1993-1994 all rights reserved...

Coding: Brian Ballweber
Graphics: Brian Ballweber, Jeremy Chadwick

Special thanks to Dave Huang for his technical help and ideas.
Many thanks to Alvin Tan for his Ensoniq knowledge, and helping to hunt
	down that damn interrupt bug.
Special thanks extended to Steve Gunn, Ian Schmidt, Frank Lim, and
	James Brookes for ideas and betatesting.
Big Hellos to Dana C, Hal B, Ian B, Rich W, JB of NinjaForce,
	and only the friendly guys on #appleiigs via IRC.


Finally, please forward comments, criticism, and especially ideas to:

Internet:
		ballweb@csos.orst.edu
           or
		yoshi@csos.orst.edu

Snail Mail:
		Brian Ballweber
		2941 NE Conser
		Corvallis, OR 97330
           or
		Jeremy Chadwick
		33811 Twin Maple Lane
		Corvallis, OR 97333

"DE: life sux.."
~x~4/^\5_=,}:
NO CARRIER