# C++CodeMusician3 **Repository Path**: xr_jesse/c--code-musician3 ## Basic Information - **Project Name**: C++CodeMusician3 - **Description**: C++写的原神弹琴程序,支持圆号的长按发音 - **Primary Language**: C++ - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-24 - **Last Updated**: 2024-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: 原神, C十十, c艹, 脚本, 弹琴 ## README # C++CodeMusician3 #### 1.乐谱格式和上一个版本很像,稍微有点改动,现在可以更精确地对音符计时了,并且支持圆号的异步多音轨操作 #### 2.像老版本的文件为type=1,圆号文件为type=0 #### 3.以[start][over]作为开头和结尾 #### 4.取消了每条音轨前的4个英文空格 #### 5.用value=分子/分母来指定哪种音符的每分钟速度 #### 6.音符分值的表示:第一位是分子,第二位是分母,并且按如下进行转换 ``` int 八十八进制转十进制(char 值) { string num = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()+-_=[];':\",.<>/?"; int i = 0; int l = num.size(); while (i < l) { if (值 == num[i]){ return i; } else { i += 1; } } } ``` # 一些问题: #### 1.不同CPU主频可能影响播放速度,在乐谱文件中手动调整speed的值即可,主要是实在找不出原因 #### 2.本代码请使用Visual Studio编译 #### 3.圆号文件的播放由于是单线程异步帧操作,每帧时间一致固定为10毫秒,所以音符的时间不是非常精确的,在代码上的误差在10毫秒以内,实际就不知道了