private static void AddSongMetadata(Song2014 rsSong, ZpeSong zigSong, string arrangment)
        {
            // standard meta header data
            rsSong.Version                = "7";
            rsSong.Arrangement            = arrangment;
            rsSong.Part                   = 1;
            rsSong.Offset                 = 0;
            rsSong.CentOffset             = "0";
            rsSong.StartBeat              = 0;
            rsSong.Capo                   = 0;
            rsSong.AlbumName              = "Unknown Album";
            rsSong.AlbumYear              = DateTime.Now.ToString("yyyy");
            rsSong.CrowdSpeed             = "1";
            rsSong.LastConversionDateTime = DateTime.Now.ToString();
            rsSong.SongLength             = zigSong.Length;

            Regex regex = new Regex(" - ");

            string[] artistTitle = regex.Split(zigSong.Name);
            rsSong.ArtistName = artistTitle[0] == null ? zigSong.Name : artistTitle[0];
            rsSong.Title      = artistTitle[1] == null ? zigSong.Name : artistTitle[1];

            ZpeTempo tempo = zigSong.Tracks[0].Tempos[0];
            float    BPM   = (float)Math.Round((float)60000000 / tempo.RawTempo, 3);

            rsSong.AverageTempo = BPM;

            ZpeTuning tuning = null;

            for (int i = 0; i < zigSong.Tunings.Tuning.Count; i++)
            {
                if (arrangment == "Lead" || arrangment == "Rhythm")
                {
                    if (zigSong.Tunings.Tuning[i].IsGuitarTuning)
                    {
                        tuning = zigSong.Tunings.Tuning[i];
                        break;
                    }
                }

                if (arrangment == "Bass")
                {
                    if (zigSong.Tunings.Tuning[i].IsBassTuning)
                    {
                        tuning = zigSong.Tunings.Tuning[i];
                        break;
                    }
                }
            }

            if (tuning == null)
            {
                throw new Exception("ZPE XML does not contain tuning");
            }

            rsSong.Tuning = new TuningStrings {
                String0 = tuning.E, String1 = tuning.A, String2 = tuning.D, String3 = tuning.G, String4 = tuning.B, String5 = tuning.HighE
            };
        }
        private void AddSongMetadata(Song rsSong, ZpeSong zigSong)
        {
            rsSong.Arrangement            = "Combo";
            rsSong.Artist                 = "Unknown Artist";
            rsSong.Title                  = zigSong.Name;
            rsSong.Offset                 = 0;
            rsSong.Part                   = 1;
            rsSong.LastConversionDateTime = DateTime.Now.ToString();
            rsSong.SongLength             = zigSong.Length;

            ZpeTempo tempo = zigSong.Tracks[0].Tempos[0];
            float    BPM   = (float)Math.Round((float)60000000 / tempo.RawTempo, 3);

            rsSong.AverageTempo = BPM;

            ZpeTuning tuning = null;

            for (int i = 0; i < zigSong.Tunings.Tuning.Count - 1; i++)
            {
                if (zigSong.Tunings.Tuning[i].IsGuitarTuning)
                {
                    tuning = zigSong.Tunings.Tuning[i];
                    break;
                }
            }

            if (tuning == null)
            {
                throw new Exception("ZPE XML does not contain guitar tuning");
            }

            rsSong.Tuning = new TuningStrings
            {
                String0 = tuning.E,
                String1 = tuning.A,
                String2 = tuning.D,
                String3 = tuning.G,
                String4 = tuning.B,
                String5 = tuning.HighE
            };
        }