SlideShare a Scribd company logo
1
Composing music
with
clojure.spec
Wojtek Franke
@apogsasis
Clojure/conj 2016
(s/def ::music ...)
2
Agenda
• fun with clojure.spec
• generate some tunes
• reflect on generative music
3
Not on the agenda
• how to use clojure.spec in
production
• best practices
4
$> whoami
5
$> whoami
• composing and performing
music as ENAY since ~2007
• software testing
• interested in chaos
6
Describing musical data
Hypothesis:
The primary paradigm
of computer music is
"Music is Data"
7
Tools
• clojure.spec
• leipzig
• overtone
8
Picking the domain
10
11
Modeling music
•audio
•symbolic representation
12
Modeling music
•audio
•symbolic representation
13
Hardware samplers
14
What's in a track?
15
What's in a track?
• sampled drums
• bass
• vocal samples
16
What's in a track?
• sampled drums
• bass
• vocal samples
17
Breakbeats
breakbeat |ˈbreɪkbiːt|
noun
a sample of a syncopated drum beat, usually repeated
to form a rhythm used as a basis for dance music, hip
hop, etc.
18
What's in a track?
•drums aka breakbeat or break
19
20
The Amen Break
• a drum solo (breakbeat) from "Amen Brother" a 1969
track by The Winstons
• one of the most sampled songs in history
• revered for its timbre and rhythm
21
Notation
• music scenes develop their own vernacular
• notation can allow easier, more intuitive
communication
22
Polish Jungle Notation
23
Polish Jungle Notation
24
Polish Jungle Notation
25
Composing breaks
The different renditions of the amen break and other
breakbeats are composable. We can mix and match
parts of different breaks.
26
Preparing samples
Characteristics of the samples:
• equal in length
• in the same tempo
• volume is normalised
27
Picking breakbeats
28
Slicing
29
Slicing
30
Wait for it...
31
Playing some breaks (finally!)
32
Composing breaks
33
Effects
• expanding the model with effect triggers (reverse,
pitch shift, filters)
34
What's in a track?
• drums (breaks)
• bass
• vocal samples
35
Bass
36
What's in a track?
•bass
37
Bass
note |nəʊt|
noun
a single tone of definite pitch made by a musical
instrument or the human voice
38
Bass
39
Bass sequence
40
Bass sequence
41
What's in a track?
•drums (break)
•bass
•vocal samples
42
What's in a track?
ragga |ˈraɡə|
noun [ mass noun ]
a style of dance music originating in Jamaica and
derived from reggae, in which a DJ improvises lyrics
over a sampled or electronic backing track.
43
What's in a track?
•ragga samples
44
Ragga samples
45
Ragga samples
46
Building songs•
47
48
49
50
Building discographies
• telescoping nature of musical composition
51
Building discographies
53
Sharing specs
54
Share specs
55
Share specs
56
What worked
• the end result is decent
• I now have a new jam buddy
• it's scalable!
• single data specification I can share between
backend and frontend
57
What didn't work
• clojure.spec generators are unaware of the context
• making custom synthesisers
58
Remember this slide?
Hypothesis:
The primary paradigm
of computer music is
"Music is Data"
59
Remember this slide?
Hypothesis:
The primary paradigm
of computer music is
"Music is Data"
60
The next generation
of computer-generated music
needs some understanding
of human cognition
Design Affordance
Appropriation
Agency in computer-human systems
is hybridised
Coal Fired Computers (300,000,000 Computers –
318,000 Black Lungs)
Harwood, Yokokoji and Denmars
66
What's next?
• self healing live-performances
67
What's next?
• self healing live-performances
• online generative jungle radio
68
What's next?
69
What's next?
• self healing live-performances
• online generative jungle radio
• explore the cognitive aspect
70
Resources
• Carin Meier - Genetic programming with spec
• https://github.com/gigasquid/genetic-programming-spec
• Chris Ford - African Polyphony & Polyrhythm
• https://www.youtube.com/watch?v=EK4qctJOMaU
• CreativeAI - On the Democratisation & Escalation of
Creativity
• https://medium.com/@ArtificialExperience/creativeai-
9d4b2346faf3#.k8ubhhauk
71
Resources
GITHUB PLACEHOLDER HERE
72
Find me
@apogsasis
apogsasis.org
Spotify, iTunes: ENAY
Fin

More Related Content

What's hot

Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.
Guillaume Saint Etienne
 
20211026 taicca 1 intro to mir
20211026 taicca 1 intro to mir20211026 taicca 1 intro to mir
20211026 taicca 1 intro to mir
Yi-Hsuan Yang
 
Brand Identity Pitch
Brand Identity PitchBrand Identity Pitch
Brand Identity Pitch
hheaton4
 
楊奕軒/音樂資料檢索
楊奕軒/音樂資料檢索楊奕軒/音樂資料檢索
楊奕軒/音樂資料檢索
台灣資料科學年會
 
Automatic Music Composition with Transformers, Jan 2021
Automatic Music Composition with Transformers, Jan 2021Automatic Music Composition with Transformers, Jan 2021
Automatic Music Composition with Transformers, Jan 2021
Yi-Hsuan Yang
 
"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo Choi"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo Choi
Keunwoo Choi
 
LeDrew_Matt_PPP
LeDrew_Matt_PPPLeDrew_Matt_PPP
LeDrew_Matt_PPP
mhledrew
 
Understanding Music Playlists
Understanding Music PlaylistsUnderstanding Music Playlists
Understanding Music Playlists
Keunwoo Choi
 
Audio tapes to copy
Audio tapes to copyAudio tapes to copy
Audio tapes to copy
Steven Ene
 
Dub step
Dub stepDub step
Dub step
Sofi Zuñiga
 
Audio tapes to copy
Audio tapes to copyAudio tapes to copy
Audio tapes to copy
Steven Ene
 
Artificial intelligence and Music
Artificial intelligence and MusicArtificial intelligence and Music
Artificial intelligence and Music
Jehoshaphat Abu
 
Podcasting
PodcastingPodcasting
Podcasting
Atif Hussain
 

What's hot (14)

Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.Electronic Music and Software Craftsmanship: analogue patterns.
Electronic Music and Software Craftsmanship: analogue patterns.
 
20211026 taicca 1 intro to mir
20211026 taicca 1 intro to mir20211026 taicca 1 intro to mir
20211026 taicca 1 intro to mir
 
Brand Identity Pitch
Brand Identity PitchBrand Identity Pitch
Brand Identity Pitch
 
楊奕軒/音樂資料檢索
楊奕軒/音樂資料檢索楊奕軒/音樂資料檢索
楊奕軒/音樂資料檢索
 
Automatic Music Composition with Transformers, Jan 2021
Automatic Music Composition with Transformers, Jan 2021Automatic Music Composition with Transformers, Jan 2021
Automatic Music Composition with Transformers, Jan 2021
 
"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo Choi"All you need is AI and music" by Keunwoo Choi
"All you need is AI and music" by Keunwoo Choi
 
LeDrew_Matt_PPP
LeDrew_Matt_PPPLeDrew_Matt_PPP
LeDrew_Matt_PPP
 
Digipak slidshare
Digipak slidshareDigipak slidshare
Digipak slidshare
 
Understanding Music Playlists
Understanding Music PlaylistsUnderstanding Music Playlists
Understanding Music Playlists
 
Audio tapes to copy
Audio tapes to copyAudio tapes to copy
Audio tapes to copy
 
Dub step
Dub stepDub step
Dub step
 
Audio tapes to copy
Audio tapes to copyAudio tapes to copy
Audio tapes to copy
 
Artificial intelligence and Music
Artificial intelligence and MusicArtificial intelligence and Music
Artificial intelligence and Music
 
Podcasting
PodcastingPodcasting
Podcasting
 

Similar to Wojciech Franke - Composing music with clojure.spec - Clojure/conj 2016

Research at MAC Lab, Academia Sincia, in 2017
Research at MAC Lab, Academia Sincia, in 2017Research at MAC Lab, Academia Sincia, in 2017
Research at MAC Lab, Academia Sincia, in 2017
Yi-Hsuan Yang
 
Teaching Music Technology Concepts with Few Music Technology Resources
Teaching Music Technology Concepts with Few Music Technology ResourcesTeaching Music Technology Concepts with Few Music Technology Resources
Teaching Music Technology Concepts with Few Music Technology Resourcesbradfordswanson
 
QMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack DayQMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack DayAmélie Anglade
 
Using mashup technology to improve findability
Using mashup technology to improve findabilityUsing mashup technology to improve findability
Using mashup technology to improve findabilitySten Govaerts
 
Introduction musictech
Introduction musictechIntroduction musictech
Introduction musictechJia Liu
 
Finding a Path Through the Juke Box: The Playlist Tutorial
Finding a Path Through the Juke Box: The Playlist TutorialFinding a Path Through the Juke Box: The Playlist Tutorial
Finding a Path Through the Juke Box: The Playlist Tutorial
Ben Fields
 
A Cappella Pop - KMEA 2014
A Cappella Pop - KMEA 2014A Cappella Pop - KMEA 2014
A Cappella Pop - KMEA 2014
brodymcd
 
Jamzion prj mix solo video tapes [IDEA]
Jamzion prj mix solo video tapes [IDEA]Jamzion prj mix solo video tapes [IDEA]
Jamzion prj mix solo video tapes [IDEA]
David Buitrago Arenas
 
DISCO MUSIC & ACTIVITIES
DISCO MUSIC & ACTIVITIESDISCO MUSIC & ACTIVITIES
DISCO MUSIC & ACTIVITIES
Christopher Baker
 
Adaptive Music in Video Games (2018)
Adaptive Music in Video Games (2018)Adaptive Music in Video Games (2018)
Adaptive Music in Video Games (2018)
Adam Sporka
 
Week 6b - Sound and Arrangement
Week 6b - Sound and ArrangementWeek 6b - Sound and Arrangement
Week 6b - Sound and Arrangement
Nick Braae
 

Similar to Wojciech Franke - Composing music with clojure.spec - Clojure/conj 2016 (12)

Research at MAC Lab, Academia Sincia, in 2017
Research at MAC Lab, Academia Sincia, in 2017Research at MAC Lab, Academia Sincia, in 2017
Research at MAC Lab, Academia Sincia, in 2017
 
Teaching Music Technology Concepts with Few Music Technology Resources
Teaching Music Technology Concepts with Few Music Technology ResourcesTeaching Music Technology Concepts with Few Music Technology Resources
Teaching Music Technology Concepts with Few Music Technology Resources
 
QMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack DayQMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack Day
 
Using mashup technology to improve findability
Using mashup technology to improve findabilityUsing mashup technology to improve findability
Using mashup technology to improve findability
 
Introduction musictech
Introduction musictechIntroduction musictech
Introduction musictech
 
Finding a Path Through the Juke Box: The Playlist Tutorial
Finding a Path Through the Juke Box: The Playlist TutorialFinding a Path Through the Juke Box: The Playlist Tutorial
Finding a Path Through the Juke Box: The Playlist Tutorial
 
A Cappella Pop - KMEA 2014
A Cappella Pop - KMEA 2014A Cappella Pop - KMEA 2014
A Cappella Pop - KMEA 2014
 
Jamzion prj mix solo video tapes [IDEA]
Jamzion prj mix solo video tapes [IDEA]Jamzion prj mix solo video tapes [IDEA]
Jamzion prj mix solo video tapes [IDEA]
 
DISCO MUSIC & ACTIVITIES
DISCO MUSIC & ACTIVITIESDISCO MUSIC & ACTIVITIES
DISCO MUSIC & ACTIVITIES
 
Adaptive Music in Video Games (2018)
Adaptive Music in Video Games (2018)Adaptive Music in Video Games (2018)
Adaptive Music in Video Games (2018)
 
Hiphop
HiphopHiphop
Hiphop
 
Week 6b - Sound and Arrangement
Week 6b - Sound and ArrangementWeek 6b - Sound and Arrangement
Week 6b - Sound and Arrangement
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 

Wojciech Franke - Composing music with clojure.spec - Clojure/conj 2016

Editor's Notes

  1. Welcome to "Composing music with clojure.spec"
  2. We'll have some fun with clojure.spec. We'll model a genre of music using. We'll make music. Finally I'll reflect on generative music and the direction where it's heading.
  3. you can find this in talks elsewhere.
  4. this is a computer's rendition of me - I especially like the chalice neck
  5. composing and performing electronic music since around 2007 used procedural real-time 3d visuals - used to be called demoscene back then but also a software tester by trade - I like to break stuff and use it in novel ways. I'm approaching this more from the perspective of the musician on a vision quest
  6. You might be wondering how does clojure.spec apply generating music? We'll let me state a hypothesis. ... If music is data we should be able to use whatever tools we know for manipulating data to.
  7. I will be using spec. Chris Ford's library leipzig which you may be familiar with if you've seen his great talks. There's a lot of Chris Ford fans here in the audience. and finally overtone for the actual audio (up till 1.9.0-alpha8) this is all pretty standard stuff for Clojure and music
  8. As you can probably imaging I did not build a universal music making machine. Instead I just focus on one particular type. So what kind of music will I be showing?
  9. I resisted the temptation to do something completely crazy - as it's not Paris and it's not 1924. Instead I decided to pick a genre that I think is fairly simple and "canonical" but also close to my heart.
  10. And it's Jungle. [PLAY SONG] A good way to explain it is that it's a flavour of drum and bass with a twist. Let me give you the context of what we'll be creating.
  11. When speaking about computer music we can speak of really 2 kinds of data - the audio whether it's a .wav file or a buffer of number which is ultimately converted from Digital -> Analogue and ultimately air vibration. The other is the symbolic representation of music - sheet music, MIDI files, guitar tabs. This data is a blueprint for musical performance.
  12. To an extent we can translate between these domains. We want to synthesise audio from a symbolic representation but also we may want to analyse or fingerprint audio to go the other way round. To create jungle we will rely on both sources of data - jungle is heavily sample-based making it an interesting choice for autonomous composition.
  13. The birth of jungle and also drum and bass and hip-hop is linked to the emergence of digital samplers. Their availability, lower cost and ease of use compared to earlier tape techniques meant the democratisation of musical production. Tons of people were sampling vinyl records, whatever they could get their hand on and using samplers to loop, slice, stretch, pitch shift, reverse bits of audio.
  14. So what's the bare minimum that I think constitutes a classical jungle track?
  15. Let's start with the drums as that's the core of the jungle sound.
  16. The breakbeat is literally a break in the song when the pitched instruments stop playing and the drummer plays solo. These most often come from funk, soul or gospel tracks. Syncopated means that the accent is placed on the "weak" parts of the beat.
  17. Here's the most iconic breakbeat of them all. Even if you're not into jungle you've probably heard it in everything from NWA's "Straight Outta Compton" to TV commercials, Futurama theme song.
  18. It's called the 'Amen break'. Heck it even has its own Chardonnay- that's how big of a deal this is. Notice this pattern at the top is a transcription of the drum pattern for the crash cymbal, ride, snare and bass-drum. Let's listen to it again. Maybe if you have good eyesight you can follow along
  19. OK, so we know that we want to use sampled breakbeat - how do we represent them symbolically? If you look at the wine bottle you'll have the instruments separated out. But this is not really what we're working with. It's really a single layer, the breakbeat is the instrument. I wanted to create a notation for using breakbeats that feels natural. When thinking about a beat I hear in my head something close to the sounds themselves. Since my first language is Polish
  20. It seems only appropriate to call it the Polish Jungle notation
  21. At it's simplest we can think of this as a set of single-syllable onomatopaoic sounds which correspond to the dominant percussion sound happening at the time. But this is's enough information to get us going. As in most genres of electronic music, the key is repetition. And since
  22. We define simple rules for how many times a specific sound can be repeat and build a collection we can use. Spec doesn't force you to use it in
  23. There is a interesting property - that these rules can be applied not just to the amen break but to other breaks as well.
  24. To do this we need to prepare our sample base.
  25. I load up a bunch of them as audio buffers. Define a fuction which plays back a specific slice of the buffer. And pick some different renditions of the amen break to begin with. Here's how they sound like:
  26. Here we play a single kick drum sound.
  27. We can map the syllables to selected parts of the break.
  28. Now we can generate a sequence from the spec earlier. We flatten the repetitions, pick 4 bars of 8 sounds. Rhythmise just takes a collection of amen sounds and arranges them in time using absolute values.
  29. Finally we can play our breaks together. Repeating the entire sequence 2 times, playing at a brisk 172 beats per minute.
  30. I mentioned that we can mix and matche different breakbeat sounds - here I'm doing so at runtime. This is a pattern I commonly use - to choose.
  31. In the future we could expand our model to perform even wilder variations. With per-note effect triggers. There are really a lot of variations we can do to replicate the kinds of edits that human musicians do.
  32. Now that we've set up the scene for slicing breakbeats let's talk a bit about the bass.
  33. Now these sequences are rather rudimentary. But bass in jungle plays a rather simple role.
  34. Typically we'll see a simple sine oscillator used for generating the bass like in this example.
  35. Bass is obviously a pitched instrument, meaning that the height of the sound varies to create a melody. When speaking about melodies at least in the West we thisk of them as sequences of notes.
  36. Here I'm representing pitch in the usual fashion - as an integer operating withn two octaves and the duration is represented by the familiar rational number notation used in sheet music.
  37. But playing pitch as random integers is like having a monkey sit at the piano - they may get it right sometimes but we'll likely be annoyed with our primate companion first. Instead we can compose leipzigs scale functions to transform our random integers into random integers on a scale of our choosing.
  38. It's not great but at least I don't hate it which is good.
  39. Alright let's add our final spice to the mix - the vocal samples. And specifically, we'll be using ragga samples.
  40. Now not ragga as that of India.
  41. These sound something like this.
  42. Nothing fancy here, just loading a set of these samples and specifying their timing.
  43. Let's hear all of them together.
  44. So now that we know how to build a short sequence. What is stopping us from building an entire song?
  45. We can specify an arrangement using the familiar "intro, verse, breakdown, reprise, outro" pattern and even generate the artist, song names.
  46. Specify which instruments should be present
  47. Even generate some artist names
  48. But why stop there if we can make whole discographies. The idivual edits -> macro level of whole libraries of music. If I want to perform a 2-3 hour set of music - if I have a compositional tool to which I can delegate some of the work I can focus on other things.
  49. But why stop there if we can make whole discographies of music. I feel like I could..
  50. Take on the world! So you see where this is going. Is there any practical reason why you'd want to do this? Would I even want to listen to all that music? The examples you've heard today are "OK" at best. It's a start.
  51. There's some other interesting properties of specs that play to our advantage. We want to build a web app where people can listen to tunes and rate them. Providing feedback back to the generating process? We could do that!
  52. Generate documentation with live example data? sure we can do that.
  53. Generate documentation with live example data? sure we can do that.
  54. The end resuslt is decent enough to use these breakbeats. As a musical perfectionist this is a big gain -
  55. Generation of elements independently of each other meant that there was really no chance for the generator to build context-aware sequences. I tried to generate parameters to overtone synths but this posed a similar problem - one parameter changes - say the resonance of a filter and this affects the volume, but the volume is also a generated parameter then I can have pretty unpleasant results.
  56. OK, this is the start of the rant part.
  57. Perception, acoustics, mood, context
  58. There is always a tension between Design and Appropriation but as as William Gibson wrote - The Street finds its own use for things.
  59. There are certain shorthands for thinking about such. Oh it's all generated - there is no human aspect to it. It's not autonomous at all -it's all controlled by the human creator. I don't think either of these propositions is true. Rather - agency is hybridised.
  60. What happens when 2 artists with their computers jam music and video together.
  61. A lot of things are hidden or blackboxed in technical systems.
  62. This project opens up the black box of computing. That we may feel that the technological goods like laptops or phones are "clean" but the cost of tier manufacture and operation is often elsewhere.
  63. self healing live performance - you played out of key? let me generate a conforming note and play it instead. Stuart Hallowey said yesterday that spec is preventing him from doing stupid things. Why not apply that to musical performance? There is a quote attributed to Syd Barrett the late frontman of Pink Floyd - it's not important to know which notes to play, just which notes NOT to play.
  64. The second thing which want to explore is to expose a live stream of generated music. I'm a big fan of jungletrain.net with is a human-run radio station.
  65. The second thing which want to explore is to expose a live stream of generated music. I'm a big fan of jungletrain.net with is a human-run radio station.
  66. I want to explore the cognitive aspect - if we want our code to make us more creative then it needs to know more about the idiosyncracies of how you think.
  67. Using spec themselves as data. Modeling a type of music but he also acknowledges the cultural bias in removing the musical data from its performance context.
  68. Otherwise we might find ourselves living in a world with an overabundance of mediocre music. And on that optimistic note, let me play you out with a little tune: