Synthesize any audio forever
Explore the docs »
View Live Site
·
View Presentation
·
Report Bug
·
Request Feature
Table of Contents
To get a local copy up and running follow these simple example steps.
This is an example of how to list things you need to use the software and how to install them.
- npm
npm install npm@latest -g
-
Clone the repo
git clone https://github.com/infinitune/infinitune.git
-
Install NPM packages
npm install
-
Run
npm run dev #or yarn dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying pages/index.js. The page auto-updates as you edit the file.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.js.
The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.
Our team is a diverse group with a shared passion for technology and music. The concept for Infinitune was born out of a desire to bridge the gap between music, coding & generative AI. Our vision was to create a tool that would allow users to generate unique music samples using simple text inputs, thus opening up a new world of possibilities for creativity and expression.
USING TONE.JS INSTEAD OF SUPERCOLLIDER: Currently, the backend API can receive POST and GET, a POST containing a prompt and a instrument type is extracted and sent to GPT-4, which generates Tone.js code for that sound. This is saved, and the ID is passed back as the response for the POST. A GET with this ID returns a blob containing the javascript code. The frontend is not connected to this backend yet (07/19/23).
Infinitune is an innovative tool that brings a unique text-to-code-to-audio approach to music sample generation. Users enter a textual description, and Infinitune translates this into executable SuperCollider code, which in turn synthesizes into the desired music sample. This could be anything from drum beats to basslines to melodies.
Infinitune was built using a robust stack that includes Node.js, Express.js, ngrok, Next.js, React, Tone.js, GPT-4, and SuperCollider. Our main tool was the OpenAI GPT-4 model, which we used to convert the user's text into SuperCollider code. The server was implemented using Node.js, Express.js, and ngrok, which handled the API calls between the frontend (developed with Next.js) and the backend where the AI model was running.
We first attempted to fine-tune the GPT-4 model to directly generate music samples, but this approach didn't yield the desired results. We pivoted to querying GPT-4 with examples of music samples we liked, which then guided the creation of new samples. Another challenge was the unexpected departure of a team member on the final day of the hackathon. However, we were able to adapt and take on additional responsibilities.
Our journey in creating Infinitune has been a whirlwind of learning and growth. We discovered the nuances of working with AI, particularly the GPT-4 model, and its potential applications in music production. We explored the fascinating intersection of music and coding, experimenting with the potential of a text-to-code-to-audio approach. Furthermore, the experience highlighted the power of adaptability and resilience.
The potential of Infinitune extends far beyond the realm of sample or music production. With its ability to convert textual descriptions into unique audio samples, Infinitune has a vast array of applications across multiple industries. From enhancing live streams with on-the-fly event/alert sounds to scoring scenes for movies, from generating dynamic sound effects for video games to customizing audio for podcasts, content creation, and comedy routines, the possibilities are endless. Furthermore, it can be used for audio branding, allowing businesses to create custom jingles that align with their brand identity. It can even contribute to immersive user experiences in AR/VR applications, art installations, and exhibitions. As we advance, we aim to continue refining and expanding Infinitune's capabilities to tap into these exciting opportunities.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License.
Project Link: https://github.com/infinitune/infinitune
