LTVA1 2 роки тому
батько
коміт
6ac1998588

+ 2 - 2
input/instrument_program.c

@@ -150,9 +150,9 @@ void instrument_program_edit_event(FlizzerTrackerApp *tracker, FlizzerTrackerEve
             {
                 tracker->current_program_step++;
 
-                if (tracker->program_position < tracker->current_program_step - 8)
+                if (tracker->program_position < tracker->current_program_step - 7)
                 {
-                    tracker->program_position = tracker->current_program_step - 8;
+                    tracker->program_position = tracker->current_program_step - 7;
                 }
             }
 

+ 4 - 4
tracker_engine/do_effects.c

@@ -160,7 +160,7 @@ void do_command(uint16_t opcode, TrackerEngine *tracker_engine, uint8_t channel,
                 if (te_channel->volume > MAX_ADSR_VOLUME)
                     te_channel->volume = MAX_ADSR_VOLUME;
 
-                se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)te_channel->volume / MAX_ADSR_VOLUME * (int32_t)te_channel->instrument->adsr.volume / MAX_ADSR_VOLUME;
+                se_channel->adsr.volume = (int32_t)te_channel->volume;
                 se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)tracker_engine->master_volume / MAX_ADSR_VOLUME;
             }
 
@@ -185,7 +185,7 @@ void do_command(uint16_t opcode, TrackerEngine *tracker_engine, uint8_t channel,
                 {
                     te_channel->volume = opcode & 0xff;
 
-                    se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)te_channel->volume / MAX_ADSR_VOLUME * (int32_t)te_channel->instrument->adsr.volume / MAX_ADSR_VOLUME;
+                    se_channel->adsr.volume = (int32_t)te_channel->volume;
                     se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)tracker_engine->master_volume / MAX_ADSR_VOLUME;
                 }
             }
@@ -280,7 +280,7 @@ void do_command(uint16_t opcode, TrackerEngine *tracker_engine, uint8_t channel,
                         if (te_channel->volume > MAX_ADSR_VOLUME)
                             te_channel->volume = 0;
 
-                        se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)te_channel->volume / MAX_ADSR_VOLUME * (int32_t)te_channel->instrument->adsr.volume / MAX_ADSR_VOLUME;
+                        se_channel->adsr.volume = (int32_t)te_channel->volume;
                         se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)tracker_engine->master_volume / MAX_ADSR_VOLUME;
                     }
 
@@ -296,7 +296,7 @@ void do_command(uint16_t opcode, TrackerEngine *tracker_engine, uint8_t channel,
                         if (te_channel->volume > MAX_ADSR_VOLUME)
                             te_channel->volume = MAX_ADSR_VOLUME;
 
-                        se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)te_channel->volume / MAX_ADSR_VOLUME * (int32_t)te_channel->instrument->adsr.volume / MAX_ADSR_VOLUME;
+                        se_channel->adsr.volume = (int32_t)te_channel->volume;
                         se_channel->adsr.volume = (int32_t)se_channel->adsr.volume * (int32_t)tracker_engine->master_volume / MAX_ADSR_VOLUME;
                     }
 

+ 1 - 1
tracker_engine/tracker_engine.c

@@ -267,7 +267,7 @@ void tracker_engine_execute_track_command(TrackerEngine *tracker_engine, uint8_t
 
     if (vol != MUS_NOTE_VOLUME_NONE && !(tracker_engine->channel[chan].channel_flags & TEC_DISABLED))
     {
-        tracker_engine->sound_engine->channel[chan].adsr.volume = (int32_t)tracker_engine->sound_engine->channel[chan].adsr.volume * (int32_t)tracker_engine->channel[chan].volume / MAX_ADSR_VOLUME * (int32_t)tracker_engine->channel[chan].instrument->adsr.volume / MAX_ADSR_VOLUME * (int32_t)vol / (MUS_NOTE_VOLUME_NONE - 1);
+        tracker_engine->sound_engine->channel[chan].adsr.volume = (int32_t)tracker_engine->sound_engine->channel[chan].adsr.volume * (int32_t)tracker_engine->channel[chan].volume / MAX_ADSR_VOLUME * (int32_t)vol / (MUS_NOTE_VOLUME_NONE);
         tracker_engine->sound_engine->channel[chan].adsr.volume = (int32_t)tracker_engine->sound_engine->channel[chan].adsr.volume * (int32_t)tracker_engine->master_volume / MAX_ADSR_VOLUME;
     }
 

+ 2 - 2
view/pattern_editor.c

@@ -37,13 +37,13 @@ char *notename(uint8_t note)
         return buffer;
     }
 
-    if(note == 0xf0) //external arpeggio notes
+    if (note == 0xf0) // external arpeggio notes
     {
         snprintf(buffer, sizeof(buffer), "%s", "EXT.0");
         return buffer;
     }
 
-    if(note == 0xf1)
+    if (note == 0xf1)
     {
         snprintf(buffer, sizeof(buffer), "%s", "EXT.1");
         return buffer;