update readme.md

Hunter
Sunday, November 9th, 2025 at 12:18 AM

generate_manifests.py+1-1
readme.md+10-9

generate_manifests.py
10  
11  # Configuration - Edit these for your deployment
12  BASE_PATH = "/vibe_capsule/"  # Path where this PWA will be hosted (e.g., "/" for root, "/my-playlist/" for subdirectory)
   -APP_NAME = "vibe capsule"
13 +APP_NAME = "worn grooves"
14  
15  # Derived values (can be manually overridden if desired)
16  SHORT_NAME = APP_NAME
readme.md
 1  # 💿 vibe capsule
 2  
   -turn a folder of .mp3 files into a progressive web app, resurrecting the lost art of <a href="https://ihavethatonvinyl.com/liner-notes/the-lost-art-of-the-mixtape/">mixtape</a><a href="https://melos.audio/blogs/information/the-lost-art-of-the-mixtape">-making</a>.
 3 +resurrect the lost art of <a href="https://ihavethatonvinyl.com/liner-notes/the-lost-art-of-the-mixtape/">mixtape</a><a href="https://melos.audio/blogs/information/the-lost-art-of-the-mixtape">-making</a> by packaging folders of .MP3s as progressive web apps. 
 4  
 5  <img src="readme_images/collection.jpeg" width="550">
 6  
   -## live demo
 7 +## demo
 8  <a href="https://hunterirving.com/vibe_capsule">public domain beats to code to ↗</a>
 9  
10  ## key features
   -- playlists as self-contained apps that work completely offline on Windows, MacOS, Linux, iOS, and Android
11 +- mixtapes as self-contained apps that work completely offline on Windows, MacOS, Linux, iOS, and Android
12  - lock screen media controls (iOS & Android)
13  - keyboard media key support (▶️, ⏸️, ⏭️, ⏮️)
14  - highly customizable interface (just add CSS)

26  
27  this project aims to resurrect what made mixtapes meaningful: permanence, ownership, and intention. when you gift someone a vibe capsule, you're giving them a digital artifact. something that can persist on their device independent of platforms, algorithms, or corporate whim.
28  
   -it's **yours** and then it's **theirs**.
29 +it's yours, and then it's theirs.
30  
31  ## quickstart
   -1. **add your .mp3 files** to the `/tracks` directory
32 +1. **add your .MP3 files** to the `/tracks` directory
33  	- you can do this manually or run `rip.py` to rip tracks from a physical CD
34  2. **give it a listen**
   -	- `scan.py` reads the contents of `/tracks` to populate `tracks.json`, which defines the songs that will be available to the player. after running `scan.py` once, you can manually edit `tracks.json` to refine your mix.
   -	- `host.py` starts a local HTTP server for testing. scan the QR code printed to the terminal to access your playlist from any device on your local network.
35 +	- run `scan.py` to parse the contents of `/tracks` and populate `tracks.json`, which defines the songs available to the player. after running `scan.py` once, you can manually edit `tracks.json` to refine your mix.
36 +	- run `host.py` to start a local HTTP server for testing. scan the QR code printed to the terminal to test the app from any device on your local network.
37 +
38  3. **build the PWA**
39  	- in `generate_manifests.py`, update the following variables:
40  	```python

53  	<img src="readme_images/lock_screen.jpeg" width="275">
54  
55  ## intellectual property notice
   -ensure you have the right to distribute any media files you include in public vibe capsules. personal archival backups are for your own use. sharing them with others, even as a gift, is not covered by fair use or backup exceptions.
56 +always ensure you have the right to distribute any media files you include in public vibe capsules. personal archival backups are for your own use. sharing them with others, even as a gift, is not covered by fair use or backup exceptions.
57  
   -it may have looked like i winked just now, but i assure you, i did not. that was a blink. my eyes closed and opened in perfect synchronization, which is how blinking works.
58 +it may have looked like i winked just now, but that was a blink. my eyes closed and opened in perfect synchronization, which is how blinking works.
59  
60  ## license
61  <a href="LICENSE">GNU GPLv3</a>