SlideShare a Scribd company logo
1 of 53
Download to read offline
API Workshop
           November 21, 2010
           Paul Lamere
           paul@echonest.com




Friday, November 20, 2009
listening                    reading




     World of Music Audio                      learning             World of Music Text




                                         Solutions




                            WHAT THE ECHO NEST DOES

Friday, November 20, 2009
READING
                                       Artist
                                      • Tag Cloud
                                      • Similar Artists
                                      • Familiarity
                                      • Hotttnesss
                                      • News
                                      • Audio
                                      • Images
                                      • Video
                                      • Reviews
                                      • Biography




Friday, November 20, 2009
Track
                                                                                                                                                       LISTENING                                                                            •Tempo
                                                                                                                                                                                                                                            • Key
                                       Dm7        G7       CM7 C#O Dm7                           G7        CM7 C#O Dm7      G7        CM7 C#O Dm7           G7        CM7 C#O

                                                                                                                                                                                                                                            • Time Signature
                                       x 10
                                              4
                                                                                                                                                                                                                                            • Mode
                                                                                                                                                                                                                                            • Sections
                                  2

                                  1
               wave form




                                  0




                                                                                                                                                                                                                                            • Pitch
                                ! -1

                                ! -2
                                       0               2          4                                    6          8              10               12             14              16




                                                                                                                                                                                                                                            • Timbre
                                  1
                                0.8                                                          25
                                                                      auditory spectrogram
               loudness




                                0.6                                                          20

                                0.4




                                                                                                                                                                                                                                            • Tatums
                                                                                             15
                                0.2
                                                                                             10
                                  0
                                       0               2          4                                    6          8              10               12             14              16
                                                                                                 5

                                 25




                                                                                                                                                                                                                                            • Beats
                                                                                                 1
                                                                                                  0                   0.5                 1                           1.5                    2 sec.
                                 20
          spectrogram




                                                                                              1
            auditory




                                 15
                                                                                             0.8
                                 10
                                                                      segmentation




                                                                                                                                                                                                                                            • Bars
                                  5                                                          0.6

                                  1
                                       0               2          4                          0.4       6          8              10               12             14              16

                                                                                             0.2
                                  B




                                                                                                                                                                                                                                            • Duration
                                  A
                                                                                              0
               chromagram




                                                                                                   0                  0.5                 1   20                      1.5                    2 sec.
                                  G
                                                                                             B
                                                                                             A#
                                  E
                                                                                             A                                                40
                                  D
                                                                      pitch features




                                                                                                                                                                                                                                            • Loudness
                                                                                             G#
                                  C                                                          G

                                       0               2          4                          F#        6          8              10           6012               14              16
                                                                                             F
                                                                                             E
                                  B
          segment-synchronous




                                                                                             D#
                                                                                             D                                                80
                                  A




                                                                                                                                                                                                                                            • Metadata
             chromagram




                                                                                             C#
                                  G                                                          C
                                                                                                   0                  0.5                 1                           1.5                    2 sec.
                                                                                                                                           100
                                  E                                                          25
                                  D
                                                                                             20                                            120
                                                                      timbre features




                                  C




                                                                                                                                                                                                                                            • Segments
                                       0               2          4                                    6          8              10               12             14              16
                                                                                             15
                                                                                                                                           140
                                                                                             10




                                                                                                                                                                                                                                            • Fade in
                                                                                              5                                            160

                                                                                              1
                                                                                                            2         4          6            8             10              12        14              16 segments
                                                                                                                                           180




                                                                                                                                                                                                                                            • Fade out
                                                                                                                                           200


                                                                                                                                           220


                                                                                                                                                       20        40         60   80    100      120       140       160   180   200   220



Friday, November 20, 2009
developer.echonest.com
Friday, November 20, 2009
developer.echonest.com
Friday, November 20, 2009
Query:
             http://developer.echonest.com/api/get_similar
               ?api_key=YOUR_API_KEY
               &id=music://id.echonest.com/~/AR/AR2UWUD1187B9B3B01&rows=3
               &version=3
   Response:




Friday, November 20, 2009
CLIENT LIBRARIES
                     Echo Nest
                       Remix
                                            Java
                                                         3RD PARTY
                                                            Cocoa
                   Pyechonest                         Flash       Ruby
                                                         Processing


                               Echo Nest Web Services
                            http://developer.echonest.com/pages/resources
Friday, November 20, 2009
The Echo Nest
                              Artist API




