I had two reasons to build this:
- I wanted to learn React Native
- I participate in music band and we used to record our repetitions and comment them on soundcloud. Unfortunately, soundcloud does not offer enough features for us and also have some limits so we wanted some better solution for our needs.
I used realm as a realtime database, which keeps everyone in sync. So in order to try the app you need to have realm object server (they have easy to install linux or macOS packages) and write paths to it in config.js.
At the moment you can't add tracks from the app, you can only register and comment. You need to use Realm Browser to push tracks and repetitions.
Once you have your server running, you need to have some user. You can either do it in the web interface of the server or right in the app. In the app enter login and password, tap register and wait some time, it will change screen on success.
You also need to have some public direct link to audiotracks and images, I used nginx static website. Easiest way is to create repetitions via Realm Browser. Other way to create some tracks is to pause JS in the Model.js after this.realm
was set, and execute this in console:
this.realm.write(()=>{
let album = this.realm.create('Repetition', {
title: 'Example album/repetition',
date: new Date(),
imageURL: 'http://example.com/image.jpg', //optional, but nice to have
});
album.tracks.push(this.realm.create('Track', {
title: 'Our new song',
duration: 244, //in seconds. currently unused, so you can define anything
trackURL: 'http://example.com/song.mp3',
}));
});
When playing track, tap button in top right to open compose comment interface. Comment will be bond to a particular second on the track. You can tap on the comment to start playing track from the second bond to it. You can long tap on the comment to reply.
This project is based on the react native music player which I used to bootstrap and dive into React Native. See contribution graph for more details.