diff --git a/bin/Debug/music-field.build/Objects-normal/x86_64/graphs.o b/bin/Debug/music-field.build/Objects-normal/x86_64/graphs.o index 7109410..6f8a297 100644 Binary files a/bin/Debug/music-field.build/Objects-normal/x86_64/graphs.o and b/bin/Debug/music-field.build/Objects-normal/x86_64/graphs.o differ diff --git a/bin/Debug/music-field.build/Objects-normal/x86_64/hsv.o b/bin/Debug/music-field.build/Objects-normal/x86_64/hsv.o index 148c02d..6b832d1 100644 Binary files a/bin/Debug/music-field.build/Objects-normal/x86_64/hsv.o and b/bin/Debug/music-field.build/Objects-normal/x86_64/hsv.o differ diff --git a/bin/Debug/music-field.build/Objects-normal/x86_64/main.o b/bin/Debug/music-field.build/Objects-normal/x86_64/main.o index c8bf990..08e851d 100644 Binary files a/bin/Debug/music-field.build/Objects-normal/x86_64/main.o and b/bin/Debug/music-field.build/Objects-normal/x86_64/main.o differ diff --git a/bin/Debug/music-field.build/Objects-normal/x86_64/wav.o b/bin/Debug/music-field.build/Objects-normal/x86_64/wav.o index 74e467a..00c8928 100644 Binary files a/bin/Debug/music-field.build/Objects-normal/x86_64/wav.o and b/bin/Debug/music-field.build/Objects-normal/x86_64/wav.o differ diff --git a/document/数据部分.md b/document/数据部分.md index 64e53d4..a8e0b47 100644 --- a/document/数据部分.md +++ b/document/数据部分.md @@ -1,2 +1,5 @@ -# <#Title#> - +# 设计内容(数据部分) +## 对于WAV类的分析 +1. 传入需要读入的WAV格式文件的路径,而后对于WAV格式的文件头进行通过二进制模式读取操作。为了提高程序的鲁棒性,程序通过while循环来读入,根据读入的标签的特点来进行下一步操作。这样,能够在处理少部分不和主流形式一致文件头的情况下,仍然能够正确读取文件中必要信息与相关数据。在读取data标签前,会对fmt标签是否已读入进行检查。在读取fmt标签时会检查文件数据是否为PCM格式。 +2. 数据储存上,利用stdint.h中定义的uint32_t来保证一次读入4个字节,来符合标准规范。由于WAV文件头中包含很多个小节,针对这些小节及其特点建立了相关的结构体。用来一次性读入相关信息,确保读入的稳定性与安全性。 +3. 在音频数据的处理上,由于PCM格式的音频输入含有16位双声道,8位双声道,16位单声道,8位单声道。对于这几种不同的类型,实际的处理方式会不同。在工程定义时,定义了4个不同的位域,用来分割不同类型下的音频数据。并且对于这四种不同的位域,给它们配置了4中不同的容器来容纳。所以该类在识别音频文件后,会自动选择合适的容器来存放。 diff --git a/include/graphs.hpp b/include/graphs.hpp index e709d27..bf60e15 100644 --- a/include/graphs.hpp +++ b/include/graphs.hpp @@ -3,16 +3,6 @@ #include -//计算函数执行时间间隔 -#define DRAW_TIMER 1 -//绘图函数执行时间间隔 -#define FRESH_TIMER 20 - -typedef std::pair Size; -typedef std::pair Point; -typedef std::vector Point3; -typedef std::vector RawColor; - using std::string; using std::vector; using std::list; diff --git a/include/type.hpp b/include/type.hpp index 7905dfc..0340baf 100644 --- a/include/type.hpp +++ b/include/type.hpp @@ -16,4 +16,14 @@ #include #include +//计算函数执行时间间隔 +#define DRAW_TIMER 1 +//绘图函数执行时间间隔 +#define FRESH_TIMER 20 + +typedef std::pair Size; +typedef std::pair Point; +typedef std::vector Point3; +typedef std::vector RawColor; + #endif /* type_h */ diff --git a/unix/main.cpp b/unix/main.cpp index 3af9d35..d804b69 100644 --- a/unix/main.cpp +++ b/unix/main.cpp @@ -18,11 +18,13 @@ int main(int argc, char * argv[]) { nwd.playMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH); nwd.size({700,700}); nwd.position({200,100}); + twav.getInfo(); twav.setTimer(20); int hw = sqrt(twav.m_pss.step); nwd.create("Fields"); + p_avg->setRetangle({{0.98,-0.98},{0.85,-0.85}}); nwd.draw_shape(p_avg); for(int y = 0; y < hw; y++){