Skip to content

elinewman12/Janus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Janus - Music Transformation

This project was created for the Senior Design Class CSC492 at North Carolina State University during the Fall 2021 semester. This project is sponsored by Mr. Michael DeHaan, an alumni of NC State. Janus allows users to transform, analyze, and generate music through many different features. Users can generate music using markov chains of various length, they can analyze existing songs through informative visualizations like chord transition graphs, and can also transform the mode, scale, or key of song.

Tech/framework used

Built with

Features

  • Markov Chain:
    • Allows users to generate new music based on an existing library of songs. A user can input as many songs as they they would like to create a markov chain and then can generate a new song using a custom token length and instrument.
  • Visualization:
    • Chord Transition Graph: Visualizes all of the chords present in a song and how often one chord follows another. This can be useful to understand common chord progressions or patterns in the music of an artist or genre.
    • Chord/Note Frequency Graph: Visualizes the frequency of all the notes or chords occuring in a song or group of songs.
  • Transformations:
    • Mode Change: Changes the mode of a song to a new given mode.

Code Example

Show what the library does as concisely as possible, developers should be able to figure out how your project solves their problem by looking at the code example. Make sure the API you are showing off is obvious, and that your code is short and concise.

Installation

Above your python script, import any of the Janus files. This will allow you to access all of our public methods.

How to use?

First, import the project as described above. Then, you may use any of the below features within your program:

  • Markov Chain:
    • DynamicMarkovChain(name,token_length)
    • add_song(song)
    • generate_pattern(chain,instrument,arpeggio)
  • Visualization:
    • get_transition_graph(name)
    • get_notes_frequency_graph()
    • get_chord_frequency_graph()
  • Transformations:
    • change_song_key()

Contribute

Feel free to continue contributing to this project. This is an open source repository so it is completely open for others to continue building on the work that our team has provided.

Credits

This project was created by Eli Newman, Erin Litty, Nithika Aduri, James Leeder, and John Widdifield. Our sponsor is Michael DeHaan and the teaching staff is Margaret Heil and David Sturgill.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages