Progress

Update 1:

We successfully created a google website and have chosen our desired layout. We are currently working on our app an making progress with a creating our initial activity. We want the phone to initially lock into landscape and then a ball to drop on the center of the screen. We are using the DemoApp: Rolling Ball as a reference. We are also currently doing research on ways to implement sound output.

Update 2:

We currently have a ball that can move around the screen using the accelerometer of the phone. We are working to create an equation to use to output the sound. We are still doing research on how to get the sound to output. We are also working on implementing corner bouncing. We are also still doing research on how to use the touch feature to move the ball around.

Update 3:

We have integrated both the accelerometer and the touch and drag functionality in moving the ball across the screen. We have added in the edge bouncing functionality, with bounces damping the velocity of the ball. Small bugs still exist, however, such as the ball being subject to accelerometer gravity when it should be suspended by the touch input. We have also added in a wave background from an external library, which (tentatively) changes according to the properties of the sound.

Update 4:

Audio works! We have found a way to modulate an audio signal based on the coordinates of the ball on the screen. However, the code seems to be very slow and unresponsive. In addition, the generated audio signal is not clean: there are noisy clicks where the generated wave segments differ in phase, which I have tried to rectify by adding in the phase offset of the previous segment. The frequency and amplitude of the sound signal are being updated as intended, but we have yet to make the signal sound smooth.

Update 5:

After trying many different suggestions from the StackOverflow community, we have finally found a working solution for our sound modulation issue! For the app to run at a normal speed, without freezing up, we had to extend the coordinate sample time. This trades off instantaneous frequency modulation for a smooth tone, and allows the app to draw the bouncing ball and the wave animation in the background without appearing too slow. This can also be used to our advantage: instead of a continuous pitch blend based on the position of the ball, the generated tone plays discrete notes, sort of like a piano as opposed to a violin. The accelerometer component of our project doesn't seem to fit in too well, but we'll keep it in as an additional feature.