示例#1
0
 private void SetTermList(int number)
 {
     for (var i = 1; i <= number; i++)
     {
         TermList.Add(item: i.ToString());
     }
 }
        public void GetFourtyRunningSongs(string query)
        {
            var id      = GetSongId(query);
            var songIds = new TermList();

            songIds.Add(id);

            StaticArgument staticArgument = new StaticArgument
            {
                Type     = "song-radio",
                SongID   = songIds,
                Results  = 40,
                MinTempo = 88,
                MaxTempo = 92,
                Variety  = 1
            };


            using (var session = new EchoNestSession(ApiKey))
            {
                PlaylistResponse searchResponse = session.Query <Static>().Execute(staticArgument);

                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                Assert.AreEqual(40, searchResponse.Songs.Count);
            }
        }
示例#3
0
 private void FillTermList(Term[] terms, TermList target)
 {
     foreach (var term in terms)
     {
         target.Add(term);
     }
 }
示例#4
0
        public void GetSongs_ForApocalypseNow_ExpectedArtist(string title, string styles, string moods, string expect)
        {
            // arrange
            TermList styleTerms = new TermList();

            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();

            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            SearchArgument searchArgument = new SearchArgument
            {
                Mode    = "0", /* minor */
                Sort    = "artist_familiarity-desc",
                Results = 10
            };

            searchArgument.Styles.AddRange(styleTerms);

            searchArgument.Moods.AddRange(moodTerms);

            //act
            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                SearchResponse searchResponse = session.Query <Search>().Execute(searchArgument);

                //assert
                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);

                var matches = (from s in searchResponse.Songs
                               where s.ArtistName.ToLower().Contains(expect)
                               select s).ToList();


                Assert.IsNotNull(matches, "Failed to find songs where artist name contains: {0}", expect);

                // output
                Console.WriteLine("Tracks for '{0}'", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
                Console.WriteLine();
            }
        }
示例#5
0
        public void GetSongs_ForApocalypseNow_ExpectedArtist(string title, string styles, string moods, string expect)
        {
            // arrange
            TermList styleTerms = new TermList();
            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();
            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            SearchArgument searchArgument = new SearchArgument
            {
                Mode = "0", /* minor */
                Sort = "artist_familiarity-desc",
                Results = 10
            };

            searchArgument.Styles.AddRange(styleTerms);

            searchArgument.Moods.AddRange(moodTerms);

            //act
            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                SearchResponse searchResponse = session.Query<Search>().Execute(searchArgument);

                //assert
                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);

                var matches = (from s in searchResponse.Songs
                               where s.ArtistName.ToLower().Contains(expect)
                               select s).ToList();

                Assert.IsNotNull(matches, "Failed to find songs where artist name contains: {0}", expect);

                // output
                Console.WriteLine("Tracks for '{0}'", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
                Console.WriteLine();
            }
        }
示例#6
0
        private static void Basic(EchoNestSession session)
        {
            String query = String.Empty;

            ConsoleEx.WriteLine("=== Basic Playlist Generation ===", ConsoleColor.Cyan);
            ConsoleEx.WriteLine("(Enter a comma separated list of artist names for generating a baisc 'artist-radio' type playlist)", ConsoleColor.Cyan);

            ConsoleEx.Write("Query >> ", ConsoleColor.Green);
            query = Console.ReadLine();

            if (String.IsNullOrEmpty(query))
            {
                ConsoleEx.WriteLine("Query was empty. Press any key to start over.", ConsoleColor.Cyan);
                Console.ReadLine();
                Basic(session);
            }

            ConsoleEx.WriteLine("Generating..", ConsoleColor.Yellow);

            BasicArgument basicArgument = new BasicArgument();

            string[] terms = query.Split(',');

            TermList artistTerms = new TermList();

            foreach (string term in terms)
            {
                artistTerms.Add(term.Trim());
            }

            basicArgument.Artist.AddRange(artistTerms);

            var result = session.Query <Basic>().Execute(basicArgument);

            if (result.Status.Code == ResponseCode.Success)
            {
                foreach (var item in result.Songs)
                {
                    ConsoleEx.Write("Artist: ", ConsoleColor.White);
                    ConsoleEx.WriteLine(item.ArtistName, ConsoleColor.DarkYellow);
                    ConsoleEx.Write("Hotttness: ", ConsoleColor.White);
                    ConsoleEx.WriteLine(item.ArtistHotttnesss.ToString(), ConsoleColor.DarkYellow);
                }
            }
            else
            {
                ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
            }
        }
