Skip to content

Commit 6a64cda

Browse files
author
kumatan
committed
TAG717 2024/01/20
ほぼ全てのChip:位相の効果がDelayを無視していたのを修正
1 parent 8a710a5 commit 6a64cda

30 files changed

+125
-96
lines changed

mml2vgm/CHANGE.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
�X�V����
2+
TAG717 2024/01/20
3+
�قڑS�Ă�Chip:�ʑ��̌��ʂ�Delay�𖳎����Ă����̂��C��
4+
25
TAG716 2024/01/14
36
MDSound�̍����ւ�
47

mml2vgm/Core/chips/AY8910.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ public void SetSsgVolume(MML mml, partPage page)
462462
if (!page.lfo[lfo].sw) continue;
463463
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
464464

465-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
465+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
466466
}
467467

468468
if (page.varpeggioMode)
@@ -512,7 +512,7 @@ public void SetSsgFNum(partPage page, MML mml)
512512
{
513513
continue;
514514
}
515-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
515+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
516516
}
517517

518518
f = Common.CheckRange(f, 0, 0xfff);
@@ -617,7 +617,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
617617
continue;
618618

619619
pl.isEnd = false;
620-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
620+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
621+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
621622
pl.waitCounter = pl.param[0];
622623
pl.direction = pl.param[2] < 0 ? -1 : 1;
623624
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/C140.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ public override void SetFNum(partPage page, MML mml)
678678
{
679679
continue;
680680
}
681-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
681+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
682682
}
683683

684684
f = Common.CheckRange(f, 0, 0xffff);
@@ -746,7 +746,7 @@ public override void SetVolume(partPage page, MML mml)
746746
{
747747
continue;
748748
}
749-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
749+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
750750
}
751751

752752
if (page.varpeggioMode)
@@ -796,7 +796,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
796796
continue;
797797

798798
pl.isEnd = false;
799-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
799+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
800+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
800801
pl.waitCounter = pl.param[0];
801802
pl.direction = pl.param[2] < 0 ? -1 : 1;
802803
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/C352.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ public override void SetFNum(partPage page, MML mml)
452452
{
453453
continue;
454454
}
455-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
455+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
456456
}
457457

458458
f = Common.CheckRange(f, 0, 0xffff);
@@ -582,7 +582,7 @@ public override void SetVolume(partPage page, MML mml)
582582
{
583583
continue;
584584
}
585-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
585+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
586586
}
587587

588588
if (page.varpeggioMode)
@@ -639,7 +639,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
639639
continue;
640640

641641
pl.isEnd = false;
642-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
642+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
643+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
643644
pl.waitCounter = pl.param[0];
644645
pl.direction = pl.param[2] < 0 ? -1 : 1;
645646
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/DMG.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ public override void SetVolume(partPage page, MML mml)
239239
if (!page.lfo[lfo].sw) continue;
240240
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
241241

242-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
242+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
243243
}
244244

245245
if (page.varpeggioMode)
@@ -274,7 +274,7 @@ public void SetSsgFNum(partPage page, MML mml)
274274
{
275275
continue;
276276
}
277-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
277+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
278278
}
279279

280280
if (page.Type == enmChannelType.Pulse || page.Type == enmChannelType.Triangle)
@@ -350,7 +350,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
350350
continue;
351351

352352
pl.isEnd = false;
353-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
353+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
354+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
354355
pl.waitCounter = pl.param[0];
355356
pl.direction = pl.param[2] < 0 ? -1 : 1;
356357
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/Gigatron.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
7373
if (pl.param[5] != 1) continue;
7474

7575
pl.isEnd = false;
76-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
76+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
77+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
7778
pl.waitCounter = pl.param[0];
7879
pl.direction = pl.param[2] < 0 ? -1 : 1;
7980
pl.depthWaitCounter = pl.param[7];
@@ -102,7 +103,7 @@ public override void SetVolume(partPage page, MML mml)
102103
if (!page.lfo[lfo].sw) continue;
103104
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
104105

105-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
106+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
106107
}
107108

