用于控制音乐时间流的python库。

clockblocks的Python项目详细描述


时钟块

clockblocks是一个用于控制时间流的python库,设计时考虑了音乐应用程序。特别是,它是scamp的中心组件,这是一个用python编写算法音乐的套件。它在in this paper中有详细描述。

一个Clock像线程一样工作,但是它的优点是当多个时钟在同一个主时钟下协调时,它们保持精确的协调,并且不会经历漂移。此外,当在给定的时钟中调用“wait”时,考虑处理时间。例如,以下程序:

importclockblocksimporttimeimportmathclock=clockblocks.Clock()start=time.time()whileTrue:print("Current time: {}".format(round(time.time()-start,4)))# do some pointless and time-consuming calculationsforiinrange(1000000):math.log((i+1)**0.7)clock.wait(2)

…生成输出:

Current time: 0.0Current time: 2.0001Current time: 4.0001Current time: 6.0Current time: 8.0001Current time: 10.0

而传统的线程:

importtimeimportmathstart=time.time()whileTrue:print("Current time: {}".format(round(time.time()-start,4)))# do some pointless and time-consuming calculationsforiinrange(1000000):math.log((i+1)**0.7)time.sleep(2)

…将逐渐漂移,因为密集的计算,输出:

Current time: 0.0Current time: 2.3772Current time: 4.7623Current time: 7.1397Current time: 9.5151Current time: 11.893

此外,clockblocks提供了有用的音乐功能,比如节奏的突然和渐进变化。或许clockblocks最令人兴奋的特性是,以不同速度移动的时钟可以相互嵌套。在这种情况下,每一个时钟都会为它下面的人扭曲时间:一个时钟,其节奏在慢和快之间振荡,嵌套在一个正在加速的时钟中,将产生一个时间流,其节奏振荡得越来越快。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何提高我的软件项目的速度?   java将Jetty嵌入JavaSE项目   数组中的java重复字符   java我的Shell排序没有按预期工作,我需要一些帮助来找出我做错了什么   java如何在JBoss EAP6/AS7中应用先过滤后安全约束   java使用一个随机运算符来处理多个变量   java为什么我不能在文件中写我的二叉树?   java应用程序不会在Eclipse emulator上运行   我第一次尝试制作一个简单的基于瓷砖的java游戏   java为TermVectors安装Solr修补程序   java无法将更新的对象值从客户端发送到服务器,服务器读取不存在的值   Azure,java sdk,使用ARM模板部署无法转换参数文件   是否有一个Java等价于空合并运算符(?)在C#?   java如果只初始化了超类对象,是否可以调用特定于子类的方法?   向类文件传递值时出现java NullPointerException   java模不起作用   java Android TranslateAnimation动态更新布局的大小   数据结构如何在java中实例化队列对象?   java如果用户选择一些随机的相机应用程序,如何在安卓中正确处理相机意图?