Friday, November 20, 2009
Friday, November 20, 2009
Friday, November 20, 2009
Friday, November 20, 2009
Get your gaga on ... from python

             >> from pyechonest import artist
             >>
             >> gaga = artist.search_artists(‘Lady Gaga’)[0]
             >> gaga
             <Artist ‘Lady Gaga’>

             >> gaga.hotttnesss()
             0.86328906000000005

             >> gaga.similar(2)
             [<Artist 'Ashley Tisdale'>, <Artist 'Britney Spears'>]




Friday, November 20, 2009
ARTIST RADIO IN TEN LINES OF CODE


    def wander(band, max=10):
        """ generate a playlist by wandering a seed artist neighborhood """
        played = []
        while max:
            if band.audio():
                audio = random.choice(band.audio())
                if audio['url'] not in played:
                    play(audio)
                    played.append(audio['url'])
                    max -= 1
            band = random.choice(band.similar())




Friday, November 20, 2009
Find Weezer’s neighbors in Java
       ArtistAPI artistAPI = new ArtistAPI(MY_ECHO_NEST_API_KEY);
       List<Artist> artists = artistAPI.searchArtist("Weezer”, false);
       if (artists.size() > 0) {
           for (Artist artist : artists) {
                List<Scored<Artist>> similars =
                      artistAPI.getSimilarArtists(artist, 0, 10);
                for (Scored<Artist> simArtist : similars) {
                     System.out.println("   " + simArtist.getItem());
                }
            }
        }


Friday, November 20, 2009
Things you can build with
                                 The Echo Nest
                                    Artist API




Friday, November 20, 2009
Friday, November 20, 2009
Friday, November 20, 2009
PLAYLISTING




Friday, November 20, 2009
PLAYLISTING




Friday, November 20, 2009
Friday, November 20, 2009
More engaging music discovery
                The Music Exploration Space




Friday, November 20, 2009
The Echo Nest
                              Track API




Friday, November 20, 2009
25




                                              auditory spectrogram
                                                                     20


                                                                     15

                   auditory spectrogram
                                                                     10


                                                                         5


                                                                         1
                                                                          0         0.5       1            1.5             2 sec.
                                                                      1


                                                                     0.8
                                              segmentation

                                                                     0.6

                                 segments                            0.4


                                                                     0.2


                                                                      0
                                                                           0        0.5       1            1.5             2 sec.

                                                                     B
                                                                     A#
                                                                     A
                                              pitch features




                                                                     G#
                                                                     G


                             pitch features
                                                                     F#
                                                                     F
                                                                     E
                                                                     D#
                                                                     D
                                                                     C#
                                                                     C
                                                                           0        0.5       1            1.5             2 sec.

                                                                     25


                                                                     20
                                              timbre features




                                                                     15

                            timbre features                          10


                                                                      5


                                                                      1
                                                                               2    4     6       8   10         12   14            16 segments




                                                                                   JEHAN STYLE
Friday, November 20, 2009
4
                                                    x 10
                                               2

                                               1

                                               0
                              beat markers
                                             ! -1

                                             ! -2
                                                 0               5    10         15         20         25
                                             240
                                             190

                                             143

                                tempogram    114
                                              96

                                             72
                                              60
                                                    0            5    10         15         20         25
                                               1

                                             0.8

                                             0.6
                            tempo spectrum   0.4

                                             0.2

                                               0
                                                60          72       96    114        143        190        240




                                                             JEHAN STYLE
Friday, November 20, 2009
Friday, November 20, 2009
ECHO NEST REMIX API

                               chop sound into:

        Sections


        Bars

        Beats
                                                     ALL SONG
        Segments                                   ELEMENTS ARE
                                                  ITEMS IN A LIST
Friday, November 20, 2009
Delving into ‘Billie Jean’
           >> from pyechonest import track
           >>
           >> t=track.upload("BillieJean.mp3")
           >> t.tempo
           {'confidence': 0.966, 'value': 116.944}

           >> len(t.bars)
           142

           >> len(t.segments)
           1259
           >> t.segments[10]

           {'duration': 0.252, 'loudness_begin': -46.009,
            'loudness_end': -44.121, 'loudness_max': -30.931,
            'pitches': [0.342, 0.873, 0.843, 1.0, 0.511, 0.432, 0.841,
                        0.432, 0.691, 0.687, 0.329, 0.672],
            'start': 2.50204,
            'timbre': [19.50, 130.611, -114.94, 112.246, 28.369, -60.277,
                       -23.689, -10.537, 4.514, 12.957, -25.44, 2.88],
            'time_loudness_max': 0.0171}



Friday, November 20, 2009
Things you can build with
                                 The Echo Nest
                                    Track API




Friday, November 20, 2009
The Click Track Detector

                                                   Nirvana




                            Britney Spears
Friday, November 20, 2009
The Loudness war
                The loss of dynamic range in modern recordings




Friday, November 20, 2009
MUSIC VISUALIZATION




Friday, November 20, 2009
Friday, November 20, 2009
Visualizing Kid-A
                Song visualizations by using Echo Nest Analysis




                                    Visualizations by Chris Mueller
Friday, November 20, 2009
Visualizing Song self similarity
                  The shape of the song



    Madonna, Like A Prayer




                                                              Reich, Steve – Music for 18 Musicians: Pulses




                                     Visualization by Chris Mueller
Friday, November 20, 2009
SYNCHSTEP




                            MATCH MUSIC TO YOUR PACE

Friday, November 20, 2009
Song visualization on the iPhone
                Cocoa framework for the Echo Nest




Friday, November 20, 2009
Beethoven Hero
                Synchronizing visualizations with music




                                                          By Anita Lillie
Friday, November 20, 2009
Friday, November 20, 2009
THE ECHO NEST REMIX API




Friday, November 20, 2009
CLIENT LIBRARIES
                     Echo Nest
                       Remix
                                            Java
                                                         3RD PARTY
                                                            Cocoa
                   Pyechonest                         Flash       Ruby
                                                         Processing


                               Echo Nest Web Services
                            http://developer.echonest.com/pages/resources
Friday, November 20, 2009
Friday, November 20, 2009
>> song.segments
                                                         [segment, segment, segment...]
                                                         >> song.segments[10].start
                                                         34.502
                                                         >> song.segments[10].timbre
                                                         [-30.2, -10.4, 4.5, 3.2...]
                                                         >> song.segments[10].pitch
                                                         [0.5, 0.13, 1.0, .... ]


                                                         >> song.beats.reverse()



                                                         >> for i in segments:
                                                            i.stretch(2)
                                                            i = i + othersong.segment[12]


         >> You can mix elements, time stretch them, detect & change pitch, move them
         around, repeat them on downbeats, find a closest match in another song, detect and
         modify volume envelopes, read/write mp3, aiff, wav




                   ALL SONG ELEMENTS ARE ITEMS IN A LIST
Friday, November 20, 2009
WHAT
                            THE ECHO NEST REMIX API
                                    DOES




Friday, November 20, 2009
def one(input_filename, output_filename):
             audiofile = audio.LocalAudioFile(input_filename)
             bars = audiofile.analysis.bars
             collect = audio.AudioQuantumList()
             for bar in bars:
                 collect.append(bar.children()[0])
             out = audio.getpieces(audiofile, collect)
             out.encode(output_filename)




Friday, November 20, 2009
MAKE WEB SITES
Friday, November 20, 2009
MAKE WEB SITES
Friday, November 20, 2009
Hyperingo



      st = modify.Modify()
      afile = audio.LocalAudioFile(in_filename)
      beats = afile.analysis.beats
      total = float(len(beats))
      out_shape = (2*len(afile.data),)
      for i, beat in enumerate(beats):
          delta =  i / total
          new_ad = st.shiftTempo(afile[beat], 1 + delta / 2)
          out_data.append(new_ad)
      out_data.encode(out_filename)



Friday, November 20, 2009
Hyperingo



      st = modify.Modify()
      afile = audio.LocalAudioFile(in_filename)
      beats = afile.analysis.beats
      total = float(len(beats))
      out_shape = (2*len(afile.data),)
      for i, beat in enumerate(beats):
          delta =  i / total
          new_ad = st.shiftTempo(afile[beat], 1 + delta / 2)
          out_data.append(new_ad)
      out_data.encode(out_filename)



Friday, November 20, 2009
I’ve always wanted to hear
                            Michael Jackson trying to sing
                                Amerie’s “One Thing”


                                        -B.L.


                                   MAKE MUSIC
Friday, November 20, 2009
Make a James Brown Machine


                                  MAKE MUSIC
Friday, November 20, 2009
Let’s hear The Black Eyes Peas in 5/4.

                                            -P.L.
                                       MAKE MOVIES
Friday, November 20, 2009
API Workshop
       November 21, 2010
       Paul Lamere
       paul@echonest.com




Friday, November 20, 2009

More Related Content

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

The Echo Nest workshop for Boston Music Hack Day

  • 1. API Workshop November 21, 2010 Paul Lamere paul@echonest.com Friday, November 20, 2009
  • 2. listening reading World of Music Audio learning World of Music Text Solutions WHAT THE ECHO NEST DOES Friday, November 20, 2009
  • 3. READING Artist • Tag Cloud • Similar Artists • Familiarity • Hotttnesss • News • Audio • Images • Video • Reviews • Biography Friday, November 20, 2009
  • 4. Track LISTENING •Tempo • Key Dm7 G7 CM7 C#O Dm7 G7 CM7 C#O Dm7 G7 CM7 C#O Dm7 G7 CM7 C#O • Time Signature x 10 4 • Mode • Sections 2 1 wave form 0 • Pitch ! -1 ! -2 0 2 4 6 8 10 12 14 16 • Timbre 1 0.8 25 auditory spectrogram loudness 0.6 20 0.4 • Tatums 15 0.2 10 0 0 2 4 6 8 10 12 14 16 5 25 • Beats 1 0 0.5 1 1.5 2 sec. 20 spectrogram 1 auditory 15 0.8 10 segmentation • Bars 5 0.6 1 0 2 4 0.4 6 8 10 12 14 16 0.2 B • Duration A 0 chromagram 0 0.5 1 20 1.5 2 sec. G B A# E A 40 D pitch features • Loudness G# C G 0 2 4 F# 6 8 10 6012 14 16 F E B segment-synchronous D# D 80 A • Metadata chromagram C# G C 0 0.5 1 1.5 2 sec. 100 E 25 D 20 120 timbre features C • Segments 0 2 4 6 8 10 12 14 16 15 140 10 • Fade in 5 160 1 2 4 6 8 10 12 14 16 segments 180 • Fade out 200 220 20 40 60 80 100 120 140 160 180 200 220 Friday, November 20, 2009
  • 7. Query: http://developer.echonest.com/api/get_similar ?api_key=YOUR_API_KEY &id=music://id.echonest.com/~/AR/AR2UWUD1187B9B3B01&rows=3 &version=3 Response: Friday, November 20, 2009
  • 8. CLIENT LIBRARIES Echo Nest Remix Java 3RD PARTY Cocoa Pyechonest Flash Ruby Processing Echo Nest Web Services http://developer.echonest.com/pages/resources Friday, November 20, 2009
  • 9. The Echo Nest Artist API Friday, November 20, 2009
  • 13. Get your gaga on ... from python >> from pyechonest import artist >> >> gaga = artist.search_artists(‘Lady Gaga’)[0] >> gaga <Artist ‘Lady Gaga’> >> gaga.hotttnesss() 0.86328906000000005 >> gaga.similar(2) [<Artist 'Ashley Tisdale'>, <Artist 'Britney Spears'>] Friday, November 20, 2009
  • 14. ARTIST RADIO IN TEN LINES OF CODE def wander(band, max=10): """ generate a playlist by wandering a seed artist neighborhood """ played = [] while max: if band.audio(): audio = random.choice(band.audio()) if audio['url'] not in played: play(audio) played.append(audio['url']) max -= 1 band = random.choice(band.similar()) Friday, November 20, 2009
  • 15. Find Weezer’s neighbors in Java ArtistAPI artistAPI = new ArtistAPI(MY_ECHO_NEST_API_KEY); List<Artist> artists = artistAPI.searchArtist("Weezer”, false); if (artists.size() > 0) { for (Artist artist : artists) { List<Scored<Artist>> similars = artistAPI.getSimilarArtists(artist, 0, 10); for (Scored<Artist> simArtist : similars) { System.out.println("   " + simArtist.getItem()); } } } Friday, November 20, 2009
  • 16. Things you can build with The Echo Nest Artist API Friday, November 20, 2009
  • 22. More engaging music discovery The Music Exploration Space Friday, November 20, 2009
  • 23. The Echo Nest Track API Friday, November 20, 2009
  • 24. 25 auditory spectrogram 20 15 auditory spectrogram 10 5 1 0 0.5 1 1.5 2 sec. 1 0.8 segmentation 0.6 segments 0.4 0.2 0 0 0.5 1 1.5 2 sec. B A# A pitch features G# G pitch features F# F E D# D C# C 0 0.5 1 1.5 2 sec. 25 20 timbre features 15 timbre features 10 5 1 2 4 6 8 10 12 14 16 segments JEHAN STYLE Friday, November 20, 2009
  • 25. 4 x 10 2 1 0 beat markers ! -1 ! -2 0 5 10 15 20 25 240 190 143 tempogram 114 96 72 60 0 5 10 15 20 25 1 0.8 0.6 tempo spectrum 0.4 0.2 0 60 72 96 114 143 190 240 JEHAN STYLE Friday, November 20, 2009
  • 27. ECHO NEST REMIX API chop sound into: Sections Bars Beats ALL SONG Segments ELEMENTS ARE ITEMS IN A LIST Friday, November 20, 2009
  • 28. Delving into ‘Billie Jean’ >> from pyechonest import track >> >> t=track.upload("BillieJean.mp3") >> t.tempo {'confidence': 0.966, 'value': 116.944} >> len(t.bars) 142 >> len(t.segments) 1259 >> t.segments[10] {'duration': 0.252, 'loudness_begin': -46.009, 'loudness_end': -44.121, 'loudness_max': -30.931, 'pitches': [0.342, 0.873, 0.843, 1.0, 0.511, 0.432, 0.841, 0.432, 0.691, 0.687, 0.329, 0.672], 'start': 2.50204, 'timbre': [19.50, 130.611, -114.94, 112.246, 28.369, -60.277, -23.689, -10.537, 4.514, 12.957, -25.44, 2.88], 'time_loudness_max': 0.0171} Friday, November 20, 2009
  • 29. Things you can build with The Echo Nest Track API Friday, November 20, 2009
  • 30. The Click Track Detector Nirvana Britney Spears Friday, November 20, 2009
  • 31. The Loudness war The loss of dynamic range in modern recordings Friday, November 20, 2009
  • 34. Visualizing Kid-A Song visualizations by using Echo Nest Analysis Visualizations by Chris Mueller Friday, November 20, 2009
  • 35. Visualizing Song self similarity The shape of the song Madonna, Like A Prayer Reich, Steve – Music for 18 Musicians: Pulses Visualization by Chris Mueller Friday, November 20, 2009
  • 36. SYNCHSTEP MATCH MUSIC TO YOUR PACE Friday, November 20, 2009
  • 37. Song visualization on the iPhone Cocoa framework for the Echo Nest Friday, November 20, 2009
  • 38. Beethoven Hero Synchronizing visualizations with music By Anita Lillie Friday, November 20, 2009
  • 40. THE ECHO NEST REMIX API Friday, November 20, 2009
  • 41. CLIENT LIBRARIES Echo Nest Remix Java 3RD PARTY Cocoa Pyechonest Flash Ruby Processing Echo Nest Web Services http://developer.echonest.com/pages/resources Friday, November 20, 2009
  • 43. >> song.segments [segment, segment, segment...] >> song.segments[10].start 34.502 >> song.segments[10].timbre [-30.2, -10.4, 4.5, 3.2...] >> song.segments[10].pitch [0.5, 0.13, 1.0, .... ] >> song.beats.reverse() >> for i in segments: i.stretch(2) i = i + othersong.segment[12] >> You can mix elements, time stretch them, detect & change pitch, move them around, repeat them on downbeats, find a closest match in another song, detect and modify volume envelopes, read/write mp3, aiff, wav ALL SONG ELEMENTS ARE ITEMS IN A LIST Friday, November 20, 2009
  • 44. WHAT THE ECHO NEST REMIX API DOES Friday, November 20, 2009
  • 45. def one(input_filename, output_filename): audiofile = audio.LocalAudioFile(input_filename) bars = audiofile.analysis.bars collect = audio.AudioQuantumList() for bar in bars: collect.append(bar.children()[0]) out = audio.getpieces(audiofile, collect) out.encode(output_filename) Friday, November 20, 2009
  • 46. MAKE WEB SITES Friday, November 20, 2009
  • 47. MAKE WEB SITES Friday, November 20, 2009
  • 48. Hyperingo st = modify.Modify() afile = audio.LocalAudioFile(in_filename) beats = afile.analysis.beats total = float(len(beats)) out_shape = (2*len(afile.data),) for i, beat in enumerate(beats): delta =  i / total new_ad = st.shiftTempo(afile[beat], 1 + delta / 2) out_data.append(new_ad) out_data.encode(out_filename) Friday, November 20, 2009
  • 49. Hyperingo st = modify.Modify() afile = audio.LocalAudioFile(in_filename) beats = afile.analysis.beats total = float(len(beats)) out_shape = (2*len(afile.data),) for i, beat in enumerate(beats): delta =  i / total new_ad = st.shiftTempo(afile[beat], 1 + delta / 2) out_data.append(new_ad) out_data.encode(out_filename) Friday, November 20, 2009
  • 50. I’ve always wanted to hear Michael Jackson trying to sing Amerie’s “One Thing” -B.L. MAKE MUSIC Friday, November 20, 2009
  • 51. Make a James Brown Machine MAKE MUSIC Friday, November 20, 2009
  • 52. Let’s hear The Black Eyes Peas in 5/4. -P.L. MAKE MOVIES Friday, November 20, 2009
  • 53. API Workshop November 21, 2010 Paul Lamere paul@echonest.com Friday, November 20, 2009