After visiting Japan for the first time a decade ago I became completely enamoured with Tokyo's Yamanote Line railway loop. Particularly the sonic experience of it. Like so many others I fell in love with the charming departure melodies and enjoyed discovering experiences like Yamanot.es (https://news.ycombinator.com/item?id=45045307) here on Hacker News when I returned home.
But it wasn't until my second trip to Tokyo that I truly appreciated how much the door chimes, on-board announcements and train noise were contributing to the rich soundscape that I loved.
I returned home and found myself playing YouTube videos of Yamanote Line journeys as I worked. The combination of sonics, ambience and softly spoken Japanese was incredibly soothing to me.
But these recordings were often incomplete, poorly captured or out of date, and I wanted something far more comprehensive.
So I gathered up all of the constituent parts from Reddit threads, YouTube videos and Japanese fan sites, and set about recreating the experience of riding the Yamanote Line in Logic Pro X. Melody, door chimes and announcement, all stitched together under a bed of train noise and ambience.
It's a small installable web app that plays the soundscapes like a playlist. All 30 stations and in both directions, since the inner and outer loops use different melodies. You can skip forward or back a station, and there's a scrub bar broken into melody / chime / ambience / announcement so you can jump straight to the bit you want. Each station has its own shareable link (yamanote.fun/jy13-ikebukuro-inner) that unfurls with the right station name and artwork when you share it.
It's a progressive web app too, so you can add it to your home screen and it behaves like a native app. There's an option to offline the audio too.
Under the hood it's relatively basic stuff: plain HTML, CSS & JS, audio served from Cloudflare R2 and the site hosted on Netlify. I was impressed to see how far I could get with the free tiers of these services. I designed the whole thing in Figma (I'm a Product Designer) and used Claude Code to architect and deliver the polished UI, PWA plumbing, offline caching and share-link infrastructure.
I would love feedback, particularly from anyone who's ridden the real thing.
What an incredibly detailed and calming project! I am really impressed with how you connected so many different audio materials to create a final PWA product. The very fact that it works offline and acts like a native application is enough to make it a great background soundtrack for focused work.
I saw your mentioning of Claude Code as a means for handling PWA backend and offline caching issues. As a person who usually creates everything manually, I am willing to find out how it went for you. Did this solution manage to master the technical side of Service Workers and caching techniques at once or did it take a lot of iterations to get everything in order?
I've built PWAs with rich UIs and offline caching in the past and found the experience with Claude Code produced results far quicker than I could. But it wasn't without it's quirks. The service workers and caching were handled pretty seamlessly I must say, but it took LOTS of iterations to get the UI behaving as I wanted, with the level of polish I was aiming for. There's probably a lesson about taste in here somewhere.
No real feedback other than it's pretty awesome. It'd be cool to have a version of the display above the doors that shows the upcoming stations, but I'm not sure in practice if that would be that useful since I assume most people would have that in the background as you point out.
Ha! Just before I began work on Yamanote.fun I actually asked Claude Design to replicate that display. It didn't go especially well and it led to me designing a custom interface in Figma that would work far better on mobile.
This is lovely - I used to use YouTube recordings of Yamanote line trips as a way to fall asleep.
As a small bit of feedback - from the sleep perspective, the melodies and door chimes seem quite loud and frequent - would love an even more "backgroundy" version where the ambient travel sections are longer, and those chimes and melodies are quieter. Perhaps even with masking of human noises.
+1 on this - would love to have a more realistic timing mode where there are a few minutes of ambiance for travel sections in between station arrivals.
I love this :) Thanks very much for making it, it's elegantly designed.
In terms of usability, I found the 'seek next' and 'seek previous' buttons confusing, since they're positioned left/right but control motion up/down, and even switch their direction based on loop. Which direction was "forward" and which was "back" also changes based on loop; some sort of indicator for that would help. Adding navigation via mouse wheel would be perfect here too.
Sorry to ask for even more, but I'd personally love to see door opening / door closing sounds added (along with 'ドアが閉まります' and the alarm) to fully round out the soundscape.
I don't mean to be too picky! It's already awesome work.
Thank you for the kind words and the really thoughtful product suggestions :)
I've added vertical next and previous arrows that make far more sense in the context of the UI as well as mouse wheel behaviour this morning.
I've also had lots of suggestions for improving the soundscapes themselves, so I'll be doing a V2 of those complete with the door sounds, 'ドアが閉まります' and the alarm.
This is really cool! Really give a immersion vibe.
I've built something different, Tokyo Train Orchestra (http://tokyo-train-orchestra.netlify.app/) It uses live and scheduled tokyo train/subway timetable to produce music.
JR East is already in the process of eliminating departure melodies as they transition to one-man station operations, so these will unfortunately be gone sooner than later. The Nambu and Joban lines got rid of them last year and it looks like the Yamanote is scheduled for them to be gone by 2030 [1].
I'm sure they can figure out a way to trigger custom melodies with RFID or similar eventually. Keikyu figured out how to recreate their departure boards [2]. JR might be less willing to come up with something immediately given the optics around automating someone out of a job.
"trains on the Nambu Line have been operated by a team of two staff members, a driver up front and a conductor in the back [...] It turns out that in order to play the station-specific departure melodies, someone has to press an actual button located on the platform, and this has been part of the conductor’s responsibilities"
I hope they can find a way to keep them, it would certainly garner a lot of goodwill. Not like people will stop taking their trains because the melodies are gone, though...
For the digital flipboard on the Keikyu line, it's nice they did it, but I wish they would add a bit more perspective to the flippy parts. Right now it looks like a horizontal scanline just moving down the signs to reveal the next station name underneath.
No, it is impossible to keep them, unfortunately science is not that advanced yet. The melodies can only be played by pressing a button located at the end of the train.
My line lost its departure melodies in March this year :/
We should get our top frontier models on the task. Perhaps they can devise a motorized finger contraption to push the button without human intervention.
I should have specified I meant the custom melodies. My understanding was that they're now all generic. https://sheets.works/the-bells-of-tokyo is a good reference for the transition.
Super cool and close to my heart, albeit not the Yamanote line for me.
There is an episode of Our Man in Japan with James May where he spends an admittedly short moment with the composer of some(all?) of these melodies. It's a surprisingly thoughtful process, he tries to capture the feeling of the station and area in a short motif. Some of these motifs can contain surprising musicality and complexity, despite being so short.
Nice, I just visited Japan a couple of months ago.
I wish this was binaural. I still vividly remember hearing this video[1] from the Verge published almost 11 years ago.
That “install as app” pop up after the first station is clearly unnecessary and utilises a dark pattern - “not now” button is painted like it is disabled. Please don’t do like that.
Group policy sadly doesn't like newly registered domains so I can't check this one out right now but it immediately reminded me of this one, that I favorited 4 years ago:
65 comments
[ 3.7 ms ] story [ 63.1 ms ] threadBut it wasn't until my second trip to Tokyo that I truly appreciated how much the door chimes, on-board announcements and train noise were contributing to the rich soundscape that I loved.
I returned home and found myself playing YouTube videos of Yamanote Line journeys as I worked. The combination of sonics, ambience and softly spoken Japanese was incredibly soothing to me.
But these recordings were often incomplete, poorly captured or out of date, and I wanted something far more comprehensive.
So I gathered up all of the constituent parts from Reddit threads, YouTube videos and Japanese fan sites, and set about recreating the experience of riding the Yamanote Line in Logic Pro X. Melody, door chimes and announcement, all stitched together under a bed of train noise and ambience.
I turned those soundscapes into an Alexa Skill (https://www.amazon.co.uk/Paul-Jackson-Yamanote-Line/dp/B07S1...) in 2019 and began to think about a companion website to share the soundscapes with a wider audience.
Seven years later and that website is Yamanote.fun: https://www.yamanote.fun/.
It's a small installable web app that plays the soundscapes like a playlist. All 30 stations and in both directions, since the inner and outer loops use different melodies. You can skip forward or back a station, and there's a scrub bar broken into melody / chime / ambience / announcement so you can jump straight to the bit you want. Each station has its own shareable link (yamanote.fun/jy13-ikebukuro-inner) that unfurls with the right station name and artwork when you share it.
It's a progressive web app too, so you can add it to your home screen and it behaves like a native app. There's an option to offline the audio too.
Under the hood it's relatively basic stuff: plain HTML, CSS & JS, audio served from Cloudflare R2 and the site hosted on Netlify. I was impressed to see how far I could get with the free tiers of these services. I designed the whole thing in Figma (I'm a Product Designer) and used Claude Code to architect and deliver the polished UI, PWA plumbing, offline caching and share-link infrastructure.
I would love feedback, particularly from anyone who's ridden the real thing.
I've built PWAs with rich UIs and offline caching in the past and found the experience with Claude Code produced results far quicker than I could. But it wasn't without it's quirks. The service workers and caching were handled pretty seamlessly I must say, but it took LOTS of iterations to get the UI behaving as I wanted, with the level of polish I was aiming for. There's probably a lesson about taste in here somewhere.
As you can see, it was far from perfect: https://ibb.co/3D6GBsX
As a small bit of feedback - from the sleep perspective, the melodies and door chimes seem quite loud and frequent - would love an even more "backgroundy" version where the ambient travel sections are longer, and those chimes and melodies are quieter. Perhaps even with masking of human noises.
Should be a fairly easy ask as the chimes and melodies are on separate tracks and the volume can be adjusted easily.
In terms of usability, I found the 'seek next' and 'seek previous' buttons confusing, since they're positioned left/right but control motion up/down, and even switch their direction based on loop. Which direction was "forward" and which was "back" also changes based on loop; some sort of indicator for that would help. Adding navigation via mouse wheel would be perfect here too.
Sorry to ask for even more, but I'd personally love to see door opening / door closing sounds added (along with 'ドアが閉まります' and the alarm) to fully round out the soundscape.
I don't mean to be too picky! It's already awesome work.
I've added vertical next and previous arrows that make far more sense in the context of the UI as well as mouse wheel behaviour this morning.
I've also had lots of suggestions for improving the soundscapes themselves, so I'll be doing a V2 of those complete with the door sounds, 'ドアが閉まります' and the alarm.
I've built something different, Tokyo Train Orchestra (http://tokyo-train-orchestra.netlify.app/) It uses live and scheduled tokyo train/subway timetable to produce music.
I'm sure they can figure out a way to trigger custom melodies with RFID or similar eventually. Keikyu figured out how to recreate their departure boards [2]. JR might be less willing to come up with something immediately given the optics around automating someone out of a job.
[1] https://japantoday.com/category/features/travel/jr-east-axes...
[2] https://soranews24.com/2026/07/04/japanese-train-company-bri...
Ha, thank you for surfacing this.
For the digital flipboard on the Keikyu line, it's nice they did it, but I wish they would add a bit more perspective to the flippy parts. Right now it looks like a horizontal scanline just moving down the signs to reveal the next station name underneath.
My line lost its departure melodies in March this year :/
There is an episode of Our Man in Japan with James May where he spends an admittedly short moment with the composer of some(all?) of these melodies. It's a surprisingly thoughtful process, he tries to capture the feeling of the station and area in a short motif. Some of these motifs can contain surprising musicality and complexity, despite being so short.
[1] https://www.youtube.com/watch?v=2Gpl99s02Aw
https://yamanote.style/