diff --git a/4kdemo.compofiller b/4kdemo.compofiller index a1db361..baa5bd0 100644 --- a/4kdemo.compofiller +++ b/4kdemo.compofiller @@ -6,7 +6,7 @@ PROJECT_INFO_FILE=prod.nfo PROJECT_SCREENSHOT= # Currently active config file name -ACTIVE_CONFIG=base.config +ACTIVE_CONFIG=minified.config # ------- GUI options/preferences -------- # Automatically rebuild DLLs when things have changed? diff --git a/4klang.asm b/4klang.asm index 96fda11..f88bc99 100644 --- a/4klang.asm +++ b/4klang.asm @@ -1,4 +1,4 @@ -%define SU_LENGTH_IN_SAMPLES 3010656 +%define SU_LENGTH_IN_SAMPLES 2828192 %define SU_SAMPLE_RATE 44100 %define SU_BPM 116. @@ -118,7 +118,7 @@ su_render_sampleloop: ; loop through every sample in the row jl su_render_sampleloop pop eax ; eax = Row, Stack: GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr ; Stack: pushad ptr inc eax - cmp eax, 528 + cmp eax, 496 jl su_render_rowloop ; rewind the stack the entropy of multiple pop eax is probably lower than add pop eax ; eax = GlobalTick, Stack: RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr @@ -183,7 +183,7 @@ su_update_voices_skipreset: su_update_voices_nexttrack: pop ebx ; ebx=first voice of next instrument, Stack: ptrnrow pop edx ; edx=patrnrow - add esi, 33 + add esi, 31 inc ebp cmp ebp,su_synth_obj + 10 jl su_update_voices_trackloop @@ -868,7 +868,6 @@ su_patterns: db 23,0,0,0,23,23,23,23,0,0,23,0,0,23,0,0 db 28,0,0,0,28,28,28,30,0,0,30,0,0,30,0,0 db 32,0,0,0,32,32,32,32,0,0,32,0,0,32,0,0 - db 33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 33,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 45,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 45,0,0,0,45,45,45,45,0,0,45,0,0,45,0,0 @@ -877,16 +876,13 @@ su_patterns: db 35,0,0,0,35,35,35,35,0,0,35,0,0,35,0,0 db 40,0,0,0,40,40,40,42,0,0,42,0,0,42,0,0 db 47,0,0,0,47,47,47,47,0,0,47,0,0,47,0,0 - db 45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 40,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 44,0,0,0,44,44,44,44,0,0,44,0,0,44,0,0 - db 40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 49,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 49,0,0,0,49,49,49,49,0,0,49,0,0,49,0,0 db 42,0,0,0,42,42,42,42,0,0,42,0,0,42,0,0 db 59,0,0,0,59,59,59,59,0,0,59,0,0,59,0,0 - db 49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 64,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 1,1,1,1,50,1,52,1,53,1,1,1,55,1,1,1 db 57,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 @@ -894,7 +890,6 @@ su_patterns: db 52,1,1,1,1,1,1,1,57,1,1,1,1,1,1,1 db 52,0,0,0,52,52,52,52,0,0,52,0,0,52,0,0 db 57,0,0,0,57,57,57,57,0,0,57,0,0,57,0,0 - db 52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 db 33,1,1,1,33,33,33,33,1,1,33,1,1,33,1,1 db 32,1,1,1,32,32,32,32,1,1,32,1,1,32,1,1 db 30,1,1,1,30,30,30,30,1,1,30,1,1,30,1,1 @@ -920,25 +915,23 @@ su_patterns: db 80,1,1,1,1,1,1,1,0,0,0,0,80,1,1,1 db 81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 62,1,1,1,62,62,62,62,1,1,62,1,1,62,1,1 - db 62,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 db 60,1,1,1,60,1,1,1,60,1,1,1,60,1,1,1 - db 60,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;------------------------------------------------------------------------------- ; Tracks ;------------------------------------------------------------------------------- section .su_tracks data align=1 su_tracks: - db 23,1,1,2,3,4,5,6,1,7,7,7,7,7,7,7,7,7,7,8,8,9,10,11,12,7,7,8,8,7,7,13,1 - db 14,1,1,1,1,1,15,1,1,16,16,16,16,16,16,16,16,16,16,17,17,18,19,20,21,16,16,17,17,16,16,22,1 - db 0,24,1,1,1,1,24,1,1,17,17,17,17,17,17,17,17,17,17,21,21,16,16,21,25,17,17,21,21,17,17,26,1 - db 0,1,27,1,1,1,27,1,1,28,28,28,28,28,28,28,28,28,28,25,25,29,29,25,30,28,28,25,25,28,28,31,1 - db 0,1,1,32,33,34,35,36,1,37,37,37,37,37,37,37,37,37,37,30,30,38,38,30,1,37,37,30,30,37,37,39,1 - db 0,1,1,1,1,1,1,1,1,40,40,40,40,40,40,40,40,40,40,41,41,42,42,41,41,40,40,41,41,40,40,14,1 - db 0,1,1,1,1,1,1,1,1,43,43,43,43,43,43,43,43,43,43,44,44,45,45,44,44,43,43,44,44,43,43,15,1 - db 0,1,1,1,1,1,1,1,1,1,1,1,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,1 - db 0,1,1,1,1,1,1,1,1,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,65,1 - db 0,1,1,1,1,1,1,1,1,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,67,1 + db 21,1,1,2,3,4,5,6,1,7,7,7,7,7,7,7,7,7,7,8,8,9,10,11,12,7,7,8,8,7,7 + db 13,1,1,1,1,1,14,1,1,15,15,15,15,15,15,15,15,15,15,16,16,17,18,19,20,15,15,16,16,15,15 + db 0,22,1,1,1,1,22,1,1,16,16,16,16,16,16,16,16,16,16,20,20,15,15,20,23,16,16,20,20,16,16 + db 0,1,24,1,1,1,24,1,1,25,25,25,25,25,25,25,25,25,25,23,23,26,26,23,27,25,25,23,23,25,25 + db 0,1,1,28,29,30,31,32,1,33,33,33,33,33,33,33,33,33,33,27,27,34,34,27,1,33,33,27,27,33,33 + db 0,1,1,1,1,1,1,1,1,35,35,35,35,35,35,35,35,35,35,36,36,37,37,36,36,35,35,36,36,35,35 + db 0,1,1,1,1,1,1,1,1,38,38,38,38,38,38,38,38,38,38,39,39,40,40,39,39,38,38,39,39,38,38 + db 0,1,1,1,1,1,1,1,1,1,1,1,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,0 + db 0,1,1,1,1,1,1,1,1,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59 + db 0,1,1,1,1,1,1,1,1,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60 ;------------------------------------------------------------------------------- ; Sample offsets ;------------------------------------------------------------------------------- diff --git a/4klang.h b/4klang.h index 0e48b4f..3b11a5c 100644 --- a/4klang.h +++ b/4klang.h @@ -3,14 +3,14 @@ #define SU_RENDER_H #define SU_CHANNEL_COUNT 2 -#define SU_LENGTH_IN_SAMPLES 3010656 +#define SU_LENGTH_IN_SAMPLES 2828192 #define SU_BUFFER_LENGTH (SU_LENGTH_IN_SAMPLES*SU_CHANNEL_COUNT) #define SU_SAMPLE_RATE 44100 #define SU_BPM 116 #define SU_ROWS_PER_BEAT 4 #define SU_ROWS_PER_PATTERN 16 -#define SU_LENGTH_IN_PATTERNS 33 +#define SU_LENGTH_IN_PATTERNS 31 #define SU_LENGTH_IN_ROWS (SU_LENGTH_IN_PATTERNS*SU_PATTERN_SIZE) #define SU_SAMPLES_PER_ROW (SU_SAMPLE_RATE*60/(SU_BPM*SU_ROWS_PER_BEAT)) diff --git a/4klang.inc b/4klang.inc index 01137ca..1c05405 100644 --- a/4klang.inc +++ b/4klang.inc @@ -3,14 +3,14 @@ %define PLAYER_INC %define SU_CHANNEL_COUNT 2 -%define SU_LENGTH_IN_SAMPLES 3010656 +%define SU_LENGTH_IN_SAMPLES 2828192 %define SU_BUFFER_LENGTH (SU_LENGTH_IN_SAMPLES*SU_CHANNEL_COUNT) %define SU_SAMPLE_RATE 44100 %define SU_BPM 116 %define SU_ROWS_PER_BEAT 4 %define SU_ROWS_PER_PATTERN 16 -%define SU_LENGTH_IN_PATTERNS 33 +%define SU_LENGTH_IN_PATTERNS 31 %define SU_LENGTH_IN_ROWS (SU_LENGTH_IN_PATTERNS*SU_PATTERN_SIZE) %define SU_SAMPLES_PER_ROW (SU_SAMPLE_RATE*60/(SU_BPM*SU_ROWS_PER_BEAT)) %define SU_SAMPLE_SIZE 2 diff --git a/4klang.yml b/4klang.yml index 4fe6ad7..d101d69 100644 --- a/4klang.yml +++ b/4klang.yml @@ -3,37 +3,37 @@ rowsperbeat: 4 score: tracks: - numvoices: 1 - order: [0, -1, -1, 1, 2, 3, 4, 5, -1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 9, 10, 11, 6, 6, 7, 7, 6, 6, 12, -1] - patterns: [[21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [52, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 62, 1, 64, 1, 65, 1, 1, 1, 67, 1, 1, 1], [69, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [53, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 64, 62], [64, 1, 1, 1, 1, 1, 1, 1, 69, 1, 1, 1, 1, 1, 1, 1], [33, 0, 1, 1, 33, 33, 33, 33, 0, 1, 33, 0, 1, 33, 0, 1], [28, 0, 1, 1, 28, 28, 28, 28, 0, 1, 28, 0, 1, 28, 0, 1], [26, 0, 1, 1, 26, 26, 26, 26, 0, 1, 26, 0, 1, 26, 0, 1], [23, 0, 1, 1, 23, 23, 23, 23, 0, 1, 23, 0, 1, 23, 0, 1], [28, 0, 1, 1, 28, 28, 28, 30, 0, 1, 30, 0, 1, 30, 0, 1], [32, 0, 1, 1, 32, 32, 32, 32, 0, 1, 32, 0, 1, 32, 0, 1], [33, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [0, -1, -1, 1, 2, 3, 4, 5, -1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 9, 10, 11, 6, 6, 7, 7, 6, 6] + patterns: [[21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [52, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 62, 1, 64, 1, 65, 1, 1, 1, 67, 1, 1, 1], [69, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [53, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 64, 62], [64, 1, 1, 1, 1, 1, 1, 1, 69, 1, 1, 1, 1, 1, 1, 1], [33, 0, 1, 1, 33, 33, 33, 33, 0, 1, 33, 0, 1, 33, 0, 1], [28, 0, 1, 1, 28, 28, 28, 28, 0, 1, 28, 0, 1, 28, 0, 1], [26, 0, 1, 1, 26, 26, 26, 26, 0, 1, 26, 0, 1, 26, 0, 1], [23, 0, 1, 1, 23, 23, 23, 23, 0, 1, 23, 0, 1, 23, 0, 1], [28, 0, 1, 1, 28, 28, 28, 30, 0, 1, 30, 0, 1, 30, 0, 1], [32, 0, 1, 1, 32, 32, 32, 32, 0, 1, 32, 0, 1, 32, 0, 1]] - numvoices: 1 - order: [0, -1, -1, -1, -1, -1, 1, -1, -1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 5, 6, 7, 2, 2, 3, 3, 2, 2, 8, -1] - patterns: [[33, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [45, 0, 1, 1, 45, 45, 45, 45, 0, 1, 45, 0, 1, 45, 0, 1], [40, 0, 1, 1, 40, 40, 40, 40, 0, 1, 40, 0, 1, 40, 0, 1], [38, 0, 1, 1, 38, 38, 38, 38, 0, 1, 38, 0, 1, 38, 0, 1], [35, 0, 1, 1, 35, 35, 35, 35, 0, 1, 35, 0, 1, 35, 0, 1], [40, 0, 1, 1, 40, 40, 40, 42, 0, 1, 42, 0, 1, 42, 0, 1], [47, 0, 1, 1, 47, 47, 47, 47, 0, 1, 47, 0, 1, 47, 0, 1], [45, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [0, -1, -1, -1, -1, -1, 1, -1, -1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 5, 6, 7, 2, 2, 3, 3, 2, 2] + patterns: [[33, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [45, 0, 1, 1, 45, 45, 45, 45, 0, 1, 45, 0, 1, 45, 0, 1], [40, 0, 1, 1, 40, 40, 40, 40, 0, 1, 40, 0, 1, 40, 0, 1], [38, 0, 1, 1, 38, 38, 38, 38, 0, 1, 38, 0, 1, 38, 0, 1], [35, 0, 1, 1, 35, 35, 35, 35, 0, 1, 35, 0, 1, 35, 0, 1], [40, 0, 1, 1, 40, 40, 40, 42, 0, 1, 42, 0, 1, 42, 0, 1], [47, 0, 1, 1, 47, 47, 47, 47, 0, 1, 47, 0, 1, 47, 0, 1]] - numvoices: 1 - order: [-1, 0, -1, -1, -1, -1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 1, 1, 2, 2, 1, 1, 5, -1] - patterns: [[40, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [40, 0, 1, 1, 40, 40, 40, 40, 0, 1, 40, 0, 1, 40, 0, 1], [47, 0, 1, 1, 47, 47, 47, 47, 0, 1, 47, 0, 1, 47, 0, 1], [45, 0, 1, 1, 45, 45, 45, 45, 0, 1, 45, 0, 1, 45, 0, 1], [44, 0, 1, 1, 44, 44, 44, 44, 0, 1, 44, 0, 1, 44, 0, 1], [40, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [-1, 0, -1, -1, -1, -1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 1, 1, 2, 2, 1, 1] + patterns: [[40, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [40, 0, 1, 1, 40, 40, 40, 40, 0, 1, 40, 0, 1, 40, 0, 1], [47, 0, 1, 1, 47, 47, 47, 47, 0, 1, 47, 0, 1, 47, 0, 1], [45, 0, 1, 1, 45, 45, 45, 45, 0, 1, 45, 0, 1, 45, 0, 1], [44, 0, 1, 1, 44, 44, 44, 44, 0, 1, 44, 0, 1, 44, 0, 1]] - numvoices: 1 - order: [-1, -1, 0, -1, -1, -1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 1, 1, 2, 2, 1, 1, 5, -1] - patterns: [[49, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [49, 0, 1, 1, 49, 49, 49, 49, 0, 1, 49, 0, 1, 49, 0, 1], [44, 0, 1, 1, 44, 44, 44, 44, 0, 1, 44, 0, 1, 44, 0, 1], [42, 0, 1, 1, 42, 42, 42, 42, 0, 1, 42, 0, 1, 42, 0, 1], [59, 0, 1, 1, 59, 59, 59, 59, 0, 1, 59, 0, 1, 59, 0, 1], [49, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [-1, -1, 0, -1, -1, -1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 1, 1, 2, 2, 1, 1] + patterns: [[49, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [49, 0, 1, 1, 49, 49, 49, 49, 0, 1, 49, 0, 1, 49, 0, 1], [44, 0, 1, 1, 44, 44, 44, 44, 0, 1, 44, 0, 1, 44, 0, 1], [42, 0, 1, 1, 42, 42, 42, 42, 0, 1, 42, 0, 1, 42, 0, 1], [59, 0, 1, 1, 59, 59, 59, 59, 0, 1, 59, 0, 1, 59, 0, 1]] - numvoices: 1 - order: [-1, -1, -1, 0, 1, 2, 3, 4, -1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 6, -1, 5, 5, 6, 6, 5, 5, 8, -1] - patterns: [[64, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 50, 1, 52, 1, 53, 1, 1, 1, 55, 1, 1, 1], [57, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [65, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 52, 50], [52, 1, 1, 1, 1, 1, 1, 1, 57, 1, 1, 1, 1, 1, 1, 1], [52, 0, 1, 1, 52, 52, 52, 52, 0, 1, 52, 0, 1, 52, 0, 1], [59, 0, 1, 1, 59, 59, 59, 59, 0, 1, 59, 0, 1, 59, 0, 1], [57, 0, 1, 1, 57, 57, 57, 57, 0, 1, 57, 0, 1, 57, 0, 1], [52, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [-1, -1, -1, 0, 1, 2, 3, 4, -1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 6, -1, 5, 5, 6, 6, 5, 5] + patterns: [[64, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 50, 1, 52, 1, 53, 1, 1, 1, 55, 1, 1, 1], [57, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [65, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 52, 50], [52, 1, 1, 1, 1, 1, 1, 1, 57, 1, 1, 1, 1, 1, 1, 1], [52, 0, 1, 1, 52, 52, 52, 52, 0, 1, 52, 0, 1, 52, 0, 1], [59, 0, 1, 1, 59, 59, 59, 59, 0, 1, 59, 0, 1, 59, 0, 1], [57, 0, 1, 1, 57, 57, 57, 57, 0, 1, 57, 0, 1, 57, 0, 1]] - numvoices: 2 - order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0, 3, -1] - patterns: [[33, 1, 1, 1, 33, 33, 33, 33, 1, 1, 33, 1, 1, 33, 1, 1], [32, 1, 1, 1, 32, 32, 32, 32, 1, 1, 32, 1, 1, 32, 1, 1], [30, 1, 1, 1, 30, 30, 30, 30, 1, 1, 30, 1, 1, 30, 1, 1], [33, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0] + patterns: [[33, 1, 1, 1, 33, 33, 33, 33, 1, 1, 33, 1, 1, 33, 1, 1], [32, 1, 1, 1, 32, 32, 32, 32, 1, 1, 32, 1, 1, 32, 1, 1], [30, 1, 1, 1, 30, 30, 30, 30, 1, 1, 30, 1, 1, 30, 1, 1]] - numvoices: 2 - order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0, 3, -1] - patterns: [[45, 1, 1, 1, 45, 45, 45, 45, 1, 1, 45, 1, 1, 45, 1, 1], [44, 1, 1, 1, 44, 44, 44, 44, 1, 1, 44, 1, 1, 44, 1, 1], [42, 1, 1, 1, 42, 42, 42, 42, 1, 1, 42, 1, 1, 42, 1, 1], [45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0] + patterns: [[45, 1, 1, 1, 45, 45, 45, 45, 1, 1, 45, 1, 1, 45, 1, 1], [44, 1, 1, 1, 44, 44, 44, 44, 1, 1, 44, 1, 1, 44, 1, 1], [42, 1, 1, 1, 42, 42, 42, 42, 1, 1, 42, 1, 1, 42, 1, 1]] - numvoices: 3 - order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, -1, -1] + order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] patterns: [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 69, 1, 1, 1], [73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [74, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 73, 1, 0, 71], [73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 1, 1, 1, 73, 1, 1, 1, 1, 1, 1, 1], [81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 83, 1, 1, 1], [85, 1, 1, 1, 1, 1, 1, 1, 83, 1, 1, 1, 1, 1, 1, 81], [80, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 0, 1, 1, 1, 1, 78, 1, 1, 1, 1, 1, 1, 80], [81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 78, 1, 1, 80], [81, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 83, 1, 1, 81], [80, 1, 1, 1, 1, 1, 1, 1, 81, 1, 1, 1, 1, 1, 1, 1], [83, 1, 1, 1, 1, 1, 0, 1, 81, 1, 1, 1, 1, 1, 83, 1], [85, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 85, 1, 1, 83], [85, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 81, 1, 1, 85], [83, 1, 1, 1, 1, 1, 1, 1, 81, 1, 1, 1, 1, 1, 1, 1], [80, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 80, 1, 1, 1], [81, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] - numvoices: 1 - order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1] - patterns: [[62, 1, 1, 1, 62, 62, 62, 62, 1, 1, 62, 1, 1, 62, 1, 1], [62, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + patterns: [[62, 1, 1, 1, 62, 62, 62, 62, 1, 1, 62, 1, 1, 62, 1, 1]] - numvoices: 1 - order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1] - patterns: [[60, 1, 1, 1, 60, 1, 1, 1, 60, 1, 1, 1, 60, 1, 1, 1], [60, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + patterns: [[60, 1, 1, 1, 60, 1, 1, 1, 60, 1, 1, 1, 60, 1, 1, 1]] rowsperpattern: 16 - length: 33 + length: 31 patch: - name: Strings numvoices: 5 diff --git a/base.config b/base.config index 6bcc4b6..e781211 100644 --- a/base.config +++ b/base.config @@ -47,7 +47,7 @@ TIME_DIVIDER=91241.383 TIME_BASE=bars AUDIO_DELAY=2048 -PROD_END_TIME=3012704 +PROD_END_TIME=2830240 ########### Final product ########### @@ -61,7 +61,7 @@ QUOTE=\" CRINKLER_ORDERTRIES=4000 -AUDIO_BUFFER_ALLOCATED_LENGTH=3012704 +AUDIO_BUFFER_ALLOCATED_LENGTH=2830240 AUDIO_SAMPLING_RATE=44100 LOOP_END=5.0 LOOP_START=3.0 diff --git a/music/4k_sg_v4.xrns b/music/4k_sg_v4.xrns index baa0153..a39911e 100644 Binary files a/music/4k_sg_v4.xrns and b/music/4k_sg_v4.xrns differ diff --git a/shader_minified.h b/shader_minified.h index cc61b72..29d0bf7 100644 --- a/shader_minified.h +++ b/shader_minified.h @@ -13,10 +13,10 @@ const char *__temp_cleaned_shader_glsl = "float y=sin(v),m=cos(v);" "return mat2(m,-y,y,m);" "}" - "float f(float v,float y,float m)" + "float f(float y,float v,float m)" "{" - "float x=max(m-abs(v-y),0.);" - "return max(v,y)+x*x*.25/m;" + "float x=max(m-abs(y-v),0.);" + "return max(y,v)+x*x*.25/m;" "}" "float f(vec2 v,int y)" "{" @@ -28,22 +28,22 @@ const char *__temp_cleaned_shader_glsl = "v=50.*fract(v*.3183099);" "return fract(v.x*v.y*(v.x+v.y));" "}" - "float n(vec2 v,float y,int m)" + "float n(vec2 y,float v,int m)" "{" - "vec2 a=floor(v),x=fract(v),c=x*x*(3.-2.*x);" - "float n=y;" + "vec2 s=floor(y),x=fract(y),c=x*x*(3.-2.*x);" + "float z=v;" "if(m==1)" - "n=2.;" - "return-y+n*mix(mix(f(a+vec2(0),m),f(a+vec2(1,0),m),c.x),mix(f(a+vec2(0,1),m),f(a+vec2(1),m),c.x),c.y);" + "z=2.;" + "return-v+z*mix(mix(f(s+vec2(0),m),f(s+vec2(1,0),m),c.x),mix(f(s+vec2(0,1),m),f(s+vec2(1),m),c.x),c.y);" "}" "float x(vec3 v,float y,float m)" "{" - "vec2 f=abs(vec2(length(v.xy),v.z))-vec2(m,y);" - "return min(max(f.x,f.y),0.)+length(max(f,0.));" + "vec2 c=abs(vec2(length(v.xy),v.z))-vec2(m,y);" + "return min(max(c.x,c.y),0.)+length(max(c,0.));" "}" - "float n(vec3 v,vec3 y)" + "float n(vec3 y,vec3 v)" "{" - "vec3 m=abs(v)-y;" + "vec3 m=abs(y)-v;" "return length(max(m,0.))+min(max(m.x,max(m.y,m.z)),0.);" "}" "float x(vec3 v,vec2 y)" @@ -52,7 +52,8 @@ const char *__temp_cleaned_shader_glsl = "vec3 m=abs(v);" "return max(m.z-y.y,max(m.x*.866025+v.y*.5,-v.y)-y.x*.5);" "}" - "vec3 a=vec3(.49,.18,.49),c=vec3(.93,.37,.16),s=vec3(.22,.2,.3),i=vec3(.82,.5,.9),p=vec3(.79,.66,.43),d=vec3(.9,.3,0),l=vec3(0,.1,.2),r=vec3(.4,.5,.3);" + "const vec3 s=vec3(1.5,1.4,0),c=vec3(0,2,0),i=vec3(-1.5,1.4,0);" + "vec3 a=vec3(.49,.18,.49),p=vec3(.93,.37,.16),z=vec3(.29,.28,.33),k=vec3(.82,.5,.9),r=vec3(.79,.66,.43),d=vec3(.9,.3,0),l=vec3(0,.1,.3),C=vec3(.11,.16,.18);" "float n(vec3 v)" "{" "return min((y-v.y)*v.z,v.x*m);" @@ -84,85 +85,85 @@ const char *__temp_cleaned_shader_glsl = "y=mix(y,c,y);" "return pow(1.-pow(y.x*y.y,.65),m);" "}" - "vec2 e(vec3 v,int a)" + "vec2 e(vec3 v,int s)" "{" "float c=0.,i=m/12.,r=floor(atan(v.y,v.x)/i+.5)*i;" - "vec3 d=v;" - "d.xy=f(r)*d.xy;" - "float l=length(max(abs(d.xy-vec2(1.8,0))-vec2(.24,.14),0.))-.02,s=abs(length(v.xy)-1.8)-.2;" - "l=min(l,s);" - "s=abs(length(v.xy)-1.75)-.08;" - "s=f(s,abs(v.z-.1)-.04,.005);" - "l=max(-s,l);" - "l=f(l,abs(v.z)-.1,.02);" - "for(float g=0.;g<8.;g++)" + "vec3 a=v;" + "a.xy=f(r)*a.xy;" + "float z=length(max(abs(a.xy-vec2(1.8,0))-vec2(.24,.14),0.))-.02,d=abs(length(v.xy)-1.8)-.2;" + "z=min(z,d);" + "d=abs(length(v.xy)-1.75)-.08;" + "d=f(d,abs(v.z-.1)-.04,.005);" + "z=max(-d,z);" + "z=f(z,abs(v.z)-.1,.02);" + "for(float l=0.;l<8.;l++)" "{" "i=24.67/(m*2.);" - "d=v;" - "r=i+(g+1.)*m/4.;" - "if(g==1.)" + "a=v;" + "r=i+(l+1.)*m/4.;" + "if(l==1.)" "r+=.2;" - "if(g==7.)" + "if(l==7.)" "r-=.2;" - "d.xy=f(r)*d.xy;" - "float p=9.+(g-1.)*2.+1.5;" - "if(g>0.)" + "a.xy=f(r)*a.xy;" + "float p=9.+(l-1.)*2.+1.5;" + "if(l>0.)" "{" - "d.x-=1.95;" - "vec3 z=d;" + "a.x-=1.95;" + "vec3 e=a;" "if(y>p)" - "z.x=t(vec2(z.x,p));" - "float e=x(vec3(d.x-.06,d.yz),vec2(.1,.15))-.01;" - "s=max(-x(vec3(z.x-.14,z.yz),vec2(.22))-.01,x(vec3(z),vec2(.2,.12))-.02);" - "s=min(s,e);" - "l=min(l,s);" - "if(l==s)" + "e.x=t(vec2(e.x,p));" + "float h=x(vec3(a.x-.06,a.yz),vec2(.1,.15))-.01;" + "d=max(-x(vec3(e.x-.14,e.yz),vec2(.22))-.01,x(vec3(e),vec2(.2,.12))-.02);" + "d=min(d,h);" + "z=min(z,d);" + "if(z==d)" "c=4.;" - "if(l==e&&y>p+.2)" + "if(z==h&&y>p+.2)" "c=5.;" "}" "}" - "vec3 g=x(v),z=g;" + "vec3 e=x(v),l=e;" "i=m/16.;" - "z.xy=f(floor(atan(g.y,g.x)/i+.5)*i)*z.xy;" - "s=n(z.xyz-vec3(1.75,0,0),vec3(.04,.14,.05))-.02;" - "l=min(l,s);" - "if(l==s)" + "l.xy=f(floor(atan(e.y,e.x)/i+.5)*i)*l.xy;" + "d=n(l.xyz-vec3(1.75,0,0),vec3(.04,.14,.05))-.02;" + "z=min(z,d);" + "if(z==d)" "c=6.;" - "s=1e3;" + "d=1e3;" "float p=1.5;" - "for(int e=0;e<4;e++)" + "for(int h=0;h<4;h++)" "{" - "float h=n(vec3(v.x,v.y+p,v.z),vec3(2,.1,p))-.05;" - "s=min(s,h);" - "l=min(l,h);" + "float C=n(vec3(v.x,v.y+p,v.z),vec3(2,.1,p))-.05;" + "d=min(d,C);" + "z=min(z,C);" "p+=.2;" "}" - "if(l==s)" + "if(z==d)" "c=2.;" - "s=v.y+4.25+n(vec2(v.x*.04,(v.z-40.)*.04)+1e2,15.,0)*1.5;" - "l=min(l,s);" - "if(l==s)" + "d=v.y+4.25+n(vec2(v.x*.04,(v.z-40.)*.04)+1e2,15.,0)*1.5;" + "z=min(z,d);" + "if(z==d)" "c=3.;" - "s=1e3;" - "float e=0.,h,C=4.,F=.6,G=.2;" - "if(a==1)" + "d=1e3;" + "float C=0.,h,g=4.,k=.6,F=.2;" + "if(s==1)" "{" "vec2 w=v.xy;" "for(int u=0;u<4;u++)" - "h=t((w+y)*F,C),h+=t((w-y)*F,C),e+=h*G,w*=mat2(1.6,1.2,-1.2,1.6),F*=1.9,G*=.22,C=mix(C,1.,.4);" + "h=t((w+y)*k,g),h+=t((w-y)*k,g),C+=h*F,w*=mat2(1.6,1.2,-1.2,1.6),k*=1.9,F*=.22,g=mix(g,1.,.4);" "}" - "s=max(-x(v,2.,min(2.-(y-23.)*3.,2.3)),x(v,.025,1.6)-e*.15);" - "s=max(s,x(v,.3,1.7));" - "l=min(l,s);" - "if(l==s)" + "d=max(-x(v,2.,min(2.-(y-23.)*3.,2.3)),x(v,.025,1.6)-C*.15);" + "d=max(d,x(v,.3,1.7));" + "z=min(z,d);" + "if(z==d)" "c=1.;" - "return vec2(l,c);" + "return vec2(z,c);" "}" - "float w(vec3 v,vec3 y)" + "float h(vec3 v,vec3 y)" "{" "float m,i=0.;" - "for(int l=0;l<90;l++)" + "for(int z=0;z<90;z++)" "{" "m=e(v+y*i,0).x;" "i+=m;" @@ -177,33 +178,30 @@ const char *__temp_cleaned_shader_glsl = "vec3 m=e(v,1).x-vec3(e(v-y.xyy,1).x,e(v-y.yxy,1).x,e(v-y.yyx,1));" "return normalize(m);" "}" - "float e(vec3 v,vec3 m,float y,vec3 l)" + "float e(vec3 v,vec3 y,float m,vec3 z)" "{" - "vec3 s=normalize(m-v);" - "float c=clamp(dot(l,s),0.,1.),f=w(v+l*.0025,s);" - "if(abs(f)12.)" "v=vec3(-1,-.7,4);" + "if(y>13.5)" + "v=vec3(0,0,4),v.yz*=f(-.6-cos(y-15.)*.2),v.xz*=f(sin((y-16.5)*.5)*.6);" + "if(y>19.5)" + "v=vec3(3,-.7,4);" "if(y>22.)" - "v=vec3(0,-1,5);" + "v.yz*=f((1.-cos(y-22.))*.25*-.1),v.xz*=f(sin((y-22.)*.2)*.6);" "return v;" "}" "vec3 f()" @@ -231,9 +233,15 @@ const char *__temp_cleaned_shader_glsl = "v=vec3(1.7,-1.1,0);" "if(y>12.)" "v=vec3(0);" + "if(y>13.5)" + "v=mix(s,c,(y-13.5)*.3);" + "if(y>16.8)" + "v=mix(c,i,clamp((y-16.8)*.3,0.,1.));" + "if(y>19.5)" + "v=vec3(0);" "return v;" "}" - "vec3 h(vec3 v)" + "vec3 w(vec3 v)" "{" "if(y>10.75)" "{" @@ -242,46 +250,45 @@ const char *__temp_cleaned_shader_glsl = "}" "return v;" "}" - "vec3 h(vec3 v,vec3 y,float m,float s)" + "vec3 n(vec3 v,vec3 y,float m,float c)" "{" - "return vec3(f(v,normalize(vec3(0,.3,.8)),normalize(y),pow(10.,s)))*m;" + "return vec3(f(v,normalize(vec3(0,.3,.8)),normalize(y),pow(10.,c)))*m;" "}" "vec3 g(vec2 v)" "{" - "vec3 m=e(),l=n(v,m,f(),clamp((25.-y)*-1.,2.,25.)),r=vec3(0);" - "float x=w(m,l);" + "vec3 m=e(),c=h(v,m,f(),clamp((25.-y)*-1.,2.,25.)),i=vec3(0);" + "float x=h(m,c);" "if(x<150.)" "{" - "vec3 z=m+l*x,g=e(z);" - "float C=e(z,0).y,F=e(z,vec3(10,15,25),.2,g);" - "r+=F*i;" - "F=e(z,vec3(4,2,-15),1.,g);" - "r+=F*p;" - "r+=s*clamp(dot(g,normalize(vec3(0,1,10))),0.,1.);" - "vec3 u=vec3(.07,.04,.04),G=vec3(.8,.8,.5),t=vec3(.8,.8,.5),B=vec3(.05,.04,.07),A=vec3(.18,.18,.32);" - "if(C==0.)" - "r*=u+h(g,l,.5,2.);" - "if(C==1.)" - "r=e(z,g,normalize(l));" - "if(C==2.)" - "r*=G+h(g,l,.1,1.);" - "if(C==3.)" - "r*=t+n(z.xz*5e2+1e5,.3,0);" - "if(C==4.)" - "r*=B+h(g,l,.5,1.);" - "if(C==5.)" - "r*=d;" - "if(C==6)" - "r*=A+h(g,l,.5,1.6);" + "vec3 s=m+c*x,l=e(s);" + "float g=e(s,0).y,C=e(s,vec3(10,15,25),.2,l);" + "i+=C*k;" + "C=e(s,vec3(4,2,-15),1.,l);" + "i+=C*r;" + "i+=z*clamp(dot(l,normalize(vec3(0,1,10))),0.,1.);" + "if(g==0.)" + "i*=vec3(.21,.35,.33)+n(l,c,.5,2.);" + "if(g==1.)" + "i=e(s,l,normalize(c));" + "if(g==2.)" + "i*=vec3(.8,.8,.5)+n(l,c,.1,1.);" + "if(g==3.)" + "i*=vec3(.8,.8,.5)+n(s.xz*5e2+1e5,.3,0);" + "if(g==4.)" + "i*=vec3(0,.08,.11)+n(l,c,.3,.7);" + "if(g==5.)" + "i*=d;" + "if(g==6.)" + "i*=vec3(.01,.04,.06)+n(l,c,.1,2.5);" "}" - "r=mix(r,mix(a,c,pow(max(dot(l,vec3(0,-.1,-1)),0.),8.)),1.-exp(-x*.01));" - "r=h(r);" - "return w(r);" + "i=mix(i,mix(a,p,pow(max(dot(c,vec3(0,-.1,-1)),0.),8.)),1.-exp(-x*.01));" + "i=w(i);" + "return h(i);" "}" "void main()" "{" - "vec2 m=(gl_FragCoord.xy*2.-v.xy)/v.y;" - "gl_FragColor=vec4(g(m),1);" + "vec2 y=(gl_FragCoord.xy*2.-v.xy)/v.y;" + "gl_FragColor=vec4(g(y),1);" "}"; #endif // SHADER_MINIFIED_H_