少多's profileLucas'PhotosBlogListsMore Tools Help

Lucas'

October 30

ganK the Synthesizer Installer/ganK软件合成器

 
ganK the Synthesizer is a free soft synth developed by Lucas. It is presented in both VSTi format and Windows standalone application.
ganK is an additive/substractive synth with 3 oscillators , a moog filter, a lfo, effects like an 8-band eq and a delay component.
Have fun.
 
Download URL/下载地址:
 
 
updating/有改动会随时更新。
 
@ToDo: replace .xml saving by .fxp saving..(must get this fixed after mid-term) 
 
   
 
   
 
 
October 27

纪念ganK工程结束

说是结束,但是vsti插件还没做。后悔当时没有仔细看Juce的doc,juce里有个类StandaloneFilterWindow,原来是可以直接用juce按vst开发的,然后用这个类直接做成桌面独立程序。悔!无奈,只能重新布置代码了。
总结一下吧。
工程从7月底开始,当时感觉知识储备充分了,开始打代码。主要时间当然还是花在了编写声音上,开发途中随着问题的产生也在不断修炼合成知识。一个ganK合成器做出来,也只能说是合成的最基本最传统的知识掌握了。投身合成领域后,每每听歌听到合成器的声音就触动情绪,但那些却一般是被大众忽略的声音,pop,anime song/BGM,game song/BGM,这些类型的音乐合成器的比重很大,尤其anime和game。
说远了。继续总结。一个ganK做出来,副收获就是对使用合成器“大通”,对面向对象小熟。所以说,对我cs上的学业的帮助不能说一点没有,却也少之又少。但也总比没有好。
往后,每天布置一点gank vst的代码,运气好的时候调一调gank音色,然后存在预置音色里。这里提供一个gank应用程序的下载,免安装。
 
 
 
在关于界面里放上了人大信息和爱乐人徽标。
October 12

ganK的界面终于完工

今天终于把gank的界面拼装出来了,剩下就是把核心合成代码整装进去。
 
GUI的绘图找的周经纬哥哥,有点对不起他,工作那么忙,还无偿给我画画。他现在在中影集团下属的动画公司做动画前期,目前在画长江七号电影版,春节上映但是他说要是那时候能完成进度就创纪录了。。他的导演现在点名要他天天加班到九点,在此略表同情。
言归正传,我对这个gui是很满意的,因为我肯定画不出来。周说他也是第一次要按像素要求绘图,也不专业。其实没事,很好了,这些没有客观硬性标准,仁者见仁的东西,只要自成一体就能符合绝大多数的审美。
 
至于说把核心的合成代码从我原来的程序里整合进gank去,这事可能得稍微拖得久一点,毕竟要改一些封装上的东西,之前就为了调音色,类写得很乱。所以打算正好借我现在写合成引擎代码的机会,用新写的引擎的类。引擎就叫ARIA Synth Engine,因为最近看了久负盛名的《水星领航员》(ARIA),这动画真是慢得可以,每看必睡,是进入深度睡眠的好催眠素材。
管它名字叫什么,反正是逗自己玩,叫着舒服的没意义的东西。现在开始慢慢封装吧。
 
 
August 16

啊咔~ 最近改动不少~

今天更新合成器ganK,把lfo撤了,暂时先不理会。上周如愿以偿把总输出的release做了出来,implemented后暗骂自己当初遇难而退,其实很简单的实现,当时应该再多想一会,还是太急功近利了。besides,这回还给每个振荡器做了detune功能,给方波加了调宽度的功能,给每个加了一个double(自己起得名字),其实是附加一个低几十音分的wave
 
不过,这做出来才知道,有release效果一下好不少。
 
后来,又用了几天把做了filter的envelope,就是对cutoff进行小调制。
 
往后想增强一下立体声效果。但还没思路。现在只是做了个delay。
 
现在是这个样子,现在正在筹备均衡器eq和gui.
 

 

 
下载地址(skydrive):
 
