In-browser osu!mania (7K) to O2Jam (.ojn / .ojm) beatmap converter built with Nuxt 4 and WebAssembly.
- Multi-Format Ingestion: Drag & drop support for
.osz,.zip,.7z,.rar, or raw beatmap folders. - 7K Mania Parsing: Maps notes (rice & long notes), measures, BPM, and timing points to the O2Jam specification.
- Client-Side Audio Transcoding: In-browser audio conversion to OJM using WebAssembly FFmpeg with audio delay/offset compensation.
- Cover & Thumbnail Support: Extraction and processing of beatmap background images into O2Jam BMP format.
- Dynamic Level Ratings: Converts osu! star ratings into O2Jam difficulty levels with color-coded tier badges.
- Metadata Editor: Slide-over panel to customize Song Title, Artist, Creator, Song ID, and Level before downloading.
- Batch Export: Convert and export selected songs or all uploaded beatmaps into a single
.ziparchive. - Modern Dark UI: Powered by Nuxt 4, Nuxt UI, and Tailwind CSS.
- Framework: Nuxt 4 / Vue 3 / TypeScript
- UI & Styling: Nuxt UI / Tailwind CSS
- Audio Processing: @ffmpeg/ffmpeg (WebAssembly)
- Beatmap Parsing:
osu-parsers,osu-classes,osu-mania-stable - Archive Handling:
@zip.js/zip.js
# Clone the repository
git clone https://github.com/KenZync/osu2jam.git
# Navigate into directory
cd osu2jam
# Install dependencies
pnpm installpnpm devOpen http://localhost:3000 in your browser.
# Build production bundle
pnpm build
# Preview production build locally
pnpm preview- KenZ - osu! profile · GitHub