Verovio简介及在Windows10和Ubuntu 22.04上编译过程

      Verovio是一个快速、便携、轻量级的开源库,用于将音乐编码倡议(Music Encoding Initiative(MEI))数字乐谱雕刻到SVG图像中。Verovio还包含即时转换器(on-the-fly converters)用于渲染Plaine & Easie Code、Humdrum、Musedata、MusicXML、EsAC和ABC数字乐谱。源代码地址:https://github.com/rism-digital/verovio,最新发布版本为Version 4.1.0,采用C++17标准编写,而最新的开发分支采用C++20标准编写。它的license为LGPLv3。Verovio已被多个项目或机构采用。

      Verovio是以荷兰音乐雕刻家西蒙娜·维罗维奥(Simone Verovio)的名字命名的。Verovio由RISM(Répertoire International des Sources Musicales)数字中心在瑞士国家科学基金会(Swiss National Science Foundation)的支持下开发。该项目得到了数字莫扎特版(Digital Mozart Edition)的专门财政支持,这是萨尔茨堡莫扎特基金会和加利福尼亚州洛斯阿尔托斯帕卡德人文学院的联合项目。
      Verovio适用于台式电脑,也适用于平板电脑和移动设备。Verovio还为其他乐谱格式提供基本支持,例如MusicXML导入和MIDI输出。
      Verovio设计为可在广泛的技术环境(C++、JavaScript、Python)中使用。Verovio可以编译为独立的命令行工具、也可以用作应用程序(Qt、Python)的已编译音乐渲染库、或也可以使用Emscripten LLVM-to-JavaScript编译器将Verovio编译为Javascript。
      Verovio使用标准音乐字体布局(Standard Music Font Layout(SMuFL))规范,并且可以更改字体以个性化输出。
      Verovio和libmei版本
      (1).从Verovio 2.x.x开始,计划为使用MEI稳定版本的Verovio版本提供偶数版本号,为使用MEI开发版本的版本提供奇数版本号。这意味着一旦 MEI 5.0发布,Verovio将转向版本4.x.x。较新版本的Verovio仍支持较旧版本的MEI。
      (2).Verovio 4.0已发布,这是基于MEI 5.0的第一个版本,是该项目的一个重要里程碑。MEI 5.0仍将是Verovio 4.x其他版本的基础。与往常一样,此版本包含各种改进。
      (3).Verovio 4.0的发布遵循自Verovio 2.0以来采用的发布方案,即偶数版本号表示Verovio版本仅实现MEI稳定版本中提供的功能,奇数版本号表示基于MEI开发版本的版本。当MEI社区将转向MEI 6.0的开发,并且一些新的MEI功能将在仍处于MEI开发阶段的情况下实现到Verovio中时,Verovio将转向5.0。
      libmei源码地址:https://github.com/music-encoding/music-encoding

      Verovio在Windows10上的编译
      1.从clone源码,并切换到4.1.0版本,执行如下命令:

git clone https://github.com/rism-digital/verovio
git checkout version-4.1.0

      2.为了可以正常编译过,在Windows上需要临时修改些文件,如src/harm.cpp;

      3.用管理员权限打开x64 Native Tools Command Prompt for VS2022,编译64位release可执行文件,并将其定位到Verovio源码的tools目录下,依次执行如下命令:

cmake -DCMAKE_INSTALL_PREFIX=../install ../cmake -G "NMake Makefiles"
nmake
nmake install

      4.将cmd定位到生成的install/bin目录下,打印verovio可执行文件的使用说明,执行结果如下图所示:

      Verovio在Ubuntu 22.04上的编译
      1.从clone源码,并切换到4.1.0版本,执行如下命令:

git clone https://github.com/rism-digital/verovio
git checkout version-4.1.0

      2.将终端定位到tools目录下,依次执行如下命令:

cmake -DCMAKE_INSTALL_PREFIX=../install ../cmake
make -j4
make install

      3.将终端定位到生成的install目录下,打印verovio可执行文件的使用说明,执行结果如下图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零知识玩转AVH(4)—— 怎么玩(3)

