{"id":18872040,"url":"https://github.com/calebabg/musicvisualizerv2","last_synced_at":"2025-07-01T02:33:49.234Z","repository":{"id":102041866,"uuid":"300410252","full_name":"CalebABG/MusicVisualizerV2","owner":"CalebABG","description":"The awesome Music Visualizer is back and better!","archived":false,"fork":false,"pushed_at":"2024-03-23T18:32:51.000Z","size":13428,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T16:00:39.831Z","etag":null,"topics":["java","kotlin","music-player","music-visualizer","processing","visualizer"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CalebABG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-10-01T20:05:46.000Z","updated_at":"2024-06-04T20:37:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"71e91509-e492-43ce-bd79-28ae67f53e8e","html_url":"https://github.com/CalebABG/MusicVisualizerV2","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/CalebABG/MusicVisualizerV2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalebABG%2FMusicVisualizerV2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalebABG%2FMusicVisualizerV2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalebABG%2FMusicVisualizerV2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalebABG%2FMusicVisualizerV2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CalebABG","download_url":"https://codeload.github.com/CalebABG/MusicVisualizerV2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalebABG%2FMusicVisualizerV2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262883782,"owners_count":23379254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","kotlin","music-player","music-visualizer","processing","visualizer"],"created_at":"2024-11-08T05:28:23.507Z","updated_at":"2025-07-01T02:33:49.189Z","avatar_url":"https://github.com/CalebABG.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](screenshots/logo.png?raw=true \"Music-VisualizerV2 Logo\")\n\n## Synopsis\nThe prodigal Music Visualizer returns, and it's even better. Version 2 of Music-Visualizer is finally here!\nV2 brings a much better codebase and more ease for addition, and will only improve over time.\n\n---\n\n## Releases?\nYes, yes, I know! Unlike the previous version, for now, V2 releases of the ```.jar``` will be a stand-alone player. SoundCloud integration will be hidden unless a valid SoundCloud ```ClientId``` is set via environment variable. \n\nTo protect the ```ClientId``` which SoundCloud uses to authenticate requests to its API, the best way (I've found for now) from it being decompiled out of the ```.jar``` is to set an environment variable and retrieve it at run time.\n\n---\n\n## Working with the Source\n\n### What you'll need to build and run from the source code\n```\nJava JDK + IntelliJ + Kotlin\n```\n#### The codebase is an IntelliJ IDEA project, so I'd recommend using [IntelliJ IDEA](https://www.jetbrains.com/idea/). This project also uses [Kotlin](https://kotlinlang.org/?fromMenu), which is an incredible language! I'd also recommend using the ```Adoptium```: [Eclipse Temurin 17 (LTS)](https://adoptium.net/temurin/releases/?version=17)\n\n### Project Needed Setup\n\n#### SoundCloud ```ClientId``` Token:\n- To avoid the token being packaged into the ```.jar``` during the Maven package Lifecycle, for now, I thought setting an environment variable would be the best way to secure the token.\n\n- I've created a convenience scripts for setting the environment variable! In a terminal window change into the ```tools``` folder of this repo, then execute the script for your OS:\n    - Note: Replace ```\u003cclient-id\u003e``` with your actual SoundCloud ClientId\n\n#### For Windows\n1. ```\n   ./tokenhelper.ps1 \u003cclient-id\u003e\n   ```\n\n#### For Mac and Linux\n1. ```python\n   ./tokenhelper.sh \u003cclient-id\u003e\n   ```\n   1. Note: If you mess up setting the token, you'll need to manually edit your ```.bashrc``` file to correct the export value\n\n2. And Boom! You should be all set to go!\n\n#### Maven Setup\n- If using [IntelliJ IDEA](https://www.jetbrains.com/idea/) IDE, when opening the project, hit the popup about the ```pom.xml``` file that says something like: ```Add as Maven Project```\n    - This will make sure IntelliJ recognizes the project as being a Maven project!\n\n### Maven Tools\n- To build the .jar, in the Maven Lifecycle, use the ```package``` command\n- To install local needed dependencies for .jars in the ```lib``` folder, and to clean the project ('target' in root project dir) use the ```clean``` command\n\n---\n\n## Issues? Features? More???\n\nCreate an ```issue``` for the repo if you encounter any errors or strange behavior/functionality with the application. \nPlease feel free to fork and submit bug fixes or feature requests!\n\n---\n\n## Errors / Gotchas?\n1. If you're using IntelliJ, if you happen to get this exception: ```NoClassFoundException - Main```, try the following:\n    1. Close the project\n    2. In the root of the repo, delete the ```.idea``` folder (this is the folder IntelliJ uses for the IDE)\n    3. Re-open the project in IntelliJ and then rebuild and debug\n    4. Hopefully that fixes that exception, if not please open an issue for it.\n\n---\n\n## Libraries and API's Used\n- [Processing 4](https://processing.org/) - Graphics library\n- [Minim](https://github.com/ddf/Minim) - Audio library\n- [ControlP5](https://www.sojamo.de/libraries/controlP5/) - Awesome GUI controls\n- [Apache Commons IO](https://commons.apache.org/proper/commons-io/) - IO Utility library\n- [Unirest](https://kong.github.io/unirest-java/) - Java http-client library\n- [Gson](https://github.com/google/gson) - Java JSON library \n\n---\n\n## Closing Comments\nThank you for checking out my work/experiment! I'll be pushing updates to this project as often as I can. Please feel free to fork or port this to other languages! Have fun and keep on creating!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalebabg%2Fmusicvisualizerv2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalebabg%2Fmusicvisualizerv2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalebabg%2Fmusicvisualizerv2/lists"}