Skip to content

barrynormal/NeoTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 

Repository files navigation

miles

A slice of Jazz history

Graphing the story behind Miles Davis' 1957 album, Birth of the Cool

In 1957 Capitol Records released Birth of the Cool and after that, things just weren’t the same. Cool Jazz was about to hit the big time and Miles Davis was at least partly responsible.

But how did this modern jazz classic come about? Did it just appear 'out of the blue'? Of course not, there was a whole history of artists interacting, building styles, developing relationships and ways of playing which gradually built towards this recording.

A sad note

While pulling together this dataset, one thing which struck me was how young some of these musicians died. Having said that, the lifespan of drummers seems to be enormous.

For the detail, please see this Cypher query, which gives you artists, their lifespan, and their instrument of choice. But, the main takeaway - if you’re considering a career in jazz, pick up the drum sticks, not the bass. And whatever you do, stay away from the saxophone…​

Note
You can replicate the database using a free Neo4j Aura instance and the query saved in the input.py file.

Graphing history

Miles Davis and the shifting group of artists who made up his band, 'nonet', recorded 'Birth of the Cool' during a series of sessions between 1949 and 1950. The tracks were composed and arranged by a number of greats, including Gerry Mulligan and Gill Evans.

Each of these artists had a plethora of creative influences, and togehter they had a decisive influence on Jazz, in particular Bebop and Cool Jazz. With all this in mind, let’s take a look at the data modeling.

Data modelling Jazz

This model captures the nouns of the story as nodes for the graph. Actions are represented as relations. Some additional facts and figures, such as dates and names are recorded as properties of the nodes and occasionally, the relations.

Nodes include Relations include data model (click to enlarge)
  • artists

  • pieces

  • recordings

  • instruments

  • musical styles

  • record labels

  • groups

  • composed (there are often more then one to a piece)

  • arranged (not always mentioned)

  • played (linking musicians with their instruments)

  • played with (live performances)

  • played on (for artists appearing on recordings)

  • influenced (creative input from one to another)

  • created (bands, groups, record)

  • associated with (musical style)

  • has track (to associate pieces with recordings)

400

The full graph

Although this is only a slice of the data available on the creation of 'Birth of the cool', it quickly becomes apparrent just how much of a beautiful, organic collaboration Jazz really was, in the 1940s and '50s.

jazz story

Some interesting Cypher queries

If you recreated the database earlier, you can run these queries against your instance by simply cutting and pasting them into the Neo4j$ prompt at the top of the page.

Who actually played on 'Birth of the Cool' ?
[MATCH p=()-[:PLAYED_ON]->(birthOfCool) RETURN p LIMIT 25;]
Who played which instrument?
MATCH p=(Musician)-[:PLAYED]->(Instrument) RETURN p LIMIT 25;
A breakdown of artists by instrument, showing lifespan
MATCH (m:Musician) WHERE m.died IS NOT NULL SET m.lifespan = m.died - m.born

Then:

MATCH (i:Instrument)-[:PLAYED]-(m:Musician)
WHERE m.lifespan IS NOT NULL
RETURN i.name,m.name, m.lifespan
700

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages