TUI Wave Overview
Aug 06, 2007 by Will Mernagh
So we have been working hard on our project over the past few weeks. It is pretty much working to our expectations now and so I though it maybe time for a review of the project as a whole.
Our Motivation
We wanted to teach some concepts of waves to users by having them create a wave and then listen to how it sounds. We also wanted the user to be able manipulate the created wave and observe the changes to the output. The main concepts we wanted to express were amplitude and frequency. So as the user varies either amplitude or frequency the sound will also change.
Alternative Designs
Once we had decided on this project we discussed a number of alternative designs. From the beginning we decided that we were going to have both tangible input and output.
For the output we were going to use sound and vision. The sound would be that of the current wave and the vision was going to be implemented with a spinner that turned proportionate to the frequency and a light that got brighter as amplitude increased.
For the input we were going to have a manipulatable object that a user could create a wave from.
One of our first ideas was to use something like a bicycle chain and have the user shape it to create a certain wave. We went against this because the user could create a wave that went backward in time. So we needed a different approach to apply this constraint of time to a wave.
Another idea was to use a surface that was similar to that of the game battleship. Here the surface would be covered with many holes and the user could place pegs that represent the path of the wave. This was decided against because it gave a discrete representation of the wave and did not provide a nice way of increasing the frequency or amplitude.
Our final idea was to use a number of pins and sliders. Here the pins would be able to slide up and down the slider thus specifying the amplitude of a points on the wave. The sliders would be able to move left to right to change the frequency.
Current Design Rational and Challenges Faced Getting There
Taking our final idea we developed it a bit more and decided to use a diamond structure to hold the sliders in place. This was decided upon to allow the user to change the frequency by moving the diamond hinges closer/further to/from each other.


This gave rise to a problem where by the amplitude of the pin on the slider would increase/decrease when changing the frequency due to the mechanics (parts of the diamond rise pulling the sliders up as the hinges get closer together).
So we then had the idea of using one diamond per slider. Having the diamonds connected together at the hinges and having the sliders attached to the hinges. This did overcome the amplitude problem but our system was getting more cumbersome and unwieldy.
We decided to use Computer Vision to capture the location of the pins on the surface allowing us to create a wave the technology we are using is top codes. We introduced the idea of projecting the wave form onto the surface connecting the pins in order to give a continuos wave. Thus to the user the projected wave acts like the input to the system.
Once we implemented the top codes and the projection we were able to get a better feel for the interface. We felt like we did not need the cumbersome diamond structure and that we could just use 4 pins to represent points on the wave. We could easily move the sliders left and right independently and they did not need to move in proportion to one another.
We also decided to create a library of sounds corresponding to 4 types of waves at different frequencies (Sine, Square, Triangle and Saw). As the user creates and manipulates the wave we loop the sound file that is closest to the wave at the closet frequency to what the user has created.
This current design allows the system to give visual feedback of the wave in real-time making the projected wave seem like input for the user. The removal of the diamond formation and simplifying of the interface gives the user a more intuitive feel of how to interact with the system. Having the library as opposed to changing the sound as the wave changes allows the user to notice the changes. If we gradually changes the sound the user may not notice it. Now we change the frequency of the sound playing when certain thresholds are crossed. This also reduces the load on the system and allows for faster process of the vision side.
Earlier we had issues with performance due to sound. We updated the sound on every read of the top codes and this backed up our system and it no longer operated in real-time. Now that we only update the system when the form of the wave passes a certain threshold the system can run in real-time.
Design Methodologies
In our design we used a number of different methodologies. Sketches, low fidelity prototypes and storyboards. This helped visualize the system and get a feel for its interaction.
Here are some of Russ’ sketches and ideas.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Here are the Dialog and Task Diagrams and the TAC Palette of the original design
blog comments powered by Disqus