Skip to content

benmaier/komoog

Repository files navigation

komoog

Convert your komoot hiking/cycling trips to audio signals.

from komoog.komoot import download_all_komoot_tours, choose_downloaded_komoot_tour
from komoog.audio import convert_tour_to_audio, play_audio

download_all_komoot_tours()
tour = choose_downloaded_komoot_tour()
audio, sampling_rate = convert_tour_to_audio(tour,
                                             approximate_length_in_seconds=4,
                                             set_tune_to_follow_tour_profile=True,
                                            )
play_audio(audio, sampling_rate)

After hiking I noticed that komoot comes with elevation profiles of tour hiking trips:

Tour profile

This reminded me of wave tables I know from sound synthesis. Because I'm always looking for sounds to use when making music, I decided to write code that generates sounds from hiking profiles that can be used in sound synthesis.

Note that I adapted code from js-on/medium_komoot to access trips on komoot.

Examples

Colorado Provencale in Rustrel - La Doa Loop from Rustrel

00_constant.wav.mp4
00_profile.wav.mp4

Lookout - L'Aiguebrun Loop from Buoux

01_constant.wav.mp4
01_profile.wav.mp4

Gorges de Régalon - Vue de la Gorge Loop from Quartier Gardet

02_constant.wav.mp4
02_profile.wav.mp4

Forêt des Cèdres - Vue au sud - Belvédère Loop from Lacoste

03_constant.wav.mp4
03_profile.wav.mp4

Crête du Grand luberon - Le Mourre Nègre (1125m) Loop from Rue de l'Église

04_constant.wav.mp4
04_profile.wav.mp4

Install

pip install komoog

komoog was developed and tested for

  • Python 3.6
  • Python 3.7
  • Python 3.8

So far, the package's functionality was tested on macOS only.

Prerequisites

Save your komoot credentials in ~/.komoog/komoot.json as

{
    "email" : "your@email.com",
    "password" : "yourpassword",
    "clientid" : "yourclientid"
}

You can find your client id in the komoot url when you log in. Click on your username, then on "Planned Tours" or "Completed Tours". The URL will change to something like

https://www.komoot.com/user/1851102841208/tours?type=planned

Here, 1851102841208 is your clientid.

Dependencies

komoog directly depends on the following packages which will be installed by pip during the installation process

  • numpy>=1.17
  • scipy>=1.5.0
  • gpxpy>=1.4.2
  • simplejson>=3.17.2
  • simpleaudio=>=1.0.4
  • matplotlib>=3.0.0

Documentation

The full documentation is available at komoog.readthedocs.io.

Changelog

Changes are logged in a separate file.

License

This project is licensed under the MIT License. Note that this excludes any images/pictures/figures shown here or in the documentation.

Contributing

If you want to contribute to this project, please make sure to read the code of conduct and the contributing guidelines. In case you're wondering about what to contribute, we're always collecting ideas of what we want to implement next in the outlook notes.

Contributor Covenant

Dev notes

Fork this repository, clone it, and install it in dev mode.

git clone git@github.com:YOURUSERNAME/komoog.git
make

If you want to upload to PyPI, first convert the new README.md to README.rst

make readme

It will give you warnings about bad .rst-syntax. Fix those errors in README.rst. Then wrap the whole thing

make pypi

It will probably give you more warnings about .rst-syntax. Fix those until the warnings disappear. Then do

make upload