August 02

漫无止境的八月,开始

First of August, 属于我的漫无止境的八月开始了,我居然深井冰地又看了一遍suzumiya haruhi,真有够缺的。新的收获就是阿虚吐槽真疯,以及op ed的变调就像片中的时空一样扭曲。

      Understanding Digital  Signal Processing一书确实能给我这样的初学者带来不少收获。不过到了一定程度想简单也简单不了了。现在停在了IIR这里,只能看懂FIR。

      通过这几天阅读的知识储备,今天拿matlab做了一些fft和ifft的试验,然后开始着手用FIR做一个EQ,尽管网上说EQ都用IIR做,但谁叫还不明白IIR。。那就没辙了。

      我的思路就是写一个FIR的类,然后纸上画一个想要的滤波器的频率响应,然后用matlab做逆fft得到FIR的滤波器系数,然后做成插件看看。于是很快地写了代码,32抽头FIR。方便起见,就把它做成vst插件了,build完了把dll放在Nuendo的vst-plugin里调用。我随意画了一个频率响应,但总体上是低通。现在,该EQ的效果实质为毁坏频谱。

 

July 21

First synth [加减法,JUCE]

尽管能调的东西还不多,声音也还不够dynamic,但仅是做到这样,也确实花了不少精力和时间,熟悉运用JUCE是一方面,学习合成知识是另一方面。
    
     总之,这个synth trial的全部知识来自The Computer Music Tutorial以及网络资源,后者包括www.musicdsp.org。滤波器的代码还没有能力实现,所以用的是在musicdsp.org上找到的Moogfilter伪代码,是一个效果不错的低通滤波器。其他部分都自己完成,当然,我这个合成器里除了filter似乎也没什么难的了。
 
 
      做了3个振荡器(可以产生4种波形,可以打开或关闭振荡器,图中上面3个),一个低通滤波器(中间一排左边两个),一个overall amplitude包络(中间的中间3个),一个LFO(中间右边3个),LFO在这里没什么应用,因为这个LFO只能对最终输出信号作用(一般lfo不这么用)。
      最下面是一个产生midi信息的键盘。支持复音数为5,即最多能同时按5个键。当你用鼠标点过里面的虚拟键盘后,可以用电脑键盘的A和Q所在的两行来触发midi信息,可以称之为弹琴吧~哈。不过一旦转了转盘或者点了按钮,就不响应电脑键盘了(焦点问题?不知道怎么解决),需要重新点一下虚拟键盘才能再次获得电脑键盘的焦点。
 
      做这个Synth用的原理真的是不能再基础了。振荡器(oscillator)每个是一个波表,键盘触发midi信息后程序得到所触发的音的频率,如A4标准音是440Hz,然后根据公式:

increment = wavetableSize * note frequency / samplerate,
 
      这里的samplerate当然是44100Hz,wavetableSize我用的是4096 (2^12),如果note frequency是440Hz,由此就可以得到增量increment的值,这个值是读取波表时每读一次索引值的增加量,超过最大索引值(4095,我的tablesize是4096)后就做取余,这也是为什么选2的方幂做tablesize的原因,因为要跟4095 (4096 - 1)取余。
       振荡器没有做interpolation(内插值算法),因为还不懂。用内插值是必要的。因为得到的increment不会是整数值,但是wavetable(数组)的索引都是int,所以不能仅仅就近取值,应该通过数学方法获得最接近原函数的值,这就要用interpolation。我看到的方法中一般有linear interpolation(线性内插),spline interpolation(不知道怎么翻译),里面的原理好像是要解出一个3次方程组的系数(一般就弄到3次,cubic spline interpolaion)。期待着能做出的那天。
 
       现在这个先停了,以后要再做修改,要能让振荡器设置所在8度。再做对滤波器的包络,以便得到更动态的声音。
      The Computer Music Tutorial看到了FM,打算也要实现一下基本功能。
 
       这个合成器Juce1.exe可以从skydrive里下载。

