继续巩固打拨弦和开指练习,新增卡鲁里1至4型节奏练习,视奏《我怎能离开你》低音和高音版。
练习
打拨弦
2:1 90 100 110
1:1 60 70
开指
2:1 70 80 90
右手发音
2:1 60 70 80
视奏
我怎能离开你 低音高音版 四分音符 = 50 60 70
卡鲁里 1至4型 1:1 50 60 70 (一个音一拍)
继续巩固打拨弦和开指练习,新增卡鲁里1至4型节奏练习,视奏《我怎能离开你》低音和高音版。
2:1 90 100 110
1:1 60 70
2:1 70 80 90
2:1 60 70 80
我怎能离开你 低音高音版 四分音符 = 50 60 70
卡鲁里 1至4型 1:1 50 60 70 (一个音一拍)
左手按弦姿势尽量放松,不要突出压迫手腕,不要夹臂,手掌尽量贴近琴颈下方,手指按弦时第一关节与面板保持垂直。
训练左手独立性,灵活性,爆发性和准确性。手指自然弯曲状态下向手背方向拉伸,感觉到手背的筋的拉力。然后采用爆发力将手指打在琴弦上,打在琴弦上时手指是自然按弦的状态,而不是蛮力,关键点在于解除拉伸状态时的突然爆发力。手指打在琴弦上时,采用靠弦方式拨动琴弦,手指停留在下一根琴弦上,停留后使其处于放松状态。
练习各个手指之间的展开度。
单指:1,2,3,4
双指:12,13,14,23,24,34
三指:123,124,134,234
四指:1234
12,13,14,23,24,34,右手采用靠弦方式。
面向观众,左腿踩脚蹬向前冲前方,右腿放松,放置琴于左腿之上,琴头与眉头基本持平,琴上桶突出处位于身体中央偏左位置,两肩放松。右手小臂置于琴下桶突出处。p指放于6弦上,位置在音控正中央处,i,m,a指分别放在3,2,1弦上。保持手指大关节(或手掌)方向与小臂一致,指甲方向大概指向上琴桶,方便发力,避免长时间弹琴产生病痛。手腕可根据个人手型,大小适当隆起,以便方便与拨弦。手腕内外扭曲,或向上向下弯曲。
分解动作:1. 按弦 2. 拨弦 3. 还原 4. 放松
按弦将琴弦按下,手指肉按住,指甲即将触弦的状态,避免发出指甲打弦的声音。拨动琴弦,手指停留在下一根弦上,不要勾弦,手指拨弦方向基本上与琴弦垂直,让琴弦沿着指甲的坡度滑动。理论就是琴弦垂直面板震动,发出更饱满,有质感的声音。
合成动作:1,2,3,4步骤一气呵成。
分解动作:2拍一个动作。
合成动作:4拍一个音。
熟练之后可减轻靠弦的力度,即发完音之后及时收住手指头。
对着镜子练习,清楚每一步做什么,做的是否正确。
间隔半音数 |
间隔名 |
大致频率比 |
0 |
perfect unison 完全一度 |
1:1 |
1 |
minor second 小二度 |
16:15 |
2 |
major second 大二度 |
9:8 |
3 |
minor third 小三度 |
6:5 |
4 |
major third 大三度 |
5:4 |
5 |
perfect fourth 完全四度 |
4:3 |
6 |
augmented fourth 增四度 |
45:32 |
7 |
perfect fifth 完全五度 |
3:2 |
8 |
minor sixth 小六度 |
8:5 |
9 |
major sixth 大六度 |
5:3 |
10 |
minor seventh 小七度 |
16:9 |
11 |
major seventh 大七度 |
15:8 |
12 |
perfect octave 完全八度 |
2:1 |
音程列表 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
度\音数 | 0 | 1/2 | 1 | 3/2 | 2 | 5/2 | 3 | 7/2 | 4 | 9/2 | 5 | 11/2 | 6 | 13/2 | 7 |
一度 | 纯 | 增 | 倍增 | ||||||||||||
二度 | 减 | 小 | 大 | 增 | 倍增 | ||||||||||
三度 | 倍减 | 减 | 小 | 大 | 增 | 倍增 | |||||||||
四度 | 倍减 | 减 | 纯 | 增 | 倍增 | ||||||||||
五度 | 倍减 | 减 | 纯 | 增 | 倍增 | ||||||||||
六度 | 倍减 | 减 | 小 | 大 | 增 | 倍增 | |||||||||
七度 | 倍减 | 减 | 小 | 大 | 增 | 倍增 | |||||||||
八度 | 倍减 | 减 | 纯 | 增 | 倍增 |
7月2日到10月2日。
虽然失败了很多次,但不要害怕失败。做了不一定能戒掉,但不做肯定戒不了,大不了重头再来,小一点心理压力。🙄
libvirt是一个虚拟化开发的工具库,提供了底层的kvm,xen,vmware esx等虚拟化的统一封装。可以通过libvirt提供的api对不同的底层实现进行同一的管理。除了原生的c api,还有c#, go, java, ocaml. perl, python, php, ruby的api,用户可自主选择自己熟悉的语言。
要使用libvirt首先要安装libvirtd,这是一个后台守护进程,负责管理虚拟机系统以及和客户端交互。libvirt还包含了virsh命令行工具,供用户通过shell手动管理。另外,还可以通过图形界面方式进行管理,该工具是virt-manager,如果您想要通过python的api进行开发,需要安装python3-libvirt或python-libvirt。在debian下,可通过下列指令安装这些包:
apt-get install libvirt-daemon libvirt-daemon-system libvirt-clients python3-libvirt virt-manager
启动libvirtd:
systemctl start libvirtd
接下来我们就可以通过virt-manager创建一个虚拟机。熟悉vmware或者virtualbox的同学,可以看到virt-manager和这些软件很类似,安装系统就不再介绍了。
系统安装完成之后,我们就可以通过virsh工具进行基本的操作了。运行virsh,回车,进入virsh的命令行,可通过help查看virsh支持的操作。
virsh # help
Grouped commands:
Domain Management (help keyword 'domain'):
attach-device attach device from an XML file
attach-disk attach disk device
attach-interface attach network interface
autostart autostart a domain
blkdeviotune Set or query a block device I/O tuning parameters.
blkiotune Get or set blkio parameters
blockcommit Start a block commit operation.
......
通过查看这些命令,我们了解到libvirt提供了客户机的管理,客户机监控,主机监控,设备管理,网络管理,快照管理和存储管理等功能。由于有virt-manager工具,很多功能我们都可以通过图形化界面方式完成,但是我们可以通过virsh快速获取某个主机某项信息,方便开发时对比测试我们的代码是否正确。
libvirt中的一些基本概念:
libvirt api提供的api包括:
python api简要功能示例:
获取所有的客户机列表,详细参考:
from __future__ import print_function
import sys
import libvirt
conn = libvirt.open('qemu:///system')
if conn == None:
print('Failed to open connection to qemu:///system', file=sys.stderr)
exit(1)
domainIDs = conn.listDomainsID()
if domainIDs == None:
print('Failed to get a list of domain IDs', file=sys.stderr)
print("Active domain IDs:")
if len(domainIDs) == 0:
print(' None')
else:
for domainID in domainIDs:
print(' '+str(domainID))
conn.close()
exit(0)
客户机内存信息统计,详细参考:
from __future__ import print_function
import sys
import libvirt
domName = 'Fedora22-x86_64-1'
conn = libvirt.open('qemu:///system')
if conn == None:
print('Failed to open connection to qemu:///system', file=sys.stderr)
exit(1)
dom = conn.lookupByID(5)
if dom == None:
print('Failed to find the domain '+domName, file=sys.stderr)
exit(1)
stats = dom.memoryStats()
print('memory used:')
for name in stats:
print(' '+str(stats[name])+' ('+name+')')
conn.close()
exit(0)
官方有更多参考示例,这里不再过多介绍。我个人接触libvirt是因为要监控虚拟机的运行状态,性能统计,网络信息等的监控,所以对于快照,网络管理,存储管理等没有通过python接口进行过实践,对其了解的也不适特别多。下面是我认为一些有用的链接,可供参考:
希望通过本片文章能让你对libvirt的开发有一个简单的认识。