App for iOS


Demo is the app for those who love music and want to capture their song ideas. Either you are taking solfeggio lessons two times a week or have never seen the chords at all, Demo can help you record your own song without renting any studio.
Design Documentation • iOS • Quality Assurance • Support
Golden App 2021
The Chords screen is there for you to generate another beautiful track using the chords offered by the app. You can choose pre-built progressions from the app library or generate the new ones.
Each style has its own rhythm whereas you yourself can add the sound of the keys, drums and bass. You can also tune these instruments, for example, you can choose a piano or a synth.
Under the Hood
AVAudioEngine is responsible for the technical side. With it on board we managed to ensure flexible audio data handling. Based on the style and rhythm chosen by a user the app generates MIDI data which is fed to the AVAudioSequencer. It sends the data related to the notes played to the AVAudioUnitSampler object which in turn defines which sample out of the given sf2-instruments should be played for a certain note (as well as processes all the parameters: volume, filter settings, ADSR envelope data, etc).

Reverb is applied to the audio from the sampler using AVAudioUnitReverb whereas the final chords are mixed with the recorded audio-files with the help of mainMixerNode AVAudioEngine.
AVAudioPlayerNode is used to play the recorded audio which enables to flexibly control the playback and synchronize the recorded audio with the synthesized one (from the AVAudioUnitSampler).

To compress the audio dynamic range we’ve used the AVAudioUnitEffect wrapper allowing the use of any AudioUnit effect (in this case — system-embedded kAudioUnitSubType _ DynamicsProcessor) in the AVAudioEngine graph.
At this stage you can write your own lyrics for a song. If your inspiration lets you down, the app will help you rhyme the line chosen. To make it a go we’ve used a third-party rhyming engine API Datamuse, but decided to cache the queries on our backend for the users to get their results faster.
Vocals Recording
With Demo you can record several sound tracks at a time to accompany the lyrics written before. Each of them will be mixed together at playback reproducing the overall picture with a much-needed track editing feature at hand.
A mixer has all the music settings to control audio tracks (volume, mute and solo), audio effects adding, such as reverb and compressor, easily applicable for standalone tracks.
There are three options for exporting Demo has to offer:
— a mixed song, which is an mp3 with chords and recorded tracks mixed together;
— chords and lyrics, which are a text file containing song lyrics and used chords;
— individual tracks, which export each audio track as a separate wav file and each instrument track (keys, bass and drums) as a separate MIDI file.
Admin Panel
To manage the styles and rhythms without introducing constant app updates we’ve come to use the Firebase platform which helped us cut the development and maintenance costs. The app accesses the Firestore database as well as the Storage directly to get all necessary data. An admin panel has been developed using the Firebase Functions.
Trey George
There aren't enough good things I can say about Rosberry. Simply some of the best developers I've ever worked with. They're my first choice if I'm ever in need of contract app work. I will be working with them again.
Download Demo
on the App Store
Download Demo
Next project