示例#7
0
        public void GetStaticPlaylist_WhereMoodAndStyle_HasVarietyOfArtists(string title, string styles, string moods)
        {
            //arrange
            TermList styleTerms = new TermList();

            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();

            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            StaticArgument staticArgument = new StaticArgument
            {
                Results         = 25,
                Adventurousness = 0.4,
                Type            = "artist-description",
                Variety         = 0.4 /* variety of artists */
            };

            staticArgument.Styles.AddRange(styleTerms);

            staticArgument.Moods.AddRange(moodTerms);

            //act
            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                //act
                PlaylistResponse searchResponse = session.Query <Static>().Execute(staticArgument);

                //assert
                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                // output
                Console.WriteLine("Songs for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
            }
        }
示例#8
0
        private static void Basic(EchoNestSession session)
        {
            String query = String.Empty;

            ConsoleEx.WriteLine("=== Basic Playlist Generation ===", ConsoleColor.Cyan);
            ConsoleEx.WriteLine("(Enter a comma separated list of artist names for generating a baisc 'artist-radio' type playlist)", ConsoleColor.Cyan);

            ConsoleEx.Write("Query >> ", ConsoleColor.Green);
            query = Console.ReadLine();

            if (String.IsNullOrEmpty(query))
            {
                ConsoleEx.WriteLine("Query was empty. Press any key to start over.", ConsoleColor.Cyan);
                Console.ReadLine();
                Basic(session);
            }

            ConsoleEx.WriteLine("Generating..", ConsoleColor.Yellow);

            BasicArgument basicArgument = new BasicArgument();

            string[] terms = query.Split(',');

            TermList artistTerms = new TermList();
            foreach (string term in terms)
            {
                artistTerms.Add(term.Trim());
            }

            basicArgument.Artist.AddRange(artistTerms);

            var result = session.Query<Basic>().Execute(basicArgument);

            if (result.Status.Code == ResponseCode.Success)
            {
                foreach (var item in result.Songs)
                {
                    ConsoleEx.Write("Artist: ", ConsoleColor.White);
                    ConsoleEx.WriteLine(item.ArtistName, ConsoleColor.DarkYellow);
                    ConsoleEx.Write("Hotttness: ", ConsoleColor.White);
                    ConsoleEx.WriteLine(item.ArtistHotttnesss.ToString(), ConsoleColor.DarkYellow);
                }
            }
            else
            {
                ConsoleEx.WriteLine(result.Status.Message, ConsoleColor.Red);
            }
        }
        private PlaylistResponse GetSongPlaylist(EchoNestSession session, string query)
        {
            var id = GetSongId(session, query);
            var songIds = new TermList();
            songIds.Add(id);

            StaticArgument staticArgument = new StaticArgument
            {
                Type = "song-radio",
                SongID = songIds,
                Results = 40,
                Variety = 1
            };

            return session.Query<Static>().Execute(staticArgument);
        }
示例#10
0
        public MortgageViewModel()
        {
            StartDate     = DateTime.Now;
            PurchasePrice = 100000;
            IntSlider     = 4;
            YrsSlider     = 30;

            termList = new ObservableCollection <LoanPeriod>();
            LoanPeriod temp  = new LoanPeriod(1, 5);
            LoanPeriod temp1 = new LoanPeriod(2, 10);
            LoanPeriod temp2 = new LoanPeriod(3, 15);
            LoanPeriod temp3 = new LoanPeriod(4, 30);

            TermList.Add(temp);
            TermList.Add(temp1);
            TermList.Add(temp2);
            TermList.Add(temp3);
        }
示例#11
0
        public void GetStaticPlaylist_WhereMoodAndStyle_HasVarietyOfArtists(string title, string styles, string moods)
        {
            TermList styleTerms = new TermList();
            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();
            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            StaticArgument staticArgument = new StaticArgument
            {
                Results = 25,
                Adventurousness = 0.4,
                Type = "artist-description",
                Variety = 0.4 /* variety of artists */
            };

            staticArgument.Styles.AddRange(styleTerms);

            staticArgument.Moods.AddRange(moodTerms);

            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                PlaylistResponse searchResponse = session.Query<Static>().Execute(staticArgument);

                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                Console.WriteLine("Songs for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }

                Console.WriteLine();
            }
        }
        public void GetStaticPlaylist_WhereMoodAndStyle_HasVarietyOfArtists(string title, string styles, string moods)
        {
            TermList styleTerms = new TermList();

            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();

            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            StaticArgument staticArgument = new StaticArgument
            {
                Results         = 25,
                Adventurousness = 0.4,
                Type            = "artist-description",
                Variety         = 0.4 /* variety of artists */
            };

            staticArgument.Styles.AddRange(styleTerms);

            staticArgument.Moods.AddRange(moodTerms);

            using (var session = new EchoNestSession(ApiKey))
            {
                PlaylistResponse searchResponse = session.Query <Static>().Execute(staticArgument);

                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                System.Diagnostics.Debug.WriteLine("Songs for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    System.Diagnostics.Debug.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
            }
        }
示例#13
0
        public Mortgage()
        {
            StartDate              = DateTime.Now;
            PurchasePrice          = 100000;
            IntSlider              = 4;
            YrsSlider              = 30;
            SolveForMonthlyPayment = true;
            SolveForLoanPeriod     = false;
            SolveForPurchasePrice  = false;
            termList = new ObservableCollection <LoanPeriod>();
            LoanPeriod temp  = new LoanPeriod(1, 5);
            LoanPeriod temp1 = new LoanPeriod(2, 10);
            LoanPeriod temp2 = new LoanPeriod(3, 15);
            LoanPeriod temp3 = new LoanPeriod(4, 30);

            TermList.Add(temp);
            TermList.Add(temp1);
            TermList.Add(temp2);
            TermList.Add(temp3);
        }
示例#14
0
        private void FillTermList(IEnumerable <TermModel> source, TermList target)
        {
            source.ForEach(s =>
            {
                var term = target.Add(s.Name);

                if (s.Boost.HasValue)
                {
                    term.Boost(s.Boost.Value);
                }

                if (s.Require)
                {
                    term.Require();
                }

                if (s.Ban)
                {
                    term.Ban();
                }
            });
        }
示例#15
0
        private PlaylistResponse Execute()
        {
            TermList styleTerms = new TermList();

            string[] styles = Settings.Default.SearchParametersForLearning.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

            if (styles.Length == 0)
            {
                return new PlaylistResponse()
                       {
                           Songs    = null
                           , Status = new ResponseStatus()
                           {
                               Code      = ResponseCode.MissingParameter
                               , Message = "Missing parameters for the search.", Version = null
                           }
                       }
            }
            ;

            foreach (string s in styles)
            {
                styleTerms.Add(s.Trim());
            }

            StaticArgument staticArgument = new StaticArgument()
            {
                Results = 15,
                Variety = 1,
                Type    = "artist-description",
                Bucket  = PlaylistBucket.AudioSummary
            };

            staticArgument.Styles.AddRange(styleTerms);

            return(echo.Query <Static>().Execute(staticArgument));
        }
        public void GetPlaylistByArtistOrSong(string query)
        {
            var seedArtists = new TermList();

            seedArtists.Add(query);

            StaticArgument staticArgument = new StaticArgument
            {
                Results = 40,
                Artist  = seedArtists,
                Type    = "artist-radio"
            };

            using (var session = new EchoNestSession(ApiKey))
            {
                PlaylistResponse searchResponse = session.Query <Static>().Execute(staticArgument);

                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                Assert.AreEqual(40, searchResponse.Songs.Count);
            }
        }
        private PlaylistData CreateEchonestPlaylist(string apiKey)
        {
            var seedArtists = new TermList();

            seedArtists.Add(Query);

            StaticArgument staticArgument = new StaticArgument
            {
                Results = 40,
                Artist = seedArtists,
                Type = "artist-radio"
            };

            using (var session = new EchoNestSession(apiKey))
            {
                PlaylistResponse searchResponse = session.Query<Static>().Execute(staticArgument);
                var playlistData = new PlaylistData();
                playlistData.Items = new List<PlaylistDataItem>();
                playlistData.Description = Query;
                playlistData.Title = string.Format("{0} playlist", Query);
                playlistData.SearchKeys = new List<string>();

                foreach (var song in searchResponse.Songs)
                {
                    var item = new PlaylistDataItem();
                    item.Artist = song.ArtistName;
                    item.Title = song.Title;
                    playlistData.Items.Add(item);

                    var searchKey = string.Format("{0} {1}", item.Artist, item.Title);
                    playlistData.SearchKeys.Add(searchKey);
                }

                return playlistData;
            }
        }
示例#18
0
        private PlaylistData CreateEchonestPlaylist(string apiKey)
        {
            var seedArtists = new TermList();

            seedArtists.Add(Query);

            StaticArgument staticArgument = new StaticArgument
            {
                Results = 40,
                Artist  = seedArtists,
                Type    = "artist-radio"
            };

            using (var session = new EchoNestSession(apiKey))
            {
                PlaylistResponse searchResponse = session.Query <Static>().Execute(staticArgument);
                var playlistData = new PlaylistData();
                playlistData.Items       = new List <PlaylistDataItem>();
                playlistData.Description = Query;
                playlistData.Title       = string.Format("{0} playlist", Query);
                playlistData.SearchKeys  = new List <string>();

                foreach (var song in searchResponse.Songs)
                {
                    var item = new PlaylistDataItem();
                    item.Artist = song.ArtistName;
                    item.Title  = song.Title;
                    playlistData.Items.Add(item);

                    var searchKey = string.Format("{0} {1}", item.Artist, item.Title);
                    playlistData.SearchKeys.Add(searchKey);
                }

                return(playlistData);
            }
        }
示例#19
0
        public SettingViewModel()
        {
            string[] options = new string[]
            {
                "User Account",
                "Goal Setting",
                "Log Out"
            };
            var Option = new List <string>();

            for (int i = 0; i < options.Length; i += 1)
            {
                Option.Add(options[i]);
            }
            ItemList = Option;
            TermList.Add("Terms & Uses");
            SelectKeyCommand = new MvxCommand <string>(selected =>
            {
                if (selected == options[0])
                {
                    //ShowViewModel<>();
                }
                else if (selected == options[1])
                {
                    //ShowViewMOdel<>();
                }
                else
                {
                    //ShowViewModel<>();
                }
            });
            TermCommand = new MvxCommand(() =>
            {
                //ShowViewModel<>();
            });
        }
        private void FillTermList(IEnumerable<TermModel> source, TermList target)
        {
            source.ForEach(s =>
            {
                var term = target.Add(s.Name);

                if (s.Boost.HasValue)
                {
                    term.Boost(s.Boost.Value);
                }

                if (s.Require)
                {
                    term.Require();
                }

                if (s.Ban)
                {
                    term.Ban();
                }
            });
        }
        private PlaylistResponse GetArtistPlaylist(EchoNestSession session, string query)
        {
            
            var seedArtists = new TermList();

            foreach (var term in query.Split(','))
            {
                seedArtists.Add(term);
            }

            StaticArgument staticArgument = new StaticArgument
            {
                Results = 40,
                Artist = seedArtists,
                Type = "artist-radio"
            };

            return session.Query<Static>().Execute(staticArgument);
        }
示例#22
0
        public void GetPlaylistByArtistOrSong(string query)
        {
            var seedArtists = new TermList();
            seedArtists.Add(query);

            StaticArgument staticArgument = new StaticArgument
            {
                Results = 40,
                Artist = seedArtists,
                Type = "artist-radio"
            };

            using (var session = new EchoNestSession(ApiKey))
            {
                PlaylistResponse searchResponse = session.Query<Static>().Execute(staticArgument);

                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                Assert.AreEqual(40, searchResponse.Songs.Count);
            }
        }
示例#23
0
        public void GetFourtyRunningSongs(string query)
        {
            var id = GetSongId(query);
            var songIds = new TermList();
            songIds.Add(id);

            StaticArgument staticArgument = new StaticArgument
            {
                Type = "song-radio",
                SongID = songIds,
                Results = 40,
                MinTempo = 88,
                MaxTempo = 92,
                Variety = 1
            };
                

            using (var session = new EchoNestSession(ApiKey))
            {
                PlaylistResponse searchResponse = session.Query<Static>().Execute(staticArgument);

                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                Assert.AreEqual(40, searchResponse.Songs.Count);
            }
        }
示例#24
0
        public void GetDynamicPlaylist_WhereMoodAndStyle_CanSteerDynamicPlaylistByMood(string title, string styles, string moods)
        {
            //arrange
            TermList styleTerms = new TermList();

            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();

            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            DynamicArgument dynamicArgument = new DynamicArgument
            {
                Adventurousness = 0.4,
                Type            = "artist-description",
                Variety         = 0.4 /* variety of artists */
            };

            dynamicArgument.Styles.AddRange(styleTerms);

            dynamicArgument.Moods.AddRange(moodTerms);

            //act
            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                //act
                DynamicPlaylistResponse searchResponse = session.Query <Dynamic>().Execute(dynamicArgument);

                //assert
                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                // arrange next part of test
                string sessionId = searchResponse.SessionId;

                // output
                Console.WriteLine("Dynamic Playlist Session Id: {0}", sessionId);
                Console.WriteLine();
                Console.WriteLine("Songs for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
                Console.WriteLine("Steering Playlist by mood = -happy");
                Console.WriteLine();

                dynamicArgument = new DynamicArgument {
                    SteerMood = "-happy", SessionId = sessionId
                };
                searchResponse = session.Query <Dynamic>().Execute(dynamicArgument);
                Console.WriteLine("Next song in dynamic playlist for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }

                Console.WriteLine();
                Console.WriteLine("Steering Playlist by tempo = +10% (tempo^1.1)");
                Console.WriteLine();
                dynamicArgument = new DynamicArgument {
                    Steer = "tempo^1.1", SessionId = sessionId
                };
                searchResponse = session.Query <Dynamic>().Execute(dynamicArgument);
                Console.WriteLine("Next song in dynamic playlist for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
            }
        }
示例#25
0
        public void GetDynamicPlaylist_WhereMoodAndStyle_CanSteerDynamicPlaylistByMood(string title, string styles, string moods)
        {
            //arrange
            TermList styleTerms = new TermList();
            foreach (string s in styles.Split(','))
            {
                styleTerms.Add(s);
            }

            TermList moodTerms = new TermList();
            foreach (string s in moods.Split(','))
            {
                moodTerms.Add(s);
            }

            DynamicArgument dynamicArgument = new DynamicArgument
            {
                Adventurousness = 0.4,
                Type = "artist-description",
                Variety = 0.4 /* variety of artists */
            };

            dynamicArgument.Styles.AddRange(styleTerms);

            dynamicArgument.Moods.AddRange(moodTerms);

            //act
            using (EchoNestSession session = new EchoNestSession(ConfigurationManager.AppSettings.Get("echoNestApiKey")))
            {
                //act
                DynamicPlaylistResponse searchResponse = session.Query<Dynamic>().Execute(dynamicArgument);

                //assert
                Assert.IsNotNull(searchResponse);
                Assert.IsNotNull(searchResponse.Songs);
                Assert.IsTrue(searchResponse.Songs.Any());

                // arrange next part of test
                string sessionId = searchResponse.SessionId;

                // output
                Console.WriteLine("Dynamic Playlist Session Id: {0}", sessionId);
                Console.WriteLine();
                Console.WriteLine("Songs for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
                Console.WriteLine("Steering Playlist by mood = -happy");
                Console.WriteLine();

                dynamicArgument = new DynamicArgument { SteerMood = "-happy", SessionId = sessionId };
                searchResponse = session.Query<Dynamic>().Execute(dynamicArgument);
                Console.WriteLine("Next song in dynamic playlist for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }

                Console.WriteLine();
                Console.WriteLine("Steering Playlist by tempo = +10% (tempo^1.1)");
                Console.WriteLine();
                dynamicArgument = new DynamicArgument { Steer = "tempo^1.1", SessionId = sessionId };
                searchResponse = session.Query<Dynamic>().Execute(dynamicArgument);
                Console.WriteLine("Next song in dynamic playlist for : {0}", title);
                foreach (SongBucketItem song in searchResponse.Songs)
                {
                    Console.WriteLine("\t{0} ({1})", song.Title, song.ArtistName);
                }
                Console.WriteLine();
            }
        }