108109
if (page.varpeggioMode)
@@ -152,7 +153,7 @@ public override void SetFNum(partPage page, MML mml)
152153
{
153154
continue;
154155
}
155-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
156+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
156157
}
157158

158159
f = Common.CheckRange(f, 0, 0xffff);

mml2vgm/Core/chips/HuC6280.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ private static int makeVolume(partPage page )
569569
{
570570
continue;
571571
}
572-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
572+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
573573
}
574574

575575
if (page.varpeggioMode)
@@ -611,7 +611,7 @@ public override void SetFNum(partPage page, MML mml)
611611
{
612612
continue;
613613
}
614-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
614+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
615615
//Console.WriteLine("{0} {1}", page.lfo[lfo].value , page.lfo[lfo].param[6]);
616616
}
617617

@@ -671,7 +671,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
671671
if (pl.param[5] != 1) continue;
672672

673673
pl.isEnd = false;
674-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
674+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
675+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
675676
pl.waitCounter = pl.param[0];
676677
pl.direction = pl.param[2] < 0 ? -1 : 1;
677678
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/K051649.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public void SetSsgVolume(MML mml, partPage page)
178178
if (!page.lfo[lfo].sw) continue;
179179
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
180180

181-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
181+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
182182
}
183183

184184
if (page.varpeggioMode)
@@ -218,7 +218,7 @@ public void SetSsgFNum(partPage page)
218218
{
219219
continue;
220220
}
221-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
221+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
222222
}
223223

224224
f = Common.CheckRange(f, 0, 0xfff);
@@ -281,7 +281,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
281281
continue;
282282

283283
pl.isEnd = false;
284-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
284+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
285+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
285286
pl.waitCounter = pl.param[0];
286287
pl.direction = pl.param[2] < 0 ? -1 : 1;
287288
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/K053260.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ public override void SetFNum(partPage page, MML mml)
505505
{
506506
continue;
507507
}
508-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
508+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
509509
}
510510

511511
f = Common.CheckRange(f, 0, 0xfff);
@@ -576,7 +576,7 @@ public override void SetVolume(partPage page, MML mml)
576576
{
577577
continue;
578578
}
579-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
579+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
580580
}
581581

582582
if (page.varpeggioMode)
@@ -611,7 +611,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
611611
continue;
612612

613613
pl.isEnd = false;
614-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
614+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
615+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
615616
pl.waitCounter = pl.param[0];
616617
pl.direction = pl.param[2] < 0 ? -1 : 1;
617618
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/MidiGM.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ public override void SetVolume(partPage page, MML mml)
409409
if (!page.lfo[lfo].sw) continue;
410410
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
411411

412-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
412+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
413413
}
414414

415415
if (page.varpeggioMode)
@@ -448,7 +448,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
448448
continue;
449449

450450
pl.isEnd = false;
451-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
451+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
452+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
452453
pl.waitCounter = pl.param[0];
453454
pl.direction = pl.param[2] < 0 ? -1 : 1;
454455
pl.depthWaitCounter = pl.param[7];
@@ -639,7 +640,7 @@ public override void MultiChannelCommand(MML mml)
639640
{
640641
continue;
641642
}
642-
page.lfoBend += page.lfo[lfo].value + page.lfo[lfo].param[6];
643+
page.lfoBend += page.lfo[lfo].value + page.lfo[lfo].phase;
643644
}
644645

645646
if (page.pitchBend != (page.bendWaitCounter == -1 ? page.tieBend : 0) + page.portaBend + page.lfoBend + page.detune)

mml2vgm/Core/chips/NES.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ public override void SetVolume(partPage page, MML mml)
391391
if (!page.lfo[lfo].sw) continue;
392392
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
393393

394-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
394+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
395395
}
396396

397397
if (page.varpeggioMode)
@@ -426,7 +426,7 @@ public void SetSsgFNum(partPage page, MML mml)
426426
{
427427
continue;
428428
}
429-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
429+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
430430
}
431431

432432
if (page.Type == enmChannelType.Pulse || page.Type == enmChannelType.Triangle)
@@ -512,7 +512,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
512512
continue;
513513

