录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

【转】Resonance Grand Model D Concert Grand – 星海钢琴

( 38 )
 
[收藏]
-  第 3 页  -

175
#31 18-7-5 19:20
本帖最后由 molly_kang 于 18-7-5 19:21 编辑

如果这个音色有问题,请自己修复里面的bug。我只是拿到了这个样本自己重新再改了一下,里面应该会有bug。不要太过于相信那个别人制作的用户界面。我一般不用那个,自己在音色组里面定义和调整。

175
#32 18-7-5 19:35
本帖最后由 molly_kang 于 18-7-5 19:38 编辑
007150814 发表于 18-7-4 21:40
国人品牌,国人采样,国人制作,必须支持

赞,这个好像原作者没放版权,我自己重制的乐器也你们拿去随便实验,本来重制的一个也是只实验了几个曲子而已。

175
#33 18-7-5 19:41
本帖最后由 molly_kang 于 18-7-7 09:08 编辑

此楼删除

1205
#34 18-7-6 09:03
molly_kang 发表于 18-7-5 19:02
https://github.com/RobertBoganKang/Resonance_Grand__Model_D_Concert_Grand/tree/master/src/Instrume ...

谢谢lz

175
#35 18-7-7 09:07

今天又抄了一段代码,里面的延音问题解决了。下载最新我上传的乐器nki

255
#36 18-7-7 11:55
感谢!!!

1205
#37 18-7-7 18:39
molly_kang 发表于 18-7-7 09:07
今天又抄了一段代码,里面的延音问题解决了。下载最新我上传的乐器nki

lz 威武~!!

175
#38 18-7-7 21:45
本帖最后由 molly_kang 于 18-7-8 21:38 编辑

累死了,对于我这个新手做乐器到处都不知道咋搞,就是修一个release的bug自己还参考了好多程序,最终我自己搞出了一个还可以用的。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
里面是使用双数组法,一个存音的id,一个存id对应音符对应的音符。重构了音的行为,让音只能在踏板外才可以使用。但原版的程序对于多个音叠加就会出现release采样的叠加出现音爆。我自己加了一个函数先让它除了release去延音,但里面自动抵消它的release的个数,每次新的音过来后就把新的音其他重复的音全部清空(但没有release采样播放),其他行为和原版的那个代码一样。
on init
        declare const $NONE := 0
        declare $i
        declare %ids[512] { active event IDs in no particular order, NONE for unused elements }
        declare %notes[512] { note number for each of the above events }
        { turn off Kontakt's builtin sustain pedal script }
        SET_CONDITION(NO_SYS_SCRIPT_PEDAL)
end on

on note
        if (%CC[64] >= 64)
                { clean up all release event except itself }
                $i := 0
                while ($i < num_elements(%ids))
                        if (%ids[$i] # $NONE and %notes[$i] = $EVENT_NOTE)
                                note_off(%ids[$i])
                                %ids[$i] := $NONE
                        end if
                        inc($i)
                end while
                { disallow all groups, only allow non-release sample trigger }
                disallow_group($ALL_GROUPS)
                $i := 0
                while ($i < $NUM_GROUPS)
                        if (_get_engine_par($ENGINE_PAR_RELEASE_TRIGGER, $i, -1, -1) = 0)
                                allow_group($i)
                        end if
                        inc($i)
                end while
        end if
        { add this note event to the first empty array slot }
        $i := search(%ids, 0)
        if ($i # -1)
                %ids[$i] := $EVENT_ID
                %notes[$i] := $EVENT_NOTE
        else
                ignore_event($EVENT_ID) { just a safety precaution in case the polyphony would reach 512 }
        end if
end on

on release
        note_off ($EVENT_ID)
        if (%CC[64] >= 64)
                { ignore note-off when sustain pedal is pressed }
                ignore_event($EVENT_ID)
        else
                $i := 0
                while ($i < num_elements(%ids))
                        if (%ids[$i] # $NONE and %notes[$i] = $EVENT_NOTE)
                                note_off(%ids[$i])
                                %ids[$i] := $NONE
                        end if
                        inc($i)
                end while
        end if
end on

on controller
        { if sustain pedal released }
        if (%CC_TOUCHED[64] # 0 and %CC[64] < 64)
                { release all events for which the key is no longer held pressed }
                $i := 0
                while ($i < num_elements(%ids))
                        if (%ids[$i] # $NONE and %KEY_DOWN[%notes[$i]] = 0)
                                note_off(%ids[$i])
                                %ids[$i] := $NONE
                        end if
                        inc($i)
                end while
        end if
end on


175
#39 18-7-8 11:24

谢谢支持!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索