generativefm / generative.fm Goto Github PK
View Code? Open in Web Editor NEWA platform for playing generative music in the browser.
Home Page: https://generative.fm
License: MIT License
A platform for playing generative music in the browser.
Home Page: https://generative.fm
License: MIT License
Need to add Apple-specific meta tags.
Helpful links here: https://stackoverflow.com/questions/41185471/what-is-progressive-web-app-solution-for-ios
Been looking at this and related repositories, amazing stuff!
Can you please include a LICENSE for this project like the GNU AGPLv3? Thank you for your work!
This site would be pretty sick to crowdsource other pieces. Great work.
Hi, thanks for a fascinating project!
I just installed all the code and samples on my own server, and its all working fine: https://wikischool.org/gfm.html
The only thing I can't seem to figure out (perhaps because I'm not that knowledgeable about service-workers), is that when one visits the URL, there is a redirect to the root URL. Where can I prevent that from happening?
Thanks.
Add a small guide for users experiencing audio issues with things to try:
Would it be possible to provide an mp3 (or other format) stream that could be opened via any audio application - mainly thinking of Sonos here, or other similar devices?
Original issue: It would be awesome if we could play it for a certain period of time and then be able to save what was played.
EDIT: Probably offer some form where users can input the length of recording they'd like (with some reasonable maximum). Then a music file of that length is generated and downloaded.
I'd love to PR for this
Possibly fixed with same workaround for #42.
This is not as critical as it might sound as the files are cached in CloudFront, which is not cleared until the deployment is complete.
Need to display when pieces are loading vs playing.
Native iOS app with access to AirPlay etc. Always available for some design assist if needed!
I would love to see the generation of the audio on the server side so that it would be possible to play some infinite ambient music on some low powerful hardware like it's already possible to listen to a web radio using a URL on any device that is Wi-Fi compatible.
The generated audio would be streamable trough a web server for example.
Probably offer some form where users can input the length of recording they'd like (with some reasonable maximum). Then a music file of that length is generated and downloaded.
Set the mobile volume to something a little less than 100% to improve crackling and such
I listen to generative.fm on my mobile android via a bluetooth headset. It would be amazing if I could pause and do next track with my bluetooth controls. I have tested the mediaSession api, and it easily supports this. It would be amazing if generative.fm added this. Here is an example of it working, with code snippets.
https://googlechrome.github.io/samples/media-session/audio.html
I would be up for doing a pull request if you'd like.
Thanks!
There is a folder on the git history that is no longer used but it contains big files samples
so I think it would be a good idea to delete that folder as I did on my fork to reduce the repository size. I pruned the folder from git history and now the repo is only 2.6MB instead of 400MB. I could open a PR for this or maybe you can do it yourself. Thanks for the amazing work!
This will improve situations where a users arrives at the site via a link to a specific system
Add tags to pieces, such as "ambient," "calm," "piano," etc. This will help users choose a piece to listen to and also pave the way for other styles of music to be added to the site. Later on, music could be organized by tag.
This information will need to be stored in each piece's manifest file.
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
This prevents users from accidentally closing the site while only mildly annoying users who actually want to leave.
Don't do this on mobile (some devices don't support it anyway).
Is it possible to make an offline copy of a song or the site? Not a priority for me, but when I'm on the road it might be nice.
Basically zero attention has been payed to properly disposing of resources that are no longer in use. Almost every node has a dispose
method which ought to be called in situations when it will never be used again. Pieces likely need to return a function which disposes of everything properly to be called when stopping the piece.
This is possibly contributing to sluggish behavior after using the site for a while.
Sometimes it's kinda cool but it should be fixed.
The piano song is amazing! I'm curious on where the piano note sounds come from.
Also, curious what sounds you recorded yourself and how you did that! Very cool project.
I really like this, and I am constantly using this and even find myself using this at nights, which begs the question, could there be a dark mode or a night mode for this ?
From what I understand, this uses fairly monochromatic colours and hence it will be very easy to try and implement this.
It could turn out as a nice feature add on for future releases.
I know you are not accepting any PRs from outside contributors but I would still love to take a shot at this.
Nevertheless, I just wanted to add this ๐ฅ
This will be nice for users who do not want to fuss with installing SoX or LAME to convert the sample files during local development.
Suggestion from email.
Google Chrome Desktop users: Please see here for instructions for casting any tab (including generative.fm).
Android Users: Please see here for instructions for casting your Android device's audio. You can do this and then play generative.fm from the device.
Suggestion from email to add a sleep timer to the site
Some pieces are much louder than others.
Got an email about missing IPv6 support. Added an AAAA record to generative.fm, but probably still need to add an AAAA record to samples.generative.fm.
When I play the music, it shows:
Access to fetch at 'https://samples.generative.fm/index.1.5.0.json' from origin 'http://localhost:9999' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
This helps users find their favorite pieces easily
Some very generous folks have been offering to send money for the site. Add paypay.me link and leave room for a Patreon link in the future.
Add a Contributing.md to the project root if you plan on accepting outside Pull Requests. This document will describe how PRs should be handled and any other helpful info to potential contributors.
I would love to have a less abrupt stop and start between tracks.
Track which pieces are are available offline and disable uncached pieces while offline
Use Google Analytics custom metrics/dimensions to measure:
The fixed bottom media controls bar at the bottom is the best way this could have been implemented but unfortunately due to this, the last row of elements get obscured by the control bar
This makes reading the contents difficult.
Could be an easy fix by implementing a bottom padding to the end of the unfixed page so that the bar lies on empty space the we scroll towards the end of the contents.
Would love to work on this and give out some iterations seeing as it is not a major feature request but a minor bug.
Use more virtual instruments from
https://github.com/surikov/webaudiofont
The noscript
message is hidden from view.
Original issue: Most websites I use for background music(youtube, soundcloud) use spacebar to pause or resume the audio, would be great if this site would have it too.
EDIT:
The visualization can get stuck in the middle of a rotation if the music is stopped before the rotation completes. I'm not sure if this is really its own issue or just a symptom of degraded performance because of #7.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.