login

<     >

2021-01-09 22:58:35 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

fix default volume (max rather than min)

diff --git a/qms.c b/qms.c
index 97e033a..007ef61 100644
--- a/qms.c
+++ b/qms.c
@@ -2,8 +2,8 @@
 
 typedef struct TrackState {
     int pac;   /* < NPACS */
-    int vol;   /* 0-127 */
-    int pan;   /* (-64)-(+63) */
+    int vol;   /* 127-0         default (zero) means maximum */
+    int pan;   /* (-64)-(+63)   default (zero) means center */
 } TrackState;
 
 typedef struct VoiceState {
@@ -73,7 +73,7 @@ qms_setpac(int track, int pac)
 void
 qms_setvol(int track, int midivol)
 {
-    tracks[track].vol = midivol;
+    tracks[track].vol = 127 - midivol;
 }
 
 void
@@ -120,8 +120,8 @@ qms_advance(unsigned int nsamples)
         left = right = 0;
         for (ti = 0; ti < NTRACKS; ti++) {
             track = &tracks[ti];
-            lvol = (63 - track->pan) * track->vol;
-            rvol = (63 + track->pan) * track->vol;
+            lvol = (63 - track->pan) * (127 - track->vol);
+            rvol = (63 + track->pan) * (127 - track->vol);
             pac = wavetables[track->pac];
             for (vi = 0; vi < NVOICES; vi++) {
                 voice = &voices[ti][vi];