4. The First Working PyGame Prototype
The first version that really worked was made with PyGame. It was still simple, but it was the first time the system became interactive in the way I wanted. The GUI sent x and y values for the listener position. These values went into the calculation script, where the relation between source and listener was calculated. Then the resulting parameters were sent to REAPER and the IEM plug-ins.
This was an important moment because the project stopped being only a plan. I could move something in the interface and hear a change in the audio system. Even if the first version was rough, that connection was exciting. It showed that the basic chain was possible: GUI movement, Python calculation, OSC messages, REAPER processing, and spatial output.
At this stage, the interface was not yet the final one. It was more like a proof of concept. But it already contained the essential idea. The listener position mattered. Source distance could be calculated. Direction could be calculated. Values could leave Python and arrive inside the audio engine. That was the first working skeleton of the project.
Technically, this also helped me understand the different roles of the scripts. The GUI was not the model. It was the interface. The calculation part was the direct-sound model or direct-sound calculation script. The OSC sender was the communication layer. REAPER was the audio engine. This separation later became important for explaining the project clearly.
The first PyGame version also made me think more seriously about movement. I did not want the listener to just drag a dot and read numbers. I wanted the interaction to feel a little more embodied. Even though the system is headphone-based, movement is still central to the experience. The listener moves through a virtual source layout and hears changes that relate to position.
This is also where the project started touching game-like thinking. The controller, the movement, and the view direction reminded me of old first-person games. That connection was not planned, but it became part of the development story. It helped me think about how spatial audio tools could feel less like lab software and more like something you can inhabit.
The first PyGame prototype was not polished, but it was the first real success. It proved the system could exist.