加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转]开源五线谱打谱软件MuseScore代码分析之五:MuseScore 的长度单位

(2013-03-25 09:52:04)
分类: MuseScore
排版离不开位置的计算,MuseScore 是如何表示这些位置的呢?
MuseScore 里和长度相关的单位有这样几种:毫米,谱线间距,磅,点等。
几个常用的量:
MM                           // 毫米
PDPI        = 96  / 120      // 屏幕分辨率
DPI         = 600            // 打印机的逻辑分辨率,相当于 Qt 的 高分辨率打印机的精度
INCH        = 25.4 MM
PPI         = 72.0           // 每英寸对应的磅数,磅是印刷行业的专用单位,见:http://zh.wikipedia.org/zh/點_(印刷)
DPMM        = DPI / INCH = 600 / 25.4 = 23.622  // 每英寸上的点数,由于 DPI 是针对打印的,所以该值也是针对打印机说的
spatium     = 1.764 MM        // 两条相邻的谱线间距,这是一个变量,这是初始默认值,可在设置对话框里修改

MuseScore 中有大量表示排版位置的值,它们的单位都线间距 spatium,简写为 sp。
使用 spatium 作为计算单位对打谱软件有很大好处。在排版时,最多遇到的是某个元素该放在哪条线、哪个间的位置上。比如在高音谱表里,要添加一个 F 音(即第一间),已知谱表左上角的位置,那么直接加上 3 倍 sp 就是该音的 Y 方向位置,要是用毫米,就晕菜了。为了统一起见,排版时不仅 Y 方向使用 sp 做单位,X 方向也一样。
音符的符头高度是 1 sp,这样音符在间位置时,正好和上下谱线相切,看起来最美观。谱线宽度是 0.08 sp,代码中查找 ST_staffLineWidth。新建的空白乐谱看起来所有的线都差不多,实际值也确实差不多,上下加线(ST_ledgerLineWidth 为 0.12 sp),单小节线(ST_barWidth 为 0.16 sp)。
MuseScore 文件以 xml 形式表示,

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有