Your voice. Your own studio.
Start without a subscription. Add paid AI only when you need a richer instrumental or some help finding the words.
1. Upload the ZIP to Cloudflare
- Download Voxlane-Cloudflare.zip from the chat.
- In the Cloudflare dashboard, open Workers & Pages and choose to create a Pages application using Direct Upload / drag and drop. Choose Pages, rather than a Worker-only upload.
- Name your project, drag in the ZIP, then deploy. The ZIP already contains the site at its root: no build command, Node installation, database or paid AI account is needed.
- Open the HTTPS pages.dev address Cloudflare gives you. The free studio is ready. Allow microphone access when you choose to record.
Cloudflare supports ZIP drag and drop, including the optional _worker.js backend in this package. Keep every file together. Do not put the files inside an extra parent folder when re-zipping.
2. Make your first song for £0 in API costs
- Open Build your sound. Choose a genre, key, tempo and length; press Create backing track. These are locally synthesised arrangements, not AI-generated audio.
- Press Play. Write lyrics in the notes panel, or add a song structure. Try 8 or 16 bars for your first recording.
- Plug in headphones. Press Check microphone, sing a loud line, and keep the meter out of the red. Stop the mic check when finished.
- Press Record voice. After the four-beat count-in, sing with the backing. Stop when finished. Your dry voice is recorded separately. You can keep up to five takes and choose your favourite.
- Adjust the two volume sliders, vocal colour and reverb. Under timing and cleanup, adjust the vocal offset if it sounds late. A negative value moves the voice earlier. Trim start/end remove audio without moving the remaining performance along the timeline.
- Download the full mix as a stereo 44.1 kHz / 16-bit WAV. You can also download the instrumental and unprocessed vocal separately.
- Download a project backup after each session. This .voxlane file includes your recordings, backing, lyrics and mix. Open it under My projects → Open project backup on another device.
Normalisation sets the final rendered peak to −1 dB; it is not LUFS mastering. The dry vocal download keeps its original sample rate, channels and timing, with no effects or trimming.
3. Optional: enable AI securely
In your Cloudflare Pages project, find Settings → Variables and Secrets (the exact label can vary). Add the following for the Production environment. Use encrypted Secret entries, rather than putting keys in code or in the ZIP.
| Name | Value |
|---|---|
STUDIO_ACCESS_TOKEN | A private random passcode with at least 16 characters. Required for all paid actions. Use a password manager to generate it. |
OPENAI_API_KEY | Your OpenAI API project key, for songwriting and optional transcription. Omit it if you do not want these features. |
ELEVENLABS_API_KEY | Your ElevenLabs API key with music access, for instrumental generation. Omit it if you only want the free synth and uploads. |
- Save the secrets, then create a new deployment using the same ZIP so the new settings take effect.
- Open your deployed studio. Go to Connections & settings and enter only your studio access passcode. Do not enter provider API keys into the app.
- Press Save & check connection. It should show the backend ready, the passcode accepted, and whichever providers you configured.
- Use AI co-writer for a lyric draft and instrumental prompt. Your idea and song settings go to OpenAI. Existing notes are sent only if you choose to include them.
- Use AI instrumental to send your prompt to ElevenLabs. Begin with 30 seconds. A successful result becomes your backing. Exact BPM and key are requests, not guarantees.
- Transcribe take sends your selected dry vocal to OpenAI only after you choose to send it. Singing can be harder to transcribe than speech; check the result.
The passcode is kept in session storage for the current tab; it is excluded from all project files and backups. The backend blocks paid endpoints unless this passcode is configured and matches. It also blocks cross-site browser requests. This is intended as a personal studio; it is not a multi-user paid service.
Optional model overrides, as plain server variables: OPENAI_MODEL defaults to gpt-6-luna; OPENAI_REASONING_EFFORT defaults to none; OPENAI_TRANSCRIBE_MODEL defaults to gpt-transcribe; ELEVENLABS_MUSIC_MODEL defaults to music_v1. Choose only models your account supports. No model is downloaded to the browser.
4. Keep your costs under control
Recording, local synth backings, EQ, compression, reverb, mixing, WAV exports and browser project saving have no API charges. Cloudflare hosting is subject to Cloudflare's current account plan and limits.
OpenAI API use is billed separately from ChatGPT subscriptions. Text drafts usually need far less compute than music generation, but pricing and your own usage determine the total. The app caps text output at 2,200 tokens and AI tracks at 3 minutes. These per-request limits are not a monthly spending cap.
ElevenLabs music access, pricing and commercial rights vary by plan and model. Check the rights for releasing a song on streaming platforms specifically, not just using it under a video. Describe styles, instruments and moods rather than naming artists or existing songs. Imported instrumentals also need suitable permission.
Set provider spending controls where available, monitor your account usage and keep your studio passcode private. Requests are not automatically retried. If a request times out, the provider may have charged it; check your account before trying again.
OpenAI pricing ↗ · ElevenLabs API pricing ↗ · Music rights and terms ↗
5. Practical limits & troubleshooting
- Audio limits: 3 minutes per imported track/take, 30 MB per audio import, 5 takes per project. Transcription accepts a WAV below 20 MB. Project imports are capped at 160 MB. Shorter sessions use less phone memory.
- Mic not available: use your HTTPS site address, grant browser microphone access and close other apps using the mic. Simply double-clicking index.html is not supported. In-app browser previews may block microphones; open the site directly in your browser.
- No sound: tap Play to unlock browser audio. Check device volume, headphones, mute buttons and both track sliders.
- Vocal feels delayed: use wired headphones, then apply a negative vocal offset. The app records the raw mic and does not monitor it through your speakers.
- AI backend unavailable: use the Cloudflare Pages upload, not a static-only preview. Keep _worker.js in the ZIP root. The private ChatGPT preview demonstrates the free features; AI is activated on your own Cloudflare deployment.
- Passcode not accepted: check its spelling, the Production secret, and redeploy after editing secrets. The minimum is 16 characters.
- Provider error: check API billing, permissions, model availability and remaining credits. A connected-key status confirms configuration; it is not a paid API test.
- Projects disappeared: storage belongs to a specific browser and site address. Clearing site data, changing browsers or private browsing can remove it. Restore from your .voxlane backup. There is no account-based cloud sync.
Local processing starts after the site loads; no internet is needed for audio operations already loaded. This version does not install as an offline PWA. It does not provide pitch correction, AI voice cloning, audio-to-audio style transfer, instrument stem separation or professional loudness mastering.
Source references: Cloudflare advanced mode, OpenAI structured outputs, OpenAI transcription, ElevenLabs music API. Checked 28 October 2026.