阅读更多

4顶
0踩

操作系统

Quentin James 写道 "音乐教育是关于音乐的学习和教育。音乐是我们社会的重要组成部分,音乐的内在价值也得到广泛认可。人类利用音乐抒情和言志。音乐教育的好处不可低估。研 究显示音乐教育能明显改善孩子的阅读能力。


通过接受复杂的节奏和音调技巧训练,音乐教育强化了阅读能力的认知表现。音乐教育也有助于数学和科学。保持稳定 的节奏,计算出一个音调持续的时间有多长,以及思考复杂模式,这些技巧只是音乐教育带来的好处之一。

Linuxlinks编辑了五款优秀的Linux音乐教育自由软件名单,希望帮助对音乐感兴趣的Linux用户,提高音乐欣赏和音乐理论能力。这些软件包括:
  • Solfege,使用Python编写的训练程序;
  • LenMus,音乐理论学习软件;
  • Jalmus,音符和节奏训练软件;
  • Piano Booster,钢琴训练软件;
  • Tete ,听力训练软件。

来自: solidot
4
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 程序设计作业: p2p聊天系统 qt写的界面 C++实现.zip

    用c++/qt写的项目,项目都经测试过,真实可靠,可供自己学习c++/qt。Qt是一个用标准C++编写的跨平台开发类库,它对标准C++进行了扩展,引入了元对象系统、信号与槽、属性等特性,使应用程序的开发变得更高效。 Qt类库中大量的类以模块形式分类组织的,包括基本模块和扩展模块等。一个模块通常就是一个编程主题,如数据库、图表、网络等。 一、Qt核心特点 1.1.概述 Qt本身并不是一种编程语言,它本质上是一个跨平台的C++开发类库,是用标准C++编写的类库,它为开发GUI应用程序和非GUI应用程序提供了各种类。 Qt对标准C++进行了扩展,引入了一些新概念和功能,例如信号和槽、对象属性等。Qt的元对象编译器(Meta-Object Compiler,MOC)是一个预处理器,在源程序被编译前先将这些Qt特性的程序转换为标准C++兼容的形式,然后再由标准C++编译器进行编译。这就是为什么在使用信号与槽机制的类里,必须添加一个Q_OBJECT宏的原因,只有添加了这个宏,moc才能对类里的信号与槽的代码进行预处理。 Qt Core模块是Qt类库的核心,所有其他模块都依赖于此模块,如果使用qmake来构建项目,Qt Core模块则是被自动加入的。 Qt为C++语言增加的特性就是在Qt Core模块里实现的,这些扩展特性由Qt的元对象系统实现,包括信号与槽机制、属性系统、动态类型转换等。 1.2.元对象系统 Qt的元对象系统(Meta-Object-System)提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统。 元对象系统由以下三个基础组成: 1.QObject类是所有使用元对象系统的类的基类; 2.在一个类的private部分声明Q_OBJECT宏,使得类可以使用元对象的特性,如动态属性、信号与槽。 3.MOC(元对象编译器)为每个QObject的子类提供必要的代码来实现元对象系统的特征。 构建项目时,MOC工具读取C++源文件,当它发现类的定义里有Q_OBJECT宏时,它就会为这个类生成另外一个包含有元对象支持代码的C++源文件,这个生成的源文件连同类的实现文件一起被编译和连接。 除了信号和槽机制外,元对象还提供如下一些功能。 1.QObject::metaObject()函数返回类关联的元对象,元对象类QMetaObject包含了访问元对象的一些接口函数,例如QMetaObject::className()函数可在运行时返回类的名称字符串。 QObject obj=new QPushButton; obj->metaObject()->className(); 2.QMetaObject::newInstance()函数创建类的一个新的实例。 3.QObject::inherits(const charclassName)函数判断一个对象实例是否是名称为className的类或QObject的子类的实例。 1.3.属性系统 1.属性定义 Qt提供一个Q_PROPERTY()宏可以定义属性,它也是属于元对象系统实现的。Qt的属性系统与C++编译器无关,可以用任何标准的C++编译器编译定义了属性的Qt C++程序。 2.属性的使用 不管是否用READ和WRITE定义了接口函数,只要知道属性名称,就可以通过QObject::property()读取属性值,并通过QObject::setProperty()设置属性值。 3.动态属性 QObject::setProperty()函数可以在运行时为类定义一个新的属性,称之为动态属性。动态属性是针对类的实例定义的。 动态属性可以使用QObject::property()查询,就如在类定义里用Q_PROPERTY宏定义的属性一样。 例如,在数据表编辑界面上,一些字段是必填字段,就可以在初始化界面时为这些字段的关联显示组件定义一个新的required属性,并设置值为“true"。 4.类的附加信息 属性系统还有一个宏Q_CLASSINFO(),可以为类的元对象定义”名称——值“信息。

  • C++中使用属性(property)

    在C++中也可以使用像C#中的属性。在某些特定的环境我们可以使用这一方法,虽然在效率上会比直接访问要来得慢。但是这点效率基本可以忽略的。。代码大致如下: #include using namespace std; class test{public: int get( void ) { return m_nLevel; }

  • linux c++ 文件,C++ 读取文件的几种方式

    //c++按行读取/** main.cc** Created on: 2011-12-1* Author: simondu*/#include "head.h"using namespace std;int main(int argc, char* argv[]){printf("Starting…… \n");string file = argv[1];string tmp;ifstream f...

  • Linux C++实现配置文件读写

    文件名:test.data。

  • C++ 使用 property 属性 的方法

    这几天在项目中碰到一个问题: A是顶层的对象,有一个成员变量是系统参数p。 B是A对象的成员的成员,B负责通信。B在通信时,会使用到参数p。第一个最直接的方案是:将A对象p的指针直接传递给B。 这样的话,固然可以很直接读取p,但是不仅可以读取p,也可以修改p。大问题是没有什么问题。 但是 如果出现”==”写成”=”的情况的话,相对来说不好查。 我tm有代码洁癖。 以后扩展的话,我自认为比较好

  • C++builder Property属性

    摘自 http://www.cnblogs.com/yplong/archive/2011/12/26/2301630.html 定义一个属性Property的基本格式如下: property 属性名 : 属性值类型 read 属性读函数/属性值变量 write 属性写函数/属性值变量这里简单解释一下: 1。Property是属性定义关键字。2。属性的特征类似于字段,所以属性名就像字段名,属性

  • 在C++中实现“属性 (Property)”

    在C++中实现“属性 (Property)” 摘要:本文介绍了在C++中实现“属性 (Property)”的方法,“属性”是我们在C#(或其它一些语言)中常常能用到的一种特性。这里介绍的实现方法使用的是标准的C++,没有用任何其它的语言扩展。而大部分的库或是编译器为了实现“属性”,往往对C++作一些扩展,就像我们在托管的C++或是C++ Builder中看到的那样,也有的是使用普通的s

  • c++类中设置get函数_学会property函数,让你的代码变得更简洁更专业

    之前用了的篇幅讲解了python中的类,超类,魔法方法,还有不明白的可以回顾一下之前的文章。今天呢,详细的讲解一个魔法方法中的内置函数,property函数。定义:函数的作用是在新式类中返回属性值,property取代setter和getter方法。主要是用来规范化访问类的属性和修改类属性的值的一种方法。语法及用法:classproperty([fget[, fset[, fdel[, doc]]...

  • __property 关键字的使用

    __property是属性关键字,用来定义类的某种属性。 给类定义属性,是BCB的扩展,为了说明属性的本质,先看一个标准C++类是如何获取或设置数据字段的:

  • C++实现Property

    C++实现Property C#,JS的Property很好用,可C++为什么没有呢? 那我们自己做一个吧. 从哪开始呢?先分析分析Property. set无非就是Property=value. get无非就是value=Property. 那我们可以写 class Property{ operator 要转化的类型(); void operator=(设置的类型); } 有了思路大家就动...

  • C++反射:全面解读property的实现机制!

    导语|本文将深入Property的部分进行介绍,相比较[[reflection function implement]],Property涉及的Tag Dispatch和中间过程更复杂...

  • linux写参数文件,linux下纯C++读取参数配置文件

    微软把程序猿养懒了。如果你在windows里写程序,那么本文你可以不看,有GetPrivateProfileString等来读取;如果你在qt里写程序,那么本文也可以不看。如果你在linux或者mac下写纯c或者c++程序,而需要读取参数配置文件....Oh,My god.Shit Bill Gates.对应的配置文件如下:[SectionName]field_name1=valuefield_n...

  • linux c++ 配置文件,全套c++读取LINUX的配置文件源码

    全套c++读取LINUX的配置文件源码祖仙教小凡仙 海鲨数据库架构师/*File: main.cppAuthor: zengfankun@小凡仙Created on 2019年12月4日, 下午4:11*/#include #include #include #include #include #include using namespace std;using namespace orac...

  • C++ Linux读取文件

    读取文件时注意:带读取的文件的编码方式,程序编译的编码,都可能影响读取出的内容,单字节打印可查看读取内容; void getfilecontent(string &result) {  char deviceDir[MAXLENTH];//文件路径  memset(deviceDir, 0, MAXLENTH);  char current_dir[100];  memset(cur...

  • C++ getter和setter生成器

    c++的成员变量的get和set生成器,简单易用。

  • 在C++实现C#中的属性(Property)功能的尝试: MACRO篇(2)

    上文提到第一版有一些问题,于是要再这个基础上加以改进。回想C#中的属性的做法,实际上最终访问的是类的私有成员,如Length属性一般最终是访问的名为_length的私有成员,可以说是属性与成员的绑定。这种绑定初步设想可以用指针实现。而自定义get/set函数,就让用户重写=操作符和自定义转换操作符就可以了。但是深入一想有一个大麻烦。自定义get/set函数的一个重要目的就是设置边界条件或者检查。如

  • C++builder自绘控件框架

    #ifndef __switch1__ #define __switch1__ #include "gdi.h" //自定义GDI+函数库 class TSwitchButton : public TGraphicControl { private: int m_left; int m_top; int m_width; int m_he

  • Object-C @property使用指定的setter和getter

    @property编译指令提供了不错的语法糖,使用默认的实现便可有不错的效果。但是,仅仅使用默认的实现,并不一定能满足需求。给用property定义的变量赋值时,如果需要关联操作怎么办?例如,一个视图,有个property定义的Visible变量,将Visible赋值为真,则需要将这个视图显示出来,为假就要隐藏。 这时,可以使用setter,getter来指定具体的实现。 示意代码(仅示意):

Global site tag (gtag.js) - Google Analytics