About SotiCode
SotiCode is a one-of-a-kind project that bridges the gap between binary data and audio files, turning audio into visual data (images) and back into audio effortlessly. This project is designed, developed, and run entirely by me, Sotiris.
Where the Name Came From
The name "SotiCode" is inspired by my nickname, **Sotiris** (my real name is Mustapha), and the core concept of encoding data. It reflects both the personal nature of the project and its futuristic vision of handling data like QR codes.
How SotiCode Works
1. The Encoder
The Encoder takes a 0.96Mb MP3 file, reads its raw binary data, and maps each bit (0 or 1) to a pixel in an image. The binary is structured as:
- Black Pixel for 0
- White Pixel for 1
The result is a binary image that represents the audio file, which can be downloaded for storage or sharing.
2. The Decoder
The Decoder reverses the process. It reads the binary data encoded in the image, reconstructs it into a byte array, and saves it as an MP3 file. The entire conversion is seamless and ensures data integrity.
Why the Code Works
The magic of SotiCode lies in its simplicity and precision. By converting audio data into binary and using the standard structure of images, the system ensures compatibility with modern devices. The use of the **HTML5 Canvas API** allows for pixel-perfect binary mapping, while **Blob objects** and **data URLs** handle audio reconstruction reliably.
Challenges Faced
Developing SotiCode came with several challenges:
- File Size Limits: Ensuring the encoder and decoder could handle 0.96Mb MP3 files without overwhelming the browser.
- Image Integrity: Mapping binary data to pixels required precise calculations to avoid data loss.
- Browser Compatibility: Ensuring that the code worked across different browsers and devices.
- User-Friendly Design: Making the interface simple yet futuristic took careful planning and iteration.
Future Vision
SotiCode is more than just a project; it’s a step toward redefining how data is visualized and shared. Future plans include expanding support for longer audio files, improving compression techniques, and adding new visualization options.