📄️ AI Implementation
C++
📄️ Animations Implementation
Our implementation provided two main ways to experience ausio visualisation, Partile Visualiser and Shader Visualiser
📄️ Phillips Hue Integration
The Philips Hue Entertainment integration is handled primarily by the HueService class. This class manages communication between the Electron application and the Philips Hue Bridge, enabling real-time synchronisation of lighting effects with audio and user interactions. Unlike standard Hue APIs that operate over simple HTTP requests, Hue Entertainment employs DTLS (Datagram Transport Layer Security) for secure, low-latency streaming.
📄️ Database
Our application employs a hybrid database architecture, combining the strengths of a traditional SQL database (SQLite3) with JSON file storage. This approach ensures structured query capabilities while maintaining human-readable data persistence. JSON provides a reliable and platform-independent format for storage, inspection, and backup, whereas SQLite offers efficient querying, indexing, and relationship management.
📄️ Audio Processing
Audio Analysis
📄️ User Interface Implementation
Our UI was built in React using the Material UI component library 3] which we then coded custom Cascading Style Sheets (CSS) to fulfil the design we had produced in Figma. We built reusable components in constructing the UI so that similar or identical components could be created and used by other team members, ensuring consistent visual design across the application. This also made it easier for the team as when they came to implement a feature, they could simply pass their values to the UI components already created for them. We speak more about the design of the UI in the [User Interface and Experience Design section.
📄️ Application Packaging
The template that we used when creating our product electron-react-boilerplate used electron-builder to generate a bundled version of the code for windows based systems using the nsis format using the npm run package command. Although this packaging did work out-of-the-box for our product, the nsis installer did not seem to function correctly, only generating the uninstaller and not unpacking any other files. Therefore, we decided to zip the folder containing the contents to be unpacked by the installer and send that as our final product instead.