Audiotrace

*The beta tone() function may be more appropriate for many use cases besides accessibility.*

Audiotrace is an accessibility function in Desmos used to allow the user to hear a graph.

## Turning it on

To enable audiotrace, either click on the keyboard icon at the bottom of the expression list, and then click the speaker icon to open the menu, or use the keyboard shortcut Alt+T.

Select an expression first, and then click on the hear graph button to play the function.

You can also change the volume and the speed of it being played at.

## Interesting Features/Quirks

### Viewport

The note the audiotrace plays does not depend on the y-value, but rather where it is on the screen. This means that changing the zoom or position of the graph will change and shift all of the notes. This is an important thing to keep in mind if you want to make audiotrace music. The common workaround is to change the graph bounds (click on the wrench icon on the top right part of the screen) to have 1<y<13. This is because audio trace limits you to 1 octave of notes - from E4 to E5.

### Axis

Another interesting feature, is the change of the tone in different quadrants. Above the x-axis the tone is a normal sine wave, but below it adds white noise to the sound. On the left of the y-axis, the tone is normal, but on the right, the octave harmonic is added on top.

### Points of Interests

At POIs, a popping sound is heard. This can be removed by either disabling points of interests (an easy way is through the DesModder Extension), or using a point of interest suppressor.

### Silence

Having a note right above the viewport will not play it.

## Bugs

There are many many known bugs about audiotrace

1. Bugs: When you hide a function by clicking on it so that it doesn;t show up on the graph, it will allow you to still audiotrace (I like to be able to audiotrace invisible functions, remove clutter) but if you reload the page, it doesn't allow you anymore.

2. The audiotrace feature only goes from an E4 to an E5, but putting y=-x^2+10 on default zoom leads to weird sounds. A hard limit on how the range of the note was coded in and cannot be broken, but that function still attempts to play above and below range, thus making it weird sound. Also, the link for the Mandelbrot Set [Link: https://www.desmos.com/calculator/amgpltxnmw ] allows you to "play" the fractal, but nothing is heard.

3. Between each note in a list, there are rests shown by the image below between each note. Usually for the audiotrace to go from the left edge of the screen to the right takes exactly 5 sec. However, when playing several differnt notes from a list, there is a break between each note in a list. The break is not removed from the next note, but instead added in the middle. This has the effect of making the total time from left to right to a longer time than 5 sec.

4. Rests are added in the middle between notes.

5. Rest lengths are random (this makes it impossible without recording and using esternal tools to sync cross graph audiotrace)

6. all the quirkiness about dot coming from intersecting function 8. you can also make overtones using frequencis of sin waves, but it also depends on the resolution. audiotrace plays.