This time, I tested the system in which the speaker’s volume changes according to its movement, and I tested it directly with the speaker attached. At first, I planned to calculate how much the motor rotates in order to change the volume according to the movement. However, that approach would complicate the code, make optimization difficult, and increase the possibility of errors. So instead, I decided to write the code in a way that the limit switches would control the volume: when the switch on the side closer to the motor is pressed, the volume increases from zero; when the switch on the opposite side is pressed, the volume decreases.

Since the Arduino cannot generate sound on its own, I decided to use Max/MSP. I’ve connected Arduino and Max many times before, so I implemented the communication by recalling previous setups and looking through old materials. Using the serial object, Arduino and Max communicate with each other, and each switch is assigned a number so that Max can distinguish the signals. The separated signals then increase or decrease the volume accordingly. However, because my current design does not calculate the actual rotational distance of the motor, it is impossible to make the volume match the motor’s movement precisely. Instead, I roughly calculated the timing and used a line object to gradually increase the volume.
Fortunately, the overall system works well, and I think all the technical fundamentals are now complete. Still, there are a few things I need to reconsider or revise.
The first issue is the volume. The volume currently increases linearly, but human hearing does not perceive volume changes linearly. To make the perceived loudness increase in a linear way, the system needs to follow a logarithmic curve. However, because this project also involves noise from the motor and the rail, when the volume is too low it becomes almost inaudible, and the sound only becomes audible near the end of the movement. To avoid this, I need to decide whether to raise the minimum volume or adjust only the final part of the curve. I will consider this after choosing the sound I will actually use tomorrow. If the content is too hard to hear or too easy to hear, both can become issues, so finding the right balance is important.
The second issue is the stability of the rail. This is not something I can fix immediately, and I’m not even sure whether I should fix it. A slight height difference makes the carrier block unstable, and with the speaker on top of it, the whole structure shakes noticeably from side to side. This could be improved later by 3D-printing long plate-like extensions on both sides of the carrier block to stabilize it. However, this wobbliness is somewhat cute, and it gives the object a kind of “alive” feeling, so I’m undecided. I need to think about it more.
Third, tomorrow I plan to attach the mouth and create a comparison video. I want to gather feedback from people on what kind of impression each version gives. But a separate thought came to mind: in my project, the speaker serves as a medium of metaphorical substitution. If I attach a mouth to it, that metaphorical function might disappear, so this made me reconsider. While outward appearance does influence the audience’s perception, I believe it is more important to think about what and how I want to express through the work.
Lastly, I need to organize the speaker cable. Right now it’s simply hanging loosely to the side, so I need to decide whether to leave it as it is or route it to the side and secure it to the floor.
Tomorrow, after choosing the sound I will actually use, I will test it and finalize the volume settings. Then I will prepare for the formal recording and documentation. I’m planning to borrow a camera from the school for filming.