コード例 #1
0
        internal static SongMID ReadMidi(string path, bool unforceNAudioStrictMode)
        {
            s    = new SongMID();
            midi = new MidiFile(path, !unforceNAudioStrictMode);
            var trackCount = midi.Events.Count();

            scaler = 192.0D / midi.DeltaTicksPerQuarterNote;
            WriteSync(midi.Events[0]);
            for (var i = 1; i < trackCount; i++)
            {
                var trackName = midi.Events[i][0] as TextEvent;
                if (trackName == null)
                {
                    continue;
                }
                switch (trackName.Text.ToLower())
                {
                case ("events"): WriteSongSections(midi.Events[i]); break;

                case ("part guitar"):
                    WriteNoteSection(midi.Events[i], 0);
                    WriteTapSection(midi.Events[i], 0);

                    break;

                case ("t1 gems"):
                    WriteNoteSection(midi.Events[i], 0);
                    WriteTapSection(midi.Events[i], 0);

                    break;

                case ("part bass"):
                    WriteNoteSection(midi.Events[i], 1);
                    WriteTapSection(midi.Events[i], 1);

                    break;

                case ("part keys"):
                    WriteNoteSection(midi.Events[i], 2);
                    break;
                }
            }
            return(s);
        }
コード例 #2
0
 internal static void WriteChart(SongMID s, string path, bool dummy)
 {
     using (var output = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) {
         using (var file = new StreamWriter(output)) {
             file.WriteLine("[Song]");
             file.WriteLine("{");
             file.WriteLine("\tName = \"" + s.songname + "\"");
             if (s.artist != "")
             {
                 file.WriteLine("\tArtist = \"" + s.artist + "\"");
             }
             if (s.year != "")
             {
                 file.WriteLine("\tYear = \", " + s.year + "\"");
             }
             if (s.charter != "")
             {
                 file.WriteLine("\tCharter = \"" + s.charter + "\"");
             }
             file.WriteLine("\tOffset = " + GetOffsetString(s.offset));
             file.WriteLine("\tResolution = 192");
             file.WriteLine("\tPlayer2 = bass");
             file.WriteLine("\tDifficulty = 0");
             file.WriteLine("\tPreviewStart = 0.00");
             file.WriteLine("\tPreviewEnd = 0.00");
             file.WriteLine("\tGenre = \"rock\"");
             file.WriteLine("\tMediaType = \"cd\"");
             file.WriteLine("\tMusicStream = \"song.ogg\"");
             file.WriteLine("\tGuitarStream = \"guitar.ogg\"");
             file.WriteLine("\tBassStream = \"rhythm.ogg\"");
             file.WriteLine("}");
             file.WriteLine("[SyncTrack]");
             file.WriteLine("{");
             foreach (Sync sync in s.sync)
             {
                 if (!sync.isBPM)
                 {
                     file.WriteLine("\t" + sync.tick + " = TS " + sync.num);
                 }
                 else
                 {
                     file.WriteLine("\t" + sync.tick + " = B " + sync.num);
                 }
             }
             file.WriteLine("}");
             file.WriteLine("[Events]");
             file.WriteLine("{");
             foreach (Section ss in s.sections)
             {
                 file.WriteLine("\t" + ss.tick + " = E \"section " + ss.name + "\"");
             }
             file.WriteLine("}");
             if (s.eGuitar.Count > 0)
             {
                 file.WriteLine("[EasySingle]");
                 file.WriteLine("{");
                 WriteNotes(file, s.eGuitar, s.eGuitarForceHOPO, s.eGuitarForceStrum, s.tapGuitar, s.eGuitarOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.eBass.Count > 0)
             {
                 file.WriteLine("[EasyDoubleBass]");
                 file.WriteLine("{");
                 WriteNotes(file, s.eBass, s.eBassForceHOPO, s.eBassForceStrum, s.tapBass, s.eBassOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.eKeys.Count > 0)
             {
                 file.WriteLine("[EasyEnhancedGuitar]");
                 file.WriteLine("{");
                 WriteNotes(file, s.eKeys, new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), true);
                 file.WriteLine("}");
             }
             if (s.mGuitar.Count > 0)
             {
                 file.WriteLine("[MediumSingle]");
                 file.WriteLine("{");
                 WriteNotes(file, s.mGuitar, s.mGuitarForceHOPO, s.mGuitarForceStrum, s.tapGuitar, s.mGuitarOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.mBass.Count > 0)
             {
                 file.WriteLine("[MediumDoubleBass]");
                 file.WriteLine("{");
                 WriteNotes(file, s.mBass, s.mBassForceHOPO, s.mBassForceStrum, s.tapBass, s.mBassOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.mKeys.Count > 0)
             {
                 file.WriteLine("[MediumEnhancedGuitar]");
                 file.WriteLine("{");
                 WriteNotes(file, s.mKeys, new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), true);
                 file.WriteLine("}");
             }
             if (s.hGuitar.Count > 0)
             {
                 file.WriteLine("[HardSingle]");
                 file.WriteLine("{");
                 WriteNotes(file, s.hGuitar, s.hGuitarForceHOPO, s.hGuitarForceStrum, s.tapGuitar, s.hGuitarOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.hBass.Count > 0)
             {
                 file.WriteLine("[HardDoubleBass]");
                 file.WriteLine("{");
                 WriteNotes(file, s.hBass, s.hBassForceHOPO, s.hBassForceStrum, s.tapBass, s.hBassOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.hKeys.Count > 0)
             {
                 file.WriteLine("[HardEnhancedGuitar]");
                 file.WriteLine("{");
                 WriteNotes(file, s.hKeys, new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), true);
                 file.WriteLine("}");
             }
             if (s.xGuitar.Count > 0)
             {
                 file.WriteLine("[ExpertSingle]");
                 file.WriteLine("{");
                 WriteNotes(file, s.xGuitar, s.xGuitarForceHOPO, s.xGuitarForceStrum, s.tapGuitar, s.xGuitarOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.xBass.Count > 0)
             {
                 file.WriteLine("[ExpertDoubleBass]");
                 file.WriteLine("{");
                 WriteNotes(file, s.xBass, s.xBassForceHOPO, s.xBassForceStrum, s.tapBass, s.xBassOpenNotes, false);
                 file.WriteLine("}");
             }
             if (s.xKeys.Count > 0)
             {
                 file.WriteLine("[ExpertEnhancedGuitar]");
                 file.WriteLine("{");
                 WriteNotes(file, s.xKeys, new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), new List <NoteSection>(), true);
                 file.WriteLine("}");
             }
         }
     }
 }