-
Notifications
You must be signed in to change notification settings - Fork 32
/
sid_par.c
2322 lines (2154 loc) · 124 KB
/
sid_par.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// $Id$
/*
* MBSID Parameter Handlers
*
* ==========================================================================
*
* Copyright (C) 2009 Thorsten Klose (tk@midibox.org)
* Licensed for personal non-commercial use only.
* All other rights reserved.
*
* ==========================================================================
*/
/////////////////////////////////////////////////////////////////////////////
// Include files
/////////////////////////////////////////////////////////////////////////////
#include <mios32.h>
#include "sid_se.h"
#include "sid_patch.h"
#include "sid_par.h"
/////////////////////////////////////////////////////////////////////////////
// for optional debugging messages via DEBUG_MSG (defined in mios32_config.h)
// should be at least 1 for sending error messages
/////////////////////////////////////////////////////////////////////////////
#define DEBUG_VERBOSE_LEVEL 1
/////////////////////////////////////////////////////////////////////////////
// local prototypes
/////////////////////////////////////////////////////////////////////////////
static s32 SID_PAR_HlpNote(u8 sid, u8 value, u8 voice_sel);
/////////////////////////////////////////////////////////////////////////////
// String IDs and Table
/////////////////////////////////////////////////////////////////////////////
// parameter strings
// must be kept aligned with sid_par_table_s[] below!
typedef enum {
P_S_NOP = 0,
P_S_VOLUME,
P_S_PHASE,
P_S_DETUNE,
P_S_CUTOFF,
P_S_RESONANCE,
P_S_CHANNELS,
P_S_MODE,
P_S_KNOB,
P_S_EXT_AOUT,
P_S_EXT_SWITCH,
P_S_WAVEFORM,
P_S_TRANSPOSE,
P_S_FINETUNE,
P_S_PORTAMENTO,
P_S_PULSEWIDTH,
P_S_DELAY,
P_S_ATTACK,
P_S_DECAY,
P_S_SUSTAIN,
P_S_RELEASE,
P_S_PITCHBENDER,
P_S_ARP_SPEED,
P_S_ARP_GL,
P_S_DEPTH,
P_S_MODINV,
P_S_RATE,
P_S_ATTACK1,
P_S_ALEVEL,
P_S_ATTACK2,
P_S_DECAY1,
P_S_DLEVEL,
P_S_DECAY2,
P_S_RELEASE1,
P_S_RLEVEL,
P_S_RELEASE2,
P_S_CURVE,
P_S_ATT_CURVE,
P_S_DEC_CURVE,
P_S_REL_CURVE,
P_S_SPEED,
P_S_START,
P_S_END,
P_S_LOOP,
P_S_POSITION,
P_S_NOTE,
P_S_DEPTH_P,
P_S_DEPTH_PW,
P_S_DEPTH_F,
P_S_ENVMOD,
P_S_ACCENT,
P_S_DECAY_A,
P_S_MODEL,
P_S_GATELENGTH,
P_S_PAR3
} sid_par_table_s_t;
#define SID_PAR_TABLE_S_WIDTH 8 // chars per entry
static const char sid_par_table_s[] = {
"--------"
"Volume "
"Phase "
"Detune "
"CutOff "
"Resonan."
"Channels"
"Mode "
"Knob "
"Ext.AOUT"
"Ext.Sw. "
"Waveform"
"Transp. "
"Finetune"
"Portam. "
"Pulsew. "
"Delay "
"Attack "
"Decay "
"Sustain "
"Release "
"P.Bender"
"Arp.Spd."
"Arp.GL. "
"Depth "
"ModInv "
"Rate "
"Attack1 "
"A.Level "
"Attack2 "
"Decay1 "
"D.Level "
"Decay2 "
"Release1"
"R.Level "
"Release2"
"Curve "
"A.Curve "
"D.Curve "
"R.Curve "
"Speed "
"Start "
"End "
"Loop "
"Position"
"Note "
"Depth P."
"Depth PW"
"Depth F."
"EnvMod "
"Accent "
"Decay A."
"D.Model "
"GateLn. "
"Param.3 "
};
// parameter number string definition
typedef enum {
P_N_NOP = 0,
P_N_OSC,
P_N_FIL,
P_N_FIL_L,
P_N_FIL_R,
P_N_KNOB,
P_N_EXT,
P_N_OSC123,
P_N_MOD,
P_N_LFO,
P_N_ENV,
P_N_WT,
P_N_OSC_INS,
P_N_LFO1_INS,
P_N_LFO2_INS,
P_N_ENV_INS,
P_N_OSC_BL,
P_N_LFO_BL,
P_N_ENV_BL,
P_N_DRM_CUR,
P_N_DRM_INS
} sid_par_table_n_t;
// parameter modification definitions
// must be kept aligned with sid_par_table_m_resolution[] below!
typedef enum {
P_M_NOP = 0,
P_M_7,
P_M_8,
P_M_PM8,
P_M_4L,
P_M_4U,
P_M_PAR12,
P_M_CUSTOM_SW,
P_M_FIL4L,
P_M_FIL4U,
P_M_FIL12,
P_M_FIL12_DIRECT,
P_M_FIL8,
P_M_OSC123_PM7,
P_M_OSC123_PM8,
P_M_OSC123_7,
P_M_OSC123_8,
P_M_OSC123_12,
P_M_OSC123_4L,
P_M_OSC123_5L,
P_M_OSC123_6L,
P_M_OSC123_4U,
P_M_OSC123_PB,
P_M_MOD_PM8,
P_M_MOD_B76,
P_M_LFO_4U,
P_M_LFO_PM8,
P_M_LFO_8,
P_M_ENV_PM8,
P_M_ENV_8,
P_M_WT_6,
P_M_WT_7,
P_M_WT_POS,
P_M_NOTE,
P_M_OSC_INS_PM7,
P_M_OSC_INS_PM8,
P_M_OSC_INS_7,
P_M_OSC_INS_8,
P_M_OSC_INS_12,
P_M_OSC_INS_4L,
P_M_OSC_INS_5L,
P_M_OSC_INS_6L,
P_M_OSC_INS_4U,
P_M_OSC_INS_PB,
P_M_OSC_BL_PM7,
P_M_OSC_BL_PM8,
P_M_OSC_BL_P8,
P_M_OSC_BL_7,
P_M_OSC_BL_8,
P_M_OSC_BL_12,
P_M_OSC_BL_4L,
P_M_OSC_BL_5L,
P_M_OSC_BL_6L,
P_M_OSC_BL_4U,
P_M_OSC_BL_PB,
P_M_OSC_BL_FIL12,
P_M_OSC_BL_FIL8,
P_M_DRM_8,
P_M_DRM_PM8,
P_M_DRM_4U,
P_M_DRM_4L,
P_M_NOTE_INS
} sid_par_table_m_t;
static const u8 sid_par_table_m_resolution[] = {
0, // NOP
7, // 7
8, // 8
8, // PM8
4, // 4L
4, // 4U
12, // PAR12
1, // CUSTOM_SW
4, // FIL4L
4, // FIL4U
12, // FIL12
12, // FIL12_DIRECT
8, // FIL8
7, // OSC123_PM7
8, // OSC123_PM8
7, // OSC123_7
8, // OSC123_8
12, // OSC123_12
4, // OSC123_4L
5, // OSC123_5L
6, // OSC123_6L
4, // OSC123_4U
8, // OSC123_PB
8, // MOD_PM8
2, // MOD_B76
4, // LFO_4U
8, // LFO_PM8
8, // LFO_8
8, // ENV_PM8
8, // ENV_8
6, // WT_6
7, // WT_7
7, // WT_POS
7, // NOTE
7, // OSC_INS_PM7
8, // OSC_INS_PM8
7, // OSC_INS_7
8, // OSC_INS_8
12, // OSC_INS_12
4, // OSC_INS_4L
5, // OSC_INS_5L
6, // OSC_INS_6L
4, // OSC_INS_4U
8, // OSC_INS_PB
7, // OSC_BL_PM7
8, // OSC_BL_PM8
7, // OSC_BL_P8
7, // OSC_BL_7
8, // OSC_BL_8
12, // OSC_BL_12
4, // OSC_BL_4L
5, // OSC_BL_5L
6, // OSC_BL_6L
4, // OSC_BL_4U
8, // OSC_BL_PB
12, // OSC_BL_FIL12
8, // OSC_BL_FIL8
8, // DRM_8
8, // DRM_PM8
4, // DRM_4U
4, // DRM_4L
7, // NOTE_INS
};
/////////////////////////////////////////////////////////////////////////////
// Type definitions
/////////////////////////////////////////////////////////////////////////////
typedef struct sid_par_table_item_t {
u8 left_string;
u8 right_string;
u8 mod_function;
u8 addr_l;
} sid_par_table_item_t;
/////////////////////////////////////////////////////////////////////////////
// Parameter Mappings
/////////////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------------
// -- Lead Engine
// --------------------------------------------------------------------------
static const sid_par_table_item_t sid_par_table[4][256] = {
// SID_SE_LEAD
{
//left string right string mod function register/number
// --[ 0x00-0x03 ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_VOLUME, P_N_NOP, P_M_7, 0x52 }, // SID_Ix_L_VOLUME
{ P_S_PHASE, P_N_OSC, P_M_8, 0x53 }, // SID_Ix_L_OSC_PHASE
{ P_S_DETUNE, P_N_OSC, P_M_8, 0x51 }, // SID_Ix_L_OSC_DETUNE
// --[ 0x04-0x07 ]-----------------------------------------------------------------------------
{ P_S_CUTOFF, P_N_FIL, P_M_FIL12, 0x54+1 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
{ P_S_RESONANCE, P_N_FIL, P_M_FIL8, 0x54+3 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
{ P_S_CHANNELS, P_N_FIL, P_M_FIL4L, 0x54+0 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CHN_MODE
{ P_S_MODE, P_N_FIL, P_M_FIL4U, 0x54+0 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CHN_MODE
// --[ 0x08-0x0f ]-----------------------------------------------------------------------------
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+0*5+0 }, // SID_Ix_P_K1_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+1*5+0 }, // SID_Ix_P_K2_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+2*5+0 }, // SID_Ix_P_K3_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+3*5+0 }, // SID_Ix_P_K4_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+4*5+0 }, // SID_Ix_P_K5_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+5*5+0 }, // SID_Ix_P_KV_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+6*5+0 }, // SID_Ix_P_KP_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+7*5+0 }, // SID_Ix_P_KA_BASE+SID_Ix_Px_VALUE
// --[ 0x10-0x17 ]-----------------------------------------------------------------------------
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x40 }, // SID_Ix_EXT_PAR1_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x42 }, // SID_Ix_EXT_PAR2_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x44 }, // SID_Ix_EXT_PAR3_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x46 }, // SID_Ix_EXT_PAR4_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x48 }, // SID_Ix_EXT_PAR5_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4a }, // SID_Ix_EXT_PAR6_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4c }, // SID_Ix_EXT_PAR7_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4e }, // SID_Ix_EXT_PAR8_L
// --[ 0x18-0x1f ]-----------------------------------------------------------------------------
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
// --[ 0x20-0x23 ]-----------------------------------------------------------------------------
{ P_S_WAVEFORM, P_N_OSC123, P_M_OSC123_7, 0x60+1 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_WAVEFORM
{ P_S_WAVEFORM, P_N_OSC123, P_M_OSC123_7, 0x60+1 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_WAVEFORM
{ P_S_WAVEFORM, P_N_OSC123, P_M_OSC123_7, 0x60+1 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_WAVEFORM
{ P_S_WAVEFORM, P_N_OSC123, P_M_OSC123_7, 0x60+1 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_WAVEFORM
// --[ 0x24-0x27 ]-----------------------------------------------------------------------------
{ P_S_TRANSPOSE, P_N_OSC123, P_M_OSC123_PM7, 0x60+8 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
{ P_S_TRANSPOSE, P_N_OSC123, P_M_OSC123_PM7, 0x60+8 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
{ P_S_TRANSPOSE, P_N_OSC123, P_M_OSC123_PM7, 0x60+8 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
{ P_S_TRANSPOSE, P_N_OSC123, P_M_OSC123_PM7, 0x60+8 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
// --[ 0x28-0x2b ]-----------------------------------------------------------------------------
{ P_S_FINETUNE, P_N_OSC123, P_M_OSC123_PM8, 0x60+9 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_FINETUNE
{ P_S_FINETUNE, P_N_OSC123, P_M_OSC123_PM8, 0x60+9 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_FINETUNE
{ P_S_FINETUNE, P_N_OSC123, P_M_OSC123_PM8, 0x60+9 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_FINETUNE
{ P_S_FINETUNE, P_N_OSC123, P_M_OSC123_PM8, 0x60+9 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_FINETUNE
// --[ 0x2c-0x2f ]-----------------------------------------------------------------------------
{ P_S_PORTAMENTO, P_N_OSC123, P_M_OSC123_8, 0x60+11 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
{ P_S_PORTAMENTO, P_N_OSC123, P_M_OSC123_8, 0x60+11 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
{ P_S_PORTAMENTO, P_N_OSC123, P_M_OSC123_8, 0x60+11 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
{ P_S_PORTAMENTO, P_N_OSC123, P_M_OSC123_8, 0x60+11 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
// --[ 0x30-0x33 ]-----------------------------------------------------------------------------
{ P_S_PULSEWIDTH, P_N_OSC123, P_M_OSC123_12, 0x60+4 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
{ P_S_PULSEWIDTH, P_N_OSC123, P_M_OSC123_12, 0x60+4 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
{ P_S_PULSEWIDTH, P_N_OSC123, P_M_OSC123_12, 0x60+4 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
{ P_S_PULSEWIDTH, P_N_OSC123, P_M_OSC123_12, 0x60+4 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
// --[ 0x34-0x37 ]-----------------------------------------------------------------------------
{ P_S_DELAY, P_N_OSC123, P_M_OSC123_8, 0x60+7 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_DELAY
{ P_S_DELAY, P_N_OSC123, P_M_OSC123_8, 0x60+7 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_DELAY
{ P_S_DELAY, P_N_OSC123, P_M_OSC123_8, 0x60+7 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_DELAY
{ P_S_DELAY, P_N_OSC123, P_M_OSC123_8, 0x60+7 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_DELAY
// --[ 0x38-0x3b ]-----------------------------------------------------------------------------
{ P_S_ATTACK, P_N_OSC123, P_M_OSC123_4U, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_ATTACK, P_N_OSC123, P_M_OSC123_4U, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_ATTACK, P_N_OSC123, P_M_OSC123_4U, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_ATTACK, P_N_OSC123, P_M_OSC123_4U, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
// --[ 0x3c-0x3f ]-----------------------------------------------------------------------------
{ P_S_DECAY, P_N_OSC123, P_M_OSC123_4L, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_DECAY, P_N_OSC123, P_M_OSC123_4L, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_DECAY, P_N_OSC123, P_M_OSC123_4L, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_DECAY, P_N_OSC123, P_M_OSC123_4L, 0x60+2 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_AD
// --[ 0x40-0x43 ]-----------------------------------------------------------------------------
{ P_S_SUSTAIN, P_N_OSC123, P_M_OSC123_4U, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_SUSTAIN, P_N_OSC123, P_M_OSC123_4U, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_SUSTAIN, P_N_OSC123, P_M_OSC123_4U, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_SUSTAIN, P_N_OSC123, P_M_OSC123_4U, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
// --[ 0x44-0x47 ]-----------------------------------------------------------------------------
{ P_S_RELEASE, P_N_OSC123, P_M_OSC123_4L, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_RELEASE, P_N_OSC123, P_M_OSC123_4L, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_RELEASE, P_N_OSC123, P_M_OSC123_4L, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_RELEASE, P_N_OSC123, P_M_OSC123_4L, 0x60+3 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_SR
// --[ 0x48-0x4b ]-----------------------------------------------------------------------------
{ P_S_ARP_SPEED, P_N_OSC123, P_M_OSC123_6L, 0x60+13 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
{ P_S_ARP_SPEED, P_N_OSC123, P_M_OSC123_6L, 0x60+13 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
{ P_S_ARP_SPEED, P_N_OSC123, P_M_OSC123_6L, 0x60+13 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
{ P_S_ARP_SPEED, P_N_OSC123, P_M_OSC123_6L, 0x60+13 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
// --[ 0x4c-0x4f ]-----------------------------------------------------------------------------
{ P_S_ARP_GL, P_N_OSC123, P_M_OSC123_5L, 0x60+14 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
{ P_S_ARP_GL, P_N_OSC123, P_M_OSC123_5L, 0x60+14 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
{ P_S_ARP_GL, P_N_OSC123, P_M_OSC123_5L, 0x60+14 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
{ P_S_ARP_GL, P_N_OSC123, P_M_OSC123_5L, 0x60+14 }, // SID_Ix_L_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
// --[ 0x50-0x53 ]-----------------------------------------------------------------------------
{ P_S_PITCHBENDER,P_N_OSC123, P_M_OSC123_PB, 0 }, // SIDL_V1_BASE
{ P_S_PITCHBENDER,P_N_OSC123, P_M_OSC123_PB, 0 }, // SIDL_V1_BASE
{ P_S_PITCHBENDER,P_N_OSC123, P_M_OSC123_PB, 1 }, // SIDL_V2_BASE
{ P_S_PITCHBENDER,P_N_OSC123, P_M_OSC123_PB, 2 }, // SIDL_V3_BASE
// --[ 0x54-0x5f ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0x60-0x67 ]-----------------------------------------------------------------------------
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+0*8+3 }, // SID_Ix_L_MOD1_BASE+SID_Ix_MODx_DEPTH
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+1*8+3 }, // SID_Ix_L_MOD2_BASE+SID_Ix_MODx_DEPTH
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+2*8+3 }, // SID_Ix_L_MOD3_BASE+SID_Ix_MODx_DEPTH
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+3*8+3 }, // SID_Ix_L_MOD4_BASE+SID_Ix_MODx_DEPTH
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+4*8+3 }, // SID_Ix_L_MOD5_BASE+SID_Ix_MODx_DEPTH
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+5*8+3 }, // SID_Ix_L_MOD6_BASE+SID_Ix_MODx_DEPTH
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+6*8+3 }, // SID_Ix_L_MOD7_BASE+SID_Ix_MODx_DEPTH
{ P_S_DEPTH, P_N_MOD, P_M_MOD_PM8, 0x00+7*8+3 }, // SID_Ix_L_MOD8_BASE+SID_Ix_MODx_DEPTH
// --[ 0x68-0x6f ]-----------------------------------------------------------------------------
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+0*8+2 }, // SID_Ix_L_MOD1_BASE+SID_Ix_MODx_OP
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+1*8+2 }, // SID_Ix_L_MOD2_BASE+SID_Ix_MODx_OP
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+2*8+2 }, // SID_Ix_L_MOD3_BASE+SID_Ix_MODx_OP
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+3*8+2 }, // SID_Ix_L_MOD4_BASE+SID_Ix_MODx_OP
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+4*8+2 }, // SID_Ix_L_MOD5_BASE+SID_Ix_MODx_OP
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+5*8+2 }, // SID_Ix_L_MOD6_BASE+SID_Ix_MODx_OP
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+6*8+2 }, // SID_Ix_L_MOD7_BASE+SID_Ix_MODx_OP
{ P_S_MODINV, P_N_MOD, P_M_MOD_B76, 0x00+7*8+2 }, // SID_Ix_L_MOD8_BASE+SID_Ix_MODx_OP
// --[ 0x70-0x7f ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0x80-0x87 ]-----------------------------------------------------------------------------
{ P_S_WAVEFORM, P_N_LFO, P_M_LFO_4U, 0xc0+0*5+0 }, // SID_Ix_L_LFO1_BASE+SID_Ix_LFOx_MODE
{ P_S_WAVEFORM, P_N_LFO, P_M_LFO_4U, 0xc0+1*5+0 }, // SID_Ix_L_LFO2_BASE+SID_Ix_LFOx_MODE
{ P_S_WAVEFORM, P_N_LFO, P_M_LFO_4U, 0xc0+2*5+0 }, // SID_Ix_L_LFO3_BASE+SID_Ix_LFOx_MODE
{ P_S_WAVEFORM, P_N_LFO, P_M_LFO_4U, 0xc0+3*5+0 }, // SID_Ix_L_LFO4_BASE+SID_Ix_LFOx_MODE
{ P_S_WAVEFORM, P_N_LFO, P_M_LFO_4U, 0xc0+4*5+0 }, // SID_Ix_L_LFO5_BASE+SID_Ix_LFOx_MODE
{ P_S_WAVEFORM, P_N_LFO, P_M_LFO_4U, 0xc0+5*5+0 }, // SID_Ix_L_LFO6_BASE+SID_Ix_LFOx_MODE
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0x88-0x8f ]-----------------------------------------------------------------------------
{ P_S_DEPTH, P_N_LFO, P_M_LFO_PM8, 0xc0+0*5+1 }, // SID_Ix_L_LFO1_BASE+SID_Ix_LFOx_DEPTH
{ P_S_DEPTH, P_N_LFO, P_M_LFO_PM8, 0xc0+1*5+1 }, // SID_Ix_L_LFO2_BASE+SID_Ix_LFOx_DEPTH
{ P_S_DEPTH, P_N_LFO, P_M_LFO_PM8, 0xc0+2*5+1 }, // SID_Ix_L_LFO3_BASE+SID_Ix_LFOx_DEPTH
{ P_S_DEPTH, P_N_LFO, P_M_LFO_PM8, 0xc0+3*5+1 }, // SID_Ix_L_LFO4_BASE+SID_Ix_LFOx_DEPTH
{ P_S_DEPTH, P_N_LFO, P_M_LFO_PM8, 0xc0+4*5+1 }, // SID_Ix_L_LFO5_BASE+SID_Ix_LFOx_DEPTH
{ P_S_DEPTH, P_N_LFO, P_M_LFO_PM8, 0xc0+5*5+1 }, // SID_Ix_L_LFO6_BASE+SID_Ix_LFOx_DEPTH
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0x90-097 ]-----------------------------------------------------------------------------
{ P_S_RATE, P_N_LFO, P_M_LFO_8, 0xc0+0*5+2 }, // SID_Ix_L_LFO1_BASE+SID_Ix_LFOx_RATE
{ P_S_RATE, P_N_LFO, P_M_LFO_8, 0xc0+1*5+2 }, // SID_Ix_L_LFO2_BASE+SID_Ix_LFOx_RATE
{ P_S_RATE, P_N_LFO, P_M_LFO_8, 0xc0+2*5+2 }, // SID_Ix_L_LFO3_BASE+SID_Ix_LFOx_RATE
{ P_S_RATE, P_N_LFO, P_M_LFO_8, 0xc0+3*5+2 }, // SID_Ix_L_LFO4_BASE+SID_Ix_LFOx_RATE
{ P_S_RATE, P_N_LFO, P_M_LFO_8, 0xc0+4*5+2 }, // SID_Ix_L_LFO5_BASE+SID_Ix_LFOx_RATE
{ P_S_RATE, P_N_LFO, P_M_LFO_8, 0xc0+5*5+2 }, // SID_Ix_L_LFO6_BASE+SID_Ix_LFOx_RATE
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0x98-09f ]-----------------------------------------------------------------------------
{ P_S_DELAY, P_N_LFO, P_M_LFO_8, 0xc0+0*5+3 }, // SID_Ix_L_LFO1_BASE+SID_Ix_LFOx_DELAY
{ P_S_DELAY, P_N_LFO, P_M_LFO_8, 0xc0+1*5+3 }, // SID_Ix_L_LFO2_BASE+SID_Ix_LFOx_DELAY
{ P_S_DELAY, P_N_LFO, P_M_LFO_8, 0xc0+2*5+3 }, // SID_Ix_L_LFO3_BASE+SID_Ix_LFOx_DELAY
{ P_S_DELAY, P_N_LFO, P_M_LFO_8, 0xc0+3*5+3 }, // SID_Ix_L_LFO4_BASE+SID_Ix_LFOx_DELAY
{ P_S_DELAY, P_N_LFO, P_M_LFO_8, 0xc0+4*5+3 }, // SID_Ix_L_LFO5_BASE+SID_Ix_LFOx_DELAY
{ P_S_DELAY, P_N_LFO, P_M_LFO_8, 0xc0+5*5+3 }, // SID_Ix_L_LFO6_BASE+SID_Ix_LFOx_DELAY
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0xa0-0a7 ]-----------------------------------------------------------------------------
{ P_S_PHASE, P_N_LFO, P_M_LFO_8, 0xc0+0*5+4 }, // SID_Ix_L_LFO1_BASE+SID_Ix_LFOx_PHASE
{ P_S_PHASE, P_N_LFO, P_M_LFO_8, 0xc0+1*5+4 }, // SID_Ix_L_LFO2_BASE+SID_Ix_LFOx_PHASE
{ P_S_PHASE, P_N_LFO, P_M_LFO_8, 0xc0+2*5+4 }, // SID_Ix_L_LFO3_BASE+SID_Ix_LFOx_PHASE
{ P_S_PHASE, P_N_LFO, P_M_LFO_8, 0xc0+3*5+4 }, // SID_Ix_L_LFO4_BASE+SID_Ix_LFOx_PHASE
{ P_S_PHASE, P_N_LFO, P_M_LFO_8, 0xc0+4*5+4 }, // SID_Ix_L_LFO5_BASE+SID_Ix_LFOx_PHASE
{ P_S_PHASE, P_N_LFO, P_M_LFO_8, 0xc0+5*5+4 }, // SID_Ix_L_LFO6_BASE+SID_Ix_LFOx_PHASE
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0xa8-0af ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0xb0-0bf ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0xc0-0cf ]-----------------------------------------------------------------------------
{ P_S_MODE, P_N_ENV, P_M_ENV_8, 0xe0+0*16+0 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_MODE
{ P_S_DEPTH, P_N_ENV, P_M_ENV_PM8, 0xe0+0*16+1 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_DEPTH
{ P_S_DELAY, P_N_ENV, P_M_ENV_8, 0xe0+0*16+2 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_DELAY
{ P_S_ATTACK1, P_N_ENV, P_M_ENV_8, 0xe0+0*16+3 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_ATTACK1
{ P_S_ALEVEL, P_N_ENV, P_M_ENV_8, 0xe0+0*16+4 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_ATTLVL
{ P_S_ATTACK2, P_N_ENV, P_M_ENV_8, 0xe0+0*16+5 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_ATTACK2
{ P_S_DECAY1, P_N_ENV, P_M_ENV_8, 0xe0+0*16+6 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_DECAY1
{ P_S_DLEVEL, P_N_ENV, P_M_ENV_8, 0xe0+0*16+7 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_DECLVL
{ P_S_DECAY2, P_N_ENV, P_M_ENV_8, 0xe0+0*16+8 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_DECAY2
{ P_S_SUSTAIN, P_N_ENV, P_M_ENV_8, 0xe0+0*16+9 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_SUSTAIN
{ P_S_RELEASE1, P_N_ENV, P_M_ENV_8, 0xe0+0*16+10 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_RELEASE1
{ P_S_RLEVEL, P_N_ENV, P_M_ENV_8, 0xe0+0*16+11 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_RELLVL
{ P_S_RELEASE2, P_N_ENV, P_M_ENV_8, 0xe0+0*16+12 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_RELEASE2
{ P_S_ATT_CURVE, P_N_ENV, P_M_ENV_8, 0xe0+0*16+13 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_ATT_CURVE
{ P_S_DEC_CURVE, P_N_ENV, P_M_ENV_8, 0xe0+0*16+14 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_DEC_CURVE
{ P_S_REL_CURVE, P_N_ENV, P_M_ENV_8, 0xe0+0*16+15 }, // SID_Ix_L_ENV1_BASE+SID_Ix_L_ENVx_REL_CURVE
// --[ 0xd0-0df ]-----------------------------------------------------------------------------
{ P_S_MODE, P_N_ENV, P_M_ENV_8, 0xe0+1*16+0 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_MODE
{ P_S_DEPTH, P_N_ENV, P_M_ENV_PM8, 0xe0+1*16+1 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_DEPTH
{ P_S_DELAY, P_N_ENV, P_M_ENV_8, 0xe0+1*16+2 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_DELAY
{ P_S_ATTACK1, P_N_ENV, P_M_ENV_8, 0xe0+1*16+3 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_ATTACK1
{ P_S_ALEVEL, P_N_ENV, P_M_ENV_8, 0xe0+1*16+4 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_ATTLVL
{ P_S_ATTACK2, P_N_ENV, P_M_ENV_8, 0xe0+1*16+5 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_ATTACK2
{ P_S_DECAY1, P_N_ENV, P_M_ENV_8, 0xe0+1*16+6 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_DECAY1
{ P_S_DLEVEL, P_N_ENV, P_M_ENV_8, 0xe0+1*16+7 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_DECLVL
{ P_S_DECAY2, P_N_ENV, P_M_ENV_8, 0xe0+1*16+8 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_DECAY2
{ P_S_SUSTAIN, P_N_ENV, P_M_ENV_8, 0xe0+1*16+9 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_SUSTAIN
{ P_S_RELEASE1, P_N_ENV, P_M_ENV_8, 0xe0+1*16+10 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_RELEASE1
{ P_S_RLEVEL, P_N_ENV, P_M_ENV_8, 0xe0+1*16+11 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_RELLVL
{ P_S_RELEASE2, P_N_ENV, P_M_ENV_8, 0xe0+1*16+12 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_RELEASE2
{ P_S_ATT_CURVE, P_N_ENV, P_M_ENV_8, 0xe0+1*16+13 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_ATT_CURVE
{ P_S_DEC_CURVE, P_N_ENV, P_M_ENV_8, 0xe0+1*16+14 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_DEC_CURVE
{ P_S_REL_CURVE, P_N_ENV, P_M_ENV_8, 0xe0+1*16+15 }, // SID_Ix_L_ENV2_BASE+SID_Ix_L_ENVx_REL_CURVE
// --[ 0xe0-0e3 ]-----------------------------------------------------------------------------
{ P_S_SPEED, P_N_WT, P_M_WT_6, 0x6c+0*5+0 }, // SID_Ix_L_WT1_BASE+SID_Ix_WTx_SPEED
{ P_S_SPEED, P_N_WT, P_M_WT_6, 0x6c+1*5+0 }, // SID_Ix_L_WT2_BASE+SID_Ix_WTx_SPEED
{ P_S_SPEED, P_N_WT, P_M_WT_6, 0x6c+2*5+0 }, // SID_Ix_L_WT3_BASE+SID_Ix_WTx_SPEED
{ P_S_SPEED, P_N_WT, P_M_WT_6, 0x6c+3*5+0 }, // SID_Ix_L_WT4_BASE+SID_Ix_WTx_SPEED
// --[ 0xe4-0e7 ]-----------------------------------------------------------------------------
{ P_S_START, P_N_WT, P_M_WT_7, 0x6c+0*5+2 }, // SID_Ix_L_WT1_BASE+SID_Ix_WTx_BEGIN
{ P_S_START, P_N_WT, P_M_WT_7, 0x6c+1*5+2 }, // SID_Ix_L_WT2_BASE+SID_Ix_WTx_BEGIN
{ P_S_START, P_N_WT, P_M_WT_7, 0x6c+2*5+2 }, // SID_Ix_L_WT3_BASE+SID_Ix_WTx_BEGIN
{ P_S_START, P_N_WT, P_M_WT_7, 0x6c+3*5+2 }, // SID_Ix_L_WT4_BASE+SID_Ix_WTx_BEGIN
// --[ 0xe8-0eb ]-----------------------------------------------------------------------------
{ P_S_END, P_N_WT, P_M_WT_7, 0x6c+0*5+3 }, // SID_Ix_L_WT1_BASE+SID_Ix_WTx_END
{ P_S_END, P_N_WT, P_M_WT_7, 0x6c+1*5+3 }, // SID_Ix_L_WT2_BASE+SID_Ix_WTx_END
{ P_S_END, P_N_WT, P_M_WT_7, 0x6c+2*5+3 }, // SID_Ix_L_WT3_BASE+SID_Ix_WTx_END
{ P_S_END, P_N_WT, P_M_WT_7, 0x6c+3*5+3 }, // SID_Ix_L_WT4_BASE+SID_Ix_WTx_END
// --[ 0xec-0ef ]-----------------------------------------------------------------------------
{ P_S_LOOP, P_N_WT, P_M_WT_7, 0x6c+0*5+4 }, // SID_Ix_L_WT1_BASE+SID_Ix_WTx_LOOP
{ P_S_LOOP, P_N_WT, P_M_WT_7, 0x6c+1*5+4 }, // SID_Ix_L_WT2_BASE+SID_Ix_WTx_LOOP
{ P_S_LOOP, P_N_WT, P_M_WT_7, 0x6c+2*5+4 }, // SID_Ix_L_WT3_BASE+SID_Ix_WTx_LOOP
{ P_S_LOOP, P_N_WT, P_M_WT_7, 0x6c+3*5+4 }, // SID_Ix_L_WT4_BASE+SID_Ix_WTx_LOOP
// --[ 0xf0-0f3 ]-----------------------------------------------------------------------------
{ P_S_POSITION, P_N_WT, P_M_WT_POS, 0 }, // SID_WT1_BASE+SID_WTx_POS
{ P_S_POSITION, P_N_WT, P_M_WT_POS, 1 }, // SID_WT2_BASE+SID_WTx_POS
{ P_S_POSITION, P_N_WT, P_M_WT_POS, 2 }, // SID_WT3_BASE+SID_WTx_POS
{ P_S_POSITION, P_N_WT, P_M_WT_POS, 3 }, // SID_WT4_BASE+SID_WTx_POS
// --[ 0xf4-0ff ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0xfc-0ff ]-----------------------------------------------------------------------------
{ P_S_NOTE, P_N_OSC123, P_M_NOTE, 0 }, // SIDL_V1_BASE
{ P_S_NOTE, P_N_OSC123, P_M_NOTE, 0 }, // SIDL_V1_BASE
{ P_S_NOTE, P_N_OSC123, P_M_NOTE, 1 }, // SIDL_V2_BASE
{ P_S_NOTE, P_N_OSC123, P_M_NOTE, 2 }, // SIDL_V3_BASE
},
// SID_SE_BASSLINE
{
//left string right string mod function register/number
// --[ 0x00-0x03 ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_VOLUME, P_N_NOP, P_M_7, 0x52 }, // SID_Ix_L_VOLUME
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_DETUNE, P_N_OSC, P_M_8, 0x51 }, // SID_Ix_L_OSC_DETUNE
// --[ 0x04-0x07 ]-----------------------------------------------------------------------------
{ P_S_CUTOFF, P_N_FIL, P_M_FIL12, 0x54+1 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
{ P_S_RESONANCE, P_N_FIL, P_M_FIL8, 0x54+3 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
{ P_S_CHANNELS, P_N_FIL, P_M_FIL4L, 0x54+0 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CHN_MODE
{ P_S_MODE, P_N_FIL, P_M_FIL4U, 0x54+0 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CHN_MODE
// --[ 0x08-0x0f ]-----------------------------------------------------------------------------
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+0*5+0 }, // SID_Ix_P_K1_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+1*5+0 }, // SID_Ix_P_K2_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+2*5+0 }, // SID_Ix_P_K3_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+3*5+0 }, // SID_Ix_P_K4_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+4*5+0 }, // SID_Ix_P_K5_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+5*5+0 }, // SID_Ix_P_KV_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+6*5+0 }, // SID_Ix_P_KP_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+7*5+0 }, // SID_Ix_P_KA_BASE+SID_Ix_Px_VALUE
// --[ 0x10-0x17 ]-----------------------------------------------------------------------------
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x40 }, // SID_Ix_EXT_PAR1_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x42 }, // SID_Ix_EXT_PAR2_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x44 }, // SID_Ix_EXT_PAR3_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x46 }, // SID_Ix_EXT_PAR4_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x48 }, // SID_Ix_EXT_PAR5_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4a }, // SID_Ix_EXT_PAR6_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4c }, // SID_Ix_EXT_PAR7_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4e }, // SID_Ix_EXT_PAR8_L
// --[ 0x18-0x1f ]-----------------------------------------------------------------------------
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
// --[ 0x20-0x23 ]-----------------------------------------------------------------------------
{ P_S_WAVEFORM, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+1 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_WAVEFORM
{ P_S_WAVEFORM, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+1 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_WAVEFORM
{ P_S_WAVEFORM, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+1 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_WAVEFORM
{ P_S_WAVEFORM, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+1 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_WAVEFORM
// --[ 0x24-0x27 ]-----------------------------------------------------------------------------
{ P_S_TRANSPOSE, P_N_OSC_BL, P_M_OSC_BL_PM7, 0x60+8 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
{ P_S_TRANSPOSE, P_N_OSC_BL, P_M_OSC_BL_PM7, 0x60+8 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
{ P_S_TRANSPOSE, P_N_OSC_BL, P_M_OSC_BL_PM7, 0x60+8 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
{ P_S_TRANSPOSE, P_N_OSC_BL, P_M_OSC_BL_PM7, 0x60+8 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_TRANSPOSE
// --[ 0x28-0x2b ]-----------------------------------------------------------------------------
{ P_S_FINETUNE, P_N_OSC_BL, P_M_OSC_BL_PM8, 0x60+9 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_FINETUNE
{ P_S_FINETUNE, P_N_OSC_BL, P_M_OSC_BL_PM8, 0x60+9 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_FINETUNE
{ P_S_FINETUNE, P_N_OSC_BL, P_M_OSC_BL_PM8, 0x60+9 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_FINETUNE
{ P_S_FINETUNE, P_N_OSC_BL, P_M_OSC_BL_PM8, 0x60+9 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_FINETUNE
// --[ 0x2c-0x2f ]-----------------------------------------------------------------------------
{ P_S_PORTAMENTO, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+11 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
{ P_S_PORTAMENTO, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+11 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
{ P_S_PORTAMENTO, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+11 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
{ P_S_PORTAMENTO, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+11 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PORTAMENTO
// --[ 0x30-0x33 ]-----------------------------------------------------------------------------
{ P_S_PULSEWIDTH, P_N_OSC_BL, P_M_OSC_BL_12, 0x60+4 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
{ P_S_PULSEWIDTH, P_N_OSC_BL, P_M_OSC_BL_12, 0x60+4 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
{ P_S_PULSEWIDTH, P_N_OSC_BL, P_M_OSC_BL_12, 0x60+4 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
{ P_S_PULSEWIDTH, P_N_OSC_BL, P_M_OSC_BL_12, 0x60+4 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_PULSEWIDTH_L
// --[ 0x34-0x37 ]-----------------------------------------------------------------------------
{ P_S_DELAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+7 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_DELAY
{ P_S_DELAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+7 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_DELAY
{ P_S_DELAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+7 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_DELAY
{ P_S_DELAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+7 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_DELAY
// --[ 0x38-0x3b ]-----------------------------------------------------------------------------
{ P_S_ATTACK, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_ATTACK, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_ATTACK, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_ATTACK, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
// --[ 0x3c-0x3f ]-----------------------------------------------------------------------------
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+2 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_AD
// --[ 0x40-0x43 ]-----------------------------------------------------------------------------
{ P_S_SUSTAIN, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_SUSTAIN, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_SUSTAIN, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_SUSTAIN, P_N_OSC_BL, P_M_OSC_BL_4U, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
// --[ 0x44-0x47 ]-----------------------------------------------------------------------------
{ P_S_RELEASE, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_RELEASE, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_RELEASE, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
{ P_S_RELEASE, P_N_OSC_BL, P_M_OSC_BL_4L, 0x60+3 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_SR
// --[ 0x48-0x4b ]-----------------------------------------------------------------------------
{ P_S_ARP_SPEED, P_N_OSC_BL, P_M_OSC_BL_6L, 0x60+13 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
{ P_S_ARP_SPEED, P_N_OSC_BL, P_M_OSC_BL_6L, 0x60+13 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
{ P_S_ARP_SPEED, P_N_OSC_BL, P_M_OSC_BL_6L, 0x60+13 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
{ P_S_ARP_SPEED, P_N_OSC_BL, P_M_OSC_BL_6L, 0x60+13 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_SPEED_DIV
// --[ 0x4c-0x4f ]-----------------------------------------------------------------------------
{ P_S_ARP_GL, P_N_OSC_BL, P_M_OSC_BL_5L, 0x60+14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
{ P_S_ARP_GL, P_N_OSC_BL, P_M_OSC_BL_5L, 0x60+14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
{ P_S_ARP_GL, P_N_OSC_BL, P_M_OSC_BL_5L, 0x60+14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
{ P_S_ARP_GL, P_N_OSC_BL, P_M_OSC_BL_5L, 0x60+14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ARP_GL_RNG
// --[ 0x50-0x53 ]-----------------------------------------------------------------------------
{ P_S_PITCHBENDER,P_N_OSC_BL, P_M_OSC_BL_PB, 0 },
{ P_S_PITCHBENDER,P_N_OSC_BL, P_M_OSC_BL_PB, 0 },
{ P_S_PITCHBENDER,P_N_OSC_BL, P_M_OSC_BL_PB, 0 },
{ P_S_PITCHBENDER,P_N_OSC_BL, P_M_OSC_BL_PB, 0 },
// --[ 0x54-0x5f ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
// --[ 0x60-0x63 ]-----------------------------------------------------------------------------
{ P_S_CUTOFF, P_N_OSC_BL, P_M_OSC_BL_FIL12,0x54+1 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
{ P_S_CUTOFF, P_N_OSC_BL, P_M_OSC_BL_FIL12,0x54+1 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
{ P_S_CUTOFF, P_N_OSC_BL, P_M_OSC_BL_FIL12,0x54+1 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
{ P_S_CUTOFF, P_N_OSC_BL, P_M_OSC_BL_FIL12,0x54+1 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
// --[ 0x64-0x67 ]-----------------------------------------------------------------------------
{ P_S_RESONANCE, P_N_OSC_BL, P_M_OSC_BL_FIL8,0x54+3 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
{ P_S_RESONANCE, P_N_OSC_BL, P_M_OSC_BL_FIL8,0x54+3 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
{ P_S_RESONANCE, P_N_OSC_BL, P_M_OSC_BL_FIL8,0x54+3 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
{ P_S_RESONANCE, P_N_OSC_BL, P_M_OSC_BL_FIL8,0x54+3 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
// --[ 0x68-0x6b ]-----------------------------------------------------------------------------
{ P_S_ENVMOD, P_N_OSC_BL, P_M_OSC_BL_P8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
{ P_S_ENVMOD, P_N_OSC_BL, P_M_OSC_BL_P8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
{ P_S_ENVMOD, P_N_OSC_BL, P_M_OSC_BL_P8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
{ P_S_ENVMOD, P_N_OSC_BL, P_M_OSC_BL_P8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
// --[ 0x6c-0x6f ]-----------------------------------------------------------------------------
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
{ P_S_DECAY, P_N_OSC_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
// --[ 0x70-0x73 ]-----------------------------------------------------------------------------
{ P_S_ACCENT, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+6 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ACCENT
{ P_S_ACCENT, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+6 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ACCENT
{ P_S_ACCENT, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+6 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ACCENT
{ P_S_ACCENT, P_N_OSC_BL, P_M_OSC_BL_7, 0x60+6 }, // SID_Ix_B_S1V1_BASE+SID_Ix_Vx_ACCENT
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
// --[ 0x80-0x87 ]-----------------------------------------------------------------------------
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_MODE
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_MODE
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_MODE
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x14 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_MODE
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x1b }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_MODE
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x1b }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_MODE
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x1b }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_MODE
{ P_S_WAVEFORM, P_N_LFO_BL, P_M_OSC_BL_4U, 0x60+0x1b }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_MODE
// --[ 0x88-0x8f ]-----------------------------------------------------------------------------
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x15 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_P
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x15 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_P
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x15 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_P
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x15 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_P
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1c }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_P
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1c }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_P
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1c }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_P
{ P_S_DEPTH_P, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1c }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_P
// --[ 0x90-0x97 ]-----------------------------------------------------------------------------
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x19 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_PW
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x19 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_PW
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x19 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_PW
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x19 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_PW
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x20 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_PW
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x20 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_PW
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x20 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_PW
{ P_S_DEPTH_PW, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x20 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_PW
// --[ 0x98-0x9f ]-----------------------------------------------------------------------------
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_F
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_F
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_F
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x1a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DEPTH_F
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x21 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_F
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x21 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_F
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x21 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_F
{ P_S_DEPTH_F, P_N_LFO_BL, P_M_OSC_BL_PM8, 0x60+0x21 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DEPTH_F
// --[ 0xa0-0xa7 ]-----------------------------------------------------------------------------
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x16 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_RATE
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x16 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_RATE
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x16 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_RATE
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x16 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_RATE
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1f }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_RATE
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1f }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_RATE
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1f }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_RATE
{ P_S_RATE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1f }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_RATE
// --[ 0xa8-0xaf ]-----------------------------------------------------------------------------
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x17 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DELAY
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x17 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DELAY
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x17 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DELAY
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x17 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_DELAY
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1e }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DELAY
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1e }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DELAY
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1e }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DELAY
{ P_S_DELAY, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1e }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_DELAY
// --[ 0xb0-0xb7 ]-----------------------------------------------------------------------------
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x18 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_PHASE
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x18 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_PHASE
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x18 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_PHASE
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x18 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO1_PHASE
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1d }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_PHASE
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1d }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_PHASE
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1d }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_PHASE
{ P_S_PHASE, P_N_LFO_BL, P_M_OSC_BL_8, 0x60+0x1d }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_LFO2_PHASE
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
// --[ 0xc0-0xc3 ]-----------------------------------------------------------------------------
{ P_S_DEPTH_P, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x23 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_P
{ P_S_DEPTH_P, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x23 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_P
{ P_S_DEPTH_P, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x23 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_P
{ P_S_DEPTH_P, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x23 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_P
// --[ 0xc4-0xc7 ]-----------------------------------------------------------------------------
{ P_S_DEPTH_PW, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x24 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_PW
{ P_S_DEPTH_PW, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x24 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_PW
{ P_S_DEPTH_PW, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x24 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_PW
{ P_S_DEPTH_PW, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x24 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_PW
// --[ 0xc8-0xcb ]-----------------------------------------------------------------------------
{ P_S_DEPTH_F, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
{ P_S_DEPTH_F, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
{ P_S_DEPTH_F, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
{ P_S_DEPTH_F, P_N_ENV_BL, P_M_OSC_BL_PM8, 0x60+0x25 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DEPTH_F
// --[ 0xcc-0xcf ]-----------------------------------------------------------------------------
{ P_S_ATTACK, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x26 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_ATTACK
{ P_S_ATTACK, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x26 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_ATTACK
{ P_S_ATTACK, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x26 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_ATTACK
{ P_S_ATTACK, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x26 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_ATTACK
// --[ 0xd0-0xd3 ]-----------------------------------------------------------------------------
{ P_S_DECAY, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
{ P_S_DECAY, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
{ P_S_DECAY, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
{ P_S_DECAY, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x27 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY
// --[ 0xd4-0xd7 ]-----------------------------------------------------------------------------
{ P_S_SUSTAIN, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x28 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_SUSTAIN
{ P_S_SUSTAIN, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x28 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_SUSTAIN
{ P_S_SUSTAIN, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x28 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_SUSTAIN
{ P_S_SUSTAIN, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x28 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_SUSTAIN
// --[ 0xd8-0xdb ]-----------------------------------------------------------------------------
{ P_S_RELEASE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x29 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_RELEASE
{ P_S_RELEASE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x29 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_RELEASE
{ P_S_RELEASE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x29 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_RELEASE
{ P_S_RELEASE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x29 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_RELEASE
// --[ 0xdc-0xdf ]-----------------------------------------------------------------------------
{ P_S_CURVE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x2a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_CURVE
{ P_S_CURVE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x2a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_CURVE
{ P_S_CURVE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x2a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_CURVE
{ P_S_CURVE, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x2a }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_CURVE
// --[ 0xe0-0xe3 ]-----------------------------------------------------------------------------
{ P_S_DECAY_A, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x30 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY_A
{ P_S_DECAY_A, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x30 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY_A
{ P_S_DECAY_A, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x30 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY_A
{ P_S_DECAY_A, P_N_ENV_BL, P_M_OSC_BL_8, 0x60+0x30 }, // SID_Ix_B_S1V1_BASE+SID_Ix_B_Vx_ENV_DECAY_A
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
// --[ 0xf0-0xff ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0 },
},
// SID_SE_DRUM
{
//left string right string mod function register/number
// --[ 0x00-0x03 ]-----------------------------------------------------------------------------
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_VOLUME, P_N_NOP, P_M_7, 0x52 }, // SID_Ix_L_VOLUME
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0x04-0x07 ]-----------------------------------------------------------------------------
{ P_S_CUTOFF, P_N_FIL, P_M_FIL12, 0x54+1 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
{ P_S_RESONANCE, P_N_FIL, P_M_FIL8, 0x54+3 }, // SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
// --[ 0x08-0x0f ]-----------------------------------------------------------------------------
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+0*5+0 }, // SID_Ix_P_K1_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+1*5+0 }, // SID_Ix_P_K2_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+2*5+0 }, // SID_Ix_P_K3_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+3*5+0 }, // SID_Ix_P_K4_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+4*5+0 }, // SID_Ix_P_K5_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+5*5+0 }, // SID_Ix_P_KV_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+6*5+0 }, // SID_Ix_P_KP_BASE+SID_Ix_Px_VALUE
{ P_S_KNOB, P_N_KNOB, P_M_8, 0x18+7*5+0 }, // SID_Ix_P_KA_BASE+SID_Ix_Px_VALUE
// --[ 0x10-0x17 ]-----------------------------------------------------------------------------
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x40 }, // SID_Ix_EXT_PAR1_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x42 }, // SID_Ix_EXT_PAR2_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x44 }, // SID_Ix_EXT_PAR3_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x46 }, // SID_Ix_EXT_PAR4_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x48 }, // SID_Ix_EXT_PAR5_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4a }, // SID_Ix_EXT_PAR6_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4c }, // SID_Ix_EXT_PAR7_L
{ P_S_EXT_AOUT, P_N_EXT, P_M_PAR12, 0x4e }, // SID_Ix_EXT_PAR8_L
// --[ 0x18-0x1f ]-----------------------------------------------------------------------------
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
{ P_S_EXT_SWITCH, P_N_EXT, P_M_CUSTOM_SW, 0x14 }, // SID_Ix_CUSTOM_SW
// --[ 0x20-0x2f ]-----------------------------------------------------------------------------
{ P_S_MODEL, P_N_DRM_CUR, P_M_DRM_8, 0x60+1 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_MODEL
{ P_S_ATTACK, P_N_DRM_CUR, P_M_DRM_4U, 0x60+2 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_AD
{ P_S_DECAY, P_N_DRM_CUR, P_M_DRM_4L, 0x60+2 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_AD
{ P_S_SUSTAIN, P_N_DRM_CUR, P_M_DRM_4U, 0x60+3 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_SR
{ P_S_RELEASE, P_N_DRM_CUR, P_M_DRM_4L, 0x60+3 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_SR
{ P_S_FINETUNE, P_N_DRM_CUR, P_M_DRM_PM8, 0x60+4 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_TUNE
{ P_S_GATELENGTH, P_N_DRM_CUR, P_M_DRM_PM8, 0x60+5 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_PAR1
{ P_S_SPEED, P_N_DRM_CUR, P_M_DRM_PM8, 0x60+6 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_PAR2
{ P_S_PAR3, P_N_DRM_CUR, P_M_DRM_PM8, 0x60+7 }, // SID_Ix_D_I1_BASE+SID_Ix_Dx_PAR3
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },
{ P_S_NOP, P_N_NOP, P_M_NOP, 0x00 },