Skip to content

A web app that generates random MIDI songs (based on some customizable parameters)

Notifications You must be signed in to change notification settings

KinokoF/random-music-generator

Repository files navigation

Random Music Generator 🎶

Random Music Generator is a web app that lets you create random MIDI tracks with just a few clicks. Save, listen, and download your generated tracks in both MIDI and WAV formats. Customize the music generation process with your own parameters, or choose from pre-made presets. You can even save and export these parameters to share with others!

Features

  • Generate random MIDI files: Get unique tracks every time.
  • Save & Download: Download your creations in MIDI or WAV format.
  • Customizable Parameters: Use presets or set your own parameters for a personalized touch.
  • Parameter Saving: Save and export your custom parameters.
  • Built-in Visualizer: Enjoy a simple audio visualizer while you listen.
  • Offline Access: Install the app for offline use and generate music anywhere!
  • Open Source: Feel free to explore the code, contribute, or report issues.

Tech Stack

  • Angular: The framework powering the app.
  • Angular Material: For smooth and responsive UI components.
  • Dexie.js: Handling local storage for your music and parameters.

Key Libraries

  • random: For generating random numbers that drive the music generation.
  • tonal: Managing music theory elements like scales and chords.
  • spessasynth_lib: Plays the MIDI files.
  • JZZ: For generating MIDI files.
  • FluidR3: Providing sound fonts for playback.

Additional Libraries

  • Three.js, Faker, and ng-web-apis also play smaller but helpful roles in the project.

How to Contribute

This project is open-source, and contributions are welcome! You can check out the code in the repository, make suggestions, or submit pull requests. Whether you're fixing a bug or adding a new feature, your help is appreciated!

Contact

Have questions, suggestions, or ideas? Feel free to reach out to me at kinokoeffe@outlook.com.