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.mfbz.cn/a/447766.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Loss总结】适用与弱监督语义分割中的各类loss

【Loss总结】适用与弱监督语义分割中的各类loss 文章目录 【Loss总结】适用与弱监督语义分割中的各类loss交叉熵损失相对熵(KL散度)交叉熵 L1 LossL2LossSmoothL1LossDice loss梯度分析语义分割代码 交叉熵损失 交叉熵损失函数(CrossEntropy Loss)&…

大模型优化——重排序模型

检索增强生成(RAG)技术作为自大模型兴起后爆火的方向之一,已经广受研发者们追捧,大型语言模型(LLMs)如GPT系列和LLama系列在自然语言处理领域取得了显著的成功,但它们面临着幻觉、过时知识和不透明、不可追溯的推理过程等挑战。检索增强生成(RAG)通过整合外部数据库的…

VideoDubber时长可控的视频配音方法

本次分享由中国人民大学、微软亚洲研究院联合投稿于AAAI 2023的一篇专门为视频配音任务定制的机器翻译的工作《VideoDubber: Machine Translation with Speech-Aware Length Control for Video Dubbing》。这个工作将电影或电视节目中的原始语音翻译成目标语言。 论文地址&…

【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题

【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#…

Leetcode : 1137. 高度检查器

学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。 排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。 给你一个整数…

CV论文--2024.3.7

1、FAR: Flexible, Accurate and Robust 6DoF Relative Camera Pose Estimation 中文标题:FAR:灵活、准确和稳健的6DoF相机相对姿态估计 简介:在计算机视觉领域,估计图像之间的相对相机姿态一直是一个关键问题。通常,…

php导出excel文件

环境 php7.4hyperf3composer require phpoffice/phpspreadsheet代码 class IndexController extends AbstractController { /*** Inject* var Picture*/private $picture;public function index(){$res_data[]["robot" > 哈哈机器人,"order" > TES…

记录一下C++的学习之旅吧--C++基础

文章目录 前言using namespace std; 使用标准命名空间一、helloworld-输出表示1.1代码1.2 运行结果 二、变量2.1.1 普通变量代码2.1.2 运行结果2.2.1 常量和变量代码2.2.2 运行结果 三、sizeof---统计数据类型所占的内存大小3.1 代码3.2 运行结果 四、小数表示4.2 运行结果 总结…

02- 使用Docker安装RabbitMQ

使用Docker安装RabbitMQ 下载安装镜像 方式一: 启动docker服务,然后在线拉取 # 在线拉取镜像 docker pull rabbitmq:3-management# 使用docker images查看是否已经成功拉取方式二: 从本地加载 ,将RabbitMQ上传到虚拟机中后使用命令加载镜像即可 docker load -i mq.tar启动M…

mabatis 中

手动实现MaBatis底层机制 实现任务阶段一🍍完成读取配置文件, 得到数据库连接🥦分析 代码实现🥦完成测试 实现任务阶段二🍍编写执行器, 输入SQL语句, 完成操作🥦分析 代码实现🥦完成测试 实现任务阶段三&…

Redis缓存预热-缓存穿透-缓存雪崩-缓存击穿

什么叫缓存穿透? 模拟一个场景: 前端用户发送请求获取数据,后端首先会在缓存Redis中查询,如果能查到数据,则直接返回.如果缓存中查不到数据,则要去数据库查询,如果数据库有,将数据保存到Redis缓存中并且返回用户数据.如果数据库没有则返回null; 这个缓存穿透的问题就是这个…

使用python将数据输出为图表图片

数据示例(数组或其他): hourly_data {00:00: 10,01:00: 15,02:00: 20,03:00: 25,04:00: 30,# 添加更多数据... }示例输出(图片): python代码: 下面代码中使用了matplotlib库,如果…

Mac系统:mysql+jdk+neo4j

mysql 指令 //启动MySQL服务 sudo /usr/local/mysql/support-files/mysql.server start//停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop //连接MySQL数据库,在进行这一步前要先关掉服务 mysql -u root -p //检查MySQL服务状态 sudo /us…

JDK17镜像制作

背景 获取JDK17 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 解压JDK tar -zxvf jdk-17_linux-x64_bin.tar.gz 制作JRE 由于jdk的体积比较大,可以使用jre来作为运行环境,jdk1.8及以前版本,自带jre&#…

力扣--动态规划/回溯算法131.分割回文串

思路分析: 动态规划 (DP): 使用动态规划数组 dp,其中 dp[i][j] 表示从字符串 s[i] 到 s[j] 是否为回文子串。预处理动态规划数组: 从字符串末尾开始,遍历每个字符组合,判断是否为回文子串,填充…

后悔没有早点看到这份产品说明书模板

产品说明书是连接产品与消费者的桥梁,它对产品具有多重好处。一份设计精良、内容准确的产品说明书有助于消费者全面了解产品,确保用户正确使用产品;减少消费者因误操作导致的故障,降低企业的售后服务成本;增强消费者对…

GaLore的全称是“Gradient Low-Rank Projection“,翻译过来就是“梯度低秩投影“

鉴于大家对GaLore比较感兴趣,我今天试着结合论文做一个更深入的解读: GaLore的全称是"Gradient Low-Rank Projection",翻译过来就是"梯度低秩投影"。它的核心思想是通过降低优化器状态的秩,来大幅减少内存占用。 在训练大模型时,我们需要存储三类数据:模型…

操作系统基础

进程与线程 进程之间如何通讯 用户态与核心态 进程空间 操作系统内存管理 TBL TBL 多级页表虽然解决了空间上的问题,但是我们发现这种方式需要走多道转换才能找到映射的物理内存地址,经过的多道转换造成了时间上的开销。 程序是局部性的,即…

新质生产力简介

新质生产力简介 新质生产力概述: 新质生产力是以科技创新为核心,实现关键性颠覆性技术突破,推动社会经济发展的高效能、高质量生产力。 新质生产力的本质 新质生产力的本质是“科技创新” 新质生产力的核心是科技创新 新质生产力简介 新质…

全面对比Amazon DocumentDB 与 MongoDB

在云中部署 MongoDB 似乎有多种选择。例如,Amazon DocumentDB自称是完全支持 MongoDB API 的 AWS 原生数据库。虽然它支持一些 MongoDB 功能,但需要注意的是 DocumentDB 并不完全兼容 MongoDB。要在 AWS 上访问功能齐全的“MongoDB 即服务”,…