diff --git a/4klang.asm b/4klang.asm index 4ff20d2..85d603e 100644 --- a/4klang.asm +++ b/4klang.asm @@ -1,6 +1,6 @@ -%define SU_LENGTH_IN_SAMPLES 4521776 +%define SU_LENGTH_IN_SAMPLES 4214960 %define SU_SAMPLE_RATE 44100 -%define SU_BPM 110. +%define SU_BPM 118. ;------------------------------------------------------------------------------- ; unit struct @@ -114,7 +114,7 @@ su_render_sampleloop: ; loop through every sample in the row pop eax ; eax = Sample, Stack: Row, GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr inc dword [esp + 4] ; increment global time, used by delays inc eax - cmp eax, 6013 + cmp eax, 5605 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 @@ -301,6 +301,7 @@ su_op_xch: section .su_op_filter code align=1 su_op_filter: lodsb ; load the flags to al + call su_effects_stereohelper fld dword [edx + 4] ; r x fld dword [edx]; f r x fmul st0, st0 ; f2 x (square the input so we never get negative and also have a smoother behaviour in the lower frequencies) @@ -322,10 +323,10 @@ su_op_filter: jz short su_op_filter_skiplowpass fadd dword [ebp] su_op_filter_skiplowpass: - test al, byte 0x04 - jz short su_op_filter_skipneghighpass - fsub dword [ebp+4] -su_op_filter_skipneghighpass: + test al, byte 0x08 + jz short su_op_filter_skipnegbandpass + fsub dword [ebp+8] +su_op_filter_skipnegbandpass: ret ;------------------------------------------------------------------------------- ; PAN opcode: pan the signal @@ -548,24 +549,6 @@ su_op_envelope_leave2: fmul dword [edx + 16] ; [gain]*x' ret -;------------------------------------------------------------------------------- -; NOISE opcode: creates noise -;------------------------------------------------------------------------------- -; Mono: push a random value [-1,1] value on stack -; Stereo: push two (differeent) random values on stack -;------------------------------------------------------------------------------- -section .su_op_noise code align=1 -su_op_noise: - lea ecx,[esp + 60] - imul eax, [ecx],16007 - mov [ecx],eax - fild dword [ecx] - fidiv dword [ICONST_2147483648] ; 65536*32768 - fld dword [edx] - call su_waveshaper - fmul dword [edx + 4] - ret - ;------------------------------------------------------------------------------- ; OSCILLAT opcode: oscillator, the heart of the synth ;------------------------------------------------------------------------------- @@ -797,6 +780,23 @@ su_waveshaper: fmulp st1 ; x*a/(1-a+(2*a-1)*abs(x)) ret +;------------------------------------------------------------------------------- +; su_effects_stereohelper: moves the workspace to next, does the filtering for +; right channel (pulling the calling address from stack), rewinds the +; workspace and returns +;------------------------------------------------------------------------------- +section .su_effects_stereohelper code align=1 +su_effects_stereohelper: + jnc su_effects_stereohelper_mono ; carry is still the stereo bit + add ebp, 16 + fxch ; r l + call [esp] ; call whoever called me... + fxch ; l r + sub ebp, 16 ; move WRK back to where it was +su_effects_stereohelper_mono: + ret ; return to process l/mono sound + + section .su_clip code align=1 su_clip: fld1 ; 1 x a @@ -824,9 +824,8 @@ su_vm_jumptable: dd su_op_outaux dd su_op_pan dd su_op_delay - dd su_op_send - dd su_op_noise dd su_op_filter + dd su_op_send dd su_op_in dd su_op_out @@ -843,9 +842,8 @@ su_vm_transformcounts: db 2 db 1 db 4 + db 2 db 1 - db 2 - db 2 db 0 db 1 @@ -954,7 +952,7 @@ su_sample_offsets: ;------------------------------------------------------------------------------- section .su_delay_times data align=1 su_delay_times: - dw 5230,4533,24054,48109,1116,1188,1276,1356,1422,1492,1556,1618,1140,1212,1300,1380,1446,1516,1580,1642 + dw 5230,4533,22423,44847,1116,1188,1276,1356,1422,1492,1556,1618,1140,1212,1300,1380,1446,1516,1580,1642 ;------------------------------------------------------------------------------- @@ -962,14 +960,14 @@ su_delay_times: ;------------------------------------------------------------------------------- section .su_patch_opcodes data align=1 su_patch_opcodes: - db 2,4,4,6,8,2,4,4,10,6,8,13,0,2,4,4,6,8,14,17,13,0,3,5,9,17,13,2,4,8,18,0,2,4,8,2,20,8,22,22,6,14,13,0,2,4,8,14,13,0,25,17,27,0 + db 2,4,4,6,8,2,4,4,10,6,8,13,0,2,4,4,6,8,14,17,13,0,3,5,9,17,19,13,2,4,8,20,0,2,4,8,14,13,0,2,4,8,14,13,0,23,17,25,0 ;------------------------------------------------------------------------------- ; The parameters / inputs to each opcode ;------------------------------------------------------------------------------- section .su_patch_operands data align=1 su_patch_operands: - db 57,82,62,63,107,91,65,0,0,67,41,129,79,63,0,1,65,62,129,57,87,50,64,100,91,54,0,0,64,64,129,79,62,0,1,64,78,129,18,19,31,70,0,66,76,77,31,0,2,64,128,130,89,48,0,2,64,97,130,75,28,128,59,86,0,1,20,32,25,64,88,64,112,62,64,0,3,64,47,129,84,128,37,18,2,1,56,53,91,0,92,89,82,82,64,0,128,64,128,72,80,41,0,0,68,0,0,54,76,52,0,4,81,53,128,0,68,0,0,53,2,39,128,67,68,110,116,64,59,77,56,0,43,89,50,103,79,42,0,5,72,128,128,64,72,0,2,33,128,123,14,4,15,90 + db 64,82,64,64,128,91,65,0,0,67,41,130,79,63,0,1,65,62,129,64,87,64,64,98,91,54,0,0,64,85,129,79,62,0,1,64,128,129,0,41,31,70,0,66,66,77,31,0,2,64,128,130,89,48,0,2,64,97,130,41,28,128,59,86,0,1,36,43,25,64,80,64,108,62,64,0,3,64,101,128,84,128,37,18,2,1,64,128,72,72,51,91,0,92,89,92,82,64,0,128,64,128,72,87,41,0,13,82,0,0,79,72,52,0,4,81,81,129,64,30,25,0,43,89,50,103,79,42,0,5,72,128,128,64,50,29,2,30,128,120,14,4,15,70 ;------------------------------------------------------------------------------- ; Constants @@ -982,7 +980,6 @@ FCONST_0_99609375 dd 0x3f7f0000 FCONST_3_80000em05 dd 0x381f6230 FCONST_9_269614em05 dd 0x38c265dc FCONST_84_28075 dd 0x42a88fbe -ICONST_2147483648 dd 0x80000000 ICONST_1034594986 dd 0x3daaaaaa ICONST_24 dd 0x18 diff --git a/4klang.h b/4klang.h index 6c9bfb3..0912170 100644 --- a/4klang.h +++ b/4klang.h @@ -3,11 +3,11 @@ #define SU_RENDER_H #define SU_CHANNEL_COUNT 2 -#define SU_LENGTH_IN_SAMPLES 4521776 +#define SU_LENGTH_IN_SAMPLES 4214960 #define SU_BUFFER_LENGTH (SU_LENGTH_IN_SAMPLES*SU_CHANNEL_COUNT) #define SU_SAMPLE_RATE 44100 -#define SU_BPM 110 +#define SU_BPM 118 #define SU_ROWS_PER_BEAT 4 #define SU_ROWS_PER_PATTERN 16 #define SU_LENGTH_IN_PATTERNS 47 diff --git a/4klang.inc b/4klang.inc index 5a35918..1bc510a 100644 --- a/4klang.inc +++ b/4klang.inc @@ -3,11 +3,11 @@ %define PLAYER_INC %define SU_CHANNEL_COUNT 2 -%define SU_LENGTH_IN_SAMPLES 4521776 +%define SU_LENGTH_IN_SAMPLES 4214960 %define SU_BUFFER_LENGTH (SU_LENGTH_IN_SAMPLES*SU_CHANNEL_COUNT) %define SU_SAMPLE_RATE 44100 -%define SU_BPM 110 +%define SU_BPM 118 %define SU_ROWS_PER_BEAT 4 %define SU_ROWS_PER_PATTERN 16 %define SU_LENGTH_IN_PATTERNS 47 diff --git a/4klang.yml b/4klang.yml index fe13d32..bb33874 100644 --- a/4klang.yml +++ b/4klang.yml @@ -1,34 +1,34 @@ -bpm: 110 +bpm: 118 rowsperbeat: 4 score: tracks: - numvoices: 1 - order: [0, -1, -1, -1, -1, -1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 1, 1, 2, 2, 1, 1, -1, -1] - patterns: [[33, 1, 1, 1, 1, 1, 1, 1, 1, 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]] + order: [0, -1, -1, -1, -1, -1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 1, 1, 2, 2, 1, 1, 7] + patterns: [[33, 1, 1, 1, 1, 1, 1, 1, 1, 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, 33, 33, 33, 33, 0, 1, 1, 1, 1, 1, 1, 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, 4, 5, 6, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 1, 1, 2, 2, 1, 1, -1, -1] - patterns: [[40, 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]] + order: [-1, 0, -1, -1, -1, -1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 1, 1, 2, 2, 1, 1, 7] + patterns: [[40, 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, 45, 45, 45, 45, 0, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 1, 1, 2, 2, 1, 1, -1, -1] - patterns: [[49, 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]] + 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, 1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 1, 1, 2, 2, 1, 1, 5] + patterns: [[49, 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, 40, 40, 40, 40, 0, 1, 1, 1, 1, 1, 1, 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, 8, 5, 5, 6, 6, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 6, 8, 5, 5, 6, 6, 5, 5, -1, -1] - patterns: [[64, 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], [65, 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], [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]] + 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, 8, 5, 5, 6, 6, 5, 5, 5, 5, 5, 5, 6, 6, 7, 7, 6, 8, 5, 5, 6, 6, 5, 5, 9] + patterns: [[64, 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], [65, 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], [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, 49, 49, 49, 49, 0, 1, 1, 1, 1, 1, 1, 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, 5, 5, 5, 5, 6, 6, 7, 7, 6, -1, 5, 5, 6, 6, 5, 5, -1, -1] - patterns: [[52, 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], [53, 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]] + 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, 5, 5, 5, 5, 6, 6, 7, 7, 6, -1, 5, 5, 6, 6, 5, 5, 8] + patterns: [[52, 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], [53, 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, 52, 52, 52, 52, 0, 1, 1, 1, 1, 1, 1, 1]] - numvoices: 4 - 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, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0, -1, -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]] + 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, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0, 3] + 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, 45, 45, 45, 45, 1, 1, 1, 1, 1, 1, 1, 1]] - numvoices: 3 - order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 0, 14, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, -1, -1] + order: [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 5, 0, 14, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 16] patterns: [[73, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [74, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 1, 1, 71], [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, 1, 0, 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], [74, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 73, 1, 0, 71], [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, 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]] + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] + patterns: [[62, 1, 1, 1, 62, 62, 62, 62, 1, 1, 62, 1, 1, 62, 1, 1], [62, 1, 1, 1, 62, 62, 62, 62, 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, 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]] + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] + patterns: [[60, 1, 1, 1, 60, 1, 1, 1, 60, 1, 1, 1, 60, 1, 1, 1], [60, 1, 1, 1, 60, 1, 1, 1, 60, 1, 1, 1, 1, 1, 1, 1]] rowsperpattern: 16 length: 47 patch: @@ -37,10 +37,10 @@ patch: units: - type: envelope id: 33 - parameters: {attack: 57, channel: 2, decay: 82, gain: 107, release: 63, stereo: 0, sustain: 62} + parameters: {attack: 64, channel: 2, decay: 82, gain: 128, release: 64, stereo: 0, sustain: 64} - type: oscillator id: 19 - parameters: {color: 65, damp: 64, detune: 65, dry: 128, feedback: 125, gain: 41, looplength: 9710, loopstart: 251, notetracking: 0, phase: 0, pregain: 40, samplestart: 1448797, shape: 67, stereo: 0, transpose: 91, type: 4, unison: 1} + parameters: {color: 65, damp: 64, detune: 65, dry: 128, feedback: 125, gain: 41, looplength: 9710, loopstart: 251, notetracking: 0, phase: 0, pregain: 40, samplestart: 1448797, shape: 67, stereo: 0, transpose: 91, type: 4, unison: 2} - type: oscillator id: 24 parameters: {color: 69, detune: 63, gain: 62, looplength: 10741, loopstart: 284, phase: 0, samplestart: 1351767, shape: 65, stereo: 0, transpose: 79, type: 4, unison: 1} @@ -51,13 +51,13 @@ patch: parameters: {auxgain: 64, outgain: 64, panning: 64, stereo: 0} - type: envelope id: 46 - parameters: {attack: 57, auxgain: 64, decay: 87, gain: 100, outgain: 64, panning: 64, release: 64, stereo: 0, sustain: 50} + parameters: {attack: 64, auxgain: 64, decay: 87, gain: 98, outgain: 64, panning: 64, release: 64, stereo: 0, sustain: 64} - type: oscillator id: 37 - parameters: {auxgain: 35, color: 64, detune: 54, gain: 64, looplength: 9710, loopstart: 251, outgain: 40, phase: 0, samplestart: 1448797, shape: 64, stereo: 0, transpose: 91, type: 4, unison: 1} + parameters: {auxgain: 35, color: 64, detune: 54, gain: 85, looplength: 9710, loopstart: 251, outgain: 40, phase: 0, samplestart: 1448797, shape: 64, stereo: 0, transpose: 91, type: 4, unison: 1} - type: oscillator id: 38 - parameters: {color: 128, detune: 62, gain: 78, looplength: 10741, loopstart: 284, phase: 0, samplestart: 1351767, shape: 64, stereo: 0, transpose: 79, type: 4, unison: 1} + parameters: {color: 128, detune: 62, gain: 128, looplength: 10741, loopstart: 284, phase: 0, samplestart: 1351767, shape: 64, stereo: 0, transpose: 79, type: 4, unison: 1} - type: xch id: 41 parameters: {stereo: 0} @@ -69,13 +69,13 @@ patch: parameters: {stereo: 0} - type: outaux id: 23 - parameters: {auxgain: 19, outgain: 18, stereo: 1} + parameters: {auxgain: 41, outgain: 0, stereo: 1} - name: Pizzicato numvoices: 4 units: - type: envelope id: 1 - parameters: {attack: 31, channel: 2, decay: 70, gain: 76, release: 66, stereo: 0, sustain: 0} + parameters: {attack: 31, channel: 2, decay: 70, gain: 66, release: 66, stereo: 0, sustain: 0} - type: oscillator id: 2 parameters: {color: 64, damp: 64, detune: 31, dry: 128, feedback: 125, gain: 128, looplength: 398, loopstart: 2073, notetracking: 0, phase: 0, pregain: 40, samplestart: 1034961, shape: 64, stereo: 0, transpose: 77, type: 4, unison: 2} @@ -89,35 +89,38 @@ patch: parameters: {bandpass: 0, frequency: 82, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 128, stereo: 0} - type: pan id: 5 - parameters: {auxgain: 39, outgain: 58, panning: 75, stereo: 0} + parameters: {auxgain: 39, outgain: 58, panning: 41, stereo: 0} - type: delay id: 49 parameters: {damp: 86, dry: 128, feedback: 59, notetracking: 0, pregain: 28, stereo: 1} varargs: [5230, 4533] - type: outaux id: 6 - parameters: {auxgain: 32, outgain: 20, stereo: 1} + parameters: {auxgain: 43, outgain: 36, stereo: 1} - name: Trumpet numvoices: 3 units: - type: envelope id: 51 - parameters: {attack: 25, decay: 64, gain: 112, release: 64, stereo: 1, sustain: 88} + parameters: {attack: 25, decay: 64, gain: 108, release: 64, stereo: 1, sustain: 80} - type: oscillator id: 1037 - parameters: {color: 64, detune: 64, gain: 47, looplength: 76, loopstart: 1916, phase: 0, samplestart: 1622065, shape: 64, stereo: 1, transpose: 62, type: 4, unison: 1} + parameters: {color: 64, detune: 64, gain: 101, looplength: 76, loopstart: 1916, phase: 0, samplestart: 1622065, shape: 64, stereo: 1, transpose: 62, type: 4, unison: 0} - type: mulp id: 53 parameters: {stereo: 1} - type: delay parameters: {damp: 18, dry: 128, feedback: 37, notetracking: 2, pregain: 84, stereo: 1} varargs: [48, 96] + - type: filter + id: 1045 + parameters: {bandpass: 0, frequency: 64, highpass: 0, lowpass: 1, negbandpass: 1, neghighpass: 0, resonance: 128, stereo: 1} - type: outaux id: 56 - parameters: {auxgain: 53, outgain: 56, stereo: 1} + parameters: {auxgain: 51, outgain: 72, stereo: 1} - type: envelope id: 61 - parameters: {attack: 91, decay: 0, gain: 82, release: 89, stereo: 0, sustain: 92} + parameters: {attack: 91, decay: 0, gain: 92, release: 89, stereo: 0, sustain: 92} - type: oscillator id: 59 parameters: {color: 128, detune: 64, gain: 128, lfo: 1, phase: 0, shape: 64, stereo: 0, transpose: 82, type: 0, unison: 0} @@ -126,35 +129,22 @@ patch: parameters: {stereo: 0} - type: send id: 1038 - parameters: {amount: 80, port: 1, sendpop: 1, stereo: 0, target: 1037, unit: 0, voice: 0} + parameters: {amount: 87, port: 1, sendpop: 1, stereo: 0, target: 1037, unit: 0, voice: 0} - name: snare edm 2 (sample-st) comment: 'Suggested range: E-2 to C-3' numvoices: 1 units: - type: envelope - parameters: {attack: 0, decay: 68, gain: 54, release: 0, stereo: 0, sustain: 0} + parameters: {attack: 13, decay: 82, gain: 79, release: 0, stereo: 0, sustain: 0} - type: oscillator id: 200 - parameters: {color: 48, detune: 52, gain: 53, lfo: 0, looplength: 1, loopstart: 4276, phase: 0, samplestart: 560606, shape: 81, stereo: 0, transpose: 76, type: 4} + parameters: {color: 48, detune: 52, gain: 81, lfo: 0, looplength: 1, loopstart: 4276, phase: 0, samplestart: 560606, shape: 81, stereo: 0, transpose: 72, type: 4, unison: 1} - type: mulp parameters: {panning: 64, stereo: 0} - - type: envelope - parameters: {attack: 0, auxgain: 64, decay: 68, gain: 53, outgain: 64, release: 0, stereo: 0, sustain: 0} - - type: noise - parameters: {gain: 39, shape: 2, stereo: 0} - - type: mulp - parameters: {stereo: 0} - - type: filter - id: 201 - parameters: {bandpass: 0, frequency: 128, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 1, resonance: 67, stereo: 0} - - type: filter - parameters: {bandpass: 0, frequency: 110, highpass: 0, lowpass: 1, negbandpass: 0, neghighpass: 0, resonance: 116, stereo: 0} - - type: addp - parameters: {stereo: 0} - type: pan - parameters: {panning: 59, stereo: 0} + parameters: {panning: 64, stereo: 0} - type: outaux - parameters: {auxgain: 56, outgain: 77, stereo: 1} + parameters: {auxgain: 25, outgain: 30, stereo: 1} - name: kick numvoices: 1 units: @@ -172,7 +162,7 @@ patch: parameters: {panning: 64, stereo: 0} - type: outaux id: 1044 - parameters: {auxgain: 0, outgain: 72, stereo: 1} + parameters: {auxgain: 29, outgain: 50, stereo: 1} - name: Global numvoices: 1 units: @@ -181,8 +171,8 @@ patch: parameters: {channel: 2, stereo: 1} - type: delay id: 8 - parameters: {damp: 14, dry: 128, feedback: 123, notetracking: 0, pregain: 33, stereo: 1} + parameters: {damp: 14, dry: 128, feedback: 120, notetracking: 0, pregain: 30, stereo: 1} varargs: [1116, 1188, 1276, 1356, 1422, 1492, 1556, 1618, 1140, 1212, 1300, 1380, 1446, 1516, 1580, 1642] - type: out id: 9 - parameters: {gain: 90, stereo: 1} + parameters: {gain: 70, stereo: 1} diff --git a/minified.config b/minified.config index ca5449b..1ab93ce 100644 --- a/minified.config +++ b/minified.config @@ -21,4 +21,4 @@ SECOND_PASS_NEGATIVE_TIME=0 USE_TEXTS=0 USE_TEXTS_UNIFORM=0 CRINKLER_ORDERTRIES=30000 -USE_RESOLUTION_UNIFORM=1 +USE_RESOLUTION_UNIFORM=1 \ No newline at end of file diff --git a/music/4k_sg_v5.xrns b/music/4k_sg_v5.xrns index 5c62c3c..76b7ece 100644 Binary files a/music/4k_sg_v5.xrns and b/music/4k_sg_v5.xrns differ