Code Monkey home page Code Monkey logo

chordquality's People

Contributors

collijk avatar robertmg avatar stanleyhsieh avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

robbyhandy janusw

chordquality's Issues

Centralize event handling

In order to make the code more modular, the handling of several kinds of events need to be centralized. Examples would include the playback events triggered by the play, pause, and stop buttons, file i/o, tuning changes, etc. I'm looking at implementing the event aggregator pattern to accomplish this.

Document the code

The code base is very poorly documented. The classes and methods all need docstrings explaining their purpose, arguments, and return values, if any. Any block of code that is difficult to read should be explained with in-line comments, especially portions with complicated conditional branches or long sections of calculation.

transposeFileUpDown broken

If the transposeFileUpDown is adjusted while a file is being played, some of the played notes are prevented from ending, continuing to play in the background as the track progresses.

Enable multiple soundfonts

Currently only a single soundfont can be selected for a midi file. Ideally we would like to be able to select different fonts/instruments for each track in the file.

Reformat Piano Roll

The piano roll needs an overhaul. It should "wrap" rather than have a horizontal scroll bar. From what I've read so far in the System.Windows.Forms documentation, I think we should ditch panel2 in the MainForm and create a subclass of System.Windows.Forms.Panel that will initialize as a blank panel when the program starts and handle the subdivision of the the long piano roll into segments and display them when a midi file is loaded.

Separate MainForm controls

The MainForm.cs is much too large. The controls at the top can and should be separated into several classes.

Removed Tracks can't be added back

When tracks are removed from a playing midi file and added back, the display of the track on the piano roll returns, but the audio does not.

Tunings don't work

Upon initiation, the code looks for any files with โ€‹*.tng extension in the directory where the *โ€‹.exe file is. If any are found, the information is loaded into the Menu and used to select which tuning (i.e. which of the tng files) to use. This used to work fine, but now as soon as even one *.tng file is present, the program crashes.

Remove `zoomScroll`

The zoomScroll is the vertical scroll bar next to the piano roll. In addition to being an extremely unintuitive UI element, its function is dubious and will be made obsolete by the piano roll reformat.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.