/medito-creator-app

Medito Creator is an app where you are able to tailor guided meditations for your specific need

Primary LanguageDartGNU General Public License v3.0GPL-3.0

What is the Medito Creator App?

The Medito Creator app is primarily made for you who already practice meditation and have come to the point where you want to influence the guidance yourself.

With the Medito Creator app, you can freely put together guided meditations by deciding what they should be about and whether the topics should change along the way. You can enter periods of silence and freely adjust the total length of your meditations.

Medito Creator App

Together, it puts you in control of your own practice by giving you the ability to adapt the guide to your own surroundings, your state of mind, and the time you have available.

I hope you will experience a renewed curiosity in relation to continuously trying to create the good meditation experience 🧘‍♂️

Getting Started

This app is build with https://flutter.dev/ so it requires the flutter framework in order to build & run.

The app is self-contained so it doesn't depend on a backend. It uses pixabay.com for images so you need to aquire a new API Key at pixabay.com in order for the PixabayService to work. The API key is pasted to AppSettings.pixabayApiKey.

After that you should be able to start the app as any other flutter app by executing the "flutter run" command.

(Be aware of the limitations though - look down below in the documentation)

Technical Documentation

Overall explanation of essential classes

Overall data flow from user input to audio output

The essence of the app is to understand the flow and purpose of the classes involved from the user builds a meditation through the app interface and what happens from there until an actual audioguide is played to the user.

(user input) > MeditationViewModel > GuideRequest > MeditationBuilder > MeditationGuide > MeditationPlayer > (audio output)

MeditationViewModel

The MeditationViewModel is representing everything the user can customise and setup in order to build a meditation. It contains core guide parameters like the duration, intro, outro and body content. But also parameters that aren't directly linked to the guide itself like the meditation title and image.

GuideRequest

When the user want's to play a meditation the MeditationViewModel is converted to a GuideRequest that contains all the necessary parameters needed to build the actual audio guide.

MeditationBuilder

The MediationBuilders main job is to create a pleasant audio guide by picking which clips to play when and add the right amount of silence between clips so that the total requested duration is still respected.

The MeditationBuilder takes a GuideRequest as input and builds a MeditationGuide as output.

MeditationService

MeditationBuilder depends on a MeditationService that acts as an audio library of audio clips (MeditationClip) with enough metadata to help the builder take informed decisions on which clips to play when.

MediationGuide

The MeditationGuide is a gathering of MeditationClips where each are pointing at an exact audiofile to play. The clips are organised in sequences matching the users original input. So when the MeditationPlayer takes over it knows where each clip belongs and how long the actual sequence is.

MeditationPlayer

The MeditationPlayer is an AudioPlayer that understands the MeditationGuide format. It plays every clip in sequence of each other in order to make a coherent listening experience for the user. Someclips are background clips that are not affecting the overall duration like a transition bell . It will play in the background while the guiding clips moves on in the foreground.

Known issues

MeditationPlayer does not work in background mode on iOS

Since a full guided meditation consists of many small audio clips the player needs to be able to start playing new audio clips in the background and iOS does not get any running time in background-mode. The work around right now is that the player screen is kept alive by "wakelock". But if the user decides to turn off the screen the player will stop at the end of the current playing clips. Not sure if there is any good solutions to this other than the MeditationBuilder actively putting together a single audio file. Any good ideas to solve this issue will be very welcome.

Limitations

  • Only working as iOS and Android App. Not running as a web app right now. The audio player doesn't support web right now. This should be fixable but has not been a priority.

Audio Recording guide

Introduction

When recording guided meditations for this App there are certain rules that apply in order to provide the pleasant user experience in the end. All recordings will be chopped up in smaller sequences afterwards so don't worry about small mistakes.

Topics

Each recording should have its own designated anchor within one of the currently supported topics.

Current supported topics

  • Breathing
  • Body
  • Senses

Future topics

  • Compassion
  • Thoughts

Length

Recordings must be a minimum of 10 minutes without drawn out pauses that create periods of silence that are too long. All periods of silence is cut away from the recordings afterwards. The goal is to end up with around 10 minutes of raw audio.

Guiding Rules

Form

  • the guide must contain an intro, outro and a guide in between.
  • the guide must have at least one sequence that can be reused multiple times afterwards. Fx "on your in breath be aware of your in breath, on your out breath be aware of your out breath. In breath, out breath."
  • avoid mentioning where we are in the session. Fx "As we come to the end of the session."
  • avoid referring to something that has happened or will happen in the session. Fx. "Now move your focus from your shoulders to your arms.". In this example you should instead say "Now move your focus to your arms". The reason is that depending on the chosen length sequences can be left out and in this case confuse the listener because the previous sequence about the "shoulders" was never played.

Topic

  • stay within the designated topic as much of the time as possible.
  • avoid teaching about the topic. Neither in the intro or outro.

Sound Quality

Audio level

It is important that the sound level is normalised throughout the recording but also across recordings. If you are new to recording look into compressor and limiter features as a part of your sound card or software effects in your recording tool.

Background noise

It is important that there is very little background noise. The App will fill in dead silence so the difference between background noise in the recordings and dead silence should be as similar as possible.

About the Medito Foundation

We are a registered Dutch nonprofit

Medito Foundation (or in Dutch "Medito Stichting") 
KvK-nummer: 75284251
RSIN: 860222627 

Attribution

Thanks to Jane Winther and https://unisound.dk/ for letting us use her recordings of singing bowls in the App.

License

  • App: GNU AFFERO GENERAL PUBLIC LICENSE
  • Our original content is licensed under a Creative Commons licence. For more information please refer to meditofoundation.org/license.
  • Sometimes we aggregate content from other sources that do not have the same license. This content is generally not published under "Medito". Make sure to respect the original copyright. Now that you know, we cannot be held responsible if you are miss-using this content. If you need more info, reach us on slack or by email.

Medito Foundation https://meditofoundation.org/