]> ruin.nu Git - moosique.git/blobdiff - report.txt
setting mute and solo on channel instead..
[moosique.git] / report.txt
index defb5128208dfc8f11ae137001b320d605dbdcce..400585eba7cced2718eebfbcf9b2fbaaa7689935 100644 (file)
@@ -58,13 +58,15 @@ x MooKeyboard               A keyboard listener emulating a synthesizer.
 One class, MooStatus, was also removed. It was reduced to a JLabel with a single method and was therefore merged inte the main GUI class.
 ------------------------------
 2.7 Problems
-Of all the problems we have come across in our work with Moosique, only one has persisted and is yet unresolved. As always when working with Java, we were aware that the visualisation performance leaves more to be desired. But we did not expect the extremely low performance the program displayed. During playback, a thread updates the view port of the main scroll pane (MooView). However, the update delay on low-end hardware exceeds one second. This obviously makes the GUI unresponsive, but also affects synthesizer playback performance. In order for the application to work properly, this delay must at the very least fall below the time it takes the synthesizer to play a sixteenth note. In a sequence of standard tempo, 120 beats per minute, this would mean 1/8 of a second.
+Of all the problems we have come across in our work with Moosique, only one persisted and was until very recently unresolved. As always when working with Java, we were aware that the visualisation performance leaves more to be desired. But we did not expect the extremely low performance the program displayed. During playback, a thread updates the view port of the main scroll pane (MooView). However, the update delay on low-end hardware exceeded one second. This obviously made the GUI unresponsive, but also affected synthesizer playback performance. In order for the application to work properly, this delay must at the very least fall below the time it takes the synthesizer to play a sixteenth note. In a sequence of standard tempo, 120 beats per minute, this would mean 1/8 of a second.
 
-This problem is especially unfortunate since it was the only performance aspect that was mentioned in the requirements specification.
+This problem was especially unfortunate since it was the only performance aspect that was mentioned in the requirements specification.
 
 [Ă„ndra font och dra ner textstorlek, citat juh!]
 "Delays during execution should be minimized, but are allowed when loading files. Playback should be smooth and delays should not change the beat or tempo."
 
+However, as we recently discovered, the Sun developers were also aware of this issue and, in trying to find a remedy for it, implemented some additional methods for controlling the viewport's visualisation during scrolling. This allowed us to reduce the time lag to a fraction.
+
 The major changes and that not enough work design of the graphical classes resulted in that the different graphical classes couldn't be implemented on their own. Instead changes often had to take place in many different classes when some feature was added. This made the implementation slow, especially in the beginning, since there where many different ideas on how things should be implemented. This got better through time though, when the basic foundation was implemented it got easier to add the rest of the features.
 ------------------------------
 3. Conclusions
@@ -77,7 +79,7 @@ LITTERATURE
 Sun Microsystems Inc. (2002) Java Sound API Programmer's Guide [http://java.sun.com/j2se/1.4.1/docs/guide/sound/programmer_guide/]
 Horstmann, Cay (2003) Computing Concepts with Java Essentials (3rd Edition), New York: John Wiley & Sons Inc.
 Jia, Xiao-Ping
-Code Complete
+McConnell, Steve (1993) Code Complete: A Practical Handbook of Software Construction. Redmond, Wa.: Microsoft Press, ISBN: 1-55615-484-4. 
 
 APPLICATIONS
 FastTracker II