接前一篇文章:零知识玩转AVH(3)—— 怎么玩(2) 上一回讲解了“arm-avh-best-practice-project-product-subscription-guide-cn.pdf”即“Arm虚拟硬件实践专题一:产品订阅指南(百度智能云版&…

python爬虫(9)之requests模块

1、获取动态加载的数据 1、在开发者工具中查看动态数据 找到csdn的门户的开发者工具后到这一页面。 2、加载代码 import requests headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36…

2024阿里技术官重磅推出“Java进阶必备宝典” 5大专题 6000字解析

5.JVM实战 CPU占用过高案例实战 内存占用过高案例实战 15种方式编写高效优雅Java程序实战 6.JVM底层技术 亿级流量高井发下GC预估与调优 JHSDB工具透视L ambda底层实现 JVM(HotSpot)核心源码解读 JVM核心模块(GC算法)手写实战 核心三:网络编程与高效IO 1.网络…

如何写出让同事骂娘的代码?教你20个小妙招

在 GitHub 上有一个项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写,这些准则将指导你写出最亮眼的烂代码。 为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点&#xff0…

django根据时间(年月日)动态修改表名--方法二

方法一: 第一步:在models创建一个类,里边存放数据表中需要的字段,如下 class TemplateModel(models.Model):NowTime models.CharField(max_length5)name models.CharFiedld(max_length5)class Meta:abstract True # 基础类设…

每日一题 第三期 洛谷 国王游戏

[NOIP2012 提高组] 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n n n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n n n 位大臣排成一排&…

<video>标签相关属性

src:指定视频文件的URL。 autoplay:如果设置该属性,视频将在页面加载后自动播放。请注意,一些浏览器可能会因为用户体验的考虑而忽略此属性。 controls:添加此属性将在视频上显示播放、暂停和音量控制等标准控件。 …

C#制作软件时窗体的弹出与嵌入

文章目录 一、窗体的弹出二、窗体的嵌入 一、窗体的弹出 这里面我们以Windows窗体应用程序为例,这里面达到的效果如下: 点击指定按钮,弹出目标窗口。接下来我们看具体操作: 这是我们的主窗体: 接下来我们需要在这个…

Stable Diffusion 模型下载:Juggernaut(主宰、真实、幻想)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 该模型是一个真实模型,并且具有幻想和创意色彩。 作者述:我选取了…

Oracle Linux 8.9 安装 Postman

Oracle Linux 8.9 安装 Postman 1. 安装 Postman2. 启动 Postman 1. 安装 Postman Install epel, sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf upgraderefer: https://snapcraft.io/docs/installing-snap-on-red-hat…

RabbitMQ备份交换机与优先级队列

1. 备份交换机 备份交换机可以理解为 RabbitMQ 中交换机的“备胎”,当我们为某一个交换机声明一个对应的备份交换机时,就是为它创建一个备胎,当交换机接收到一条不可路由消息时,将会把这条消息转发到备份交换机中,由备…

1. 用两种方式在springboot项目中实现适配器模式

文章目录 用两种方式在springboot项目中实现适配器模式1. 场景2. 方式1,通过实现类定义类型字段实现2.1 创建接口2.2 创建mysql实现类2.3 创建oracle实现类2.4 创建接口,在接口中注入service集合,根据每个实现类中定义的dbType进行匹配后进行调用2.5 测试…

幼猫咬不动猫粮该怎么办?

亲爱的猫友们,遇到幼猫咬不动猫粮的情况,是不是很让人着急呢?别担心,让我们一起来探讨一下解决这个问题的方法。🐱🍚 首先,我们得理解幼猫的牙齿和消化系统发育还不够成熟,所以咬不动…

算法刷题day30:递归

目录 引言一、有序分数二、正则问题三、带分数四、约数之和 引言 本篇文章主要讲了递归的一些题型,递归也是一种思想,主要是在各种题中显现这种思想,你必须要脑子里能够清楚它大概的一种路线是怎样的,或者说要抽象出来它的功能是…

Arduino ESP8266 SSD1306 硬件I2C+LittleFS存储GBK字库实现中文显示

Arduino ESP8266 SSD1306 硬件I2C+LittleFS存储GBK字库实现中文显示 📍相关篇《Arduino esp8266 软件I2C SSD1306 +LittleFS存储GBK字库实现中文显示》 🌼显示效果: ✨将部分函数重构,和上面相关篇的软件I2C通讯相关接口函数移植过来,除了汉字显示采用自己写的API函数外…

使用 ReclaiMe Pro 恢复任意文件系统(Win/Linux/MacOS)

天津鸿萌科贸发展有限公司是 ReclaiMe Pro 数据恢复软件授权代理商。 ReclaiMe Pro 是一个通用工具包,几乎可以用于从所有文件系统(从 Windows 系列文件系统、Linux 和 MacOS)中恢复数据。此外,考虑到数据恢复工作的具体情况&…

如何实现Git Push之后自动部署到服务器?

在平时个人开发的过程中是不是有这样的烦恼: 项目开发完成,Push之后 登录服务器,手动git pull,然后运行部署命令 这真的很烦诶! 那么能不能Git push之后,远端服务器自动 Git pull 然后运行部署命令呢&a…

2023行政区域

几乎所有业务系统,都会涉及行政区域。国家统计局 官网上公开了所有的区域编码,一年一更新。但只能在线查看,没有提供完整数据库下载的连接。为此,我编写了一个简陋的 python 脚本,抓取了近几年的数据,供大家…

ctf杂项总结

1.文件无法打开 1.1.文件拓展名损坏/错误导致 方法: 1.使用kali当中的file命令查看,之后修改为正确的后缀即可 2.通过16进制编辑器打开查看文件头 3.文件头残缺/错误,可以先使用kail当中的file命令查看它的类型,之后再通过 16…

C# EPPlus导出dataset----Excel2绘制图像

一、生成折线图方法 /// <summary> ///生成折线图 /// </summary> /// <param name="worksheet">sheet页数据 </param> /// <param name="colcount">总列数</param> /// &l…