在闲暇时光里,我发现自己被折扣网站Wish吸引住了。 我一时兴起,花了几分钱就去了专业比赛。 持续不到一分钟,直到出现故障。 但这是可行的(我得到了全额退款!)。 因此,我将现在免费的摄像头戴在头盔上并拍摄了自行车上下班时间。
我很感兴趣如何以一种“看”通勤的方式,而这并不意味着我坐了20分钟左右就在火车上呼啸而过。 我记得王牌设计师Brendan Dawes的一个名为CinemaRedux的项目。
- 阿姆(Eminem)写下王子的歌
- (t5!)2000年代的专辑(Redux)[100至51]
- ATSU ADALETEY发现EDEM RUTH AGBO —年度发现
- UM资深本·里基茨(Ben Ricketts)的音乐获得了全国关注
- 不要害怕高分辨率音乐
他通过每秒拍摄一帧并将它们按60行排列来创建著名电影的“视觉指纹”。 每分钟的运行时间排成一行。 它们令人着迷,并为影片提供了有趣的视角,尤其是色彩的使用。 我认为这是查看通勤的好方法。

不久前,名为Ben Sandofsky的开发人员创建了一个名为Thumber的应用程序,该应用程序创建了它们,但是在我的Mac上无法正常运行(它是为豹子而建)。 因此,最近我将脚趾浸入python编程中(我一直在研究Twitter进行一些研究),我想为什么不看看我是否可以使用Python做到这一点。
后来进行了许多GiantCap开发,我开始使用它。 结果…

您可以看到其没有出租车司机。 但是道路和曼彻斯特天空的灰色偶尔会溅出绿色。 作为我旅途的“指纹”,我认为它运作良好。 使它们最终化的最终python代码可在GitHub上找到。
它笨拙且效率低下。 但这确实有效,我对它不会崩溃(很多)感到非常满意。 那么,接下来我该如何利用新发现的编程能力呢?
我的通勤声音是什么样的?
在我的上一份工作中,是一名博士研究生。 杰克·达文波特(Jack Davenport,他确实做了一些非常酷的事情)正在从事一个名为“声音的声音”的项目,该项目探索了使音乐脱离键盘等标准界面的有趣方法。一个实验包括构造一张大桌子,用户可以滚动彩球的负载。 摄像机跟踪球,并将其位置和颜色转换为数据以播放声音并循环播放。 我喜欢这个主意。 也许当我想弄清楚通勤电影的声音听起来很酷时,它就在我的脑海中。
使数据可听不是一个新概念。 除了健康而多样的电子音乐场景外,还有越来越多的,富有创造力的程序员和音乐家正在尝试对音乐进行实时编码。 使用它来探索研究数据也有很多有趣的东西。 它甚至在数据新闻业中占有一席之地。 查阅“调查报告中心”的文章,该文章由Michael Corey @mikejcorey创建了地震数据的音频表示形式。 有代码和所有内容。 在该注释上,您还应该查看罗伯特·科萨拉(Robert Kosara)的作品《超音波:力量,问题》。 但是我离题了。
经过一番阅读后,我确定了以下基本思想:
- 分析我的Cinemaredux脚本生成的每个图像,并找出每个图像的主要颜色。 但是我不希望每张照片一张便条,信息太丰富了。 但是同时,我不想从图像中的像素创建大量笔记。 我需要以某种方式过滤数据。
- 将每种颜色的RGB值转换为MIDI音符。 我选择MIDI是因为它给了我最大的灵活性,并且我对它在远古时代在音乐技术领域留下来的工作有一个模糊的想法。 它实际上是一个数据文件,带有要播放的音符,何时播放以及持续多长时间。 没有声音等。我认为这会更容易-一旦我从图像中获得数据,那就只是转换数字的情况。 这也将给我提供更多的空间来试验数据听起来像什么的感觉。

中和主导色彩
跳过了很多令人沮丧的剪切和粘贴操作之后,我终于得到了一个脚本,该脚本将捕获视频的每一帧,并为我提供一系列主要的颜色或“簇”。 将它们转换为音符和持续时间并不会造成太多混乱,而且值得庆幸的是,那里有一些非常易于使用的Python Midi库!
最后,我将每幅图像从一个簇中生成一种琶音,每种颜色代表一个音符,其持续时间等于图像分析中该颜色的“数量”。 我本可以让他们同时演奏一个和弦,但是我知道这听起来很奇怪,而且音符的起伏似乎更适合运动的想法。
这是脚本的第一个测试输出-我女儿乱扔相机的随机图像,分析了四个聚类。 生成的midi文件是使用随机乐器(由我的女儿选择)通过Garageband运行的,并遍历了几个小节。 它在你身上成长! (注意:在chrome上嵌入的soundcloud有点胡扯)
对我的Cinemaredux图像进行相同的分析只是时间上的练习-更多图像需要花费更多时间进行分析。 但是最终我得到了一个midi文件,这就是结果。 (注意:在chrome上嵌入的soundcloud有点胡扯)
就像我的缩略图实验一样,我对结果感到满意,因为它可以正常工作。 在某个时候,我可能会做一个更技术性的文章*来解释我所做的事情。 现在,如果您想查看代码并查看是否可以使用它,请转到github。
一些进一步的工作
如果代码更整洁,速度更快,那将是很好的选择,但是它可以工作。 它落在哪里是时机。 MIDI文件的持续时间比实际旅程长得多。 这意味着需要对音符比率,速度和图像数量进行一些实验。 但到目前为止,我对结果感到满意。 我还有其他一些想法可以尝试:
- 拥有一个在传统意义上更“和谐”的版本会很好。 在我读过的教程中,就像前面提到的Michael Corey的地震片一样,通过将值映射到键(例如,移动所有音符使其处于Cmajor音阶)来调谐数据是很常见的。 如此一来,我可能会冒着为每个图像产生和弦的危险,而听起来好像我一直在撞自行车。
- 在音乐曲目中分解颜色也很不错。 诸如黑色和灰色之类的低值RGB颜色可用于弹奏低音音符,而在另一条轨道上可使用较高值的颜色弹奏旋律。
- 通过使用MIDI,我不仅限于演奏“乐器”。 例如,我可以使用我所经历的环境的样本,然后使用注释“触发”它们。 例如,红色在中间触发c,这会触发汽车的声音。 也可以使用数据过滤声音。 因此,我可以使用前置摄像头本身的声音,并使用数据在其持续时间内应用滤镜和其他效果。
- 最后,最好创建仅具有所选颜色的Cinemaredux风格图像,例如基于颜色的钢琴卷或乐谱。
您可能正在阅读此书,并在想为什么? 您可能会听“音乐”,然后真的会想“我的上帝! 为什么?’ 但是思考如何“转换”数据点的过程很有趣,而且我现在更加自信地使用Python构建和管理数据
此脚本中有很多假设和变通办法。 仅靠使音乐内容更具音乐性的过程就意味着我对音乐理论(和迷笛音乐)的参与程度尚不高。 我越深入研究脚本中滑过的某些区域,我就越意识到那里也存在类似的工作。 但是我的方法是看看我能以多快的速度将半生半熟的想法变成半成品。
现在,我会对您的想法感兴趣。
*基本上,当寻找脚本来平均图像的颜色时,我遇到了一种称为 k-means聚类的用于颜色分割的方法 。 这就是用于生成颜色堆叠图的方式。 这给了我琶音方法的想法。