For this last assessment I wanted to explore sound. At the beginning I thought of using the teachable machine and to test the voices of the students in my class. After speaking with my brother who has a similar voice to mine, I realized that although we have similar voices he can not hear the same because he suffers from an injury and that affects his volume. From there, I discovered that I am really interested in seeing differences between the frequency that we can hear according to our age.
First I wanted to see how our hearing works. Our ear is divided into three parts – the outer ear, the middle-secondary ear and the inner ear. Each of these parts plays a different role in shaping our hearing, all three of them working together to send messages to the brain that eventually performs an analysis of the information received from both ears and translates it into information.
The outer ear is a type of radar – a directional membrane that captures the sound that reaches it and sets it into the ear canal. The outer ear is primarily responsible for increasing the frequency range between 2 kHz and 5 kHz.
The middle ear is actually the drum mechanism that consists of several organs, the drum skin works as a one-sided valve that allows vibrations and pressure to pass through. The inner ear set as canals, these canals are directly responsible for our ability to balance and withstand space size and our position within it.
The three parts of the ear divide the way we treat the spectrum we hear into three main parts:
The frequency range which is mainly influenced by the time the sound arrives in the ear is between almost 100 Hz to 1200.
In a frequency range below 1 kHz (the wavelength is much greater than the distance between our two balances), we can't tell the audio volume apart unless it's a very large difference from where the sound comes from.
Our hearing is logarithmic hearing, the hair cells in our ears measure vibrations and interpret them to frequencies. As the differences between frequencies decrease, our ability to differentiate between them decreases, especially if the differences in time and power are equal.
No person hears the same as another person because the number of hair cells and the number of our neurons are different and decreases with age.
There is a big difference between males and females hearing:
Women's can hear better at a certain age because their hearing capability is naturally susceptible to crying. They're mothers in the genetic sense.
I took this test that I found online to test my hearing http://www.freemosquitoringtones.org/hearing_test/. This is was my result:
For my sketch, I wanted to create in the p5 an interactive test that the students will try to see to which age group they belong. I use this video as a reference: https://www.youtube.com/watch?v=iN3PBpInNJM. I wanted to make a slider that while you move it you can hear different frequencies, when you stop hearing you click on the stop button and then appears the age you got according to the location of the sound.
A friend of mine also told me about a radio show that he heard from over ten years ago that mosquito targets teens with audio repellent and I found the transcript: https://www.npr.org/templates/story/story.php?storyId=129581152.
I used as a reference the sketches we learned in class:
And also Shiffman’s videos: https://www.youtube.com/watch?v=2O3nm0Nvbi4&list=PLRqwX-V7Uu6aFcVjlDAkkGIixw70s7jpW&index=11.
Using a slider that moves, ones you press start the oscilator is played and if you press can’t hear it stops.
// button press - if the buttonState is "tostart" we start the osc else we stop it
if (buttonState == "tostart") {
startOsc();
} else if (buttonState == "canthear") {
stopOsc();
}
});
// set start button
button.hoverColor = color("green");
To set the setting for the oscilator: https://p5js.org/reference/#/p5.Oscillator.
// when oscilator stop, the button changes color and text, and we print the osilator value
function stopOsc() {
oscilator.stop();
button.text = "Restart";
button.hoverColor = color("blue");
hearingFreq = oscilator.freqNode.value;
//hearing age based on the hearing frequency
if (hearingFreq < 8700) {
hearingAge = "70+";
} else if (hearingFreq > 19300) {
hearingAge = 5;
} else {
hearingAge = floor(map(hearingFreq, 8700, 19300, 70, 5));
}
}
// automatically stop the osc when it reaches the maximum frequency
if (oscilator.freqNode.value == maxFreq) {
stopOsc();
This hearing test of all my classmates I wanted to collect and analyze in real time in my presentation in class. This information I wanted to present in a graph that will have the age and frequency factor. After seeing Shiffman videos about the data and reading about it I realized that the P5 is the frontend and there is something called backend. Backend is the thing that manages the website (server), a website is usually made of two parts, the frontend, used to display data etc, and the backend which handles things like storing data, authentication, databases etc, so in order to show what other users have got from the hearing test, I will need to store that data somewhere, and then show it on the frontend. A friend of mine sent me this image to explain visually:
I did though wanted to show a graph to the participants that represent the mapping of the age according to the frequency level.
I scheduled an office hour with Billy Bennett and asked him for his help, he suggested that I will save the backend process for the next step after learning more about it, he gave me a few tips and introduced me to some things that can help:
He did said the the level of volume is really high so we add:
masterVolume(0.3); //between 0-1 - 30%
He also suggested that I will add an array of stopFreq and then I can print out the number of freq and asked the students to sent me out the values to create a graph after class.
let stopFreq = [];
stopFreq.push( oscilator.freqNode.value );
console.log(stopFreq);
I had a lot fun doing this project and I am looking forward to learn more about servers and sending data between frontend and backend to make the mapping and sending the information to the user in the web.
Comments