Inspiration

The holiday season is all about joy, music, and creativity. I wanted to build a fun and accessible tool that allows anyone—no matter their musical skills—to create festive songs. By combining AI-generated lyrics with simple, cheerful melodies, this script is aimed to bring holiday spirit to everyone through technology.

What it does

The Holiday Song Generator creates unique holiday songs by:

  1. Generating holiday-themed lyrics using an AI-powered Markov chain model trained on classic holiday songs.
  2. Composing simple, cheerful melodies in a major key using the MIDI format.
  3. Saving the generated lyrics and melody so users can enjoy and share their custom holiday songs.

How we built it

  • Lyrics Generation: I used Markovify, a Python library for creating text based on existing data. I trained the model on popular holiday song lyrics like Jingle Bells and Deck the Halls to produce new, festive lines.
  • Melody Composition: I used MIDIUtil to create simple melodies in the C major scale. Random notes were chosen to mimic a cheerful tune, ensuring a classic holiday sound.
  • Output: The generated lyrics are displayed in the console, and the melody is saved as a .mid file for playback.

Challenges we ran into

I only had a few holiday song lyrics to train the Markov chain and make the resulting melodies sound like actual holiday songs with random note selections.

Accomplishments that we're proud of

  • Successfully combined AI-generated lyrics and melody generation into a functional tool.
  • Created a fun, unique project that brings holiday cheer through technology.
  • Learned how to work with music libraries like MIDIUtil and text generation tools like Markovify.

What we learned

I learnt how to use Markov chains to generate text based on a specific theme. This is my first time generating MIDI files and it was fun to create new melodies programmatically for this script!

What's next for Holiday-Song-Generator

  • User Customization: Add options for themes (e.g., “Cheerful,” “Magical,” “Classic”) and tempo adjustments.
  • Instruments: Simulate instruments like bells, piano, or drums to enhance the melody.
  • User Interface: Develop a simple UI using Tkinter to make the tool more user-friendly.
  • Full Song Generation: Structure the output into verses, choruses, and bridges for more realistic songs.
  • Sharing Options: Allow users to export and share their songs easily.

The Holiday Song Generator is just the beginning of spreading festive creativity—one song at a time! 🎄🎶

Built With

Share this project:

Updates