This page is experimental, but is meant to make on-line soundscape drawing accessible to blind website visitors.

The vOICe Accessible Java Applet

If you are blind, it is assumed that your screen reader can be used simultaneously with other sound applications. It is also assumed that your browser supports Java and Javascript, and that you have both Java and Javascript enabled in your browser. Blind visitors are welcome to report about their experiences. Now please try the following.
First, wait until the The vOICe Java applet has loaded and starts running. This will typically take half a minute or so depending on your Internet connection. Try making a few random movements with your mouse while keeping the left mouse button pressed: this will draw lines corresponding to your mouse movements on a drawing canvas, and you should hear the corresponding soundscape. If so then you know that the applet has loaded and is running.

The version of The vOICe applet on this page has a more accessible form where you will hear a loud beep whenever you move the mouse cursor over the black drawing canvas. Just try it, move the mouse around! It may take a little experimenting to find the drawing canvas, but when you succeed, the vertical mouse position inside the canvas screen area is indicated by pitch, and horizontal position by time-after-click. So you can actually hear where the mouse cursor (mouse pointer) is hovering over the black drawing canvas. You can now draw with the left mouse button pressed, and undo the last drawn pixels by pressing the right mouse button one or more times. The loudest beep always corresponds to the mouse cursor. Have fun!

Note: users of Windows touch screen devices can instead of the mouse use their finger or finger nail to draw sounds! An easy way to clear the canvas is to simply reload the web page in order to restart the applet, but you can also use the restart button on this page.

You can change the drawing "color" by activating one of the following sixteen numbered links ranging from 15 (white, loudest) to 0 (black, silent): 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0. So you can use black (color 0) to wipe out and silence things that you have drawn before, and go back to white (color 15) to draw new things. Activating the above-mentioned sound cursor link again will clear the canvas and wipe out the entire image (no undo available on this!).

Unfortunately, in distinguishing left from right, Java as available in most browsers does not yet support any stereo, so it really comes down to listening carefully what time difference there is between the reference click and the sound cursor beep. A short time difference with the reference click sounding first means that you are on the left side of the drawing canvas, and a short time difference with the reference click sounding second means you are on the right side. In the middle the times divide up evenly. However, once you have drawn something, the soundscape itself can also act as your drawing reference.

The following small exercise will help you get used to this way of working: after drawing just one white pixel by pressing the left mouse button once while hearing the sound cursor, you can move the mouse around a bit and then try to let the sound cursor again coincide with the pixel you just drew. The sound cursor is always loudest, even louder than a white pixel. This position matching works best when you first match the pitch (vertical mouse position) and after that move the mouse cursor horizontally to match the timing and make the two pixels coincide, that is, the drawn pixel and the movable and loud mouse cursor. First matching the timing and then matching the pitch is harder.

In case you hear more than one reference click per second, this means that the Java engine in your browser got "confused", and the only way to recover is to quit and restart your browser. The Java implementations in some browsers are unfortunately not very robust, and crash recovery is often absent. Also, many screen readers have been reported to have problems with this page, in spite of the fact that this page was designed to work well with screen readers without requiring any Java accessibility extensions.


Soundgraph: You can create an elementary multimodal ``soundgraph'' or auditory function plot of your own mathematical function via the form below. Note that Java and JavaScript functions, contrary to C and C++, require a "Math." string in front of any transcendental functions like sin, cos, sqrt and pow. White noise can be added using the Math.random() function.

  JavaScript function y = f(x):
 
  From xmin =   to xmax =   using N = columns in T = seconds
  From ymin =   to ymax =   using M = rows

The <Fit> button optionally calculates a new y range for a given x range, such that the soundgraph will best fit the available plot area and frequency range. The <Plot> button generates the soundgraph.

You can also set, get or clear individual voicels via the following form to create a simple auditory data plot without accessing the applet's graphical user interface.

  Voicel at coordinates (ix,iy):
  ix =   iy =  

The ix and iy must be nonnegative integers with ix < N and iy < M

The soundscape technology as demonstrated here is part of a much more elaborate and ambitious research project on vision substitution and synthetic vision through sound, about which you can read more via The vOICe Introduction and Overview page. For an alternative approach based on progamming image content, you can check out the Blind drawing with Logo and The vOICe web page. Let's make vision accessible.

Copyright © 1996 - 2024 Peter B.L. Meijer