サクラトップ > 掲示板トップ > 投稿フォーム
曲の投稿にはユーザー登録が必要です。 曲 名 作 者 名前: パスワード: 転 載 全て許可 全て許可 メール連絡すれば可 許可しない (ゲームのBGMなど使いたい場合、許可するかどうかを指定。 サクラ本体への収録はあらかじめご承諾ください。) ゲーム制作サイト「Rmake」への転載(およびMP3変換)を許可する ジャンル ダンス・エレクトロニカ ポップス ハードロック・ヘヴィーメタル ヒップホップ クラシック 歌謡曲・演歌 J-POP ロック ブルース・カントリー ダンス・エレクトロニカ ワールド アニメ・ゲーム 日本の伝統音楽・芸能 オルタナティヴロック ソウル・R&B ジャズ・フュージョン ヒーリング・ニューエイジ キッズ・ファミリー 音 源 (パソコン内蔵音源、GS音源、GM音源など) 公開 公開する 削除する (公開を中止して削除するときには、この項目を変更します。) コメント 最近忙しくて久しぶりに曲が書けました。短いめのトランスコアです。感想頂ければ参考になります。MP3はhttp://www.geocities.jp/dolls_rosebud/mp3/rikka.mp3 曲データ(サクラから貼り付けます。) /* ■☆Rikka☆ 作成:さくらもどき 詳細 【推奨環境】ヘッドホン 【推奨音源】MP3,TWM2 【無断転用】可 【 編曲 】可 【ジャンル】 作成環境 【 OS 】WindoowsXP HomeEdition 【 音源 】TWM2、SoundFont 【出力環境】MDR-CD100 (ヘッドホン) RH-300 (ヘッドホン) HP-NC80 (ヘッドホン) UA-20 (オーディオI/O) ◆MEMO DLありがとうございます。 久しぶりの投稿になります。 最近バイトを始めたのですが、思った以上に忙しくて思うように曲をかけませんでした。 ・・・というわけで、『トランスコア』を作ってみました。 【TranceCore】 FreeFormと同じく、HardCoreDanceとかに分類されるジャンルの一つ。 通常のトランスがBPM130〜150程度であるのに対して、TranceCoreでは160〜190(〜220)程度と高速。 トランス界隈で近いジャンルはUplifting Trance、Epic Tranceといった所。 ただの早いだけのProgresive Tranceもコレに含まれることがある。 トランスの特徴的な高揚感をハードコアに足した感じ。 やはり、広義的なユーロトランスに分類されるんだろうか。 この曲はBPM185なのでその中でも割と高速な部類です。 短いですが、ちゃんとトランスコアできていればいいなと思います。 おそらく曲板では受けないだろうなーとおもいつつも投稿してみます。 反応がいいようならこの系統をもっと作ってみても面白いかも。 ■MP3 MP3はわりと本気ミックス入ってるのでもはや別物と化してます。 ・・・というよりは、曲の拙さを音でごまかしているだけなのですがw 音ネタとかはWEB WAVE LIB.(http://www.s-t-t.com/wwl/)よりお借りしました。 ・・・加工しすぎてもはや原形をとどめていないので元の声ネタが分かったらすごいと思いますw スクラッチとかも全部ここの声ネタ加工で作ってみました。 MP3とMMLでスクラッチが違うのはそのためです。 */ Key=1 曲名{"☆Rikka☆"} 作者{"SakuraModki"} ResetGS CH(11) SysEx$ = f0,41,10,42,12,{40,1a,15,02},f7; CH(12) SysEx$ = f0,41,10,42,12,{40,1b,15,02},f7; 拍子4,4 テンポ(185) 調#() Function R1(int){[(int)r1]} Function L1(int){Result=int*(!1)} Int Cnt=0 [16 TR=Cnt V=100 Cnt++] //====================================================================================== // Arpeggiator (09/08/28) //-------------------------------------------------------------------------------------- /* ■アルペジエーター関数仕様 ここまでは必ず入力 | ここからは任意に省略可能 -関数名 Arpeggiator( Code , Len , Paturn , lPaturn , Pmode , Range , Rmode , Phase , Shift) -引数 Code : 構成音 Len : 長さ Paturn : アルペジオパターン lPaturn : ノートの長さのパターン(省略時はその時点でのlを使用する) Pmode : パターンの再生方法(0:Normal 1:Revers) Range : オクターブのシフト幅(省略時は入力されたパターンによる) Rmode : オクターブのシフト方法(0:No 1:Note 2:Paturn 3:Revers Note 4:Revers Paturn) Phase : 位相 Shift : ノートシフト ●解説 -Code 構成音を記述します。 構成音は{a,c,e}のように{ }で括って , で区切ってください。 入力は内部で自動的にソートされるので記述する順番は任意です。 -Len アルペジオを適応する長さを指定します。 この長さにわたってアルペジエーターは実行されます。 動作終了後はLenだけ進んだ位置にTimeが指定されなおします。 パターンとLenがちょうど一致しない場合はLenに収まるように最後のノート短く切ります。 -Paturn アルペジオのノートのパターンを指定します。 パターンは数字で指定します。 0を基準として、数字が大きくなるほど高い音、小さくなるほど低い音になります。 これも和音と同様に{ }で括って , で区切らなくてはいけません。 通常のabcdefgの音符のように`や"の記号を用いて音階を上下することができます。 -lPaturn 省略可能な引数です。 アルペジオのノートの長さのパターンを指定します。 パターンはステップ数で指定します。 !付きのステップ数でも自動的に変換されます。 省略された場合はその時点でのlを使用します。 これも和音と同様に{ }で括って , で区切らなくてはいけません。 例)l8が指定されてこの引数が省略されれば8分音符のアルペジオになる。 {!8,!16}が指定されていれば8分と16分を交互に繰り返すのアルペジオになる。 -Pmode 省略可能な引数です。 パターンの再生方法を指定します。 0:パターンを通常の再生方法で再生します。 1:パターンを上下反転させて再生します。 省略時は0になります。 -Range 省略可能な引数です。 オクターブのシフト幅を決定します。 省略時にはパターンのシフト幅に依存します。 -Rmode 省略可能な引数です。 オクターブの変更方法を選択します。 0:オクターブを変更しません。 1:高いノートほど、高いオクターブで演奏します。 2:パターンの1ループごとに1オクターブを上げます。 3:高いノートほど、低いオクターブで演奏します。 4:パターンの1ループごとに1オクターブを下げます。 省略時には0になります。 -Phase 省略可能な引数です。 アルペジオパターンの位相をずらします。 lPaturnを指定している場合はその位相も同時にずれます。 省略時は0です。 例)パターン{1,2,3}の位相を1ずらすと{2,3,1}となる。 例)パターン{1,2,3}の位相を2ずらすと{3,1,2}となる。 -Shift 省略可能な引数です。 和音とパターンの対応をシフトします。 省略時は0です。 例){c,d,e}に1,2,3が対応している場合 1シフトすると{d,e,`c}に1,2,3が対応する。 例){c,d,e}に1,2,3が対応している場合-1シフトすると{"e,c,d}に1,2,3が対応する。 ■更新履歴 2009/08/28 : 関数実行後に音符の長さの指定がおかしくなる現象に対応 2009/08/27 : 仮公開 */ Function Arpeggiator(Array Argv){ //----------------------------------------- // 変数宣言 //----------------------------------------- Array NoteList=(); Array NoteNumList=(); Array PaturnNumList=(); Array LenNumList=(); Array OctNumList=(); Int Notenum = 0; Int Patunum = 0; Int PaturnMax = -128; Int Default_Len = MML(l); Int Default_Time = Time; Int Len = 0; Int Pmode = Argv(4); //パターンの再生方法(0:Normal 1:Revers) Int Range = Argv(5); //オクターブのシフト幅(省略時は入力されたノート数による) Int Rmode = Argv(6); //オクターブのシフト方法(0:Note 1:Paturn 2:Revers Note 3:Revers Paturn) Int Phase = Argv(7); //位相 Int Shift = Argv(8); //ノートシフト //汎用変数 Int Counter = 0; Int Buf = 0; Int Buf2 = 0; Int Flag = 0; Str Stbuf = ""; Str Stbuf2 = ""; //----------------------------------------- // 0:和音分析 //----------------------------------------- //渡された和音を読み込む Counter = 0 While(Flag == 0){ Flag = 1; Buf = POS( {","} , Argv(0) ); If(Buf != 0){ NoteList( Counter ) = MID( Argv(0) , 0 , Buf ); Stbuf = Argv(0); Argv(0) = MID(Argv(0) , Buf+1 , SizeOf(Stbuf) ); Flag = 0; IF(Counter == 128){ Flag = 1; } }Else{ Flag = 1; NoteList( Counter ) = Argv(0); } Counter++; } Notenum = Counter; Counter = 0; //読み込み完了。 //ノートをノートナンバーへ変換 [(Notenum) Flag = 0; Buf = 0; Stbuf = NoteList(Counter); While( POS({`},Stbuf) != 0){ Stbuf = Replace( Stbuf , {`} , {} , off) Buf++; } While( POS(CHR(34),Stbuf) != 0){ Stbuf = Replace( Stbuf , CHR(34) , {} , off) Buf--; } Stbuf = "NoteNumList(Counter) = NoteNo( "+Stbuf+" );" Stbuf; NoteNumList(Counter) = NoteNumList(Counter) + Buf*12; Counter++; ] IF(CodeMode == 1){ Phase += SizeOf(NoteNumList); } NoteNumList = ArraySortNum( NoteNumList ); //----------------------------------------- // 1:Len //----------------------------------------- IF( Argv(1) != "" ){ Buf = Argv(1); Len = Buf; }Else{ Print("[==関数内不正==]") Print({"[Arrpeggiator]: 第2引数: 引数の省略はできません。"}); Print({"[Arrpeggiator]: コンパイルは中断されます。"}); End; } //----------------------------------------- // 2:アルペジオパターン //----------------------------------------- Counter = 0; Flag = 0; While(Flag == 0){ Buf = POS( {","} , Argv(2) ); If(Buf = 0){ Flag = 1; Stbuf2 = Argv(2); }Else{ Stbuf2 = MID( Argv(2) , 0 , Buf ); } IF( POS({"r"} , Stbuf2) = 0 ){ Buf2 = 0; Stbuf2 = Replace(Stbuf2,{" "},{""},on); While( POS({`},Stbuf2) != 0){ Stbuf2 = Replace( Stbuf2 , {`} , {} , off) Buf2++; } While( POS(CHR(34),Stbuf2) != 0){ Stbuf2 = Replace( Stbuf2 , CHR(34) , {} , off) Buf2--; } PaturnNumList( Counter ) = StrToNum(Stbuf2); OctNumList( Counter ) = Buf2; IF(PaturnMax < PaturnNumList(Counter) ){ PaturnMax = PaturnNumList(Counter); } }Else{ Stbuf2 = Replace(Stbuf2,{" "},{""},on); PaturnNumList( Counter ) = Stbuf2; } Stbuf = Argv(2); Argv(2) = MID(Argv(2) , Buf+1 , SizeOf(Stbuf) ); Counter++; IF(Counter == 128){ Flag = 1; } } If( SizeOf( PaturnNumList ) == 0){ Print("[==関数内不正==]") Print({"[Arrpeggiator]: 第3引数: 引数の省略はできません。もしくは不正です。"}); Print({"[Arrpeggiator]: コンパイルは中断されます。"}); End; } //----------------------------------------- // 3:ノート長パターン //----------------------------------------- IF(Argv(3) != "" ){ Stbuf = "LenNumList = ("+Argv(3)+")"; Stbuf; }Else{ LenNumList(0) = Default_Len; } //----------------------------------------- // 4:Phase(範囲内に収める処理) //----------------------------------------- While(Phase < 0 ){ Phase += Notenum; } While(Phase >= SizeOf(PaturnNumList)){ Phase -= SizeOf(PaturnNumList); } //----------------------------------------- // 5:Range(範囲内に収める処理) //----------------------------------------- IF(Range <=0 ){ Range = PaturnMax; } //----------------------------------------- // Arpeggiate //----------------------------------------- Counter = Phase; Flag = 0; Buf2 = 0; //オクターブの保持 While(Flag == 0){ Buf = Default_Time + Len - Time; //残り時間 IF( Buf <= LenNumList(Counter % SizeOf(LenNumList) ) ){ Flag == 1; l%(Buf); }Else{ l%(LenNumList(Counter % SizeOf(LenNumList))); } //休符かどうか確認。 //数字と文字列を比較できないのでASCIIに変換(数字はすべて文字になる。) IF(ASC( PaturnNumList(Counter) ) <= 57 ){ Stbuf = "Buf = "+PaturnNumList(Counter) + " + "+Shift; Stbuf //Buf=PaturnNumList(Counter)+Shift; IF(Pmode == 1){ Buf =Buf*-1 + PaturnMax; } //発音をノートリストの範囲内に抑える。 While(Buf<0){ Buf+=Notenum } Buf = Buf % Notenum //実際に発音する。 n(NoteNumList(Buf) + 12*Buf2 + 12*OctNumList(Counter) ); }Else{ Stbuf = PaturnNumList(Counter); Stbuf; } Buf=Counter;//オクターブのためにバックアップ //パターンのサイクル Counter++; If(Counter == SizeOf(PaturnNumList)){ Counter = 0; } //オクターブを状態に応じて変更 Switch(Rmode){ Case(0){ Buf2 = 0; } Case(1){ Buf2 = PaturnNumList(Counter); IF(Buf2 >= Range){ Buf2 = Range; } } Case(2){ IF(Counter == 0){ Buf2++; } IF(Buf2 >= Range){ Buf2 = 0 } } Case(3){ Buf2 = Range - PaturnNumList(Counter); IF(Buf2<0){ Buf2=0; } } Case(4){ IF(Counter == 0){ Buf2--; } IF(Buf2 < 0){ Buf2 = Range; } } Default{ Buf2 = 0; } } } //------------------------------------------------------------------- // 初期化 //------------------------------------------------------------------- Time = Default_Time + Len; // l%(Default_Len) // l%を使うと以降のノート長の指定が不正になるらしいのでlを使うために // ステップを!付きに変換している。 Stbuf="" Buf = 1; Buf2 = !1; While(Default_Len > 0){ While( Default_Len / Buf2 > 0 ){ Default_Len -=Buf2 Stbuf = ""+Stbuf+"^"+(Buf)+"" } Buf++; Buf2=!1/Buf } Stbuf=Replace(Stbuf,{"^"},{""},off) Stbuf2 ="l"+Stbuf+ "" Stbuf2 } //============================================================================================= #bass01={"ff`ff "ff`ff `ff"f`f "ff`ff} #bass_intro={ EP.T(50,127,!1) #bass01 r1 EP.T(50,127,!1) #bass01 r1 EP.T(50,127,!1) [4 #bass01] } #bass02={ "ff`ff "ff`ff `ff"f`f "ff`ff "ff`ff "ff`ff `gg"g`g "gg`gg "aa`aa "aa`aa `aa"a`a "aa`aa "aa`aa "aa`aa `aa"a`a "aa`aa "ff`ff "ff`ff `ff"f`f "ff`ff "ff`ff "ff`ff `gg"g`g "gg`gg c`c``c`c c`c``c`c ``c`cc``c c`c``c`c "b-b-`b-b- "b-b-`b-b- `b-b-"b-`b- "b-b-`b-b- } TR=1 q100 @88 l16 o3 #bass_intro [7 #bass01] r1 //メロディ1 #bass02 #bass02 //スクラッチ [8 #bass01] #bass02 //メロディ1 #bass02 #bass02 #bass02 [8 #bass01] TR=15 q100 @35 l16 o2 #bass_intro [7 #bass01] r1 //メロディ1 #bass02 #bass02 //スクラッチ [8 #bass01] #bass02 //メロディ1 #bass02 #bass02 #bass02 [8 #bass01] //============================================================================================= #merody={ `c0ar `c0ar b0g. b0g.`c0a r`c0a r`c0a `d0b.`d0b.`c0a `c0ar `c0ar b0g. b0g.`c0a r`c0a `c0ar `d0b.`e0`c.`f0`c `c0ar `c0ar b0g. b0g.`c0a r`c0a r`c0a `d0b.`d0b.`e0`c > g0er g0er e0c.e0c.d0"b rb-0"b- rg0"b- f0"b-. f0"b-. g0d < } TR=2 q60 @82,110,0 o5 l8 R1(16) //メロディ #merody #merody //スクラッチ R1(16) //メロディ #merody #merody #merody TR=16 q60 @91 o6 l8 R1(16) //メロディ #merody #merody //スクラッチ R1(16) //メロディ #merody #merody #merody //============================================================================================= Str paturn1={0,1,2,r, `0,2,1,r, 2,`0,r,2, 1,r,2,`0} #Arp={ Arpeggiator({f,a,`c},!1,paturn1) Arpeggiator({f,a,`c},!2,paturn1) Arpeggiator({g,b,`d},!2,paturn1) Arpeggiator({a,`c,`e},!1^1,paturn1) Arpeggiator({f,a,`c},!1,paturn1) Arpeggiator({f,a,`c},!2,paturn1) Arpeggiator({g,b,`d},!2,paturn1) Arpeggiator({`c,`e,`g},!1,paturn1) Arpeggiator({b-,`d,`g},!1,paturn1) } TR=3 q200 @82,90,1 o4 l16 v60 P.N(0,40,127,90,0,30,127,90) R1(16) Sub{r-1 EP.T(50,127,!1)Arpeggiator({g,b-,`d},!1,paturn1) } //メロディ #Arp #Arp //スクラッチ R1(8) Sub{r-1 EP.T(50,127,!1)Arpeggiator({g,b-,`d},!1,paturn1) } #Arp //メロディ #Arp #Arp #Arp TR=4 q200 @82,90,0 o4 l16 v90 P.N(90,0,30,0,40,127,127,90) R1(16) Sub{r-1 EP.T(50,127,!1)Arpeggiator({g,b-,`d},!1,paturn1) } //メロディ #Arp #Arp //スクラッチ R1(8) Sub{r-1 EP.T(50,127,!1)Arpeggiator({g,b-,`d},!1,paturn1) } #Arp //メロディ #Arp #Arp #Arp //============================================================================================= #CODE={ f0a0`c0`f1. g0b0`d0`g2 a0`c0`e0`a1^1 f0a0`c0`f1. g0b0`d0`g2 `c0`e0`g1 b-0`d0`g1 } TR=6 q100 @51 o4 P=0 v70 R1(16) //メロディ #CODE #CODE //スクラッチ R1(16) //メロディ #CODE #CODE #CODE TR=7 q100 @49 o4 P=127 v70 R1(16) //メロディ #CODE #CODE //スクラッチ R1(16) //メロディ #CODE #CODE #CODE //============================================================================================= TR=8 q100 @80 o3 R1(16) //メロディ [ f1.g2a1^1 f1.g2`c1b-1 ] //スクラッチ R1(16) //メロディ [3 f1.g2a1^1 f1.g2`c1b-1 ] //============================================================================================= UseKeyShift=off 調-() #Hat01={l16 [4 f+ |r |g+|f+ ] } #Default={ Sub{l4 [rd+rd+]} [ #Hat01 ] } TR=10 o3 l8 q40 @27 [ EP.T(50,127,!1,127,50,!1) #Hat01 #Hat01 ] EP.T(50,127,!1) [ #Hat01 #Hat01 ] [4 #Default ] //メロディ1 [4 #Default ] [4 #Default ] //スクラッチ [4 #Default ] [4 #Default ] //メロディ1 [4 #Default ] [4 #Default ] [4 #Default ] //アウトロ [4 #Default ] //============================================================================================= #kick01={l4 cccc } #kick02={l4 cc8.c16cc } #kick3={l8 rc rc c.c cc16} #kickroll={ Sub{[4r-1] [ [7c8][c16] ] [ [3c8][c16] ] [ [1c8][c16] ] [4 [c16] ] } } TR=11 o3 l8 q40 @17 V=127 r1 #kick01 r1 #kick02 r1 ^1 EP.T(80,127,!1) #kick01 #kick02 [4 #kick01 #kick02 ] #kickroll //メロディ1 [4 #kick01 : #kick02 ] #kick3 [4 #kick01 : #kick02 ] #kick3 ; #kickroll //スクラッチ [4 #kick01 : #kick02 ] #kick3 [4 #kick01 : #kick02 ] #kick3 ; #kickroll //メロディ2 [4 #kick01 : #kick02 ] #kick3 [4 #kick01 : #kick02 ] #kick3 [4 #kick01 : #kick02 ] #kick3 ; #kickroll //アウトロ [4 #kick01 : #kick02 ] #kick3 //============================================================================================= TR=12 q100 @27,110,0 o2 l8 V=127 p=127 BR(8) v127 R1(16) //メロディ1 R1(16) //スクラッチ frf+r rfrf+ frfr f+rrr frf+f rff+r ff+rf f+f+f+f frf+f rff+r ff+rf f+f+f+f frf+f rff+r ff+rf f+f+f+f frf+r rfrf+ frfr f+rrr frf+f rff+r ff+rf f+f+f+f frf+f rff+r ff+rf f+f+f+f frf+f rff+r ff+rf f+f+f+f //============================================================================================= TR=13 q400 @120 v127 l4 o4 R1(16) Sub{ r-1 P.T(127,0,!1^1) EP.T(90,127,!1,127,0,!1^1) >`cbag fedc< bagf} R1(16) Sub{ r-1 P.T(127,0,!1^1) EP.T(90,127,!1,127,0,!1^1) >`cbag fedc< bagf} R1(16) Sub{ r-1 P.T(127,0,!1^1) EP.T(90,127,!1,127,0,!1^1) >`cbag fedc< bagf} R1(8 ) Sub{ r-1 P.T(127,0,!1^1) EP.T(90,127,!1,127,0,!1^1) >`cbag fedc< bagf} R1(16) Sub{ r-1 P.T(127,0,!1^1) EP.T(90,127,!1,127,0,!1^1) >`cbag fedc< bagf} この曲は自作のオリジナル曲であるか、または、作曲者の死後50年以上経過した著作権に問題がない曲であることを確認しましたか? いいえ。よく分かりません はい。著作権に問題ありません (←選択)