@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix dct:   <http://purl.org/dc/terms/> .
@prefix ns:    <https://ontology.bitwrap.io/ns#> .
@prefix pflow: <https://ontology.pflow.xyz/ns#> .

# Core module: the vocabulary. Classes and properties only, plus the hand-written
# links to pflow. The genres, rhythms, structures and the rest are generated into
# generated/genres.ttl from the beats generator's own tables; their definitions
# (what a groove IS) are in ns/definitions.ttl.

<https://ontology.bitwrap.io/ns> a owl:Ontology ;
    dct:title "bitwrap ontology: music genres and the Petri-net engine"@en ;
    owl:versionInfo "0.1.0" ;
    dct:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
    dct:rights "Dedicated to the public domain under CC0 1.0 Universal."@en ;
    rdfs:seeAlso <https://ontology.pflow.xyz/ns> ;
    rdfs:comment "Genres a Petri-net beat sequencer can generate (tempo, scale, groove, Euclidean drum rhythms, instruments, chord progressions), the song structures and section profiles it arranges them into, and the engine concepts (rhythm rings, Markov melody, control nets) that realise them. Draft scope: DJ- and musician-facing."@en .

# --- what exists ---------------------------------------------------------

ns:MusicConcept a owl:Class ; rdfs:label "Music concept"@en ;
    rdfs:comment "Root of everything this ontology describes about music."@en .

ns:Genre a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Genre"@en ;
    rdfs:comment "A style the sequencer can generate a whole track in. Each carries the defaults that make it recognisable: tempo, scale, drum rhythms, groove, feel."@en .
ns:GenreFamily a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Genre family"@en ;
    rdfs:comment "A group of genres that share song structures and section energy: edm, song, jazz, chill."@en .
ns:Scale a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Scale"@en ;
    rdfs:comment "A set of pitch-class offsets in semitones from a root."@en .
ns:Groove a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Groove"@en ;
    rdfs:comment "How the bass line locks to the drums."@en .
ns:InstrumentRole a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Instrument role"@en ;
    rdfs:comment "The job a track does in the mix: kick, snare, hihat, clap, bass, melody, harmony, arp."@en .
ns:Instrument a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Instrument"@en ;
    rdfs:comment "A named sound the synth engine can play."@en .
ns:SongSection a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Song section"@en ;
    rdfs:comment "A named stretch of a song: intro, verse, drop and so on."@en .
ns:SongStructure a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Song structure"@en ;
    rdfs:comment "An ordered template of sections for one genre family and length class."@en .
ns:SectionSlot a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Section slot"@en ;
    rdfs:comment "One numbered place in a song structure, filled by a section."@en .
ns:SectionProfile a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Section profile"@en ;
    rdfs:comment "What a section means in one family: which roles play and how much energy it carries."@en .
ns:EuclideanRhythm a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Euclidean rhythm"@en ;
    rdfs:comment "K pulses spread as evenly as possible over N steps, then rotated."@en .
ns:ChordProgression a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Chord progression"@en ;
    rdfs:comment "A cycle of chords named by the scale degree of their root."@en .
ns:DrumVariant a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Drum variant"@en ;
    rdfs:comment "A named alteration (B, C) of a genre's base drum rhythm: add pulses, scale them, rotate."@en .

[] a owl:AllDisjointClasses ;
    owl:members ( ns:Genre ns:GenreFamily ns:Scale ns:Groove ns:InstrumentRole ns:Instrument ns:SongSection
                  ns:SongStructure ns:SectionSlot ns:SectionProfile ns:EuclideanRhythm ns:ChordProgression ns:DrumVariant ) .

# --- engine: how a genre becomes a Petri net -------------------------------

ns:EngineNet a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Engine net"@en ;
    rdfs:comment "A Petri net the sequencer executes to make sound."@en ;
    skos:closeMatch pflow:PetriNet .
ns:RhythmRing a owl:Class ; rdfs:subClassOf ns:EngineNet ; rdfs:label "Rhythm ring"@en ;
    rdfs:comment "N places in a cycle, one token circulating, one transition per step; transitions at pulse positions carry a note binding, the rest are silent. Realises a Euclidean rhythm."@en .
ns:MelodyRing a owl:Class ; rdfs:subClassOf ns:EngineNet ; rdfs:label "Melody ring"@en ;
    rdfs:comment "The same ring, with a note binding on every non-rest step: a melody, bass line or arpeggio written out as a cycle."@en .
ns:ControlNet a owl:Class ; rdfs:subClassOf ns:EngineNet ; rdfs:label "Control net"@en ;
    rdfs:comment "A linear net that fires mute and unmute actions at section boundaries, which is how a song structure plays out."@en .
ns:EngineConcept a owl:Class ; rdfs:subClassOf ns:MusicConcept ; rdfs:label "Engine concept"@en ;
    rdfs:comment "A concept from the generator or sequencer that is not itself a genre property: the Bjorklund algorithm, Markov melody, swing and so on."@en .

# --- properties ------------------------------------------------------------

ns:genreId a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:string ;
    rdfs:label "genre id"@en ; rdfs:comment "The name the generator and its API use for this genre."@en .
ns:inFamily a owl:ObjectProperty, owl:FunctionalProperty ; rdfs:domain ns:Genre ; rdfs:range ns:GenreFamily ; rdfs:label "in family"@en .
ns:bpm a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:integer ;
    rdfs:label "default tempo"@en ; rdfs:comment "Beats per minute the generator starts at. Not a rule of the genre."@en .
ns:defaultScale a owl:ObjectProperty, owl:FunctionalProperty ; rdfs:domain ns:Genre ; rdfs:range ns:Scale ; rdfs:label "default scale"@en .
ns:rootNote a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:integer ;
    rdfs:label "root note"@en ; rdfs:comment "MIDI note number the scale is built on."@en .
ns:defaultGroove a owl:ObjectProperty, owl:FunctionalProperty ; rdfs:domain ns:Genre ; rdfs:range ns:Groove ; rdfs:label "default groove"@en .
ns:kickRhythm a owl:ObjectProperty ; rdfs:subPropertyOf ns:drumRhythm ; rdfs:label "kick rhythm"@en .
ns:snareRhythm a owl:ObjectProperty ; rdfs:subPropertyOf ns:drumRhythm ; rdfs:label "snare rhythm"@en .
ns:hihatRhythm a owl:ObjectProperty ; rdfs:subPropertyOf ns:drumRhythm ; rdfs:label "hihat rhythm"@en .
ns:drumRhythm a owl:ObjectProperty ; rdfs:domain ns:Genre ; rdfs:range ns:EuclideanRhythm ; rdfs:label "drum rhythm"@en .

ns:swing a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:integer ; rdfs:label "swing"@en ;
    rdfs:comment "How far off-beats are pushed late, 0 (straight) to about 60 (heavy)."@en .
ns:humanize a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:integer ; rdfs:label "humanize"@en ;
    rdfs:comment "Amount of random timing and velocity wobble."@en .
ns:durationVariation a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:decimal ; rdfs:label "duration variation"@en .
ns:melodyDensity a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:decimal ; rdfs:label "melody density"@en ;
    rdfs:comment "Share of melody steps that sound rather than rest, 0 to 1."@en .
ns:bassDensity a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:decimal ; rdfs:label "bass density"@en .
ns:melodyDuration a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:integer ; rdfs:label "melody note length"@en ;
    rdfs:comment "Note length in milliseconds."@en .
ns:bassDuration a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:integer ; rdfs:label "bass note length"@en .
ns:syncopation a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:decimal ; rdfs:label "syncopation"@en .
ns:ghostNotes a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:decimal ; rdfs:label "ghost notes"@en .
ns:modalInterchange a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:decimal ; rdfs:label "modal interchange"@en .
ns:polyrhythm a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:integer ; rdfs:label "polyrhythm"@en ;
    rdfs:comment "Step count of an extra ring that runs against the main one."@en .
ns:drumFills a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:boolean ; rdfs:label "drum fills"@en .
ns:walkingBass a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:boolean ; rdfs:label "walking bass"@en .
ns:callResponse a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:boolean ; rdfs:label "call and response"@en .
ns:tensionCurve a owl:DatatypeProperty ; rdfs:domain ns:Genre ; rdfs:range xsd:boolean ; rdfs:label "tension curve"@en .

ns:usesInstrument a owl:ObjectProperty ; rdfs:domain ns:Genre ; rdfs:range ns:Instrument ; rdfs:label "uses instrument"@en .
ns:melodyInstrument a owl:ObjectProperty ; rdfs:subPropertyOf ns:usesInstrument ; rdfs:label "melody instrument"@en ; rdfs:comment "MIDI channel 4."@en .
ns:arpInstrument a owl:ObjectProperty ; rdfs:subPropertyOf ns:usesInstrument ; rdfs:label "arp instrument"@en ; rdfs:comment "MIDI channel 5."@en .
ns:bassInstrument a owl:ObjectProperty ; rdfs:subPropertyOf ns:usesInstrument ; rdfs:label "bass instrument"@en ; rdfs:comment "MIDI channel 6."@en .
ns:drumKit a owl:ObjectProperty ; rdfs:subPropertyOf ns:usesInstrument ; rdfs:label "drum kit"@en ; rdfs:comment "MIDI channel 10."@en .

ns:hasProgression a owl:ObjectProperty ; rdfs:domain ns:Genre ; rdfs:range ns:ChordProgression ; rdfs:label "has progression"@en .
ns:hasDrumVariant a owl:ObjectProperty ; rdfs:domain ns:Genre ; rdfs:range ns:DrumVariant ; rdfs:label "has drum variant"@en .

ns:forRole a owl:ObjectProperty, owl:FunctionalProperty ; rdfs:range ns:InstrumentRole ; rdfs:label "for role"@en .
ns:forFamily a owl:ObjectProperty, owl:FunctionalProperty ; rdfs:range ns:GenreFamily ; rdfs:label "for family"@en .
ns:ofSection a owl:ObjectProperty, owl:FunctionalProperty ; rdfs:range ns:SongSection ; rdfs:label "of section"@en .
ns:pulses a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:EuclideanRhythm ; rdfs:range xsd:integer ; rdfs:label "pulses"@en .
ns:steps a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:EuclideanRhythm ; rdfs:range xsd:integer ; rdfs:label "steps"@en .
ns:rotation a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:EuclideanRhythm ; rdfs:range xsd:integer ; rdfs:label "rotation"@en .
ns:midiNote a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:EuclideanRhythm ; rdfs:range xsd:integer ; rdfs:label "MIDI note"@en .
ns:intervals a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:Scale ; rdfs:range xsd:string ; rdfs:label "intervals"@en ;
    rdfs:comment "Semitone offsets from the root, space separated."@en .
ns:noteCount a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:Scale ; rdfs:range xsd:integer ; rdfs:label "note count"@en .
ns:degrees a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:ChordProgression ; rdfs:range xsd:string ; rdfs:label "degrees"@en ;
    rdfs:comment "Scale degree of each chord's root, counted from 1, space separated."@en .
ns:chordCount a owl:DatatypeProperty ; rdfs:domain ns:ChordProgression ; rdfs:range xsd:integer ; rdfs:label "chord count"@en .
ns:stepsPerChord a owl:DatatypeProperty ; rdfs:domain ns:ChordProgression ; rdfs:range xsd:integer ; rdfs:label "steps per chord"@en .
ns:variantLabel a owl:DatatypeProperty ; rdfs:domain ns:DrumVariant ; rdfs:range xsd:string ; rdfs:label "variant label"@en .
ns:hitsAdd a owl:DatatypeProperty ; rdfs:domain ns:DrumVariant ; rdfs:range xsd:integer ; rdfs:label "pulses added"@en .
ns:hitsMul a owl:DatatypeProperty ; rdfs:domain ns:DrumVariant ; rdfs:range xsd:decimal ; rdfs:label "pulse multiplier"@en .
ns:rotationAdd a owl:DatatypeProperty ; rdfs:domain ns:DrumVariant ; rdfs:range xsd:integer ; rdfs:label "rotation added"@en .
ns:templateKind a owl:DatatypeProperty ; rdfs:domain ns:SongStructure ; rdfs:range xsd:string ; rdfs:label "template kind"@en ;
    rdfs:comment "minimal, standard, extended, ab, drop, build or jam."@en .
ns:sectionCount a owl:DatatypeProperty ; rdfs:domain ns:SongStructure ; rdfs:range xsd:integer ; rdfs:label "section count"@en .
ns:hasSlot a owl:ObjectProperty ; rdfs:domain ns:SongStructure ; rdfs:range ns:SectionSlot ; rdfs:label "has slot"@en .
ns:inStructure a owl:ObjectProperty, owl:FunctionalProperty ; rdfs:domain ns:SectionSlot ; rdfs:range ns:SongStructure ; rdfs:label "in structure"@en ; owl:inverseOf ns:hasSlot .
ns:position a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:SectionSlot ; rdfs:range xsd:integer ; rdfs:label "position"@en .
ns:activeRole a owl:ObjectProperty ; rdfs:domain ns:SectionProfile ; rdfs:range ns:InstrumentRole ; rdfs:label "active role"@en .
ns:energy a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:SectionProfile ; rdfs:range xsd:decimal ; rdfs:label "energy"@en ;
    rdfs:comment "Target loudness and intensity of the section, 0 to 1."@en .
ns:filterOpen a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:domain ns:SectionProfile ; rdfs:range xsd:decimal ; rdfs:label "filter openness"@en ;
    rdfs:comment "How open the filter is in the section, 0 (closed) to 1 (open)."@en .

# --- links to the pflow ontology -------------------------------------------
# Judgment links, each with its reason in the comment. closeMatch, never equivalence:
# these are different vocabularies and neither commits to the other's axioms.

ns:RhythmRing skos:closeMatch pflow:PetriNet ;
    rdfs:comment "Realised as a cycle of places and transitions with one token; the cycle makes it a state machine in pflow's terms."@en .
ns:ControlNet skos:closeMatch pflow:PetriNet .
ns:MelodyRing skos:closeMatch pflow:PetriNet .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix dct:   <http://purl.org/dc/terms/> .
@prefix ns:    <https://ontology.bitwrap.io/ns#> .
@prefix pflow: <https://ontology.pflow.xyz/ns#> .
@prefix genre: <https://ontology.bitwrap.io/genre/> .
@prefix family: <https://ontology.bitwrap.io/family/> .
@prefix scale: <https://ontology.bitwrap.io/scale/> .
@prefix groove: <https://ontology.bitwrap.io/groove/> .
@prefix role: <https://ontology.bitwrap.io/role/> .
@prefix instrument: <https://ontology.bitwrap.io/instrument/> .
@prefix section: <https://ontology.bitwrap.io/section/> .
@prefix concept: <https://ontology.bitwrap.io/concept/> .
@prefix wd:    <http://www.wikidata.org/entity/> .

# Hand-written definitions, in this project's own words. Numbers belong to
# generated/genres.ttl; this file says what each thing IS. Every genre,
# family, scale, groove, role and section generated must be defined here
# (scripts/check.sh refuses the build otherwise).

# --- genres. Wikidata links are skos:closeMatch (Wikidata data is CC0): the generator's genre is an
# --- approximation of the real-world one, so never exactMatch.
genre:techno skos:definition "Driving, repetitive four-to-the-bar electronic dance music built from drum machines and synthesizers, usually in the 120s of BPM."@en ; skos:closeMatch wd:Q170611 .
genre:house skos:definition "Four-to-the-bar dance music with a swung, syncopated bass and chordal keyboards, slightly slower than techno."@en ; skos:closeMatch wd:Q20502 .
genre:jazz skos:definition "Swung, improvised music over ii-V-I style harmony; the generator gives it a walking bass, a CR-78-style drum kit and loose timing."@en ; skos:closeMatch wd:Q8341 .
genre:ambient skos:definition "Slow, sparse, atmosphere-first music: long sustained notes, few drum hits, pentatonic harmony."@en ; skos:closeMatch wd:Q193207 .
genre:dnb skos:definition "Drum and bass: very fast breakbeat drums with a heavy, rolling sub-bass, around 170 to 180 BPM."@en ; skos:closeMatch wd:Q188994 .
genre:edm skos:definition "The generic big-room electronic dance template: builds, drops, bright supersaw leads."@en ; skos:closeMatch wd:Q851213 .
genre:speedcore skos:definition "Extremely fast, aggressive hardcore electronic music with a dense kick."@en ; skos:closeMatch wd:Q848457 .
genre:dubstep skos:definition "Half-time electronic music built on wobbling, filter-modulated bass and sparse, heavy drums, around 140 BPM."@en ; skos:closeMatch wd:Q20474 .
genre:country skos:definition "Song-form music on I-IV-V harmony with a steady backbeat and a lightly swung feel."@en ; skos:closeMatch wd:Q83440 .
genre:blues skos:definition "Twelve-bar song form on I-IV-V harmony with the blues scale, a strong swing and a walking bass."@en ; skos:closeMatch wd:Q9759 .
genre:synthwave skos:definition "Retro synthesizer music in the style of 1980s film and game soundtracks: arpeggios, gated drums, long pads."@en ; skos:closeMatch wd:Q19938910 .
genre:trance skos:definition "Melodic electronic dance music with long builds and repeating, evolving synth lines, around 140 BPM."@en ; skos:closeMatch wd:Q170435 .
genre:lofi skos:definition "Relaxed, dusty, loosely timed beats with soft instruments and a minor-pentatonic feel, around 80 BPM."@en ; skos:relatedMatch wd:Q1507298 .
genre:reggae skos:definition "Slow, offbeat-accented music with a prominent bass line and a one-drop feel, around 75 BPM."@en ; skos:closeMatch wd:Q9794 .
genre:funk skos:definition "Syncopated, bass-led groove music with tight, busy drums and ghost notes."@en ; skos:closeMatch wd:Q164444 .
genre:bossa skos:definition "Bossa nova: a gentle Brazilian-jazz groove with a syncopated rim-click pattern and a root and low-fifth bass ostinato."@en ; skos:closeMatch wd:Q486263 .
genre:trap skos:definition "Hip-hop derived style with heavy sub-bass, sparse snares and very busy hi-hat rolls."@en ; skos:relatedMatch wd:Q2913982 .
genre:garage skos:definition "UK garage: shuffling, swung two-step drums and a bouncy bass at around 130 BPM."@en ; skos:closeMatch wd:Q1165777 .
genre:metal skos:definition "Heavy guitar-driven music, here rendered with fast double-kick drums and the phrygian mode."@en ; skos:closeMatch wd:Q38848 .

# --- families
family:edm skos:definition "Electronic dance genres. Songs are built from intro, buildup, drop and breakdown."@en .
family:song skos:definition "Song-form genres. Songs are built from verse, chorus and bridge."@en .
family:jazz skos:definition "Jazz-derived genres. Songs alternate theme sections with solos."@en .
family:chill skos:definition "Slow, low-energy genres with a narrow dynamic range."@en .

# --- scales
scale:major skos:definition "The seven-note major scale: whole, whole, half, whole, whole, whole, half."@en .
scale:minor skos:definition "The natural minor scale, the sixth mode of the major scale."@en .
scale:dorian skos:definition "Minor with a raised sixth degree: the second mode of the major scale."@en .
scale:mixolydian skos:definition "Major with a lowered seventh: the fifth mode of the major scale."@en .
scale:phrygian skos:definition "Minor with a lowered second degree: the third mode of the major scale. Dark and tense."@en .
scale:harmonic-minor skos:definition "Natural minor with a raised seventh degree."@en .
scale:pentatonic skos:definition "The five-note major pentatonic scale: the major scale without its fourth and seventh."@en .
scale:minor-pentatonic skos:definition "The five-note minor pentatonic scale."@en .
scale:blues skos:definition "The minor pentatonic scale plus the flattened fifth, the blue note."@en .

# --- grooves: each is a rule for building the bass hit pattern from the kick hit pattern (groove.js)
groove:four-on-floor skos:definition "The bass plays exactly where the kick plays."@en .
groove:offbeat skos:definition "The bass plays one step before each kick, in the gap the kick leaves."@en .
groove:sidechained skos:definition "The bass plays wherever the kick does not, so the two never sound together."@en .
groove:syncopated-pocket skos:definition "The bass follows the kick and adds two off-beat hits, on steps 6 and 14 of a sixteen-step bar (3 and 7 of eight)."@en .
groove:breakbeat skos:definition "The bass plays about three eighths of the steps, evenly spread and randomly rotated, independent of the kick."@en .
groove:walking skos:definition "A steady quarter-note bass line that walks through the chord tones, independent of the kick."@en .
groove:bossa skos:definition "A syncopated ostinato alternating the root and the low fifth, the bossa nova bass figure."@en .

# --- roles
role:kick skos:definition "The bass drum: marks the pulse."@en .
role:snare skos:definition "The snare drum: marks the backbeat."@en .
role:hihat skos:definition "The hi-hat: keeps the subdivision."@en .
role:clap skos:definition "A hand-clap sound doubling the snare."@en .
role:bass skos:definition "The low line that carries the harmony's roots."@en .
role:melody skos:definition "The lead line."@en .
role:harmony skos:definition "Chordal accompaniment: pads, keys or stabs."@en .
role:arp skos:definition "An arpeggio: chord tones played one after another."@en .

# --- sections
section:intro skos:definition "The opening: few parts playing, building attention."@en .
section:verse skos:definition "A main body section carrying the groove with moderate energy."@en .
section:pre-chorus skos:definition "A short lift into the chorus."@en .
section:chorus skos:definition "The high-energy, full-arrangement section a song returns to."@en .
section:drop skos:definition "The peak of an electronic track after a buildup: full arrangement at highest energy."@en .
section:buildup skos:definition "Rising tension before a drop: snare and hi-hat density climb."@en .
section:breakdown skos:definition "A stripped-back section where the drums drop out and a melody carries."@en .
section:bridge skos:definition "A contrasting section away from the verse and chorus."@en .
section:solo skos:definition "A section featuring one melodic voice over the rhythm section."@en .
section:outro skos:definition "The closing section: parts fall away."@en .

# --- instruments (names are the synth engine's; definitions describe the sound family)
instrument:supersaw skos:definition "A stack of detuned sawtooth oscillators: the wide, bright trance and EDM lead."@en .
instrument:pluck skos:definition "A short, percussive plucked tone."@en .
instrument:bright-pluck skos:definition "A pluck with an open, bright filter."@en .
instrument:acid skos:definition "A resonant filtered sawtooth bass of the acid-house kind."@en .
instrument:drums skos:definition "The default electronic drum kit."@en .
instrument:electric-piano skos:definition "An electric-piano keys sound."@en .
instrument:bass skos:definition "A plain bass synth."@en .
instrument:vibes skos:definition "A vibraphone sound."@en .
instrument:sub-bass skos:definition "A low sine-like bass with almost no upper harmonics."@en .
instrument:drums-cr78 skos:definition "A drum kit styled on the CR-78 rhythm machine."@en .
instrument:warm-pad skos:definition "A slow, soft sustained pad."@en .
instrument:fm-bell skos:definition "A bell tone made by frequency modulation."@en .
instrument:square-lead skos:definition "A lead built on a square wave."@en .
instrument:reese skos:definition "A bass made of detuned, phasing sawtooth oscillators, a drum-and-bass staple."@en .
instrument:drums-breakbeat skos:definition "A drum kit used for breakbeat patterns."@en .
instrument:scream-lead skos:definition "A harsh, distorted lead."@en .
instrument:drums-v8 skos:definition "A drum kit used for the hardest, fastest genres."@en .
instrument:detuned-saw skos:definition "A lead made of detuned sawtooth oscillators."@en .
instrument:rave-stab skos:definition "A short, hard chord stab."@en .
instrument:wobble-bass skos:definition "A bass whose filter is modulated at a steady rate, giving the dubstep wobble."@en .

# --- engine concepts, with the pflow terms they correspond to
concept:step-place a skos:Concept, ns:EngineConcept ; skos:prefLabel "step place"@en ;
    skos:definition "One of the N places in a rhythm or melody ring. Each place is one step of the pattern."@en ;
    skos:closeMatch pflow:Place .
concept:note-transition a skos:Concept, ns:EngineConcept ; skos:prefLabel "note transition"@en ;
    skos:definition "A ring transition that carries a MIDI binding. Firing it plays the note; a transition without a binding passes the token silently."@en ;
    skos:closeMatch pflow:Transition .
concept:circulating-token a skos:Concept, ns:EngineConcept ; skos:prefLabel "circulating token"@en ;
    skos:definition "The single token that moves around a ring, one step per tick. Its position is the playhead."@en ;
    skos:closeMatch pflow:Token .
concept:ring-marking a skos:Concept, ns:EngineConcept ; skos:prefLabel "ring marking"@en ;
    skos:definition "Where the token sits in each ring right now: the whole state of the sequencer. A track's marking resets to its initial marking at the loop point."@en ;
    skos:closeMatch pflow:Marking .
concept:step-arc a skos:Concept, ns:EngineConcept ; skos:prefLabel "step arc"@en ;
    skos:definition "An arc from a place to its transition, or from a transition to the next place; together they close the ring."@en ;
    skos:closeMatch pflow:Arc .
concept:bjorklund a skos:Concept, ns:EngineConcept ; skos:prefLabel "Bjorklund algorithm"@en ;
    skos:definition "The procedure that spreads K pulses over N steps as evenly as possible. Applied repeatedly, it merges the longer groups with the leftover shorter ones until at most one leftover remains."@en ;
    rdfs:seeAlso <https://en.wikipedia.org/wiki/Euclidean_rhythm> .
concept:euclidean-rhythm a skos:Concept, ns:EngineConcept ; skos:prefLabel "Euclidean rhythm"@en ;
    skos:definition "A rhythm made by the Bjorklund algorithm. Many traditional patterns around the world are Euclidean rhythms. In the engine it becomes a rhythm ring with a note binding on each pulse step."@en ;
    skos:closeMatch ns:EuclideanRhythm .
concept:markov-melody a skos:Concept, ns:EngineConcept ; skos:prefLabel "Markov melody"@en ;
    skos:definition "A melody made by a chain in which the next scale degree depends on the current one and the position in the bar: strong beats land on the nearest chord tone, weak beats move by step or repeat. A density setting then turns the weakest-beat notes into rests, never the first step."@en .
concept:chord-tone a skos:Concept, ns:EngineConcept ; skos:prefLabel "chord tone"@en ;
    skos:definition "A scale degree that belongs to the chord sounding now. Strong-beat melody notes are pulled to the nearest one."@en .
concept:rotation a skos:Concept, ns:EngineConcept ; skos:prefLabel "rotation"@en ;
    skos:definition "Shifting a rhythm's pulses by a number of steps without changing their spacing."@en .
concept:density a skos:Concept, ns:EngineConcept ; skos:prefLabel "density"@en ;
    skos:definition "The share of steps that sound rather than rest."@en .
concept:ghost-note a skos:Concept, ns:EngineConcept ; skos:prefLabel "ghost note"@en ;
    skos:definition "A very quiet drum hit between the main ones, felt more than heard."@en .
concept:syncopation a skos:Concept, ns:EngineConcept ; skos:prefLabel "syncopation"@en ;
    skos:definition "Accents placed off the strong beats."@en .
concept:tension-curve a skos:Concept, ns:EngineConcept ; skos:prefLabel "tension curve"@en ;
    skos:definition "A rise and release of intensity across a section or song."@en .
concept:call-and-response a skos:Concept, ns:EngineConcept ; skos:prefLabel "call and response"@en ;
    skos:definition "A phrase answered by another phrase."@en .
concept:song-structure-net a skos:Concept, ns:EngineConcept ; skos:prefLabel "song structure net"@en ;
    skos:definition "A linear control net whose transitions mute and unmute tracks and activate slots at section boundaries, so the order of sections is the order of transitions firing."@en ;
    skos:closeMatch ns:ControlNet .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix ns:    <https://ontology.bitwrap.io/ns#> .
@prefix pflow: <https://ontology.pflow.xyz/ns#> .
@prefix concept: <https://ontology.bitwrap.io/concept/> .

# Judgment links to the pflow ontology (https://ontology.pflow.xyz/ns#), each with its
# reason. The engine concepts in ns/definitions.ttl already carry closeMatch to
# Place, Transition, Token, Marking and Arc; this file adds the class-level ones.
# These are the editor's judgment, not an engine output.

ns:RhythmRing rdfs:seeAlso pflow:PetriNet ;
    skos:scopeNote "A rhythm ring is a state machine in pflow's sense: every transition has one input place and one output place, and the net holds exactly one token."@en .
ns:ControlNet rdfs:seeAlso pflow:PetriNet ;
    skos:scopeNote "A control net is a linear workflow: its transitions fire once, in order."@en .
@prefix ns:   <https://ontology.bitwrap.io/ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix genre: <https://ontology.bitwrap.io/genre/> .
@prefix family: <https://ontology.bitwrap.io/family/> .
@prefix scale: <https://ontology.bitwrap.io/scale/> .
@prefix groove: <https://ontology.bitwrap.io/groove/> .
@prefix role: <https://ontology.bitwrap.io/role/> .
@prefix instrument: <https://ontology.bitwrap.io/instrument/> .
@prefix rhythm: <https://ontology.bitwrap.io/rhythm/> .
@prefix progression: <https://ontology.bitwrap.io/progression/> .
@prefix variant: <https://ontology.bitwrap.io/variant/> .
@prefix section: <https://ontology.bitwrap.io/section/> .
@prefix structure: <https://ontology.bitwrap.io/structure/> .
@prefix slot: <https://ontology.bitwrap.io/slot/> .
@prefix profile: <https://ontology.bitwrap.io/profile/> .

# GENERATED by extract/genres.py from stackdump/beats-bitwrap-io (see sources.lock). Do not edit.

family:edm a ns:GenreFamily ;
    rdfs:label "edm family"@en .

family:song a ns:GenreFamily ;
    rdfs:label "song family"@en .

family:jazz a ns:GenreFamily ;
    rdfs:label "jazz family"@en .

family:chill a ns:GenreFamily ;
    rdfs:label "chill family"@en .

scale:blues a ns:Scale ;
    rdfs:label "blues"@en ;
    ns:intervals "0 3 5 6 7 10" ;
    ns:noteCount "6"^^xsd:integer .

scale:dorian a ns:Scale ;
    rdfs:label "dorian"@en ;
    ns:intervals "0 2 3 5 7 9 10" ;
    ns:noteCount "7"^^xsd:integer .

scale:harmonic-minor a ns:Scale ;
    rdfs:label "harmonic minor"@en ;
    ns:intervals "0 2 3 5 7 8 11" ;
    ns:noteCount "7"^^xsd:integer .

scale:major a ns:Scale ;
    rdfs:label "major"@en ;
    ns:intervals "0 2 4 5 7 9 11" ;
    ns:noteCount "7"^^xsd:integer .

scale:minor a ns:Scale ;
    rdfs:label "minor"@en ;
    ns:intervals "0 2 3 5 7 8 10" ;
    ns:noteCount "7"^^xsd:integer .

scale:minor-pentatonic a ns:Scale ;
    rdfs:label "minor pentatonic"@en ;
    ns:intervals "0 3 5 7 10" ;
    ns:noteCount "5"^^xsd:integer .

scale:mixolydian a ns:Scale ;
    rdfs:label "mixolydian"@en ;
    ns:intervals "0 2 4 5 7 9 10" ;
    ns:noteCount "7"^^xsd:integer .

scale:pentatonic a ns:Scale ;
    rdfs:label "pentatonic"@en ;
    ns:intervals "0 2 4 7 9" ;
    ns:noteCount "5"^^xsd:integer .

scale:phrygian a ns:Scale ;
    rdfs:label "phrygian"@en ;
    ns:intervals "0 1 3 5 7 8 10" ;
    ns:noteCount "7"^^xsd:integer .

groove:four-on-floor a ns:Groove ;
    rdfs:label "four on floor"@en .

groove:offbeat a ns:Groove ;
    rdfs:label "offbeat"@en .

groove:sidechained a ns:Groove ;
    rdfs:label "sidechained"@en .

groove:syncopated-pocket a ns:Groove ;
    rdfs:label "syncopated pocket"@en .

groove:breakbeat a ns:Groove ;
    rdfs:label "breakbeat"@en .

groove:walking a ns:Groove ;
    rdfs:label "walking"@en .

groove:bossa a ns:Groove ;
    rdfs:label "bossa"@en .

role:kick a ns:InstrumentRole ;
    rdfs:label "kick"@en .

role:snare a ns:InstrumentRole ;
    rdfs:label "snare"@en .

role:hihat a ns:InstrumentRole ;
    rdfs:label "hihat"@en .

role:clap a ns:InstrumentRole ;
    rdfs:label "clap"@en .

role:bass a ns:InstrumentRole ;
    rdfs:label "bass"@en .

role:melody a ns:InstrumentRole ;
    rdfs:label "melody"@en .

role:harmony a ns:InstrumentRole ;
    rdfs:label "harmony"@en .

role:arp a ns:InstrumentRole ;
    rdfs:label "arp"@en .

instrument:acid a ns:Instrument ;
    rdfs:label "acid"@en .

instrument:bass a ns:Instrument ;
    rdfs:label "bass"@en .

instrument:bright-pluck a ns:Instrument ;
    rdfs:label "bright-pluck"@en .

instrument:detuned-saw a ns:Instrument ;
    rdfs:label "detuned-saw"@en .

instrument:drums a ns:Instrument ;
    rdfs:label "drums"@en .

instrument:drums-breakbeat a ns:Instrument ;
    rdfs:label "drums-breakbeat"@en .

instrument:drums-cr78 a ns:Instrument ;
    rdfs:label "drums-cr78"@en .

instrument:drums-v8 a ns:Instrument ;
    rdfs:label "drums-v8"@en .

instrument:electric-piano a ns:Instrument ;
    rdfs:label "electric-piano"@en .

instrument:fm-bell a ns:Instrument ;
    rdfs:label "fm-bell"@en .

instrument:pluck a ns:Instrument ;
    rdfs:label "pluck"@en .

instrument:rave-stab a ns:Instrument ;
    rdfs:label "rave-stab"@en .

instrument:reese a ns:Instrument ;
    rdfs:label "reese"@en .

instrument:scream-lead a ns:Instrument ;
    rdfs:label "scream-lead"@en .

instrument:square-lead a ns:Instrument ;
    rdfs:label "square-lead"@en .

instrument:sub-bass a ns:Instrument ;
    rdfs:label "sub-bass"@en .

instrument:supersaw a ns:Instrument ;
    rdfs:label "supersaw"@en .

instrument:vibes a ns:Instrument ;
    rdfs:label "vibes"@en .

instrument:warm-pad a ns:Instrument ;
    rdfs:label "warm-pad"@en .

instrument:wobble-bass a ns:Instrument ;
    rdfs:label "wobble-bass"@en .

genre:ambient a ns:Genre ;
    rdfs:label "ambient"@en ;
    ns:genreId "ambient" ;
    ns:inFamily family:chill ;
    ns:bpm "72"^^xsd:integer ;
    ns:defaultScale scale:pentatonic ;
    ns:rootNote "60"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:ambient-kick ;
    ns:snareRhythm rhythm:ambient-snare ;
    ns:hihatRhythm rhythm:ambient-hihat ;
    ns:swing "0"^^xsd:integer ;
    ns:humanize "25"^^xsd:integer ;
    ns:durationVariation "0.4"^^xsd:decimal ;
    ns:melodyDensity "0.3"^^xsd:decimal ;
    ns:melodyDuration "400"^^xsd:integer ;
    ns:bassDensity "0.2"^^xsd:decimal ;
    ns:bassDuration "500"^^xsd:integer ;
    ns:modalInterchange "0.2"^^xsd:decimal ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:drumKit instrument:drums ;
    ns:melodyInstrument instrument:warm-pad ;
    ns:arpInstrument instrument:fm-bell ;
    ns:bassInstrument instrument:sub-bass ;
    ns:hasProgression progression:ambient-1 ;
    ns:hasDrumVariant variant:ambient-kick-b ;
    ns:hasDrumVariant variant:ambient-kick-c ;
    ns:hasDrumVariant variant:ambient-snare-b ;
    ns:hasDrumVariant variant:ambient-snare-c ;
    ns:hasDrumVariant variant:ambient-hihat-b ;
    ns:hasDrumVariant variant:ambient-hihat-c .

rhythm:ambient-kick a ns:EuclideanRhythm ;
    rdfs:label "ambient kick: E(2,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:ambient-snare a ns:EuclideanRhythm ;
    rdfs:label "ambient snare: E(1,16) rotation 8"@en ;
    ns:forRole role:snare ;
    ns:pulses "1"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "8"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:ambient-hihat a ns:EuclideanRhythm ;
    rdfs:label "ambient hihat: E(3,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:ambient-1 a ns:ChordProgression ;
    rdfs:label "ambient progression 1: 1-3-6-4"@en ;
    ns:degrees "1 3 6 4" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:ambient-kick-b a ns:DrumVariant ;
    rdfs:label "ambient kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:ambient-kick-c a ns:DrumVariant ;
    rdfs:label "ambient kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "6"^^xsd:integer .

variant:ambient-snare-b a ns:DrumVariant ;
    rdfs:label "ambient snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:ambient-snare-c a ns:DrumVariant ;
    rdfs:label "ambient snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "6"^^xsd:integer .

variant:ambient-hihat-b a ns:DrumVariant ;
    rdfs:label "ambient hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:ambient-hihat-c a ns:DrumVariant ;
    rdfs:label "ambient hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

genre:blues a ns:Genre ;
    rdfs:label "blues"@en ;
    ns:genreId "blues" ;
    ns:inFamily family:song ;
    ns:bpm "95"^^xsd:integer ;
    ns:defaultScale scale:blues ;
    ns:rootNote "48"^^xsd:integer ;
    ns:defaultGroove groove:walking ;
    ns:kickRhythm rhythm:blues-kick ;
    ns:snareRhythm rhythm:blues-snare ;
    ns:hihatRhythm rhythm:blues-hihat ;
    ns:swing "50"^^xsd:integer ;
    ns:humanize "35"^^xsd:integer ;
    ns:durationVariation "0.5"^^xsd:decimal ;
    ns:melodyDensity "0.5"^^xsd:decimal ;
    ns:melodyDuration "160"^^xsd:integer ;
    ns:bassDensity "0.4"^^xsd:decimal ;
    ns:bassDuration "250"^^xsd:integer ;
    ns:syncopation "0.4"^^xsd:decimal ;
    ns:ghostNotes "0.5"^^xsd:decimal ;
    ns:modalInterchange "0.2"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:walkingBass "true"^^xsd:boolean ;
    ns:callResponse "true"^^xsd:boolean ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:hasProgression progression:blues-1 ;
    ns:hasDrumVariant variant:blues-kick-b ;
    ns:hasDrumVariant variant:blues-kick-c ;
    ns:hasDrumVariant variant:blues-snare-b ;
    ns:hasDrumVariant variant:blues-snare-c ;
    ns:hasDrumVariant variant:blues-hihat-b ;
    ns:hasDrumVariant variant:blues-hihat-c .

rhythm:blues-kick a ns:EuclideanRhythm ;
    rdfs:label "blues kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:blues-snare a ns:EuclideanRhythm ;
    rdfs:label "blues snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:blues-hihat a ns:EuclideanRhythm ;
    rdfs:label "blues hihat: E(6,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "6"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:blues-1 a ns:ChordProgression ;
    rdfs:label "blues progression 1: 1-1-1-1-4-4-1-1-5-4-1-5"@en ;
    ns:degrees "1 1 1 1 4 4 1 1 5 4 1 5" ;
    ns:chordCount "12"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:blues-kick-b a ns:DrumVariant ;
    rdfs:label "blues kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:blues-kick-c a ns:DrumVariant ;
    rdfs:label "blues kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

variant:blues-snare-b a ns:DrumVariant ;
    rdfs:label "blues snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:blues-snare-c a ns:DrumVariant ;
    rdfs:label "blues snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "3"^^xsd:integer .

variant:blues-hihat-b a ns:DrumVariant ;
    rdfs:label "blues hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:blues-hihat-c a ns:DrumVariant ;
    rdfs:label "blues hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:bossa a ns:Genre ;
    rdfs:label "bossa"@en ;
    ns:genreId "bossa" ;
    ns:inFamily family:jazz ;
    ns:bpm "88"^^xsd:integer ;
    ns:defaultScale scale:dorian ;
    ns:rootNote "53"^^xsd:integer ;
    ns:defaultGroove groove:bossa ;
    ns:kickRhythm rhythm:bossa-kick ;
    ns:snareRhythm rhythm:bossa-snare ;
    ns:hihatRhythm rhythm:bossa-hihat ;
    ns:swing "40"^^xsd:integer ;
    ns:humanize "30"^^xsd:integer ;
    ns:durationVariation "0.45"^^xsd:decimal ;
    ns:melodyDensity "0.45"^^xsd:decimal ;
    ns:melodyDuration "160"^^xsd:integer ;
    ns:bassDensity "0.5"^^xsd:decimal ;
    ns:bassDuration "220"^^xsd:integer ;
    ns:syncopation "0.35"^^xsd:decimal ;
    ns:ghostNotes "0.5"^^xsd:decimal ;
    ns:modalInterchange "0.25"^^xsd:decimal ;
    ns:walkingBass "true"^^xsd:boolean ;
    ns:callResponse "true"^^xsd:boolean ;
    ns:hasProgression progression:bossa-1 ;
    ns:hasProgression progression:bossa-2 ;
    ns:hasDrumVariant variant:bossa-kick-b ;
    ns:hasDrumVariant variant:bossa-kick-c ;
    ns:hasDrumVariant variant:bossa-snare-b ;
    ns:hasDrumVariant variant:bossa-snare-c ;
    ns:hasDrumVariant variant:bossa-hihat-b ;
    ns:hasDrumVariant variant:bossa-hihat-c .

rhythm:bossa-kick a ns:EuclideanRhythm ;
    rdfs:label "bossa kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:bossa-snare a ns:EuclideanRhythm ;
    rdfs:label "bossa snare: E(5,16) rotation 3"@en ;
    ns:forRole role:snare ;
    ns:pulses "5"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "3"^^xsd:integer ;
    ns:midiNote "37"^^xsd:integer .

rhythm:bossa-hihat a ns:EuclideanRhythm ;
    rdfs:label "bossa hihat: E(6,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "6"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:bossa-1 a ns:ChordProgression ;
    rdfs:label "bossa progression 1: 2-5-1-6"@en ;
    ns:degrees "2 5 1 6" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:bossa-2 a ns:ChordProgression ;
    rdfs:label "bossa progression 2: 1-6-2-5"@en ;
    ns:degrees "1 6 2 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:bossa-kick-b a ns:DrumVariant ;
    rdfs:label "bossa kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:bossa-kick-c a ns:DrumVariant ;
    rdfs:label "bossa kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:bossa-snare-b a ns:DrumVariant ;
    rdfs:label "bossa snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:bossa-snare-c a ns:DrumVariant ;
    rdfs:label "bossa snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "3"^^xsd:integer .

variant:bossa-hihat-b a ns:DrumVariant ;
    rdfs:label "bossa hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:bossa-hihat-c a ns:DrumVariant ;
    rdfs:label "bossa hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:country a ns:Genre ;
    rdfs:label "country"@en ;
    ns:genreId "country" ;
    ns:inFamily family:song ;
    ns:bpm "110"^^xsd:integer ;
    ns:defaultScale scale:major ;
    ns:rootNote "48"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:country-kick ;
    ns:snareRhythm rhythm:country-snare ;
    ns:hihatRhythm rhythm:country-hihat ;
    ns:swing "15"^^xsd:integer ;
    ns:humanize "20"^^xsd:integer ;
    ns:durationVariation "0.3"^^xsd:decimal ;
    ns:melodyDensity "0.5"^^xsd:decimal ;
    ns:melodyDuration "140"^^xsd:integer ;
    ns:bassDensity "0.5"^^xsd:decimal ;
    ns:bassDuration "200"^^xsd:integer ;
    ns:syncopation "0.2"^^xsd:decimal ;
    ns:ghostNotes "0.3"^^xsd:decimal ;
    ns:modalInterchange "0.1"^^xsd:decimal ;
    ns:walkingBass "true"^^xsd:boolean ;
    ns:callResponse "true"^^xsd:boolean ;
    ns:hasProgression progression:country-1 ;
    ns:hasProgression progression:country-2 ;
    ns:hasDrumVariant variant:country-kick-b ;
    ns:hasDrumVariant variant:country-kick-c ;
    ns:hasDrumVariant variant:country-snare-b ;
    ns:hasDrumVariant variant:country-snare-c ;
    ns:hasDrumVariant variant:country-hihat-b ;
    ns:hasDrumVariant variant:country-hihat-c .

rhythm:country-kick a ns:EuclideanRhythm ;
    rdfs:label "country kick: E(4,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:country-snare a ns:EuclideanRhythm ;
    rdfs:label "country snare: E(4,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:country-hihat a ns:EuclideanRhythm ;
    rdfs:label "country hihat: E(8,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:country-1 a ns:ChordProgression ;
    rdfs:label "country progression 1: 1-4-5-1"@en ;
    ns:degrees "1 4 5 1" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:country-2 a ns:ChordProgression ;
    rdfs:label "country progression 2: 1-6-4-5"@en ;
    ns:degrees "1 6 4 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:country-kick-b a ns:DrumVariant ;
    rdfs:label "country kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:country-kick-c a ns:DrumVariant ;
    rdfs:label "country kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:country-snare-b a ns:DrumVariant ;
    rdfs:label "country snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:country-snare-c a ns:DrumVariant ;
    rdfs:label "country snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "2"^^xsd:integer .

variant:country-hihat-b a ns:DrumVariant ;
    rdfs:label "country hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:country-hihat-c a ns:DrumVariant ;
    rdfs:label "country hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:dnb a ns:Genre ;
    rdfs:label "dnb"@en ;
    ns:genreId "dnb" ;
    ns:inFamily family:edm ;
    ns:bpm "174"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "43"^^xsd:integer ;
    ns:defaultGroove groove:breakbeat ;
    ns:kickRhythm rhythm:dnb-kick ;
    ns:snareRhythm rhythm:dnb-snare ;
    ns:hihatRhythm rhythm:dnb-hihat ;
    ns:swing "10"^^xsd:integer ;
    ns:humanize "15"^^xsd:integer ;
    ns:durationVariation "0.3"^^xsd:decimal ;
    ns:melodyDensity "0.5"^^xsd:decimal ;
    ns:melodyDuration "80"^^xsd:integer ;
    ns:bassDensity "0.7"^^xsd:decimal ;
    ns:bassDuration "120"^^xsd:integer ;
    ns:syncopation "0.3"^^xsd:decimal ;
    ns:ghostNotes "0.5"^^xsd:decimal ;
    ns:polyrhythm "6"^^xsd:integer ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:drumKit instrument:drums-breakbeat ;
    ns:melodyInstrument instrument:square-lead ;
    ns:arpInstrument instrument:bright-pluck ;
    ns:bassInstrument instrument:reese ;
    ns:hasProgression progression:dnb-1 ;
    ns:hasDrumVariant variant:dnb-kick-b ;
    ns:hasDrumVariant variant:dnb-kick-c ;
    ns:hasDrumVariant variant:dnb-snare-b ;
    ns:hasDrumVariant variant:dnb-snare-c ;
    ns:hasDrumVariant variant:dnb-hihat-b ;
    ns:hasDrumVariant variant:dnb-hihat-c .

rhythm:dnb-kick a ns:EuclideanRhythm ;
    rdfs:label "dnb kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:dnb-snare a ns:EuclideanRhythm ;
    rdfs:label "dnb snare: E(2,8) rotation 2"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "2"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:dnb-hihat a ns:EuclideanRhythm ;
    rdfs:label "dnb hihat: E(7,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "7"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:dnb-1 a ns:ChordProgression ;
    rdfs:label "dnb progression 1: 1-6-3-5"@en ;
    ns:degrees "1 6 3 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:dnb-kick-b a ns:DrumVariant ;
    rdfs:label "dnb kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:dnb-kick-c a ns:DrumVariant ;
    rdfs:label "dnb kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

variant:dnb-snare-b a ns:DrumVariant ;
    rdfs:label "dnb snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:dnb-snare-c a ns:DrumVariant ;
    rdfs:label "dnb snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "3"^^xsd:integer .

variant:dnb-hihat-b a ns:DrumVariant ;
    rdfs:label "dnb hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:dnb-hihat-c a ns:DrumVariant ;
    rdfs:label "dnb hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:dubstep a ns:Genre ;
    rdfs:label "dubstep"@en ;
    ns:genreId "dubstep" ;
    ns:inFamily family:edm ;
    ns:bpm "140"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "38"^^xsd:integer ;
    ns:defaultGroove groove:sidechained ;
    ns:kickRhythm rhythm:dubstep-kick ;
    ns:snareRhythm rhythm:dubstep-snare ;
    ns:hihatRhythm rhythm:dubstep-hihat ;
    ns:swing "15"^^xsd:integer ;
    ns:humanize "12"^^xsd:integer ;
    ns:durationVariation "0.3"^^xsd:decimal ;
    ns:melodyDensity "0.4"^^xsd:decimal ;
    ns:melodyDuration "120"^^xsd:integer ;
    ns:bassDensity "0.6"^^xsd:decimal ;
    ns:bassDuration "200"^^xsd:integer ;
    ns:syncopation "0.3"^^xsd:decimal ;
    ns:ghostNotes "0.4"^^xsd:decimal ;
    ns:modalInterchange "0.15"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:drumKit instrument:drums-v8 ;
    ns:melodyInstrument instrument:detuned-saw ;
    ns:arpInstrument instrument:rave-stab ;
    ns:bassInstrument instrument:wobble-bass ;
    ns:hasProgression progression:dubstep-1 ;
    ns:hasDrumVariant variant:dubstep-kick-b ;
    ns:hasDrumVariant variant:dubstep-kick-c ;
    ns:hasDrumVariant variant:dubstep-snare-b ;
    ns:hasDrumVariant variant:dubstep-snare-c ;
    ns:hasDrumVariant variant:dubstep-hihat-b ;
    ns:hasDrumVariant variant:dubstep-hihat-c .

rhythm:dubstep-kick a ns:EuclideanRhythm ;
    rdfs:label "dubstep kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:dubstep-snare a ns:EuclideanRhythm ;
    rdfs:label "dubstep snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:dubstep-hihat a ns:EuclideanRhythm ;
    rdfs:label "dubstep hihat: E(5,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "5"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:dubstep-1 a ns:ChordProgression ;
    rdfs:label "dubstep progression 1: 1-7-6-5"@en ;
    ns:degrees "1 7 6 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:dubstep-kick-b a ns:DrumVariant ;
    rdfs:label "dubstep kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:dubstep-kick-c a ns:DrumVariant ;
    rdfs:label "dubstep kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

variant:dubstep-snare-b a ns:DrumVariant ;
    rdfs:label "dubstep snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:dubstep-snare-c a ns:DrumVariant ;
    rdfs:label "dubstep snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "4"^^xsd:integer .

variant:dubstep-hihat-b a ns:DrumVariant ;
    rdfs:label "dubstep hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:dubstep-hihat-c a ns:DrumVariant ;
    rdfs:label "dubstep hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:edm a ns:Genre ;
    rdfs:label "edm"@en ;
    ns:genreId "edm" ;
    ns:inFamily family:edm ;
    ns:bpm "138"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "45"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:edm-kick ;
    ns:snareRhythm rhythm:edm-snare ;
    ns:hihatRhythm rhythm:edm-hihat ;
    ns:swing "0"^^xsd:integer ;
    ns:humanize "8"^^xsd:integer ;
    ns:durationVariation "0.15"^^xsd:decimal ;
    ns:melodyDensity "0.6"^^xsd:decimal ;
    ns:melodyDuration "100"^^xsd:integer ;
    ns:bassDensity "0.5"^^xsd:decimal ;
    ns:bassDuration "150"^^xsd:integer ;
    ns:syncopation "0.15"^^xsd:decimal ;
    ns:ghostNotes "0.3"^^xsd:decimal ;
    ns:modalInterchange "0.1"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:drumKit instrument:drums ;
    ns:melodyInstrument instrument:supersaw ;
    ns:arpInstrument instrument:bright-pluck ;
    ns:bassInstrument instrument:acid ;
    ns:hasProgression progression:edm-1 ;
    ns:hasProgression progression:edm-2 ;
    ns:hasDrumVariant variant:edm-kick-b ;
    ns:hasDrumVariant variant:edm-kick-c ;
    ns:hasDrumVariant variant:edm-snare-b ;
    ns:hasDrumVariant variant:edm-snare-c ;
    ns:hasDrumVariant variant:edm-hihat-b ;
    ns:hasDrumVariant variant:edm-hihat-c ;
    ns:hasDrumVariant variant:edm-clap-b ;
    ns:hasDrumVariant variant:edm-clap-c .

rhythm:edm-kick a ns:EuclideanRhythm ;
    rdfs:label "edm kick: E(4,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:edm-snare a ns:EuclideanRhythm ;
    rdfs:label "edm snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "40"^^xsd:integer .

rhythm:edm-hihat a ns:EuclideanRhythm ;
    rdfs:label "edm hihat: E(8,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:edm-1 a ns:ChordProgression ;
    rdfs:label "edm progression 1: 1-6-3-5"@en ;
    ns:degrees "1 6 3 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:edm-2 a ns:ChordProgression ;
    rdfs:label "edm progression 2: 1-7-6-5"@en ;
    ns:degrees "1 7 6 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:edm-kick-b a ns:DrumVariant ;
    rdfs:label "edm kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:edm-kick-c a ns:DrumVariant ;
    rdfs:label "edm kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:edm-snare-b a ns:DrumVariant ;
    rdfs:label "edm snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:edm-snare-c a ns:DrumVariant ;
    rdfs:label "edm snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:edm-hihat-b a ns:DrumVariant ;
    rdfs:label "edm hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:edm-hihat-c a ns:DrumVariant ;
    rdfs:label "edm hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-3"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:edm-clap-b a ns:DrumVariant ;
    rdfs:label "edm clap variant B"@en ;
    ns:forRole role:clap ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:edm-clap-c a ns:DrumVariant ;
    rdfs:label "edm clap variant C"@en ;
    ns:forRole role:clap ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:funk a ns:Genre ;
    rdfs:label "funk"@en ;
    ns:genreId "funk" ;
    ns:inFamily family:song ;
    ns:bpm "108"^^xsd:integer ;
    ns:defaultScale scale:mixolydian ;
    ns:rootNote "48"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:funk-kick ;
    ns:snareRhythm rhythm:funk-snare ;
    ns:hihatRhythm rhythm:funk-hihat ;
    ns:swing "30"^^xsd:integer ;
    ns:humanize "25"^^xsd:integer ;
    ns:durationVariation "0.4"^^xsd:decimal ;
    ns:melodyDensity "0.55"^^xsd:decimal ;
    ns:melodyDuration "100"^^xsd:integer ;
    ns:bassDensity "0.6"^^xsd:decimal ;
    ns:bassDuration "150"^^xsd:integer ;
    ns:syncopation "0.5"^^xsd:decimal ;
    ns:ghostNotes "0.6"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:walkingBass "true"^^xsd:boolean ;
    ns:callResponse "true"^^xsd:boolean ;
    ns:hasProgression progression:funk-1 ;
    ns:hasProgression progression:funk-2 ;
    ns:hasDrumVariant variant:funk-kick-b ;
    ns:hasDrumVariant variant:funk-kick-c ;
    ns:hasDrumVariant variant:funk-snare-b ;
    ns:hasDrumVariant variant:funk-snare-c ;
    ns:hasDrumVariant variant:funk-hihat-b ;
    ns:hasDrumVariant variant:funk-hihat-c .

rhythm:funk-kick a ns:EuclideanRhythm ;
    rdfs:label "funk kick: E(5,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "5"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:funk-snare a ns:EuclideanRhythm ;
    rdfs:label "funk snare: E(4,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:funk-hihat a ns:EuclideanRhythm ;
    rdfs:label "funk hihat: E(8,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:funk-1 a ns:ChordProgression ;
    rdfs:label "funk progression 1: 1-1-4-1"@en ;
    ns:degrees "1 1 4 1" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:funk-2 a ns:ChordProgression ;
    rdfs:label "funk progression 2: 1-4-1-5"@en ;
    ns:degrees "1 4 1 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:funk-kick-b a ns:DrumVariant ;
    rdfs:label "funk kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:funk-kick-c a ns:DrumVariant ;
    rdfs:label "funk kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:funk-snare-b a ns:DrumVariant ;
    rdfs:label "funk snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:funk-snare-c a ns:DrumVariant ;
    rdfs:label "funk snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "4"^^xsd:integer .

variant:funk-hihat-b a ns:DrumVariant ;
    rdfs:label "funk hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:funk-hihat-c a ns:DrumVariant ;
    rdfs:label "funk hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:garage a ns:Genre ;
    rdfs:label "garage"@en ;
    ns:genreId "garage" ;
    ns:inFamily family:edm ;
    ns:bpm "130"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "45"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:garage-kick ;
    ns:snareRhythm rhythm:garage-snare ;
    ns:hihatRhythm rhythm:garage-hihat ;
    ns:swing "30"^^xsd:integer ;
    ns:humanize "18"^^xsd:integer ;
    ns:durationVariation "0.3"^^xsd:decimal ;
    ns:melodyDensity "0.45"^^xsd:decimal ;
    ns:melodyDuration "110"^^xsd:integer ;
    ns:bassDensity "0.6"^^xsd:decimal ;
    ns:bassDuration "160"^^xsd:integer ;
    ns:syncopation "0.35"^^xsd:decimal ;
    ns:ghostNotes "0.45"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:hasProgression progression:garage-1 ;
    ns:hasProgression progression:garage-2 ;
    ns:hasDrumVariant variant:garage-kick-b ;
    ns:hasDrumVariant variant:garage-kick-c ;
    ns:hasDrumVariant variant:garage-snare-b ;
    ns:hasDrumVariant variant:garage-snare-c ;
    ns:hasDrumVariant variant:garage-hihat-b ;
    ns:hasDrumVariant variant:garage-hihat-c .

rhythm:garage-kick a ns:EuclideanRhythm ;
    rdfs:label "garage kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:garage-snare a ns:EuclideanRhythm ;
    rdfs:label "garage snare: E(3,16) rotation 2"@en ;
    ns:forRole role:snare ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "2"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:garage-hihat a ns:EuclideanRhythm ;
    rdfs:label "garage hihat: E(7,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "7"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:garage-1 a ns:ChordProgression ;
    rdfs:label "garage progression 1: 1-7-6-7"@en ;
    ns:degrees "1 7 6 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:garage-2 a ns:ChordProgression ;
    rdfs:label "garage progression 2: 1-4-7-3"@en ;
    ns:degrees "1 4 7 3" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:garage-kick-b a ns:DrumVariant ;
    rdfs:label "garage kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:garage-kick-c a ns:DrumVariant ;
    rdfs:label "garage kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

variant:garage-snare-b a ns:DrumVariant ;
    rdfs:label "garage snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:garage-snare-c a ns:DrumVariant ;
    rdfs:label "garage snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "3"^^xsd:integer .

variant:garage-hihat-b a ns:DrumVariant ;
    rdfs:label "garage hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:garage-hihat-c a ns:DrumVariant ;
    rdfs:label "garage hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:house a ns:Genre ;
    rdfs:label "house"@en ;
    ns:genreId "house" ;
    ns:inFamily family:edm ;
    ns:bpm "124"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "48"^^xsd:integer ;
    ns:defaultGroove groove:syncopated-pocket ;
    ns:kickRhythm rhythm:house-kick ;
    ns:snareRhythm rhythm:house-snare ;
    ns:hihatRhythm rhythm:house-hihat ;
    ns:swing "20"^^xsd:integer ;
    ns:humanize "15"^^xsd:integer ;
    ns:durationVariation "0.25"^^xsd:decimal ;
    ns:melodyDensity "0.5"^^xsd:decimal ;
    ns:melodyDuration "120"^^xsd:integer ;
    ns:bassDensity "0.6"^^xsd:decimal ;
    ns:bassDuration "180"^^xsd:integer ;
    ns:syncopation "0.2"^^xsd:decimal ;
    ns:ghostNotes "0.4"^^xsd:decimal ;
    ns:drumKit instrument:drums ;
    ns:melodyInstrument instrument:electric-piano ;
    ns:arpInstrument instrument:bright-pluck ;
    ns:bassInstrument instrument:bass ;
    ns:hasProgression progression:house-1 ;
    ns:hasProgression progression:house-2 ;
    ns:hasDrumVariant variant:house-kick-b ;
    ns:hasDrumVariant variant:house-kick-c ;
    ns:hasDrumVariant variant:house-snare-b ;
    ns:hasDrumVariant variant:house-snare-c ;
    ns:hasDrumVariant variant:house-hihat-b ;
    ns:hasDrumVariant variant:house-hihat-c .

rhythm:house-kick a ns:EuclideanRhythm ;
    rdfs:label "house kick: E(4,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:house-snare a ns:EuclideanRhythm ;
    rdfs:label "house snare: E(3,8) rotation 0"@en ;
    ns:forRole role:snare ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:house-hihat a ns:EuclideanRhythm ;
    rdfs:label "house hihat: E(6,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "6"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:house-1 a ns:ChordProgression ;
    rdfs:label "house progression 1: 1-7-6-7"@en ;
    ns:degrees "1 7 6 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:house-2 a ns:ChordProgression ;
    rdfs:label "house progression 2: 1-4-6-7"@en ;
    ns:degrees "1 4 6 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:house-kick-b a ns:DrumVariant ;
    rdfs:label "house kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:house-kick-c a ns:DrumVariant ;
    rdfs:label "house kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:house-snare-b a ns:DrumVariant ;
    rdfs:label "house snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:house-snare-c a ns:DrumVariant ;
    rdfs:label "house snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:house-hihat-b a ns:DrumVariant ;
    rdfs:label "house hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:house-hihat-c a ns:DrumVariant ;
    rdfs:label "house hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:jazz a ns:Genre ;
    rdfs:label "jazz"@en ;
    ns:genreId "jazz" ;
    ns:inFamily family:jazz ;
    ns:bpm "110"^^xsd:integer ;
    ns:defaultScale scale:dorian ;
    ns:rootNote "55"^^xsd:integer ;
    ns:defaultGroove groove:walking ;
    ns:kickRhythm rhythm:jazz-kick ;
    ns:snareRhythm rhythm:jazz-snare ;
    ns:hihatRhythm rhythm:jazz-hihat ;
    ns:swing "60"^^xsd:integer ;
    ns:humanize "40"^^xsd:integer ;
    ns:durationVariation "0.6"^^xsd:decimal ;
    ns:melodyDensity "0.6"^^xsd:decimal ;
    ns:melodyDuration "100"^^xsd:integer ;
    ns:bassDensity "0.4"^^xsd:decimal ;
    ns:bassDuration "250"^^xsd:integer ;
    ns:syncopation "0.5"^^xsd:decimal ;
    ns:ghostNotes "0.6"^^xsd:decimal ;
    ns:modalInterchange "0.3"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:walkingBass "true"^^xsd:boolean ;
    ns:callResponse "true"^^xsd:boolean ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:drumKit instrument:drums-cr78 ;
    ns:melodyInstrument instrument:vibes ;
    ns:arpInstrument instrument:pluck ;
    ns:bassInstrument instrument:sub-bass ;
    ns:hasProgression progression:jazz-1 ;
    ns:hasProgression progression:jazz-2 ;
    ns:hasDrumVariant variant:jazz-kick-b ;
    ns:hasDrumVariant variant:jazz-kick-c ;
    ns:hasDrumVariant variant:jazz-snare-b ;
    ns:hasDrumVariant variant:jazz-snare-c ;
    ns:hasDrumVariant variant:jazz-hihat-b ;
    ns:hasDrumVariant variant:jazz-hihat-c .

rhythm:jazz-kick a ns:EuclideanRhythm ;
    rdfs:label "jazz kick: E(3,12) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "12"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:jazz-snare a ns:EuclideanRhythm ;
    rdfs:label "jazz snare: E(2,12) rotation 3"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "12"^^xsd:integer ;
    ns:rotation "3"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:jazz-hihat a ns:EuclideanRhythm ;
    rdfs:label "jazz hihat: E(5,12) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "5"^^xsd:integer ;
    ns:steps "12"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:jazz-1 a ns:ChordProgression ;
    rdfs:label "jazz progression 1: 2-5-1-6"@en ;
    ns:degrees "2 5 1 6" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:jazz-2 a ns:ChordProgression ;
    rdfs:label "jazz progression 2: 3-6-2-5"@en ;
    ns:degrees "3 6 2 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:jazz-kick-b a ns:DrumVariant ;
    rdfs:label "jazz kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:jazz-kick-c a ns:DrumVariant ;
    rdfs:label "jazz kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:jazz-snare-b a ns:DrumVariant ;
    rdfs:label "jazz snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:jazz-snare-c a ns:DrumVariant ;
    rdfs:label "jazz snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "4"^^xsd:integer .

variant:jazz-hihat-b a ns:DrumVariant ;
    rdfs:label "jazz hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:jazz-hihat-c a ns:DrumVariant ;
    rdfs:label "jazz hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:lofi a ns:Genre ;
    rdfs:label "lofi"@en ;
    ns:genreId "lofi" ;
    ns:inFamily family:chill ;
    ns:bpm "82"^^xsd:integer ;
    ns:defaultScale scale:minor-pentatonic ;
    ns:rootNote "55"^^xsd:integer ;
    ns:defaultGroove groove:walking ;
    ns:kickRhythm rhythm:lofi-kick ;
    ns:snareRhythm rhythm:lofi-snare ;
    ns:hihatRhythm rhythm:lofi-hihat ;
    ns:swing "35"^^xsd:integer ;
    ns:humanize "40"^^xsd:integer ;
    ns:durationVariation "0.5"^^xsd:decimal ;
    ns:melodyDensity "0.35"^^xsd:decimal ;
    ns:melodyDuration "250"^^xsd:integer ;
    ns:bassDensity "0.3"^^xsd:decimal ;
    ns:bassDuration "350"^^xsd:integer ;
    ns:syncopation "0.2"^^xsd:decimal ;
    ns:ghostNotes "0.6"^^xsd:decimal ;
    ns:modalInterchange "0.15"^^xsd:decimal ;
    ns:hasProgression progression:lofi-1 ;
    ns:hasProgression progression:lofi-2 ;
    ns:hasDrumVariant variant:lofi-kick-b ;
    ns:hasDrumVariant variant:lofi-kick-c ;
    ns:hasDrumVariant variant:lofi-snare-b ;
    ns:hasDrumVariant variant:lofi-snare-c ;
    ns:hasDrumVariant variant:lofi-hihat-b ;
    ns:hasDrumVariant variant:lofi-hihat-c .

rhythm:lofi-kick a ns:EuclideanRhythm ;
    rdfs:label "lofi kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:lofi-snare a ns:EuclideanRhythm ;
    rdfs:label "lofi snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:lofi-hihat a ns:EuclideanRhythm ;
    rdfs:label "lofi hihat: E(5,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "5"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:lofi-1 a ns:ChordProgression ;
    rdfs:label "lofi progression 1: 2-5-1-6"@en ;
    ns:degrees "2 5 1 6" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:lofi-2 a ns:ChordProgression ;
    rdfs:label "lofi progression 2: 1-3-4-4"@en ;
    ns:degrees "1 3 4 4" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:lofi-kick-b a ns:DrumVariant ;
    rdfs:label "lofi kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:lofi-kick-c a ns:DrumVariant ;
    rdfs:label "lofi kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

variant:lofi-snare-b a ns:DrumVariant ;
    rdfs:label "lofi snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:lofi-snare-c a ns:DrumVariant ;
    rdfs:label "lofi snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:lofi-hihat-b a ns:DrumVariant ;
    rdfs:label "lofi hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:lofi-hihat-c a ns:DrumVariant ;
    rdfs:label "lofi hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:metal a ns:Genre ;
    rdfs:label "metal"@en ;
    ns:genreId "metal" ;
    ns:inFamily family:song ;
    ns:bpm "180"^^xsd:integer ;
    ns:defaultScale scale:phrygian ;
    ns:rootNote "40"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:metal-kick ;
    ns:snareRhythm rhythm:metal-snare ;
    ns:hihatRhythm rhythm:metal-hihat ;
    ns:swing "0"^^xsd:integer ;
    ns:humanize "8"^^xsd:integer ;
    ns:durationVariation "0.15"^^xsd:decimal ;
    ns:melodyDensity "0.6"^^xsd:decimal ;
    ns:melodyDuration "70"^^xsd:integer ;
    ns:bassDensity "0.7"^^xsd:decimal ;
    ns:bassDuration "80"^^xsd:integer ;
    ns:syncopation "0.15"^^xsd:decimal ;
    ns:ghostNotes "0.2"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:hasProgression progression:metal-1 ;
    ns:hasProgression progression:metal-2 ;
    ns:hasDrumVariant variant:metal-kick-b ;
    ns:hasDrumVariant variant:metal-kick-c ;
    ns:hasDrumVariant variant:metal-snare-b ;
    ns:hasDrumVariant variant:metal-snare-c ;
    ns:hasDrumVariant variant:metal-hihat-b ;
    ns:hasDrumVariant variant:metal-hihat-c .

rhythm:metal-kick a ns:EuclideanRhythm ;
    rdfs:label "metal kick: E(8,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:metal-snare a ns:EuclideanRhythm ;
    rdfs:label "metal snare: E(4,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:metal-hihat a ns:EuclideanRhythm ;
    rdfs:label "metal hihat: E(8,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:metal-1 a ns:ChordProgression ;
    rdfs:label "metal progression 1: 1-2-7-1"@en ;
    ns:degrees "1 2 7 1" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:metal-2 a ns:ChordProgression ;
    rdfs:label "metal progression 2: 1-6-7-1"@en ;
    ns:degrees "1 6 7 1" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:metal-kick-b a ns:DrumVariant ;
    rdfs:label "metal kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:metal-kick-c a ns:DrumVariant ;
    rdfs:label "metal kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:metal-snare-b a ns:DrumVariant ;
    rdfs:label "metal snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:metal-snare-c a ns:DrumVariant ;
    rdfs:label "metal snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:metal-hihat-b a ns:DrumVariant ;
    rdfs:label "metal hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:metal-hihat-c a ns:DrumVariant ;
    rdfs:label "metal hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-3"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:reggae a ns:Genre ;
    rdfs:label "reggae"@en ;
    ns:genreId "reggae" ;
    ns:inFamily family:song ;
    ns:bpm "75"^^xsd:integer ;
    ns:defaultScale scale:major ;
    ns:rootNote "48"^^xsd:integer ;
    ns:defaultGroove groove:offbeat ;
    ns:kickRhythm rhythm:reggae-kick ;
    ns:snareRhythm rhythm:reggae-snare ;
    ns:hihatRhythm rhythm:reggae-hihat ;
    ns:swing "25"^^xsd:integer ;
    ns:humanize "25"^^xsd:integer ;
    ns:durationVariation "0.35"^^xsd:decimal ;
    ns:melodyDensity "0.4"^^xsd:decimal ;
    ns:melodyDuration "180"^^xsd:integer ;
    ns:bassDensity "0.5"^^xsd:decimal ;
    ns:bassDuration "250"^^xsd:integer ;
    ns:syncopation "0.4"^^xsd:decimal ;
    ns:ghostNotes "0.3"^^xsd:decimal ;
    ns:walkingBass "true"^^xsd:boolean ;
    ns:hasProgression progression:reggae-1 ;
    ns:hasProgression progression:reggae-2 ;
    ns:hasDrumVariant variant:reggae-kick-b ;
    ns:hasDrumVariant variant:reggae-kick-c ;
    ns:hasDrumVariant variant:reggae-snare-b ;
    ns:hasDrumVariant variant:reggae-snare-c ;
    ns:hasDrumVariant variant:reggae-hihat-b ;
    ns:hasDrumVariant variant:reggae-hihat-c .

rhythm:reggae-kick a ns:EuclideanRhythm ;
    rdfs:label "reggae kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:reggae-snare a ns:EuclideanRhythm ;
    rdfs:label "reggae snare: E(2,16) rotation 6"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "6"^^xsd:integer ;
    ns:midiNote "37"^^xsd:integer .

rhythm:reggae-hihat a ns:EuclideanRhythm ;
    rdfs:label "reggae hihat: E(8,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:reggae-1 a ns:ChordProgression ;
    rdfs:label "reggae progression 1: 1-4-5-1"@en ;
    ns:degrees "1 4 5 1" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:reggae-2 a ns:ChordProgression ;
    rdfs:label "reggae progression 2: 1-6-4-5"@en ;
    ns:degrees "1 6 4 5" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:reggae-kick-b a ns:DrumVariant ;
    rdfs:label "reggae kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:reggae-kick-c a ns:DrumVariant ;
    rdfs:label "reggae kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:reggae-snare-b a ns:DrumVariant ;
    rdfs:label "reggae snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:reggae-snare-c a ns:DrumVariant ;
    rdfs:label "reggae snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "0.5"^^xsd:decimal ;
    ns:rotationAdd "2"^^xsd:integer .

variant:reggae-hihat-b a ns:DrumVariant ;
    rdfs:label "reggae hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:reggae-hihat-c a ns:DrumVariant ;
    rdfs:label "reggae hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:speedcore a ns:Genre ;
    rdfs:label "speedcore"@en ;
    ns:genreId "speedcore" ;
    ns:inFamily family:edm ;
    ns:bpm "220"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "40"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:speedcore-kick ;
    ns:snareRhythm rhythm:speedcore-snare ;
    ns:hihatRhythm rhythm:speedcore-hihat ;
    ns:swing "0"^^xsd:integer ;
    ns:humanize "5"^^xsd:integer ;
    ns:durationVariation "0.1"^^xsd:decimal ;
    ns:melodyDensity "0.7"^^xsd:decimal ;
    ns:melodyDuration "50"^^xsd:integer ;
    ns:bassDensity "0.8"^^xsd:decimal ;
    ns:bassDuration "60"^^xsd:integer ;
    ns:syncopation "0.05"^^xsd:decimal ;
    ns:ghostNotes "0.2"^^xsd:decimal ;
    ns:drumKit instrument:drums-v8 ;
    ns:melodyInstrument instrument:scream-lead ;
    ns:arpInstrument instrument:pluck ;
    ns:bassInstrument instrument:acid ;
    ns:hasProgression progression:speedcore-1 ;
    ns:hasDrumVariant variant:speedcore-kick-b ;
    ns:hasDrumVariant variant:speedcore-kick-c ;
    ns:hasDrumVariant variant:speedcore-snare-b ;
    ns:hasDrumVariant variant:speedcore-snare-c ;
    ns:hasDrumVariant variant:speedcore-hihat-b ;
    ns:hasDrumVariant variant:speedcore-hihat-c .

rhythm:speedcore-kick a ns:EuclideanRhythm ;
    rdfs:label "speedcore kick: E(8,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:speedcore-snare a ns:EuclideanRhythm ;
    rdfs:label "speedcore snare: E(4,16) rotation 2"@en ;
    ns:forRole role:snare ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "2"^^xsd:integer ;
    ns:midiNote "40"^^xsd:integer .

rhythm:speedcore-hihat a ns:EuclideanRhythm ;
    rdfs:label "speedcore hihat: E(12,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "12"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:speedcore-1 a ns:ChordProgression ;
    rdfs:label "speedcore progression 1: 1-7"@en ;
    ns:degrees "1 7" ;
    ns:chordCount "2"^^xsd:integer ;
    ns:stepsPerChord "8"^^xsd:integer .

variant:speedcore-kick-b a ns:DrumVariant ;
    rdfs:label "speedcore kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:speedcore-kick-c a ns:DrumVariant ;
    rdfs:label "speedcore kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:speedcore-snare-b a ns:DrumVariant ;
    rdfs:label "speedcore snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:speedcore-snare-c a ns:DrumVariant ;
    rdfs:label "speedcore snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:speedcore-hihat-b a ns:DrumVariant ;
    rdfs:label "speedcore hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "3"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:speedcore-hihat-c a ns:DrumVariant ;
    rdfs:label "speedcore hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-4"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

genre:synthwave a ns:Genre ;
    rdfs:label "synthwave"@en ;
    ns:genreId "synthwave" ;
    ns:inFamily family:song ;
    ns:bpm "108"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "48"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:synthwave-kick ;
    ns:snareRhythm rhythm:synthwave-snare ;
    ns:hihatRhythm rhythm:synthwave-hihat ;
    ns:swing "0"^^xsd:integer ;
    ns:humanize "5"^^xsd:integer ;
    ns:durationVariation "0.2"^^xsd:decimal ;
    ns:melodyDensity "0.4"^^xsd:decimal ;
    ns:melodyDuration "200"^^xsd:integer ;
    ns:bassDensity "0.6"^^xsd:decimal ;
    ns:bassDuration "300"^^xsd:integer ;
    ns:syncopation "0.05"^^xsd:decimal ;
    ns:ghostNotes "0.15"^^xsd:decimal ;
    ns:modalInterchange "0.1"^^xsd:decimal ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:hasProgression progression:synthwave-1 ;
    ns:hasProgression progression:synthwave-2 ;
    ns:hasDrumVariant variant:synthwave-kick-b ;
    ns:hasDrumVariant variant:synthwave-kick-c ;
    ns:hasDrumVariant variant:synthwave-snare-b ;
    ns:hasDrumVariant variant:synthwave-snare-c ;
    ns:hasDrumVariant variant:synthwave-hihat-b ;
    ns:hasDrumVariant variant:synthwave-hihat-c .

rhythm:synthwave-kick a ns:EuclideanRhythm ;
    rdfs:label "synthwave kick: E(4,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:synthwave-snare a ns:EuclideanRhythm ;
    rdfs:label "synthwave snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:synthwave-hihat a ns:EuclideanRhythm ;
    rdfs:label "synthwave hihat: E(4,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:synthwave-1 a ns:ChordProgression ;
    rdfs:label "synthwave progression 1: 1-6-3-7"@en ;
    ns:degrees "1 6 3 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:synthwave-2 a ns:ChordProgression ;
    rdfs:label "synthwave progression 2: 1-4-7-3"@en ;
    ns:degrees "1 4 7 3" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:synthwave-kick-b a ns:DrumVariant ;
    rdfs:label "synthwave kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:synthwave-kick-c a ns:DrumVariant ;
    rdfs:label "synthwave kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:synthwave-snare-b a ns:DrumVariant ;
    rdfs:label "synthwave snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:synthwave-snare-c a ns:DrumVariant ;
    rdfs:label "synthwave snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:synthwave-hihat-b a ns:DrumVariant ;
    rdfs:label "synthwave hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:synthwave-hihat-c a ns:DrumVariant ;
    rdfs:label "synthwave hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:techno a ns:Genre ;
    rdfs:label "techno"@en ;
    ns:genreId "techno" ;
    ns:inFamily family:edm ;
    ns:bpm "128"^^xsd:integer ;
    ns:defaultScale scale:major ;
    ns:rootNote "48"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:techno-kick ;
    ns:snareRhythm rhythm:techno-snare ;
    ns:hihatRhythm rhythm:techno-hihat ;
    ns:swing "0"^^xsd:integer ;
    ns:humanize "10"^^xsd:integer ;
    ns:durationVariation "0.2"^^xsd:decimal ;
    ns:melodyDensity "0.4"^^xsd:decimal ;
    ns:melodyDuration "150"^^xsd:integer ;
    ns:bassDensity "0.5"^^xsd:decimal ;
    ns:bassDuration "200"^^xsd:integer ;
    ns:syncopation "0.1"^^xsd:decimal ;
    ns:ghostNotes "0.3"^^xsd:decimal ;
    ns:drumKit instrument:drums ;
    ns:melodyInstrument instrument:supersaw ;
    ns:arpInstrument instrument:pluck ;
    ns:bassInstrument instrument:acid ;
    ns:hasProgression progression:techno-1 ;
    ns:hasDrumVariant variant:techno-kick-b ;
    ns:hasDrumVariant variant:techno-kick-c ;
    ns:hasDrumVariant variant:techno-snare-b ;
    ns:hasDrumVariant variant:techno-snare-c ;
    ns:hasDrumVariant variant:techno-hihat-b ;
    ns:hasDrumVariant variant:techno-hihat-c .

rhythm:techno-kick a ns:EuclideanRhythm ;
    rdfs:label "techno kick: E(4,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:techno-snare a ns:EuclideanRhythm ;
    rdfs:label "techno snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "38"^^xsd:integer .

rhythm:techno-hihat a ns:EuclideanRhythm ;
    rdfs:label "techno hihat: E(5,8) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "5"^^xsd:integer ;
    ns:steps "8"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:techno-1 a ns:ChordProgression ;
    rdfs:label "techno progression 1: 1-7-1-7"@en ;
    ns:degrees "1 7 1 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:techno-kick-b a ns:DrumVariant ;
    rdfs:label "techno kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:techno-kick-c a ns:DrumVariant ;
    rdfs:label "techno kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:techno-snare-b a ns:DrumVariant ;
    rdfs:label "techno snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:techno-snare-c a ns:DrumVariant ;
    rdfs:label "techno snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:techno-hihat-b a ns:DrumVariant ;
    rdfs:label "techno hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:techno-hihat-c a ns:DrumVariant ;
    rdfs:label "techno hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-3"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

genre:trance a ns:Genre ;
    rdfs:label "trance"@en ;
    ns:genreId "trance" ;
    ns:inFamily family:edm ;
    ns:bpm "140"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "45"^^xsd:integer ;
    ns:defaultGroove groove:four-on-floor ;
    ns:kickRhythm rhythm:trance-kick ;
    ns:snareRhythm rhythm:trance-snare ;
    ns:hihatRhythm rhythm:trance-hihat ;
    ns:swing "0"^^xsd:integer ;
    ns:humanize "5"^^xsd:integer ;
    ns:durationVariation "0.15"^^xsd:decimal ;
    ns:melodyDensity "0.5"^^xsd:decimal ;
    ns:melodyDuration "150"^^xsd:integer ;
    ns:bassDensity "0.6"^^xsd:decimal ;
    ns:bassDuration "180"^^xsd:integer ;
    ns:syncopation "0.1"^^xsd:decimal ;
    ns:ghostNotes "0.2"^^xsd:decimal ;
    ns:modalInterchange "0.15"^^xsd:decimal ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:hasProgression progression:trance-1 ;
    ns:hasProgression progression:trance-2 ;
    ns:hasDrumVariant variant:trance-kick-b ;
    ns:hasDrumVariant variant:trance-kick-c ;
    ns:hasDrumVariant variant:trance-snare-b ;
    ns:hasDrumVariant variant:trance-snare-c ;
    ns:hasDrumVariant variant:trance-hihat-b ;
    ns:hasDrumVariant variant:trance-hihat-c .

rhythm:trance-kick a ns:EuclideanRhythm ;
    rdfs:label "trance kick: E(4,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "4"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:trance-snare a ns:EuclideanRhythm ;
    rdfs:label "trance snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "40"^^xsd:integer .

rhythm:trance-hihat a ns:EuclideanRhythm ;
    rdfs:label "trance hihat: E(8,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "8"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:trance-1 a ns:ChordProgression ;
    rdfs:label "trance progression 1: 1-6-7-1"@en ;
    ns:degrees "1 6 7 1" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:trance-2 a ns:ChordProgression ;
    rdfs:label "trance progression 2: 1-4-6-7"@en ;
    ns:degrees "1 4 6 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:trance-kick-b a ns:DrumVariant ;
    rdfs:label "trance kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "0"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:trance-kick-c a ns:DrumVariant ;
    rdfs:label "trance kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:trance-snare-b a ns:DrumVariant ;
    rdfs:label "trance snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:trance-snare-c a ns:DrumVariant ;
    rdfs:label "trance snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:trance-hihat-b a ns:DrumVariant ;
    rdfs:label "trance hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:trance-hihat-c a ns:DrumVariant ;
    rdfs:label "trance hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-3"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

genre:trap a ns:Genre ;
    rdfs:label "trap"@en ;
    ns:genreId "trap" ;
    ns:inFamily family:edm ;
    ns:bpm "140"^^xsd:integer ;
    ns:defaultScale scale:minor ;
    ns:rootNote "38"^^xsd:integer ;
    ns:defaultGroove groove:sidechained ;
    ns:kickRhythm rhythm:trap-kick ;
    ns:snareRhythm rhythm:trap-snare ;
    ns:hihatRhythm rhythm:trap-hihat ;
    ns:swing "10"^^xsd:integer ;
    ns:humanize "8"^^xsd:integer ;
    ns:durationVariation "0.2"^^xsd:decimal ;
    ns:melodyDensity "0.35"^^xsd:decimal ;
    ns:melodyDuration "120"^^xsd:integer ;
    ns:bassDensity "0.5"^^xsd:decimal ;
    ns:bassDuration "250"^^xsd:integer ;
    ns:syncopation "0.3"^^xsd:decimal ;
    ns:ghostNotes "0.4"^^xsd:decimal ;
    ns:drumFills "true"^^xsd:boolean ;
    ns:tensionCurve "true"^^xsd:boolean ;
    ns:hasProgression progression:trap-1 ;
    ns:hasProgression progression:trap-2 ;
    ns:hasDrumVariant variant:trap-kick-b ;
    ns:hasDrumVariant variant:trap-kick-c ;
    ns:hasDrumVariant variant:trap-snare-b ;
    ns:hasDrumVariant variant:trap-snare-c ;
    ns:hasDrumVariant variant:trap-hihat-b ;
    ns:hasDrumVariant variant:trap-hihat-c .

rhythm:trap-kick a ns:EuclideanRhythm ;
    rdfs:label "trap kick: E(3,16) rotation 0"@en ;
    ns:forRole role:kick ;
    ns:pulses "3"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "36"^^xsd:integer .

rhythm:trap-snare a ns:EuclideanRhythm ;
    rdfs:label "trap snare: E(2,16) rotation 4"@en ;
    ns:forRole role:snare ;
    ns:pulses "2"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "4"^^xsd:integer ;
    ns:midiNote "40"^^xsd:integer .

rhythm:trap-hihat a ns:EuclideanRhythm ;
    rdfs:label "trap hihat: E(10,16) rotation 0"@en ;
    ns:forRole role:hihat ;
    ns:pulses "10"^^xsd:integer ;
    ns:steps "16"^^xsd:integer ;
    ns:rotation "0"^^xsd:integer ;
    ns:midiNote "42"^^xsd:integer .

progression:trap-1 a ns:ChordProgression ;
    rdfs:label "trap progression 1: 1-7-6-7"@en ;
    ns:degrees "1 7 6 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

progression:trap-2 a ns:ChordProgression ;
    rdfs:label "trap progression 2: 1-4-1-7"@en ;
    ns:degrees "1 4 1 7" ;
    ns:chordCount "4"^^xsd:integer ;
    ns:stepsPerChord "4"^^xsd:integer .

variant:trap-kick-b a ns:DrumVariant ;
    rdfs:label "trap kick variant B"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

variant:trap-kick-c a ns:DrumVariant ;
    rdfs:label "trap kick variant C"@en ;
    ns:forRole role:kick ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "5"^^xsd:integer .

variant:trap-snare-b a ns:DrumVariant ;
    rdfs:label "trap snare variant B"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "B" ;
    ns:hitsAdd "1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "2"^^xsd:integer .

variant:trap-snare-c a ns:DrumVariant ;
    rdfs:label "trap snare variant C"@en ;
    ns:forRole role:snare ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-1"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "4"^^xsd:integer .

variant:trap-hihat-b a ns:DrumVariant ;
    rdfs:label "trap hihat variant B"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "B" ;
    ns:hitsAdd "2"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "1"^^xsd:integer .

variant:trap-hihat-c a ns:DrumVariant ;
    rdfs:label "trap hihat variant C"@en ;
    ns:forRole role:hihat ;
    ns:variantLabel "C" ;
    ns:hitsAdd "-3"^^xsd:integer ;
    ns:hitsMul "1"^^xsd:integer ;
    ns:rotationAdd "3"^^xsd:integer .

section:intro a ns:SongSection ;
    rdfs:label "intro"@en .

section:verse a ns:SongSection ;
    rdfs:label "verse"@en .

section:pre-chorus a ns:SongSection ;
    rdfs:label "pre-chorus"@en .

section:chorus a ns:SongSection ;
    rdfs:label "chorus"@en .

section:drop a ns:SongSection ;
    rdfs:label "drop"@en .

section:buildup a ns:SongSection ;
    rdfs:label "buildup"@en .

section:breakdown a ns:SongSection ;
    rdfs:label "breakdown"@en .

section:bridge a ns:SongSection ;
    rdfs:label "bridge"@en .

section:solo a ns:SongSection ;
    rdfs:label "solo"@en .

section:outro a ns:SongSection ;
    rdfs:label "outro"@en .

profile:edm-intro a ns:SectionProfile ;
    rdfs:label "intro in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:intro ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:energy "0.3"^^xsd:decimal ;
    ns:filterOpen "0.35"^^xsd:decimal .

profile:edm-verse a ns:SectionProfile ;
    rdfs:label "verse in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:verse ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.5"^^xsd:decimal .

profile:edm-pre-chorus a ns:SectionProfile ;
    rdfs:label "pre-chorus in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:pre-chorus ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp ;
    ns:energy "0.6"^^xsd:decimal ;
    ns:filterOpen "0.45"^^xsd:decimal .

profile:edm-chorus a ns:SectionProfile ;
    rdfs:label "chorus in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:chorus ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:clap ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:activeRole role:arp ;
    ns:energy "0.85"^^xsd:decimal ;
    ns:filterOpen "0.8"^^xsd:decimal .

profile:edm-drop a ns:SectionProfile ;
    rdfs:label "drop in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:drop ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:clap ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:activeRole role:arp ;
    ns:energy "0.95"^^xsd:decimal ;
    ns:filterOpen "0.9"^^xsd:decimal .

profile:edm-buildup a ns:SectionProfile ;
    rdfs:label "buildup in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:buildup ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp ;
    ns:energy "0.65"^^xsd:decimal ;
    ns:filterOpen "0.4"^^xsd:decimal .

profile:edm-breakdown a ns:SectionProfile ;
    rdfs:label "breakdown in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:breakdown ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:energy "0.3"^^xsd:decimal ;
    ns:filterOpen "0.25"^^xsd:decimal .

profile:edm-bridge a ns:SectionProfile ;
    rdfs:label "bridge in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:bridge ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:edm-solo a ns:SectionProfile ;
    rdfs:label "solo in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:solo ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.7"^^xsd:decimal ;
    ns:filterOpen "0.7"^^xsd:decimal .

profile:edm-outro a ns:SectionProfile ;
    rdfs:label "outro in edm"@en ;
    ns:forFamily family:edm ;
    ns:ofSection section:outro ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:activeRole role:melody ;
    ns:energy "0.3"^^xsd:decimal ;
    ns:filterOpen "0.3"^^xsd:decimal .

structure:edm-minimal-1 a ns:SongStructure ;
    rdfs:label "edm minimal 1: intro > buildup > drop > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:edm-minimal-1-1 ;
    ns:hasSlot slot:edm-minimal-1-2 ;
    ns:hasSlot slot:edm-minimal-1-3 ;
    ns:hasSlot slot:edm-minimal-1-4 .

slot:edm-minimal-1-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-minimal-1-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-minimal-1-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-minimal-1-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-minimal-2 a ns:SongStructure ;
    rdfs:label "edm minimal 2: intro > drop > breakdown > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:edm-minimal-2-1 ;
    ns:hasSlot slot:edm-minimal-2-2 ;
    ns:hasSlot slot:edm-minimal-2-3 ;
    ns:hasSlot slot:edm-minimal-2-4 .

slot:edm-minimal-2-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-minimal-2-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-minimal-2-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-minimal-2-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-minimal-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-standard-1 a ns:SongStructure ;
    rdfs:label "edm standard 1: intro > buildup > drop > breakdown > buildup > drop > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "standard" ;
    ns:sectionCount "7"^^xsd:integer ;
    ns:hasSlot slot:edm-standard-1-1 ;
    ns:hasSlot slot:edm-standard-1-2 ;
    ns:hasSlot slot:edm-standard-1-3 ;
    ns:hasSlot slot:edm-standard-1-4 ;
    ns:hasSlot slot:edm-standard-1-5 ;
    ns:hasSlot slot:edm-standard-1-6 ;
    ns:hasSlot slot:edm-standard-1-7 .

slot:edm-standard-1-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-standard-1-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-standard-1-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-standard-1-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-standard-1-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-standard-1-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-standard-1-7 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-1 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-standard-2 a ns:SongStructure ;
    rdfs:label "edm standard 2: intro > verse > buildup > drop > breakdown > drop > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "standard" ;
    ns:sectionCount "7"^^xsd:integer ;
    ns:hasSlot slot:edm-standard-2-1 ;
    ns:hasSlot slot:edm-standard-2-2 ;
    ns:hasSlot slot:edm-standard-2-3 ;
    ns:hasSlot slot:edm-standard-2-4 ;
    ns:hasSlot slot:edm-standard-2-5 ;
    ns:hasSlot slot:edm-standard-2-6 ;
    ns:hasSlot slot:edm-standard-2-7 .

slot:edm-standard-2-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-standard-2-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-standard-2-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-standard-2-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-standard-2-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-standard-2-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-standard-2-7 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-2 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-standard-3 a ns:SongStructure ;
    rdfs:label "edm standard 3: intro > buildup > drop > verse > drop > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "standard" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:edm-standard-3-1 ;
    ns:hasSlot slot:edm-standard-3-2 ;
    ns:hasSlot slot:edm-standard-3-3 ;
    ns:hasSlot slot:edm-standard-3-4 ;
    ns:hasSlot slot:edm-standard-3-5 ;
    ns:hasSlot slot:edm-standard-3-6 .

slot:edm-standard-3-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-standard-3-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-standard-3-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-standard-3-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-standard-3-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-standard-3-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-standard-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-extended-1 a ns:SongStructure ;
    rdfs:label "edm extended 1: intro > buildup > drop > breakdown > verse > buildup > drop > bridge > chorus > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "extended" ;
    ns:sectionCount "10"^^xsd:integer ;
    ns:hasSlot slot:edm-extended-1-1 ;
    ns:hasSlot slot:edm-extended-1-2 ;
    ns:hasSlot slot:edm-extended-1-3 ;
    ns:hasSlot slot:edm-extended-1-4 ;
    ns:hasSlot slot:edm-extended-1-5 ;
    ns:hasSlot slot:edm-extended-1-6 ;
    ns:hasSlot slot:edm-extended-1-7 ;
    ns:hasSlot slot:edm-extended-1-8 ;
    ns:hasSlot slot:edm-extended-1-9 ;
    ns:hasSlot slot:edm-extended-1-10 .

slot:edm-extended-1-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-extended-1-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-extended-1-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-1-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-extended-1-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-extended-1-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-extended-1-7 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-1-8 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:edm-extended-1-9 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:edm-extended-1-10 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-1 ;
    ns:position "10"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-extended-2 a ns:SongStructure ;
    rdfs:label "edm extended 2: intro > verse > buildup > drop > breakdown > buildup > drop > chorus > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "extended" ;
    ns:sectionCount "9"^^xsd:integer ;
    ns:hasSlot slot:edm-extended-2-1 ;
    ns:hasSlot slot:edm-extended-2-2 ;
    ns:hasSlot slot:edm-extended-2-3 ;
    ns:hasSlot slot:edm-extended-2-4 ;
    ns:hasSlot slot:edm-extended-2-5 ;
    ns:hasSlot slot:edm-extended-2-6 ;
    ns:hasSlot slot:edm-extended-2-7 ;
    ns:hasSlot slot:edm-extended-2-8 ;
    ns:hasSlot slot:edm-extended-2-9 .

slot:edm-extended-2-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-extended-2-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-extended-2-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-extended-2-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-2-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-extended-2-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-extended-2-7 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-2-8 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:edm-extended-2-9 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-2 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-extended-3 a ns:SongStructure ;
    rdfs:label "edm extended 3: intro > buildup > drop > verse > breakdown > buildup > drop > bridge > drop > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "extended" ;
    ns:sectionCount "10"^^xsd:integer ;
    ns:hasSlot slot:edm-extended-3-1 ;
    ns:hasSlot slot:edm-extended-3-2 ;
    ns:hasSlot slot:edm-extended-3-3 ;
    ns:hasSlot slot:edm-extended-3-4 ;
    ns:hasSlot slot:edm-extended-3-5 ;
    ns:hasSlot slot:edm-extended-3-6 ;
    ns:hasSlot slot:edm-extended-3-7 ;
    ns:hasSlot slot:edm-extended-3-8 ;
    ns:hasSlot slot:edm-extended-3-9 ;
    ns:hasSlot slot:edm-extended-3-10 .

slot:edm-extended-3-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-extended-3-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-extended-3-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-3-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-extended-3-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-extended-3-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-extended-3-7 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-3-8 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:edm-extended-3-9 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-3-10 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-3 ;
    ns:position "10"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-extended-4 a ns:SongStructure ;
    rdfs:label "edm extended 4: intro > verse > pre-chorus > drop > breakdown > verse > buildup > drop > outro"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "extended" ;
    ns:sectionCount "9"^^xsd:integer ;
    ns:hasSlot slot:edm-extended-4-1 ;
    ns:hasSlot slot:edm-extended-4-2 ;
    ns:hasSlot slot:edm-extended-4-3 ;
    ns:hasSlot slot:edm-extended-4-4 ;
    ns:hasSlot slot:edm-extended-4-5 ;
    ns:hasSlot slot:edm-extended-4-6 ;
    ns:hasSlot slot:edm-extended-4-7 ;
    ns:hasSlot slot:edm-extended-4-8 ;
    ns:hasSlot slot:edm-extended-4-9 .

slot:edm-extended-4-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:edm-extended-4-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-extended-4-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:pre-chorus .

slot:edm-extended-4-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-4-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-extended-4-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-extended-4-7 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-extended-4-8 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-extended-4-9 a ns:SectionSlot ;
    ns:inStructure structure:edm-extended-4 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:outro .

structure:edm-ab-1 a ns:SongStructure ;
    rdfs:label "edm ab 1: verse > drop > verse > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:edm-ab-1-1 ;
    ns:hasSlot slot:edm-ab-1-2 ;
    ns:hasSlot slot:edm-ab-1-3 ;
    ns:hasSlot slot:edm-ab-1-4 .

slot:edm-ab-1-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-ab-1-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-ab-1-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-ab-1-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-ab-2 a ns:SongStructure ;
    rdfs:label "edm ab 2: buildup > drop > buildup > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:edm-ab-2-1 ;
    ns:hasSlot slot:edm-ab-2-2 ;
    ns:hasSlot slot:edm-ab-2-3 ;
    ns:hasSlot slot:edm-ab-2-4 .

slot:edm-ab-2-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-ab-2-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-ab-2-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-ab-2-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-ab-3 a ns:SongStructure ;
    rdfs:label "edm ab 3: verse > chorus > verse > chorus"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:edm-ab-3-1 ;
    ns:hasSlot slot:edm-ab-3-2 ;
    ns:hasSlot slot:edm-ab-3-3 ;
    ns:hasSlot slot:edm-ab-3-4 .

slot:edm-ab-3-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-ab-3-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:edm-ab-3-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-ab-3-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-ab-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:edm-drop-1 a ns:SongStructure ;
    rdfs:label "edm drop 1: drop > breakdown > drop > breakdown > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:edm-drop-1-1 ;
    ns:hasSlot slot:edm-drop-1-2 ;
    ns:hasSlot slot:edm-drop-1-3 ;
    ns:hasSlot slot:edm-drop-1-4 ;
    ns:hasSlot slot:edm-drop-1-5 .

slot:edm-drop-1-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-drop-1-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-drop-1-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-drop-1-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-drop-1-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-drop-2 a ns:SongStructure ;
    rdfs:label "edm drop 2: buildup > drop > breakdown > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "drop" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:edm-drop-2-1 ;
    ns:hasSlot slot:edm-drop-2-2 ;
    ns:hasSlot slot:edm-drop-2-3 ;
    ns:hasSlot slot:edm-drop-2-4 .

slot:edm-drop-2-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-drop-2-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-drop-2-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:edm-drop-2-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-drop-3 a ns:SongStructure ;
    rdfs:label "edm drop 3: drop > verse > drop > verse > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:edm-drop-3-1 ;
    ns:hasSlot slot:edm-drop-3-2 ;
    ns:hasSlot slot:edm-drop-3-3 ;
    ns:hasSlot slot:edm-drop-3-4 ;
    ns:hasSlot slot:edm-drop-3-5 .

slot:edm-drop-3-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-drop-3-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-drop-3-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-drop-3-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-drop-3-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-drop-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-build-1 a ns:SongStructure ;
    rdfs:label "edm build 1: buildup > drop > buildup > drop > buildup > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "build" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:edm-build-1-1 ;
    ns:hasSlot slot:edm-build-1-2 ;
    ns:hasSlot slot:edm-build-1-3 ;
    ns:hasSlot slot:edm-build-1-4 ;
    ns:hasSlot slot:edm-build-1-5 ;
    ns:hasSlot slot:edm-build-1-6 .

slot:edm-build-1-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-build-1-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-build-1-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-build-1-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-build-1-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-build-1-6 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-build-2 a ns:SongStructure ;
    rdfs:label "edm build 2: verse > buildup > drop > buildup > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "build" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:edm-build-2-1 ;
    ns:hasSlot slot:edm-build-2-2 ;
    ns:hasSlot slot:edm-build-2-3 ;
    ns:hasSlot slot:edm-build-2-4 ;
    ns:hasSlot slot:edm-build-2-5 .

slot:edm-build-2-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-build-2-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-build-2-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-build-2-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:edm-build-2-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-build-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:drop .

structure:edm-jam-1 a ns:SongStructure ;
    rdfs:label "edm jam 1: verse > solo > verse > solo > verse"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:edm-jam-1-1 ;
    ns:hasSlot slot:edm-jam-1-2 ;
    ns:hasSlot slot:edm-jam-1-3 ;
    ns:hasSlot slot:edm-jam-1-4 ;
    ns:hasSlot slot:edm-jam-1-5 .

slot:edm-jam-1-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-jam-1-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:solo .

slot:edm-jam-1-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-jam-1-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:edm-jam-1-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

structure:edm-jam-2 a ns:SongStructure ;
    rdfs:label "edm jam 2: verse > bridge > verse > solo > verse"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:edm-jam-2-1 ;
    ns:hasSlot slot:edm-jam-2-2 ;
    ns:hasSlot slot:edm-jam-2-3 ;
    ns:hasSlot slot:edm-jam-2-4 ;
    ns:hasSlot slot:edm-jam-2-5 .

slot:edm-jam-2-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-jam-2-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:edm-jam-2-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:edm-jam-2-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:edm-jam-2-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

structure:edm-jam-3 a ns:SongStructure ;
    rdfs:label "edm jam 3: drop > solo > drop > bridge > drop"@en ;
    ns:forFamily family:edm ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:edm-jam-3-1 ;
    ns:hasSlot slot:edm-jam-3-2 ;
    ns:hasSlot slot:edm-jam-3-3 ;
    ns:hasSlot slot:edm-jam-3-4 ;
    ns:hasSlot slot:edm-jam-3-5 .

slot:edm-jam-3-1 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-jam-3-2 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:solo .

slot:edm-jam-3-3 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:drop .

slot:edm-jam-3-4 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:edm-jam-3-5 a ns:SectionSlot ;
    ns:inStructure structure:edm-jam-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:drop .

profile:song-intro a ns:SectionProfile ;
    rdfs:label "intro in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:intro ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:energy "0.35"^^xsd:decimal ;
    ns:filterOpen "0.4"^^xsd:decimal .

profile:song-verse a ns:SectionProfile ;
    rdfs:label "verse in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:verse ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:song-pre-chorus a ns:SectionProfile ;
    rdfs:label "pre-chorus in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:pre-chorus ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp ;
    ns:energy "0.7"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:song-chorus a ns:SectionProfile ;
    rdfs:label "chorus in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:chorus ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:clap ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:activeRole role:arp ;
    ns:energy "0.85"^^xsd:decimal ;
    ns:filterOpen "0.8"^^xsd:decimal .

profile:song-drop a ns:SectionProfile ;
    rdfs:label "drop in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:drop ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:clap ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:activeRole role:arp ;
    ns:energy "0.85"^^xsd:decimal ;
    ns:filterOpen "0.8"^^xsd:decimal .

profile:song-buildup a ns:SectionProfile ;
    rdfs:label "buildup in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:buildup ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp .

profile:song-breakdown a ns:SectionProfile ;
    rdfs:label "breakdown in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:breakdown ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.4"^^xsd:decimal ;
    ns:filterOpen "0.4"^^xsd:decimal .

profile:song-bridge a ns:SectionProfile ;
    rdfs:label "bridge in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:bridge ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:song-solo a ns:SectionProfile ;
    rdfs:label "solo in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:solo ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.75"^^xsd:decimal ;
    ns:filterOpen "0.75"^^xsd:decimal .

profile:song-outro a ns:SectionProfile ;
    rdfs:label "outro in song"@en ;
    ns:forFamily family:song ;
    ns:ofSection section:outro ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.3"^^xsd:decimal ;
    ns:filterOpen "0.35"^^xsd:decimal .

structure:song-minimal-1 a ns:SongStructure ;
    rdfs:label "song minimal 1: intro > verse > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:song-minimal-1-1 ;
    ns:hasSlot slot:song-minimal-1-2 ;
    ns:hasSlot slot:song-minimal-1-3 ;
    ns:hasSlot slot:song-minimal-1-4 .

slot:song-minimal-1-1 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-minimal-1-2 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-minimal-1-3 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-minimal-1-4 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-minimal-2 a ns:SongStructure ;
    rdfs:label "song minimal 2: intro > verse > verse > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:song-minimal-2-1 ;
    ns:hasSlot slot:song-minimal-2-2 ;
    ns:hasSlot slot:song-minimal-2-3 ;
    ns:hasSlot slot:song-minimal-2-4 .

slot:song-minimal-2-1 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-minimal-2-2 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-minimal-2-3 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-minimal-2-4 a ns:SectionSlot ;
    ns:inStructure structure:song-minimal-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-standard-1 a ns:SongStructure ;
    rdfs:label "song standard 1: intro > verse > chorus > verse > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "standard" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:song-standard-1-1 ;
    ns:hasSlot slot:song-standard-1-2 ;
    ns:hasSlot slot:song-standard-1-3 ;
    ns:hasSlot slot:song-standard-1-4 ;
    ns:hasSlot slot:song-standard-1-5 ;
    ns:hasSlot slot:song-standard-1-6 .

slot:song-standard-1-1 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-standard-1-2 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-standard-1-3 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-standard-1-4 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-standard-1-5 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-standard-1-6 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-standard-2 a ns:SongStructure ;
    rdfs:label "song standard 2: intro > verse > chorus > bridge > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "standard" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:song-standard-2-1 ;
    ns:hasSlot slot:song-standard-2-2 ;
    ns:hasSlot slot:song-standard-2-3 ;
    ns:hasSlot slot:song-standard-2-4 ;
    ns:hasSlot slot:song-standard-2-5 ;
    ns:hasSlot slot:song-standard-2-6 .

slot:song-standard-2-1 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-standard-2-2 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-standard-2-3 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-standard-2-4 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-standard-2-5 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-standard-2-6 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-standard-3 a ns:SongStructure ;
    rdfs:label "song standard 3: intro > verse > pre-chorus > chorus > verse > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "standard" ;
    ns:sectionCount "7"^^xsd:integer ;
    ns:hasSlot slot:song-standard-3-1 ;
    ns:hasSlot slot:song-standard-3-2 ;
    ns:hasSlot slot:song-standard-3-3 ;
    ns:hasSlot slot:song-standard-3-4 ;
    ns:hasSlot slot:song-standard-3-5 ;
    ns:hasSlot slot:song-standard-3-6 ;
    ns:hasSlot slot:song-standard-3-7 .

slot:song-standard-3-1 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-standard-3-2 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-standard-3-3 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:pre-chorus .

slot:song-standard-3-4 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-standard-3-5 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-standard-3-6 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-standard-3-7 a ns:SectionSlot ;
    ns:inStructure structure:song-standard-3 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-extended-1 a ns:SongStructure ;
    rdfs:label "song extended 1: intro > verse > chorus > verse > chorus > bridge > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "extended" ;
    ns:sectionCount "8"^^xsd:integer ;
    ns:hasSlot slot:song-extended-1-1 ;
    ns:hasSlot slot:song-extended-1-2 ;
    ns:hasSlot slot:song-extended-1-3 ;
    ns:hasSlot slot:song-extended-1-4 ;
    ns:hasSlot slot:song-extended-1-5 ;
    ns:hasSlot slot:song-extended-1-6 ;
    ns:hasSlot slot:song-extended-1-7 ;
    ns:hasSlot slot:song-extended-1-8 .

slot:song-extended-1-1 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-extended-1-2 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-1-3 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-1-4 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-1-5 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-1-6 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-extended-1-7 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-1-8 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-1 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-extended-2 a ns:SongStructure ;
    rdfs:label "song extended 2: intro > verse > pre-chorus > chorus > verse > pre-chorus > chorus > bridge > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "extended" ;
    ns:sectionCount "10"^^xsd:integer ;
    ns:hasSlot slot:song-extended-2-1 ;
    ns:hasSlot slot:song-extended-2-2 ;
    ns:hasSlot slot:song-extended-2-3 ;
    ns:hasSlot slot:song-extended-2-4 ;
    ns:hasSlot slot:song-extended-2-5 ;
    ns:hasSlot slot:song-extended-2-6 ;
    ns:hasSlot slot:song-extended-2-7 ;
    ns:hasSlot slot:song-extended-2-8 ;
    ns:hasSlot slot:song-extended-2-9 ;
    ns:hasSlot slot:song-extended-2-10 .

slot:song-extended-2-1 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-extended-2-2 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-2-3 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:pre-chorus .

slot:song-extended-2-4 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-2-5 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-2-6 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:pre-chorus .

slot:song-extended-2-7 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-2-8 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-extended-2-9 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-2-10 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-2 ;
    ns:position "10"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-extended-3 a ns:SongStructure ;
    rdfs:label "song extended 3: intro > verse > chorus > verse > chorus > breakdown > verse > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "extended" ;
    ns:sectionCount "9"^^xsd:integer ;
    ns:hasSlot slot:song-extended-3-1 ;
    ns:hasSlot slot:song-extended-3-2 ;
    ns:hasSlot slot:song-extended-3-3 ;
    ns:hasSlot slot:song-extended-3-4 ;
    ns:hasSlot slot:song-extended-3-5 ;
    ns:hasSlot slot:song-extended-3-6 ;
    ns:hasSlot slot:song-extended-3-7 ;
    ns:hasSlot slot:song-extended-3-8 ;
    ns:hasSlot slot:song-extended-3-9 .

slot:song-extended-3-1 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-extended-3-2 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-3-3 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-3-4 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-3-5 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-3-6 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:song-extended-3-7 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-3-8 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-3-9 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-3 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-extended-4 a ns:SongStructure ;
    rdfs:label "song extended 4: intro > verse > verse > chorus > bridge > verse > chorus > chorus > outro"@en ;
    ns:forFamily family:song ;
    ns:templateKind "extended" ;
    ns:sectionCount "9"^^xsd:integer ;
    ns:hasSlot slot:song-extended-4-1 ;
    ns:hasSlot slot:song-extended-4-2 ;
    ns:hasSlot slot:song-extended-4-3 ;
    ns:hasSlot slot:song-extended-4-4 ;
    ns:hasSlot slot:song-extended-4-5 ;
    ns:hasSlot slot:song-extended-4-6 ;
    ns:hasSlot slot:song-extended-4-7 ;
    ns:hasSlot slot:song-extended-4-8 ;
    ns:hasSlot slot:song-extended-4-9 .

slot:song-extended-4-1 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:song-extended-4-2 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-4-3 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-4-4 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-4-5 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-extended-4-6 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-extended-4-7 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-4-8 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-extended-4-9 a ns:SectionSlot ;
    ns:inStructure structure:song-extended-4 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:outro .

structure:song-ab-1 a ns:SongStructure ;
    rdfs:label "song ab 1: verse > chorus > verse > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:song-ab-1-1 ;
    ns:hasSlot slot:song-ab-1-2 ;
    ns:hasSlot slot:song-ab-1-3 ;
    ns:hasSlot slot:song-ab-1-4 .

slot:song-ab-1-1 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-ab-1-2 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-ab-1-3 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-ab-1-4 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-ab-2 a ns:SongStructure ;
    rdfs:label "song ab 2: verse > chorus > bridge > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:song-ab-2-1 ;
    ns:hasSlot slot:song-ab-2-2 ;
    ns:hasSlot slot:song-ab-2-3 ;
    ns:hasSlot slot:song-ab-2-4 .

slot:song-ab-2-1 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-ab-2-2 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-ab-2-3 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-ab-2-4 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-ab-3 a ns:SongStructure ;
    rdfs:label "song ab 3: verse > pre-chorus > chorus > verse > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "ab" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:song-ab-3-1 ;
    ns:hasSlot slot:song-ab-3-2 ;
    ns:hasSlot slot:song-ab-3-3 ;
    ns:hasSlot slot:song-ab-3-4 ;
    ns:hasSlot slot:song-ab-3-5 .

slot:song-ab-3-1 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-ab-3-2 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:pre-chorus .

slot:song-ab-3-3 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-ab-3-4 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-ab-3-5 a ns:SectionSlot ;
    ns:inStructure structure:song-ab-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-drop-1 a ns:SongStructure ;
    rdfs:label "song drop 1: chorus > verse > chorus > verse > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:song-drop-1-1 ;
    ns:hasSlot slot:song-drop-1-2 ;
    ns:hasSlot slot:song-drop-1-3 ;
    ns:hasSlot slot:song-drop-1-4 ;
    ns:hasSlot slot:song-drop-1-5 .

slot:song-drop-1-1 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-drop-1-2 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-drop-1-3 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-drop-1-4 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-drop-1-5 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-drop-2 a ns:SongStructure ;
    rdfs:label "song drop 2: chorus > bridge > chorus > bridge > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:song-drop-2-1 ;
    ns:hasSlot slot:song-drop-2-2 ;
    ns:hasSlot slot:song-drop-2-3 ;
    ns:hasSlot slot:song-drop-2-4 ;
    ns:hasSlot slot:song-drop-2-5 .

slot:song-drop-2-1 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-drop-2-2 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-drop-2-3 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-drop-2-4 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-drop-2-5 a ns:SectionSlot ;
    ns:inStructure structure:song-drop-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-build-1 a ns:SongStructure ;
    rdfs:label "song build 1: verse > pre-chorus > chorus > verse > pre-chorus > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "build" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:song-build-1-1 ;
    ns:hasSlot slot:song-build-1-2 ;
    ns:hasSlot slot:song-build-1-3 ;
    ns:hasSlot slot:song-build-1-4 ;
    ns:hasSlot slot:song-build-1-5 ;
    ns:hasSlot slot:song-build-1-6 .

slot:song-build-1-1 a ns:SectionSlot ;
    ns:inStructure structure:song-build-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-build-1-2 a ns:SectionSlot ;
    ns:inStructure structure:song-build-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:pre-chorus .

slot:song-build-1-3 a ns:SectionSlot ;
    ns:inStructure structure:song-build-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-build-1-4 a ns:SectionSlot ;
    ns:inStructure structure:song-build-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-build-1-5 a ns:SectionSlot ;
    ns:inStructure structure:song-build-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:pre-chorus .

slot:song-build-1-6 a ns:SectionSlot ;
    ns:inStructure structure:song-build-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-build-2 a ns:SongStructure ;
    rdfs:label "song build 2: verse > buildup > chorus > verse > buildup > chorus"@en ;
    ns:forFamily family:song ;
    ns:templateKind "build" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:song-build-2-1 ;
    ns:hasSlot slot:song-build-2-2 ;
    ns:hasSlot slot:song-build-2-3 ;
    ns:hasSlot slot:song-build-2-4 ;
    ns:hasSlot slot:song-build-2-5 ;
    ns:hasSlot slot:song-build-2-6 .

slot:song-build-2-1 a ns:SectionSlot ;
    ns:inStructure structure:song-build-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-build-2-2 a ns:SectionSlot ;
    ns:inStructure structure:song-build-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:song-build-2-3 a ns:SectionSlot ;
    ns:inStructure structure:song-build-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:song-build-2-4 a ns:SectionSlot ;
    ns:inStructure structure:song-build-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-build-2-5 a ns:SectionSlot ;
    ns:inStructure structure:song-build-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:buildup .

slot:song-build-2-6 a ns:SectionSlot ;
    ns:inStructure structure:song-build-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:song-jam-1 a ns:SongStructure ;
    rdfs:label "song jam 1: verse > solo > verse > solo > verse"@en ;
    ns:forFamily family:song ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:song-jam-1-1 ;
    ns:hasSlot slot:song-jam-1-2 ;
    ns:hasSlot slot:song-jam-1-3 ;
    ns:hasSlot slot:song-jam-1-4 ;
    ns:hasSlot slot:song-jam-1-5 .

slot:song-jam-1-1 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-jam-1-2 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:solo .

slot:song-jam-1-3 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-jam-1-4 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:song-jam-1-5 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

structure:song-jam-2 a ns:SongStructure ;
    rdfs:label "song jam 2: verse > bridge > solo > verse > solo"@en ;
    ns:forFamily family:song ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:song-jam-2-1 ;
    ns:hasSlot slot:song-jam-2-2 ;
    ns:hasSlot slot:song-jam-2-3 ;
    ns:hasSlot slot:song-jam-2-4 ;
    ns:hasSlot slot:song-jam-2-5 .

slot:song-jam-2-1 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-jam-2-2 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-jam-2-3 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:solo .

slot:song-jam-2-4 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-jam-2-5 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:solo .

structure:song-jam-3 a ns:SongStructure ;
    rdfs:label "song jam 3: verse > verse > bridge > solo > verse"@en ;
    ns:forFamily family:song ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:song-jam-3-1 ;
    ns:hasSlot slot:song-jam-3-2 ;
    ns:hasSlot slot:song-jam-3-3 ;
    ns:hasSlot slot:song-jam-3-4 ;
    ns:hasSlot slot:song-jam-3-5 .

slot:song-jam-3-1 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-jam-3-2 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:song-jam-3-3 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:song-jam-3-4 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:song-jam-3-5 a ns:SectionSlot ;
    ns:inStructure structure:song-jam-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

profile:jazz-intro a ns:SectionProfile ;
    rdfs:label "intro in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:intro ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:energy "0.35"^^xsd:decimal ;
    ns:filterOpen "0.4"^^xsd:decimal .

profile:jazz-verse a ns:SectionProfile ;
    rdfs:label "verse in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:verse ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:jazz-pre-chorus a ns:SectionProfile ;
    rdfs:label "pre-chorus in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:pre-chorus ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp ;
    ns:energy "0.7"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:jazz-chorus a ns:SectionProfile ;
    rdfs:label "chorus in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:chorus ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:energy "0.85"^^xsd:decimal ;
    ns:filterOpen "0.8"^^xsd:decimal .

profile:jazz-drop a ns:SectionProfile ;
    rdfs:label "drop in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:drop ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:clap ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:activeRole role:arp ;
    ns:energy "0.85"^^xsd:decimal ;
    ns:filterOpen "0.8"^^xsd:decimal .

profile:jazz-buildup a ns:SectionProfile ;
    rdfs:label "buildup in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:buildup ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp .

profile:jazz-breakdown a ns:SectionProfile ;
    rdfs:label "breakdown in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:breakdown ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.4"^^xsd:decimal ;
    ns:filterOpen "0.4"^^xsd:decimal .

profile:jazz-bridge a ns:SectionProfile ;
    rdfs:label "bridge in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:bridge ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:jazz-solo a ns:SectionProfile ;
    rdfs:label "solo in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:solo ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.75"^^xsd:decimal ;
    ns:filterOpen "0.75"^^xsd:decimal .

profile:jazz-outro a ns:SectionProfile ;
    rdfs:label "outro in jazz"@en ;
    ns:forFamily family:jazz ;
    ns:ofSection section:outro ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:activeRole role:melody ;
    ns:energy "0.3"^^xsd:decimal ;
    ns:filterOpen "0.35"^^xsd:decimal .

structure:jazz-minimal-1 a ns:SongStructure ;
    rdfs:label "jazz minimal 1: intro > verse > solo > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:jazz-minimal-1-1 ;
    ns:hasSlot slot:jazz-minimal-1-2 ;
    ns:hasSlot slot:jazz-minimal-1-3 ;
    ns:hasSlot slot:jazz-minimal-1-4 .

slot:jazz-minimal-1-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-minimal-1-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-minimal-1-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-minimal-1-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-minimal-2 a ns:SongStructure ;
    rdfs:label "jazz minimal 2: intro > verse > verse > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:jazz-minimal-2-1 ;
    ns:hasSlot slot:jazz-minimal-2-2 ;
    ns:hasSlot slot:jazz-minimal-2-3 ;
    ns:hasSlot slot:jazz-minimal-2-4 .

slot:jazz-minimal-2-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-minimal-2-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-minimal-2-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-minimal-2-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-minimal-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-standard-1 a ns:SongStructure ;
    rdfs:label "jazz standard 1: intro > verse > solo > verse > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "standard" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:jazz-standard-1-1 ;
    ns:hasSlot slot:jazz-standard-1-2 ;
    ns:hasSlot slot:jazz-standard-1-3 ;
    ns:hasSlot slot:jazz-standard-1-4 ;
    ns:hasSlot slot:jazz-standard-1-5 .

slot:jazz-standard-1-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-standard-1-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-standard-1-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-standard-1-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-standard-1-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-standard-2 a ns:SongStructure ;
    rdfs:label "jazz standard 2: intro > verse > verse > bridge > verse > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "standard" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:jazz-standard-2-1 ;
    ns:hasSlot slot:jazz-standard-2-2 ;
    ns:hasSlot slot:jazz-standard-2-3 ;
    ns:hasSlot slot:jazz-standard-2-4 ;
    ns:hasSlot slot:jazz-standard-2-5 ;
    ns:hasSlot slot:jazz-standard-2-6 .

slot:jazz-standard-2-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-standard-2-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-standard-2-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-standard-2-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-standard-2-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-standard-2-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-standard-3 a ns:SongStructure ;
    rdfs:label "jazz standard 3: intro > verse > chorus > solo > chorus > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "standard" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:jazz-standard-3-1 ;
    ns:hasSlot slot:jazz-standard-3-2 ;
    ns:hasSlot slot:jazz-standard-3-3 ;
    ns:hasSlot slot:jazz-standard-3-4 ;
    ns:hasSlot slot:jazz-standard-3-5 ;
    ns:hasSlot slot:jazz-standard-3-6 .

slot:jazz-standard-3-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-standard-3-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-standard-3-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:jazz-standard-3-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-standard-3-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:jazz-standard-3-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-standard-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-extended-1 a ns:SongStructure ;
    rdfs:label "jazz extended 1: intro > verse > chorus > solo > verse > chorus > bridge > chorus > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "extended" ;
    ns:sectionCount "9"^^xsd:integer ;
    ns:hasSlot slot:jazz-extended-1-1 ;
    ns:hasSlot slot:jazz-extended-1-2 ;
    ns:hasSlot slot:jazz-extended-1-3 ;
    ns:hasSlot slot:jazz-extended-1-4 ;
    ns:hasSlot slot:jazz-extended-1-5 ;
    ns:hasSlot slot:jazz-extended-1-6 ;
    ns:hasSlot slot:jazz-extended-1-7 ;
    ns:hasSlot slot:jazz-extended-1-8 ;
    ns:hasSlot slot:jazz-extended-1-9 .

slot:jazz-extended-1-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-extended-1-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-1-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:jazz-extended-1-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-extended-1-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-1-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:jazz-extended-1-7 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-extended-1-8 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:jazz-extended-1-9 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-1 ;
    ns:position "9"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-extended-2 a ns:SongStructure ;
    rdfs:label "jazz extended 2: intro > verse > solo > verse > bridge > solo > verse > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "extended" ;
    ns:sectionCount "8"^^xsd:integer ;
    ns:hasSlot slot:jazz-extended-2-1 ;
    ns:hasSlot slot:jazz-extended-2-2 ;
    ns:hasSlot slot:jazz-extended-2-3 ;
    ns:hasSlot slot:jazz-extended-2-4 ;
    ns:hasSlot slot:jazz-extended-2-5 ;
    ns:hasSlot slot:jazz-extended-2-6 ;
    ns:hasSlot slot:jazz-extended-2-7 ;
    ns:hasSlot slot:jazz-extended-2-8 .

slot:jazz-extended-2-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-extended-2-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-2-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-extended-2-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-2-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-extended-2-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-extended-2-7 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-2-8 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-2 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-extended-3 a ns:SongStructure ;
    rdfs:label "jazz extended 3: intro > verse > verse > solo > bridge > verse > chorus > outro"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "extended" ;
    ns:sectionCount "8"^^xsd:integer ;
    ns:hasSlot slot:jazz-extended-3-1 ;
    ns:hasSlot slot:jazz-extended-3-2 ;
    ns:hasSlot slot:jazz-extended-3-3 ;
    ns:hasSlot slot:jazz-extended-3-4 ;
    ns:hasSlot slot:jazz-extended-3-5 ;
    ns:hasSlot slot:jazz-extended-3-6 ;
    ns:hasSlot slot:jazz-extended-3-7 ;
    ns:hasSlot slot:jazz-extended-3-8 .

slot:jazz-extended-3-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:jazz-extended-3-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-3-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-3-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-extended-3-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-extended-3-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-extended-3-7 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:jazz-extended-3-8 a ns:SectionSlot ;
    ns:inStructure structure:jazz-extended-3 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:outro .

structure:jazz-ab-1 a ns:SongStructure ;
    rdfs:label "jazz ab 1: verse > solo > verse > solo"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:jazz-ab-1-1 ;
    ns:hasSlot slot:jazz-ab-1-2 ;
    ns:hasSlot slot:jazz-ab-1-3 ;
    ns:hasSlot slot:jazz-ab-1-4 .

slot:jazz-ab-1-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-ab-1-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-ab-1-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-ab-1-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

structure:jazz-ab-2 a ns:SongStructure ;
    rdfs:label "jazz ab 2: verse > bridge > verse > solo"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:jazz-ab-2-1 ;
    ns:hasSlot slot:jazz-ab-2-2 ;
    ns:hasSlot slot:jazz-ab-2-3 ;
    ns:hasSlot slot:jazz-ab-2-4 .

slot:jazz-ab-2-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-ab-2-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-ab-2-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-ab-2-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-ab-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

structure:jazz-drop-1 a ns:SongStructure ;
    rdfs:label "jazz drop 1: verse > solo > verse > solo > verse"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:jazz-drop-1-1 ;
    ns:hasSlot slot:jazz-drop-1-2 ;
    ns:hasSlot slot:jazz-drop-1-3 ;
    ns:hasSlot slot:jazz-drop-1-4 ;
    ns:hasSlot slot:jazz-drop-1-5 .

slot:jazz-drop-1-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-drop-1-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-drop-1-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-drop-1-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-drop-1-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

structure:jazz-drop-2 a ns:SongStructure ;
    rdfs:label "jazz drop 2: solo > verse > bridge > solo > verse"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:jazz-drop-2-1 ;
    ns:hasSlot slot:jazz-drop-2-2 ;
    ns:hasSlot slot:jazz-drop-2-3 ;
    ns:hasSlot slot:jazz-drop-2-4 ;
    ns:hasSlot slot:jazz-drop-2-5 .

slot:jazz-drop-2-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-drop-2-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-drop-2-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-drop-2-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-drop-2-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-drop-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

structure:jazz-build-1 a ns:SongStructure ;
    rdfs:label "jazz build 1: verse > verse > solo > verse > solo > solo"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "build" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:jazz-build-1-1 ;
    ns:hasSlot slot:jazz-build-1-2 ;
    ns:hasSlot slot:jazz-build-1-3 ;
    ns:hasSlot slot:jazz-build-1-4 ;
    ns:hasSlot slot:jazz-build-1-5 ;
    ns:hasSlot slot:jazz-build-1-6 .

slot:jazz-build-1-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-build-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-build-1-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-build-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-build-1-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-build-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-build-1-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-build-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-build-1-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-build-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-build-1-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-build-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:solo .

structure:jazz-jam-1 a ns:SongStructure ;
    rdfs:label "jazz jam 1: verse > solo > solo > bridge > solo > verse"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "jam" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:jazz-jam-1-1 ;
    ns:hasSlot slot:jazz-jam-1-2 ;
    ns:hasSlot slot:jazz-jam-1-3 ;
    ns:hasSlot slot:jazz-jam-1-4 ;
    ns:hasSlot slot:jazz-jam-1-5 ;
    ns:hasSlot slot:jazz-jam-1-6 .

slot:jazz-jam-1-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-jam-1-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-jam-1-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-jam-1-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-jam-1-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-jam-1-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:verse .

structure:jazz-jam-2 a ns:SongStructure ;
    rdfs:label "jazz jam 2: solo > bridge > solo > verse > solo"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:jazz-jam-2-1 ;
    ns:hasSlot slot:jazz-jam-2-2 ;
    ns:hasSlot slot:jazz-jam-2-3 ;
    ns:hasSlot slot:jazz-jam-2-4 ;
    ns:hasSlot slot:jazz-jam-2-5 .

slot:jazz-jam-2-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-jam-2-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-jam-2-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-jam-2-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-jam-2-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:solo .

structure:jazz-jam-3 a ns:SongStructure ;
    rdfs:label "jazz jam 3: verse > solo > verse > bridge > solo > solo"@en ;
    ns:forFamily family:jazz ;
    ns:templateKind "jam" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:jazz-jam-3-1 ;
    ns:hasSlot slot:jazz-jam-3-2 ;
    ns:hasSlot slot:jazz-jam-3-3 ;
    ns:hasSlot slot:jazz-jam-3-4 ;
    ns:hasSlot slot:jazz-jam-3-5 ;
    ns:hasSlot slot:jazz-jam-3-6 .

slot:jazz-jam-3-1 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-jam-3-2 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-jam-3-3 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:jazz-jam-3-4 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:jazz-jam-3-5 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:solo .

slot:jazz-jam-3-6 a ns:SectionSlot ;
    ns:inStructure structure:jazz-jam-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:solo .

profile:chill-intro a ns:SectionProfile ;
    rdfs:label "intro in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:intro ;
    ns:activeRole role:bass ;
    ns:energy "0.25"^^xsd:decimal ;
    ns:filterOpen "0.35"^^xsd:decimal .

profile:chill-verse a ns:SectionProfile ;
    rdfs:label "verse in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:verse ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.45"^^xsd:decimal ;
    ns:filterOpen "0.5"^^xsd:decimal .

profile:chill-pre-chorus a ns:SectionProfile ;
    rdfs:label "pre-chorus in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:pre-chorus ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp ;
    ns:energy "0.5"^^xsd:decimal ;
    ns:filterOpen "0.5"^^xsd:decimal .

profile:chill-chorus a ns:SectionProfile ;
    rdfs:label "chorus in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:chorus ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:activeRole role:arp ;
    ns:energy "0.6"^^xsd:decimal ;
    ns:filterOpen "0.6"^^xsd:decimal .

profile:chill-drop a ns:SectionProfile ;
    rdfs:label "drop in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:drop ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:clap ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:activeRole role:harmony ;
    ns:activeRole role:arp ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:chill-buildup a ns:SectionProfile ;
    rdfs:label "buildup in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:buildup ;
    ns:activeRole role:kick ;
    ns:activeRole role:snare ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:arp ;
    ns:energy "0.4"^^xsd:decimal ;
    ns:filterOpen "0.45"^^xsd:decimal .

profile:chill-breakdown a ns:SectionProfile ;
    rdfs:label "breakdown in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:breakdown ;
    ns:activeRole role:melody ;
    ns:energy "0.3"^^xsd:decimal ;
    ns:filterOpen "0.4"^^xsd:decimal .

profile:chill-bridge a ns:SectionProfile ;
    rdfs:label "bridge in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:bridge ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:chill-solo a ns:SectionProfile ;
    rdfs:label "solo in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:solo ;
    ns:activeRole role:kick ;
    ns:activeRole role:hihat ;
    ns:activeRole role:bass ;
    ns:activeRole role:melody ;
    ns:energy "0.55"^^xsd:decimal ;
    ns:filterOpen "0.55"^^xsd:decimal .

profile:chill-outro a ns:SectionProfile ;
    rdfs:label "outro in chill"@en ;
    ns:forFamily family:chill ;
    ns:ofSection section:outro ;
    ns:activeRole role:melody ;
    ns:energy "0.25"^^xsd:decimal ;
    ns:filterOpen "0.3"^^xsd:decimal .

structure:chill-minimal-1 a ns:SongStructure ;
    rdfs:label "chill minimal 1: intro > verse > verse > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:chill-minimal-1-1 ;
    ns:hasSlot slot:chill-minimal-1-2 ;
    ns:hasSlot slot:chill-minimal-1-3 ;
    ns:hasSlot slot:chill-minimal-1-4 .

slot:chill-minimal-1-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-minimal-1-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-minimal-1-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-minimal-1-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-minimal-2 a ns:SongStructure ;
    rdfs:label "chill minimal 2: intro > verse > bridge > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "minimal" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:chill-minimal-2-1 ;
    ns:hasSlot slot:chill-minimal-2-2 ;
    ns:hasSlot slot:chill-minimal-2-3 ;
    ns:hasSlot slot:chill-minimal-2-4 .

slot:chill-minimal-2-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-minimal-2-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-minimal-2-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-minimal-2-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-minimal-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-standard-1 a ns:SongStructure ;
    rdfs:label "chill standard 1: intro > verse > bridge > verse > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "standard" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:chill-standard-1-1 ;
    ns:hasSlot slot:chill-standard-1-2 ;
    ns:hasSlot slot:chill-standard-1-3 ;
    ns:hasSlot slot:chill-standard-1-4 ;
    ns:hasSlot slot:chill-standard-1-5 .

slot:chill-standard-1-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-standard-1-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-standard-1-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-standard-1-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-standard-1-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-standard-2 a ns:SongStructure ;
    rdfs:label "chill standard 2: intro > verse > breakdown > verse > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "standard" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:chill-standard-2-1 ;
    ns:hasSlot slot:chill-standard-2-2 ;
    ns:hasSlot slot:chill-standard-2-3 ;
    ns:hasSlot slot:chill-standard-2-4 ;
    ns:hasSlot slot:chill-standard-2-5 .

slot:chill-standard-2-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-standard-2-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-standard-2-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-standard-2-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-standard-2-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-standard-3 a ns:SongStructure ;
    rdfs:label "chill standard 3: intro > verse > verse > bridge > verse > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "standard" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:chill-standard-3-1 ;
    ns:hasSlot slot:chill-standard-3-2 ;
    ns:hasSlot slot:chill-standard-3-3 ;
    ns:hasSlot slot:chill-standard-3-4 ;
    ns:hasSlot slot:chill-standard-3-5 ;
    ns:hasSlot slot:chill-standard-3-6 .

slot:chill-standard-3-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-standard-3-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-standard-3-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-standard-3-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-standard-3-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-standard-3-6 a ns:SectionSlot ;
    ns:inStructure structure:chill-standard-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-extended-1 a ns:SongStructure ;
    rdfs:label "chill extended 1: intro > verse > chorus > breakdown > verse > chorus > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "extended" ;
    ns:sectionCount "7"^^xsd:integer ;
    ns:hasSlot slot:chill-extended-1-1 ;
    ns:hasSlot slot:chill-extended-1-2 ;
    ns:hasSlot slot:chill-extended-1-3 ;
    ns:hasSlot slot:chill-extended-1-4 ;
    ns:hasSlot slot:chill-extended-1-5 ;
    ns:hasSlot slot:chill-extended-1-6 ;
    ns:hasSlot slot:chill-extended-1-7 .

slot:chill-extended-1-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-extended-1-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-1-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:chill-extended-1-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-extended-1-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-1-6 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-1 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:chill-extended-1-7 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-1 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-extended-2 a ns:SongStructure ;
    rdfs:label "chill extended 2: intro > verse > bridge > verse > breakdown > verse > bridge > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "extended" ;
    ns:sectionCount "8"^^xsd:integer ;
    ns:hasSlot slot:chill-extended-2-1 ;
    ns:hasSlot slot:chill-extended-2-2 ;
    ns:hasSlot slot:chill-extended-2-3 ;
    ns:hasSlot slot:chill-extended-2-4 ;
    ns:hasSlot slot:chill-extended-2-5 ;
    ns:hasSlot slot:chill-extended-2-6 ;
    ns:hasSlot slot:chill-extended-2-7 ;
    ns:hasSlot slot:chill-extended-2-8 .

slot:chill-extended-2-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-extended-2-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-2-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-extended-2-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-2-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-extended-2-6 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-2-7 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-extended-2-8 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-2 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-extended-3 a ns:SongStructure ;
    rdfs:label "chill extended 3: intro > verse > verse > bridge > breakdown > verse > chorus > outro"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "extended" ;
    ns:sectionCount "8"^^xsd:integer ;
    ns:hasSlot slot:chill-extended-3-1 ;
    ns:hasSlot slot:chill-extended-3-2 ;
    ns:hasSlot slot:chill-extended-3-3 ;
    ns:hasSlot slot:chill-extended-3-4 ;
    ns:hasSlot slot:chill-extended-3-5 ;
    ns:hasSlot slot:chill-extended-3-6 ;
    ns:hasSlot slot:chill-extended-3-7 ;
    ns:hasSlot slot:chill-extended-3-8 .

slot:chill-extended-3-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:intro .

slot:chill-extended-3-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-3-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-3-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-extended-3-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-extended-3-6 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-extended-3-7 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "7"^^xsd:integer ;
    ns:ofSection section:chorus .

slot:chill-extended-3-8 a ns:SectionSlot ;
    ns:inStructure structure:chill-extended-3 ;
    ns:position "8"^^xsd:integer ;
    ns:ofSection section:outro .

structure:chill-ab-1 a ns:SongStructure ;
    rdfs:label "chill ab 1: verse > bridge > verse > bridge"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:chill-ab-1-1 ;
    ns:hasSlot slot:chill-ab-1-2 ;
    ns:hasSlot slot:chill-ab-1-3 ;
    ns:hasSlot slot:chill-ab-1-4 .

slot:chill-ab-1-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-ab-1-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-ab-1-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-ab-1-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

structure:chill-ab-2 a ns:SongStructure ;
    rdfs:label "chill ab 2: verse > breakdown > verse > bridge"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "ab" ;
    ns:sectionCount "4"^^xsd:integer ;
    ns:hasSlot slot:chill-ab-2-1 ;
    ns:hasSlot slot:chill-ab-2-2 ;
    ns:hasSlot slot:chill-ab-2-3 ;
    ns:hasSlot slot:chill-ab-2-4 .

slot:chill-ab-2-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-ab-2-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-ab-2-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-ab-2-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-ab-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:bridge .

structure:chill-drop-1 a ns:SongStructure ;
    rdfs:label "chill drop 1: verse > breakdown > verse > breakdown > verse"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:chill-drop-1-1 ;
    ns:hasSlot slot:chill-drop-1-2 ;
    ns:hasSlot slot:chill-drop-1-3 ;
    ns:hasSlot slot:chill-drop-1-4 ;
    ns:hasSlot slot:chill-drop-1-5 .

slot:chill-drop-1-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-drop-1-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-drop-1-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-drop-1-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-drop-1-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

structure:chill-drop-2 a ns:SongStructure ;
    rdfs:label "chill drop 2: verse > bridge > breakdown > verse > bridge"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "drop" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:chill-drop-2-1 ;
    ns:hasSlot slot:chill-drop-2-2 ;
    ns:hasSlot slot:chill-drop-2-3 ;
    ns:hasSlot slot:chill-drop-2-4 ;
    ns:hasSlot slot:chill-drop-2-5 .

slot:chill-drop-2-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-drop-2-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-drop-2-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-drop-2-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-drop-2-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-drop-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:bridge .

structure:chill-build-1 a ns:SongStructure ;
    rdfs:label "chill build 1: verse > verse > bridge > verse > chorus"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "build" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:chill-build-1-1 ;
    ns:hasSlot slot:chill-build-1-2 ;
    ns:hasSlot slot:chill-build-1-3 ;
    ns:hasSlot slot:chill-build-1-4 ;
    ns:hasSlot slot:chill-build-1-5 .

slot:chill-build-1-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-build-1-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-build-1-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-build-1-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-build-1-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:chill-build-2 a ns:SongStructure ;
    rdfs:label "chill build 2: breakdown > verse > bridge > verse > chorus"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "build" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:chill-build-2-1 ;
    ns:hasSlot slot:chill-build-2-2 ;
    ns:hasSlot slot:chill-build-2-3 ;
    ns:hasSlot slot:chill-build-2-4 ;
    ns:hasSlot slot:chill-build-2-5 .

slot:chill-build-2-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-build-2-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-build-2-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-build-2-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-build-2-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-build-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:chorus .

structure:chill-jam-1 a ns:SongStructure ;
    rdfs:label "chill jam 1: verse > bridge > verse > breakdown > verse"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "jam" ;
    ns:sectionCount "5"^^xsd:integer ;
    ns:hasSlot slot:chill-jam-1-1 ;
    ns:hasSlot slot:chill-jam-1-2 ;
    ns:hasSlot slot:chill-jam-1-3 ;
    ns:hasSlot slot:chill-jam-1-4 ;
    ns:hasSlot slot:chill-jam-1-5 .

slot:chill-jam-1-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-1 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-jam-1-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-1 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-jam-1-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-1 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-jam-1-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-1 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-jam-1-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-1 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

structure:chill-jam-2 a ns:SongStructure ;
    rdfs:label "chill jam 2: verse > verse > bridge > breakdown > verse > bridge"@en ;
    ns:forFamily family:chill ;
    ns:templateKind "jam" ;
    ns:sectionCount "6"^^xsd:integer ;
    ns:hasSlot slot:chill-jam-2-1 ;
    ns:hasSlot slot:chill-jam-2-2 ;
    ns:hasSlot slot:chill-jam-2-3 ;
    ns:hasSlot slot:chill-jam-2-4 ;
    ns:hasSlot slot:chill-jam-2-5 ;
    ns:hasSlot slot:chill-jam-2-6 .

slot:chill-jam-2-1 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-2 ;
    ns:position "1"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-jam-2-2 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-2 ;
    ns:position "2"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-jam-2-3 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-2 ;
    ns:position "3"^^xsd:integer ;
    ns:ofSection section:bridge .

slot:chill-jam-2-4 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-2 ;
    ns:position "4"^^xsd:integer ;
    ns:ofSection section:breakdown .

slot:chill-jam-2-5 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-2 ;
    ns:position "5"^^xsd:integer ;
    ns:ofSection section:verse .

slot:chill-jam-2-6 a ns:SectionSlot ;
    ns:inStructure structure:chill-jam-2 ;
    ns:position "6"^^xsd:integer ;
    ns:ofSection section:bridge .