July 17

用JUCE自己做的Snake和Tetris

这是我在JUCE框架下diy的贪食蛇和俄罗斯方块,贪食蛇是直接绘图,所谓paint里再draw,俄罗斯方块后来实在忍不了,还是用了图片。算法是自己的,但肯定是一般人都能想得到的那种。
Snake:                                                                                        Tetris:
                                                                                                   
                                                    
 
 
对于俄罗斯方块,不仅不是bug-free,而是bug's spawn。
 
skydrive 里有下载:
 
 

JUCE(c++ classes) Library

当初在逛kvraudio论坛的时候第一次得知JUCE这个类库,一直到现在总在跟它打交道。
 
"JUCE is a powerful cross-platform C++ toolkit for developing applications and plugins on Windows, Mac OSX and Linux."
 
这个类库原本是作为一个音频软件的一部分的一个分支项目,但后来独立出来了。最终的结果就是一个对音频、MIDI方面有很多支持的类库。百度百科有JUCE的介绍,也是我写的。
官网以及类库的下载:http://www.rawmaterialsoftware.com/
     
 
JUCE的GUI类似MAC,可以用官方提供的附带软件JUCER自行设计GUI,并自动生成代码。      
 
但其实JUCE的主要优势和用途还是音频,它还wrap了vst, RTAS等的sdk。可以做plug in。很多音频厂商都是JUCE用户:presonus, cycling 74, Imageline(水果那个公司),m-audio, native instrument等等,够大牌的了我觉得。
如下是Imageline的几个用JUCE开发的合成器:
morphine
Poizone:
 
当然,JUCE还可以给学生学习编程用。
我现在用的就是vs2005 + JUCE,目前为止感觉很方便。再发些日志贴我用JUCE做的东西吧,然后也放在skydrive里。
 

得重拾space了,校内毕竟不公开,用这里来做学习积累

希望space能让我满意。
     大一转瞬即逝,自己尽管没有什么漂亮的成绩,但确实充实了不少东西,尤其在专业方面,可以算是进门了,知道了CS领域极其周边到底是个什么地形地貌。从不入门到入门都很容易,再往后走就艰难困阻了。但是,入了门总比门还都没入好吧!?想到这,慰藉充满心胸。
     编程确实挺有意思,准确的说,是software developing有意思。从一点想法,到最后的实现,曲折而又刺激。
     这一年做了多少不该做的事呢,呵呵。熟悉了vst2.4 sdk(其实也就是看了一些),用MFC做了最简单的贪食蛇,然后认识了JUCE,用JUCE做了贪食蛇和Tetris,算是对JUCE有了了解。在开始学computer music以后,知道最近,完成了一个很学生很基本的所谓“加减法合成器”。其实这些都是大一下做的,是最近一个学期的事。
     现在来说,c++这把刀已经能比霍了,但是离开刃还早。
    
 

 
Photo 1 of 9
More albums (1)
感谢访问!
Please wait...
Sorry, the comment you entered is too long. Please shorten it.
You didn't enter anything. Please try again.
Sorry, we can't add your comment right now. Please try again later.
To add a comment, you need permission from your parent. Ask for permission
Your parent has turned off comments.
Sorry, we can't delete your comment right now. Please try again later.
You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
Complete the security check below to finish leaving your comment.
The characters you type in the security check must match the characters in the picture or audio.
少多 谢wrote:
两个问号意味深远啊。。
Oct. 27
持 许wrote:
那我来第二个留言吧~继续努力~争取给未来将突飞猛进(?)的中国动漫(?)的配乐做出贡献。。
Oct. 27
少多 谢wrote:
恩,好~
话说你这个是第一个留言
Aug. 20
朱 朱wrote:
能做自己喜欢的事情真开心:)继续关注中.....
Aug. 20