514514
pl.isEnd = false;
515-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
515+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
516+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
516517
pl.waitCounter = pl.param[0];
517518
pl.direction = pl.param[2] < 0 ? -1 : 1;
518519
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/QSound.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ public override void SetFNum(partPage page, MML mml)
447447
{
448448
continue;
449449
}
450-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
450+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
451451
}
452452

453453
f = Common.CheckRange(f, 0, 0xffff);
@@ -550,7 +550,7 @@ public override void SetVolume(partPage page, MML mml)
550550
{
551551
continue;
552552
}
553-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
553+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
554554
}
555555

556556
if (page.varpeggioMode)
@@ -584,7 +584,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
584584
continue;
585585

586586
pl.isEnd = false;
587-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
587+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
588+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
588589
pl.waitCounter = pl.param[0];
589590
pl.direction = pl.param[2] < 0 ? -1 : 1;
590591
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/RF5C164.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ public override void SetVolume(partPage page, MML mml)
502502
{
503503
continue;
504504
}
505-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
505+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
506506
}
507507

508508
if (page.varpeggioMode)
@@ -547,7 +547,7 @@ public override void SetFNum(partPage page, MML mml)
547547
{
548548
continue;
549549
}
550-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
550+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
551551
}
552552

553553
f = Common.CheckRange(f, 0, 0xffff);
@@ -590,7 +590,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
590590
continue;
591591

592592
pl.isEnd = false;
593-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
593+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
594+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
594595
pl.waitCounter = pl.param[0];
595596
pl.direction = pl.param[2] < 0 ? -1 : 1;
596597
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/SN76489.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ public override void SetFNum(partPage page, MML mml)
412412
{
413413
continue;
414414
}
415-
f -= page.lfo[lfo].value + page.lfo[lfo].param[6];//param[6] : 位相
415+
f -= page.lfo[lfo].value + page.lfo[lfo].phase;//param[6] : 位相
416416
}
417417

418418
if (page.octaveNow < 1)
@@ -495,7 +495,7 @@ public override void SetVolume(partPage page, MML mml)
495495
if (!page.lfo[lfo].sw) continue;
496496
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
497497

498-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
498+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
499499
}
500500

501501
if (page.varpeggioMode)
@@ -551,7 +551,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
551551
continue;
552552

553553
pl.isEnd = false;
554-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
554+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
555+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
555556
pl.waitCounter = pl.param[0];
556557
pl.direction = pl.param[2] < 0 ? -1 : 1;
557558
pl.depthWaitCounter = pl.param[7];

mml2vgm/Core/chips/VRC6.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ public override void SetLfoAtKeyOn(partPage page, MML mml)
9292
if (pl.param[5] != 1) continue;
9393

9494
pl.isEnd = false;
95-
pl.value = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
95+
pl.value = 0;// (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
96+
pl.phase = (pl.param[0] == 0) ? pl.param[6] : 0;//ディレイ中は振幅補正は適用されない
9697
pl.waitCounter = pl.param[0];
9798
pl.direction = pl.param[2] < 0 ? -1 : 1;
9899
pl.depthWaitCounter = pl.param[7];
@@ -121,7 +122,7 @@ public override void SetVolume(partPage page, MML mml)
121122
if (!page.lfo[lfo].sw) continue;
122123
if (page.lfo[lfo].type != eLfoType.Tremolo) continue;
123124

124-
vol += page.lfo[lfo].value + page.lfo[lfo].param[6];
125+
vol += page.lfo[lfo].value + page.lfo[lfo].phase;
125126
}
126127

127128
if (page.varpeggioMode)
@@ -177,7 +178,7 @@ public override void SetFNum(partPage page, MML mml)
177178
{
178179
continue;
179180
}
180-
f += page.lfo[lfo].value + page.lfo[lfo].param[6];
181+
f += page.lfo[lfo].value + page.lfo[lfo].phase;
181182
}
182183

183184
f = Common.CheckRange(f, 0, 0xfff);

0 commit comments

Comments
 (0)