Inspiration
Music has always been more than just sound. A song can create memories, emotions, and unique personal experiences, but traditional music players are still mostly limited to simple playback controls.
I wanted to explore a different approach: a music player that could better connect listening, visual feedback, and intelligent interaction. Universal Player started as an experiment to create a more immersive way to experience music while keeping the core functions of a practical daily player.
What I Learned
During development, I learned that building a modern multimedia application requires much more than implementing individual features. Audio playback, real-time analysis, online services, UI design, and visual effects all need to work together as a complete system.
I also learned the importance of modular architecture. Separating music sources, playback systems, and visualization components made the project easier to extend and maintain.
How I Built It
Universal Player was built with a modular architecture that combines local music playback, online music integration, synchronized lyrics, waveform visualization, spectrum analysis, and customizable EQ processing.
The application uses a separated music source system to integrate services such as Netease Cloud Music while keeping playback and visualization independent. Real-time audio analysis provides data for interactive visual effects and audio adjustments.
Challenges
One of the biggest challenges was creating a stable connection between different systems: local files, online music services, audio processing, and visual rendering.
Another challenge was ensuring consistent behavior between development and production environments, especially for real-time 3D visual effects and rendering performance.
Through continuous testing and iteration, I learned that a great user experience comes not only from individual features, but from the balance between technology, design, and reliability.
Built With
- api
- app
- audio
- cloud
- desktop
- eq
- lyrics
- music
- netease
- player
- processing
- react
- real-time
- rust
- synchronization
- tauri
- three.js
- typescript
- visualization
- vite
- web
Log in or sign up for Devpost to join the conversation.