In the last post I described my requirements for Soundboard app. Now it is time to decide what can be considered the minimum viable product.

Milestones – first try

Milestone is a specific point of high importance or impact in a project. Taking into account the requirements I wrote down in the last post, I would split them into the following categories:

  • Audio processing
    • Play a sample
    • Stop a sample
    • Stop all samples
    • Loop a sample
    • Mix multiple samples
    • Set volume for a sample
    • Option to stop a sample, if another is started
    • Option to lower volume of a sample, if another’s is gained
  • Sample sources
    • Play a sample from an mp3 file
    • Play a sample from an acc file
    • Play a sample from a flack file
    • Play a sample from an internet stream
  • Soundscapes
    • Group samples
    • Group scenes
    • Save soundscape’s metadata to an archive
    • Save soundscape’s metadata and samples to an archive
    • Save soundscape’s samples in order
    • Load a soundscape from an archive
    • Load soundscape’s samples in order
  • Scenes
    • Save samples’ play state
    • Load samples’ play state
    • Save samples’ volume
    • Load samples’ volume
    • Save samples’ correlations
    • Load samples’ correlations
  • User interface
    • Touch events served
    • Soundscapes list
    • Soundscape view
    • Scenes list in a soundscape
    • Text label for a sample
    • Text label for a soundscape
    • Text label for a scene
    • Image label for a sample
    • Image label for a soundscape
    • Image label for a scene

From now on, the highest hierarchy items could be milestones all by themselves. In my opinion though, although completing such a milestone would mark a significant step in the application development process, it does not represent a high impact functionality leap, as the application after reaching such a milestone is not usable at all.

Milestones – MVP

The first milestone in the project I write will be met, when I will be able to use my application at the RPG session. That first testable version of an application is called the minimum viable product. It has all the necessary features implemented, so it may already be used in the target environment. In my project that would mean, that considering the audio processing, the app is capable of playing/stopping a sample and looping a sample. For a sample source I choose the file source, as I think that it will be easier to implement. Also, for my MVP I will limit myself to one file type, the mp3 should do the work for now. Saving the samples will be required later when I implement the soundscapes. I completely do not care for soundscapes and scenes . For now, all I need is to be able to play samples, even ungrouped. Last but not least, the user interface I need for now is limited to samples grid, play/stop buttons for the samples and text labels for the samples.


That is all for today, the first milestone is defined. Now I will add it the Gitlab issue tracking and I am ready for the development.

In the next post I will describe the project set-up and project structure.


Image: Stones by Judy Dean

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.