土豆泥
Cakewalk 停止开发了1 在我知道 MIDI 这个东西以后,我就在想这些文件是怎么做出来的,然后在当年的一本杂志《新潮软件》上,看到了 Cakewalk 的相关介绍。 当时家里没有网络,而自己的声卡还是用的 FM 芯片,音质巨烂,此事一直搁置。 后来升级了自己的声卡驱动,支持了 WDM 以后,用上了系统自带的那个 Roland 合成器,这才有时间玩 Cakewalk。还安装了 Yamaha 的合成器驱动。 这就开始了自己玩 MIDI 的生涯。 后来也用过水果和 Cubase,但是就 MIDI 文件本身的编辑能力来说,还是 Cakewalk 更好用一些。后来发现了很多好用的 VST 插件,而同时 MIDI 也开始回归它本身的定位2,这才减少了我用 Cakewalk 的频率,但是在编辑 MIDI 文件的时候我还是会用它。 直到我改用了 Linux。 Linux 下并没有一个对 MIDI 文件友好的编辑工具,这是让我非常不痛快的体验,只好用虚拟机继续运行早期版本的 Cakewalk3 这几年,Cakewalk 一再倒手4,在这过程中,似乎渐渐被人遗忘了,Cubase 成了事实标准。 我现在很希望 Cakewalk 能交给开源社区来继续开发,不仅能延续这个软件的生命,也能将它移植到 Linux 或者 Mac 上,还可以增加 LV2 和 AU 的支持,这也能让很多喜欢音乐的人有一个非常好用的音乐制作平台 http://www.cakewalk.com/Gibson-Announcement [return] https://tonychyi.wetofu.top/2016/04/01/death-of-midi-standards/ [return] 我没用过Sonar [return] https://www.midifan.com/modulenews-detailview-28242.htm [return]
2017年11月22日 #Cakewalk #MIDI
最近微博上一直在炒作一个“00 后 CEO”的事情,那个人叫李昕泽。 大约在 1 年前,我的微博时间线有人转发了一条微博,记得是某人在喷 Linux 怎样,然而完全没喷到点子上。好吧,他们有个公司叫“崇才科技”,好吧,我去一眼。 这一看不要紧,差点闪瞎我的狗眼!“公司”网站完全是 IE6 兼容,各种错位,同时夹杂着各种错别字。他们当时吹的有一个项目 FXDesktop,我当场就想掀桌,那种项目我小学时用 VB6 做的都比他强好嘛!1 好吧,也许只是某些中二少年在过家家吧! 过了没多久,他们居然宣布和 Sunshine 组合2合作了!WTF!后来还真有了一个 APP 出来,然而制作水平嘛,实验性作品而已。 合着牛 B 吹那么大,水平就是一坨啊!“安徽同志社区”不知道比你们高到哪去了!3 难道创业就像崇才这样过家家吗,不脱层皮能搞起来? 同样是 00 后,差别咋就这么大呢! 实际上崇才搞的很多“项目”,要么没有实物,要么是只是改了几张图/字符串的别人的代码,甚至剽窃代码的时候有些东西连改都不改! “李总”居然还说三四十的中年人不懂互联网?你丫不懂法律好吗? 李昕泽是骗子,崇才是垃圾 其实我真的做过一个“桌面”,也真的是用VB6写的。后来也知道,他们宣传的那个项目也是别人的实验性作品。 [return] 真的是“有梦想谁都了不起”,你昨不酒后开飞机呢? [return] 虽然安同社区早些时候是有一些争议,但是他们对技术的态度真的是很严肃。 [return]
2017年09月10日 #我是喷子 #胡说八道
几年后,当孩子问我,为什么乒乓球会被别的国家打到这么惨,爸爸骗人说我们很厉害,我该怎么回答? 我曾经也经历过类似的事情,一支干劲十足的团队在无聊的政治斗争下,渐渐散掉。 这样的戏码几乎每天都会在不同的地方上演。 这个世界本来就应该是专业的人干专业的事,就怕是外行指点内行。然而并没有用,只要有不干正事只对权力感兴趣的人在,这样的悲剧就仍然不会停止。说什么都没有用,只要不能阻止这样的人上位,这样的人总得作点事出来。 这几天,骂也骂过了,挂也挂过了,然而除了这些,什么也做不了了。 大概我只能对自己的孩子说,做什么都行,但唯独不能做那种什么都不懂还要各种插一杠子的人,更不能做那种,明明是外行,却还要领导内行的那种人,做不好的事情,趁早走人,留给能做的人去做。如果不幸做了这种人的手下,也趁早离开。 做人不仅要有原则,有正义感,也要有血性,有义气 总之,结束了,在某些人瞎搞的情况下。 推翻的大山,又起来了
2017年06月26日 #胡说八道
其实也没什么事情吧,只是想写点东西出来。 花了很多钱,用上了 Mac,感觉似乎还不错,合上盖子就能带走,打开盖子就能立刻使用。 另外,我入手了一把二手的 YouRock Guitar,就是下面这玩意 不过因为各种原因,我已经很长时间没碰过吉他了,需要一些时间,而这个东西是一个 MIDI 控制器,我大概需要些时间来学习了。 被蓝军伤的很重,我到现在还不能理解一个人仅仅只是因为两句话就不爽以致于几乎天天骚扰别人。我真的累了,心累 感觉是应该改变一些什么了,这样下去真的好吗?我很纠结。 果然还是说不出什么来啊,就这样吧
2017年06月15日
2017-04-03 17:18 孩子降生,2900g,♂ 孩子很结实,出生 5 天即可抬头
2017年04月11日
我一直很好奇早期的 MacOS 里面到底有什么。 为了解答这个问题,我安装了 BasiliskII 并在其中安装了 MacOS 71, 好吧,看起来还不错。 体验完了以后,我看了一下磁盘镜像 [email protected]: ~/os7 > file MacOS7 MacOS7: Macintosh HFS data (bootable) block size: 33280, number of blocks: 64527, volume name: MacOS 嗯,是 HFS,果断安装 hfsprogs,然后挂载这个镜像 下面我列了一下整个磁盘中的文件及相关信息 总用量 67031 -rw-r--r-- 1 root root 19696 5月 31 1996 About System 7.5 drwxr-xr-x 1 root root 6 3月 6 2017 Apple Extras -rw-r--r-- 1 root root 133120 3月 6 2017 Desktop DB -rw-r--r-- 1 root root 328322 3月 6 2017 Desktop DF drwxr-xr-x 1 root root 2 3月 6 2017 Desktop Folder -rw-r--r-- 1 root root 0 10月 13 1995 SimpleText drwxr-xr-x 1 root root 17 3月 6 2017 System Folder drwxr-xr-x 1 root root 2 3月 6 2017 Trash -rw-r--r-- 1 root root 68157440 3月 6 2017 VM Storage ./About System 7.5 -rw-r--r-- 1 root root 19696 5月 31 1996 ./About System 7.5 ./Apple Extras 总用量 0 drwxr-xr-x 1 root root 5 3月 6 2017 About the MacOS drwxr-xr-x 1 root root 4 3月 6 2017 AppleCD Audio Player drwxr-xr-x 1 root root 7 3月 6 2017 AppleScript?
2017年03月06日 #MacOS #Apple
LMMS 的代码里其实已经有了一个 MIDI 文件的导出功能。但是代码里的注释告诉我,那个是坏的,而且主界面的代码里把 MIDI 导出的菜单项给注释掉了。 既然 Midi 导入的功能已经改成了 Drumstick,那就更干脆点,直接把导出功能也解决了吧。 原代码功能 原来的 Midi 导出代码是将项目的内容转成 Qt 的 DOM 视图,然后从视图中读取信息,另外再实现一个自己的 Midi 写入的类。 但是这个代码似乎只能导出音符信息,控制器信息却不能导出,这就意味着,像 Pitch bend/Volume/Panning 这些信息要丢掉,也没法导入到其他的软件中。 原代码可以参考这里 新的需求 我的目标是,做一个 GM 兼容的 MIDI 导出功能,不仅导出音符,还要能让导出的 MIDI 文件直接可以拿来听! 接下来就是试验一下 Drumstick 如何写入一个 MIDI 文件。 我们需要这样做1: 首先调用 setFileFormat() 设定文件版本,这里就强制设 1 吧2 然后调用 setDivision() 设定一个四分音符的 Tick 数,同样强制 960 吧。 这样,一个 Header 就完成了,接下来写每个轨道的信息。 扫描整个项目,将使用 Sf2 Player 的轨道记下来,统计数量,调用 setTracks() 设为轨道数 +1s 同样也把 AutomationTrack 也记下来。 Drumstick 按轨写入的方法是,发送一个 signalSMFWriteTrack(int track),然后设置一个 Slot 去接收它。
2017年01月20日 #LMMS #MIDI #C++ #Qt
啊,更好的方法就是,用他妈的什么 portsmf 用 drumstick 啦 ——@liushuyu 终于折腾好了 带着对 drumstick 的撞憧憬,我终于还是给自己挖了个大坑,把原来 LMMS 在 Midi 文件导入时用到的 portsmf 库换成了 drumstick。 然而这并不是一个有趣的过程。 portsmf 是按顺序返回 Midi 事件,而 drumstick 是基于 Qt 的 Signal/Slot 机制。 于是我先花费了一点时间搞明白 drumstick 是如何工作的。 然后对整个的 MidiImport 插件进行了大拆解——将混乱不堪的代码按照 class 分成了几个文件。 接着写了一个 midiReader 类,用来接收 Midi 事件,并添加到 LMMS 的轨道中。 那么接下来的工作就是实现 midiReader 的 Slot。 在 lmms 的导入过程中,用到了以下 Signal: signalSMFTimeSig(int,int,int,int) “以四分音符为一拍,每小节四拍” signalSMFTempo(int) 节奏,单位是 ms/quarter_note signalSMFError(QString) 错误处理信息 signalSMFCtlChange(int,int,int) 控制器信息 signalSMFPitchBend(int,int) 弯音信息1 signalSMFNoteOn(int,int,int) 音符开始,但最后一个参数为 0 时等同于音符结束 signalSMFNoteOff(int,int,int) 音符结束 signalSMFProgram(int,int) 音色改变2
2017年01月08日 #LMMS #MIDI #drumstick #C++
@leo_song 对我说,搞报表平台的代码不如研究 LMMS LMMS 有一个存在了很长时间的 BUG:导入 Midi 文件的时候,对 Pitch Bend 不能很好的处理导致走音。 定位 在 Cakewalk 中测试,如果是单纯调整 Pitch Bend,最大范围是 ±2 个半音,而我这里有个文件1甚至可以达到 1 个八度。 经过一番测试,发现是 RPN(0, 12) 这个参数在起作用: 0, 0, Header, 1, 7, 960 1, 0, Start_track 1, 0, Control_c, 0, 101, 0 1, 0, Control_c, 0, 100, 0 1, 0, Control_c, 0, 6, 12 1, 0, Control_c, 0, 38, 0 …… 也就是上面的 Contol_c 事件,先以 101 和 100 控制器发送值 02,然后再用 6 控制器发送 123,最后以
2017年01月04日 #LMMS #MIDI
Design pdevty