MidiCompilerContext.java

1
package com.github.dakusui.symfonion.core;
2
3
import com.github.dakusui.symfonion.utils.Fraction;
4
import com.github.dakusui.symfonion.song.Groove;
5
import com.github.dakusui.symfonion.song.Pattern;
6
import com.github.dakusui.symfonion.song.Stroke;
7
8
import javax.sound.midi.Track;
9
10
public record MidiCompilerContext(Track track, int channel, Pattern.Parameters params, Fraction relativeStrokePositionInBar,
11
                                  long barPositionInTicks, Groove groove) {
12
  
13
  // this.position = position;
14
  // this.grooveAccent = grooveAccent;
15
  // this.strokeLengthInTicks = strokeLengthInTicks;
16
  
17
  public long getStrokeLengthInTicks(Stroke stroke) {
18 1 1. getStrokeLengthInTicks : replaced long return with 0 for com/github/dakusui/symfonion/core/MidiCompilerContext::getStrokeLengthInTicks → SURVIVED
    return convertRelativePositionInStrokeToAbsolutePosition(stroke.length());
19
  }
20
  
21
  public long convertRelativePositionInStrokeToAbsolutePosition(Fraction relativePositionInStroke) {
22
    Groove.Unit unit = resolveRelativePositionInStroke(relativePositionInStroke);
23
    long relativePositionInBarInTicks = unit.pos();
24 2 1. convertRelativePositionInStrokeToAbsolutePosition : replaced long return with 0 for com/github/dakusui/symfonion/core/MidiCompilerContext::convertRelativePositionInStrokeToAbsolutePosition → KILLED
2. convertRelativePositionInStrokeToAbsolutePosition : Replaced long addition with subtraction → KILLED
    return barPositionInTicks() + relativePositionInBarInTicks;
25
  }
26
  
27
  public int getGrooveAccent(Fraction relPosInStroke) {
28
    Groove.Unit unit = resolveRelativePositionInStroke(relPosInStroke);
29 1 1. getGrooveAccent : replaced int return with 0 for com/github/dakusui/symfonion/core/MidiCompilerContext::getGrooveAccent → SURVIVED
    return unit.accent();
30
  }
31
  
32
  private Groove.Unit resolveRelativePositionInStroke(
33
      Fraction relativePositionInStroke) {
34 1 1. resolveRelativePositionInStroke : replaced return value with null for com/github/dakusui/symfonion/core/MidiCompilerContext::resolveRelativePositionInStroke → KILLED
    return this.groove().resolve(
35
        Fraction.add(
36
            this.relativeStrokePositionInBar(),
37
            relativePositionInStroke
38
        )
39
    );
40
  }
41
}

Mutations

18

1.1
Location : getStrokeLengthInTicks
Killed by : none
replaced long return with 0 for com/github/dakusui/symfonion/core/MidiCompilerContext::getStrokeLengthInTicks → SURVIVED

24

1.1
Location : convertRelativePositionInStrokeToAbsolutePosition
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.exercise[7: POSITIVE: given: 'sixteenth note with short gate (0.25)' when: 'compile' then: 'number of events and tick length seem ok'](com.github.dakusui.symfonion.tests.MidiCompilerTest)
replaced long return with 0 for com/github/dakusui/symfonion/core/MidiCompilerContext::convertRelativePositionInStrokeToAbsolutePosition → KILLED

2.2
Location : convertRelativePositionInStrokeToAbsolutePosition
Killed by : com.github.dakusui.symfonion.tests.MidiCompilerTest.exercise[7: POSITIVE: given: 'sixteenth note with short gate (0.25)' when: 'compile' then: 'number of events and tick length seem ok'](com.github.dakusui.symfonion.tests.MidiCompilerTest)
Replaced long addition with subtraction → KILLED

29

1.1
Location : getGrooveAccent
Killed by : none
replaced int return with 0 for com/github/dakusui/symfonion/core/MidiCompilerContext::getGrooveAccent → SURVIVED

34

1.1
Location : resolveRelativePositionInStroke
Killed by : com.github.dakusui.symfonion.tests.cli.subcommands.CompileTest.test(com.github.dakusui.symfonion.tests.cli.subcommands.CompileTest)
replaced return value with null for com/github/dakusui/symfonion/core/MidiCompilerContext::resolveRelativePositionInStroke → KILLED

Active mutators

Tests examined


Report generated by PIT 1.15.3