Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ license = "GPL"

[workspace.dependencies]
devout = "0.2"
hatmil = "1.0"
hatmil = "1.3"

[profile.release]
panic = "abort"
Expand Down
32 changes: 16 additions & 16 deletions staverator/src/bar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use std::fmt;

use devout::{Tag, log};
use hatmil::{
Page,
Tree,
svg::{Path, Rect, Use},
};
use scof::{Cursor, Scof, Steps};
Expand Down Expand Up @@ -154,9 +154,9 @@ impl BarElem {
let y = self.offset_y(self.stave.steps_middle_c) + ofs;
let y_bottom = self.offset_y(self.stave.steps_stave_bottom()) + ofs;
let height = y_bottom - y;
let mut elem = Page::new();
elem.frag::<Rect>().x(x).y(y).width(width).height(height);
self.elements.push(String::from(elem));
let mut tree = Tree::new();
tree.root::<Rect>().x(x).y(y).width(width).height(height);
self.elements.push(String::from(tree));
}

/// Get Y position from steps and offset
Expand Down Expand Up @@ -251,9 +251,9 @@ impl BarElem {
}
old_x = Some(x);
}
let mut elem = Page::new();
elem.frag::<Path>().d(String::from(d));
self.elements.push(String::from(elem));
let mut tree = Tree::new();
tree.root::<Path>().d(String::from(d));
self.elements.push(String::from(tree));
}

/// Add stems and either flags or beam elements for short notes.
Expand Down Expand Up @@ -319,9 +319,9 @@ impl BarElem {
let y = y - (meta.stave_line_thickness / 2) + count * dir_step;
let width = head_width + meta.ledger_line_extension * 2;
let height = meta.stave_line_thickness;
let mut elem = Page::new();
elem.frag::<Rect>().x(x).y(y).width(width).height(height);
self.elements.push(String::from(elem));
let mut tree = Tree::new();
tree.root::<Rect>().x(x).y(y).width(width).height(height);
self.elements.push(String::from(tree));
count += 2;
}
}
Expand All @@ -338,15 +338,15 @@ impl BarElem {
let height = stem_length;
let rx = meta.stem_thickness / 2;
let ry = meta.stem_thickness;
let mut elem = Page::new();
elem.frag::<Rect>()
let mut tree = Tree::new();
tree.root::<Rect>()
.x(x)
.y(y)
.width(width)
.height(height)
.rx(rx)
.ry(ry);
self.elements.push(String::from(elem));
self.elements.push(String::from(tree));
}

/// Add `use` element for a whole measure rest
Expand All @@ -370,12 +370,12 @@ impl BarElem {

/// Add use element
fn add_use(&mut self, glyph: Glyph, x: i32, y: i32) {
let mut elem = Page::new();
elem.frag::<Use>()
let mut tree = Tree::new();
tree.root::<Use>()
.x(x)
.y(y)
.href(format!("#{:x}", u16::from(glyph)));
self.elements.push(String::from(elem));
self.elements.push(String::from(tree));
}

/// Add clefs
Expand Down
14 changes: 7 additions & 7 deletions staverator/src/rhythmic_spacing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
use std::collections::VecDeque;

use hatmil::{
Page,
Tree,
svg::{Path, Rect},
};
use ranch::RangedU16;
Expand Down Expand Up @@ -186,22 +186,22 @@ impl BarElem {
for i in 0..engraver.stave_voicing.len().try_into().unwrap() {
let y = self.offset_y(self.stave.steps_middle_c);
let d = self.stave.path(engraver.meta, y, bar_width, ymargin * i);
let mut elem = Page::new();
elem.frag::<Path>().d(d);
self.elements.push(String::from(elem));
let mut tree = Tree::new();
tree.root::<Path>().d(d);
self.elements.push(String::from(tree));
self.add_barline(engraver.meta, bar_width, ymargin * i);
}

if let Some((x, w)) = engraver.cursor_span {
let mut elem = Page::new();
elem.frag::<Rect>()
let mut tree = Tree::new();
tree.root::<Rect>()
.id("cursor")
.x(x)
.y(0)
.width(w)
.height(self.height())
.fill("#FF9AF0");
self.elements.insert(0, String::from(elem));
self.elements.insert(0, String::from(tree));
}

// Return calculated physical bar width.
Expand Down
28 changes: 14 additions & 14 deletions web/src/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use std::task::Context;

use devout::{Tag, log};
use hatmil::{
Page,
Tree,
svg::{Defs, G},
};
use human::{Input, Key};
Expand Down Expand Up @@ -100,16 +100,16 @@ impl State {

/// Render the score
pub fn render_score(&mut self) {
let mut elem = Page::new();
let mut defs = elem.frag::<Defs>();
let mut tree = Tree::new();
let mut defs = tree.root::<Defs>();
// render each glyph as a path in defs section
for (id, path) in self.meta.glyph_paths.iter().enumerate() {
defs.path().id(format!("{id:x}")).d(path).close();
}
let mut score = String::from(elem);
let mut elem = Page::new();
elem.frag::<G>().id("page");
score.push_str(&String::from(elem));
let mut score = String::from(tree);
let mut tree = Tree::new();
tree.root::<G>().id("page");
score.push_str(&String::from(tree));
self.screen.set_svg(&score);
self.resize(self.screen.size()).unwrap();
self.render_page();
Expand Down Expand Up @@ -278,9 +278,9 @@ impl State {
let mut offset_x = STAVE_SPACE; // Stave Margin
let mut measure = 0;
loop {
let mut elem = Page::new();
let width = self.render_measure(measure, offset_x, &mut elem);
html.push_str(&String::from(elem));
let mut tree = Tree::new();
let width = self.render_measure(measure, offset_x, &mut tree);
html.push_str(&String::from(tree));
log!(RENDER, "measure: {} width {}", measure, width);
offset_x += width;
if offset_x >= (self.width * STAVE_SPACE as f32) as i32 {
Expand All @@ -298,13 +298,13 @@ impl State {
&self,
measure: u16,
offset_x: i32,
elem: &mut Page,
tree: &mut Tree,
) -> i32 {
let offset_y = 0;
let bar_id = &format!("m{}", measure);
let trans = &format!("translate({} {})", offset_x, offset_y);

let mut g = elem.frag::<G>();
let mut g = tree.root::<G>();
g.id(bar_id).transform(trans);

let high = "C4".parse::<Pitch>().unwrap().visual_distance();
Expand All @@ -319,8 +319,8 @@ impl State {
&self.program.cursor,
measure,
);
elem.raw(bar.to_string());
elem.close(); // g
tree.raw(bar.to_string());
tree.close(); // g
bar.width
}
}
Loading