Ferromagnetic is a music visualizer for macOS and iOS, which supports modern streaming services like Spotify and Apple Music. It features tailored effects that match a wide range of music genres. Ferromagnetic will be an excellent companion for home parties, in the (hopefully not so far) future when we can have people over again.
The next-generation of music visualizers
These days the first impression about a music visualizer is usually a nostalgic feeling. People compare them to Winamp and Windows Media player, which used to be a huge deal back in the day. But then the logical follow-up question is: If visualizers were fun, why did they disappear?
The answer is related to the popularity of music streaming services like Spotify, Apple Music, and Google Play Music. Most people don’t store music on their computer anymore, instead, they use one of these services where they don’t own the songs they listen to. One common thing between all big music streaming services: They use DRM (digital rights management) to prevent the copying of the songs. Because of DRM, applications outside of the music player don’t have access to the content of the songs, therefore the classic way of visualization is not possible with these services. Some software goes around this restriction by using the microphone of a computer or a phone to record the user’s music and generate the visual effects based on this real-time input. However, this requires some additional physical configuration which sometimes takes too much effort to set up.
Next-generation visualizers (like Ferromagnetic) can produce visual effects for DRM-protected songs, purely with a software-based solution. This is achieved with a simple workaround: the details of the song’s features are provided by a trusted third-party service. In the case of Ferromagnetic, the main (but not exclusive) source of the song’s details is the Spotify Audio Analysis API. Ferromagnetic monitors the playback of the songs on the user’s device, then based on the name of the track it requests the audio analysis data. Since this data only contains high-level information about the song, the software also needs to do some further processing to interpolate between the missing features. Finally, with this data and the information about the playback’s position, the visual effects can be displayed. These effects use various details of the song, including tempo, beats, volume, and pitches. Although this workaround has two main limitations: the software depends on the availability of the music analysis services, and it will only provide visualizations for songs that are available in the database. Still, in the majority of the cases, Ferromagnetic can display rich visualization to popular songs without any additional physical setup.
Ferromagnetic was written in Swift and powered by the Metal graphics API. It is also my first standalone application that purely uses SwiftUI components. The development setup is by default targeted for multiple platforms, which makes it easier to deploy the same content for macOS, iOS, and tvOS in the future.
Currently, Ferromagnetic is available on macOS and iOS, but soon it will be also released on tvOS. It is one of the rare applications which could utilize the full hardware capabilities of an Apple TV 4k, paired with a big screen where this concept really feels home.
Ferromagnetic will also receive additional visual effects in the future, with iterative releases. Depending on the interests of users, a shader editor could be also paired with it, which would enable the customization of the effects directly in the application.
In the long-term, it’s also possible that the software will get additional input sources. Currently, all visualizations depend on third-party analysis data. Later on, I will probably add the option to load songs directly from the user’s library or audio recording sources.
Hope you found this short introduction about Ferromagnetic interesting! If you haven’t tried it already, you can find the download link below. Purchase of the Pro mode will support the future development and the realization of the ideas mentioned above. If you have any questions or suggestions for future ideas, feel free to send me a message!