chordquality's People
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.
Quality Weights adjustment has no audio effect
Adjustment of the quality weights sliders changes the display but has no impact on the audio playback.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.