Dance Structure CLI

CLI tool to suggest a balanced structure based on predefined dance music song sections and your desired duration, BPM, and time signature.

Dance Structure CLI Tool

This tool builds off doesdev's song structure tool adding new weights for calculating sections, new section parts, cleaned up CLI output, and various other improvements.

💡 This project was forked from the Song Structure project by doesdev.

The Dance Structure CLI tool is a command-line tool for electronic music producers that allows you to quickly and easily generate a suggested song structure. By inputting your desired song duration, BPM (beats per minute), and beats per measure, the tool will suggest a possible structure for your song, taking into account standard electronic music song structure elements such as intro, verse, build, drop, break, and outro.

This tool can help you experiment with different song structures and give you a starting point for your production. Whether you're a seasoned producer or just starting out, this tool can help spark your creativity and streamline your workflow.

Included Files

  • index.js: This is the core file that contains the logic for generating the song structure. It exports a suggestedStructure function that takes in the desired song parts, total beats, and beats per measure, and outputs a suggested structure. It also exports a partsDefinition object that defines the different song parts and their attributes.

  • cli.js: This file contains the code for the command-line interface (CLI) of the tool. It uses the prompts library to ask the user for input, calls the suggestedStructure function from index.js to generate the song structure, and prints the results to the console.


  1. Install the required dependencies:

    • You will need to have Node.js installed on your machine.
  2. Run the cli.js file in your terminal:

    node cli.js
  3. When prompted, input your desired song duration (in either mm:ss, mmm:ss, or decimal minutes format), BPM, and beats per measure.

  4. The tool will then prompt you to select the different parts of your song structure. You can choose from Intro, Verse, Build, Drop, Break, and Outro. You can select as many parts as you like, and the tool will balance them based on their defined weights.

  5. Once you're done selecting parts, choose '(done)' to complete the process.

  6. The tool will print the suggested song structure to the console. Each line will include a part of the song, the suggested number of bars for that part, and the total beats for that part.

For more details and to access the source code, visit the Dance Structure CLI GitHub repository.