Skip to content

crschung/RustNES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RustNES (IN_PROGRESS)

Description


Retro chiptune music is starting to make a resurgence with the popularity of many retro indie games like Hades and Celeste. One of the reasons why it's gaining its popularity again is because it resonates with a lot of people; it brings back nostalgia and fond memory associated with it. However, a majority of music produced for these games rarely use actual hardware that made the 8-bit and 16-bit music charming. The purpose of this project is to replicate a sound chip from the NES (Nintendo Entertainment System) using Rust, and bring back those memories to the users.

Repositories


Here are the repositories for the Rust and Python Implementation:

Milestones


Milestone 1 (worst case scenario):

  • Basic audio generator that can produce 8-bit sound based on user's keyboard input.

Milestone 2 (expected):

  • The program can accept MIDI file as input, and convert it to chiptune sound. It should be able to handle multiple channels as well. Various MIDI files should be used for testing this function, such as a relatively simple classical music file with a single channel, and more complex pop songs with multiple channels.

  • Graphical User Interface is implemented with features such as play/pause, volume control, and MIDI import, export function.

  • Animation of waveforms is displayed as well when music is played (something like old Windows' winamp visualization) We could test this function by comparing the visualization with other pre-existing services.

Milestone 3 (advanced):

  • An equalizer is added and users can use it to modify the sound, like base boost, treble boost, etc. This also can be tested by utilizing other services, such as spotify's equalizer function and comparing the difference in quality.

Contributors


Cy Chung, Jae Park, Spencer Hart, David Kim, Ethan Slogotski, Francis German, Skylar Buck

Resources


Relevant Research Papers


Programming Language


Rust and Python

Expected Functions:


  • MIDI Input
  • Visualization (waveform)
  • GUI
  • Pass songs using import

Dependencies


How To Run


cargo build
cargo run

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages