サクラトップ > 掲示板トップ > 投稿フォーム
曲の投稿にはユーザー登録が必要です。 曲 名 作 者 名前: パスワード: 転 載 全て許可 全て許可 メール連絡すれば可 許可しない (ゲームのBGMなど使いたい場合、許可するかどうかを指定。 サクラ本体への収録はあらかじめご承諾ください。) ゲーム制作サイト「Rmake」への転載(およびMP3変換)を許可する ジャンル ダンス・エレクトロニカ ポップス ハードロック・ヘヴィーメタル ヒップホップ クラシック 歌謡曲・演歌 J-POP ロック ブルース・カントリー ダンス・エレクトロニカ ワールド アニメ・ゲーム 日本の伝統音楽・芸能 オルタナティヴロック ソウル・R&B ジャズ・フュージョン ヒーリング・ニューエイジ キッズ・ファミリー 音 源 (パソコン内蔵音源、GS音源、GM音源など) 公開 公開する 削除する (公開を中止して削除するときには、この項目を変更します。) コメント ソースが異常に汚いので、いま作り直しているのですが、 その際の参考、また今後の参考にしたいので、辛口評価でお願いします。 散々叩かれるのも覚悟のうえです。 曲データ(サクラから貼り付けます。) /* Thank you for downloading! I DON'T FEEL TIRED by Grandy 最近やっと曲作りのコツがつかめてきた気がするGrandyです。 今回は、ソースが異常に汚く、今新しいテンプレートで作り直しているのですが、 一度投稿して、アドバイスなどを受けたいと思い、公開しました。 著作権は放棄するので、どんなことしてもいいです。(ぉ */ Int K = -4 // キー Int FR = 10 // CCの書き込み頻度 Int MasterTune = 71 // ますたーちゅーん // 64=440Hz 67=441Hz 69=442Hz // この出し方は一番下にあります //------------------------------------------------------------------------------ TimeBase=480 // 四分音符分解能、弄るとおかしくなる //--- 定義ファイルの読み込み ---// Include(gs.h);Include(chord2.h) Include(unison.h)//Include(bwb_guitar.h) Include(delay.h)Include(fadeio.h) //------ コンパイルの設定 ------// // 途中から演奏する時の設定 PlayFrom(-1:1:0) // どこから再生するか PlayFrom.SysEx(on) // SysExを先読みするか PlayFrom.CtrlChg(on) // コントロールチェンジを先読みするか PlayFrom.RPN_NRPN(on) // RPN,NPRNを先読みするか PlayFrom.Wait=(480) // どんだけ先読みに時間をかけるか System.ControllerShift(0) // 都合 //Mute(1) // 指定トラックを消して演奏 //Solo(1) // 指定トラックを単独で演奏 //------ CC(こんとろーるちぇんじ)を書き込む頻度 ------// Expression.Frequency(FR) // えくすぷれっしょん Modulation.Frequency(FR) // もじゅれーしょん //PitchBend.Frequency(FR) // ぴっちべんど Chorus.Frequency(FR) // こーらす Reverb.Frequency(FR) // りばーぶ MainVolume.Frequency(FR) // めいんぼりゅーむ Panpot.Frequency(FR) // ぱんぽっと DataMSB.Frequency(FR) // でーたえんとりーえむえすびー DataLSB.Frequency(FR) // でーたえんとりーえるえすびー //----------- MIDIデータ部 -----------// System.MeasureShift=1 // 小節をずらす Tempo=120 // 曲のテンポに拘わらず120で固定したほうがいい TimeSignature=4,4 // ここが問題、原曲の拍子を無視するか? Port(0) // ポートの設定、普通は設定の必要ない ResetGM; // 音源の初期化(GM System On) r*6 // 休符に*をつけると発音イベントを行わない ResetGS; // 音源の初期化(GS Reset) r*6 // GMリセットっているの?(マテコラ //------------------------------------------------------------------------------ // システムエクスクルーシブメッセージ //SysEx$ = f0,41,10,42,12,{40,1a,15,02},f7; // CH11をドラムセット化 //SysEx$ = f0,41,10,42,12,{40,1b,15,02},f7; // CH12をドラム(ry //SysEx$ = f0,41,10,42,12,{40,1c,15,02},f7; // CH13を(ry //SysEx$ = f0,41,10,42,12,{40,1d,15,02},f7; // (ry r*6 //------------------------------------------------------------------------------ //-------- からくり --------// Str \ = {Solo(Track)} // デバッグ用 Str / = {Mute(Track)} Str DB = {PrintTime} Str TD = {PrintTrack} Int Kankaku = 8 // PRS関数の楽器の間隔 Int ArpDefSpeed = !64 Int ArpDefMaxN = 16 Array TS = (4,4) // 拍子 //--------// Function PRS(Len){Len = Len*Kankaku;Panpot(64+Len)} // じゅやう様作、パンを使いやすくする関数 Function OU(Str S,Int vol){ // おくたーぶゆにぞん Int ob=MML(o);Int ov=MML(v); Sub{v(ov+vol);o(ob+1);S}v(ov);o(ob);S; }Function OU2(Str S,Int vol1,Int vol2){ // 1oct.,2oct.上 Int ob=MML(o);Int vo=MML(v); Sub{Sub{v(vo+vol2);o(ob+2);S}v(vo+vol1);o(ob+1);S}v(vo);o(ob);S; }Function OU3(Str S,Int vol){ // 2oct.上 Int ob=MML(o);Int vo=MML(v); Sub{v(vo+vol);o(ob+2);S}v(vo);o(ob)S; } // Mode=0で単音 Mode=1で複数 Function OM(Str S,Mode,Octave){ // モードを指定してゆにぞん Int BO=MML(o); IF(Mode==0){Sub{o(BO+Octave);S}o(BO)S;} IF(Mode==1){ Int i=0; [(Octave+1) o(BO) Sub{S} BO++] } } /* Pokoさん作 アルペジオ奏法 * Chord = 和音を指定。 * Speed = 各音の間隔の長さ(省略時は ArpDefSpeed 値) * MaxN = 最大許容音数(省略時は ArpDefMaxN 値)*/ Function Arp(Str Chord, Speed, MaxN){Int BackUp_t = MML(t);Int BackUp_q_ = MML(q_); If(Speed == 0){Speed = ArpDefSpeed;}If(MaxN == 0){MaxN = ArpDefMaxN;} Array Timing;Array CmpGate; For(Int I = 0; I0; i--){ // 127〜0まで書き込む IF(i==0){ // もし、最後(0を書き込むとき)、 IF(Mod!=0){ // 余りがあるならば、 r*%(Mod)MV(i);Exit // 最後に間を空ける。 } } MV(i) // マスターボリュームを書き込む r*%(Fre) } Time(Taim);TR=BTRK;CH=BCHA; } Int FI; // RPN(れじすたーどぱらめーたーなんばー)の設定 Function RPNSET(br,fine,coars){ // RPNの設定 Int BAK_Len = MML(l) // 今のLen値をコピー FI = MasterTune + fine // チューニング、127か0超えたら知らん Time(0:4:0) // 4泊目が暇なので、仕事を入れる r*%(Channel*30-30) // 480/16は30なので、1チャンネルに30の時間がある l%2 //全部で14個のCCを入れるので、2×14=28にする y101,0;r*;y100,0;r*;y6,(br);r*;y38,0;r*; // ぴっちべんどせんしびりてぃー y101,0;r*;y100,1;r*;y6,(FI);r*;y38,0;r*; // ふぁいんちゅーん y101,0;r*;y100,2;r*;y6,(coars);r*;y38,0;r*; // こーすちゅーん y101,127;r*;y100,127;//r*;y6,0;r*;y38,0;r*; // RPNぬる l!(BAK_Len) // なんで!を付けるんだろう…(殴 // BRは2,あとは64が初期値 } Function CSET(ch,prog,Msb,Lsb,tk,vel,len,onk,gat,H,Vo,Ep,pan,cho,rev,m,pit,vra,qra,tra,Str gak){ // チャンネルの設定 //Int B_Time=Time; // 今の時間を記憶 CH(ch);Time(0:3:0) // それを指定トラックに r*%(ch*30-30);l%3 // チャンネル毎にずらす(30=480/16/10(書き込む値の数)) y0,(Msb)r*;y32,(Lsb)r*;@(prog)r*; // 間を空けて書き込んでゆく V(Vo)r*;PRS(pan)r*;REV(rev)r*;CHO(cho)r*; r*;M(m)r*;p%(pit)r*;EP(Ep)r*;// TrackName=gak // ←TWMUSICのモニターに楽器名がずらずら出るのがイヤなので省略 TrackKey=tk;v(vel);l(len);o(onk);q(gat);h(H) // 間の必要ない、サクラ独自の命令 v.Random(vra);q.Random(qra);t.Random(tra); // Time(B_Time);TR=0;CH=1 // 事情により戻す } // トラックの設定(既にCSETでチャンネルの設定を終えたとこのみ) Function TSET(ch,tk,vel,len,onk,gat,H,vra,qra,tra,Str gak){ // トラックの設定 CH(ch) TrackKey=tk;v(vel);l(len);o(onk);q(gat);h(H) v.Random(vra);q.Random(qra);t.Random(tra); } //------------------------------------------------------------------------------ //-------- 曲の中身 --------// TrackName={"I DON'T FEEL TIRED"} Copyright={"Copyrights(c) 2006 by Grandy"} MetaText={"DLありがとうございます。"} // TW-MUSIC用設定 // ReverbSetting Time Dpth High CuePoint={"TwmParam( 100,100, 050 )"} // リバーブの長さ,深さ,高音部 // ChorusSetting Wave Mix Dpth FB Freq Dly Phs CuePoint={"TwmChorus( 001, 055, 050, 060, 040, 075, 003 )"} // コーラスの形状,混ぜ具合,深さ,重ね,長さ,遅延,位相 /*Waveform(0〜1),WetDryMix(0〜127),Depth(0〜127), Feedback(0〜127),Frequency(0〜127),Delay(0〜127),Phase(0〜4)*/ //--- チャンネル、トラックの設定 ---// // CSET(CH,Prg,MSB,LSB.TK,vel,len,ok,gat,h,Vol,Exp,PRS,CHO,REV,Mod,Pitch,vRa,qRa,tRa,"gakki") TR 1 CSET(01,003,008,000,+0,110,008,05,100,4,125,050,+00,030,030,000,+0000,000,000,000,"Chord") TR 3 CSET(02,011,000,000,+0,127,016,06,100,4,120,127,+01,020,020,000,+0000,000,000,000,"Merody1") TR 4 CSET(03,082,001,000,+0,127,016,06,100,4,110,127,-01,020,020,000,+0000,000,000,000,"Merody2") TR 5 CSET(04,037,000,000,+0,100,008,02,100,4,090,127,+02,015,020,000,-0114,000,000,000,"Bass") TR 6 CSET(05,052,000,000,+0,100,001,05,100,4,080,127,+00,050,020,000,+0000,000,000,000,"Strings") TR 7 CSET(06,019,002,000,+0,127,004,05,100,4,100,127,-02,025,020,000,+0000,000,000,000,"SFX") TR 8 CSET(07,072,000,000,+0,100,008,05,100,4,080,127,+03,015,035,010,+0000,000,000,000,"Clarinet") //TR 9 CSET(08,088,000,000,+0,080,008,03,100,4,098,127,-04,010,010,005,-0114,000,000,000,"Bass2") TR 10 CSET(10,025,000,000,+0,127,008,05,030,4,127,127,-03,050,127,000,+8192,025,000,015,"Drum") // TSET(CH,TK,vel,len,onk,gat,h,vRa,qRa,tRa,"gakki") TR 2 TSET(01,+0,127,008,006,100,4,001,000,000,"Mero") //-------------// // RPNSet( BR,Fin,Coars) TR 2 RPNSET(024,+00,064) // 後の方のTRへ TR 3 RPNSET(024,+10,064) TR 4 RPNSET(024,-10,064) TR 5 RPNSET(024,+05,064) TR 6 RPNSET(024,-05,064) TR 7 RPNSET(050,+15,064) TR 8 RPNSET(020,-08,064) //TR 9 RPNSET(024,+00,064) TR 10 RPNSET(024,+00,064) //------------------------------------------------------------------------------ TR=0 //---------- 調号 ----------// //~~~~~~~~~~~~~~~~~~~~~a, b, c, d, e, f, g~~~~~~~~~~~~~~~~~~~~~// TimeKeyFlag((1:1:0),,(+0,+0,+0,+0,+0,+0,+0)) //---------- キー -----------// TimeKey((1:1:0),,K) // 指定した時間からキーを上げる TimeKey((97:1:0),,K+1) //---------- テンポ ----------// Int T = 135 // 基準のテンポ Time(1:1:0) Tempo = T //------------------------------------------------------------------------------ Time(1:1:0);TrackSync; //全てのトラックを同期 System.ControllerShift(4) // 都合。 //------------------------------------------------------------------------------ TR 1 /*イントロ Aメロ*/ /* イントロ | C | Dm | C F | C G | */ EP.T(50,127,!1^1^1^1) l.N(0,0,0,!8.,0,0,0,!8.,0,0,0,!8.,0,0,0,!8.,0,0,0,!4) v_.N(-10,-8,-5,+0) //t.N(0,1,2,3) // | C | Dm | C F | C G | [8 [5"gceg][5"adfa]["gceg][3"acfa]["gceg][3"g"bdg] ] // このへんから吹っ切れていく //---------------- [ // | C△7 | C7 | Am7(C6?) | E7aug E7 | [5cegb][5cegb-][5cega][2cdeg+][3"bdeg+] // | Bm7-5 | Bm7 | Dm7/G | G7sus4 G7 | [5"bdfa][5"bdf+a][5"gcdf]["fcdg][3"f"bdg] ] // | C | Dm | C F | C G | [4 [5"gceg][5"adfa]["gceg][3"acfa]["gceg][3"g"bdg] ] //------------ // | F△7 | Cadd9 | Dm7 | Db7 G7 | [ [5"fca`e][5"gce`d][5"adf`c]["a-d-eb][3"gdfb] // | C△7 | C△7 | Bm-5 | Fm6 C | [10"gceb][5"bdfa]["f`cda-][3"gce`c] ] //---------------------- // | C | Dm | C F | C G | [4 [5"gceg][5"adfa]["gceg][3"acfa]["gceg][3"g"bdg] ] // [4 [5"gceg][5"adfa]["gceg][3"acfa]["gceg][3"g"bdg] ] FadeOut(8) [ [5"gceg][5"adfa]["gceg][3"acfa]["gceg][3"g"bdg] ] /*Arp({'""g"gceg`c`g``c'1^4},!64):*/ /* // | C△7 | C7 | C6 | E7 | [5cegb][5cegb-][5cega][5"bdeg+] // | Am7 | Dm7 | Gsus4 | G7 |]*/ //------------------------------------------------------------------------------ TR 2 [16r*1] #Tension={ 'ce'.'ce'.'ce'.'ce'.'ce'^ 'ad'.'ad'.'ad'.'ae'.'ad'^ 'gc'.'gc'.'fc'.'fc'.'fc'^ 'ce'.'ce'.'"bd'.'"bd'.'"bd'^ } [#Tension]OU{[#Tension]} Time(49:1:0) [#Tension] OU({[#Tension]},-8) Time(89:1:0) /*#Tension2={ 'cg'.'cg'.'cg'.'cg'.'cg'^ 'df'.'df'.'df'.'df'.'df'^ 'ce'.'ce'.'cf'.'cf'.'cf'^ 'cg'.'cg'.'dg'.'dg'.'dg'^ }*/ [#Tension] // [#Tension]OU{[#Tension]} [#Tension] //r*4;ResetGS;r*4;TrackSync; //------------------------------------------------------------------------------ TR 3 [32r*1] #MERO={ M.W(0,127,!1^1^1^1) EP.W(127,0,!1^1) l8 gab`c^gab gab-ag^l16agfel8 d^^e^^f^e^^^^^^^ d2.e8f8f+1 gf+gag^^ag1 b1^1 a1^1 "bcdel16"bcde"bcde "bcde"bcdecdefdefg 'cg'1'bd'1 } OU{#MERO} Time(65:1:0) #MERO2={ l8 [ fefefefeedededed dcdcdcdcc"bc"bc"b"a^ c"bcdecdee.f.g^^^a b4.`d`cba^a-.`c.:`c^^^^ ]p%.T(0,-4779,!4.)`d^^^p%0 } OU{#MERO2} /*[8r1] P.N(44,64,84,64) EP.T(80,127,!1^1) [ [4"gcec][4"adfd]["gcec]["acfc]["gcec]["g"bd"b] ] */ //------------------------------------------------------------------------------ TR 4 [32r*1] t10 OU{#MERO} @81,8 Time(65:1:0) OU{#MERO2} //------------------------------------------------------------------------------ TR 5 [8r*1] EP.W(127,0,!4) #BASSPattern={ OU({ [6rgrgrgrg rararara rgrgrara rgrgrfrf] // | C△7 | C7 | Am7 | E7aug E7 | // | Bm7-5 | Bm7 | Dm7/G | G7sus4 G7 | [ rererere rererere rgrgrfre rdrdrdrc rbrbrbrb rbrbrbrb>rcrcrcrcrcrcrcrc ] // | C | Dm | C F | C G | [8rgrgrgrg rararara rgrgrara rgrgrfrf] },+2) } #BASSPattern; //------------------------------------------------------------------------------ TR 6 [16r*1] M.W(0,127,!1^1) P.WR(64-15,64+15,!4,64+15,64-15,!4) //EP.W(80,127,!8) [4'"c"gc`e' '"d"fd`f' '"c"gc`g'2'"c"fc`f'2 '"c"gc`g'2'""b"g"b`d'2 ] // | C△7 | C7 | Am7 | E7aug E7 | // | Bm7-5 | Bm7 | Dm7/G | G7sus4 G7 | [ '""beg`c''""b-eg`c''""aeg`c''""g+eg+b'2'""g+eg+`c'2 '""a"bf`d''""a"bf+`d''""gcf`d''""gcf`d'2'""g"bf`d'2 ] [4'"c"gc`e' '"d"fd`f' '"c"gc`g'2'"c"fc`f'2 '"c"gc`g'2'""b"g"b`d'2 ] // | F△7 | Cadd9 | Dm7 | Db7 G7 | // | C△7 | C△7 | Bm-5 | Fm6 C | [ '""fac`e''""gce`d''""fda`c''""a-"bd-`e'2'""g"bd`f'2 '""gcb`e''""gcb`e''""f"bd`f''""a-cf`d'2'""geg`c'2 ] // | C | Dm | C F | C G | [8'"c"gc`e' '"d"fd`f' '"c"gc`g'2'"c"fc`f'2 '"c"gc`g'2'""b"g"b`d'2 ] //------------------------------------------------------------------------------ TR 7 UseKeyShift=off [16r*1]r-4 p%.T(8192,0,!4) // ちーぃっ >'"gcde'< @126,7 CHO(127) Time(32:3:0) BR(100)p%(8192) EP.T(30,127,!2) P.T(0,127,!4,127,0,!4) 'cdef+g+a+'2,,127 @20 CHO(30) Time(48:4:0) BR(50) p%.T(8192,-4000,!4) >'"g+cde'4< @126,3 Time(64:4:0) p%.T(-3000,8192,!4) P(64) EP(127) '"gabcde'4 @126,7 CHO(127) Time(80:4:0)r-1r1 BR(50) p%8192 EP.T(50,127,!4) >'"g+cde'4< @20CHO(30) Time(96:4:0)r-1r1 BR(50) p%.T(-8192,8192,!4) >TrackKey=+1'"g+cde'4< TrackKey=0; @126,7CHO(127) Time(112:3:0)r-1r1 BR(100)p%(8192) EP.T(30,127,!2) P.T(0,127,!4,127,0,!4) 'cdef+g+a+'2,,127 //------------------------------------------------------------------------------ TR 8 UseKeyShift=on Time(41:1:0) OU3({ gab`c^gab gab-ag^l16agfel8 d^^e^^f^e^^^^^^^ d2.e8f8f+1 gf+gag^^ag1 },+10) Time(73:1:0) //------------------------------------------------------------------------------ /*TR 9 [8r*1] t8 #BASSPattern; */ //------------------------------------------------------------------------------ TR 10 UseKeyShift=off // Toms ~{でょ}={n(LowTom2),} ~{ぢぇ}={n(LowTom2),} ~{ちょ}={n(MidTom2),} ~{くょ}={n(MidTom1),} ~{ちゅ}={n(HighTom2),} ~{てゅ}={n(HighTom1),} // Kicks ~{ど}={n(Kick1),} ~{と}={n(Kick2),} // Snares ~{た}={n(Snare1),} ~{だ}={n(Snare2),} // Cymbals ~{つ}={n(ClosedHiHat),} ~{つゅ}={n(PedalHiHat),} ~{ぱ}={n(OpenHiHat),} ~{くぁ}={n(CrashCymbal1),} ~{ぢょ}={n(CrashCymbal2),} ~{きゃ}={n(RideCymbal1),} ~{きょ}={n(RideCymbal2),} ~{ちゃ}={n(ChineseCymbal),}~{じょ}={n(SplashCymbal),} // Others ~{ぽ}={n(HandClap),} ~{か}={n(Sticks),} ~{ち}={n(MuteTriangle),}~{ちぃ}={n(OpenTriangle),} ~{き}={n(MuteCuica),} ~{きぁ}={n(OpenCuica),} ~{にょ}={n(HighTimbale),} ~{にぃ}={n(LowTimbale),} ~{りょ}={n(HighAgogo),} ~{り}={n(LowAgogo),} // Closed Hi-Hat,Pedal,Hi-Hat,Open Hi-Hatは一緒に鳴らせない //-----------------// [8r*1]r-4 p%.T(+8192,-$400,!4) l16てゅくょぢぇー@1 #DrBASE={ くぁ,,127r- // Kicks v110l4 S{ [8'どと''どと',,+10'どと''どと',,+10] } // PedalHiHat l16v105 S{ [32つゅーつ,,+10つゅ] } // Snare l4v44 S{ [16l12たった'ただ',,120った] } l12v37 S{ [16りーりりょーりょ] } // Others l16v50 [[7ちっちぃーちっちぃー]ちちっちちぃーちぃー] } //RP_SET; [7#DrBASE;] [4#DrBASE;] [#DrBASE;] //Time(33:1:0) //@26 //RP_EXE("P.T(64-30,64+30,!1^1,64+30,64-30,!1^1)",!1^1^1^1,0); //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ End; /* □分かりにくいマスターチューニングの値の求め方■ このMML内でのマスターチューニングは、TW-MUSIC2用に ファインチューンというものを使っているため、少し計算をする必要がある。 基本になる周波数(普通は440(Hz))をf0, 使いたい周波数をf1とした時、f0とf1のセント値の差は、 cent = 1200 * log(f1 / f0) / log2 // ただし、この時の対数の底は10とする で求められる。442Hzにしたいならば、 cent = 1200 * log(442 / 440) / log2 となり、約7.85centとなる。 これを、ファインチューニングの値に直すと、 FineTune = cent / (199 / 127) + 64 であり、442Hzなら69.0107021、四捨五入して69となる。 …文章下手だな…(^^; 要するに、 (1200 * log(F / 440) / log2) / (199 / 127) + 64 を計算すればいいってことです。 //ちなみに、これで127を指定すると466Hz, //0を指定すれば,415Hzとなる。 これらの計算は、Googleの電卓機能で簡単に計算できる。 442Hzの時の値を計算した例 http://www.google.com/search?num=50&hl=ja&safe=off&q=%281200+*+log%28442%2F440%29+%2F+log%282%29%29+%2F+%28199+%2F+127%29+%2B+64&lr=lang_ja 参考にさせてもらったサイト サクラ質問の板 過去ログ http://oto.chu.jp/cgi/sakura-q/srch.cgi?mode=log&logs=47.txt&page=40&no=0 の小谷さんの書き込み SSW テクニカルサポートデータベース http://www1.ssw.co.jp/techdb/read.php?FID=18&TID=273 */ この曲は自作のオリジナル曲であるか、または、作曲者の死後50年以上経過した著作権に問題がない曲であることを確認しましたか? いいえ。よく分かりません はい。著作権に問題ありません (←選択)