| 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 |
|
| 24 |
1.1 2.2 |
|
| 29 |
1.1 |
|
| 34 |
1.1 |