expo / expo/examples

AI Music Remix Studio with Expo

Open
#676 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3.7k
Forks
1.1k
Avg merge
11h 15m
Merged PRs (30d)
1

Description

Build a cross-platform mobile app allows users to upload their own MP3 files from their device. The app should feature a 'Remix Dashboard' where users can select their uploaded track and choose a 'Vibe' (e.g., Synthwave, Acoustic, or Drill). Use expo-audio for playback and expo-document-picker for file uploads. The UI should look like a sleek, dark-mode music player with a circular 'Mix' button in the center that triggers a simulated processing animation.

This sounds like a fantastic concept for an app. Using Expo (which is a framework for React Native) is actually the perfect way to build this because it has built-in tools for handling audio and file picking.

Since you are looking for a "mixing" idea where users can upload their own tracks and get "different versions," I’ve put together a prompt and a technical roadmap to help you build this "AI Remix Studio."

The Concept: "VibeShift AI"

An app where you upload a basic song (or even just a humming recording) and the app "mixes" it into different genres—like turning a folk song into a House track or a Lo-Fi beat.


Part 1: Your "Directing" Prompt

If you are asking an AI or a developer to write the code for this, use this prompt:

"Build a cross-platform mobile app using Expo and React Native that allows users to upload their own MP3 files from their device. The app should feature a 'Remix Dashboard' where users can select their uploaded track and choose a 'Vibe' (e.g., Synthwave, Acoustic, or Drill). Use expo-audio for playback and expo-document-picker for file uploads. The UI should look like a sleek, dark-mode music player with a circular 'Mix' button in the center that triggers a simulated processing animation."


Part 2: How to Build It in Expo

Since you mentioned you're using the app, here are the three main "blocks" you need to bring together:

1. The File Uploader

You’ll use expo-document-picker. This is what lets the user reach into their phone’s "Home" or "Files" folder to grab their music.

  • Action: When they click "Upload," it opens the phone's native file explorer.

2. The Audio Engine

You’ll use expo-audio (the modern version of audio handling in Expo).

  • Function: It plays the music, shows the progress bar, and—most importantly—allows you to change the Pitch and Rate ($rate \times 1.5$ for a "Nightcore" version, or $0.75$ for a "Slowed + Reverb" version).

3. The "Mixing" Logic

To give them "different versions," you have two paths:

  • Simple (On-Device): Adjust the playback speed and add a reverb filter using the Expo AV settings.

  • Advanced (AI): Connect your Expo app to an external API (like Suno or Landr). You send the user's file to the server, the AI "remixes" it, and sends back a new version.


Part 3: Features to Include


Feature | What it does
-- | --
Stem Splitter | Let the user mute the vocals so they can hear just their instruments.
Version History | Save a list of "Vibe A," "Vibe B," and "Original" for the same song.
The "Blend" Slider | A slider that lets them mix the original audio with the "remixed" AI audi

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.