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.
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. |
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.
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) |
|---|---|---|
|
|
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.
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.
[MATCH p=()-[:PLAYED_ON]->(birthOfCool) RETURN p LIMIT 25;]


