The 2 most annoying bugs are segfaults, infinite loops, and *off-by-one* errors.
This commit is contained in:
parent
fb3fc45a09
commit
564b649204
4 changed files with 10 additions and 10 deletions
|
@ -11,7 +11,7 @@ namespace MusicBoxConverter
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The height of a strip for this music box, in millimetres.
|
/// The height of a strip for this music box, in millimetres.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public float StripHeightMm = 58f;
|
public float StripHeightMm = 58.8f;
|
||||||
public List<string> ValidNotes { get; private set; }
|
public List<string> ValidNotes { get; private set; }
|
||||||
|
|
||||||
public Note LowestNote {
|
public Note LowestNote {
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace MusicBoxConverter
|
||||||
// Set the scale factor based on the strip height of the music box
|
// Set the scale factor based on the strip height of the music box
|
||||||
scaleFactor = new Vector2(
|
scaleFactor = new Vector2(
|
||||||
scaleFactor.X,
|
scaleFactor.X,
|
||||||
MusicBox.StripHeightMm / MusicBox.NoteCount
|
MusicBox.StripHeightMm / (MusicBox.NoteCount-1)
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach(Note note in AllNotes()) {
|
foreach(Note note in AllNotes()) {
|
||||||
|
@ -60,7 +60,7 @@ namespace MusicBoxConverter
|
||||||
|
|
||||||
public void Output(string destinationFilename)
|
public void Output(string destinationFilename)
|
||||||
{
|
{
|
||||||
Vector2 area = new Vector2(TrackLength, MusicBox.NoteCount).Multiply(scaleFactor);
|
Vector2 area = new Vector2(TrackLength, MusicBox.NoteCount-1).Multiply(scaleFactor);
|
||||||
Vector2 size = area.Add(offset.Multiply(2));
|
Vector2 size = area.Add(offset.Multiply(2));
|
||||||
|
|
||||||
SvgWriter svg = new SvgWriter(
|
SvgWriter svg = new SvgWriter(
|
||||||
|
@ -72,10 +72,10 @@ namespace MusicBoxConverter
|
||||||
for(float i = 0; i < area.Y; i += scaleFactor.Y)
|
for(float i = 0; i < area.Y; i += scaleFactor.Y)
|
||||||
{
|
{
|
||||||
Vector2 start = offset.Add(new Vector2(0, i));
|
Vector2 start = offset.Add(new Vector2(0, i));
|
||||||
svg.WriteLine(start, start.Add(new Vector2(area.X, 0)), "darkgreen", 1);
|
svg.WriteLine(start, start.Add(new Vector2(area.X, 0)), "darkgreen", 0.75f);
|
||||||
}
|
}
|
||||||
|
|
||||||
svg.WriteRectangle(offset, area);
|
svg.WriteRectangle(offset, area, "red", 0.75f);
|
||||||
|
|
||||||
foreach(Note note in AllNotes())
|
foreach(Note note in AllNotes())
|
||||||
{
|
{
|
||||||
|
@ -83,7 +83,7 @@ namespace MusicBoxConverter
|
||||||
svg.WriteCircle(
|
svg.WriteCircle(
|
||||||
new Vector2(
|
new Vector2(
|
||||||
offset.X + note.Time * scaleFactor.X,
|
offset.X + note.Time * scaleFactor.X,
|
||||||
offset.Y + (MusicBox.NoteCount - MusicBox.NoteToBoxNumber(note)) * scaleFactor.Y
|
offset.Y + ((MusicBox.NoteCount-1) - MusicBox.NoteToBoxNumber(note)) * scaleFactor.Y
|
||||||
),
|
),
|
||||||
holeSize // radius
|
holeSize // radius
|
||||||
);
|
);
|
||||||
|
|
|
@ -9,8 +9,8 @@ namespace MusicBoxConverter
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
MusicBoxScoreGenerator converter = new MusicBoxScoreGenerator(
|
MusicBoxScoreGenerator converter = new MusicBoxScoreGenerator(
|
||||||
"/home/sbrl/Music/Sheets/HappyBirthday.midi",
|
//"/home/sbrl/Music/Sheets/HappyBirthday.midi",
|
||||||
//"/tmp/Scale.midi",
|
"/tmp/Scale.midi",
|
||||||
MusicBox.Note30
|
MusicBox.Note30
|
||||||
);
|
);
|
||||||
converter.Output("/tmp/test.svg");
|
converter.Output("/tmp/test.svg");
|
||||||
|
|
|
@ -53,7 +53,7 @@ namespace MusicBoxConverter
|
||||||
xml.Close();
|
xml.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void WriteLine(Vector2 start, Vector2 end, string strokeStyle = "darkgreen", int strokeWidth = 3)
|
public void WriteLine(Vector2 start, Vector2 end, string strokeStyle = "darkgreen", float strokeWidth = 3)
|
||||||
{
|
{
|
||||||
xml.WriteStartElement("line");
|
xml.WriteStartElement("line");
|
||||||
xml.WriteAttributeString("x1", $"{start.X}{UnitSuffix}");
|
xml.WriteAttributeString("x1", $"{start.X}{UnitSuffix}");
|
||||||
|
@ -85,7 +85,7 @@ namespace MusicBoxConverter
|
||||||
xml.WriteEndElement();
|
xml.WriteEndElement();
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
public void WriteRectangle(Vector2 position, Vector2 size, string strokeStyle = "red", int strokeWidth = 3)
|
public void WriteRectangle(Vector2 position, Vector2 size, string strokeStyle = "red", float strokeWidth = 3)
|
||||||
{
|
{
|
||||||
xml.WriteStartElement("rect");
|
xml.WriteStartElement("rect");
|
||||||
xml.WriteAttributeString("x", $"{position.X}{UnitSuffix}");
|
xml.WriteAttributeString("x", $"{position.X}{UnitSuffix}");
|
||||||
|
|
Loading…
Reference in a new issue