Repository: porkostomus/mecca Branch: main Commit: 75d1e7bcc51c Files: 45 Total size: 36.4 MB Directory structure: gitextract_dngcqq6s/ ├── .calva/ │ └── output-window/ │ └── output.calva-repl ├── .github/ │ └── FUNDING.yml ├── .gitignore ├── .lsp/ │ └── .cache/ │ └── db.transit.json ├── README.md ├── deps.edn ├── docs/ │ ├── apu_ref.txt │ ├── bass-clef.mei │ ├── beat-division.mei │ ├── key-and-time-signature-changes.mei │ └── one-line-staff.mei ├── index.html ├── package.json ├── public/ │ ├── audio/ │ │ └── .directory │ ├── css/ │ │ └── style.css │ ├── images/ │ │ ├── .directory │ │ ├── characters/ │ │ │ └── .directory │ │ ├── lilypond-notes.ly │ │ └── pink-eighth-note.xcf │ ├── index.html │ ├── js/ │ │ ├── main.js │ │ └── manifest.edn │ ├── main.js │ └── test.html ├── shadow-cljs.edn ├── src/ │ └── mecca/ │ ├── castle.cljs │ ├── core.cljs │ ├── editor.cljs │ ├── events.cljs │ ├── mario.cljs │ ├── max_or_throw.cljs │ ├── music.cljs │ ├── sci.cljs │ ├── sci_editor.cljs │ ├── songs/ │ │ ├── city.cljs │ │ ├── confuzion.cljs │ │ ├── megaman.cljs │ │ ├── stmp.cljs │ │ ├── zelda.cljs │ │ └── zeldajson.cljs │ ├── subs.cljs │ ├── transport.cljs │ └── view.cljs └── test/ └── mecca/ ├── core_test.cljs └── test_runner.cljs ================================================ FILE CONTENTS ================================================ ================================================ FILE: .calva/output-window/output.calva-repl ================================================ ; This is the Calva evaluation results output window. ; TIPS: The keyboard shortcut `ctrl+alt+o o` shows and focuses this window ; when connected to a REPL session. ; Please see https://calva.io/output/ for more info. ; Happy coding! ♥️ ; Jacking in... ; Connecting using "shadow-cljs" project type. ; You can make Calva auto-select this: ; "calva.autoSelectReplConnectProjectType": "shadow-cljs" ; - See https://calva.io/connect/#auto-select-project-type ; ; Starting Jack-in Terminal: npx.cmd shadow-cljs -d cider/cider-nrepl:0.28.5 watch :app ; Hooking up nREPL sessions... ; Connected session: clj ; TIPS: ; - You can edit the contents here. Use it as a REPL if you like. ; - `alt+enter` evaluates the current top level form. ; - `ctrl+enter` evaluates the current form. ; - `alt+up` and `alt+down` traverse up and down the REPL command history ; when the cursor is after the last contents at the prompt ; - Clojure lines in stack traces are peekable and clickable. clj꞉shadow.user꞉> ; Use `alt+enter` to evaluate ; Creating cljs repl session... ; Connecting cljs repl: shadow-cljs... ; The Calva Connection Log might have more connection progress information. ; Connected session: cljs, repl: :app ; TIPS: You can choose which REPL to use (clj or cljs): ; *Calva: Toggle REPL connection* ; (There is a button in the status bar for this) ; Jack-in done. cljs꞉cljs.user꞉> ; Use `alt+enter` to evaluate ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: BobbiCodes open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] ================================================ FILE: .gitignore ================================================ pom.xml *jar /lib/ /classes/ /out/ /target/ /node_modules/ .lein-deps-sum .lein-repl-history .lein-plugins/ .repl .nrepl-port .cpcache/ .rebel_readline_history public/js/cljs-runtime/* .clj-kondo/.cache/ .shadow-cljs/ ================================================ FILE: .lsp/.cache/db.transit.json ================================================ [File too large to display: 24.3 MB] ================================================ FILE: README.md ================================================ # MECCA Music Platform The Music Education, Composition, Creation Application MECCA is a live music coding environment for Clojure code inspired by Mario Paint. It was originally meant to be a chiptune tracker that would simply emulate the 4 channels of the NES. But then I started playing around with alternative interfaces and while working on an SVG music notation rendering engine I realized that my priorities were definitely out of whack, and what my program really needed was a jumping Mario and animal noises. I found that the specific subset of musical features used in the Mario Paint music maker provides a delightful scope of creative possibilities while remaining very approachable. And by using distinctively styled note heads that play samples of a common length, a whole set of elements to implement goes away, like rests, stems, beams, and the need for multiple staves for each voice. Besides providing a more quickly acheivable development path, this choice burdens a new music student with less advanced music theory from the start, making for a more compact interface where the composition can be tracked without any mental context switching. Check out the inspiring paper [Mario Paint: An Accessible Environment of Musical Creativity and Sound Exploration](docs/Mario_Paint_An_Accessible_Environment_of.pdf). [Try it live](https://bobbicodes.github.io/mecca/)  I ended up getting a bit carried away with the pixel art, after trying every SVG tool I could find I was still unsatisfied with the results, so ended up coding it all by hand as basic lines, shapes and paths. For example, the [castle](https://github.com/porkostomus/mecca/blob/master/src/mecca/castle.cljs) in the picture above is actually a function that outputs staggered rows of dashed lines representing bricks and mortar organized in a [stretcher bond](https://en.wikipedia.org/wiki/Brickwork#Stretcher,_or_running_bond) masonry pattern. And that Mario is not even a sprite - he's a group of vector paths connected to form his limbs, hat and [moustache](https://laughingsquid.com/origin-of-marios-mustache-and-his-name/). And once this app blows up and I get sued by Nintendo, a new version will be out with a character called *Mr. Moustache*, who will in fact be nothing more than a bouncing moustache on a stick with a red hat on. ## Future ideas It would be cool to be able to record, link or upload your own samples. However, when [Koji Kondo](https://en.wikipedia.org/wiki/Koji_Kondo) said that composing for the SNES is 1000 times harder than composing for the NES[[citation needed - discuss](https://github.com/porkostomus/mecca/wiki/Where-the-%23%25%5E&-is-that-quote-from%3F)], he was warning us about the *choose-a-phone* problem. Being sample based, the SNES can play any sound you throw at it, while the NES only plays one set of built-in sounds. See, once you have no idea what instrument you are composing for, all bets are off. The nature of art is defined at least in part by the limitations of the medium. As [Rich Hickey said](https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/DesignCompositionPerformance.md), "no one wants to compose for a choose-a-phone ensemble". See the paper, [Game Scoring: Towards a Broader Theory](/docs/game-scoring.pdf) for a fantastic treatment of the specific musical inventions that came about through creatively overcoming the technological limitations historically involved in the development of game music. So how can we expand the sonic palette without turning it into a choose-a-phone? This question goes right to the heart of a creative platform's design philosophy, and mine is something like (to put it in one line): "to subtly encourage the use of effective idioms while maintaining maximal expressivity." One idea is to make an 8-bit / 16-bit switch that will transform the whole UI respectively from synth oscillator to sample mode. For the synths, I believe that by using the very efficient algorithms from Blargg's [blip-buf](https://github.com/nesbox/blip-buf) library, a full emulation can be done in the browser quite easily. Since the [NES APU](https://wiki.nesdev.com/w/index.php/APU) produces sound via a [sample/hold](https://en.wikipedia.org/wiki/Sample_and_hold) circuit, it is only necessary to generate the ends of the waveforms (the transitions) since the middle part is the same regardless of frequency, differing only in length. * Noise channel produces pseudo-random bits by [linear feedback shift register](https://en.wikipedia.org/wiki/Linear-feedback_shift_register) method. This is then played back at 16 possible sample rates to produce hihats, snares and other percussive sounds. A much shorter bit sequence is also possible, which is perceived by the human cognitive auditory system as a metallic tone rather than noise due to its periodicity. * The triangle channel (for bass and kick drums/toms) is actually a 16 step quantized triangle-ish wave with a slight shark fin shape that also has tiny sawteeth on it. Gotta get this stuff right. That's what gives the Nintendo basslines those really sweet whirling harmonic overtones. The waveform is actually produced by hijacking the channel's velocity control on the chip and using it as a 16-step counter. For this reason the bass channel has no adjustable velocity, notes are either _on_ or _off_. * The 2 pulse-wave (lead) channels offer a variable duty cycle, so the standard Web Audio square wave will also not do here. However, we do have the option of using a wavetable, which can produce an arbitrary periodic waveform defined by a list of sin/cosine terms for the Fourier coefficients, which can be easily derived for any sound by playing it through the FFT ~~provided by the Web Audio analyzer node~~ EDIT: it seems we will need a separate FFT library for this (or write one) because, quite annoyingly, the analyzer node's FFT doesn't provide the sine/cosine values, only the frequencies... * Linear-interpolated bandlimiting will be good enough, since we have the ability to use the hardware clock exposed by the Web Audio API to oversample at an extremely high rate, supressing aliasing far below perceptible limits. ## Development Do the thing: ```bash $ npm install added 97 packages from 106 contributors in 5.984s ``` Start the development process by running: ```bash $ npx shadow-cljs watch app ... [:app] Build completed. (134 files, 35 compiled, 0 warnings, 5.80s) ``` Or simply `jack-in` from your editor if you use CIDER/Emacs/Calva, etc. Your app will be served at: at [http://localhost:3000](http://localhost:3000). ## Production build ```bash npx shadow-cljs release app ``` Thanks to [Bruce Hauman](https://github.com/bhauman), [Chris Ford](https://github.com/ctford) and [Dave Yarwood](https://github.com/daveyarwood) for blazing the CLJS Web Audio trail. No way could I have figured this all out myself. ## Funding My greatest passion is making music with code, and I believe that there is a vital connection between these domains that is being missed in our educational culture. When the execution of a program results in a richer sensory experience, it facilitates an intuitive understanding of algorithms by engaging the student in a more tangible feedback loop. By teaching these disciplines together, it can unlock an appreciation and continued interest in each of them, and may result in more people building stuff we never thought possible! Sponsor me on [Patreon](https://www.patreon.com/porkostomus) to help me build software for music education. ================================================ FILE: deps.edn ================================================ {:paths ["src/" "test/"] :deps {reagent/reagent {:mvn/version "1.1.0"} re-frame/re-frame {:mvn/version "1.3.0"} re-pressed/re-pressed {:mvn/version "0.3.2"} day8.re-frame/undo {:mvn/version "0.3.3"} thheller/shadow-cljs {:mvn/version "2.14.5"} borkdude/sci {:mvn/version "0.2.6"} applied-science/js-interop {:mvn/version "0.2.5"} nextjournal/clojure-mode {:git/url "https://github.com/nextjournal/clojure-mode" :sha "a83c87cd2bd2049b70613f360336a096d15c5518"}}} ================================================ FILE: docs/apu_ref.txt ================================================ NES APU Sound Hardware Reference -------------------------------- This reference covers Nintendo Entertainment System (NES) sound hardware in as much detail as I know. It is intended primarily to assist in the implementation of emulators and might also be useful as a programmer reference. Tables, diagrams, and formulas are formatted for a mono-spaced font, like Courier. The latest version is kept at http://www.slack.net/~ant/nes-emu/apu_ref.txt ----- Intro ----- This reference is based on the results of tests I have run on a 1988-model US NTSC NES which contains the G revision of the 2A03 CPU/APU and the NES-CPU-07 version of the main board. PAL hardware will be covered once tests are performed on it. Feel free to incorporate this information in references and other documentation. While implementing a NES sound emulator, even after reading the available documentation I still had many unanswered questions, so I made a simple development cartridge to test on a real NES. This was very successful and revealed many new details. My notes consisted of differences from existing documentation, but this didn't seem to be a very reliable way to release my findings, so I decided to write a concise reference. For those familiar with NESSOUND.TXT and DMC.TXT, the following differences should be specifically noted: Corrections: - DMC table entry $D should be $2A0 instead of $2A8 - Frame sequencer - Square's duty generator Clarifications: - DMC - Triangle's linear counter - Length Counter operation and status register behavior It should go without saying that the model presented here probably doesn't match the actual logic gate arrangement in the NES. It makes no difference how the hardware is implemented, as long as its behavior matches what is described here Corrections, questions and additions are welcome. I keep up with the forum at http://nesdev.parodius.com/ and can be contacted via blargg at the mail.com domain. ----- To Do ----- - See if comprehensive emulator test ROM is even practical. - Probe complete power-up state and reset state. - Test PAL hardware to determine APU frame rate, DMC and noise period tables. - Check complete behavior of each unit of each channel to be sure common units behave the same for all channels. - Double-check details on NES hardware again. - Determine post-DAC filtering done before output. -------- Overview -------- The APU is composed of five channels: square 1, square 2, triangle, noise, delta modulation channel (DMC). Each has a variable-rate timer clocking a waveform generator, and various modulators driven by low-frequency clocks from a frame sequencer. The DMC plays samples while the other channels play waveforms. The waveform channels have duration control, some have a volume envelope unit, and a couple have a frequency sweep unit. Square 1/Square 2 $4000/4 ddle nnnn duty, loop env/disable length, env disable, vol/env period $4001/5 eppp nsss enable sweep, period, negative, shift $4002/6 pppp pppp period low $4003/7 llll lppp length index, period high Triangle $4008 clll llll control, linear counter load $400A pppp pppp period low $400B llll lppp length index, period high Noise $400C --le nnnn loop env/disable length, env disable, vol/env period $400E s--- pppp short mode, period index $400F llll l--- length index DMC $4010 il-- ffff IRQ enable, loop, frequency index $4011 -ddd dddd DAC $4012 aaaa aaaa sample address $4013 llll llll sample length Common $4015 ---d nt21 length ctr enable: DMC, noise, triangle, pulse 2, 1 $4017 fd-- ---- 5-frame cycle, disable frame interrupt Status (read) $4015 if-d nt21 DMC IRQ, frame IRQ, length counter statuses ------ Basics ------ Hexadecimal values are prefixed by a $ except for some single-hex-digit sequences where it's clear that they are hex. Bits are numbered from 0 to 7, corresponding with the least to most significant bits of a byte; bit n has a binary weight of 2^n. A flag is a two-state variable that can be either set or clear. When implemented in a bit, clear = 0 and set = 1. A divider outputs a clock every n input clocks, where n is the divider's period. It contains a counter which is decremented on the arrival of each clock. When it reaches 0, it is reloaded with the period and an output clock is generated. Resetting a divider reloads its counter without generating an output clock. Changing a divider's period doesn't affect its current count. A sequencer generates a series of values or events based on the repetition of a series of steps, starting with the first. When clocked the next step of the sequence is generated. In the block diagrams, the triangular symbol is a control gate; if control is non-zero, the input is passed unchanged to the output, otherwise the output is 0. control | v |\ in -->| >-- out |/ Except for the status register, all other registers are write-only. The "value of the register" refers to the last value written to the register. The NTSC NES has a master clock based on a 21.47727 MHz crystal which is divided by 12 to obtain a ~1.79 MHz clock source. Both clocks are used by the APU. The CPU's IRQ line is level-sensitive, so the APU's interrupt flags must be cleared once a CPU IRQ is acknowledged, otherwise the CPU will immediately be interrupt again once its inhibit flag is cleared. In general, the APU is a collection of many independent units which are always running in parallel. Modification of a channel's parameter usually affects only one sub-unit and doesn't take effect until that unit's next internal cycle begins. Each section begins with an overview and an optional block diagram, which provide a framework for the information that follows. In order to reduce ambiguity, there is very little re-statement of information. --------------- Frame Sequencer --------------- The frame sequencer contains a divider and a sequencer which clocks various units. The divider generates an output clock rate of just under 240 Hz, and appears to be derived by dividing the 21.47727 MHz system clock by 89490. The sequencer is clocked by the divider's output. On a write to $4017, the divider and sequencer are reset, then the sequencer is configured. Two sequences are available, and frame IRQ generation can be disabled. mi-- ---- mode, IRQ disable If the mode flag is clear, the 4-step sequence is selected, otherwise the 5-step sequence is selected and the sequencer is immediately clocked once. f = set interrupt flag l = clock length counters and sweep units e = clock envelopes and triangle's linear counter mode 0: 4-step effective rate (approx) --------------------------------------- - - - f 60 Hz - l - l 120 Hz e e e e 240 Hz mode 1: 5-step effective rate (approx) --------------------------------------- - - - - - (interrupt flag never set) l - l - - 96 Hz e e e e - 192 Hz At any time if the interrupt flag is set and the IRQ disable is clear, the CPU's IRQ line is asserted. -------------- Length Counter -------------- A length counter allows automatic duration control. Counting can be halted and the counter can be disabled by clearing the appropriate bit in the status register, which immediately sets the counter to 0 and keeps it there. The halt flag is in the channel's first register. For the square and noise channels, it is bit 5, and for the triangle, bit 7: --h- ---- halt (noise and square channels) h--- ---- halt (triangle channel) Note that the bit position for the halt flag is also mapped to another flag in the Envelope Generator (noise and square) or Linear Counter (triangle). Unless disabled, a write the channel's fourth register immediately reloads the counter with the value from a lookup table, based on the index formed by the upper 5 bits: iiii i--- length index bits bit 3 7-4 0 1 ------- 0 $0A $FE 1 $14 $02 2 $28 $04 3 $50 $06 4 $A0 $08 5 $3C $0A 6 $0E $0C 7 $1A $0E 8 $0C $10 9 $18 $12 A $30 $14 B $60 $16 C $C0 $18 D $48 $1A E $10 $1C F $20 $1E See the clarifications section for a possible explanation for the values left column of the table. When clocked by the frame sequencer, if the halt flag is clear and the counter is non-zero, it is decremented. --------------- Status Register --------------- The status register at $4015 allows control and query of the channels' length counters, and query of the DMC and frame interrupts. It is the only register which can also be read. When $4015 is read, the status of the channels' length counters and bytes remaining in the current DMC sample, and interrupt flags are returned. Afterwards the Frame Sequencer's frame interrupt flag is cleared. if-d nt21 IRQ from DMC frame interrupt DMC sample bytes remaining > 0 triangle length counter > 0 square 2 length counter > 0 square 1 length counter > 0 When $4015 is written to, the channels' length counter enable flags are set, the DMC is possibly started or stopped, and the DMC's IRQ occurred flag is cleared. ---d nt21 DMC, noise, triangle, square 2, square 1 If d is set and the DMC's DMA reader has no more sample bytes to fetch, the DMC sample is restarted. If d is clear then the DMA reader's sample bytes remaining is set to 0. ------------------ Envelope Generator ------------------ An envelope generator can generate a constant volume or a saw envelope with optional looping. It contains a divider and a counter. A channel's first register controls the envelope: --ld nnnn loop, disable, n Note that the bit position for the loop flag is also mapped to a flag in the Length Counter. The divider's period is set to n + 1. When clocked by the frame sequencer, one of two actions occurs: if there was a write to the fourth channel register since the last clock, the counter is set to 15 and the divider is reset, otherwise the divider is clocked. When the divider outputs a clock, one of two actions occurs: if loop is set and counter is zero, it is set to 15, otherwise if counter is non-zero, it is decremented. When disable is set, the channel's volume is n, otherwise it is the value in the counter. Unless overridden by some other condition, the channel's DAC receives the channel's volume value. ----- Timer ----- All channels use a timer which is a divider driven by the ~1.79 MHz clock. The noise channel and DMC use lookup tables to set the timer's period. For the square and triangle channels, the third and fourth registers form an 11-bit value and the divider's period is set to this value *plus one*. llll llll low 8 bits of period (third register) ---- -hhh upper 3 bits of period (fourth register) ---------- Sweep Unit ---------- The sweep unit can adjust a square channel's period periodically. It contains a divider and a shifter. A channel's second register configures the sweep unit: eppp nsss enable, period, negate, shift The divider's period is set to p + 1. The shifter continuously calculates a result based on the channel's period. The channel's period (from the third and fourth registers) is first shifted right by s bits. If negate is set, the shifted value's bits are inverted, and on the second square channel, the inverted value is incremented by 1. The resulting value is added with the channel's current period, yielding the final result. When the sweep unit is clocked, the divider is *first* clocked and then if there was a write to the sweep register since the last sweep clock, the divider is reset. When the channel's period is less than 8 or the result of the shifter is greater than $7FF, the channel's DAC receives 0 and the sweep unit doesn't change the channel's period. Otherwise, if the sweep unit is enabled and the shift count is greater than 0, when the divider outputs a clock, the channel's period in the third and fourth registers are updated with the result of the shifter. -------------- Square Channel -------------- +---------+ +---------+ | Sweep |--->|Timer / 2| +---------+ +---------+ | | | v | +---------+ +---------+ | |Sequencer| | Length | | +---------+ +---------+ | | | v v v +---------+ |\ |\ |\ +---------+ |Envelope |------->| >----------->| >----------->| >-------->| DAC | +---------+ |/ |/ |/ +---------+ There are two square channels beginning at registers $4000 and $4004. Each contains the following: Envelope Generator, Sweep Unit, Timer with divide-by-two on the output, 8-step sequencer, Length Counter. $4000/$4004: duty, envelope $4001/$4005: sweep unit $4002/$4006: period low $4003/$4007: reload length counter, period high In addition to the envelope, the first register controls the duty cycle of the square wave, without resetting the position of the sequencer: dd-- ---- duty cycle select d waveform sequence --------------------- _ 1 0 - ------ 0 (12.5%) __ 1 1 - ----- 0 (25%) ____ 1 2 - --- 0 (50%) _ _____ 1 3 -- 0 (25% negated) When the fourth register is written to, the sequencer is restarted. The sequencer is clocked by the divided timer output. When the sequencer output is low, the DAC receives 0. -------------- Linear Counter -------------- The Linear Counter serves as a second more-accurate duration counter for the triangle channel. It contains a counter and an internal halt flag. Register $4008 contains a control flag and reload value: crrr rrrr control flag, reload value Note that the bit position for the control flag is also mapped to a flag in the Length Counter. When register $400B is written to, the halt flag is set. When clocked by the frame sequencer, the following actions occur in order: 1) If halt flag is set, set counter to reload value, otherwise if counter is non-zero, decrement it. 2) If control flag is clear, clear halt flag. ---------------- Triangle Channel ---------------- +---------+ +---------+ |LinearCtr| | Length | +---------+ +---------+ | | v v +---------+ |\ |\ +---------+ +---------+ | Timer |------->| >----------->| >------->|Sequencer|--->| DAC | +---------+ |/ |/ +---------+ +---------+ The triangle channel contains the following: Timer, 32-step sequencer, Length Counter, Linear Counter, 4-bit DAC. $4008: length counter disable, linear counter $400A: period low $400B: length counter reload, period high When the timer generates a clock and the Length Counter and Linear Counter both have a non-zero count, the sequencer is clocked. The sequencer feeds the following repeating 32-step sequence to the DAC: F E D C B A 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 A B C D E F At the lowest two periods ($400B = 0 and $400A = 0 or 1), the resulting frequency is so high that the DAC effectively outputs a value half way between 7 and 8. ------------- Noise Channel ------------- +---------+ +---------+ +---------+ | Timer |--->| Random | | Length | +---------+ +---------+ +---------+ | | v v +---------+ |\ |\ +---------+ |Envelope |------->| >----------->| >------->| DAC | +---------+ |/ |/ +---------+ The noise channel starts at register $400C and contains the following: Length Counter, Envelope Generator, Timer, 15-bit right shift register with feedback, 4-bit DAC. $400C: envelope $400E: mode, period $400F: reload length counter Register $400E sets the random generator mode and timer period based on a 4-bit index into a period table: m--- iiii mode, period index i timer period ---------------- 0 $004 1 $008 2 $010 3 $020 4 $040 5 $060 6 $080 7 $0A0 8 $0CA 9 $0FE A $17C B $1FC C $2FA D $3F8 E $7F2 F $FE4 The shift register is clocked by the timer and the vacated bit 14 is filled with the exclusive-OR of *pre-shifted* bits 0 and 1 (mode = 0) or bits 0 and 6 (mode = 1), resulting in 32767-bit and 93-bit sequences, respectively. When bit 0 of the shift register is set, the DAC receives 0. On power-up, the shift register is loaded with the value 1. ------------------------------ Delta Modulation Channel (DMC) ------------------------------ +----------+ +---------+ |DMA Reader| | Timer | +----------+ +---------+ | | | v +----------+ +---------+ +---------+ +---------+ | Buffer |----| Output |---->| Counter |---->| DAC | +----------+ +---------+ +---------+ +---------+ The DMC can output samples composed of 1-bit deltas and its DAC can be directly changed. It contains the following: DMA reader, interrupt flag, sample buffer, Timer, output unit, 7-bit counter tied to 7-bit DAC. $4010: mode, frequency $4011: DAC $4012: address $4013: length On power-up, the DAC counter contains 0. Register $4010 sets the interrupt enable, loop, and timer period. If the new interrupt enabled status is clear, the interrupt flag is cleared. il-- ffff interrupt enabled, loop, frequency index f period ---------- 0 $1AC 1 $17C 2 $154 3 $140 4 $11E 5 $0FE 6 $0E2 7 $0D6 8 $0BE 9 $0A0 A $08E B $080 C $06A D $054 E $048 F $036 A write to $4011 sets the counter and DAC to a new value: -ddd dddd new DAC value Sample Buffer ------------- The sample buffer either holds a single sample byte or is empty. It is filled by the DMA reader and can only be emptied by the output unit, so once loaded with a sample it will be eventually output. DMA Reader ---------- The DMA reader fills the sample buffer with successive bytes from the current sample, whenever it becomes empty. It has an address counter and a bytes remain counter. When the DMC sample is restarted, the address counter is set to register $4012 * $40 + $C000 and the bytes counter is set to register $4013 * $10 + 1. When the sample buffer is in an empty state and the bytes counter is non-zero, the following occur: The sample buffer is filled with the next sample byte read from memory at the current address, subject to whatever mapping hardware is present (the same as CPU memory accesses). The address is incremented; if it exceeds $FFFF, it is wrapped around to $8000. The bytes counter is decremented; if it becomes zero and the loop flag is set, the sample is restarted (see above), otherwise if the bytes counter becomes zero and the interrupt enabled flag is set, the interrupt flag is set. When the DMA reader accesses a byte of memory, the CPU is suspended for 4 clock cycles. Output Unit ----------- The output unit continually outputs complete sample bytes or silences of equal duration. It contains an 8-bit right shift register, a counter, and a silence flag. When an output cycle is started, the counter is loaded with 8 and if the sample buffer is empty, the silence flag is set, otherwise the silence flag is cleared and the sample buffer is emptied into the shift register. On the arrival of a clock from the timer, the following actions occur in order: 1. If the silence flag is clear, bit 0 of the shift register is applied to the DAC counter: If bit 0 is clear and the counter is greater than 1, the counter is decremented by 2, otherwise if bit 0 is set and the counter is less than 126, the counter is incremented by 2. 1) The shift register is clocked. 2) The counter is decremented. If it becomes zero, a new cycle is started. ---------- DAC Output ---------- The DACs for each channel are implemented in a way that causes non-linearity and interaction between channels, so calculation of the resulting amplitude is somewhat involved. The normalized audio output level is the sum of two groups of channels: output = square_out + tnd_out 95.88 square_out = ----------------------- 8128 ----------------- + 100 square1 + square2 159.79 tnd_out = ------------------------------ 1 ------------------------ + 100 triangle noise dmc -------- + ----- + ----- 8227 12241 22638 where triangle, noise, dmc, square1 and square2 are the values fed to their DACs. The dmc ranges from 0 to 127 and the others range from 0 to 15. When the sub-denominator of a group is zero, its output is 0. The output ranges from 0.0 to 1.0. Implementation Using Lookup Table --------------------------------- The formulas can be efficiently implemented using two lookup tables: a 31-entry table for the two square channels and a 203-entry table for the remaining channels (due to the approximation of tnd_out, the numerators are adjusted slightly to preserve the normalized output range). square_table [n] = 95.52 / (8128.0 / n + 100) square_out = square_table [square1 + square2] The latter table is approximated (within 4%) by using a base unit close to the DMC's DAC. tnd_table [n] = 163.67 / (24329.0 / n + 100) tnd_out = tnd_table [3 * triangle + 2 * noise + dmc] Linear Approximation -------------------- A linear approximation can also be used, which results in slightly louder DMC samples, but otherwise fairly accurate operation since the wave channels use a small portion of the transfer curve. The overall volume will be reduced due to the headroom required by the DMC approximation. square_out = 0.00752 * (square1 + square2) tnd_out = 0.00851 * triangle + 0.00494 * noise + 0.00335 * dmc This linear approximation neglects the attenuating effect the DMC has when its DAC is in the upper level. This factor can be calculated using the main formula to form a ratio, and precalculated into a 128-entry lookup table. tnd_out(triangle=15,dmc=d) - tnd_out(triangle=0,dmc=d) attenuation(d) = ------------------------------------------------------ tnd_out(triangle=15,dmc=0) ------------------- Unreliable Behavior ------------------- (The following behaviors probably don't need to be emulated due to their unreliability since stable code will avoid invoking it, and since their behavior is somewhat difficult to precisely predict.) If the frame IRQ is set just as register $4015 is being read, it seems to be ignored (similar to polling $2002 for the vbl flag). The DMC's DMA reader seems to check for an empty buffer every few CPU cycles, rather than every cycle or continuously. Writing to the DAC register ($4011) while a sample is playing sometimes has no effect, probably because the DMC's output unit is clocking the counter at the same moment as the write. -------------- Clarifications -------------- (The following are meant only as re-statements of the main content, rather than additions of new content.) Because the envelope loop and length counter disable flags are mapped to the same bit, the length counter can't be used while the envelope is in loop mode. Similar applies to the triangle channel, where the linear counter and length counter are both controlled by the same bit in register $4008. Unlike the other waveform channels, the triangle channel is silenced by stopping its waveform at whatever phase it's at, rather than causing zero to be sent to its DAC. The length counter table seems to be set up for standard note durations for 4/4 time at 160 bpm and 180 bpm. If bit 3 is 0, the following results (Dn is bit n of the fourth channel register): 180bpm 160bpm D6-D4 D7=0 D7=1 note ------------------------------- $00 10 12 16th $01 20 24 8th $02 40 48 4th (one beat) $03 80 96 half $04 160 192 whole $05 60 72 4th dotted $06 14 16 8th triplet (*3 = a 4th) $07 26 32 4th triplet (*3 = a half) ------------- Collaborators ------------- Brad Taylor's NESSOUND.TXT and DMC.TXT as a starting point for testing. NTSC NES for testing on. Nesdev forum for feedback. xodnizel for testing results, correction to DMC table, feedback. Bloopaws/Draci for feedback, possible explanation of length counter table values. ------- History ------- 2003.12.01 Made development cartridge and started testing on NES hardware. 2003.12.14 Started project. 2003.12.20 A few draft sections were posted to Nesdev or e-mailed privately. 2004.01.02 Draft version posted to Nesdev. Corrected tnd_table formula. 2004.01.02 Corrected incorrect "correction" to tnd_table formula. Double-checked them. 2004.01.03 Corrected envelope flag name to "disable" (it was named "enable"). Added effective frequencies of frame sequencer outputs. Added Overview, Unreliable Behavior, Clarifications, and Collaborators sections. 2004.01.04 Adjusted linear approximation (difficult to find a compromise). A few minor edits. 2004.01.30 First release. Probably won't be doing much with it for a while. ================================================ FILE: index.html ================================================
================================================ FILE: package.json ================================================ { "name": "mecca", "version": "1.0.0", "description": "The Music Education, Composition, Creation Application", "main": "index.js", "directories": { "doc": "docs", "test": "test" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/porkostomus/mecca.git" }, "keywords": [], "author": "", "license": "ISC", "bugs": { "url": "https://github.com/porkostomus/mecca/issues" }, "homepage": "https://github.com/porkostomus/mecca#readme", "dependencies": { "@codemirror/autocomplete": "0.18.0", "@codemirror/closebrackets": "0.18.0", "@codemirror/commands": "0.18.0", "@codemirror/comment": "0.18.0", "@codemirror/fold": "0.18.0", "@codemirror/gutter": "0.18.0", "@codemirror/highlight": "0.18.0", "@codemirror/history": "0.18.0", "@codemirror/language": "0.18.0", "@codemirror/lint": "0.18.0", "@codemirror/matchbrackets": "0.18.0", "@codemirror/rectangular-selection": "0.18.0", "@codemirror/search": "0.18.0", "@codemirror/state": "0.18.0", "@codemirror/view": "0.18.0", "create-react-class": "^15.6.3", "lezer-clojure": "0.1.10", "lezer-generator": "^0.13.4", "react": "^16.12.0", "react-dom": "^16.12.0", "shadow-cljs": "^2.8.83" } } ================================================ FILE: public/audio/.directory ================================================ [Dolphin] SortRole=type Timestamp=2019,9,27,10,58,2 Version=4 ViewMode=2 [Settings] HiddenFilesShown=true ================================================ FILE: public/css/style.css ================================================ :root { --orange: hsla(32, 100%, 50%, 1); --yellow: hsla(49, 99%, 50%, 1); --lime: hsla(82, 90%, 45%, 1); --green: hsla(127, 81%, 41%, 1); --red: hsla(342, 93%, 53%, 1); --pink: hsla(314, 85%, 45%, 1); --blue: hsla(211, 92%, 52%, 1); --purple: hsla(283, 92%, 44%, 1); --cyan: hsla(195, 98%, 55%, 1); --sky: hsla(226.6, 94%, 70%, 1); --white: hsla(0, 0%, 95%, 1); --black: hsla(0, 0%, 10%, 1); /* abstract our colours */ --boxMain: var(--pink); --boxSecond: var(--purple); --boxHigh: var(--yellow); --border: 1vmin solid var(--black); --borderRad: 2px; } * { box-sizing: border-box; } body { background-color: var(--sky); padding: 0; font-family: sans-serif, system-ui; font-size: 100%; color: var(--black); } h2 { font-size: 1.2em; } h1 { font-size: 2em; color: purple; /* 2x body copy size = 32px */ line-height: 1; padding : 3px; margin : 0; /* 45px / 36px */ } p { font-size : 16px; padding : 2px; color: black; margin : 0; line-height : 10px; } label { font-size : 16px; padding : 8px; color: blue; margin : 0; line-height : 8px; } .hand { cursor: url('data:image/svg+xml;charset=utf8,') } .jump1 { transform: translateY(-70px); animation: jumpup 0.4s 0s ease infinite; } .jump2 { transform: translateY(-70px); animation: jumpdown 0.5s 0s ease infinite; } .fade { animation: fade 0.7s 0s infinite; } @keyframes fade { 0% { opacity: 0; } 100% { opacity: 1; } } .flex-container { display: flex; flex-flow: row wrap; justify-content: flex-start; column-count: 2; } .flex-item { width: 560px; height: 500px; line-height: 20px; text-align: left; } ================================================ FILE: public/images/.directory ================================================ [Dolphin] Timestamp=2019,9,19,2,50,25 Version=4 [Settings] HiddenFilesShown=true ================================================ FILE: public/images/characters/.directory ================================================ [Dolphin] SortRole=type Timestamp=2019,9,22,12,21,26 Version=4 ViewMode=2 [Settings] HiddenFilesShown=true ================================================ FILE: public/images/lilypond-notes.ly ================================================ \version "2.18.2" \relative c' { b''8 a,, r4 b''8 b,, r4 b''8 c,, r4 b''8 d,, r4 b''8 e,, r4 b''8 f, r4 b'8 g, r4 b'8 a, r4 b'8 b, r4 b'8 c, r4 b'8 d, r4 b'8 e, r4 b'8 f r4 b8 g r4 b8 a r4 b8 b r4 b8 c r4 b8 d r4 b8 e r4 b8 f' r4 a,8 a,, r4 a''8 b,, r4 a''8 c,, r4 a''8 d,, r4 a''8 e, r4 a'8 f, r4 a'8 g, r4 a'8 a, r4 a'8 b, r4 a'8 c, r4 a'8 d, r4 a'8 e r4 a8 f r4 a8 g r4 a8 a r4 a8 b r4 a8 c r4 a8 d r4 a8 e' r4 a,8 f' r4 g,8 a,, r4 g''8 b,, r4 g''8 c,, r4 g''8 d, r4 g'8 e, r4 g'8 f, r4 g'8 g, r4 g'8 a, r4 g'8 b, r4 g'8 c, r4 g'8 d r4 g8 e r4 g8 f r4 g8 g r4 g8 a r4 g8 b r4 g8 c r4 g8 d' r4 g,8 e' r4 g,8 f' r4 f,8 a,, r4 f''8 b,, r4 f''8 c, r4 f'8 d, r4 f'8 e, r4 f'8 f, r4 f'8 g, r4 f'8 a, r4 f'8 b, r4 f'8 c r4 f8 d r4 f8 e r4 f8 f r4 f8 g r4 e8 a,, r4 e''8 b, r4 e'8 c, r4 e'8 d, r4 e'8 e, r4 e'8 f, r4 e'8 g, r4 e'8 a, r4 e'8 b, r4 e'8 c, r4 e'8 d, r4 e'8 e, r4 e'8 f, r4 e'8 g, r4 d'8 a, r4 d'8 b, r4 d'8 c, r4 d'8 d, r4 d'8 e, r4 d'8 f r4 d8 g r4 d8 a r4 d8 b r4 d8 c r4 d8 d r4 d8 e r4 d8 f r4 d8 g r4 c,8 a, r4 c'8 b, r4 c'8 c, r4 c'8 d, r4 c'8 e, r4 c'8 f, r4 c'8 g r4 c8 a r4 c8 b r4 c8 c r4 c8 d r4 c8 e r4 c8 f r4 c8 g' r4 c,8 a' r4 c,8 b' r4 c,8 c' r4 c,8 d' r4 c,8 e' r4 c,8 f' r4 b,,8 g, r4 b'8 a, r4 b'8 b, r4 b'8 c, r4 b'8 d, r4 b'8 e, r4 b'8 f, r4 b'8 g, r4 b'8 a, r4 b'8 b, r4 b'8 c, r4 b'8 d, r4 b'8 e, r4 b'8 f r4 b8 g r4 b8 a r4 b8 b r4 b8 c r4 b8 d r4 b8 e r4 b8 f' r4 b,8 g' r4 b,8 a' r4 b,8 b' r4 b,8 c' r4 b,8 d' r4 b,8 e' r4 b,8 f'' r4 a,,8 d, r4 a'8 e r4 a8 f r4 a8 g r4 a8 a r4 a8 b r4 a8 c r4 a8 d r4 a8 e' r4 a,8 f' r4 a,8 g' r4 a,8 a' r4 a,8 b' r4 a,8 c' r4 a,8 d' r4 a,8 e'' r4 a,,8 f'' r4 a,,8 g'' r4 g,,8 d r4 g8 e r4 g8 f r4 g8 g r4 g8 a r4 g8 b r4 g8 c r4 g8 d' r4 g,8 e' r4 g,8 f' r4 g,8 g' r4 g,8 a' r4 g,8 b' r4 g,8 c' r4 g,8 d'' r4 g,,8 e'' r4 g,,8 f'' r4 g,,8 g'' r4 f,,8 d r4 f8 e r4 f8 f r4 f8 g r4 f8 a r4 f8 b r4 f8 c' r4 f,8 d' r4 f,8 e' r4 f,8 f' r4 f,8 g' r4 f,8 a' r4 f,8 b' r4 f,8 c'' r4 f,,8 d'' r4 f,,8 e'' r4 f,,8 f'' r4 f,,8 g'' r4 e,,8 g, r4 e'8 a, r4 e'8 b r4 e8 c r4 e8 d r4 e8 e r4 e8 f r4 e8 g r4 e8 a r4 e8 b' r4 e,8 c' r4 e,8 d' r4 e,8 e' r4 e,8 f' r4 e,8 g' r4 e,8 a' r4 e,8 b'' r4 e,,8 c'' r4 e,,8 d'' r4 e,,8 e'' r4 e,,8 f'' r4 e,,8 g'' r4 d,,8 g, r4 d'8 a r4 d8 b r4 d8 c r4 d8 d r4 d8 e r4 d8 f r4 d8 g r4 d8 a' r4 d,8 b' r4 d,8 c' r4 d,8 d' r4 d,8 e' r4 d,8 f' r4 d,8 g' r4 d,8 a'' r4 d,,8 b'' r4 d,,8 c'' r4 d,,8 d'' r4 d,,8 e'' r4 d,,8 f'' r4 d,,8 g'' r4 c,,,8 g r4 c8 a r4 c8 b r4 c8 c r4 c8 d r4 c8 e r4 c8 f r4 c8 g' r4 c,8 a' r4 c,8 b' r4 c,8 c' r4 c,8 d' r4 c,8 e' r4 c,8 f' r4 c,8 g'' r4 c,,8 a'' r4 c,,8 b'' r4 c,,8 c'' r4 c,,8 d'' r4 c,,8 e'' r4 c,,8 f'' r4 c,,8 g''' r4 b,,,8 g r4 b8 a r4 b8 b r4 b8 c r4 b8 d r4 b8 e r4 b8 f' r4 b,8 g' r4 b,8 a' r4 b,8 b' r4 b,8 c' r4 b,8 d' r4 b,8 e' r4 b,8 f'' r4 b,,8 g'' r4 b,,8 a'' r4 b,,8 b'' r4 b,,8 c'' r4 b,,8 d'' r4 b,,8 e'' r4 b,,8 f''' r4 b,,,8 g''' r4 } ================================================ FILE: public/index.html ================================================ ================================================ FILE: public/js/main.js ================================================ [File too large to display: 10.7 MB] ================================================ FILE: public/js/manifest.edn ================================================ [{:module-id :main, :name :main, :output-name "main.js", :entries [shadow.cljs.devtools.client.console shadow.cljs.devtools.client.browser shadow.cljs.devtools.client.env mecca.core], :depends-on nil, :sources ["goog/base.js" "goog/debug/error.js" "goog/dom/nodetype.js" "goog/asserts/asserts.js" "goog/reflect/reflect.js" "goog/math/long.js" "goog/math/integer.js" "goog/dom/asserts.js" "goog/functions/functions.js" "goog/array/array.js" "goog/dom/htmlelement.js" "goog/dom/tagname.js" "goog/object/object.js" "goog/dom/tags.js" "goog/string/typedstring.js" "goog/string/const.js" "goog/html/trustedtypes.js" "goog/html/safescript.js" "goog/fs/url.js" "goog/fs/blob.js" "goog/i18n/bidi.js" "goog/html/trustedresourceurl.js" "goog/string/internal.js" "goog/html/safeurl.js" "goog/html/safestyle.js" "goog/html/safestylesheet.js" "goog/labs/useragent/util.js" "goog/labs/useragent/browser.js" "goog/html/safehtml.js" "goog/html/uncheckedconversions.js" "goog/dom/safe.js" "goog/string/string.js" "goog/structs/structs.js" "goog/math/math.js" "goog/iter/iter.js" "goog/structs/map.js" "goog/uri/utils.js" "goog/uri/uri.js" "goog/string/stringbuffer.js" "cljs/core.cljs" "clojure/string.cljs" "shadow/cljs/devtools/client/console.cljs" "goog/labs/useragent/engine.js" "goog/labs/useragent/platform.js" "goog/useragent/useragent.js" "goog/dom/browserfeature.js" "goog/math/coordinate.js" "goog/math/size.js" "goog/dom/dom.js" "goog/useragent/product.js" "shadow/json.cljs" "cljs/tools/reader/impl/utils.cljs" "cljs/tools/reader/reader_types.cljs" "cljs/tools/reader/impl/inspect.cljs" "cljs/tools/reader/impl/errors.cljs" "cljs/tools/reader/impl/commons.cljs" "cljs/tools/reader.cljs" "cljs/pprint.cljs" "clojure/set.cljs" "shadow/cljs/devtools/client/env.cljs" "goog/dom/inputtype.js" "goog/window/window.js" "goog/dom/forms.js" "goog/dom/classlist.js" "goog/dom/vendor.js" "goog/math/box.js" "goog/math/irect.js" "goog/math/rect.js" "goog/disposable/idisposable.js" "goog/disposable/disposable.js" "goog/events/eventid.js" "goog/events/event.js" "goog/style/style.js" "goog/style/transition.js" "cljs/core/async/impl/protocols.cljs" "cljs/core/async/impl/buffers.cljs" "goog/debug/entrypointregistry.js" "goog/async/nexttick.js" "cljs/core/async/impl/dispatch.cljs" "cljs/core/async/impl/channels.cljs" "cljs/core/async/impl/timers.cljs" "cljs/core/async/impl/ioc_helpers.cljs" "cljs/core/async.cljs" "shadow/dom.cljs" "clojure/data.cljs" "shadow/util.cljs" "shadow/object.cljs" "shadow/animate.cljs" "com/cognitect/transit/util.js" "com/cognitect/transit/delimiters.js" "com/cognitect/transit/caching.js" "com/cognitect/transit/eq.js" "com/cognitect/transit/types.js" "com/cognitect/transit/impl/decoder.js" "com/cognitect/transit/impl/reader.js" "com/cognitect/transit/handlers.js" "com/cognitect/transit/impl/writer.js" "com/cognitect/transit.js" "cognitect/transit.cljs" "shadow/remote/runtime/api.cljc" "clojure/core/protocols.cljs" "clojure/datafy.cljs" "shadow/remote/runtime/writer.cljs" "shadow/remote/runtime/shared.cljc" "shadow/remote/runtime/cljs/js_builtins.cljs" "clojure/walk.cljs" "cljs/spec/gen/alpha.cljs" "cljs/spec/alpha.cljs" "goog/string/stringformat.js" "cljs/repl.cljs" "shadow/remote/runtime/obj_support.cljc" "shadow/remote/runtime/tap_support.cljc" "shadow/remote/runtime/eval_support.cljs" "shadow/cljs/devtools/client/shared.cljs" "shadow/cljs/devtools/client/hud.cljs" "shadow/cljs/devtools/client/websocket.cljs" "shadow/cljs/devtools/client/browser.cljs" "shadow/js.js" "node_modules/object-assign/index.js" "node_modules/prop-types/lib/ReactPropTypesSecret.js" "node_modules/prop-types/checkPropTypes.js" "node_modules/react/cjs/react.development.js" "node_modules/react/index.js" "reagent/debug.cljs" "reagent/impl/util.cljs" "reagent/impl/batching.cljs" "reagent/impl/protocols.cljs" "reagent/ratom.cljs" "reagent/impl/component.cljs" "reagent/impl/input.cljs" "reagent/impl/template.cljs" "reagent/core.cljs" "node_modules/scheduler/cjs/scheduler.development.js" "node_modules/scheduler/index.js" "node_modules/scheduler/cjs/scheduler-tracing.development.js" "node_modules/scheduler/tracing.js" "node_modules/react-dom/cjs/react-dom.development.js" "node_modules/react-dom/index.js" "reagent/dom.cljs" "node_modules/@codemirror/text/dist/index.cjs" "node_modules/@codemirror/state/dist/index.cjs" "node_modules/style-mod/dist/style-mod.cjs" "node_modules/@codemirror/rangeset/dist/index.cjs" "node_modules/w3c-keyname/index.cjs" "node_modules/@codemirror/view/dist/index.cjs" "node_modules/lezer-tree/dist/tree.cjs" "node_modules/@codemirror/language/dist/index.cjs" "node_modules/@codemirror/gutter/dist/index.cjs" "node_modules/@codemirror/fold/dist/index.cjs" "node_modules/@codemirror/closebrackets/dist/index.cjs" "node_modules/@codemirror/highlight/dist/index.cjs" "node_modules/@codemirror/history/dist/index.cjs" "mecca/max_or_throw.cljs" "applied_science/js_interop/impl.cljs" "applied_science/js_interop.cljs" "nextjournal/clojure_mode/selections.cljs" "nextjournal/clojure_mode/util.cljs" "node_modules/process/browser.js" "node_modules/lezer/dist/index.cjs" "node_modules/lezer-clojure/dist/index.cjs" "nextjournal/clojure_mode/node.cljs" "nextjournal/clojure_mode/extensions/eval_region.cljs" "sci/impl/destructure.cljc" "sci/impl/types.cljc" "sci/impl/macros.cljc" "sci/impl/unrestrict.cljc" "sci/lang.cljc" "sci/impl/vars.cljc" "sci/impl/utils.cljc" "sci/impl/doseq_macro.cljc" "sci/impl/faster.cljc" "sci/impl/interop.cljc" "sci/impl/records.cljc" "sci/impl/evaluator.cljc" "sci/impl/fns.cljc" "sci/impl/for_macro.cljc" "sci/impl/load.cljc" "sci/impl/resolve.cljc" "sci/impl/analyzer.cljc" "cljs/tools/reader/edn.cljs" "cljs/reader.cljs" "sci/impl/core_protocols.cljc" "sci/impl/hierarchies.cljc" "sci/impl/io.cljc" "sci/impl/multimethods.cljc" "edamame/impl/read_fn.cljc" "edamame/impl/syntax_quote.cljc" "edamame/impl/parser.cljc" "sci/impl/parser.cljc" "sci/impl/protocols.cljc" "sci/impl/read.cljc" "sci/impl/reify.cljc" "sci/impl/namespaces.cljc" "sci/impl/opts.cljc" "sci/impl/interpreter.cljc" "sci/core.cljc" "mecca/sci.cljs" "goog/debug/errorcontext.js" "goog/debug/debug.js" "goog/events/browserfeature.js" "goog/events/eventtype.js" "goog/events/browserevent.js" "goog/events/listenable.js" "goog/events/listener.js" "goog/events/listenermap.js" "goog/log/log.js" "goog/debug/logger.js" "goog/structs/simplepool.js" "goog/debug/tracer.js" "goog/debug/errorhandler.js" "goog/events/eventtarget.js" "goog/events/eventhandler.js" "goog/events/eventwrapper.js" "goog/events/events.js" "re_frame/interop.cljs" "re_frame/db.cljc" "re_frame/loggers.cljc" "re_frame/utils.cljc" "re_frame/settings.cljc" "re_frame/registrar.cljc" "re_frame/trace.cljc" "re_frame/interceptor.cljc" "re_frame/events.cljc" "re_frame/subs.cljc" "re_frame/router.cljc" "re_frame/fx.cljc" "re_frame/cofx.cljc" "re_frame/std_interceptors.cljc" "re_frame/core.cljc" "nextjournal/clojure_mode/chars.cljs" "node_modules/@codemirror/matchbrackets/dist/index.cjs" "node_modules/@codemirror/commands/dist/index.cjs" "nextjournal/clojure_mode/extensions/formatting.cljs" "nextjournal/clojure_mode/test_utils.cljs" "nextjournal/clojure_mode/extensions/selection_history.cljs" "nextjournal/clojure_mode/commands.cljs" "nextjournal/clojure_mode/extensions/close_brackets.cljs" "nextjournal/clojure_mode/extensions/match_brackets.cljs" "nextjournal/clojure_mode/keymap.cljs" "nextjournal/clojure_mode.cljs" "node_modules/lezer-generator/dist/index.cjs" "shadow/resource.cljs" "nextjournal/clojure_mode/live_grammar.cljs" "mecca/sci_editor.cljs" "re_pressed/impl.cljs" "re_pressed/core.cljs" "day8/re_frame/undo.cljs" "mecca/mario.cljs" "mecca/songs/megaman.cljs" "mecca/songs/zelda.cljs" "mecca/songs/city.cljs" "mecca/music.cljs" "mecca/events.cljs" "mecca/subs.cljs" "mecca/castle.cljs" "mecca/transport.cljs" "mecca/editor.cljs" "clojure/edn.cljs" "mecca/view.cljs" "mecca/core.cljs" "shadow/module/main/append.js"]}] ================================================ FILE: public/main.js ================================================ var $jscomp = {}; var shadow$provide = {}; if(typeof Math.imul == "undefined" || (Math.imul(0xffffffff,5) == 0)) { Math.imul = function (a, b) { var ah = (a >>> 16) & 0xffff; var al = a & 0xffff; var bh = (b >>> 16) & 0xffff; var bl = b & 0xffff; // the shift by 0 fixes the sign on the high part // the final |0 converts the unsigned value into a signed value return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0); } } (function(){ shadow$provide[0]=function(l,n,r,h){var f=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable;r.exports=function(){try{if(!Object.assign)return!1;var f=new String("abc");f[5]="de";if("5"===Object.getOwnPropertyNames(f)[0])return!1;var h={};for(f=0;10>f;f++)h["_"+String.fromCharCode(f)]=f;if("0123456789"!==Object.getOwnPropertyNames(h).map(function(f){return h[f]}).join(""))return!1;var l={};"abcdefghijklmnopqrst".split("").forEach(function(f){l[f]= f});return"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},l)).join("")?!1:!0}catch(ma){return!1}}()?Object.assign:function(h,l){if(null===h||void 0===h)throw new TypeError("Object.assign cannot be called with null or undefined");var n=Object(h);for(var r,H=1;Hh.keyCode||void 0!=h.returnValue)){a:{var k=!1;if(0==h.keyCode)try{h.keyCode=-1;break a}catch(q){k=!0}if(k||void 0==h.returnValue)h.returnValue=!0}h=[];for(k=f.currentTarget;k;k=k.parentNode)h.push(k);a=a.type;for(k=h.length-1;!f.oc&&0<=k;k--){f.currentTarget=h[k];var l=ar(h[k],a,!0,f);g=g&&l}for(k=0;!f.oc&&k>>0);function Vq(a){if(fa(a))return a;a[cr]||(a[cr]=function(f){return a.handleEvent(f)});return a[cr]};var dr=new Ih(null,new e(null,4,[91,null,17,null,16,null,18,null],null),null);function er(a){return function(){function f(k){return Ge.a(["re-pressed.core/",p.a(a),p.a(k)].join(""))}function g(){return h.a(null)}var h=null;h=function(k){switch(arguments.length){case 0:return g.call(this);case 1:return f.call(this,k)}throw Error("Invalid arity: "+arguments.length);};h.j=g;h.a=f;return h}()}function fr(a,f){return pf(function(g){var h=K(g,0,null);g=K(g,1,null);return G.b(y.b(a,h),g)},f)} function gr(a){function f(r){return Rf(r,new N(null,2,5,P,[l.j?l.j():l.call(null),Bi],null))}function g(r){return Rf(r,new N(null,2,5,P,[l.j?l.j():l.call(null),qk],null))}function h(r){return Rf(r,new N(null,2,5,P,[l.j?l.j():l.call(null),Hk],null))}function k(r){return Rf(r,new N(null,2,5,P,[l.j?l.j():l.call(null),Pk],null))}var l=er(a),q=l.a?l.a("-keys"):l.call(null,"-keys");X.b?X.b(q,k):X.call(null,q,k);q=l.a?l.a("-event-keys"):l.call(null,"-event-keys");X.b?X.b(q,h):X.call(null,q,h);q=l.a?l.a("-clear-keys"): l.call(null,"-clear-keys");X.b?X.b(q,g):X.call(null,q,g);q=l.a?l.a("-always-listen-keys"):l.call(null,"-always-listen-keys");X.b?X.b(q,f):X.call(null,q,f);G.b("keydown",a)&&(a=l.a?l.a("-prevent-default-keys"):l.call(null,"-prevent-default-keys"),q=function(r){return Rf(r,new N(null,2,5,P,[l.j?l.j():l.call(null),zi],null))},X.b?X.b(a,q):X.call(null,a,q))} function hr(a){var f=er(a);return function(g,h){g=null!=g&&(g.g&64||d===g.R)?af(Dh,g):g;g=y.b(g,cm);K(h,0,null);var k=K(h,1,null);return new e(null,1,[cm,Uf.c(g,new N(null,2,5,P,[f.j?f.j():f.call(null),Pk],null),function(l){l=m(k)?Jd.b(m(l)?l:Kd,k):l;return wf.b(Kd,Hf(25,l))})],null)}} function ir(a){var f=er(a);return function(g,h){g=null!=g&&(g.g&64||d===g.R)?af(Dh,g):g;g=y.b(g,cm);K(h,0,null);K(h,1,null);return new e(null,1,[cm,Tf(g,new N(null,2,5,P,[f.j?f.j():f.call(null),Pk],null),Kd)],null)}}function jr(a,f){K(f,0,null);a=K(f,1,null);f=Ge.a("re-pressed.core/prevent-default");return Od([f,a])} function kr(a){var f=er(a);rq(f.a?f.a("-set-key"):f.call(null,"-set-key"),hr(a));rq(f.a?f.a("-clear-keys"):f.call(null,"-clear-keys"),ir(a));G.b("keydown",a)&&rq(f.a?f.a("-prevent-default-keys"):f.call(null,"-prevent-default-keys"),jr)}function lr(a){if(G.b("keydown",a)){a=Ge.a("re-pressed.core/prevent-default");var f=function(g){return g.preventDefault()};bq.b?bq.b(a,f):bq.call(null,a,f)}}var mr=Ge.a("re-pressed.core/keyboard-event"); function nr(a){a=null!=a&&(a.g&64||d===a.R)?af(Dh,a):a;var f=y.b(a,ml);gr(f);kr(f);lr(f);return Tq(document,f,function(g){var h=er(f),k=g.keyCode,l=dr.a?dr.a(k):dr.call(null,k),q=oe(new Ih(null,new e(null,3,["SELECT",null,"INPUT",null,"TEXTAREA",null],null),null),g.target.tagName),r=new e(null,5,[Pj,g.altKey,Am,g.ctrlKey,ok,g.metaKey,mj,g.shiftKey,vl,g.keyCode],null);k=w(function(){var O=new N(null,1,5,P,[h.a?h.a("-always-listen-keys"):h.call(null,"-always-listen-keys")],null);return V.a?V.a(O):V.call(null, O)}());var t=qf(function(O){return fr(r,O)},k);if(m(function(){var O=ib(l)&&!q;return O?O:t}())){k=new N(null,2,5,P,[h.a?h.a("-set-key"):h.call(null,"-set-key"),r],null);aq.a?aq.a(k):aq.call(null,k);var u=w(function(){var O=new N(null,1,5,P,[h.a?h.a("-keys"):h.call(null,"-keys")],null);return V.a?V.a(O):V.call(null,O)}()),v=w(function(){var O=new N(null,1,5,P,[h.a?h.a("-event-keys"):h.call(null,"-event-keys")],null);return V.a?V.a(O):V.call(null,O)}()),x=w(function(){var O=new N(null,1,5,P,[h.a?h.a("-clear-keys"): h.call(null,"-clear-keys")],null);return V.a?V.a(O):V.call(null,O)}()),z=Id(u),D=function(O){return pf(le,Pf(function(Y,W){return fr(Y,W)},Te.b(Be(u),Jf(25,lf)),Be(O)))},F=Uh(function(){return function W(Y){return new Ie(null,function(){for(;;){var T=B(Y);if(T){if(ie(T)){var Ca=Ec(T),Fb=I(Ca),ec=Me(Fb);return function(){for(var kb=0;;)if(kb w(h)?new N(null,13,5, P,[new N(null,2,5,P,["#885818","M12 0h2M11 1h1M14 1h1M10 2h1M15 2h1M15 3h1M14 4h1M13 5h1M3 9h1M12 9h2M3 10h1M14 10h1M14 11h1M1 13h3M5 13h1M0 14h2M4 14h1M6 14h4M0 15h1M5 15h1M0 16h1M5 16h1M1 17h1M4 17h1M2 18h2M13 18h1M2 19h1M12 19h1M2 20h1M12 20h1"],null),new N(null,2,5,P,["#f8f8f8","M12 1h2M11 2h4M12 3h3M13 4h1M11 5h1M2 14h2M1 15h4M1 16h4M8 16h2M11 16h1M2 17h2M8 17h2M11 17h1"],null),new N(null,2,5,P,["#500000","M7 3h5M5 4h2M12 4h1M4 5h1M12 5h1M14 5h1M3 6h1M2 7h1M2 8h1M13 8h1M1 9h1M1 10h1M1 11h1"], null),new N(null,2,5,P,["#f84070","M7 4h3M11 4h1M5 5h2M5 6h1M6 15h1"],null),new N(null,2,5,P,["#f8d870","M10 4h1M10 5h1M13 17h1M3 20h1"],null),new N(null,2,5,P,["#b02860","M7 5h2M4 6h1M6 6h2M3 7h3M12 8h1M4 13h1M5 14h1"],null),new N(null,2,5,P,["#d8a038","M9 5h1"],null),new N(null,2,5,P,["#000000","M8 6h6M6 7h9M4 8h3M8 8h1M10 8h1M5 9h1M8 9h1M10 9h1M5 10h2M2 11h1M5 11h1M8 11h1M2 12h2M7 12h7M9 13h4M13 16h2M12 17h1M14 17h2M1 18h1M12 18h1M14 18h2M1 19h1M11 19h1M13 19h2M1 20h1M4 20h1M11 20h1M13 20h2M2 21h2M12 21h2"], null),new N(null,2,5,P,["#f8d0c0","M3 8h1M2 9h1M4 9h1M7 9h1M9 9h1M11 9h1M4 10h1M7 10h7M4 11h1M6 11h2M6 12h1"],null),new N(null,2,5,P,["#f87068","M7 8h1M9 8h1M11 8h1M6 9h1M2 10h1M3 11h1M9 11h5M4 12h2M6 13h3"],null),new N(null,2,5,P,["#203088","M10 14h1M11 15h1M12 16h1M11 18h1M3 19h3M10 19h1M6 20h4"],null),new N(null,2,5,P,["#408098","M7 15h2M6 16h2M5 17h3M4 18h6M6 19h4"],null),new N(null,2,5,P,["#80d8c8","M9 15h2M10 16h1M10 17h1M10 18h1"],null)],null):new N(null,13,5,P,[new N(null,2,5,P,["#500000", "M7 0h5M5 1h2M12 1h1M4 2h1M12 2h1M3 3h1M2 4h1M2 5h1M1 6h1M1 7h1M1 8h1"],null),new N(null,2,5,P,["#f84070","M7 1h3M11 1h1M5 2h2M5 3h1M5 14h2"],null),new N(null,2,5,P,["#f8d870","M10 1h1M10 2h1M13 14h1M3 17h1"],null),new N(null,2,5,P,["#b02860","M7 2h2M4 3h1M6 3h2M3 4h3M3 5h1M2 6h2M2 7h1"],null),new N(null,2,5,P,["#d8a038","M9 2"],null),new N(null,2,5,P,["#f8f8f8","M11 2h1M2 11h2M14 11h1M1 12h4M13 12h2M1 13h4M12 13h1M2 14h2M8 15h2M11 15h1M8 16h2M11 16h1"],null),new N(null,2,5,P,["#000000","M8 3h6M6 4h9M4 5h5M10 5h2M4 6h2M4 7h2M8 7h1M10 7h1M5 8h1M8 8h1M10 8h1M1 9h1M5 9h2M2 10h1M5 10h1M8 10h1M7 11h7M9 12h4M13 13h2M12 14h1M14 14h2M1 15h1M12 15h1M14 15h2M1 16h1M12 16h1M14 16h2M1 17h1M12 17h1M14 17h2M2 18h2M13 18h2"], null),new N(null,2,5,P,["#f87068","M9 5h1M6 6h1M2 9h1M3 10h1M9 10h5M5 11h1M6 12h3"],null),new N(null,2,5,P,["#f8d0c0","M7 6h5M3 7h1M6 7h2M9 7h1M11 7h1M2 8h1M4 8h1M6 8h2M9 8h1M11 8h1M4 9h1M7 9h7M4 10h1M6 10h2M6 11h1"],null),new N(null,2,5,P,["#885818","M3 8h1M12 8h2M3 9h1M14 9h1M14 10h1M1 11h1M4 11h1M15 11h1M0 12h1M5 12h1M15 12h1M0 13h1M5 13h5M11 13h1M1 14h1M4 14h1M2 15h2M13 15h1M2 16h2M13 16h1M2 17h1M13 17h1"],null),new N(null,2,5,P,["#203088","M10 13h1M11 14h1M4 15h1M4 16h1M4 17h2M11 17h1M5 18h2M10 18h1M6 19h4"], null),new N(null,2,5,P,["#408098","M7 14h2M5 15h3M5 16h3M6 17h4M7 18h3"],null),new N(null,2,5,P,["#80d8c8","M9 14h2M10 15h1M10 16h1M10 17h1"],null)],null),function(){var l=w(a);return 180 this.head?(qs(this.f,this.tail,a,0,this.f.length-this.tail),qs(this.f,0,a,this.f.length-this.tail,this.head),this.tail=0,this.head=this.length,this.f=a):this.tail===this.head?(this.head=this.tail=0,this.f=a):null}; b.cleanup=function(a){for(var f=this.length,g=0;;)if(g a)){a+=1;continue}break}ws=!1;return 0 t?"visible":"hidden"])],null),new e(null,1,[bm,t],null));q.add(t);r+=1}else{k=!0;break a}return k?Oe(Qe(q),g(Fc(h))):Oe(Qe(q), null)}q=C(h);return Cd(Ud(new N(null,2,5,P,[Ki,Bh([Di,Jk,Bl,Fk,Wl,Vi,xj,Ek,wj,pm],[G.b(q,30)||G.b(q,18)?.25:null,"black","bevel",q,"butt",G.b(q,30)||G.b(q,18)?.06:.15,1,q,63,7 q?"visible":"hidden"])],null),new e(null,1,[bm,q],null)),g(cd(h)))}return null}},null)}(Oh(0,18,1))}())],null)};function Rt(a,f,g){return new N(null,2,5,P,[Ki,new e(null,5,[xj,a,wj,a+8*g,Fk,f+3.5,Ek,f+3.5,Jk,"black"],null)],null)}function St(a,f,g,h){return new N(null,2,5,P,[Ki,new e(null,8,[xj,a,wj,a+8*g,Fk,1.5+f,Ek,1.5+f,Vi,3,Di,"7 1",dm,h,Jk,"#c74a0a"],null)],null)}function Tt(a,f,g,h){return new N(null,2,5,P,[Ki,new e(null,8,[xj,a,wj,a+8*g,Fk,1.5+f,Ek,1.5+f,Vi,3,Di,"1 7",dm,h,Jk,"black"],null)],null)} function Ut(a,f,g){return new N(null,7,5,P,[Jj,new N(null,5,5,P,[St,a,f,g,0],null),new N(null,5,5,P,[Tt,a,f,g,1],null),new N(null,4,5,P,[Rt,a,f,g],null),new N(null,5,5,P,[St,a,f+4,g,4],null),new N(null,5,5,P,[Tt,a,f+4,g,5],null),new N(null,4,5,P,[Rt,a,f+4,g],null)],null)} function Vt(a){return new N(null,2,5,P,[Jj,function(){return function h(g){return new Ie(null,function(){for(;;){var k=B(g);if(k){if(ie(k)){var l=Ec(k),q=I(l),r=Me(q);a:for(var t=0;;)if(tTest host page
================================================ FILE: shadow-cljs.edn ================================================ {:builds {:app {:asset-path "/js" :modules {:main {:init-fn mecca.core/init}} :output-dir "public/js" :target :browser}} :deps true :dependencies [[org.clojure/core.async "0.4.500"] [re-frame "0.10.8"] [day8.re-frame/undo "0.3.3"] [reagent "0.8.1"] [re-pressed "0.3.1"]] :dev-http {3000 "public"} :source-paths ["src"]} ================================================ FILE: src/mecca/castle.cljs ================================================ (ns mecca.castle) (defn mortar-row [x y width] [:line {:x1 x :x2 (+ x (* width 8)) :y1 (+ y 3.5) :y2 (+ y 3.5) :stroke "black"}]) (defn brick-row [x y width offset] [:line {:x1 x :x2 (+ x (* 8 width)) :y1 (+ 1.5 y) :y2 (+ 1.5 y) :stroke-width 3 :stroke-dasharray "7 1" :stroke-dashoffset offset :stroke "#c74a0a"}]) (defn mortar-columns [x y width offset] [:line {:x1 x :x2 (+ x (* 8 width)) :y1 (+ 1.5 y) :y2 (+ 1.5 y) :stroke-width 3 :stroke-dasharray "1 7" :stroke-dashoffset offset :stroke "black"}]) (defn brick-row-pair [x y width] [:g [brick-row x y width 0] [mortar-columns x y width 1] [mortar-row x y width] [brick-row x (+ y 4) width 4] [mortar-columns x (+ y 4) width 5] [mortar-row x (+ y 4) width]]) (defn castle-arch [x y] [:g (for [[dy dx] [[16.5 3] [17.5 5] [18.5 6] [20.5 7] [21.5 7] [22.5 8]]] ^{:key [dy dx]} [:line {:x1 (+ x (- 40 dx)) :x2 (+ x 40 dx) :y1 (+ 48.5 dy) :y2 (+ 48.5 dy) :stroke "black" :stroke-width 2.1}])]) (defn castle-door [x y] [:g [:rect {:x x :y y :width 16 :height 24 :fill "black"}] [castle-arch (- x 32) y]]) (defn castle-roof [x y width] [:g [:line {:x1 x :x2 (+ x width) :y1 (+ y 0.5) :y2 (+ y 0.5) :stroke-width 1 :stroke-dasharray "9 7" :stroke-dashoffset -11 :stroke "#fbbbaf"}] [:line {:x1 x :x2 (+ x width) :y1 (+ y 4) :y2 (+ y 4) :stroke-width 6 :stroke-dasharray "1 7" :stroke-dashoffset 5 :stroke "#fbbbaf"}] [:line {:x1 x :x2 (+ x width) :y1 (+ y 4) :y2 (+ y 4) :stroke-width 6 :stroke-dasharray "7 9" :stroke-dashoffset 4 :stroke "#c74a0a"}] [:line {:x1 x :x2 (+ x width) :y1 (+ y 7.5) :y2 (+ y 7.5) :stroke-width 1 :stroke-dasharray "9 7" :stroke-dashoffset -11 :stroke "black"}] [:line {:x1 x :x2 (+ x width) :y1 (+ y 7.5) :y2 (+ y 7.5) :stroke-width 1 :stroke-dasharray "9 7" :stroke-dashoffset 13 :stroke "#fbbbaf"}]]) (defn brick-face [x y width] [:g {:transform "scale (0.15)" :opacity 1} [castle-roof x y (* 8 width)] [brick-row-pair x (+ y 8) width] [brick-row-pair x (+ y 16) width] [brick-row-pair x (+ y 24) width] [brick-row-pair x (+ y 32) width] [brick-row-pair x (+ y 40) width] (if (= width 10) [castle-door (+ 32 x) (+ y 24)])]) ================================================ FILE: src/mecca/core.cljs ================================================ (ns mecca.core (:require [reagent.core :as r] [reagent.dom :as rdom] [mecca.sci-editor :as sci-editor :refer [!points points eval-result !result]] [re-frame.core :as rf] [re-pressed.core :as rp] [mecca.events] [mecca.sci] [mecca.subs] [mecca.view :as view])) (rf/dispatch-sync [:initialize-db]) (rf/dispatch-sync [::rp/add-keyboard-event-listener "keydown"]) (defn eval-all [s] (try (sci.core/eval-string s {:classes {'js goog/global :allow :all}}) (catch :default e (str e)))) @(rf/subscribe [:eval-result]) (rf/dispatch [:set-result (str (eval-all (str (some-> @!points .-state .-doc str))))]) (rf/dispatch [::rp/set-keydown-rules {:event-keys [[ [:set-result (str (eval-all (str (some-> @!points .-state .-doc str))))] [{:keyCode 13 :shiftKey true}]]] :always-listen-keys [{:keyCode 13 :shiftKey true}] :prevent-default-keys [{:keyCode 13 :shiftKey true}] }]) (defn ^:dev/after-load start [] (rf/clear-subscription-cache!) (rdom/render [view/mecca] (.getElementById js/document "app"))) (defn ^:export init [] (start)) ================================================ FILE: src/mecca/editor.cljs ================================================ (ns mecca.editor (:require [reagent.core :as r] [re-frame.core :as rf :refer [subscribe dispatch]] [mecca.music :as music] [mecca.mario :as mario] [sci.core :as sci] [mecca.sci-editor :as sci-editor :refer [!points points]])) (defn svg-paths ([paths] (svg-paths nil paths 0 0 1)) ([attrs paths] (svg-paths attrs paths 0 0 1)) ([paths x y] (svg-paths nil paths x y 1)) ([paths x y scale] (svg-paths nil paths x y scale)) ([attrs paths x y scale] (into [:g (merge attrs {:transform (str "scale(" scale ") translate(" x "," y ")")})] (for [[color path] paths] [:path {:stroke color :d path}])))) (defn staff-lines [] [:g#lines (doall (for [y (range 18)] ^{:key y} [:line {:x1 1 :x2 63 :y1 y :y2 y :stroke "black" :stroke-width (if (or (= y 30) (= y 18)) 0.06 0.15) :stroke-dasharray (if (or (= y 30) (= y 18)) 0.25) :visibility (if (and (> y 7) (even? y) (< y 42)) "visible" "hidden") :stroke-linecap "butt" :stroke-linejoin "bevel"}]))]) (defn treble-clef [x y] [:path {:transform (str "translate(" x "," y ")") :d "M2.214 12.37H1.55v-.097-.097h-.221-.221v-.111-.111h-.111-.111v-.553-.553h.111.111v-.111-.111h.111.111v-.111-.111h.332.332v.111.111h.111.111v.111.111h.111.111v.332.332h-.111-.111v.111.111h-.111-.111v.111.111h.443.443v-.111-.111h.111.111v-.996-.996h-.111-.111v-.111-.111H2.214 1.55v-.111-.111h-.221-.221v-.111-.111h-.111-.111v-.111-.111h-.111-.111v-.111-.111h-.111-.111v-.111-.111H.332.221v-.221-.221H.111 0v-.996-.996h.111.111v-.221-.221h.111.111v-.221-.221h.111.111v-.111-.111h.111.111v-.111-.111h.111.111v-.111-.111h.111.111v-.111-.111h.111.111v-.111-.111h.111.111V3.653 3.321H1.66 1.55V2.324 1.328h.111.111V.996.664h.111.111V.443.221h.111.111V.111 0h.332.332v.111.111h.111.111v.221.221h.111.111v.332.332h.111.111v.664.664h-.111-.111v.443.443h-.111-.111v.221.221h-.111-.111v.221.221h-.111-.111v.111.111h-.111-.111v.553.553h.111.111v.111.111h.443.443v.111.111h.111.111v.111.111h.111.111v.111.111h.111.111v.221.221h.069.069v.664.664h-.069-.069v.221.221h-.111-.111v.111.111h-.111-.111v.111.111h-.221-.221v.443.443h.111.111v.775.775h-.111-.111v.221.221h-.221-.221v.097.097zM1.992 9.077h.664v-.553-.553h-.111-.111v-.553-.553h-.111-.111v.111.111h-.111-.111v.111.111h-.111-.111v.332.332h.111.111v.221.221h.221.221v.111.111H2.103 1.771v-.111-.111h-.111-.111v-.111-.111h-.111-.111v-.221-.221h-.111-.111v-.332-.332h.111.111v-.221-.221h.111.111v-.111-.111h.111.111v-.111-.111h.111.111v-.111-.111h.111.111v-.111-.111h-.111-.111v-.332-.332h-.111-.111v.111.111h-.111-.111v.111.111h-.111-.111v.111.111h-.111-.111v.221.221h-.111-.111v.111.111h-.111-.111v.332.332h-.111-.111v.332.332h.111.111v.332.332h.111.111v.111.111h.111.111v.111.111h.111.111v.111.111zm1.328-.221h.221v-.221-.221h.111.111v-.443-.443h-.111-.111v-.221-.221h-.221-.221v-.111-.111h-.111-.111v.553.553h.111.111v.443.443zM2.214 3.321h.221v-.221-.221h.111.111v-.111-.111h.111.111v-.221-.221h.111.111V1.66 1.107H2.767 2.435v.221.221h-.111-.111v.221.221h-.111-.111v.664.664z"}]) (def three-quarter-time-button {:off [["#000000" "M0 0h14M0 1h1M13 1h1M0 2h1M3 2h3M13 2h1M0 3h1M5 3h1M13 3h1M0 4h1M3 4h3M9 4h1M13 4h1M0 5h1M5 5h1M8 5h1M13 5h1M0 6h1M3 6h3M7 6h1M13 6h1M0 7h1M6 7h1M9 7h1M13 7h1M0 8h1M5 8h1M8 8h2M13 8h1M0 9h1M4 9h1M7 9h1M9 9h1M13 9h1M0 10h1M7 10h4M13 10h1M0 11h1M9 11h1M13 11h1M0 12h1M13 12h1M0 13h1M13 13h1M0 14h14"] ["#c6c6c6" "M1 1h1M12 1h1M6 2h1M8 2h1M10 2h1M2 3h3M6 3h6M6 4h1M8 4h1M10 4h2M2 5h3M6 5h2M9 5h2M6 6h1M8 6h2M11 6h1M2 7h4M7 7h2M10 7h2M3 8h2M6 8h2M10 8h2M2 9h2M5 9h2M8 9h1M10 9h1M3 10h2M6 10h1M11 10h1M2 11h7M10 11h2M3 12h1M5 12h1M7 12h3M11 12h1M1 13h1"] ["#ffffff" "M2 1h10M1 2h1M1 3h1M1 4h1M1 5h1M1 6h1M1 7h1M1 8h1M1 9h1M1 10h1M1 11h1M1 12h1"] ["#adadad" "M2 2h1M7 2h1M9 2h1M11 2h1M2 4h1M7 4h1M11 5h1M2 6h1M10 6h1M2 8h1M11 9h1M2 10h1M5 10h1M2 12h1M4 12h1M6 12h1M10 12h1"] ["#848484" "M12 2h1M12 4h1M12 5h1M12 6h1M12 8h1M12 9h1M12 10h1M12 12h1M2 13h6M9 13h4"] ["#737373" "M12 3h1M12 7h1M12 11h1M8 13h1"]] :on [["#000000" "M0 0h14M0 1h1M13 1h1M0 2h1M3 2h3M13 2h1M0 3h1M5 3h1M13 3h1M0 4h1M3 4h3M9 4h1M13 4h1M0 5h1M5 5h1M8 5h1M13 5h1M0 6h1M3 6h3M7 6h1M13 6h1M0 7h1M6 7h1M9 7h1M13 7h1M0 8h1M5 8h1M8 8h2M13 8h1M0 9h1M4 9h1M7 9h1M9 9h1M13 9h1M0 10h1M7 10h4M13 10h1M0 11h1M9 11h1M13 11h1M0 12h1M13 12h1M0 13h1M13 13h1M0 14h14"] ["#d6944a" "M1 1h1M12 1h1M1 13h1"] ["#ffffff" "M2 1h10M1 2h1M1 3h1M1 4h1M1 5h1M1 6h1M1 7h1M1 8h1M1 9h1M1 10h1M1 11h1M1 12h1"] ["#ffff00" "M2 2h1M6 2h6M2 3h3M6 3h6M2 4h1M6 4h3M10 4h2M2 5h3M6 5h2M9 5h3M2 6h1M6 6h1M8 6h4M2 7h4M7 7h2M10 7h2M2 8h3M6 8h2M10 8h2M2 9h2M5 9h2M8 9h1M10 9h2M2 10h5M11 10h1M2 11h7M10 11h2M2 12h10"] ["#b54a00" "M12 2h1M12 3h1M12 4h1M12 5h1M12 6h1M12 7h1M12 8h1M12 9h1M12 10h1M12 11h1M12 12h1M2 13h11"]]}) (def four-quarter-time-button {:off [["#000000" "M0 0h14M0 1h1M13 1h1M0 2h1M4 2h1M13 2h1M0 3h1M3 3h2M13 3h1M0 4h1M2 4h1M4 4h1M9 4h1M13 4h1M0 5h1M2 5h4M8 5h1M13 5h1M0 6h1M4 6h1M7 6h1M13 6h1M0 7h1M6 7h1M9 7h1M13 7h1M0 8h1M5 8h1M8 8h2M13 8h1M0 9h1M4 9h1M7 9h1M9 9h1M13 9h1M0 10h1M7 10h4M13 10h1M0 11h1M9 11h1M13 11h1M0 12h1M13 12h1M0 13h1M13 13h1M0 14h14"] ["#c6c6c6" "M1 1h1M12 1h1M3 2h1M5 2h1M7 2h1M9 2h1M11 2h1M2 3h1M5 3h7M3 4h1M5 4h1M7 4h2M10 4h1M6 5h2M9 5h3M2 6h2M5 6h2M8 6h2M11 6h1M3 7h2M7 7h2M10 7h2M2 8h3M6 8h2M10 8h2M3 9h1M5 9h2M8 9h1M10 9h1M2 10h3M6 10h1M11 10h1M3 11h6M10 11h2M2 12h2M5 12h1M7 12h3M11 12h1M1 13h1"] ["#ffffff" "M2 1h10M1 2h1M1 3h1M1 4h1M1 5h1M1 6h1M1 7h1M1 8h1M1 9h1M1 10h1M1 11h1M1 12h1"] ["#adadad" "M2 2h1M6 2h1M8 2h1M10 2h1M6 4h1M11 4h1M10 6h1M2 7h1M5 7h1M2 9h1M11 9h1M5 10h1M2 11h1M4 12h1M6 12h1M10 12h1"] ["#737373" "M12 2h1M12 6h1M12 8h1M12 11h1M2 13h1M8 13h1"] ["#848484" "M12 3h1M12 4h1M12 5h1M12 7h1M12 9h1M12 10h1M12 12h1M3 13h5M9 13h4"]] :on [["#000000" "M0 0h14M0 1h1M13 1h1M0 2h1M4 2h1M13 2h1M0 3h1M3 3h2M13 3h1M0 4h1M2 4h1M4 4h1M9 4h1M13 4h1M0 5h1M2 5h4M8 5h1M13 5h1M0 6h1M4 6h1M7 6h1M13 6h1M0 7h1M6 7h1M9 7h1M13 7h1M0 8h1M5 8h1M8 8h2M13 8h1M0 9h1M4 9h1M7 9h1M9 9h1M13 9h1M0 10h1M7 10h4M13 10h1M0 11h1M9 11h1M13 11h1M0 12h1M13 12h1M0 13h1M13 13h1M0 14h14"] ["#d6944a" "M1 1h1M12 1h1M1 13h1"] ["#ffffff" "M2 1h10M1 2h1M1 3h1M1 4h1M1 5h1M1 6h1M1 7h1M1 8h1M1 9h1M1 10h1M1 11h1M1 12h1"] ["#ffff00" "M2 2h2M5 2h7M2 3h1M5 3h7M3 4h1M5 4h4M10 4h2M6 5h2M9 5h3M2 6h2M5 6h2M8 6h4M2 7h4M7 7h2M10 7h2M2 8h3M6 8h2M10 8h2M2 9h2M5 9h2M8 9h1M10 9h2M2 10h5M11 10h1M2 11h7M10 11h2M2 12h10"] ["#b54a00" "M12 2h1M12 3h1M12 4h1M12 5h1M12 6h1M12 7h1M12 8h1M12 9h1M12 10h1M12 11h1M12 12h1M2 13h11"]]}) ; will have on-click of #(dispatch [:set-time-signature]) #_(defn time-signature [x y scale] (let [active (subscribe [:time-signature])] (fn [x y scale] (if (= 3 @active))))) (defn scroll-cue-left [x y scale] [:g.fade (svg-paths [["#000000" "M4 0h1M3 1h2M2 2h1M4 2h3M1 3h1M0 4h1M1 5h1M2 6h1M4 6h3M3 7h2M4 8h1"] ["#f8f800" "M3 2h1M2 3h5M1 4h6M2 5h5M3 6h1"]] x y scale)]) (defn scroll-cue-right [x y scale] [:g.fade (svg-paths [["#000000" "M2 0h1M2 1h2M0 2h3M4 2h1M5 3h1M6 4h1M5 5h1M0 6h3M4 6h1M2 7h2M2 8h1"] ["#f8f800" "M3 2h1M0 3h5M0 4h6M0 5h5M3 6h1"]] x y scale)]) (def advance-cue-measure [["#f7f700" "M0 0h2M7 0h1M2 1h1M3 2h1M4 3h1M5 4h1"] ["#000000" "M2 0h1M9 0h1M3 1h1M10 1h1M4 2h1M11 2h1M5 3h1M12 3h1M6 4h1M5 6h1M12 6h1M4 7h1M11 7h1M3 8h1M10 8h1M2 9h1M9 9h1"] ["#d8c78b" "M8 0h1"] ["#f7cc00" "M0 1h1M7 1h1M0 2h1M7 2h1M0 3h1M7 3h1M0 4h1M7 4h1M0 5h1M4 5h1M7 5h1M11 5h1M0 6h1M3 6h1M7 6h1M10 6h1M0 7h1M2 7h1M7 7h1M9 7h1M0 8h2M7 8h2"] ["#ffde00" "M1 1h1M8 1h1M1 2h2M8 2h2M1 3h3M8 3h3M1 4h4M8 4h4M1 5h3M8 5h3M1 6h2M8 6h2M1 7h1M8 7h1"] ["#ccb49e" "M9 1h1"] ["#e8e165" "M10 2h1"] ["#e6dd6c" "M11 3h1"] ["#ded17f" "M12 4h1"] ["#f79400" "M5 5h1M12 5h1M4 6h1M11 6h1M3 7h1M10 7h1M2 8h1M9 8h1M0 9h2M7 9h2"]]) (def advance-cue-end [["#f7f700" "M0 0h2M2 1h1M3 2h1M4 3h1M5 4h1"] ["#000000" "M2 0h1M7 0h1M3 1h1M7 1h1M4 2h1M7 2h1M5 3h1M7 3h1M6 4h2M6 5h2M5 6h1M7 6h1M4 7h1M7 7h1M3 8h1M7 8h1M2 9h1M7 9h1"] ;["#ffffff" "M3 0h4M4 1h3M5 2h2M6 3h1M6 6h1M5 7h2M4 8h3M3 9h4"] ["#f7cc00" "M0 1h1M0 2h1M0 3h1M0 4h1M0 5h1M4 5h1M0 6h1M3 6h1M0 7h1M2 7h1M0 8h2"] ["#ffde00" "M1 1h1M1 2h2M1 3h3M1 4h4M1 5h3M1 6h2M1 7h1"] ["#f79400" "M5 5h1M4 6h1M3 7h1M2 8h1M0 9h2"]]) (defn eraser-cursor [x y scale] (svg-paths {:pointer-events "none"} [["#000001" "M0 0h8M0 1h1M8 1h1M0 2h2M7 2h1M9 2h1M0 3h1M2 3h1M6 3h1M10 3h1M1 4h1M3 4h1M5 4h1M11 4h1M1 5h1M4 5h1M12 5h1M2 6h1M4 6h2M11 6h2M2 7h1M4 7h1M6 7h1M10 7h1M12 7h1M3 8h2M7 8h1M9 8h1M12 8h1M4 9h1M8 9h1M12 9h1M5 10h1M8 10h1M11 10h1M6 11h1M8 11h1M10 11h1M7 12h3M8 13h1"] ["#f8f8f8" "M1 1h7M2 2h5M3 3h3M8 3h1M4 4h1M7 4h1M9 4h1M6 5h1M8 5h1M10 5h1M7 6h1M9 6h1M8 7h1"] ["#00f8f8" "M8 2h1M7 3h1M9 3h1M6 4h1M8 4h1M10 4h1M5 5h1M7 5h1M9 5h1M11 5h1M6 6h1M8 6h1M10 6h1M5 7h1M7 7h1M9 7h1M5 8h2M8 8h1M5 9h3M6 10h2M7 11h1"] ["#c0c0c1" "M1 3h1M2 4h1M2 5h2M3 6h1M3 7h1"] ["#0000f8" "M11 7h1M10 8h2M9 9h3M9 10h2M9 11h1"]] x y scale)) (defn eraser [x y scale] (let [active? (subscribe [:eraser?])] (fn [x y scale] (svg-paths {:on-mouse-over #(dispatch [:set-status "Eraser"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click #(do (dispatch [:eraser-toggle]) (if-not @active? (music/play-sample 18 63)))} (if @active? [["#ffffff" "M0 0h15M0 1h2M12 1h3M0 2h3M4 2h7M12 2h1M14 2h1M0 3h3M4 3h2M7 3h4M12 3h3M0 4h2M4 4h5M10 4h1M12 4h3M0 5h2M4 5h3M8 5h3M13 5h2M0 6h2M13 6h2M0 7h2M13 7h2M0 8h2M13 8h2M0 9h2M13 9h2M0 10h2M13 10h2M0 11h2M13 11h2M0 12h2M13 12h2M0 13h2M13 13h2M0 14h2M13 14h2M0 15h2M13 15h2M0 16h14"] ["#ceefe7" "M2 1h1M13 2h1M6 3h1M2 4h1M9 4h1M7 5h1M14 16h1"] ["#000000" "M3 1h9M3 2h1M11 2h1M3 3h1M11 3h1M3 4h1M11 4h1M2 5h2M11 5h2M2 6h1M12 6h1M2 7h1M12 7h1M2 8h1M12 8h1M2 9h1M12 9h1M2 10h1M12 10h1M2 11h1M12 11h1M2 12h1M12 12h1M2 13h1M12 13h1M2 14h1M12 14h1M2 15h11"] ["#84ef94" "M3 6h9M3 7h2M10 7h2M3 8h2M6 8h6M3 9h2M6 9h6M3 10h2M9 10h3M3 11h2M6 11h6M3 12h2M6 12h6M3 13h2M10 13h2M3 14h9"] ["#089c31" "M5 7h5M5 8h1M5 9h1M5 10h4M5 11h1M5 12h1M5 13h5"]] [["#000000" "M0 0h15M0 1h15M0 2h4M11 2h4M0 3h4M11 3h4M0 4h4M11 4h4M0 5h4M11 5h4M0 6h3M12 6h3M0 7h3M12 7h3M0 8h3M12 8h3M0 9h3M12 9h3M0 10h3M12 10h3M0 11h3M12 11h3M0 12h3M12 12h3M0 13h3M12 13h3M0 14h3M12 14h3M0 15h15M0 16h15"] ["#ffffff" "M4 2h7M4 3h2M7 3h4M4 4h5M10 4h1M4 5h3M8 5h3"] ["#ceefe7" "M6 3h1M9 4h1M7 5h1"] ["#c6c6c6" "M3 6h1M5 6h1M7 6h2M10 6h2M3 7h2M10 7h1M3 8h2M6 8h2M9 8h3M3 9h1M6 9h4M11 9h1M3 10h2M9 10h3M3 11h2M6 11h4M11 11h1M3 12h1M6 12h2M9 12h3M3 13h2M10 13h1M3 14h6M10 14h2"] ["#adadad" "M4 6h1M6 6h1M9 6h1M11 7h1M8 8h1M4 9h1M10 9h1M10 11h1M4 12h1M8 12h1M11 13h1M9 14h1"] ["#848484" "M5 7h5M5 9h1M5 10h1M7 10h1M5 12h1M5 13h1M7 13h3"] ["#737373" "M5 8h1M6 10h1M8 10h1M5 11h1M6 13h1"]]) x y scale)))) (defn repeat-button [x y scale] (svg-paths {:on-click #(do (dispatch [:repeat-toggle]) (music/play-sample 17 63))} (if @(subscribe [:repeat?]) [["#000000" "M0 0h13M0 1h1M12 1h1M0 2h1M12 2h1M0 3h1M3 3h8M12 3h1M0 4h1M6 4h1M8 4h3M12 4h1M0 5h1M3 5h8M12 5h1M0 6h1M6 6h1M8 6h3M12 6h1M0 7h1M3 7h8M12 7h1M0 8h1M6 8h1M8 8h3M12 8h1M0 9h1M3 9h8M12 9h1M0 10h1M6 10h1M8 10h3M12 10h1M0 11h1M3 11h8M12 11h1M0 12h1M12 12h1M0 13h13"] ["#f8f800" "M1 1h11M1 2h11M1 3h2M11 3h1M1 4h5M7 4h1M11 4h1M1 5h2M11 5h1M1 6h5M7 6h1M11 6h1M1 7h2M11 7h1M1 8h5M7 8h1M11 8h1M1 9h2M11 9h1M1 10h5M7 10h1M11 10h1M1 11h2M11 11h1M1 12h11"]] [["#000000" "M0 0h13M0 1h1M12 1h1M0 2h1M12 2h1M0 3h1M3 3h8M12 3h1M0 4h1M6 4h1M8 4h3M12 4h1M0 5h1M3 5h8M12 5h1M0 6h1M6 6h1M8 6h3M12 6h1M0 7h1M3 7h8M12 7h1M0 8h1M6 8h1M8 8h3M12 8h1M0 9h1M3 9h8M12 9h1M0 10h1M6 10h1M8 10h3M12 10h1M0 11h1M3 11h8M12 11h1M0 12h1M12 12h1M0 13h13"] ["gray" "M1 1h11M1 2h11M1 3h2M11 3h1M1 4h5M7 4h1M11 4h1M1 5h2M11 5h1M1 6h5M7 6h1M11 6h1M1 7h2M11 7h1M1 8h5M7 8h1M11 8h1M1 9h2M11 9h1M1 10h5M7 10h1M11 10h1M1 11h2M11 11h1M1 12h11"]]) x y scale)) (defn undo-dog [x y scale] (let [undos? (subscribe [:undos?])] (fn [x y scale] (svg-paths {:on-mouse-over #(dispatch [:set-status "Undo"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click (if @undos? #(do (dispatch [:undo]) (music/play-sample 16 63)))} (if @undos? [["#000000" "M0 0h1M3 0h8M13 0h1M0 1h1M4 1h6M13 1h1M0 2h2M4 2h6M12 2h2M0 3h2M12 3h2M0 4h2M12 4h2M0 5h3M5 5h1M8 5h1M11 5h3M0 6h3M11 6h3M0 7h3M6 7h2M11 7h3M0 8h3M6 8h2M11 8h3M0 9h3M4 9h2M8 9h2M11 9h3M0 10h3M4 10h1M9 10h1M11 10h3M0 11h3M5 11h1M8 11h1M11 11h3M0 12h4M6 12h2M10 12h4M0 13h5M9 13h5M0 14h14"] ["#ffc694" "M1 0h1M12 0h1M1 1h1M3 1h1M11 1h2M11 2h1M3 3h2M2 4h2M9 4h1M11 4h1M3 5h1M9 5h1M3 6h1M9 6h1M3 7h1M8 7h2M3 8h1M8 8h2M3 9h1M3 10h1M4 12h1M6 13h1"] ["#ffefbd" "M2 0h1M11 0h1M2 1h1M10 1h1M2 2h1M10 2h1M2 3h1M5 3h6M4 4h5M4 5h1M6 5h2M4 6h1M6 6h2M4 7h2M4 8h2M4 11h1M5 12h1"] ["#d6944a" "M3 2h1M11 3h1M10 4h1M10 5h1M10 6h1M10 7h1M10 8h1M10 9h1M10 10h1M3 11h1M9 11h2M8 12h2M5 13h1M7 13h2"] ["#ffffff" "M5 6h1M8 6h1"] ["#b54a00" "M6 9h2M5 10h4M6 11h2"]] [["#000000" "M0 0h14M0 1h1M4 1h6M13 1h1M0 2h2M5 2h4M12 2h2M0 3h2M3 3h1M10 3h1M12 3h2M0 4h2M12 4h2M0 5h3M11 5h3M0 6h3M5 6h1M8 6h1M11 6h3M0 7h3M11 7h3M0 8h3M11 8h3M0 9h3M6 9h2M11 9h3M0 10h3M6 10h2M11 10h3M0 11h3M5 11h4M11 11h3M0 12h4M10 12h4M0 13h5M9 13h5M0 14h14"] ["#c6c6c6" "M1 1h3M10 1h3M2 2h1M4 2h1M9 2h1M5 3h4M4 4h1M6 4h1M8 4h1M4 5h1M6 5h2M6 6h1M4 7h2M4 8h3M5 9h1M4 10h2M4 11h1M5 12h1"] ["#737373" "M3 2h1M10 2h1M10 4h1M10 6h1M10 8h1M10 10h1M8 12h1M7 13h1"] ["#a5a5b5" "M11 2h1M2 3h1M4 3h1M9 3h1M11 3h1M3 4h1M9 4h1M3 5h1M9 5h1M3 6h1M7 6h1M9 6h1M3 7h1M7 7h3M3 8h1M7 8h3M3 9h1M8 9h2M3 10h1M8 10h2M4 12h1M6 12h2M6 13h1"] ["#848484" "M2 4h1M11 4h1M10 5h1M10 7h1M10 9h1M3 11h1M9 11h2M9 12h1M5 13h1M8 13h1"] ["#adadad" "M5 4h1M7 4h1M4 6h1M6 7h1M4 9h1"] ["#ffffff" "M5 5h1M8 5h1"]]) (* x 5) (* y 5) scale)))) (defn redo-rabbit [x y scale] (let [redos? (subscribe [:redos?])] (fn [x y scale] (svg-paths {:on-mouse-over #(dispatch [:set-status "Redo"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click (if @redos? #(dispatch [:redo]))} (if @redos? [["#ffffff" "M0 0h3M5 0h5M12 0h3M0 1h2M6 1h2M13 1h2M0 2h1M2 2h1M5 2h1M7 2h1M9 2h1M12 2h1M14 2h1M0 3h1M2 3h1M5 3h1M9 3h1M12 3h1M14 3h1M0 4h1M2 4h1M5 4h1M9 4h1M12 4h1M14 4h1M0 5h1M3 5h2M10 5h2M14 5h1M0 6h2M13 6h2M0 7h1M14 7h1M0 12h1M14 12h1M0 13h2M13 13h2M0 14h4M11 14h4M0 15h2M3 15h3M9 15h4M14 15h1M0 16h11M12 16h3"] ["#000000" "M3 0h2M10 0h2M2 1h1M5 1h1M9 1h1M12 1h1M1 2h1M3 2h2M6 2h1M8 2h1M10 2h2M13 2h1M1 3h1M3 3h2M6 3h3M10 3h2M13 3h1M1 4h1M3 4h2M6 4h1M8 4h1M10 4h2M13 4h1M1 5h1M5 5h1M9 5h1M13 5h1M2 6h1M12 6h1M1 7h1M6 7h1M8 7h1M13 7h1M0 8h1M14 8h1M0 9h1M14 9h1M0 10h1M14 10h1M0 11h1M4 11h1M10 11h1M14 11h1M1 12h1M5 12h1M9 12h1M13 12h1M2 13h2M6 13h3M11 13h2M4 14h2M9 14h2M6 15h3"] ["#00ff00" "M3 1h2M10 1h2M7 4h1M2 5h1M6 5h3M12 5h1M3 6h9M2 7h4M7 7h1M9 7h4M1 8h13M1 9h13M1 10h13M1 11h3M5 11h5M11 11h3M2 12h3M6 12h3M10 12h3M4 13h2M9 13h2M6 14h3"] ["#ceefe7" "M8 1h1M2 15h1M13 15h1M11 16h1"]] [["#848484" "M0 0h15M0 1h1M2 1h1M5 1h1M7 1h1M9 1h1M12 1h1M14 1h1M0 2h2M6 2h3M13 2h2M0 3h1M7 3h1M14 3h1M0 4h1M14 4h1M0 5h1M14 5h1M0 6h1M14 6h1M0 7h2M13 7h2M0 8h1M14 8h1M0 13h1M14 13h1M0 14h2M13 14h2M0 15h1M2 15h2M11 15h2M14 15h1M0 16h3M4 16h2M9 16h2M12 16h3"] ["#737373" "M1 1h1M6 1h1M8 1h1M13 1h1M1 15h1M13 15h1M3 16h1M11 16h1"] ["#000000" "M3 1h2M10 1h2M2 2h1M5 2h1M9 2h1M12 2h1M1 3h2M6 3h1M8 3h1M12 3h2M1 4h1M3 4h1M6 4h3M11 4h1M13 4h1M1 5h1M4 5h1M6 5h1M8 5h1M10 5h1M13 5h1M1 6h1M5 6h1M9 6h1M13 6h1M2 7h1M12 7h1M1 8h1M6 8h1M8 8h1M13 8h1M0 9h1M14 9h1M0 10h1M14 10h1M0 11h1M14 11h1M0 12h1M14 12h1M1 13h1M6 13h3M13 13h1M2 14h2M11 14h2M4 15h2M9 15h2M6 16h3"] ["#c6c6c6" "M3 2h2M10 2h2M3 3h3M9 3h2M2 4h1M4 4h1M9 4h2M12 4h1M2 5h2M5 5h1M7 5h1M9 5h1M11 5h2M2 6h1M4 6h1M6 6h3M10 6h2M3 7h3M7 7h3M11 7h1M2 8h2M5 8h1M7 8h1M9 8h4M1 9h6M8 9h2M11 9h3M1 10h1M3 10h2M6 10h6M13 10h1M1 11h3M5 11h3M9 11h2M12 11h2M1 12h2M4 12h3M8 12h6M2 13h3M9 13h1M11 13h2M4 14h7M6 15h1M8 15h1"] ["#adadad" "M11 3h1M5 4h1M3 6h1M12 6h1M6 7h1M10 7h1M4 8h1M7 9h1M10 9h1M2 10h1M5 10h1M12 10h1M4 11h1M8 11h1M11 11h1M3 12h1M7 12h1M5 13h1M10 13h1M7 15h1"]]) (* x 5) (* y 5) scale)))) (def ghost [["#fefefe" "M0 0h10M20 0h12M0 1h10M20 1h12M0 2h6M10 2h10M24 2h8M0 3h6M10 3h10M24 3h8M0 4h4M6 4h18M26 4h6M0 5h4M6 5h18M26 5h6M0 6h2M4 6h22M28 6h4M0 7h2M4 7h22M28 7h4M0 8h2M4 8h2M8 8h2M12 8h14M28 8h4M0 9h2M4 9h2M8 9h2M12 9h14M28 9h4M2 10h4M8 10h2M12 10h8M24 10h4M30 10h2M2 11h4M8 11h2M12 11h8M24 11h4M30 11h2M2 12h16M20 12h4M26 12h2M30 12h2M2 13h16M20 13h4M26 13h2M30 13h2M2 14h2M6 14h2M10 14h2M14 14h10M26 14h2M30 14h2M2 15h2M6 15h2M10 15h2M14 15h10M26 15h2M30 15h2M2 16h2M14 16h8M24 16h6M2 17h2M14 17h8M24 17h6M2 18h2M14 18h16M2 19h2M14 19h16M0 20h2M4 20h2M16 20h14M0 21h2M4 21h2M16 21h14M0 22h2M4 22h2M8 22h2M12 22h2M16 22h12M30 22h2M0 23h2M4 23h2M8 23h2M12 23h2M16 23h12M30 23h2M0 24h4M6 24h18M28 24h4M0 25h4M6 25h18M28 25h4M0 26h6M12 26h8M24 26h8M0 27h6M12 27h8M24 27h8M0 28h12M20 28h12M0 29h12M20 29h12"] ["#000000" "M10 0h10M10 1h10M6 2h4M20 2h4M6 3h4M20 3h4M4 4h2M24 4h2M4 5h2M24 5h2M2 6h2M26 6h2M2 7h2M26 7h2M2 8h2M6 8h2M10 8h2M26 8h2M2 9h2M6 9h2M10 9h2M26 9h2M0 10h2M6 10h2M10 10h2M20 10h4M28 10h2M0 11h2M6 11h2M10 11h2M20 11h4M28 11h2M0 12h2M18 12h2M24 12h2M28 12h2M0 13h2M18 13h2M24 13h2M28 13h2M0 14h2M24 14h2M28 14h2M0 15h2M24 15h2M28 15h2M0 16h2M22 16h2M30 16h2M0 17h2M22 17h2M30 17h2M0 18h2M30 18h2M0 19h2M30 19h2M2 20h2M30 20h2M2 21h2M30 21h2M2 22h2M28 22h2M2 23h2M28 23h2M4 24h2M24 24h4M4 25h2M24 25h4M6 26h6M20 26h4M6 27h6M20 27h4M12 28h8M12 29h8"] ["#fe0000" "M4 14h2M8 14h2M12 14h2M4 15h2M8 15h2M12 15h2M4 16h10M4 17h10M4 18h10M4 19h10M6 20h10M6 21h10M6 22h2M10 22h2M14 22h2M6 23h2M10 23h2M14 23h2"]]) (def zelda [["#000100" "M8 0h2M15 0h2M7 2h1M17 2h1M6 3h1M18 3h1M4 4h2M19 4h2M4 5h2M19 5h2M4 6h2M19 6h2M3 7h1M21 7h1M3 14h1M7 14h1M17 14h1M21 14h1M3 15h1M21 15h1M3 16h1M21 16h1M4 17h3M18 17h3M6 18h1M18 18h1M6 19h1M18 19h1M4 20h2M19 20h2M3 21h1M21 21h1M2 22h1M6 22h1M18 22h1M22 22h2M2 23h1M6 23h1M18 23h1M22 23h2M2 24h1M22 24h2M3 25h4M18 25h4M3 26h4M18 26h4M6 27h2M17 27h2M4 28h2M8 28h9M19 28h2M4 29h2M10 29h1M14 29h1M19 29h2M4 30h2M10 30h1M14 30h1M19 30h2M6 31h4M15 31h4"] ["#52ad54" "M10 0h5M10 1h5M8 2h2M15 2h2M7 3h2M17 3h1M6 4h1M18 4h1M6 5h1M18 5h1M4 7h2M19 7h2M7 21h11M8 22h9M8 23h9M6 24h1M18 24h1M10 25h1M14 25h1M10 26h1M14 26h3M8 27h2M15 27h2"] ["#4f514e" "M7 1h3M15 1h3M7 6h1M17 6h1M6 7h1M18 7h1M0 8h1M3 8h3M19 8h3M24 8h1M0 9h1M3 9h3M15 9h2M19 9h3M24 9h1M0 10h1M4 10h2M7 10h1M14 10h1M17 10h1M19 10h2M24 10h1M2 11h1M4 11h3M13 11h1M17 11h1M20 11h1M22 11h2M6 12h1M17 12h1M22 12h2M3 13h1M6 13h1M10 13h2M18 13h1M21 13h1M6 14h1M8 14h3M15 14h2M18 14h1M6 15h1M10 15h1M14 15h1M18 15h1M6 16h1M10 16h1M14 16h1M18 16h1M7 18h1M17 18h1M7 19h1M17 19h1M7 20h3M15 20h3M1 22h1M7 22h1M17 22h1M1 23h1M7 23h1M17 23h1M1 24h1M8 24h3M14 24h3M7 28h1M17 28h1M8 29h2M15 29h2M8 30h2M15 30h2"] ["#92c24b" "M10 2h5M9 3h8M7 4h11M7 5h11M6 6h1M18 6h1M2 8h1M1 9h1M1 10h1M12 13h1M6 20h1M18 20h1M4 21h3M18 21h3M20 22h1M7 24h1M17 24h1M7 25h3M15 25h3M7 26h3M17 26h1M10 27h5"] ["#feee4d" "M8 6h9M7 7h11M7 8h1M10 8h4M17 8h2M7 9h1M10 9h4M17 9h2M6 10h1M8 10h6M18 10h1M8 11h3M8 12h3M4 13h2M19 13h2M4 14h2M19 14h2M11 24h3M11 25h3M11 26h3"] ["#876355" "M1 8h1M19 11h1M2 12h1M4 12h2M12 12h2M20 12h1"] ["#ed9a61" "M6 8h1M2 9h1M22 9h1M15 10h2M3 11h1M14 11h1M21 11h1M3 12h1M14 12h1M21 12h1M13 13h1M17 13h1M11 14h1M14 14h1M16 18h1M10 20h5M3 22h1M21 22h1M3 24h1M21 24h1"] ["#f7ba00" "M8 8h2M14 8h1M6 9h1M8 9h2M14 9h1M7 11h1M11 11h1M18 11h1M7 12h1M11 12h1M18 12h1M7 13h3M4 15h2M19 15h2M4 16h2M19 16h2"] ["#775904" "M15 8h2M19 12h1"] ["#e9bc9a" "M22 8h1M23 9h1M2 10h2M21 10h3M15 11h2M15 12h2M14 13h3M12 14h2M11 15h3M11 16h3M7 17h1M11 17h3M17 17h1M8 18h8M8 19h9M4 22h2M19 22h1M3 23h3M19 23h3M4 24h2M19 24h2"] ["#987124" "M12 11h1"] ["#4751b0" "M8 15h2M15 15h2M8 16h2M15 16h2M8 17h2M15 17h2"] ["#cbceca" "M5 19h1M19 27h1"] ["#6b1f19" "M6 28h1M18 28h1M6 29h2M17 29h2M6 30h2M17 30h2"]]) (def megaman [["#000000" "M13 4h2M11 5h2M15 5h1M10 6h1M13 6h1M16 6h1M9 7h1M14 7h4M9 8h1M14 8h1M18 8h1M8 9h1M15 9h2M18 9h1M8 10h1M18 10h1M8 11h1M13 11h2M16 11h1M18 11h1M9 12h1M13 12h2M16 12h1M18 12h1M8 13h2M18 13h1M6 14h2M10 14h1M13 14h3M17 14h3M5 15h1M11 15h1M16 15h1M20 15h1M4 16h1M9 16h1M16 16h1M21 16h1M4 17h1M7 17h3M16 17h3M21 17h1M4 18h1M8 18h2M16 18h2M21 18h1M4 19h1M8 19h2M16 19h2M21 19h1M5 20h3M9 20h1M16 20h1M18 20h3M8 21h1M17 21h1M7 22h1M18 22h1M6 23h2M12 23h2M18 23h2M4 24h2M11 24h1M14 24h1M20 24h2M3 25h1M11 25h1M14 25h1M22 25h1M3 26h9M14 26h9"] ["#00e5ff" "M13 5h2M14 6h2M15 8h2M9 9h1M9 10h1M9 11h1M8 14h2M7 15h4M17 15h2M8 16h1M10 16h6M17 16h1M10 17h6M10 18h6M9 21h2M14 21h3M10 22h7M11 23h1M14 23h1"] ["#006fff" "M11 6h2M10 7h4M10 8h4M17 8h1M10 9h5M17 9h1M10 10h2M15 10h2M10 11h1M10 12h1M10 13h1M11 14h1M6 15h1M19 15h1M5 16h3M18 16h3M5 17h2M19 17h2M5 18h3M18 18h3M5 19h3M10 19h6M18 19h3M10 20h6M11 21h3M8 22h2M17 22h1M8 23h3M15 23h3M6 24h5M15 24h5M4 25h7M15 25h7"] ["#ffebd9" "M12 10h1M11 11h1M15 11h1M11 12h1M15 12h1M11 13h2M15 13h1M12 14h1M16 14h1M12 15h4"]]) (defn advance-measure [] (let [mouseover? (r/atom false)] (fn [] [:g [:rect {:x 58 :y 5.5 :height 2.5 :width 6 :pointer-events "all" :visibility "hidden" :opacity 0.2 :on-mouse-over #(reset! mouseover? true) :on-mouse-out #(reset! mouseover? false) :on-click #(dispatch [:advance-editor 4])}] (if @mouseover? (svg-paths {:pointer-events "none"} advance-cue-measure 300 30 0.2))]))) (defn advance-editor [] (let [mouseover? (r/atom false)] (fn [] [:g [:rect {:x 58 :y 8 :height 12 :width 6 :pointer-events "all" :visibility "hidden" :opacity 0.2 :on-mouse-over #(reset! mouseover? true) :on-mouse-out #(reset! mouseover? false) :on-click #(dispatch [:advance-editor 0.5])}] (if @mouseover? [:g [scroll-cue-right (* 4 60.8) (* 4 8) 0.25] [scroll-cue-right (* 4 60.8) (* 4 14) 0.25]])]))) (defn advance-end [] (let [mouseover? (r/atom false) length (apply max (map #(:time %) @(subscribe [:notes]))) editor-pos (subscribe [:editor-beat-start])] (fn [] [:g [:rect {:x 58 :y 2 :height 3.5 :width 6 :pointer-events "all" :visibility "hidden" :opacity 0.2 :on-mouse-over #(reset! mouseover? true) :on-mouse-out #(reset! mouseover? false) :on-click (fn [e] (dispatch [:advance-editor (- (apply max (map #(:time %) @(subscribe [:notes]))) @editor-pos)]))}] (if @mouseover? (svg-paths {:pointer-events "none"} advance-cue-end 305 20 0.2))]))) (defn retract-editor [x] (let [mouseover? (r/atom false)] (fn [] [:g [:rect {:x x :y 2 :height 32 :width 6 :pointer-events "all" :visibility "hidden" :opacity 0.2 :on-mouse-over #(reset! mouseover? true) :on-mouse-out #(reset! mouseover? false) :on-click #(dispatch [:retract-editor])}] (if @mouseover? [:g [scroll-cue-left (* 4 (+ 3 x)) (* 4 8) 0.25] [scroll-cue-left (* 4 (+ 3 x)) (* 4 14) 0.25]])]))) (defn display-numbers [n] (let [num-path ["M1 0h4M0 1h1M5 1h1M0 2h1M5 2h1M0 3h1M5 3h1M0 4h1M5 4h1M1 5h4" "M1 0h2M2 1h1M2 2h1M2 3h1M2 4h1M1 5h3" "M1 0h4M0 1h1M5 1h1M5 2h1M1 3h4M0 4h1M0 5h6" "M1 0h4M0 1h1M5 1h1M2 2h3M5 3h1M0 4h1M5 4h1M1 5h4" "M2 0h3M1 1h1M4 1h1M0 2h1M4 2h1M0 3h1M4 3h1M0 4h6M4 5h1" "M0 0h6M0 1h1M0 2h5M5 3h1M0 4h1M5 4h1M1 5h4" "M1 0h4M0 1h1M0 2h5M0 3h1M5 3h1M0 4h1M5 4h1M1 5h4" "M0 0h6M0 1h1M5 1h1M4 2h1M3 3h1M3 4h1M3 5h1" "M1 0h4M0 1h1M5 1h1M1 2h4M0 3h1M5 3h1M0 4h1M5 4h1M1 5h4" "M1 0h4M0 1h1M5 1h1M1 2h5M5 3h1M5 4h1M1 5h4"]] [:path {:stroke "black" :d (get num-path n)}])) (def data-robot {:body [["#000" "M0 0h128M0 1h128M0 2h2m124 0h2M0 3h2m124 0h2M0 4h2m124 0h2M0 5h2m124 0h2M0 6h2m124 0h2M0 7h2m124 0h2M0 8h2m124 0h2M0 9h2m124 0h2M0 10h2m77 0h1m46 0h2M0 11h2m77 0h1m46 0h2M0 12h2m54 0h2m2 0h1m9 0h2m2 0h1m4 0h1m46 0h2M0 13h2m53 0h1m2 0h1m2 0h1m7 0h1m2 0h1m2 0h1m3 0h1m46 0h2M0 14h2m52 0h1m4 0h1m1 0h1m6 0h1m4 0h1m1 0h1m3 0h1m46 0h2M0 15h2m53 0h1m2 0h1m2 0h1m7 0h1m2 0h1m2 0h1m3 0h1m46 0h2M0 16h2m54 0h2m2 0h1m9 0h2m2 0h1m4 0h1m46 0h2M0 17h2m57 0h1m13 0h1m5 0h1m46 0h2M0 18h2m43 0h1m19 0h1m13 0h1m46 0h2M0 19h2m43 0h3m18 0h1m12 0h4m43 0h2M0 20h2m65 0h1m11 0h1m46 0h2M0 21h2m77 0h1m46 0h2M0 22h2m77 0h1m46 0h2M0 23h2m77 0h1m46 0h2M0 24h2m55 0h14m8 0h1m46 0h2M0 25h2m55 0h14m8 0h1m46 0h2M0 26h2m55 0h14m8 0h1m46 0h2M0 27h2m77 0h1m46 0h2M0 28h2m55 0h14m7 0h2m46 0h2M0 29h2m48 0h29m47 0h2M0 30h2m60 0h1m1 0h2m60 0h2M0 31h2m124 0h2M0 32h2m124 0h2M0 33h2m93 0h1m30 0h2M0 34h2m93 0h1m30 0h2M0 35h2m93 0h1m30 0h2M0 36h2m93 0h1m30 0h2M0 37h2m93 0h1m30 0h2M0 38h2m36 0h1m56 0h1m30 0h2M0 39h2m36 0h1m50 0h1m5 0h1m30 0h2M0 40h2m36 0h1m50 0h1m5 0h1m30 0h2M0 41h2m36 0h1m50 0h1m5 0h1m30 0h2M0 42h2m87 0h1m5 0h1m30 0h2M0 43h2m93 0h1m30 0h2M0 44h2m93 0h1m30 0h2M0 45h2m93 0h1m30 0h2M0 46h2m93 0h1m30 0h2M0 47h2m93 0h1m30 0h2M0 48h2m93 0h1m30 0h2M0 49h2m93 0h1m30 0h2M0 50h2m93 0h1m4 0h1m1 0h1m8 0h1m5 0h1m8 0h2M0 51h2m93 0h1m4 0h1m1 0h1m23 0h2M0 52h2m93 0h1m4 0h1m1 0h1m23 0h2M0 53h2m93 0h1m4 0h1m1 0h1m11 0h1m11 0h2M0 54h2m93 0h1m4 0h1m1 0h1m11 0h1m11 0h2M0 55h2m93 0h1m4 0h1m1 0h1m11 0h1m11 0h2M0 56h2m93 0h1m4 0h1m1 0h1m2 0h1m8 0h1m11 0h2M0 57h2m93 0h1m4 0h1m1 0h1m2 0h1m8 0h1m11 0h2M0 58h2m93 0h4m1 0h4m10 0h1m11 0h2M0 59h2m93 0h4m1 0h4m22 0h2M0 60h2m93 0h1m4 0h1m1 0h1m23 0h2M0 61h2m93 0h1m4 0h1m1 0h1m8 0h1m5 0h1m8 0h2M0 62h2m93 0h1m4 0h1m1 0h1m23 0h2M0 63h2m93 0h1m30 0h2M0 64h2m93 0h1m30 0h2M0 65h2m93 0h1m30 0h2M0 66h2m93 0h1m30 0h2M0 67h2m93 0h1m30 0h2M0 68h2m93 0h1m30 0h2M0 69h2m93 0h1m30 0h2M0 70h2m93 0h1m30 0h2M0 71h2m24 0h1m68 0h1m30 0h2M0 72h2m93 0h1m30 0h2M0 73h2m93 0h1m30 0h2M0 74h2m93 0h1m30 0h2M0 75h2m93 0h1m30 0h2M0 76h2m24 0h1m68 0h1m30 0h2M0 77h2m93 0h1m30 0h2M0 78h2m93 0h1m30 0h2M0 79h2m93 0h1m30 0h2M0 80h2m93 0h1m5 0h1m24 0h2M0 81h2m93 0h1m30 0h2M0 82h2m93 0h1m5 0h1m24 0h2M0 83h2m93 0h1m5 0h1m24 0h2M0 84h2m93 0h1m30 0h2M0 85h2m93 0h1m30 0h2M0 86h2m93 0h1m5 0h1m24 0h2M0 87h2m93 0h1m5 0h1m24 0h2M0 88h2m93 0h1m5 0h1m24 0h2M0 89h2m19 0h1m7 0h1m65 0h1m5 0h4m21 0h2M0 90h2m19 0h9m65 0h10m21 0h2M0 91h2m19 0h1m7 0h3m63 0h7m3 0h1m20 0h2M0 92h2m19 0h1m7 0h3m63 0h7m3 0h1m20 0h2M0 93h2m27 0h1m65 0h7m3 0h1m20 0h2M0 94h2m93 0h1m5 0h1m24 0h2M0 95h2m93 0h1m5 0h1m24 0h2M0 96h2m93 0h1m30 0h2M0 97h2m93 0h1m17 0h3m10 0h2M0 98h2m93 0h1m17 0h1m1 0h1m10 0h2M0 99h2m93 0h1m30 0h2M0 100h2m93 0h1m21 0h1m8 0h2M0 101h2m93 0h1m30 0h2M0 102h2m93 0h1m30 0h2M0 103h2m93 0h1m30 0h2M0 104h2m93 0h1m30 0h2M0 105h2m93 0h1m30 0h2M0 106h2m93 0h1m30 0h2M0 107h2m93 0h1m30 0h2M0 108h2m93 0h1m30 0h2M0 109h2m93 0h1m2 0h2m26 0h2M0 110h2m36 0h1m50 0h1m5 0h2m29 0h2M0 111h2m36 0h1m50 0h1m5 0h1m30 0h2M0 112h2m36 0h1m50 0h1m5 0h1m30 0h2M0 113h2m36 0h1m50 0h1m5 0h1m30 0h2M0 114h2m93 0h1m30 0h2M0 115h2m7 0h2m84 0h1m30 0h2M0 116h2m7 0h6m80 0h1m30 0h2M0 117h2m8 0h6m79 0h1m30 0h2M0 118h2m92 0h2m30 0h2M0 119h2m32 0h62m30 0h2M0 120h2m124 0h2M0 121h2m124 0h2M0 122h2m124 0h2M0 123h2m124 0h2M0 124h2m124 0h2M0 125h2m124 0h2M0 126h128M0 127h128"] ["#e0e8c0" "M2 2h124M2 3h124M2 4h124M2 5h124M2 6h124M2 7h124M2 8h47m30 0h47M2 9h46m32 0h46M2 10h46m2 0h1m29 0h46M2 11h36m3 0h7m2 0h1m29 0h7m3 0h36M2 12h36m4 0h6m2 0h1m29 0h6m4 0h36M2 13h36m5 0h5m2 0h1m29 0h5m5 0h36M2 14h36m6 0h4m2 0h1m29 0h4m6 0h36M2 15h36m7 0h3m2 0h1m29 0h3m7 0h36M2 16h36m12 0h1m39 0h36M2 17h36m12 0h1m39 0h36M2 18h36m12 0h1m39 0h16m17 0h3M2 19h36m12 0h1m39 0h17m15 0h4M2 20h36m7 0h3m2 0h1m29 0h3m7 0h18m13 0h5M3 21h35m6 0h4m2 0h1m29 0h4m6 0h19m11 0h6M5 22h33m5 0h5m2 0h1m29 0h5m5 0h20m9 0h7M7 23h31m4 0h6m2 0h1m29 0h6m4 0h21m7 0h8M9 24h29m3 0h7m2 0h1m29 0h7m3 0h22m5 0h9M11 25h37m2 0h1m29 0h32m5 0h9M13 26h35m2 0h1m29 0h32m5 0h9M15 27h33m2 0h1m29 0h32m5 0h9M17 28h31m32 0h32m5 0h9M19 29h30m30 0h33m5 0h9M21 30h41m4 0h46m5 0h9M23 31h10m62 0h17m5 0h9M25 32h7m64 0h16m5 0h9m-99 1h5m3 0h1m60 0h16m5 0h9m-97 1h3m2 0h1m61 0h16m5 0h9m-95 1h1m2 0h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m61 0h16m5 0h9m-92 1h1m65 0h1m1 0h1m1 0h8m5 0h9m-92 1h1m70 0h6m7 0h8m-92 1h1m70 0h5m9 0h7m-92 1h1m70 0h4m11 0h6m-92 1h1m70 0h4m11 0h6m-92 1h1m27 0h5m38 0h4m11 0h6m-92 1h1m32 0h3m50 0h6m-92 1h1m35 0h2m48 0h6m-92 1h1m37 0h2m46 0h6m-92 1h1m39 0h1m45 0h6m-92 1h1m40 0h1m29 0h4m11 0h6m-92 1h1m16 0h1m24 0h1m28 0h4m11 0h6m-92 1h1m16 0h1m24 0h1m28 0h4m11 0h6m-92 1h1m15 0h1m26 0h1m27 0h5m9 0h7m-92 1h1m15 0h1m26 0h1m27 0h6m7 0h8m-92 1h1m15 0h1m26 0h1m22 0h1m1 0h1m1 0h8m5 0h9m-92 1h1m16 0h1m24 0h1m19 0h16m5 0h9m-92 1h1m17 0h1m22 0h1m20 0h16m5 0h9m-92 1h1m18 0h1m20 0h1m21 0h16m5 0h9m-92 1h1m19 0h1m7 0h4m7 0h1m22 0h16m5 0h9m-92 1h1m20 0h1m4 0h8m4 0h1m24 0h15m5 0h9m-92 1h1m21 0h1m2 0h4m2 0h4m2 0h1m27 0h13m5 0h9m-92 1h1m22 0h6m2 0h6m30 0h11m5 0h9m-92 1h1m23 0h12m33 0h9m5 0h9m-92 1h1m70 0h7m5 0h9m-92 1h1m72 0h5m5 0h9m-92 1h1m74 0h3m5 0h9m-92 1h1m76 0h1m5 0h9m-92 1h1m82 0h9m-92 1h1m82 0h9m-92 1h1m82 0h9m-92 1h1m84 0h7m-92 1h1m86 0h5m-92 1h1m88 0h3m-92 1h1m90 0h1m-92 1h1m-1 1h1m-5 1h2m2 0h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1"] ["#a8a890" "M49 8h30M48 9h2m28 0h2m-32 1h1m3 0h1m3 0h4m10 0h4m2 0h2m-40 1h3m7 0h1m2 0h1m2 0h2m4 0h1m7 0h2m4 0h2m1 0h1m9 0h3m-52 1h2m1 0h1m6 0h1m4 0h1m4 0h2m1 0h1m5 0h1m4 0h2m1 0h1m1 0h1m8 0h1m-49 1h1m2 0h2m5 0h1m3 0h1m1 0h1m5 0h1m1 0h1m3 0h1m1 0h1m5 0h1m1 0h2m7 0h2m-49 1h1m1 0h1m1 0h2m4 0h1m3 0h1m9 0h1m3 0h1m9 0h2m7 0h1m1 0h1m1 0h1m-52 1h1m4 0h2m3 0h1m3 0h1m9 0h1m3 0h1m1 0h1m7 0h2m6 0h1m-47 1h1m1 0h1m3 0h1m1 0h3m5 0h2m6 0h3m3 0h2m6 0h2m9 0h1m1 0h1m-52 1h1m5 0h1m1 0h1m1 0h1m7 0h1m4 0h3m1 0h1m4 0h1m4 0h3m6 0h1m-47 1h1m4 0h1m4 0h1m7 0h7m3 0h1m3 0h6m1 0h1m7 0h1m21 0h3m6 0h6m-84 1h2m2 0h1m5 0h1m12 0h1m5 0h1m9 0h1m8 0h1m1 0h1m30 0h2m-83 1h2m1 0h1m2 0h1m3 0h1m11 0h1m3 0h1m3 0h1m8 0h1m5 0h1m34 0h2m-82 1h2m3 0h1m4 0h1m19 0h1m8 0h1m6 0h1m32 0h2m-77 1h1m5 0h1m22 0h2m4 0h1m7 0h1m30 0h2m-77 1h1m6 0h1m8 0h1m9 0h1m4 0h2m3 0h1m8 0h1m26 0h4m-79 1h3m7 0h1m22 0h3m3 0h1m9 0h3m25 0h1m-68 1h1m22 0h3m3 0h1m37 0h1m-68 1h1m3 0h1m18 0h3m2 0h2m37 0h1m-68 1h1m2 0h1m1 0h3m1 0h1m9 0h1m4 0h4m1 0h1m37 0h1m-68 1h2m65 0h1m-1 1h1m-1 1h1m-83 1h62m20 0h1m-84 1h1m61 0h1m20 0h1m-84 1h1m82 0h1m-84 1h1m3 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m22 0h1m-84 1h1m2 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m23 0h1m-84 1h1m82 0h1m-84 1h1m82 0h1m-84 1h1m82 0h1m-84 1h1m6 0h1m15 0h26m34 0h1m-84 1h1m6 0h1m15 0h1m24 0h1m7 0h1m26 0h1m-84 1h1m22 0h1m24 0h1m7 0h1m26 0h1m-84 1h1m22 0h1m24 0h1m34 0h1m-84 1h1m3 0h1m13 0h1m4 0h1m24 0h1m11 0h1m22 0h1m-84 1h1m2 0h1m14 0h1m1 0h1m2 0h1m24 0h1m10 0h1m23 0h1m-84 1h1m17 0h1m1 0h2m1 0h1m24 0h1m34 0h1m-84 1h1m17 0h1m1 0h2m1 0h1m24 0h1m34 0h1m-84 1h1m17 0h1m1 0h2m1 0h1m24 0h1m34 0h1m-84 1h1m17 0h1m1 0h1m2 0h26m16 0h3m1 0h1m1 0h1m11 0h1m-84 1h1m17 0h1m1 0h1m43 0h2m6 0h1m10 0h1m-84 1h1m9 0h1m7 0h1m2 0h1m43 0h3m1 0h1m1 0h1m8 0h1m2 0h2m-85 1h1m3 0h1m15 0h2m38 0h1m4 0h1m15 0h1m1 0h1m2 0h1m-87 1h1m2 0h1m8 0h1m3 0h1m1 0h4m37 0h1m5 0h1m12 0h1m3 0h1m-83 1h1m13 0h1m3 0h2m18 0h2m25 0h1m12 0h1m5 0h1m-85 1h1m11 0h7m21 0h2m23 0h1m12 0h1m5 0h1m-85 1h1m41 0h1m22 0h3m1 0h1m1 0h1m2 0h1m3 0h1m5 0h1m-85 1h1m42 0h1m30 0h2m2 0h1m5 0h1m-85 1h1m29 0h4m10 0h1m33 0h1m5 0h1m-85 1h1m26 0h3m2 0h1m1 0h3m8 0h1m32 0h1m5 0h1m-85 1h1m3 0h1m20 0h2m5 0h1m4 0h2m7 0h1m13 0h1m17 0h1m3 0h1m-83 1h1m2 0h1m20 0h1m11 0h1m2 0h1m6 0h1m12 0h1m21 0h2m3 0h1m-87 1h1m22 0h1m16 0h1m6 0h1m32 0h2m1 0h1m-84 1h1m21 0h1m18 0h1m5 0h1m32 0h1m2 0h2m-85 1h1m22 0h1m16 0h1m6 0h1m35 0h1m-84 1h1m45 0h2m35 0h1m-84 1h1m44 0h2m36 0h1m-84 1h1m43 0h2m37 0h1m-84 1h1m3 0h1m38 0h2m15 0h1m22 0h1m-84 1h1m2 0h1m38 0h2m15 0h1m23 0h1m-90 1h1m5 0h1m31 0h1m8 0h2m40 0h1m-84 1h1m39 0h2m41 0h1m-92 1h2m6 0h1m38 0h2m42 0h1m-93 1h1m8 0h1m37 0h2m43 0h1m-93 1h1m8 0h1m27 0h11m44 0h1m-93 1h1m8 0h1m82 0h1m-93 1h1m8 0h1m3 0h1m55 0h1m22 0h1m-84 1h1m2 0h1m55 0h1m23 0h1m-84 1h1m82 0h1m-86 1h3m66 0h2m14 0h1m-87 1h1m2 0h1m63 0h2m17 0h1m-97 1h2m1 0h7m1 0h3m66 0h2m2 0h2m10 0h1m-97 1h1m10 0h3m66 0h2m1 0h1m2 0h1m9 0h1m-96 1h1m1 0h7m3 0h1m71 0h1m10 0h1m-96 1h1m1 0h7m3 0h1m3 0h1m55 0h1m9 0h1m12 0h1m-84 1h1m2 0h1m55 0h1m23 0h1M12 85h8m9 0h1m2 0h1m69 0h1m3 0h2m7 0h1M11 86h1m18 0h3m71 0h1m10 0h1M10 87h1m9 0h1m1 0h7m1 0h3m67 0h1m3 0h1m-95 1h1m2 0h6m1 0h1m1 0h7m1 0h3m67 0h1m5 0h8M10 89h1m2 0h1m16 0h3m67 0h1m5 0h2m-98 1h1m2 0h1m1 0h4m13 0h1m-23 1h1m2 0h1m1 0h1m16 0h1m3 0h1m55 0h1m-83 1h1m2 0h1m1 0h1m16 0h1m2 0h1m55 0h1m-82 1h2m3 0h1m4 0h1m1 0h7m3 0h1m-1 1h1m-3 1h3m-1 1h1m-1 1h1m-1 1h1m-1 1h1m3 0h1m55 0h1m-61 1h1m2 0h1m55 0h1m22 0h1m-83 1h1m81 0h1m-83 1h1m81 0h1m-83 1h1m81 0h1m-83 1h1m81 0h1m-83 1h1m38 0h11m32 0h1m-83 1h1m15 0h1m5 0h1m5 0h1m5 0h1m3 0h1m11 0h1m30 0h1m-82 1h1m3 0h1m11 0h2m4 0h2m4 0h2m4 0h2m2 0h1m11 0h2m8 0h1m15 0h1m1 0h1m1 0h1m-81 1h1m2 0h1m12 0h2m4 0h2m4 0h2m4 0h2m2 0h1m11 0h2m7 0h1m4 0h1m6 0h1m1 0h1m1 0h1m-76 1h1m12 0h5m1 0h5m1 0h5m1 0h5m3 0h13m-52 1h1m13 0h4m2 0h4m2 0h4m2 0h4m2 0h1m11 0h2m-52 1h1m6 0h1m30 0h1m11 0h2m4 0h1m-57 1h1m6 0h1m30 0h1m11 0h2m4 0h1m-57 1h1m37 0h14m-52 1h1m38 0h13m-52 1h1m3 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m-61 1h1m2 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m-60 1h1m-1 1h1m-1 1h1"] ["#f8f8e8" "M50 9h28m-29 1h1m25 0h1m-27 1h1m6 0h1m13 0h1m-22 1h1m4 0h2m12 0h2m-21 1h1m3 0h1m2 0h1m10 0h1m2 0h1m-22 1h1m-11 1h1m1 0h1m7 0h1m36 0h1m1 0h1m-50 1h1m1 0h2m6 0h1m35 0h2m1 0h1m-48 1h1m5 0h1m1 0h1m36 0h1m-38 1h1m13 0h1m49 0h1m-65 1h1m13 0h1m-15 1h1m12 0h2m-15 1h1m-1 1h1m-1 1h1m12 0h3m-16 1h1m-1 1h1m-1 1h1m1 0h1m23 0h1m-27 1h1m12 0h3m-31 5h60m-61 1h2m-2 1h1m1 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m-59 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m6 0h1m-8 1h1m22 0h24m7 0h1m-55 1h1m22 0h24m-47 1h1m22 0h24m-47 1h1m1 0h1m6 0h8m6 0h24m11 0h1m-59 1h1m8 0h1m13 0h24m-47 1h1m8 0h1m13 0h24m-47 1h1m8 0h1m13 0h24m-47 1h1m8 0h1m13 0h24m-47 1h1m8 0h1m-10 1h1m8 0h1m-10 1h1m-1 1h1m1 0h1m8 0h1m3 0h1m42 0h1m-59 1h1m77 0h2m-80 1h1m27 0h1m36 0h2m1 0h1m1 0h1m7 0h1m1 0h1m-81 1h1m24 0h1m52 0h1m-79 1h1m22 0h1m4 0h6m41 0h1m2 0h1m-79 1h1m20 0h1m3 0h12m41 0h1m-79 1h1m22 0h6m4 0h6m39 0h1m-79 1h1m20 0h5m3 0h2m1 0h1m3 0h5m37 0h1m1 0h1m-81 1h1m1 0h1m17 0h4m2 0h5m1 0h4m2 0h4m16 0h1m19 0h2m-80 1h1m19 0h3m1 0h11m1 0h2m1 0h3m-42 1h1m18 0h3m1 0h16m1 0h3m-43 1h1m18 0h2m1 0h18m1 0h2m-43 1h1m18 0h3m1 0h16m1 0h3m-43 1h1m19 0h22m-42 1h1m20 0h20m-41 1h1m21 0h7m4 0h7m-40 1h1m1 0h1m20 0h4m8 0h4m19 0h1m-59 1h1m23 0h2m10 0h2m-38 1h1m29 0h1m-40 1h1m8 0h1m-1 1h1m-10 1h1m8 0h1m-10 1h1m8 0h1m-10 1h1m8 0h1m-10 1h1m8 0h1m1 0h1m55 0h1m-59 1h1m-10 1h1m8 0h1m-10 1h1m8 0h1m-10 1h1m8 0h1m-1 1h1m-1 1h1m-1 1h1m-4 1h2m1 0h1m1 0h1m55 0h1m6 0h3m-68 1h1m69 0h2m-85 1h1m1 0h7m4 0h1m-1 1h1m-21 1h6m14 0h1m-22 1h1m20 0h1m-22 1h1m20 0h1m-22 1h1m20 0h1m-22 1h1m20 0h1m1 0h1m55 0h1m-80 1h1m20 0h1m-1 1h1m-1 1h1m-1 1h1m77 0h7m-85 1h1m77 0h1m-79 1h1m77 0h1m-79 1h1m77 0h1m-79 1h1m1 0h1m55 0h1m19 0h1m-79 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m11 0h2m4 0h2m4 0h2m4 0h2m6 0h10m-48 1h1m1 0h1m9 0h2m4 0h2m4 0h2m4 0h2m6 0h1m19 0h1m-59 1h1m-1 1h1m-1 1h1m37 0h10m-48 1h1m6 0h1m30 0h1m15 0h1m-55 1h1m-1 1h1m-1 1h1m-1 1h1m1 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m-59 1h1m-1 1h1"] ["#c8c8c0" "M51 10h1m1 0h3m4 0h10m4 0h1m-22 1h1m3 0h1m3 0h7m3 0h1m-21 1h2m9 0h5m9 0h1m11 0h1m-50 1h1m11 0h1m11 0h3m22 0h1m-50 1h1m1 0h1m9 0h1m1 0h1m9 0h3m1 0h1m18 0h1m1 0h1m-49 1h1m1 0h1m8 0h1m1 0h1m9 0h3m1 0h1m17 0h1m1 0h1m1 0h1m-47 1h1m7 0h2m12 0h2m17 0h1m-46 1h1m2 0h2m7 0h3m12 0h2m14 0h1m2 0h1m2 0h1m-50 1h1m1 0h2m8 0h5m11 0h3m6 0h1m9 0h1m1 0h1m17 0h1m3 0h3m1 0h2m6 0h1m-82 1h1m9 0h10m1 0h1m5 0h9m30 0h2m8 0h2m2 0h1m-71 1h9m1 0h1m7 0h8m31 0h2m6 0h2m2 0h1m-70 1h9m9 0h8m32 0h2m5 0h1m2 0h1m-69 1h6m16 0h4m33 0h2m3 0h1m2 0h1m-68 1h5m3 0h3m3 0h2m7 0h3m34 0h2m4 0h1m-67 1h6m17 0h3m35 0h3m1 0h1m-66 1h6m17 0h3m35 0h1m3 0h1m-64 1h4m17 0h1m37 0h1m3 0h1m-58 1h3m3 0h2m45 0h1m3 0h1m-5 1h1m3 0h1m-5 1h1m3 0h1m-5 1h1m3 0h1m-5 1h1m3 0h1m-84 1h1m78 0h1m3 0h1m-81 1h57m19 0h1m3 0h1m-80 1h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m21 0h1m3 0h1m-80 1h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m21 0h1m3 0h1m-82 1h58m19 0h1m3 0h1m-82 1h58m19 0h1m3 0h1m-82 1h3m3 0h52m19 0h1m3 0h1m-82 1h3m4 0h13m26 0h6m3 0h3m19 0h1m3 0h1m-82 1h3m2 0h1m1 0h13m26 0h5m4 0h3m19 0h1m3 0h1m-82 1h3m3 0h14m26 0h5m1 0h1m2 0h3m19 0h1m3 0h1m-82 1h20m26 0h6m3 0h3m19 0h1m3 0h1m-80 1h5m10 0h3m26 0h10m21 0h1m3 0h1m-80 1h5m1 0h7m3 0h2m26 0h10m21 0h1m3 0h1m-82 1h7m1 0h7m4 0h1m26 0h12m19 0h1m3 0h1m-82 1h7m1 0h7m4 0h1m26 0h12m19 0h1m3 0h1m-82 1h7m1 0h7m4 0h1m26 0h12m19 0h1m3 0h1m-82 1h7m1 0h7m4 0h1m26 0h12m19 0h1m3 0h1m-82 1h7m1 0h7m4 0h39m5 0h2m1 0h1m1 0h1m8 0h1m3 0h1m-82 1h7m2 0h1m1 0h1m1 0h1m5 0h39m20 0h1m-77 1h5m12 0h37m7 0h2m1 0h1m1 0h1m6 0h1m3 0h1m-78 1h6m11 0h7m6 0h24m7 0h2m1 0h1m1 0h1m12 0h2m-83 1h8m9 0h6m14 0h21m19 0h1m2 0h1m-81 1h9m7 0h5m18 0h19m5 0h2m1 0h1m1 0h1m8 0h2m1 0h1m-81 1h19m21 0h18m14 0h1m4 0h2m1 0h1m-81 1h18m23 0h17m15 0h1m3 0h2m1 0h1m-81 1h17m25 0h16m19 0h2m1 0h1m-81 1h16m27 0h15m19 0h1m2 0h1m-79 1h13m29 0h12m25 0h2m-81 1h13m29 0h12m19 0h1m-76 1h14m31 0h13m21 0h1m-80 1h14m31 0h13m20 0h2m-80 1h14m31 0h13m19 0h2m2 0h1m-82 1h15m30 0h13m19 0h1m3 0h1m-82 1h16m28 0h14m19 0h1m3 0h1m-82 1h17m26 0h15m19 0h1m3 0h1m-80 1h16m24 0h14m21 0h1m3 0h1m-80 1h17m22 0h15m21 0h1m3 0h1m-93 1h2m9 0h20m20 0h18m19 0h1m3 0h1m-94 1h1m11 0h21m7 0h1m10 0h19m19 0h1m3 0h1m-94 1h1m11 0h22m16 0h20m19 0h1m3 0h1m-82 1h23m14 0h21m19 0h1m3 0h1m-82 1h25m11 0h22m19 0h1m3 0h1m-82 1h58m19 0h1m3 0h1m-80 1h54m21 0h1m3 0h1m-94 1h1m13 0h54m21 0h1m3 0h1m-94 1h1m11 0h58m19 0h1m3 0h1m-94 1h1m11 0h58m19 0h1m3 0h1m-94 1h1m7 0h1m3 0h58m6 0h2m11 0h1m3 0h1m-82 1h58m19 0h1m3 0h1m-95 1h7m6 0h58m10 0h2m7 0h1m3 0h1m-87 1h2m3 0h58m6 0h2m11 0h1m3 0h1m-80 1h54m5 0h2m5 0h2m7 0h1m3 0h1m-97 1h1m1 0h7m1 0h2m5 0h54m8 0h2m1 0h1m8 0h2m3 0h1m-82 1h58m6 0h2m2 0h2m3 0h4m4 0h1M12 86h7m1 0h1m1 0h7m6 0h58m6 0h2m15 0h1M11 87h2m22 0h58m22 0h1M11 88h1m23 0h58m21 0h2M11 89h1m23 0h58m15 0h6M11 90h1m23 0h58m-82 1h1m25 0h54m-80 1h1m25 0h54m-79 1h1m22 0h58m-58 1h58m-58 1h58m-58 1h58m19 0h5m-82 1h58m19 0h1m3 0h1m-82 1h58m19 0h1m3 0h1m-80 1h54m21 0h2m1 0h2m-80 1h54m-56 1h58m-58 1h58m-58 1h58m-58 1h58m-58 1h9m4 0h2m4 0h2m4 0h2m4 0h5m11 0h11m-58 1h9m5 0h1m5 0h1m5 0h1m5 0h3m13 0h10m-56 1h7m24 0h2m2 0h9m3 0h7m-54 1h7m24 0h2m14 0h7m-56 1h10m5 0h1m5 0h1m5 0h1m5 0h3m13 0h9m-58 1h3m3 0h5m4 0h2m4 0h2m4 0h2m4 0h2m14 0h3m3 0h3m-58 1h3m4 0h28m2 0h9m3 0h2m4 0h3m-58 1h3m2 0h1m1 0h28m14 0h2m1 0h1m2 0h3m-58 1h3m3 0h29m14 0h3m3 0h3m-58 1h36m13 0h9m-56 1h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m-54 1h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m2 0h6m-58 2h1"] ["#686850" "M78 10h1m-27 1h1m5 0h2m12 0h2m2 0h1m1 0h1m-39 1h1m37 0h1m8 0h1m1 0h1m-50 1h1m16 0h1m1 0h1m11 0h1m1 0h1m4 0h1m8 0h1m1 0h1m-35 1h4m1 0h1m8 0h4m1 0h1m3 0h1m5 0h1m-31 1h1m1 0h2m1 0h2m9 0h2m1 0h2m3 0h1m4 0h1m-39 1h1m12 0h2m1 0h1m10 0h2m1 0h1m2 0h1m1 0h4m-44 1h1m4 0h1m11 0h2m1 0h1m3 0h1m6 0h2m1 0h1m3 0h1m1 0h1m2 0h1m3 0h1m1 0h1m-50 1h1m3 0h1m1 0h2m16 0h1m13 0h1m1 0h2m1 0h1m3 0h1m1 0h1m-50 1h1m2 0h2m19 0h2m12 0h1m4 0h2m2 0h1m1 0h1m-50 1h1m1 0h2m21 0h2m11 0h1m5 0h2m1 0h1m1 0h1m-50 1h3m17 0h8m10 0h1m6 0h5m-52 1h4m15 0h14m7 0h1m7 0h4m-52 1h3m15 0h1m1 0h1m9 0h4m6 0h1m8 0h3m-12 1h1m-1 1h1m-1 1h1m-27 1h1m3 0h1m1 0h1m9 0h4m4 0h1m1 0h1m-29 1h7m14 0h7m-29 1h1m13 1h1m31 2h1m-2 1h1m-1 1h1m-59 1h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m1 0h1m-1 1h1m-1 1h1m-56 1h2m53 0h1m-54 1h1m45 0h2m5 0h1m-54 1h1m44 0h1m7 0h1m-56 1h2m45 0h1m7 0h1m-8 1h2m5 0h1m-44 1h1m42 0h1m-59 1h1m14 0h1m40 0h1m1 0h1m-44 1h1m42 0h1m-44 1h1m42 0h1m-44 1h1m42 0h1m-44 1h1m42 0h1m1 0h1m-46 1h1m42 0h1m5 0h1m1 0h1m8 0h1m5 0h1m-75 1h1m1 0h1m1 0h1m1 0h1m1 0h1m42 0h1m1 0h1m7 0h1m5 0h1m7 0h1m-77 1h2m1 0h3m1 0h3m42 0h1m1 0h1m7 0h1m6 0h2m3 0h2m-82 1h1m6 0h1m1 0h3m1 0h1m11 0h6m25 0h1m1 0h1m1 0h1m7 0h1m8 0h1m1 0h1m2 0h1m-76 1h3m1 0h3m8 0h3m6 0h3m24 0h1m1 0h1m7 0h1m13 0h1m-63 1h2m3 0h6m3 0h2m22 0h1m1 0h1m7 0h5m9 0h1m-65 1h2m2 0h3m6 0h3m2 0h2m20 0h1m1 0h1m7 0h2m12 0h1m-66 1h1m2 0h2m12 0h2m2 0h1m19 0h1m1 0h1m7 0h1m13 0h1m-67 1h1m1 0h2m16 0h2m1 0h1m18 0h1m1 0h4m1 0h1m1 0h2m1 0h3m9 0h1m-68 1h1m1 0h1m20 0h1m1 0h1m17 0h1m4 0h1m4 0h1m13 0h1m-69 1h1m1 0h1m22 0h1m1 0h1m16 0h1m4 0h1m4 0h1m8 0h1m1 0h1m2 0h1m-83 1h1m13 0h1m1 0h1m22 0h1m1 0h1m14 0h1m1 0h1m1 0h4m1 0h1m1 0h2m6 0h2m2 0h3m-69 1h1m1 0h1m24 0h1m1 0h1m15 0h1m1 0h1m7 0h1m5 0h1m5 0h1m1 0h1m-70 1h1m1 0h1m24 0h1m1 0h1m15 0h1m1 0h4m1 0h1m1 0h2m6 0h1m5 0h1m-69 1h1m1 0h1m24 0h1m1 0h1m15 0h1m1 0h4m1 0h1m1 0h1m-54 1h1m1 0h1m22 0h1m1 0h1m16 0h1m-44 1h1m1 0h1m20 0h1m1 0h1m17 0h1m-43 1h1m1 0h1m7 0h4m7 0h1m1 0h1m18 0h1m-42 1h1m1 0h1m4 0h2m4 0h2m4 0h1m1 0h1m19 0h1m-59 1h1m17 0h1m1 0h1m2 0h1m8 0h1m2 0h1m1 0h1m18 0h1m1 0h1m-40 1h1m1 0h2m10 0h2m1 0h1m21 0h1m-68 1h1m28 0h1m7 0h1m6 0h1m22 0h1m-68 1h1m29 0h1m12 0h1m23 0h1m-69 1h2m30 0h12m24 0h1m-69 1h2m66 0h1m-69 1h2m66 0h1m-69 1h2m66 0h1m-71 1h2m1 0h1m8 0h1m55 0h1m1 0h1m-68 1h1m66 0h1m-68 1h1m66 0h1m1 0h2m-71 1h1m66 0h1m6 0h1m-73 1h1m64 0h1m1 0h2m4 0h1m-82 1h1m7 0h1m64 0h1m1 0h2m3 0h1m-83 1h1m1 0h1m7 0h1m64 0h1m7 0h1m2 0h1m-87 1h1m1 0h1m7 0h1m64 0h1m10 0h1m-87 1h1m1 0h1m7 0h1m6 0h1m55 0h1m1 0h1m1 0h1m4 0h1m3 0h1m-85 1h1m72 0h1m1 0h1m4 0h1m3 0h1m-87 1h1m1 0h1m7 0h1m64 0h1m1 0h1m5 0h1m2 0h1m-87 1h1m1 0h1m7 0h1m64 0h1m1 0h2m4 0h1m2 0h1m-87 1h1m1 0h1m7 0h1m64 0h1m1 0h2m4 0h4m-92 1h7m1 0h7m65 0h1m1 0h2m7 0h1m-92 1h1m4 0h2m9 0h2m62 0h1m10 0h1m-92 1h1m4 0h2m1 0h7m65 0h1m7 0h3m-91 1h1m4 0h2m1 0h7m7 0h1m55 0h1m1 0h1m7 0h3m-92 1h2m4 0h1m1 0h1m8 0h2m62 0h1m7 0h1m-84 1h13m62 0h1m1 0h5m1 0h4m-87 1h2m1 0h8m64 0h1m1 0h1m5 0h3m-76 1h3m62 0h1m1 0h6m15 0h1m-88 1h2m62 0h1m1 0h5m16 0h1m-24 1h1m19 0h1m2 0h1m-24 1h1m19 0h1m2 0h1m-82 1h1m55 0h1m1 0h1m16 0h3m1 0h2m-23 1h1m-1 1h1m-1 1h1m-1 1h1m-51 1h4m2 0h4m2 0h4m2 0h4m28 0h1m-51 1h1m2 0h1m2 0h1m2 0h1m2 0h1m2 0h1m2 0h1m2 0h1m15 0h1m12 0h1m-51 1h1m2 0h1m2 0h1m2 0h1m2 0h1m2 0h1m2 0h1m2 0h1m15 0h1m12 0h1m1 0h2m11 0h1m1 0h1m-76 1h1m7 0h4m2 0h4m2 0h4m2 0h4m5 0h11m10 0h1m1 0h1m2 0h1m3 0h2m1 0h1m1 0h1m-13 1h1m1 0h2m2 0h1m-62 1h2m40 0h1m5 0h2m5 0h1m2 0h1m-57 1h1m39 0h1m4 0h1m7 0h1m1 0h2m-57 1h1m29 0h11m4 0h1m7 0h1m-56 1h2m46 0h2m5 0h1m-1 1h1m-84 1h5m78 0h1m-80 1h2m19 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m7 0h1m1 0h1m-2 1h2m-61 1h60m-61 1h1"] ["gray" "M53 16h1m13 0h1m-14 1h2m12 0h2m11 0h1m0 1h1m1 0h1m0 1h1m0 1h1m1 0h1m20 31h1m9 0h1m-11 1h1m9 0h1m-11 1h1m7 0h1m1 0h1m-11 1h1m7 0h1m1 0h1m-11 1h1m7 0h1m1 0h1m-23 1h3m1 0h1m1 0h1m5 0h1m7 0h1m1 0h1m-11 1h1m7 0h1m1 0h1m-11 1h1m7 0h1m1 0h1m-11 1h1m9 0h1m-11 1h1m9 0h1m-23 1h3m1 0h1m1 0h1m-6 19h1m-1 1h1m-3 1h2m5 0h1m-7 2h1m-1 1h1m-1 1h1m5 0h1m-6 1h2m3 0h1m10 0h1m-17 1h2m-2 1h2m3 4h2m-8 2h4m-91 19h6m0 1h1m79 1h30m-30 1h30m-30 1h30"] ["#f0f0f0" "M109 19h8m-7 1h6m-5 1h5m-4 1h3m-2 3h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-1 1h1m-1 13h1m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-2 1h2m-3 1h3m-9 1h9m-9 1h8"] ["#f0f8e0" "M2 21h1m-1 1h3m-3 1h5m-5 1h7m-7 1h9m-9 1h11M2 27h13M2 28h15M2 29h17M2 30h19M2 31h21M2 32h23M2 33h25M2 34h27M2 35h29M2 36h30M2 37h30M2 38h30M2 39h30M2 40h30M2 41h30M2 42h30M2 43h30M2 44h30M2 45h30M2 46h30M2 47h30M2 48h30M2 49h30M2 50h30M2 51h30M2 52h30M2 53h30M2 54h30m27 0h2M2 55h30m25 0h1M2 56h30m23 0h1M2 57h30m21 0h1M2 58h30m20 0h1M2 59h30M2 60h30M2 61h30M2 62h30M2 63h30M2 64h30M2 65h30M2 66h30M2 67h30M2 68h30m64 0h1M2 69h22m3 0h5m64 0h3M2 70h21m5 0h4m64 0h5M2 71h21m5 0h4m64 0h7M2 72h21m5 0h4m64 0h9M2 73h21m5 0h4m64 0h11M2 74h21m5 0h4m64 0h13M2 75h21m5 0h4m64 0h15M2 76h21m5 0h4m64 0h16M2 77h21m5 0h4m64 0h16M2 78h21m5 0h2m71 0h11M2 79h21m5 0h1m73 0h10m5 0h2M2 80h17m2 0h1m83 0h7m5 0h4M2 81h17m87 0h6m5 0h6M2 82h17m87 0h6m5 0h8M2 83h17m87 0h6m5 0h9M2 84h17m87 0h5m6 0h9M2 85h10m105 0h9M2 86h9m106 0h9M2 87h8m106 0h10M2 88h8m106 0h10M2 89h8m104 0h12M2 90h8m96 0h20M2 91h8m6 0h3m87 0h20M2 92h8m6 0h3m87 0h20M2 93h8m6 0h3m87 0h20M2 94h17m87 0h20M2 95h17m2 0h1m83 0h6m8 0h7M2 96h27m73 0h9m8 0h7M2 97h28m71 0h10m8 0h7M2 98h30m64 0h15m8 0h7M2 99h30m64 0h15m8 0h7M2 100h30m64 0h15m8 0h7M2 101h30m64 0h15m8 0h7M2 102h30m64 0h18m1 0h11M2 103h30m64 0h18m1 0h11"] ["#a0a880" "M93 33h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-41 1h1m39 0h1m-41 1h1m39 0h1m-42 1h1m40 0h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m4 0h1m-6 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m2 0h30m-33 1h1m2 0h30m-33 1h1m-60 1h59m3 2h30m-90 1h90"] ["#f828f8" "M25 70h2m-2 2h1m-1 1h1m-1 1h1m-1 1h1m-1 3h2m-2 1h2"] ["#a870d0" "M25 77h2"] ["#f8f8f8" "M30 79h1m-11 2h1"] ["#b0b890" "M98 79h1m-1 3h1m-1 2h1m-1 1h1m-1 1h1m19 10h1m-1 1h1m-1 1h1m-1 1h1m-1 1h1m-7 1h2m1 0h4m-23 11h30m-30 1h30m-93 7h3m0 1h90m-87 1h87"] ["#c8d0a8" "M118 95h1m-8 6h1M2 104h30m64 0h18m1 0h11M2 105h30m64 0h18m1 0h11M2 106h30m64 0h17m1 0h12M2 107h30m66 0h10m5 0h13M2 108h30m66 0h3m7 0h18M2 109h30m69 0h25M2 110h30m66 0h28M2 111h30m66 0h28M2 112h30m-30 1h30m-30 1h8m6 0h16m-30 1h7m8 0h15m-30 1h7m8 0h15m-30 1h8m6 0h16m-30 1h30m-30 1h30m-30 1h31m-31 1h34m-34 1h37m-37 1h124M2 124h124M2 125h124"]] :crown1 [["#e0e8c0" "M5 0h1M3 1h6M3 2h2"] ["#a8a890" "M6 0h3M9 1h2M2 2h1M11 2h1M12 3h1M12 4h1M0 5h1M4 5h3"] ["#f8f8e8" "M5 2h4M3 3h7M3 4h7"] ["#c8c8c0" "M9 2h2M1 3h2M10 3h2M1 4h2M10 4h2"] ["#686850" "M1 5h1M9 5h2M13 5h1"] ["#808080" "M2 5h2M7 5h2"] ["#000000" "M11 5h2"]] :crown2 [["#e0e8c0" "M4 0h2M3 1h3M3 2h2"] ["#a8a890" "M6 0h3M9 1h2M2 2h1M11 2h1M12 3h1M12 4h1M0 5h1M4 5h3"] ["#f8f800" "M6 1h3M5 2h1M9 2h1M4 3h1M10 3h1M4 4h1M10 4h1"] ["#00f8f8" "M6 2h3M5 3h2M8 3h2M5 4h2M8 4h2"] ["#c8c8c0" "M10 2h1M1 3h2M11 3h1M1 4h2M11 4h1"] ["#f8f8e8" "M3 3h1M3 4h1"] ["#f800d8" "M7 3h1M7 4h1"] ["#686850" "M1 5h1M9 5h2M13 5h1"] ["#808080" "M2 5h2M7 5h2"] ["#000000" "M11 5h2"]] :crown3 [["#e0e8c0" "M4 0h2M3 1h3M3 2h2"] ["#a8a890" "M6 0h3M9 1h2M2 2h1M11 2h1M12 3h1M12 4h1M0 5h1M4 5h3"] ["#f8f800" "M6 1h3M5 2h1M9 2h1M4 3h1M7 3h1M10 3h1M4 4h1M7 4h1M10 4h1"] ["#f800d8" "M6 2h3M5 3h2M8 3h2M5 4h2M8 4h2"] ["#c8c8c0" "M10 2h1M1 3h2M11 3h1M1 4h2M11 4h1"] ["#f8f8e8" "M3 3h1M3 4h1"] ["#686850" "M1 5h1M9 5h2M13 5h1"] ["#808080" "M2 5h2M7 5h2"] ["#000000" "M11 5h2"]]}) (defn sharp-symbol [x y scale] [:path {:transform (str "scale(" scale ") translate(" x "," y ")") :stroke "black" :d "M15 46C15 47 14 47 13 47 13 47 12 47 12 46V37L7 39V49C7 49 6 50 6 50 5 50 5 49 5 49V40L3 40C3 40 2 40 2 40 2 40 1 40 1 39V35C1 35 1 34 2 34L5 33V23L3 24C3 24 2 24 2 24 2 24 1 23 1 23V19C1 19 1 18 2 18L5 17V7C5 6 5 6 6 6 6 6 7 6 7 7V16L12 14V4C12 4 13 3 13 3 14 3 15 4 15 4V13L17 13C17 12 17 12 17 12 18 12 18 13 18 14V17C18 18 18 18 17 19L15 20V30L17 29C17 29 17 29 17 29 18 29 18 29 18 30V34C18 34 18 35 17 35L15 36V46ZM7 22V32L12 31V21Z"}]) (defn sharp-button [x y scale] (let [sharp? (subscribe [:sharp?])] (fn [x y scale] (svg-paths {:on-mouse-over #(dispatch [:set-status "Sharp"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click #(do (dispatch [:sharp-toggle]) (music/play-sample 17 63))} (if @sharp? [["#f8f8f8" "M0 0h5M7 0h1M10 0h5M0 1h5M7 1h1M10 1h5M0 2h5M7 2h1M10 2h5M0 3h5M11 3h4M0 4h5M11 4h4M0 5h4M10 5h5M0 6h4M10 6h5M0 7h4M7 7h1M10 7h5M0 8h5M7 8h1M10 8h5M0 9h5M7 9h1M11 9h4M0 10h5M11 10h4M0 11h4M11 11h4M0 12h4M10 12h5M0 13h4M7 13h1M10 13h5M0 14h5M7 14h1M10 14h5M0 15h5M7 15h1M10 15h5M0 16h5M7 16h1M9 16h6"] ["#f8e8b8" "M5 0h2M9 0h1M6 1h1M9 1h1M6 2h1M9 2h1M6 3h2M7 6h1M9 6h1M4 7h1M6 7h1M9 7h1M6 8h1M9 8h1M6 9h1M9 13h1M6 14h1M9 14h1M6 15h1M9 15h1M6 16h1M8 16h1"] ["#000001" "M8 0h1M5 1h1M8 1h1M5 2h1M8 2h1M5 3h1M8 3h3M5 4h6M4 5h5M4 6h2M8 6h1M5 7h1M8 7h1M5 8h1M8 8h1M5 9h1M8 9h3M5 10h6M5 11h5M4 12h5M4 13h2M8 13h1M5 14h1M8 14h1M5 15h1M8 15h1M5 16h1"] ["#d09048" "M9 5h1M6 6h1M4 11h1M10 11h1M9 12h1M6 13h1"]] [["#808081" "M0 0h8M9 0h6M0 1h5M6 1h2M9 1h6M0 2h5M6 2h2M9 2h6M0 3h5M6 3h2M11 3h4M0 4h5M11 4h4M0 5h4M9 5h6M0 6h4M6 6h2M9 6h6M0 7h5M6 7h2M9 7h6M0 8h5M6 8h2M9 8h6M0 9h5M6 9h2M11 9h4M0 10h5M11 10h4M0 11h5M10 11h5M0 12h4M9 12h6M0 13h4M6 13h2M9 13h6M0 14h5M6 14h2M9 14h6M0 15h5M6 15h2M9 15h6M0 16h5M6 16h9"] ["#000001" "M8 0h1M5 1h1M8 1h1M5 2h1M8 2h1M5 3h1M8 3h3M5 4h6M4 5h5M4 6h2M8 6h1M5 7h1M8 7h1M5 8h1M8 8h1M5 9h1M8 9h3M5 10h6M5 11h5M4 12h5M4 13h2M8 13h1M5 14h1M8 14h1M5 15h1M8 15h1M5 16h1"]]) x y scale)))) (defn repeat-sign [x y scale] [:path {:transform (str "translate(" x "," y ") scale(" (* scale 1.5) "," scale ")") :pointer-events "none" :stroke "black" :d "M5 0h1M9 0h4M5 1h1M9 1h4M5 2h1M9 2h4M5 3h1M9 3h4M5 4h1M9 4h4M5 5h1M9 5h4M5 6h1M9 6h4M5 7h1M9 7h4M5 8h1M9 8h4M5 9h1M9 9h4M5 10h1M9 10h4M5 11h1M9 11h4M5 12h1M9 12h4M5 13h1M9 13h4M5 14h1M9 14h4M5 15h1M9 15h4M5 16h1M9 16h4M5 17h1M9 17h4M5 18h1M9 18h4M5 19h1M9 19h4M5 20h1M9 20h4M5 21h1M9 21h4M0 22h2M5 22h1M9 22h4M0 23h2M5 23h1M9 23h4M5 24h1M9 24h4M5 25h1M9 25h4M5 26h1M9 26h4M5 27h1M9 27h4M5 28h1M9 28h4M5 29h1M9 29h4M5 30h1M9 30h4M5 31h1M9 31h4M5 32h1M9 32h4M5 33h1M9 33h4M5 34h1M9 34h4M5 35h1M9 35h4M5 36h1M9 36h4M5 37h1M9 37h4M0 38h2M5 38h1M9 38h4M0 39h2M5 39h1M9 39h4M5 40h1M9 40h4M5 41h1M9 41h4M5 42h1M9 42h4M5 43h1M9 43h4M5 44h1M9 44h4M5 45h1M9 45h4M5 46h1M9 46h4M5 47h1M9 47h4M5 48h1M9 48h4M5 49h1M9 49h4M5 50h1M9 50h4M5 51h1M9 51h4M5 52h1M9 52h4M5 53h1M9 53h4M5 54h1M9 54h4M5 55h1M9 55h4M5 56h1M9 56h4M5 57h1M9 57h4M5 58h1M9 58h4M5 59h1M9 59h4M5 60h1M9 60h4M5 61h1M9 61h4"}]) (defn eval-all [s] (try (sci/eval-string s {:classes {'js goog/global :allow :all}}) (catch :default e (str e)))) (defn toolbar [x y] [:svg {:view-box "0 -0.5 140 30" :shape-rendering "crispEdges" :style {:cursor "url(images/hand.png),pointer"} :transform (str "scale(" 0.8 ") translate(" 15 "," -40 ")")} [:rect {:x x :y y :width 168 :height 19 :stroke "black" :stroke-width 0.2 :fill "#f8b0f8"}] ;; Clojure eval button [:g {:on-mouse-over #(dispatch [:set-status "Eval"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click #(do (dispatch [:set-notes (eval-all (str (some-> @!points .-state .-doc str)))]) (dispatch [:set-result (str (eval-all (str (some-> @!points .-state .-doc str))))]))} [:path {:transform (str "scale(" 0.07 ") translate(" 5 "," 5 ")") :d "M128 0a128 128 0 1 0 0 256 128 128 0 0 0 0-256" :fill "#ffffff"}] [:path {:transform (str "scale(" 0.07 ") translate(" 5 "," 5 ")") :d "M123 130a535 535 0 0 0-15 40 47 47 0 0 0-1 16 61 61 0 0 0 40 0l-4-4c-8-11-12-26-20-52M93 78a61 61 0 0 0-1 100c4-16 13-30 28-59l-3-7c-4-10-10-22-15-27l-9-7" :fill "#91dc47"}] [:path {:transform (str "scale(" 0.07 ") translate(" 5 "," 5 ")") :d "m181 198-20-4A73 73 0 0 1 80 73l-13-2c-22 1-44 13-54 45l-1 12a116 116 0 0 0 211 67 135 135 0 0 1-42 3" :fill "#63b132"}] [:path {:transform (str "scale(" 0.07 ") translate(" 5 "," 5 ")") :d "m160 176 4 2c15-12 25-30 25-50a61 61 0 0 0-80-58c12 14 18 35 24 57l5 14c3 8 8 18 13 25 3 5 6 9 9 10" :fill "#90b4fe"}] [:path {:transform (str "scale(" 0.07 ") translate(" 5 "," 5 ")") :d "M128 13c-39 0-73 19-94 48a62 62 0 0 1 64 0 74 74 0 0 1 103 67h1c0 21-9 39-22 53h10c13 0 27-3 37-11 7-6 13-15 16-27l1-15c0-64-52-115-116-115" :fill "#5881d8"}] [:text {:x 0 :y 28 :style {:font-size "0.3em"}} @(subscribe [:status])]] [undo-dog (+ x 3.8) (+ 0.4 y) 1] [redo-rabbit (+ x 7.7) (+ 0.48 y) 0.9] [eraser (+ x 72) (+ 2 y) 0.9] [sharp-button (+ x 89) (+ 2.1 y) 0.9] (svg-paths {:on-mouse-over #(dispatch [:set-status "Demo song"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click #(dispatch [:load-castle])} ghost (+ x 192) (+ 5 y) 0.5) (svg-paths {:on-mouse-over #(dispatch [:set-status "Demo: Zelda Theme"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click #(dispatch [:load-zelda])} zelda (+ x 227) (+ 4.5 y) 0.5) (svg-paths {:on-mouse-over #(dispatch [:set-status "Demo: Mega Man"]) :on-mouse-out #(dispatch [:set-status ""]) :on-click #(dispatch [:load-megaman])} megaman (+ x 192) (- y 2) 0.65)]) (defn current-note-display [x y scale] (let [current-note (subscribe [:instrument])] (fn [x y scale] [:g (svg-paths [["#000000" "M0 0h22M0 1h1M2 1h1M19 1h1M21 1h1M0 2h3M19 2h3M0 3h3M19 3h3M0 4h1M2 4h1M19 4h1M21 4h1M0 5h3M19 5h3M0 6h3M19 6h3M0 7h1M2 7h1M19 7h1M21 7h1M0 8h3M19 8h3M0 9h3M19 9h3M0 10h1M2 10h1M19 10h1M21 10h1M0 11h3M19 11h3M0 12h3M19 12h3M0 13h1M2 13h1M19 13h1M21 13h1M0 14h3M19 14h3M0 15h22"] ["#f8f8f8" "M1 1h1M3 1h16M20 1h1M3 2h16M3 3h16M1 4h1M3 4h16M20 4h1M3 5h16M3 6h16M1 7h1M3 7h16M20 7h1M3 8h16M3 9h16M1 10h1M3 10h16M20 10h1M3 11h16M3 12h16M1 13h1M3 13h16M20 13h1M3 14h16"]] x y scale) (case @current-note 1 [mario/mario-icon (- x 15) -1 0.18] 2 [mario/shroom (+ x 15) 1 0.18] 3 [mario/yoshi (+ x 15) 1 0.18] 4 [mario/star (+ x 15) 0 0.18] 5 [mario/flower (+ x 15) 0 0.18] 6 [mario/gb (+ x 17) 0 0.18] 7 [mario/dog (+ x 15) 2 0.18] 8 [mario/kitty (+ x 15) 2 0.18] 9 [mario/pig (+ x 15) 1 0.18] 10 [mario/swan (+ x 16) 0 0.18] 11 [mario/face (+ x 16) 0 0.18] 12 [mario/plane (+ x 15) 4 0.18] 13 [mario/boat (+ x 15) 4 0.18] 14 [mario/car (+ x 15) 4 0.18] 15 [mario/heart (+ x 17) 4 0.18])]))) (defn block [instrument x] (into [:g {:transform (str "translate(" x "," 1 ")") :on-click #(do (dispatch [:select-instrument instrument]) (music/play-sample instrument 64))}] (for [[color path] [["#000000" "M1 0h14M0 1h2M14 1h2M0 2h1M15 2h1M0 3h1M15 3h1M0 4h1M15 4h1M0 5h1M15 5h1M0 6h1M15 6h1M0 7h1M15 7h1M0 8h1M15 8h1M0 9h1M15 9h1M0 10h1M15 10h1M0 11h1M15 11h1M0 12h1M15 12h1M0 13h1M15 13h1M0 14h2M14 14h2M1 15h14"] ["#ffffff" "M2 1h12M1 2h14M1 3h14M1 4h14M1 5h14M1 6h14M1 7h14M1 8h14M1 9h14M1 10h14M1 11h14M1 12h14M1 13h14M2 14h12"]]] [:path {:stroke color :d path}]))) (defn note-blocks [] [:g#notes {:transform "scale(0.2) translate(-50,-0.5)"} [:g [block 1 128] [mario/mario-icon 133 0 0.8]] [:g [block 2 144] [mario/shroom 182 3 0.8]] [:g [block 3 160] [mario/yoshi 202 3 0.8]] [:g [block 4 176] [mario/star 222 3 0.8]] [:g [block 5 192] [mario/flower 242 3 0.8]] [:g [block 6 208] [mario/gb 264 3 0.8]] [:g [block 7 224] [mario/dog 282 4 0.8]] [:g [block 8 240] [mario/kitty 302 3 0.8]] [:g [block 9 256] [mario/pig 322 3 0.8]] [:g [block 10 272] [mario/swan 342 3 0.8]] [:g [block 11 288] [mario/face 372 3 0.78]] [:g [block 12 304] [mario/plane 382 6 0.8]] [:g [block 13 320] [mario/boat 402 4 0.8]] [:g [block 14 336] [mario/car 422 5 0.8]] [:g [block 15 352] [mario/heart 442 4 0.8]]]) ================================================ FILE: src/mecca/events.cljs ================================================ (ns mecca.events (:require [re-frame.core :refer [reg-event-db reg-event-fx dispatch subscribe]] [re-pressed.core :as rp] [reagent.core :as r] [mecca.sci-editor :as sci-editor :refer [!points points eval-result !result eval-all]] [day8.re-frame.undo :as undo :refer [undoable]] [mecca.mario :as mario :refer [mario]] [mecca.songs.megaman :as megaman] [mecca.songs.zelda :as zelda] [mecca.songs.city :as city] [mecca.music :as music] [goog.events :refer [listen unlisten]]) (:import [goog.events EventType])) (reg-event-db :initialize-db (fn [_ _] {:audio-context (js/AudioContext.) :samples nil :focused-note-pos [nil nil] :eraser? false :status "" :playing? false :play-start 0 :jumping? false :sharp? false :repeat? false :loop-end nil :current-position 0 :current-note 0 :next-note-time 0.0 :notes-in-queue [] :editor-beat-start 1 :instrument 1 :array-buffer nil :time 0 :time-signature 4 :tempo 180 :notes [] :mario-x 16 :mario-y 61 :mario-jump 0 :mario-run 1 :xml "" :eval-result "" :file-upload ""})) (reg-event-db :remove-note (undoable "remove note") (fn [db [_ time pitch]] (update db :notes (fn [note] (remove #(and (= time (:time %)) (= pitch (:pitch %))) note))))) (def test-atom (r/atom "")) (reg-event-db :set-result (fn [db [_ s]] (sci-editor/update-result! (str (eval-all (str (some-> @!points .-state .-doc str))))) (assoc db :eval-result (str (eval-all (str (some-> @!points .-state .-doc str))))))) (reg-event-db :file-upload (fn [db [_ file]] (assoc db :file-upload file))) (reg-event-db :set-status (fn [db [_ file]] (assoc db :status file))) (reg-event-db :load-samples (fn [db [_ samples]] (assoc db :samples samples))) (reg-event-db :set-time-signature (fn [db [_ beats-per-measure]] (update db :time-signature beats-per-measure))) (reg-event-db :set-notes (fn [db [_ notes]] (assoc db :notes notes))) (reg-event-db ;; usage: (dispatch [:timer a-js-Date]) :timer ;; every second an event of this kind will be dispatched (fn [db [_ new-time]] ;; note how the 2nd parameter is destructured to obtain the data value (assoc db :time new-time))) (reg-event-db :play-on (fn [db [_ _]] (.resume @(subscribe [:audio-context])) (music/play-song!) (assoc (assoc db :play-start (.-currentTime @(subscribe [:audio-context]))) :playing? true) )) (reg-event-db :sharp-on (fn [db [_ _]] (assoc db :sharp? true))) (reg-event-db :sharp-toggle (fn [db [_ _]] (update db :sharp? not))) (reg-event-db :eraser-toggle (fn [db [_ _]] (update db :eraser? not))) (reg-event-db :sharp-off (fn [db [_ _]] (assoc db :sharp? false))) (reg-event-db :pause (fn [db [_ _]] (.suspend @(subscribe [:audio-context])) (assoc db :playing? false))) (reg-event-db :stop (fn [db [_ _]] (dispatch [:reset-editor]) (assoc (assoc db :playing? false) :current-position 0))) (reg-event-db :update-focus-note (fn [db [_ pos]] (assoc db :focused-note-pos pos))) (reg-event-db :select-instrument (fn [db [_ instrument]] (assoc db :instrument instrument :eraser? false))) (reg-event-db :play-off (fn [db [_ _]] (assoc db :playing? false))) (reg-event-db :advance-position (fn [db [_ _]] (let [notes (subscribe [:notes]) beat (subscribe [:current-position]) to-play (filter #(= (+ 1 @beat) (:time %)) @notes)] (if (< 4 @beat) (dispatch [:advance-editor 0.5])) #_(doall (for [{:keys [instrument pitch]} to-play] (music/play-sample instrument (if @(subscribe [:sharp?]) (+ 0.5 pitch) pitch)))) (update db :current-position #(+ 0.5 %))))) (reg-event-db :advance-editor (fn [db [_ beats]] (update db :editor-beat-start #(+ beats %)))) (reg-event-db :move-mario (fn [db [_ _]] (update db :mario-x #(+ 10 %)))) (reg-event-db :reset-editor (fn [db [_ _]] (assoc (assoc db :editor-beat-start 1) :mario-x 16))) (reg-event-db :retract-editor (fn [db [_ _]] (update db :editor-beat-start #(- % 0.5)))) (reg-event-db :reset-position (fn [db [_ _]] (assoc db :current-position 0))) (reg-event-db :set-tempo (fn [db [_ tempo]] (assoc db :tempo tempo))) (reg-event-db :inc-tempo (fn [db [_ tempo]] (update db :tempo #(+ 8 %)))) (reg-event-db :dec-tempo (fn [db [_ tempo]] (update db :tempo #(- % 8)))) (reg-event-db :set-key (fn [db [_ key]] (assoc db :key key))) (reg-event-db :repeat-toggle (fn [db [_ _]] (update db :repeat? not))) (reg-event-db :set-loop-end (fn [db [_ x]] (assoc db :loop-end x))) (reg-event-db :next-note (fn [db [_ _]] (let [tempo (subscribe [:tempo]) seconds-per-beat (/ 60.0 @tempo)] (update (update db :current-note inc) :next-note-time #(+ % seconds-per-beat))))) (reg-event-db :play-note (fn [db [_ pitch]] (music/play-note pitch) (assoc db :notes-in-queue [{:pitch pitch :time 0}]))) (reg-event-db :schedule-note (fn [db [_ _]] (let [notes (subscribe [:notes]) beat (subscribe [:current-note]) to-play (filter #(= (+ 1 @beat) (:time %)) @notes)] (update db :notes-in-queue into to-play)))) (reg-event-db :add-note (undoable "add note") (fn [db [_ instrument time pitch]] (if (= (.-state @(subscribe [:audio-context])) "suspended") (.resume @(subscribe [:audio-context]))) ;(sci-editor/update-editor! (str @(subscribe [:notes]))) (music/play-sample instrument (if @(subscribe [:sharp?]) (inc pitch) pitch)) (update db :notes conj {:time time :instrument instrument :pitch (if @(subscribe [:sharp?]) (inc pitch) pitch)}) )) ;; TODO This is gross. ;; Make it so the run counter only runs when needed. ;; But this tick function needs to be refactored. ;; Seriously it's like 50 shades of awful. ;; Read about effectful handlers some more, ;; and learn to use reg-event-fx. (reg-event-db :tick! (fn [db [_ _]] (if (and (not= 0 @(subscribe [:mario-jump])) @(subscribe [:playing?])) (assoc (update (update db :mario-run #(if (= % 12) 0 (inc %))) :mario-jump #(if (= 8 %) 0 (inc %))) :mario-y (- 61 (get [5 10 15 25 30 25 15 5] @(subscribe [:mario-jump])))) (update db :mario-run #(if (= % 12) 0 (inc %)))))) (reg-event-db :jump! (fn [db [_ _]] (assoc db :mario-jump 1))) (reg-event-db :submit-xml (fn [db [_ xml]] (assoc db :xml xml))) (reg-event-db :load-song (fn [db [_ notes]] (assoc db :notes notes))) (reg-event-db :load-megaman (fn [db [_ notes]] (dispatch [:set-tempo 260]) (assoc db :notes megaman/megaman))) (reg-event-db :load-castle (fn [db [_ notes]] (dispatch [:set-tempo 150]) (assoc db :notes city/city))) (reg-event-db :load-zelda (fn [db [_ notes]] (dispatch [:set-tempo 390]) (assoc db :notes zelda/zelda))) ================================================ FILE: src/mecca/mario.cljs ================================================ (ns mecca.mario (:require [re-frame.core :as rf :refer [subscribe dispatch]])) (defn svg-paths ([paths x y scale] (svg-paths nil paths x y scale)) ([attrs paths x y scale] (into [:g (merge attrs {:transform (str "scale(" scale ") translate(" x "," y ")")})] (for [[color path] paths] [:path {:stroke color :d path}])))) (defn mario-sm [] (let [x (subscribe [:mario-x]) y (subscribe [:mario-y]) run (subscribe [:mario-run]) jump (subscribe [:mario-jump]) playing? @(subscribe [:playing?])] [:g (cond (not= 61 @y) (svg-paths (if (> 8 @jump) [["#885818" "M12 0h2M11 1h1M14 1h1M10 2h1M15 2h1M15 3h1M14 4h1M13 5h1M3 9h1M12 9h2M3 10h1M14 10h1M14 11h1M1 13h3M5 13h1M0 14h2M4 14h1M6 14h4M0 15h1M5 15h1M0 16h1M5 16h1M1 17h1M4 17h1M2 18h2M13 18h1M2 19h1M12 19h1M2 20h1M12 20h1"] ["#f8f8f8" "M12 1h2M11 2h4M12 3h3M13 4h1M11 5h1M2 14h2M1 15h4M1 16h4M8 16h2M11 16h1M2 17h2M8 17h2M11 17h1"] ["#500000" "M7 3h5M5 4h2M12 4h1M4 5h1M12 5h1M14 5h1M3 6h1M2 7h1M2 8h1M13 8h1M1 9h1M1 10h1M1 11h1"] ["#f84070" "M7 4h3M11 4h1M5 5h2M5 6h1M6 15h1"] ["#f8d870" "M10 4h1M10 5h1M13 17h1M3 20h1"] ["#b02860" "M7 5h2M4 6h1M6 6h2M3 7h3M12 8h1M4 13h1M5 14h1"] ["#d8a038" "M9 5h1"] ["#000000" "M8 6h6M6 7h9M4 8h3M8 8h1M10 8h1M5 9h1M8 9h1M10 9h1M5 10h2M2 11h1M5 11h1M8 11h1M2 12h2M7 12h7M9 13h4M13 16h2M12 17h1M14 17h2M1 18h1M12 18h1M14 18h2M1 19h1M11 19h1M13 19h2M1 20h1M4 20h1M11 20h1M13 20h2M2 21h2M12 21h2"] ["#f8d0c0" "M3 8h1M2 9h1M4 9h1M7 9h1M9 9h1M11 9h1M4 10h1M7 10h7M4 11h1M6 11h2M6 12h1"] ["#f87068" "M7 8h1M9 8h1M11 8h1M6 9h1M2 10h1M3 11h1M9 11h5M4 12h2M6 13h3"] ["#203088" "M10 14h1M11 15h1M12 16h1M11 18h1M3 19h3M10 19h1M6 20h4"] ["#408098" "M7 15h2M6 16h2M5 17h3M4 18h6M6 19h4"] ["#80d8c8" "M9 15h2M10 16h1M10 17h1M10 18h1"]] [["#500000" "M7 0h5M5 1h2M12 1h1M4 2h1M12 2h1M3 3h1M2 4h1M2 5h1M1 6h1M1 7h1M1 8h1"] ["#f84070" "M7 1h3M11 1h1M5 2h2M5 3h1M5 14h2"] ["#f8d870" "M10 1h1M10 2h1M13 14h1M3 17h1"] ["#b02860" "M7 2h2M4 3h1M6 3h2M3 4h3M3 5h1M2 6h2M2 7h1"] ["#d8a038" "M9 2"] ["#f8f8f8" "M11 2h1M2 11h2M14 11h1M1 12h4M13 12h2M1 13h4M12 13h1M2 14h2M8 15h2M11 15h1M8 16h2M11 16h1"] ["#000000" "M8 3h6M6 4h9M4 5h5M10 5h2M4 6h2M4 7h2M8 7h1M10 7h1M5 8h1M8 8h1M10 8h1M1 9h1M5 9h2M2 10h1M5 10h1M8 10h1M7 11h7M9 12h4M13 13h2M12 14h1M14 14h2M1 15h1M12 15h1M14 15h2M1 16h1M12 16h1M14 16h2M1 17h1M12 17h1M14 17h2M2 18h2M13 18h2"] ["#f87068" "M9 5h1M6 6h1M2 9h1M3 10h1M9 10h5M5 11h1M6 12h3"] ["#f8d0c0" "M7 6h5M3 7h1M6 7h2M9 7h1M11 7h1M2 8h1M4 8h1M6 8h2M9 8h1M11 8h1M4 9h1M7 9h7M4 10h1M6 10h2M6 11h1"] ["#885818" "M3 8h1M12 8h2M3 9h1M14 9h1M14 10h1M1 11h1M4 11h1M15 11h1M0 12h1M5 12h1M15 12h1M0 13h1M5 13h5M11 13h1M1 14h1M4 14h1M2 15h2M13 15h1M2 16h2M13 16h1M2 17h1M13 17h1"] ["#203088" "M10 13h1M11 14h1M4 15h1M4 16h1M4 17h2M11 17h1M5 18h2M10 18h1M6 19h4"] ["#408098" "M7 14h2M5 15h3M5 16h3M6 17h4M7 18h3"] ["#80d8c8" "M9 14h2M10 15h1M10 16h1M10 17h1"]]) (min 180 @x) @y 0.18) (and playing? (> @run 6)) (svg-paths [["#500000" "M6 0h5M4 1h2M11 1h1M3 2h1M11 2h1M2 3h1M1 4h1M1 5h1M0 6h1M0 7h1M0 8h1"] ["#f84070" "M6 1h3M10 1h1M4 2h2M4 3h1M5 12h1"] ["#f8d870" "M9 1h1M9 2h1M12 14h1M2 17h1"] ["#b02860" "M6 2h2M3 3h1M5 3h2M2 4h3M3 11h1M3 12h2"] ["#d8a038" "M8 2h1"] ["#f8f8f8" "M10 2h1M3 13h3M7 13h2M10 13h1M3 14h2M7 14h2M10 14h1M3 15h2"] ["#000000" "M7 3h6M5 4h9M3 5h3M7 5h1M9 5h1M4 6h1M7 6h1M9 6h1M4 7h2M1 8h1M4 8h1M7 8h1M1 9h2M6 9h7M2 10h1M8 10h4M1 13h1M12 13h2M0 14h1M11 14h1M13 14h2M0 15h1M11 15h1M13 15h2M0 16h1M10 16h1M12 16h2M0 17h1M3 17h1M10 17h1M12 17h2M1 18h2M11 18h2"] ["#f8d0c0" "M2 5h1M1 6h1M3 6h1M6 6h1M8 6h1M10 6h1M3 7h1M6 7h7M3 8h1M5 8h2M5 9h1"] ["#f87068" "M6 5h1M8 5h1M10 5h1M5 6h1M1 7h1M2 8h1M8 8h5M3 9h2M4 10h4"] ["#885818" "M2 6h1M11 6h2M2 7h1M13 7h1M13 8h1M3 10h1M2 11h1M4 11h5M2 12h1M6 12h1M2 13h1M6 13h1M1 14h2M5 14h1M1 15h2M5 15h1M12 15h1M1 16h1M3 16h2M11 16h1M1 17h1M11 17h1"] ["#203088" "M9 11h1M10 12h1M11 13h1M10 15h1M2 16h1M9 16h1M5 17h4"] ["#408098" "M7 12h1M6 14h1M6 15h3M5 16h4"] ["#80d8c8" "M8 12h2M9 13h1M9 14h1M9 15h1"]] (min 180 @x) (- @y 1) 0.18) :else (svg-paths [["#500000" "M6 0h5M4 1h2M11 1h1M3 2h1M11 2h1M2 3h1M1 4h1M1 5h1M0 6h1M0 7h1M0 8h1M3 11h1M2 12h1M2 13h1"] ["#f84070" "M6 1h3M10 1h1M4 2h2M4 3h1M5 12h1"] ["#f8d870" "M9 1h1M9 2h1M7 18h1M9 18h1"] ["#b02860" "M6 2h2M3 3h1M5 3h2M2 4h3M4 11h1M3 12h2"] ["#d8a038" "M8 2h1"] ["#f8f8f8" "M10 2h1M7 13h2M10 13h1M3 14h3M7 14h2M10 14h1M3 15h2M3 16h2"] ["#000000" "M7 3h6M5 4h9M3 5h3M7 5h1M9 5h1M4 6h1M7 6h1M9 6h1M4 7h2M1 8h1M4 8h1M7 8h1M1 9h2M6 9h7M2 10h1M8 10h4M7 17h1M9 17h1M3 18h1M8 18h1M10 18h1M3 19h8"] ["#f8d0c0" "M2 5h1M1 6h1M3 6h1M6 6h1M8 6h1M10 6h1M3 7h1M6 7h7M3 8h1M5 8h2M5 9h1"] ["#f87068" "M6 5h1M8 5h1M10 5h1M5 6h1M1 7h1M2 8h1M8 8h5M3 9h2M5 10h3"] ["#885818" "M2 6h1M11 6h2M2 7h1M13 7h1M13 8h1M3 10h2M5 11h4M3 13h3M2 14h1M6 14h1M2 15h1M5 15h1M2 16h1M5 16h1M3 17h4M8 17h1M4 18h3"] ["#203088" "M9 11h1M10 12h1M11 13h1M11 14h1M11 15h1M8 16h1M10 16h1"] ["#408098" "M6 12h2M6 13h1M6 15h3M6 16h2M9 16h1"] ["#80d8c8" "M8 12h2M9 13h1M9 14h1M9 15h2"]] (min 180 @x) @y 0.18))])) (defn limb [x y color path] [:path {:transform (str "translate(" x "," y ")") :fill color :d path}]) (defn hat [x y] [limb x y "#f83800" "M1 0H6V1H9V2H0V1H1V0"]) (defn mario-face [x y] [limb x y "#ffa044" "M3 0H7V1H9V2H10V3H7V2H6V3H5V4H8V5H1V3H0V1H1V3H3V2H2V1H3V0H5V2H6V0"]) (defn hair [x y] [limb x y "#ac7c00" "M1 0H4V1H3V2H4V3H2V1H1V3H2V4H0V1H1V0M1 0H4V1H3V2H4V3H2V1H1V3H2V4H0V1H1V0"]) (defn eye [x y] [limb x y "#ac7c00" "M0 0H1V2H0V0"]) (defn moustache [x y] [limb x y "#ac7c00" "M1 0H2V1H4V2H0V1H1V0"]) (defn sleeve [orientation x y] [limb x y "#ac7c00" (if (= orientation "front") "M1 0H3V1H4V2H3V3H4V4H3V6H2V5H1V4H0V1H1V0" "M0 0H3V1H4V2H2V1H0V0")]) (defn button [x y] [limb x y "#ffa044" "M0 0H1V1H0V0"]) (defn overalls [x y] [:g [limb x y "#f83800" "M3 0H4V1H6V2H8V3H9V5H8V6H5V7H2V6H1V5H0V4H1V5H2V6H5V5H6V4H4V3H3V2H4V1H3V0"] [button 4 9]]) (defn smb-small-shirt [] [:path {:fill "#E52521" :d "M2.5 2H4.5V2.5H6V3H6.5V3.5H5V4H4.5V3.5H4V2.5H3.5V3H2.5V2H1V2.5H.5V3H0V3.5H1V4H1.5V3.5H2V2"}]) (defn hand [view x y] (case view "side" [limb x y "#ffa044" "M0 0H3V1H2V2H0V0"] "back" [limb x y "#ffa044" "M0 0H2V1H0V0"] "thumb-left" [limb x y "#ffa044" "M2.2 5.6H4V6.5H2.7V6H2.2V5.6"] "thumb-right" [limb x y "#ffa044" "M5 5.5H6V6H6.5V6.5H6V7H5V5.5"])) (defn hands [configuration] (case configuration "clenched" [:g [hand "side" 2 11] [hand "back" 6 9]] "stretched" [:g [hand "thumb-right" -4 4] [hand "thumb-left" 4 4]])) (defn foot [shape x y rotation] [:path {:transform (str "translate(" x "," y ") rotate(" rotation "," 0 "," 0 ")") :fill "#ac7c00" :d (if (= shape "bent") "M0 0H2V1H3V2H4V3H1V2H0V0" "M0 0H3V1H4V2H0V0")}]) (defn feet [config] (case config "together" [:g [foot "flat" 3 13 0] [foot "flat" 1 14 0]] "stretched" [:g [foot "bent" 2 10 0] [foot "flat" 6 10 -90]])) (defn mario [] (let [x (subscribe [:mario-x]) y (subscribe [:mario-y])] [:g {:transform (str "scale(0.25) translate(" @x "," @y ")")} [hat 0 0] [mario-face 0 2] [eye 5 2] [hair -1 2] [moustache 5 4] [sleeve "front" -1 7] [sleeve "back" 3 7] [overalls -1 7] [hands "clenched"] [feet "together"]])) (defn mario2 [] [:g#mario {:transform "scale(1.5,1.5)"} [:path {:style {:fill "#f8cd66" :stroke-width 0.08466667} :d "M.903 3.612l-.056.057v-.226l.056.056.057.057zm1.552.029h-.084v-.17h.169v.17zm2.032 0h-.084v-.17h.169v.17zm-2.751-.424h-.043v-.084H1.778v.084zM5.8 2.963h-.043V2.88H5.842v.084zM3.768 2.88h-.043V2.794H3.81V2.879zM1.22.762h-.134l.033-.1.034-.101.1-.034.1-.033v.268zm4.064 0H5.15l.033-.1.034-.101.1-.034.1-.033v.268zM3.076.592h-.14L3.011.53l.076-.063.064-.085.063-.085.001.148.001.149z"}] [:path {:style {:fill "#7fd7ce" :stroke-width 0.08466667} :d "M3.29 3.242l-.157.151v-.26h-.254v-.339h.254v-.169h.181l.107.106.106.107-.04.126-.039.126zm-.03-.279h.127v-.169h-.254v.169zm-2.235.17H.95L.903 3.01.856 2.89l.25-.055.249-.054V2.53l.084.052.085.053v.498h-.169v-.17H1.1v.17zm4.288-.005l-.106-.005-.148-.15-.148-.15V2.54h.254V2.37h.181l.121.12.121.122v.266h-.169v.254l-.106-.005zm-.021-.334h.127V2.54h-.254v.254zM1.609 2.54h-.085v-.169h.169v.169z"}] [:path {:style {:fill "#fe6f6e" :stroke-width 0.08466667} :d "M1.427 2.495l-.03.028-.11-.119-.108-.118h.166l.055.09.056.09zm1.917.045h-.127v-.169h.254v.169zM.44 2.37l-.144-.002.127-.082.127-.082H.62l.068-.002-.052.085-.052.085zm2.472-.084h-.035l-.145-.17-.145-.169h-.301v-.16l.098-.06.097-.06.102.14.103.14h.173l.044.17.044.169zm2.457-.007l-.162-.007.111-.045.111-.044.051.051.052.051zm-3.027-.106l-.056.056v-.226l.056.057.057.056zm2.032 0l-.056.056v-.226l.056.057.057.056zm-3.292-.156l-.399.015-.09-.17-.091-.17H.254v-.159l.098-.06.097-.06.102.14.103.14h.193v.244l.317.033.318.033zm4.054 0l-.41.015-.045-.17-.044-.17h-.319v-.159l.098-.06.097-.06.102.14.103.14h.193v.244l.317.033.318.033zm-1.58-.07h-.17v-.169H3.105l.043-.043.043-.043.268.053.267.054v.148zm-1.365-.17h-.074v-.235l.117-.045.118-.045-.043.163-.043.163zm-.743-.084h-.245l-.052-.137-.053-.137.192.05.192.052.106.001.105.001v.17zm1.336 0H2.71v-.266l.127-.127.127-.127v.07l-.002.069-.051.19-.051.19zm2.804 0h-.17v-.169H5.137l.043-.043.043-.043.268.053.267.054v.148zM.16 1.523H.085v-.096L.212 1.3l.127-.127v.083l-.052.134-.051.134zm4.064 0H4.15v-.096l.127-.127.127-.127v.083l-.052.134-.051.134zm-3.44-.105l-.107.035v-.25l.133-.051.134-.051-.028.14-.027.142zm4.063 0l-.106.035v-.25l.133-.051.134-.051-.028.14-.027.142zm-1.545-.064h-.067l-.041-.109-.042-.108h.3l-.042.108-.041.11zm2.413 0h-.127v-.169h.254v.169zM1.27 1.185h-.113l.057-.056.056-.057.056.057.057.056zm4.064 0h-.113l.057-.056.056-.057.056.057.057.056zM.725.815L.52.908.616.756.712.602.916.551l.205-.052.046.047.047.046H.932L.93.656.93.719.725.814zm4.064 0l-.205.094.096-.153.096-.154.204-.051.205-.052.046.047.047.046H4.996l-.001.064-.001.063-.205.095zM2.649.752l-.104.136-.002-.06L2.54.77l.2-.216.2-.216h.193v.158l-.19.06-.19.061zm-1.21-.16h-.113l.057-.057.056-.057.057.057.056.056zm4.064 0H5.39l.057-.057.056-.057.057.057.056.056zM3.302.507h-.085v-.17h.17v.17z"}] [:path {:style {:fill "#3f7f9e" :stroke-width 0.08466667} :d "M3.048 3.387h-.085v-.15l-.156-.04-.157-.042-.047-.18-.047-.181h.323v.339h.254v.254zm-1.82-.219l-.339.02-.14-.032-.139-.032-.043-.165-.043-.165h.153l.186.185.185.185.033-.1.034-.1h.24v.169h.169v-.339h.169v.339l-.063.008-.064.008zm3.873.04l-.063-.01-.141-.038-.141-.037L4.709 3l-.047-.122.049-.127.048-.127h.152v.259l.127.049.127.048v.236zm-1.587-.245H3.47V2.88H3.556v.084zm2.159-.084H5.56l.056-.057.057-.056.056.056.057.057zM3.64 2.794h-.085V2.54h.169v.254zm-2.16-.17H1.44V2.54H1.524V2.625zm1.772-.006L3.09 2.61l.111-.045.112-.044.05.05.052.052zm2.43-.078h-.075l-.043-.163-.043-.163.118.045.117.045v.236zm-4.201-.17h-.043v-.084H1.524v.084zm3.803-.007l-.163-.007.111-.044.112-.045.05.051.052.052z"}] [:path {:style {:fill "#8e571e" :stroke-width 0.08466667} :d "M.699 3.637L.55 3.634l-.105-.12-.106-.12v-.261h.174l.049.127.049.127h.236v.254zm1.643-.06l-.043.106-.006-.273-.007-.272.12.046.12.046.047.12.046.121h-.234zm2.032 0l-.043.106-.006-.281-.007-.282.147.029.147.028.029.147.028.147h-.252zM1.588 3.41l-.149.056v-.249h.24l.156-.058.155-.06-.127.128-.127.127zm2.062-.023h-.076l-.051-.134-.052-.134v-.15l.254-.26.254-.26V2.3l-.105-.035-.105-.035-.106.107-.107.106v.181h-.164l.049-.126.048-.127-.157-.01-.157-.008.275-.089.275-.088v-.143l.17.145.169.145v.179l-.17.145-.169.145v.594zM3.514 2.37h.042V2.286H3.471V2.371zm2.11.908l-.134.134.028-.24.028-.239.106-.035.105-.035v.28zm-4.756-.4H.672l-.049-.127-.048-.127H.339V2.39l.18-.047.18-.047-.042-.164-.043-.163.159.041.158.042V2.2h.254v-.149l.168-.044.168-.044-.08.151-.082.151-.136.052-.136.053-.195-.05-.196-.049-.057.093-.057.092.053.169.054.168h.408l.054-.212.053-.211h.151v.167l-.146.17-.146.17zm1.693-.092l-.148-.007-.148-.162-.148-.163v-.084l.169-.17.17-.169h.167l.17.146.17.146v.202l.106.043.106.042-.233.007-.233.007v.17l-.148-.007zm-.073-.162h.123l.134-.052.134-.051v-.233l-.218-.054-.218-.055-.09.09-.09.09.051.132.051.133zm2.07.162l-.113-.007-.148-.162-.148-.163v-.084l.164-.165.165-.164.11-.015.111-.015.148.01.148.01v.254h.182l-.253.254-.254.254-.113-.007zm-.038-.162h.123l.134-.052.134-.051v-.218l-.224-.056-.224-.056-.084.084-.083.083.05.133.051.133zm-2.697 0h-.124l.048-.127.05-.127h-.259l-.034.101-.034.102-.05-.131-.05-.131.225.016.225.016.064.013.063.014v.254zm3.68-.254H5.39l.057-.057.056-.056.057.056.056.057zm-.127-.17H5.25v-.149L5.44 2l.191-.051.064-.001.063-.001v.254h-.155l-.043-.106-.042-.106-.007.106-.007.106zm-2.074-.254h-.085v-.169h.17v.169zm.479-.062l-.042.105.009-.51-.304-.344.228.276.151.37-.042.103zm-1.444-.13l-.051.051.007-.162.006-.162.045.11.044.112zm-1.18-.09l-.056.057v-.226l.056.056.057.057zm.592-.035l-.042.106v-.212l-.004-.348.046.242.043.106zm3.585.063h-.085v-.169h.17v.169zm.48-.063l-.043.106v-.424l.042.106.043.106zM.31 1.496l-.056.056v-.226l.056.057.057.056zm4.064 0l-.056.056v-.226l.056.057.057.056zm-2.03-.247l-.038.148-.01-.22-.01-.22.177-.203L2.64.55l.07-.126.071-.126.056.055.056.056-.177.177-.176.176V1.1h-.157zM.466 1.185H.339V.963L.635.847.931.73V.593h.17v.152L.847.834.593.922v.263zm4.064 0h-.127V.963l.296-.116.296-.117V.593h.17v.152L4.91.834l-.254.088v.263zM1.496.734L1.439.79V.564l.057.057.056.056zm4.064 0L5.503.79V.564l.057.057.056.056zm.319.028h-.122V.593h.254v-.34h-.157L5.818.36l-.036.106.032-.19.031-.191h-.324l-.048.127-.049.127h-.181l.167-.18.168-.18.21.053L6 .085l.054.17.053.168-.053.17L6 .762z"}] [:path {:style {:fill "#1f2f8e" :stroke-width 0.08466667} :d "M2.926 3.64h-.188l-.113-.211-.114-.212h-.14v-.423h.173l.08.212.081.211h.258v.17h.254v-.151l.127-.05.127-.048v.249h-.259l-.049.127-.048.127zM.903 3.38l-.268-.007L.477 3.2l-.158-.172.104-.064.104-.065-.115-.046-.116-.046L.41 2.8l.114-.007.044.17.044.17.139.013.138.015.246.007.246.007.036.127.035.127-.097-.127-.098-.127-.043.105-.043.106zm4.029 0l-.233-.007-.148-.163-.148-.162v-.254h.242l.051.16.05.16.167.044.167.044.165-.044.165-.043.037-.14.037-.139.003.297.003.296-.043-.106-.043-.106h-.24v.17l-.232-.007zm-3.323-.184l-.127.034.098-.07.098-.07.04-.254.042-.254-.012.29-.012.29zM3.09 2.54h-.127v-.169h.254v.169zm2.726-.07l-.045.112-.007-.139-.007-.139-.127-.049-.127-.048v-.181l.179.166.178.166zm-4.419-.184h-.042V2.201h.084V2.286zm3.718-.007l-.162-.007.111-.044.111-.045.051.051.052.051z"}] [:path {:style {:fill "#4f0000" :stroke-width 0.08466667} :d "M.467 2.794H.342l-.055-.217-.054-.217.176-.164.177-.164h.091v.158l-.169.054-.17.053v.328h.255v.169zm2.454 0h-.212v-.169h.424v.169zm.55 0h-.084v-.169h.169v.169zM5.08 2.54h-.085v-.169h.17v.169zm.423 0H5.42v-.169h.169v.169zm-2.42-.176l-.162-.007.111-.045.111-.044.051.051.052.051zm-1.601-.078h-.043V2.201H1.524V2.286zm.72 0h-.085v-.254h.169v.254zm2.031 0H4.15v-.251l.215-.054.216-.054.052.053.053.052h-.367v.254zm-3.175-.085H.931v-.169h.254V2.2zm4.064 0h-.127v-.169h.254V2.2zM2.194 1.44h-.077v-.43l.087-.102.087-.103.243-.28.243-.281.325.026.326.027.017.17.017.169-.044-.148-.044-.148H2.71v.127l-.211.246-.212.246.01.22.01.219.038-.148.039-.148h.157l.003-.106.002-.106.124-.163.123-.163.062.062.062.061-.124.08-.125.078.119.001.119.001-.183.158-.182.158v.174l-.134.051-.134.052zm.473-.508h.042V.847h-.084V.93zm3.26.508h-.085v-.338h.169v.339zM.312 1.117l-.045.11-.006-.112-.007-.112.247-.248L.75.508H.93V.339h.52l.121.12.121.121v.181h-.169V.487l-.365.04-.365.042-.219.22-.22.218zm4.064 0l-.045.11-.006-.112-.007-.112.247-.248.248-.247h.182V.339h.52l.121.12.121.121v.181h-.169V.487l-.365.04-.365.042-.219.22-.22.218zm-.848-.045l-.057.057V.903l.057.056.056.057zm-.353-.14h-.042V.846h.084V.93zM5.927.846h-.113L5.87.79l.057-.056.056.056.057.057z"}] [:path {:d "M.81 3.725H.52l-.133-.133-.133-.133.01-.184.01-.185.041.164.042.163.112.112.112.112h.368l-.047-.123-.047-.123.123.047.123.047v.236zm.88-.044l-.213.053-.061-.06-.061-.061v-.19l.17-.013.17-.013.125-.125.126-.126-.105-.037-.105-.038L1.804 3l.068-.073.079.125.078.124v.254l-.063.1-.063.098zm.758.018l-.12.015-.105-.044-.106-.043v-.421l.118-.12.119-.118-.045.336-.045.337h.262l.043-.087.043-.087-.022.108-.022.108zm2.015.02l-.103-.007-.105-.043-.106-.043v-.421l.118-.119.119-.118-.045.336-.045.336h.215l.12-.148.12-.148-.093.19-.092.191-.103-.007zm-.591-.083l-.104-.005-.163-.164-.163-.164.057-.057.057-.057v.198h.159l.026-.275.027-.276h.254l.028.2.028.199-.05.203-.052.203zm1.813.005h-.079l-.048-.125-.047-.124.128-.129.129-.129.013-.172.013-.173.13.024.13.025.027.24.028.242-.172.16-.173.16zm-.14-.678h-.042V2.88H5.588v.084zM3.42 2.201h-.287v-.169h-.249l.049-.127.048-.127h.236v.169h.588l-.05.127-.048.127zm-2.843-.25l-.034.104-.156-.156-.156-.156.104-.034.103-.035.087.087.087.087zm1.838.07l-.171-.012.19-.037.19-.036-.055-.227-.055-.227-.093-.062-.093-.063h.106l.106-.002v-.254h.187L2.683.987 2.64.872l.162-.14.163-.139h.742l.049.127.049.127-.05.127-.048.127h-.151V.9l-.114.156-.114.156-.097-.06-.096-.06.05.132.05.131h-.272v-.181l-.127.127-.127.127v.266h.168l-.145.17-.145.169zM2.794.93h.113L2.85.875 2.794.818l-.056.057-.057.056zm.381 0h.042V.847h-.084V.93zM1.403 1.947h-.302V1.79l-.125-.027-.125-.027.089-.127.089-.127.043.105.043.106h.844l-.127.127-.127.127zm3.136 0H4.42l-.049-.127-.049-.127h.295v-.672l.097-.097.096-.096.384-.044.383-.043.217.055.216.054v.233l-.122.047-.122.047-.297-.049-.296-.048-.216.055-.217.054v.251h.181l-.132.133-.133.133v.242zm.913 0h-.287v-.169h-.249l.049-.127.048-.127h.236v.169h.588l-.049.127-.049.127zM.717 1.586l-.114.104-.05-.16L.5 1.37l.057-.226L.614.92.821.841l.206-.079h.652l.134.051.134.052v.218l-.122.046-.122.047-.297-.048-.296-.048-.216.054-.217.055v.236l.077.029.076.028zm2.467.084l-.051.052.006-.163.007-.162.045.111.044.111zm.254 0l-.051.052.006-.163.007-.162.045.111.044.111zm-2.286-.254l-.051.052.006-.163.007-.162.045.111.044.111zm.254 0l-.051.052.006-.163.007-.162.045.111.044.111zm3.81 0l-.051.052.006-.163.007-.162.045.111.044.111zm.254 0l-.051.052.006-.163.007-.162.045.111.044.111zM3.47 1.355h-.084v-.16l.084-.052.085-.052v.264z"}] [:path {:d "M5.64.46L5.516.335 5.473.332 5.43.33l.047-.12.046-.122.16-.001.16-.002L5.84.1c-.01.046-.06.354-.057.36A.492.492 0 0 0 5.82.366L5.855.26 5.932.26l.077-.002V.59L5.886.589 5.764.587zM.688 2.779a9.072 9.072 0 0 1-.1-.32.838.838 0 0 1 .113-.174c0-.006.004-.009.008-.007l.194.05.184.046.062-.024.062-.024.02.02.018.02h-.047l-.048.192-.054.214-.006.022h-.4zM4.372 2.55a29.382 29.382 0 0 1-.05-.13L4.3 2.357l.082-.081.08-.082.225.056.224.056-.002.106-.002.107-.13.05-.132.051H4.4zM2.975 1.686l-.027-.106-.028-.104.019-.071c.01-.04.02-.066.02-.06.003.01.016.012.13.012h.128v.102l-.001.102-.033-.082a.502.502 0 0 0-.036-.08c-.003 0-.007.065-.01.144l-.005.145h-.079a.592.592 0 0 1-.078-.002zM5.052 1.415a1.26 1.26 0 0 1-.092-.034 3.174 3.174 0 0 1 .044-.246c.002-.007.028-.016.08-.03.089-.02.09-.02.161-.01l.053.008-.038.039a.276.276 0 0 0-.039.044c0 .003.006.005.014.005.013 0 .014.004.014.056a.231.231 0 0 1-.003.054 1.157 1.157 0 0 1-.032-.076.73.73 0 0 0-.034-.078 1.781 1.781 0 0 0-.014.252c0 .04-.002.048-.012.047-.007 0-.053-.014-.102-.03zM5.493 1.4l.032-.033-.039-.097a16.657 16.657 0 0 1-.045-.113c-.004-.012-.008-.015-.012-.009s-.01.004-.021-.009c-.01-.01-.013-.017-.007-.017l.182.028c.177.03.189.03.241.01.01-.004.012-.002.012.01 0 .014-.002.014-.124.014h-.125v.173h.114l-.114.038-.12.038c-.004 0 .008-.015.026-.033zM.988 1.415a1.26 1.26 0 0 1-.092-.034 3.174 3.174 0 0 1 .044-.246c.002-.007.028-.016.08-.03.088-.02.098-.021.165-.01l.049.008-.039.039a.274.274 0 0 0-.038.044c0 .003.006.005.014.005.013 0 .014.004.014.056a.232.232 0 0 1-.003.054 1.156 1.156 0 0 1-.032-.076.704.704 0 0 0-.034-.078 2.57 2.57 0 0 0-.015.287c.002.018-.012.016-.113-.019zM5.166 2.67v-.124h.249v.248h-.249zM3.134 2.877v-.083h.249v.166h-.249z"}] [:path {:d "M.688 2.779a9.072 9.072 0 0 1-.1-.32.838.838 0 0 1 .113-.174c0-.006.004-.009.008-.007l.194.05.184.046.062-.024.062-.024.02.02.018.02h-.047l-.048.192-.054.214-.006.022h-.4z"}] [:path {:d "M.688 2.779a9.072 9.072 0 0 1-.1-.32.838.838 0 0 1 .113-.174c0-.006.004-.009.008-.007l.194.05.184.046.062-.024.062-.024.02.02.018.02h-.047l-.048.192-.054.214-.006.022h-.4zM2.34 2.55a25.078 25.078 0 0 1-.05-.131l-.023-.06.088-.088.087-.088.218.054.218.054-.002.115-.001.114-.132.05-.131.051h-.244zM5.052 1.415a1.26 1.26 0 0 1-.092-.034 3.174 3.174 0 0 1 .044-.246c.002-.007.028-.016.08-.03.089-.02.09-.02.161-.01l.053.008-.038.039a.276.276 0 0 0-.039.044c0 .003.006.005.014.005.013 0 .014.004.014.056a.231.231 0 0 1-.003.054 1.157 1.157 0 0 1-.032-.076.73.73 0 0 0-.034-.078 1.781 1.781 0 0 0-.014.252c0 .04-.002.048-.012.047-.007 0-.053-.014-.102-.03z"}] [:path {:style {:fill "#000000" :stroke-width 0.08466667} :d "m -39.279287,150.696 h -0.290286 l -0.133047,-0.13304 -0.133048,-0.13305 0.0098,-0.18445 0.0098,-0.18446 0.04164,0.16335 0.04164,0.16334 0.111821,0.11183 0.111821,0.11182 h 0.18444 0.184439 l -0.04708,-0.12269 -0.04708,-0.12269 0.122689,0.0471 0.122688,0.0471 v 0.11794 0.11794 z m 0.879555,-0.0445 -0.213369,0.0536 -0.06095,-0.061 -0.06095,-0.0609 v -0.0949 -0.0949 l 0.170183,-0.0128 0.170183,-0.0128 0.125394,-0.12539 0.125395,-0.1254 -0.105078,-0.0375 -0.105077,-0.0375 0.0681,-0.0726 0.0681,-0.0726 0.07877,0.12455 0.07877,0.12455 v 0.127 0.127 l -0.06305,0.0991 -0.06305,0.0991 z m 0.758381,0.0177 -0.119984,0.0155 -0.105833,-0.0437 -0.105833,-0.0437 v -0.21066 -0.21066 l 0.118632,-0.11863 0.118632,-0.11864 -0.04511,0.33635 -0.04511,0.33635 h 0.131093 0.131092 l 0.04304,-0.0868 0.04304,-0.0868 -0.02183,0.10795 -0.02183,0.10795 z m 2.014871,0.0202 -0.102855,-0.007 -0.105833,-0.0427 -0.105833,-0.0427 v -0.21066 -0.21066 l 0.118632,-0.11863 0.118632,-0.11864 -0.04511,0.33635 -0.04511,0.33635 h 0.107648 0.107647 l 0.119838,-0.14817 0.119838,-0.14817 -0.09232,0.1905 -0.09232,0.1905 -0.102854,-0.007 z m -0.591301,-0.083 -0.10422,-0.005 -0.16262,-0.16396 -0.16262,-0.16396 0.05679,-0.0568 0.05679,-0.0568 v 0.0988 0.0988 h 0.0793 0.0793 l 0.02653,-0.27517 0.02653,-0.27517 h 0.127 0.127 l 0.02818,0.19911 0.02818,0.19912 -0.05096,0.20305 -0.05096,0.20306 z m 1.813378,0.005 h -0.07915 l -0.04779,-0.12455 -0.0478,-0.12455 0.128601,-0.1286 0.1286,-0.1286 0.01302,-0.17289 0.01302,-0.17288 0.129946,0.0246 0.129946,0.0246 0.02764,0.24095 0.02764,0.24095 -0.17227,0.16049 -0.17227,0.1605 z m -0.139598,-0.67734 h -0.04233 v -0.0423 -0.0423 h 0.04233 0.04233 v 0.0423 0.0423 z m -2.125725,-0.762 h -0.287275 v -0.0847 -0.0847 h -0.124343 -0.124343 l 0.04874,-0.127 0.04873,-0.127 h 0.117942 0.117941 v 0.0847 0.0847 h 0.293677 0.293676 l -0.04874,0.127 -0.04873,0.127 z m -2.842697,-0.25007 -0.03447,0.10342 -0.155726,-0.15573 -0.155727,-0.15572 0.103415,-0.0345 0.103414,-0.0345 0.08678,0.0868 0.08678,0.0868 z m 1.838105,0.0692 -0.171683,-0.0115 0.190631,-0.0367 0.19063,-0.0367 -0.0555,-0.22693 -0.0555,-0.22692 -0.0928,-0.0622 -0.0928,-0.0622 0.105834,-10e-4 0.105833,-0.001 v -0.127 -0.127 h 0.09372 0.09372 l -0.04396,-0.11455 -0.04396,-0.11455 0.162866,-0.13945 0.162866,-0.13945 h 0.370974 0.370974 l 0.04873,0.127 0.04874,0.127 -0.04874,0.127 -0.04873,0.127 h -0.07561 -0.07561 v -0.10085 -0.10085 l -0.114156,0.15612 -0.114155,0.15611 -0.09654,-0.0597 -0.09654,-0.0597 0.05042,0.1314 0.05042,0.1314 h -0.136058 -0.136059 v -0.0907 -0.0907 l -0.127,0.127 -0.127,0.127 v 0.13305 0.13304 h 0.08384 0.08384 l -0.144987,0.16934 -0.144988,0.16933 z m 0.37865,-1.08914 h 0.112889 l -0.05644,-0.0564 -0.05644,-0.0565 -0.05644,0.0565 -0.05645,0.0564 z m 0.381,0 h 0.04233 v -0.0423 -0.0423 h -0.04233 -0.04233 v 0.0423 0.0423 z m -1.771952,1.016 h -0.302381 v -0.0785 -0.0785 l -0.124771,-0.0274 -0.12477,-0.0274 0.08888,-0.127 0.08888,-0.127 0.04294,0.10583 0.04294,0.10583 h 0.422325 0.422326 l -0.127,0.127 -0.127,0.127 z m 3.135677,0 h -0.117941 l -0.04874,-0.127 -0.04873,-0.127 h 0.147433 0.147434 v -0.33635 -0.33636 l 0.09655,-0.0965 0.09655,-0.0965 0.383324,-0.0432 0.383325,-0.0432 0.216705,0.0544 0.216706,0.0544 v 0.11633 0.11633 l -0.122118,0.0469 -0.122118,0.0469 -0.296619,-0.0481 -0.29662,-0.0481 -0.216263,0.0543 -0.216263,0.0543 v 0.12539 0.12538 h 0.09071 0.09071 l -0.133048,0.13305 -0.133047,0.13305 v 0.12095 0.12095 z m 0.913217,0 h -0.287275 v -0.0847 -0.0847 h -0.124343 -0.124343 l 0.04874,-0.127 0.04873,-0.127 h 0.117942 0.117942 v 0.0847 0.0847 h 0.293676 0.293676 l -0.04873,0.127 -0.04873,0.127 z m -4.735399,-0.36137 -0.11344,0.1043 -0.05097,-0.1606 -0.05097,-0.16059 0.05648,-0.22504 0.05648,-0.22505 0.20645,-0.0785 0.206451,-0.0785 h 0.32623 0.32623 l 0.133925,0.0514 0.133924,0.0514 v 0.10889 0.10888 l -0.122117,0.0469 -0.122118,0.0469 -0.296619,-0.0481 -0.29662,-0.0481 -0.216263,0.0543 -0.216263,0.0543 v 0.11833 0.11833 l 0.07633,0.0282 0.07632,0.0282 z m 2.467277,0.0844 -0.05115,0.0512 0.0067,-0.16228 0.0067,-0.16228 0.04447,0.11112 0.04447,0.11113 z m 0.254,0 -0.05115,0.0512 0.0067,-0.16228 0.0067,-0.16228 0.04447,0.11112 0.04447,0.11113 z m -2.286,-0.254 -0.05115,0.0512 0.0067,-0.16228 0.0067,-0.16228 0.04447,0.11112 0.04447,0.11113 z m 0.254,0 -0.05115,0.0512 0.0067,-0.16228 0.0067,-0.16228 0.04447,0.11112 0.04447,0.11113 z m 3.81,0 -0.05115,0.0512 0.0067,-0.16228 0.0067,-0.16228 0.04447,0.11112 0.04447,0.11113 z m 0.254,0 -0.05115,0.0512 0.0067,-0.16228 0.0067,-0.16228 0.04447,0.11112 0.04447,0.11113 z m -1.998487,-0.0617 h -0.08467 v -0.0797 -0.0797 l 0.08467,-0.0523 0.08467,-0.0523 v 0.132 0.132 z"}]]) (defn editor-bg [] [:g#bg {:transform "scale(0.25) translate(0,38)"} [:rect#editorframe {:stroke "black" :height 119 :width 240 :x 8 :y 23}] [:path#path54 {:style {:fill "#f7aff7"} :d "M 13.5,223 H 0 V 211.5 200 H 13.5 27 v 11.5 11.5 z m 2.5,-2 h 8 V 211 201 H 16 8 v 10 10 z m 234.5,2 H 245 V 211.5 200 h 5.5 5.5 v 11.5 11.5 z"}] [:path#path52 {:style {:fill "#f5e7b7"} :d "M136 223H31V211.5 200H136 241V211.5 223ZM48.5 221H57v-8.071-8.071L55.571 203.429 54.143 202H47.071 40v9.5 9.5zM145.75 220.962 153 221v-8.071-8.071L151.571 203.429 150.143 202H143.071 136v8.042 8.042l1.25 1.42 1.25 1.42 7.25.038zm24 0L177 221v-8.071-8.071L175.571 203.429 174.143 202H167.071 160v8.042 8.042l1.25 1.42 1.25 1.42 7.25.038zm24 0L201 221v-8.071-8.071L199.571 203.429 198.143 202H191.071 184v8.042 8.042l1.25 1.42 1.25 1.42 7.25.038zm-96-1L112 220v-7.071-7.071L110.571 204.429 109.143 203H102.571 96l-.079 1.25-.079 1.25-.504-1.25L94.833 203H87.917 81v7.042 7.042l1.25 1.42 1.25 1.42 14.25.038zm127.5 0L232 220v-7.071-7.071L230.571 204.429 229.143 203H222.571 216v7.042 7.042l1.25 1.42 1.25 1.42 6.75.038zM231.378 192H231v-.378-.378l1.75-1.372 1.75-1.372-1.372 1.75-1.372 1.75zm-29.727-4.75-.516 1.25.576-3.5.576-3.5.356-.417L203 180.667V182.833 185h2 2v-.969-.969l-1.5.576-1.5.576V182.607 181h2 2v2 2l2.25-.116 2.25-.116-1.75-.457-1.75-.457V182.427 181h2 2v2 2l2.25-.116 2.25-.116-1.75-.457-1.75-.457v-.82-.82l1.582-.607L217.164 181H217.582 218l.116 2.25.116 2.25.457-1.75.457-1.75H220.573 222l.1 1.75.1 1.75.801-2.5.801-2.5.216 2.5.216 2.5.457-1.75.457-1.75h.877.877l1.097 1.75 1.097 1.75-.615-2.25-.615-2.25H229.433 231v1.3 1.3l-1.2 1.2-1.2 1.2H215.383 202.167ZM202.5 180H202v-.5-.5h.5.5v.5.5zm2.5 0h-1.333l.667-.667.667-.667.667 .667.667 .667zm2.5 0H207v-.5-.5h.5.5v.5.5zm3.5-.158h-2.5l1.25-.504 1.25-.504 1.25.504 1.25.504zm5 0h-2.5l1.25-.504 1.25-.504 1.25.504 1.25.504zm4.417.079-1.917-.079 1.313-.525 1.313-.525.604 .604.604 .604-1.917-.079zM223.5 180H223v-.5-.5h.5.5v.5.5zm2.917-.079-1.917-.079 1.313-.525 1.313-.525.604 .604.604 .604-1.917-.079zM230 180h-1.333l.667-.667.667-.667.667 .667.667 .667z"}] [:rect#musicarea {:style {:fill "#c6e6de"} :height 119 :width 240 :x 8 :y 23}] [:path#path48 {:style {:fill "#cfcfcf"} :d "M11.219 188.001 10.937 188 10.442 186.71 9.947 185.42 10.224 169.46 10.5 153.5h81 81v1.25 1.25l-1-.25-1-.25.252-.756.252-.756-79.752.256L11.5 154.5v16.751 16.751zM171.5 156h.5v-.5-.5h-.5-.5v.5.5zm.333 31.333L171.5 187.5 92.544 187.244 13.588 186.988 12.844 186.244 12.1 185.5 92.05 185.738 172 185.976l.083.595 .083.595-.333.167zM171.5 187h.5v-.5-.5h-.5-.5v.5.5zM92 184H15v-13-13h77 77v13 13zm0-1h76V171 159H92 16v12 12zM12.382 157h-.5L12.5 156l.618-1h.5.5L13.5 156l-.618 1z"}] [:path#path46 {:style {:fill "#f7bf8f"} :d "M 30,223 H 29 V 211.5 200 h 1 1 v 11.5 11.5 z m 212,0 h -1 V 211.5 200 h 1 1 v 11.5 11.5 z"}] [:path#path42 {:style {:fill "#9fbfaf"} :d "M92 183H16v-12-12h76 76v7.508 7.508l-1.919-1.198-1.919-1.198-1.581 1.312-1.581 1.312v1.255 1.255l1.581 1.312 1.581 1.312 1.919-1.198L168 176.983V179.992 183Zm15.801-4.207 1.485-.293 1.09-1.731 1.09-1.731-1.656-1.656-1.656-1.656-1.6.614-1.6.614-.589 1.535-.589 1.535 1.27 1.53 1.27 1.53zM136 177h20v-1-1h-20-20v1 1zM28 167H39V163.5 160H28 17v3.5 3.5zm32 0H71V163.5 160H60 49v3.5 3.5zm31.5 0H102V163.5 160H91.5 81v3.5 3.5zm44.5 0h14v-3.5-3.5h-14-14v3.5 3.5z"}] [:path.path40 {:style {:fill "#a7a7a7"} :d "M47.5 217H43v-4.5-4.5h4.5 4.5v4.5 4.5zm.25-1.136 2.75-.136-2.25-.433L46 214.861V213.93 213l1.75-.116 1.75-.116-1.75-.457-1.75-.457v-.857-.857l2.25-.433 2.25-.433-2.75-.136L45 209v3.5 3.5zM222.441 217H222v-1-1h1.059 1.059l-.618 1-.618 1zM220.5 216H220v-.5-.5h.5.5v.5.5zm-1-2h-.29l-.366-3.833-.366-3.833H219.5 220.521L220.156 210.167 219.79 214Zm5.607 0h-.893L223.607 212.418 223 210.836v-.977-.977l.929.574 .929.574 .435-2.265.435-2.265.136 4.25L226 214ZM185.5 213H185v-.5-.5h.5.5v.5.5zm10.719-.15-.719-.15-2.953-.436-2.953-.436-1.146-1.567-1.146-1.567-1.152.712L185 210.118V209.059 208h1.492 1.492l1.249-2 1.249-2h1.214 1.214l2.481 2.481 2.481 2.481-1.004.62-1.004.62 .537 1.399.537 1.399zm-3.458-2.045 1.574-.305.416-1.249.416-1.249-1.65-.633-1.65-.633-1.046 1.046-1.046 1.046.706 1.143.706 1.143zm34.906-4.139L227 207.333V206 204.667l.667.667L228.333 206ZM90.967 189H10.333L9.667 188.333 9 187.667V171.033 154.4l1.2-1.2 1.2-1.2h80.1 80.1l1.2 1.2 1.2 1.2v16.1 16.1l-1.2 1.2-1.2 1.2zm.754-1.244L172.5 187.5v-17-17h-81-81l-.276 15.96-.276 15.96.497 1.296.497 1.296zM13.417 186.001 13.333 186 12.667 185.333 12 184.667V171.033 157.4l1.2-1.2 1.2-1.2H92 169.6l1.2 1.2 1.2 1.2v13.741 13.741l-.75.465-.75.465V171.156 156.5H92 13.5v14.751 14.751l-.083-8.6zM92.5 184.509l-77 .009 76.721-.265 76.721-.265.324-12.995.324-12.995-.045 13.251L169.5 184.5l-77 .009z"}] [:path#path38 {:style {:fill "#f7f700"} :d "m103 216h-5v-3.544-3.544l1.75.294 1.75.294-.313-2.25-.313-2.25H104.437 108v5.5 5.5zm3.156-1.636.656-.366-.52-1.988-.52-1.988-.903.558-.903.558 .671 1.085.671 1.085-1.155-.714L103 211.882v.976.976l1.25.448 1.25.448zM100.313 213h.313l2.937-3.25 2.937-3.25-3.25 2.937-3.25 2.937V212.687 213ZM99.5 208H99.333L98.667 207.333 98 206.667V205.833 205h.833.833v1.5 1.5z"}] [:path#path34 {:style {:fill "#d99b55"} :d "m28.738 217.789-.36 5.711.004-12 .004-12 .356 6.289.356 6.289-.36 5.711zm215 0-.36 5.711.004-12 .004-12 .356 6.289.356 6.289-.36 5.711zM48.5 221H40v-1-1h7.5 7.5v-7.5-7.5h1 1v8.5 8.5zm97 0H138v-1-1h6.5 6.5v-7.5-7.5h1 1v8.5 8.5zm24 0H162v-1-1h6.5 6.5v-7.5-7.5h1 1v8.5 8.5zm24 0H186v-1-1h6.5 6.5v-7.5-7.5h1 1v8.5 8.5zm-96-1H83v-1-1h5.954 5.954l.35-6.75.35-6.75.196 6.75L96 218h7 7v-6.5-6.5h1 1v7.5 7.5zm127.5 0h-7v-1-1h6 6v-6.5-6.5h1 1v7.5 7.5zM97.5 217H97v-.5-.5h.5.5v.5.5zm0-12H97v-.5-.5h.5.5v.5.5zm11 0H108v-.5-.5h.5.5v.5.5z"}] [:path#path32 {:style {:fill "#9f9f7f"} :d "m216.55 190.792-14.05-.208 14.492-.542 14.492-.542.64-3 .64-3 .118 2.55.118 2.55-1.2 1.2-1.2 1.2zM215.5 189H203v-1-1h12.5 12.5v1 1zM200.637 187.696 200 188.333V183.367 178.4l1.2-1.2 1.2-1.2 14.05.208 14.05.208-14.5.542-14.5.542-.113 4.78-.113 4.78z"}] [:path#path28 {:style {:fill "#777776"} :d "M139.167 219H136v-2.023-2.023l2.75 1.72 2.75 1.72.417 .303.417 .303zm8.667 0h-3.167l.417-.303.417-.303 2.75-1.72 2.75-1.72V216.977 219ZM167.5 219H160v-8.5-8.5h7.5 7.5v8.5 8.5zm-.5-4.01h.5l3-2.491 3-2.491-2.361-2.004L168.778 206H167 165.222l-2.361 2.004-2.361 2.004 3 2.491 3 2.491zM191.5 219H184l.032-3.25.032-3.25 2.052 2.75 2.052 2.75h3.333 3.333l2.052-2.75 2.052-2.75.032 3.25.032 3.25h-7.5zm-103.25-2.185-5.75-.185 5.202-.366 5.202-.366.359-5.699.359-5.699.189 6.25L94 217ZM221.5 217H221v-.5-.5h.5.5v.5.5zm2.223 0h-1.033l1.655-1.829L226 213.343V210.171 207h.799.799l-.418 3.75-.418 3.75-1.004 1.25-1.004 1.25zM219.5 215H219v-.5-.5h.5.5v.5.5zM136.866 210.583 136 211.118V206.559 202h7.5 7.5v4.559 4.559l-.866-.535-.866-.535.446-2.335.446-2.335-1.599-1.327-1.599-1.327-1.787 1.618-1.787 1.618-1.644-1.644-1.644-1.644-1.631 1.353-1.631 1.353.446 2.335.446 2.335zM186.455 205.455 184 207.909V204.955 202h7.5 7.5v2.955 2.955L196.545 205.455 194.091 203H191.5 188.909ZM218.5 208H218v-.5-.5h.5.5v.5.5zm1-2H219v-.5-.5h.5.5v.5.5zm7 0H226v-.5-.5h.5.5v.5.5zM91.55 189.756 10.5 189.512 90.905 189.25 171.31 188.988 172.655 187.872 174 186.755V170.578 154.4l-1.25-1.402-1.25-1.402 1.75 1.324 1.75 1.324V170.922 187.6l-1.2 1.2-1.2 1.2zm139.487-.279-.876.541-1.479-1.479-1.479-1.479-12.852-.313L201.5 186.435 216.143 186.217 230.786 186l.563 1.468.563 1.468zM230.5 189h.5v-.5-.5h-.5-.5v.5.5zm-29 0H201v-.5-.5h.5.5v.5.5zM14.734 171.008 14.409 184.003 14.455 170.751 14.5 157.5l77.25-.009 77.25-.009-76.971.265-76.971.265-.324 12.995zM231.559 179h-.441l-.714-1.155-.714-1.155 1.155.714L232 178.118V178.559 179Z"}] [:path#path22 {:style {:fill "black"} :d "M27.7 205.8 27.4 217.5 27.2 205.8 27 194.1 13.3 193.7-.5 193.4 128 193.4 256.5 193.4 250.8 193.8 245.1 194.2 244.8 205.9 244.4 217.5 244.2 205.8 244 194H136 28.1ZM16 215H8V205 195H16 24V205 215ZM16 214H23V205 196H16 9V205 214ZM47.5 213H40V204.5 196H47.5 55V204.5 213ZM47.5 211H52V207.6 204.2L51.4 201.1 50.8 198H47.5 44.3L43.6 201.1 43 204.3V207.7 211.1ZM143.5 213H142.5L139.3 211 136.1 209V207 205L137 204.5 137.9 204 137.5 201.7 137.1 199.4 138.7 198.1 140.3 196.8 142.1 198.4 143.9 200 145.5 198.4 147.1 196.8 148.7 198.2 150.3 199.6 149.9 201.9 149.5 204.2 150.4 204.7 151.3 205.2V207.2 209.2L148.1 211.2 144.9 213.2ZM143.3 212 144.1 212 147.1 210.5 150 208.9V207 205.1L149.1 204.5 148.2 203.9 148.6 202.2 149 200.5 148.1 199.1 147.2 197.7 146.1 198.4 145 199.1V200.7 202.3L146.8 200.9 148.6 199.5 147.2 201.3 145.8 203.1 144.6 202.1 143.4 201.1 142.4 202.1 141.4 203.1 140 201.3 138.5 199.5 140.3 200.9 142.1 202.3V200.7 199.1L141 198.4 139.9 197.7 139 199.1 138.1 200.5 138.5 202.2 138.9 203.9 138 204.5 137 205.1V207 208.9L139.8 210.4 142.6 211.9 143.4 211.9ZM143.4 210 141.5 209.9 142.8 209.4 144.1 208.9 144.7 209.5 145.3 210.1 143.4 210ZM142.5 205H142V204.5 204H142.5 143V204.5 205ZM144.5 205H144V204.5 204H144.5 145V204.5 205ZM88 212H81V204.5 197H88 95V204.5 212ZM88 211H94V204.5 198H88 82V204.5 211ZM91.2 208.4 90.5 208.7 89.3 208.3 88 207.8V206.8 205.8L89.2 206.5 90.4 207.2 89.7 206.1 89 205 89.9 204.4 90.8 203.8 91.3 205.8 91.8 207.8ZM85.2 207H84.8L86 205.5 87.2 204 85.4 203.9 83.5 203.8 84.9 203.3 86.2 202.8 84.9 201.9 83.5 201 85 201 86.5 201 85 200 83.5 199 85.3 199 87 199V201.7 204.4L89.3 202.5 91.6 200.6 88.7 203.8 85.6 207ZM103 212H96V204.5 197H103 110V204.5 212ZM103 211H109V204.5 198H103 97V204.5 211ZM106.2 208.4 105.5 208.8 104.3 208.4 103.1 208V207 206L104.3 206.7 105.5 207.4 104.8 206.3 104.1 205.2 105 204.6 105.9 204 106.4 206 106.9 208ZM100.3 207H100V206.7 206.4L103.3 203.5 106.6 200.6 103.7 203.9 100.8 207.2ZM101.1 203.4 100.4 203.8 98.9 202.9 97.4 202 99 200.4 100.6 198.8 101.1 200.9 101.6 203ZM99.5 202H100V201.5 201H99.5 99V201.5 202ZM191.5 212H188.1L186 209.1 184 206.2V204.1 202L186.5 199.5 188.9 197H191.5 194.1L196.6 199.5 199.1 202V204.1 206.2L197 209.1 194.9 212ZM191.5 211H194.9L195.6 209.9 196.3 208.8 195.1 207.6 193.9 206.4 193 207.9 192.1 209.4 192 207.9 191.9 206.4 191.4 207.8 190.9 209.2 190.1 207.8 189.3 206.4 188.1 207.6 186.9 208.8 187.6 209.9 188.3 211H191.7ZM191.5 206.5H198V204.3 202L196 200 194 198H191.5 189L187 200 185 202V204.3 206.6ZM223 212H216V204.5 197H223 230V204.5 212ZM223 211H224.6L225.8 209.8 227 208.6V205.9 203.2L228 200.6 229 198H228 227L225 199.2 223 200.5 221 199.2 219 198H218 217L218 200.6 219 203.2V205.9 208.6L220.2 209.8 221.4 211ZM223 209H221.1L221.7 207.5 222.3 206H223 223.8L224.4 207.5 225 209ZM221.5 204H221V203.5 203H221.5 222V203.5 204ZM224.5 204H224V203.5 203H224.5 225V203.5 204ZM219.5 201H219V200.5 200H219.5 220V200.5 201ZM226.5 201H226V200.5 200H226.5 227V200.5 201ZM167 209H166.5L163.5 206.5 160.5 204 162.9 202 165.2 200H167 168.8L171.2 202 173.6 204 170.6 206.5 167.6 209ZM167 208H167.9L168.4 207.2 168.9 206.4H167 165.1L165.6 207.2 166.1 208ZM167 205.5H170.8L170.4 204.8 169.9 204H171 172.1L171.4 202.9 170.7 201.8 169.2 202.4 167.7 203 168.3 202 169.1 201H167 164.9L165.5 202 166.1 203 164.6 202.4 163.1 201.8 162.4 202.9 161.9 204H163 164.1L163.6 204.8 163.1 205.6ZM128 191H2V105 19H128 254V105 191ZM128 189H252V105 21H128 4V105 189ZM92 185H10.4L9.2 183.8 8 182.6V165 147.4L9.2 146.2 10.4 145H92 173.6L174.8 146.2 176 147.4V165 182.6L174.8 183.8 173.6 185ZM92 184H172.6L173.8 182.8 175 181.6V165 148.4L173.8 147.2 172.6 146H92 11.4L10.2 147.2 9 148.4V165 181.6L10.2 182.8 11.4 184ZM92.2 179.8 13.9 180.1 13.4 178.8 12.9 177.4 13.2 163.9 13.5 150.5H92 170.5V165 179.5ZM95.1 NaNV165 151.5H92 14.5L14.2 163.9 13.9 176.3 14.4 177.6 14.9 178.9ZM110.7 NaNZM110.4 NaNZM110.7 NaNV156.5 155L20.3 155.1 22.6 155.2 20.6 156.1 18.6 157 20.4 157.1 22 157V158.5 160L19.8 159.9ZM25.8 158.5 25.3 160.5 25.2 158.3 25 156.2 23.8 155.7 22.6 155.2 25.6 155.1 28.6 155 27.5 155.7 26.4 156.4 25.9 158.4ZM31 160H29V157.5 155H31 33V157.5 160ZM31 159H32V157.5 156H31 30V157.5 159ZM34.7 159.3 34.2 160.6 34.1 157.9 34 155H36 38V156.5 158H36.6 35.2ZM36 157H37.3L36.7 156.3 36 155.7 35.3 156.3 34.7 157ZM50.7 159.3 50.2 160.6 50.1 157.9 50 155H52 54V156.5 158H52.6 51.2ZM52 157H53.3L52.7 156.3 52 155.7 51.3 156.3 50.7 157ZM57.3 159.9 55 160 55.1 157.3 55.2 154.6 55.6 156.8 56 159 57.7 159.4 59.5 159.8ZM61 159 59.9 160.5 60.2 158 60.5 155.5H62 63.5L63.8 158 64.1 160.5 63 159 62 157.5ZM62 157H63.3L62.7 156.3 62 155.7 61.3 156.3 60.7 157ZM67.9 158.7 67.5 159.9 66.3 157.4 65.1 154.9 66.4 155.9 67.7 156.9 69.1 155.7 70.5 154.5 69.4 156 68.3 157.5ZM84.3 159.9 82 160 82.1 157.3 82.2 154.6 82.6 156.8 83 159 84.7 159.4 86.5 159.8ZM89 160H87V157.5 155H89 91V157.5 160ZM89 159H90V157.5 156H89 88V157.5 159ZM94 160H92V157.5 155H94 96V157.5 160ZM94 159H95V157.5 156H94 93V157.5 159ZM97.7 159.3 97.2 160.6 97.1 157.9 97 155H99 101V156.5 158H99.6 98.2ZM99 157H100.3L99.7 156.3 99 155.7 98.3 156.3 97.7 157ZM125.7 158.5 125.2 160.5 125.1 158.3 125 156.1 123.8 155.6 122.6 155.1 125.6 155 128.6 154.9 127.5 155.6 126.4 156.3 125.9 158.3ZM131.3 159.9 129 160V157.5 155L131.3 155.1 133.6 155.2 131.6 156 129.6 156.8 131.6 157.3 133.6 157.8 131.6 158 129.6 158.2 131.6 159.1 133.6 160 131.4 160.1ZM134.9 158.6 134.2 160.4 134.1 157.5 134 154.6 135.3 155.7 136.6 156.8 137.8 155.6 139 154.6 138.9 157.5 138.8 160.4 138.1 158.6 137.4 156.8H136.5 135.6L134.9 158.6ZM140.7 159.2 140.2 160.5 140.1 157.8 140 155H142 144V156.5 158H142.6 141.2ZM142 157H143.3L142.7 156.3 142 155.7 141.3 156.3 140.7 157ZM147 160H145V157.5 155H147 149V157.5 160ZM147 159H148V157.5 156H147 146V157.5 159ZM215.6 183.8 201.5 183.6 216 183.1 230.5 182.6 230.8 178.1 231.1 173.6 231.5 173.2 232 172.7V177.2 181.7L230.8 182.9 229.6 184.1ZM205 179H203V175.5 172H205 207V173 174L205.5 173.4 204 172.8V175.5 178.2L205.5 177.6 207 177V178 179ZM210.3 178.9 208.1 179 208.3 175.3 208.5 171.6 208.9 174.8 209.3 178 211 178.4 212.7 178.8ZM215.3 178.9 213 179V175.5 172L215.3 172.1 217.6 172.2 215.9 172.7 214.2 173.2V174 174.8L215.5 175.3 216.8 175.8 215.6 175.9 214 176V176.9 177.8L215.8 178.3 217.6 178.8ZM218.7 177.8 218.2 179.6 218.4 176.1 218.6 172.6H220.6 222.6L222.8 176.1 223 179.6 222.5 177.9 222 176.2H220.5 219.1ZM220.5 175H222V174 173H220.5 219V174 175ZM224.7 177.8 224.2 179.6 224.1 175.8 224 172 226.2 172.3 228.4 172.6 228.6 176 228.8 179.4 227.9 177.7 226.9 176H226 225.1ZM226.5 175H228V174 173H226.5 225V174 175ZM216 161H184V156.5 152H216 248V156.5 161ZM187.5 160H190V156.5 153H187.5 185V156.5 160ZM188.6 159H188.2L187.1 157.6 186 156.2 187.5 154.9 189 153.8V156.4 159ZM216 160H241V156.5 153H216 191V156.5 160ZM244.5 160H247V156.5 153H244.5 242V156.5 160ZM243.4 159H243V156.4 153.8L244.5 155.1 246 156.4 244.9 157.8 243.8 159ZM188.7 151H188.3L187.2 149.6 186.1 148.2 187.8 146.8 189.5 145.4 188.8 146.6 188.1 147.8 189.9 148.3 191.7 148.8 189.9 148.9 188.1 149 188.7 150 189.3 151ZM204.8 150.9 202.6 150.8 204.6 149.9 206.6 149 204.9 148.9 203 149V147.5 146L205.3 146.1 207.6 146.2 205.6 147.1 203.6 148 205.4 148.1 207.2 148.2V149.7 151.2L205 151.1ZM210 151H208V148.5 146H210 212V147 148L210.5 147.4 209 146.8V148.5 150.2L210.5 149.6 212 149V150 151ZM214 150 213 151.5 213 148.8 213 146H214.9 216.8V148.6 151.2L215.9 149.9 215 148.5ZM215 148H216.3L215.7 147.3 215 146.7 214.3 147.3 213.7 148ZM220 151H218V148.5 146H220 222V148.5 151ZM220 150H221V148.5 147H220 219V148.5 150ZM224.8 151 223 151 223.1 148.3 223.2 145.6 223.7 147.6 224.2 149.6 225.3 150.3 226.4 151 224.7 151ZM228.8 151 227 151 227.1 148.3 227.2 145.6 227.7 147.6 228.2 149.6 229.3 150.3 230.4 151 228.7 151ZM243.4 151H243L243.6 150.1 244.2 149.2 242.4 148.7 240.6 148.2 242.4 148.1 244.2 148 243.4 146.8 242.6 145.6 244.3 147 246 148.4 244.9 149.8 243.8 151.2ZM193.5 148.9 191.6 148.8 192.9 148.3 194.2 147.8 194.8 148.4 195.4 149 193.5 148.9ZM197.5 148.9 195.6 148.8 196.9 148.3 198.2 147.8 198.8 148.4 199.4 149 197.5 148.9ZM234.5 148.9 232.6 148.8 233.9 148.3 235.2 147.8 235.8 148.4 236.4 149 234.5 148.9ZM238.5 148.9 236.6 148.8 237.9 148.3 239.2 147.8 239.8 148.4 240.4 149 238.5 148.9Z"}]]) (defn tile [color row length height offset array] [:line {:x1 0 :x2 length :y1 (+ row (/ height 2)) :y2 (+ row (/ height 2)) :stroke-width height :stroke-dasharray array :stroke-dashoffset offset :stroke color}]) (defn hill [x] [:g {:transform "translate(-0.75,4.875) scale(0.3)"} (doall (for [line (range 32)] ^{:key line} [:g [:line {:x1 (case line 0 (- x 3) 1 (- x 6) 2 (- x 8) (- x (+ 6 line))) :x2 (case line 0 (+ x 3) 1 (+ x 6) 2 (+ x 8) (+ x (+ 6 line))) :y1 line :y2 line :stroke-width 1.5 :stroke "#00ad00"}] [:line {:x1 (case line 0 (- x 3) 1 (- x 6) 2 (- x 8) (- x (+ 6 line))) :x2 (case line 0 (+ x 3) 1 (+ x 6) 2 (+ x 8) (+ x (+ 6 line))) :y1 line :y2 line :stroke-width 1 :stroke-dasharray (case line 0 "6" 1 "3 6" 2 "2 12" (str "1 " (* 2 (+ 5 line)))) :stroke-dashoffset 0 :stroke "black"}]])) [:path {:transform "translate(40,2)" :d "M0 4H2V8H0V4Z M3 1H4V0H5V1H6V5H5V6H4V5H3V1Z"}] [:path {:transform "translate(24,18)" :d "M0 4H2V8H0V4Z M3 1H4V0H5V1H6V5H5V6H4V5H3V1Z"}] [:path {:transform "translate(48,18)" :d "M0 4H2V8H0V4Z M3 1H4V0H5V1H6V5H5V6H4V5H3V1Z"}]]) (defn cloud [x y] [:g {:transform (str " scale(0.2) translate(" x "," y ")")} [:path {:stroke "#6b8cff" :d "M0 0h14M18 0h14M0 1h13M19 1h13M0 2h11M20 2h12M0 3h10M20 3h1M22 3h10M0 4h10M23 4h9M0 5h10M24 5h8M0 6h9M24 6h8M0 7h8M24 7h8M0 8h5M25 8h2M28 8h4M0 9h4M25 9h1M29 9h3M0 10h3M29 10h3M0 11h3M29 11h1M31 11h1M0 12h1M0 15h1M31 15h1M0 16h2M30 16h2M0 17h3M31 17h1M0 18h4M0 19h4M31 19h1M0 20h5M31 20h1M0 21h8M29 21h3M0 22h9M15 22h1M24 22h1M27 22h5M0 23h11M14 23h4M22 23h10"}] [:path {:stroke "#000000" :d "M14 0h4M13 1h1M18 1h1M11 2h2M19 2h1M10 3h1M19 3h1M21 3h1M10 4h1M20 4h1M22 4h1M10 5h1M23 5h1M9 6h1M23 6h1M8 7h1M23 7h1M5 8h3M24 8h1M27 8h1M4 9h1M24 9h1M26 9h1M28 9h1M3 10h1M25 10h1M28 10h1M28 11h1M30 11h1M1 12h2M29 12h1M31 12h1M0 13h1M31 13h1M0 14h1M31 14h1M1 15h1M30 15h1M2 16h1M29 16h1M3 17h1M30 17h1M4 18h1M31 18h1M4 19h1M5 20h3M29 20h2M8 21h1M15 21h1M24 21h1M27 21h2M9 22h2M14 22h1M16 22h2M22 22h2M25 22h2M11 23h3M18 23h4"}] [:path {:stroke "#fefefe" :d "M14 1h4M13 2h6M11 3h8M11 4h9M21 4h1M11 5h6M18 5h5M10 6h3M15 6h3M19 6h4M9 7h3M13 7h10M8 8h16M5 9h19M27 9h1M4 10h21M26 10h2M3 11h25M3 12h26M30 12h1M1 13h30M1 14h30M2 15h28M3 16h2M6 16h11M18 16h11M4 17h2M7 17h2M10 17h6M17 17h13M5 18h2M11 18h3M18 18h4M23 18h8M5 19h5M16 19h1M22 19h9M8 20h4M14 20h4M21 20h8M9 21h6M16 21h8M25 21h2M11 22h3M18 22h4"}] [:path {:stroke "#39bdff" :d "M17 5h1M13 6h2M18 6h1M12 7h1M5 16h1M17 16h1M6 17h1M9 17h1M16 17h1M7 18h4M14 18h4M22 18h1M10 19h6M17 19h5M12 20h2M18 20h3"}]]) (defn mario-icon [x y scale] (into [:g {:pointer-events "none" :transform (str "scale(" scale ") translate(" (+ x 30.5) "," (+ 3 y) ")")}] (for [[color path] [["#c04020" "M3 0h5M2 1h1M8 1h2M2 2h1M10 2h1M11 3h1M12 4h1M13 5h1M13 6h1M1 8h1M13 8h1M1 9h1M13 9h1M1 10h1M6 10h1M1 13h3M10 13h1M3 14h8"] ["#f80000" "M3 1h2M6 1h2M8 2h2M10 3h1M11 4h1"] ["#f8f800" "M5 1h1M5 2h1"] ["#c000c0" "M3 2h1M7 2h1M8 3h2M10 4h1M11 5h2M11 6h2"] ["#f8f8f8" "M4 2h1M3 6h2M6 6h2M3 7h1M7 7h1M3 8h1M7 8h1"] ["#f88000" "M6 2h1M5 6h1M8 6h1M8 7h2M13 7h1M9 8h1M5 9h2M12 9h1M2 10h4M11 10h3M9 11h3M9 12h2M4 13h6"] ["#000000" "M1 3h7M0 4h10M0 5h11M1 6h2M9 6h2M4 7h1M6 7h1M10 7h2M4 8h1M6 8h1M10 8h2M9 9h3M7 10h1M10 10h1M0 11h9M12 11h2M1 12h6M11 12h2M11 13h1"] ["#f8c080" "M5 7h1M12 7h1M2 8h1M5 8h1M8 8h1M12 8h1M2 9h3M7 9h2M8 10h2M7 12h2"]]] [:path {:stroke color :d path}]))) (defn mario-note [x y scale] (into [:g {:transform (str "scale(" scale ") translate(" (+ x 30.5) "," (+ 3 y) ")") :pointer-events "none"}] (for [[color path] [["#c04020" "M3 0h5M2 1h1M8 1h2M2 2h1M10 2h1M11 3h1M12 4h1M13 5h1M13 6h1M1 8h1M13 8h1M1 9h1M13 9h1M1 10h1M6 10h1M1 13h3M10 13h1M3 14h8"] ["#f80000" "M3 1h2M6 1h2M8 2h2M10 3h1M11 4h1"] ["#f8f800" "M5 1h1M5 2h1"] ["#c000c0" "M3 2h1M7 2h1M8 3h2M10 4h1M11 5h2M11 6h2"] ["#f8f8f8" "M4 2h1M3 6h2M6 6h2M3 7h1M7 7h1M3 8h1M7 8h1"] ["#f88000" "M6 2h1M5 6h1M8 6h1M8 7h2M13 7h1M9 8h1M5 9h2M12 9h1M2 10h4M11 10h3M9 11h3M9 12h2M4 13h6"] ["#000000" "M1 3h7M0 4h10M0 5h11M1 6h2M9 6h2M4 7h1M6 7h1M10 7h2M4 8h1M6 8h1M10 8h2M9 9h3M7 10h1M10 10h1M0 11h9M12 11h2M1 12h6M11 12h2M11 13h1"] ["#f8c080" "M5 7h1M12 7h1M2 8h1M5 8h1M8 8h1M12 8h1M2 9h3M7 9h2M8 10h2M7 12h2"]]] [:path {:stroke color :d path}]))) (defn color-paths ([paths x y scale] (color-paths nil paths x y scale)) ([attrs paths x y scale] (into [:g (merge attrs {:transform (str "scale(" scale ") translate(" x "," y ")")})] (for [[color path] paths] [:path {:stroke color :d path}])))) (defn shroom [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M5 0h6M3 1h2M11 1h2M2 2h1M13 2h1M1 3h1M14 3h1M1 4h1M14 4h1M0 5h1M15 5h1M0 6h1M15 6h1M0 7h1M15 7h1M0 8h1M15 8h1M0 9h1M15 9h1M0 10h1M4 10h8M15 10h1M1 11h3M6 11h1M9 11h1M12 11h3M2 12h1M6 12h1M9 12h1M13 12h1M2 13h1M13 13h1M3 14h1M12 14h1M4 15h8"] ["#f8f8f8" "M5 1h2M3 2h4M11 2h2M2 3h4M12 3h2M2 4h3M7 4h4M13 4h1M6 5h6M2 6h2M6 6h6M1 7h4M6 7h6M14 7h1M1 8h4M7 8h4M13 8h2M2 9h2M13 9h2M14 10h1M4 11h2M7 11h2M10 11h2M3 12h3M7 12h2M10 12h3M3 13h10M4 14h8"] ["#c000c0" "M7 1h4M1 5h1M14 5h1M1 6h1M14 6h1M1 9h1M4 9h9M1 10h3M12 10h2"] ["#f80000" "M7 2h4M6 3h6M5 4h2M11 4h2M2 5h4M12 5h2M4 6h2M12 6h2M5 7h1M12 7h2M5 8h2M11 8h2"]] x y scale)) (defn yoshi [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M6 0h3M5 1h1M9 1h1M10 2h1M3 3h2M6 3h1M10 3h2M1 4h2M6 4h1M12 4h1M0 5h1M9 5h1M12 5h1M0 6h1M7 6h2M12 6h1M0 7h1M3 7h4M11 7h1M1 8h3M11 8h1M4 9h1M12 9h2M15 9h1M4 10h1M14 10h2M3 11h1M15 11h1M3 12h1M8 12h6M15 12h1M3 13h1M7 13h2M13 13h1M15 13h1M4 14h1M7 14h1M13 14h2M5 15h9"] ["#008040" "M6 1h3M8 2h2M9 3h1M3 4h1M11 4h1M1 5h1M11 5h1M11 6h1M10 7h1M10 8h1M11 9h1M12 10h2M14 11h1"] ["#f8f8f8" "M5 2h3M5 3h1M7 3h2M5 4h1M7 4h3M2 5h1M6 5h3M7 7h1M4 8h4M5 9h4M5 10h5M4 11h7M4 12h4M4 13h3M14 13h1M5 14h2M8 14h1"] ["#00f800" "M4 4h1M10 4h1M3 5h2M10 5h1M1 6h2M10 6h1M9 7h1M9 8h1M10 9h1M11 10h1M12 11h2M14 12h1"] ["#f8f800" "M5 5h1M3 6h4M9 6h1M1 7h2M8 7h1M8 8h1M9 9h1M10 10h1M11 11h1"] ["#f88000" "M9 13h2M9 14h1"] ["#c04020" "M11 13h2M10 14h3"]] x y scale)) (defn star [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M7 0h1M6 1h1M8 1h1M6 2h1M8 2h1M5 3h1M9 3h1M5 4h1M9 4h1M0 5h5M10 5h5M0 6h1M6 6h1M8 6h1M14 6h1M1 7h1M6 7h1M8 7h1M13 7h1M2 8h1M6 8h1M8 8h1M12 8h1M3 9h1M11 9h1M2 10h1M12 10h1M2 11h1M12 11h1M1 12h1M7 12h1M13 12h1M1 13h1M5 13h2M8 13h2M13 13h1M0 14h1M3 14h2M10 14h2M14 14h1M0 15h3M12 15h3"] ["#f8f800" "M7 1h1M7 2h1M6 3h3M6 4h3M5 5h5M1 6h5M7 6h1M9 6h5M2 7h4M7 7h1M9 7h4M3 8h3M7 8h1M9 8h3M4 9h7M3 10h9M3 11h9M2 12h5M8 12h5M2 13h3M10 13h3M1 14h2M12 14h2"]] x y scale)) (defn flower [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M7 0h2M2 1h1M6 1h1M9 1h1M13 1h1M1 2h1M3 2h1M5 2h1M10 2h1M12 2h1M14 2h1M1 3h1M4 3h1M11 3h1M14 3h1M0 4h1M15 4h1M0 5h1M4 5h2M9 5h2M15 5h1M0 6h1M3 6h1M6 6h1M8 6h1M11 6h1M15 6h1M0 7h1M15 7h1M1 8h1M14 8h1M2 9h1M13 9h1M3 10h2M11 10h2M5 11h6M2 12h3M6 12h1M9 12h4M1 13h1M5 13h2M9 13h1M13 13h1M0 14h1M6 14h1M8 14h1M14 14h1M0 15h1M6 15h3M14 15h1"] ["#f88000" "M7 1h2M2 2h1M6 2h4M2 3h2M5 3h6M12 3h2M1 4h13M1 5h3M6 5h3M11 5h3M1 6h2M4 6h2M7 6h1M9 6h2M12 6h2M1 7h12M2 8h11M4 9h6"] ["#c04020" "M13 2h1M14 4h1M14 5h1M14 6h1M13 7h2M13 8h1M3 9h1M10 9h3M5 10h6"] ["#008040" "M7 12h1M2 13h2M7 13h1M10 13h2M1 14h4M7 14h1M9 14h4"] ["#00f800" "M8 12h1M4 13h1M8 13h1M12 13h1M5 14h1M13 14h1M1 15h5M9 15h5"]] x y scale)) (defn gb [x y scale] (color-paths {:pointer-events "none"} [["#808080" "M1 0h10M0 1h1M11 1h1M0 2h1M2 2h8M11 2h1M0 3h1M2 3h2M8 3h2M11 3h1M0 4h1M2 4h2M8 4h2M11 4h1M0 5h1M2 5h2M8 5h2M11 5h1M0 6h1M2 6h2M8 6h2M11 6h1M0 7h1M2 7h7M11 7h1M0 8h1M11 8h1M0 9h1M11 9h1M0 10h1M11 10h1M0 11h1M11 11h1M0 12h1M11 12h1M0 13h1M11 13h1M0 14h1M10 14h2M1 15h10"] ["#f8f8f8" "M1 1h1M4 3h1M4 4h1M4 5h1M4 6h1"] ["#c0c0c0" "M2 1h9M1 2h1M10 2h1M1 3h1M10 3h1M1 4h1M10 4h1M1 5h1M10 5h1M1 6h1M10 6h1M1 7h1M9 7h2M1 8h10M1 9h10M1 10h2M4 10h5M10 10h1M1 11h1M5 11h6M1 12h2M4 12h3M8 12h3M1 13h10M1 14h9"] ["#f8f800" "M5 3h3M5 4h3M5 5h3M5 6h3"] ["#000000" "M3 10h1M2 11h3M3 12h1"] ["#c000c0" "M9 10h1M7 12h1"]] x y scale)) (defn dog [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M0 0h2M5 0h2M0 1h1M2 1h3M6 1h1M14 1h1M0 2h1M6 2h8M0 3h2M4 3h1M13 3h1M0 4h1M13 4h1M0 5h1M2 5h1M5 5h1M13 5h1M0 6h1M5 6h1M13 6h1M0 7h5M13 7h1M1 8h1M3 8h1M5 8h7M13 8h1M1 9h1M3 9h1M5 9h1M9 9h1M11 9h1M13 9h1M1 10h1M3 10h1M5 10h1M9 10h1M11 10h1M13 10h1M1 11h1M3 11h1M5 11h1M9 11h1M11 11h1M13 11h1M1 12h5M9 12h5"] ["#f8f8f8" "M1 1h1M5 1h1M1 2h5M2 3h2M5 3h8M1 4h12M1 5h1M3 5h2M6 5h7M1 6h4M6 6h7M5 7h8M2 8h1M4 8h1M12 8h1M2 9h1M4 9h1M10 9h1M12 9h1M2 10h1M4 10h1M10 10h1M12 10h1M2 11h1M4 11h1M10 11h1M12 11h1"]] x y scale)) (defn kitty [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M13 0h1M1 1h1M5 1h1M12 1h1M0 2h1M2 2h3M6 2h1M13 2h1M0 3h1M6 3h1M12 3h1M0 4h1M2 4h1M4 4h1M6 4h1M13 4h1M0 5h1M7 5h6M1 6h1M3 6h1M13 6h1M1 7h1M13 7h1M1 8h1M13 8h1M1 9h1M3 9h1M5 9h7M13 9h1M1 10h1M3 10h1M5 10h1M9 10h1M11 10h1M13 10h1M1 11h1M3 11h1M5 11h1M9 11h1M11 11h1M13 11h1M2 12h1M4 12h1M10 12h1M12 12h1"] ["#f8c080" "M1 2h1M5 2h1M2 3h3M1 4h1M3 4h1M5 4h1M1 5h2M4 5h3M5 6h2M8 6h1M10 6h1M12 6h1M2 7h5M8 7h1M10 7h1M12 7h1M2 8h5M8 8h1M10 8h1M12 8h1M2 9h1M4 9h1M12 9h1M2 10h1M4 10h1M10 10h1M12 10h1M2 11h1M4 11h1M10 11h1M12 11h1"] ["#c04020" "M1 3h1M5 3h1M3 5h1M2 6h1M4 6h1M7 6h1M9 6h1M11 6h1"] ["#806000" "M7 7h1M9 7h1M11 7h1"] ["#f88000" "M7 8h1M9 8h1M11 8h1"]] x y scale)) (defn pig [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M3 0h1M7 0h1M2 1h1M4 1h3M8 1h1M1 2h1M9 2h1M15 2h1M0 3h1M3 3h1M7 3h1M10 3h1M14 3h1M0 4h1M10 4h1M15 4h1M0 5h1M3 5h5M10 5h5M0 6h1M2 6h1M8 6h1M10 6h1M14 6h1M0 7h1M2 7h1M4 7h1M6 7h1M8 7h1M10 7h1M14 7h1M0 8h1M2 8h1M8 8h1M10 8h1M14 8h1M0 9h1M2 9h7M10 9h1M14 9h1M1 10h1M3 10h1M7 10h1M9 10h1M14 10h1M2 11h7M14 11h1M2 12h1M14 12h1M2 13h1M4 13h1M6 13h7M14 13h1M2 14h1M4 14h1M6 14h1M10 14h1M12 14h1M14 14h1M3 15h1M5 15h1M11 15h1M13 15h1"] ["#f8c080" "M3 1h1M7 1h1M2 2h7M1 3h1M4 3h3M9 3h1M1 4h9M1 5h2M8 5h2M1 6h1M3 6h5M9 6h1M11 6h3M1 7h1M3 7h1M5 7h1M7 7h1M9 7h1M11 7h3M1 8h1M3 8h5M9 8h1M11 8h3M1 9h1M9 9h1M11 9h3M2 10h1M8 10h1M10 10h4M9 11h5M3 12h11M3 13h1M5 13h1M13 13h1M3 14h1M5 14h1M11 14h1M13 14h1"] ["#f8f8f8" "M2 3h1M8 3h1"] ["#f80000" "M4 10h3"]] x y scale)) (defn swan [x y scale] (color-paths {:pointer-events "none"} [["#c0c0c0" "M3 1h3M5 2h2M6 3h2M5 4h1M7 4h1M4 7h1M15 7h1M3 8h1M9 8h2M14 8h2M2 9h1M5 9h3M11 9h3M15 9h1M1 10h1M3 10h3M14 10h1M1 11h1M4 11h3M11 11h3M1 12h3M8 12h4M2 13h1M4 13h4"] ["#806000" "M2 2h1M3 4h1M1 5h2M7 14h3M8 15h1"] ["#f8f8f8" "M3 2h2M4 3h2M6 4h1M6 5h1M6 6h1M5 7h1M4 8h1M3 9h1M8 9h3M14 9h1M2 10h1M6 10h8M2 11h2M7 11h4M4 12h3"] ["#f88000" "M1 3h2M0 4h1M0 5h1M6 16h4"] ["#f8f800" "M3 3h1M1 4h2M5 16h1"] ["#808080" "M4 4h1M5 5h1M7 5h1M5 6h1M7 6h1M6 7h1M5 8h4M4 9h1M14 11h1M7 12h1M12 12h3M3 13h1M8 13h6M4 14h3M10 14h2"]] x y scale)) (defn face [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M5 1h6M3 2h2M11 2h2M2 3h1M13 3h1M1 4h1M14 4h1M1 5h1M3 5h3M10 5h3M14 5h1M0 6h1M2 6h1M4 6h1M6 6h1M9 6h1M11 6h1M13 6h1M15 6h1M0 7h1M3 7h3M10 7h3M15 7h1M0 8h1M15 8h1M0 9h1M7 9h2M15 9h1M0 10h1M6 10h1M9 10h1M15 10h1M0 11h1M3 11h1M12 11h1M15 11h1M1 12h1M4 12h8M14 12h1M1 13h1M5 13h1M10 13h1M14 13h1M2 14h1M6 14h4M13 14h1M3 15h2M11 15h2M5 16h6"] ["#f8c080" "M5 2h6M3 3h10M2 4h12M2 5h1M6 5h4M13 5h1M1 6h1M7 6h2M14 6h1M1 7h2M6 7h4M13 7h2M1 8h14M1 9h6M9 9h6M1 10h5M7 10h2M10 10h5M1 11h2M4 11h8M13 11h2M2 12h2M12 12h2M2 13h3M11 13h3M3 14h3M10 14h3M5 15h6"] ["#f8f8f8" "M3 6h1M5 6h1M10 6h1M12 6h1"] ["#f80000" "M6 13h4"]] x y scale)) (defn plane [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M3 0h3M13 0h2M2 1h1M6 1h1M12 1h1M15 1h1M2 2h2M7 2h5M15 2h1M1 3h1M15 3h1M0 4h1M15 4h1M0 5h1M15 5h1M0 6h1M5 6h1M10 6h1M13 6h2M1 7h1M6 7h1M10 7h3M2 8h6M10 8h1M8 9h3"] ["#f8f8f8" "M3 1h2M13 1h2M4 2h2M12 2h3M2 3h13M1 5h14M6 6h4M7 7h3M8 8h2"] ["#c0c0c0" "M5 1h1M6 2h1M1 6h4M11 6h2M2 7h4"] ["#f80000" "M1 4h14"]] x y scale)) (defn boat [x y scale] (color-paths {:pointer-events "none"} [["#000000" "M6 0h1M11 0h3M6 1h1M11 1h1M13 1h1M6 2h1M11 2h1M13 2h1M6 3h1M8 3h7M6 4h1M8 4h1M14 4h1M0 5h5M6 5h1M8 5h1M10 5h1M12 5h1M14 5h1M0 6h1M4 6h12M1 7h1M15 7h1M1 8h15M1 9h1M15 9h1M2 10h1M14 10h1M2 11h13"] ["#f8f800" "M12 1h1M12 2h1"] ["#f8f8f8" "M9 4h5M9 5h1M11 5h1M13 5h1M1 6h3M2 7h13"] ["#f88000" "M2 9h1M3 10h1"] ["#f80000" "M3 9h12M4 10h10"]] x y scale)) (defn car [x y scale] (color-paths {:pointer-events "none"} [["#0000f8" "M6 0h1M5 1h1M4 2h1"] ["#000000" "M7 0h5M7 1h1M10 1h1M12 1h1M6 2h1M11 2h1M13 2h1M1 3h11M14 3h1M0 4h1M15 4h1M0 5h1M15 5h1M0 6h1M3 6h2M11 6h2M15 6h1M0 7h1M2 7h1M5 7h1M10 7h1M13 7h1M15 7h1M1 8h2M5 8h6M13 8h2M3 9h2M11 9h2"] ["#f8f8f8" "M6 1h1M8 1h1M5 2h1M7 2h1M4 7h1M12 7h1"] ["#00f8f8" "M9 1h1M8 2h3"] ["#f88000" "M11 1h1M12 2h1M12 3h2M14 4h1M1 5h14M1 6h2M5 6h6M13 6h2"] ["#f8f800" "M1 4h13"] ["#f80000" "M1 7h1M6 7h4M14 7h1"] ["#808080" "M3 7h1M11 7h1"] ["#c0c0c0" "M3 8h2M11 8h2"]] x y scale)) (defn heart [x y scale] (color-paths {:pointer-events "none"} [["#f80000" "M2 0h4M9 0h4M1 1h2M5 1h2M8 1h1M12 1h2M1 2h1M3 2h5M9 2h5M0 3h1M2 3h13M0 4h1M2 4h13M0 5h1M2 5h13M1 6h1M3 6h11M1 7h2M4 7h10M2 8h2M5 8h8M3 9h9M4 10h2M7 10h4M5 11h5M6 12h3M7 13h1"] ["#f8f8f8" "M3 1h2M9 1h3M2 2h1M8 2h1M1 3h1M1 4h1M1 5h1M2 6h1M3 7h1M4 8h1M6 10h1"]] x y scale)) (defn floor-tile [length] [:g {:transform (str "scale(" 0.125 ") translate (0," 115 ")")} [tile "#e45e10" 0 (* 32 length) 1 1 "2 9 1 4"] [tile "#f0d0b0" 0 (* 32 length) 1 -1 "8 2 4 2"] [tile "black" 0 (* 32 length) 10 -9 "1 15"] [tile "#f0d0b0" 1 (* 32 length) 9 0 "1 15"] [tile "#e45e10" 1 (* 32 length) 9 -1 "8 8"] [tile "#f0d0b0" 1 (* 32 length) 4 -10 "1 15"] [tile "#e45e10" 1 (* 32 length) 3 -11 "4 12"] [tile "black" 1 (* 32 length) 4 -15 "1 15"] [tile "black" 4 (* 32 length) 1 -11 "1 15"] [tile "#e45e10" 4 (* 32 length) 1 -12 "3 13"] [tile "#e45e10" 5 (* 32 length) 1 -10 "1 4 1 10"] [tile "black" 5 (* 32 length) 1 -11 "4 12"] [tile "#f0d0b0" 6 (* 32 length) 1 -10 "5 11"] [tile "black" 6 (* 32 length) 10 -15 "1 15"] [tile "#f0d0b0" 7 (* 32 length) 3 -10 "1 15"] [tile "#e45e10" 7 (* 32 length) 7 -11 "4 12"] [tile "black" 10 (* 32 length) 1 0 "2 6 1 7"] [tile "#e45e10" 10 (* 32 length) 1 -2 "6 2 5 3"] [tile "#f0d0b0" 10 (* 32 length) 1 -9 "1 15"] [tile "#f0d0b0" 11 (* 32 length) 1 0 "2 7 1 6"] [tile "black" 11 (* 32 length) 1 -2 "2 4 1 9"] [tile "#e45e10" 11 (* 32 length) 1 -4 "4 2 1 9"] [tile "#f0d0b0" 12 (* 32 length) 1 0 "1 1 2 4 1 7"] [tile "#e45e10" 12 (* 32 length) 3 -1 "1 7 5 3"] [tile "#f0d0b0" 13 (* 32 length) 1 0 "1 3 3 1 1 7"] [tile "black" 12 (* 32 length) 1 -4 "4 12"] [tile "#e45e10" 13 (* 32 length) 1 -2 "2 14"] [tile "black" 13 (* 32 length) 1 -7 "1 15"] [tile "#f0d0b0" 14 (* 32 length) 1 0 "1 7 1 7"] [tile "#e45e10" 14 (* 32 length) 1 -2 "5 11"] [tile "black" 14 (* 32 length) 1 -7 "1 6 1 8"] [tile "#e45e10" 15 (* 32 length) 1 1 "2 6 1 7"] [tile "black" 15 (* 32 length) 1 -1 "6 2 6 2"] [tile "#f0d0b0" 15 (* 32 length) 1 -8 "1 15"]]) ================================================ FILE: src/mecca/max_or_throw.cljs ================================================ (ns mecca.max-or-throw "Taken from a previous version of SCI. See https://github.com/borkdude/sci/commit/4197294987cdd85a8c909328c6fc5d5ba92fa7c6.") (defprotocol MaxOrThrow (max-or-throw [this n])) (defn bottom [n data] (lazy-seq [(throw (ex-info (str "Maximum number of elements realized: " n) data))])) (defn take* ([n coll err-val] (lazy-seq (if (pos? n) (when-let [s (seq coll)] (cons (first s) (take* (dec n) (rest s) err-val))) err-val)))) (defn take-or-throw [coll n] (take* n coll (bottom n (merge {:type :sci.error/realized-beyond-max :realize-max n})))) (extend-protocol MaxOrThrow nil (max-or-throw ([this n] this)) default (max-or-throw ([this n] this)) LazySeq (max-or-throw ([this n] (take-or-throw this n))) Cons (max-or-throw ([this n] (take-or-throw this n))) Range (max-or-throw ([this n] (take-or-throw this n))) Iterate (max-or-throw ([this n] (take-or-throw this n))) Repeat (max-or-throw ([this n] (take-or-throw this n)))) ================================================ FILE: src/mecca/music.cljs ================================================ (ns mecca.music (:require [cljs.core.async :refer [rate [midi-num] (if (< 66 midi-num) (inc-rate (- midi-num 66)) (dec-rate (- 68 midi-num)))) (defn play-note [pitch] (let [context @(subscribe [:audio-context]) samples (subscribe [:samples]) instrument (subscribe [:instrument]) audio-buffer (:decoded-buffer (get @samples @instrument)) sample-source (.createBufferSource context)] (set! (.-buffer sample-source) audio-buffer) (.setValueAtTime (.-playbackRate sample-source) (pitch->rate pitch) (.-currentTime context)) (.connect sample-source (.-destination context)) (.start sample-source) sample-source)) (defn play-sample [instrument pitch] (let [context (subscribe [:audio-context]) samples (subscribe [:samples]) audio-buffer (:decoded-buffer (get @samples instrument)) sample-source (.createBufferSource @context) compressor (.createDynamicsCompressor @context) analyser (.createAnalyser @context)] (set! (.-buffer sample-source) audio-buffer) (.setValueAtTime (.-playbackRate sample-source) (pitch->rate pitch) (.-currentTime @context)) (.connect sample-source analyser) (.connect sample-source (.-destination @context)) (.start sample-source) sample-source)) (defn play-at [instrument pitch time] (let [context (subscribe [:audio-context]) samples (subscribe [:samples]) audio-buffer (:decoded-buffer (get @samples instrument)) sample-source (.createBufferSource @context)] (set! (.-buffer sample-source) audio-buffer) (.setValueAtTime (.-playbackRate sample-source) (pitch->rate pitch) time) (.connect sample-source (.-destination @context)) (.start sample-source time) sample-source)) (defn delay-note [beats note] (update note :time #(+ beats %))) (defn advance-note [beats note] (update note :time #(- % beats))) (defn queue-section [from to] (let [notes (subscribe [:notes]) started (subscribe [:play-start]) tempo (subscribe [:tempo]) section (filter #(<= from (:time %) to) @notes) advanced (map #(advance-note from %) section)] (doall (for [{:keys [time instrument pitch]} section] (play-at instrument pitch (+ @started (* (/ 60 @tempo) time))))))) (defn play-section [from to] (let [notes (subscribe [:notes]) now (.-currentTime @(subscribe [:audio-context])) tempo (subscribe [:tempo]) section (filter #(<= from (:time %) to) @notes) advanced (map #(advance-note from %) section)] (doall (for [{:keys [time instrument pitch]} advanced] (play-at instrument pitch (+ now (* (/ 60 @tempo) time))))))) (defn play-notes [n] (let [editor-start (subscribe [:editor-beat-start]) tempo (subscribe [:tempo]) beat-length (/ 60 @(subscribe [:tempo])) play-pos (if (< @editor-start 4) @editor-start (+ 4 @(subscribe [:editor-beat-start])))] (play-section (dec play-pos) (+ (dec play-pos) (* n 0.5))))) (defn play-from-here [] (let [notes (subscribe [:notes]) editor-start (subscribe [:editor-beat-start]) play-pos ;(if (< @editor-start 4) @editor-start ; (+ 4 @(subscribe [:editor-beat-start]))) length (apply max (map #(:time %) @notes))] (play-section (dec play-pos) (+ 16 play-pos)))) (defn play-song! [] (let [notes (subscribe [:notes]) now (.-currentTime @(subscribe [:audio-context])) tempo (subscribe [:tempo])] (dispatch [:reset-position]) (doall (for [{:keys [time instrument pitch]} @notes] (play-at instrument pitch (+ now (* (/ 60 @tempo) time))))))) (defn get-bytes! [analyser freq-data] (.getByteFrequencyData analyser freq-data) freq-data) ================================================ FILE: src/mecca/sci.cljs ================================================ (ns mecca.sci (:require ["@codemirror/view" :as view] [mecca.max-or-throw :refer [max-or-throw]] [applied-science.js-interop :as j] [nextjournal.clojure-mode.extensions.eval-region :as eval-region] [sci.core :as sci] [sci.impl.evaluator])) (defonce context (sci/init {:classes {'js goog/global :allow :all} :namespaces {'max-or-throw.core {'max-or-throw max-or-throw}}})) (def max-seq-limit 10000) (defn instrument-1 [form] (if (seq? form) (list 'max-or-throw.core/max-or-throw form max-seq-limit) form)) ;; Note from @borkdude: this is a hack. We intercept each result from the ;; evaluator and wrap it in a call to max-or-throw. (defonce instrument-eval (let [old-eval sci.impl.evaluator/eval] (set! sci.impl.evaluator/eval (fn [ctx bindings expr] (max-or-throw (old-eval ctx bindings expr) 10000))))) (defn eval-string [source] (try (sci/eval-string* context source) (catch :default e (str e)))) (j/defn eval-at-cursor [on-result ^:js {:keys [state]}] (some->> (eval-region/cursor-node-string state) (eval-string) (on-result)) true) (j/defn eval-top-level [on-result ^:js {:keys [state]}] (some->> (eval-region/top-level-string state) (eval-string) (on-result)) true) (j/defn eval-cell [on-result ^:js {:keys [state]}] (-> (str "(do " (.-doc state) " )") (eval-string) (on-result)) true) (defn keymap* [modifier] {:eval-cell [{:key "Mod-Enter" :doc "Evaluate cell"}] :eval-at-cursor [{:key (str modifier "-Enter") :doc "Evaluates form at cursor"}] :eval-top-level [{:key (str modifier "-Shift-Enter") :doc "Evaluates top-level form at cursor"}]}) (defn extension [{:keys [modifier on-result]}] (.of view/keymap (j/lit [{:key "Mod-Enter" :run (partial eval-cell on-result)} {:key (str modifier "-Enter") :shift (partial eval-top-level on-result) :run (partial eval-at-cursor on-result)}]))) ================================================ FILE: src/mecca/sci_editor.cljs ================================================ (ns mecca.sci-editor (:require ["@codemirror/fold" :as fold] ["@codemirror/closebrackets" :refer [closeBrackets]] ["@codemirror/gutter" :refer [lineNumbers]] ["@codemirror/highlight" :as highlight] ["@codemirror/history" :refer [history historyKeymap]] ["@codemirror/state" :refer [EditorState EditorSelection]] ["@codemirror/view" :as view :refer [EditorView]] [mecca.sci :as sci] [re-frame.core :as rf :refer [subscribe dispatch]] [clojure.string :as str] [applied-science.js-interop :as j] [nextjournal.clojure-mode.extensions.close-brackets :as close-brackets] [nextjournal.clojure-mode :as cm-clj] [nextjournal.clojure-mode.live-grammar :as live-grammar] [reagent.core :as r])) (def theme (.theme EditorView (j/lit {".cm-content" {:white-space "pre-wrap", :padding "10px 0"} "&.cm-focused" {:outline "none"} ".cm-line" {:padding "0 10px" :line-height "1.6" :font-size "16px" :font-family "var(--code-font)"} ".cm-matchingBracket" {:border-bottom "2px solid var(--black)" :color "inherit"} ".cm-gutters" {:background "transparent", :border "none"} ".cm-gutterElement" {:margin-left "5px"} ;; only show cursor when focused ".cm-cursor" {:visibility "hidden"} "&.cm-focused .cm-cursor" {:visibility "visible"}}))) (defonce extensions #js [theme (history) highlight/defaultHighlightStyle (view/drawSelection) (lineNumbers) (fold/foldGutter) (.. EditorState -allowMultipleSelections (of true)) (if false ;; use live-reloading grammar #js [(cm-clj/syntax live-grammar/parser) (.slice cm-clj/default-extensions 1)] cm-clj/default-extensions) (.of view/keymap cm-clj/complete-keymap) (.of view/keymap historyKeymap)]) (defn make-state [extensions doc] (let [[doc ranges] (->> (re-seq #"\||<[^>]*?>|[^<>|]+" doc) (reduce (fn [[^string doc ranges] match] (cond (= match "|") [doc (conj ranges (.cursor EditorSelection (count doc)))] (str/starts-with? match "<") [(str doc (subs match 1 (dec (count match)))) (conj ranges (.range EditorSelection (count doc) (+ (count doc) (- (count match) 2))))] :else [(str doc match) ranges])) ["" []]))] (.create EditorState #js{:doc doc :selection (if (seq ranges) (.create EditorSelection (to-array ranges)) js/undefined) :extensions (cond-> #js[(.. EditorState -allowMultipleSelections (of true))] extensions (j/push! extensions))}))) (def eval-result (r/atom "Cmd+Enter/Ctrl+Enter/Alt+Enter to Eval")) (defn editor [source !view {:keys [eval?]}] (r/with-let [last-result (when eval? (r/atom (sci/eval-string source))) mount! (fn [el] (when el (reset! !view (new EditorView (j/obj :state (make-state (cond-> #js [extensions] eval? (.concat #js [(sci/extension {:modifier "Alt" :on-result (fn [result] (reset! eval-result result) (reset! last-result result))})])) source) :parent el)))))] [:div [:div {:class "rounded-md mb-0 text-sm monospace overflow-auto relative border shadow-lg bg-white" :ref mount! :style {:max-height 360 :background-color "#F8B0F8"}}] (when eval? (reset! eval-result @last-result))] (finally (j/call @!view :destroy)))) (defonce !points (r/atom "")) (defonce !result (r/atom "")) (defonce points (r/atom [])) (defn eval-all [s] (try (sci.core/eval-string s {:classes {'js goog/global :allow :all}}) (catch :default e (str e)))) (defn update-editor! [text] (let [end (count (some-> @!points .-state .-doc str))] (.dispatch @!points #js{:changes #js{:from 0 :to end :insert text}}))) (defn update-result! [text] (let [end (count (some-> @!result .-state .-doc str))] (.dispatch @!result #js{:changes #js{:from 0 :to end :insert text}}))) ================================================ FILE: src/mecca/songs/city.cljs ================================================ (ns mecca.songs.city) (def city [{:time 67.5, :instrument 1, :pitch 74} {:time 67, :instrument 1, :pitch 71} {:time 66, :instrument 1, :pitch 74} {:time 65.5, :instrument 1, :pitch 76} {:time 64.5, :instrument 1, :pitch 78} {:time 60.5, :instrument 1, :pitch 73} {:time 59.5, :instrument 1, :pitch 73} {:time 59, :instrument 1, :pitch 72} {:time 58, :instrument 1, :pitch 72} {:time 57, :instrument 1, :pitch 72} {:time 56.5, :instrument 1, :pitch 72} {:time 55.5, :instrument 1, :pitch 72} {:time 50.5, :instrument 1, :pitch 66} {:time 49.5, :instrument 1, :pitch 67} {:time 49, :instrument 1, :pitch 66} {:time 48.5, :instrument 1, :pitch 64} {:time 47.5, :instrument 1, :pitch 62} {:time 46.5, :instrument 1, :pitch 69} {:time 43, :instrument 1, :pitch 66} {:time 42, :instrument 1, :pitch 69} {:time 41.5, :instrument 1, :pitch 66} {:time 41, :instrument 1, :pitch 69} {:time 40.5, :instrument 1, :pitch 69} {:time 39.5, :instrument 1, :pitch 69} {:time 35.5, :instrument 1, :pitch 62} {:time 35, :instrument 1, :pitch 62} {:time 34, :instrument 1, :pitch 62} {:time 31.5, :instrument 1, :pitch 74} {:time 31, :instrument 1, :pitch 73} {:time 27.5, :instrument 1, :pitch 73} {:time 27, :instrument 1, :pitch 72} {:time 26, :instrument 1, :pitch 72} {:time 25, :instrument 1, :pitch 72} {:time 24.5, :instrument 1, :pitch 72} {:time 23.5, :instrument 1, :pitch 72} {:time 18.5, :instrument 1, :pitch 66} {:time 17.5, :instrument 1, :pitch 67} {:time 17, :instrument 1, :pitch 66} {:time 16.5, :instrument 1, :pitch 64} {:time 15.5, :instrument 1, :pitch 62} {:time 15, :instrument 1, :pitch 69} {:time 11, :instrument 1, :pitch 66} {:time 10, :instrument 1, :pitch 69} {:time 9.5, :instrument 1, :pitch 66} {:time 9, :instrument 1, :pitch 69} {:time 8.5, :instrument 1, :pitch 69} {:time 7.5, :instrument 1, :pitch 69} {:time 67.5, :instrument 5, :pitch 62} {:time 67, :instrument 5, :pitch 64} {:time 66.5, :instrument 5, :pitch 66} {:time 66, :instrument 5, :pitch 67} {:time 63.5, :instrument 5, :pitch 66} {:time 63, :instrument 5, :pitch 64} {:time 59.5, :instrument 5, :pitch 64} {:time 59, :instrument 5, :pitch 66} {:time 58, :instrument 5, :pitch 67} {:time 57, :instrument 5, :pitch 67} {:time 56.5, :instrument 5, :pitch 67} {:time 55.5, :instrument 5, :pitch 67} {:time 50.5, :instrument 5, :pitch 62} {:time 49.5, :instrument 5, :pitch 64} {:time 49, :instrument 5, :pitch 62} {:time 48.5, :instrument 5, :pitch 59} {:time 47.5, :instrument 5, :pitch 57} {:time 47, :instrument 5, :pitch 66} {:time 43, :instrument 5, :pitch 62} {:time 42, :instrument 5, :pitch 66} {:time 41.5, :instrument 5, :pitch 62} {:time 41, :instrument 5, :pitch 66} {:time 40.5, :instrument 5, :pitch 66} {:time 39.5, :instrument 5, :pitch 66} {:time 105, :instrument 13, :pitch 71} {:time 104.5, :instrument 13, :pitch 69} {:time 104, :instrument 13, :pitch 71} {:time 103.5, :instrument 13, :pitch 72} {:time 103, :instrument 13, :pitch 74} {:time 102.5, :instrument 13, :pitch 76} {:time 102, :instrument 13, :pitch 77} {:time 101.5, :instrument 13, :pitch 72} {:time 101, :instrument 13, :pitch 74} {:time 100.5, :instrument 13, :pitch 76} {:time 100, :instrument 13, :pitch 77} {:time 35.5, :instrument 5, :pitch 62} {:time 35, :instrument 5, :pitch 64} {:time 34.5, :instrument 5, :pitch 66} {:time 34, :instrument 5, :pitch 67} {:time 31.5, :instrument 5, :pitch 66} {:time 31, :instrument 5, :pitch 64} {:time 27.5, :instrument 5, :pitch 64} {:time 27, :instrument 5, :pitch 66} {:time 26, :instrument 5, :pitch 67} {:time 25, :instrument 5, :pitch 67} {:time 24.5, :instrument 5, :pitch 67} {:time 23.5, :instrument 5, :pitch 67} {:time 18.5, :instrument 5, :pitch 62} {:time 17.5, :instrument 5, :pitch 64} {:time 17, :instrument 5, :pitch 62} {:time 16.5, :instrument 5, :pitch 59} {:time 15.5, :instrument 5, :pitch 57} {:time 15, :instrument 5, :pitch 66} {:time 11, :instrument 5, :pitch 62} {:time 10, :instrument 5, :pitch 66} {:time 9.5, :instrument 5, :pitch 62} {:time 9, :instrument 5, :pitch 66} {:time 8.5, :instrument 5, :pitch 66} {:time 7.5, :instrument 5, :pitch 66} {:time 129.5, :instrument 8, :pitch 64} {:time 131, :instrument 8, :pitch 62} {:time 128, :instrument 8, :pitch 65} {:time 147, :instrument 8, :pitch 59} {:time 145.5, :instrument 8, :pitch 62} {:time 144, :instrument 8, :pitch 60} {:time 147.5, :instrument 2, :pitch 55} {:time 147, :instrument 2, :pitch 59} {:time 147.5, :instrument 13, :pitch 74} {:time 147.5, :instrument 15, :pitch 55} {:time 123.5, :instrument 15, :pitch 55} {:time 122.5, :instrument 15, :pitch 55} {:time 122, :instrument 15, :pitch 55} {:time 121.5, :instrument 15, :pitch 55} {:time 120.5, :instrument 15, :pitch 55} {:time 120, :instrument 15, :pitch 55} {:time 119.5, :instrument 15, :pitch 55} {:time 118.5, :instrument 15, :pitch 55} {:time 118, :instrument 15, :pitch 55} {:time 117.5, :instrument 15, :pitch 55} {:time 116.5, :instrument 15, :pitch 55} {:time 116, :instrument 15, :pitch 55} {:time 116, :instrument 2, :pitch 67} {:time 115.5, :instrument 2, :pitch 69} {:time 115, :instrument 2, :pitch 69} {:time 114.5, :instrument 2, :pitch 71} {:time 114, :instrument 2, :pitch 72} {:time 115.5, :instrument 13, :pitch 77} {:time 115, :instrument 13, :pitch 77} {:time 114.5, :instrument 13, :pitch 77} {:time 114, :instrument 13, :pitch 77} {:time 113.5, :instrument 13, :pitch 77} {:time 110.5, :instrument 2, :pitch 60} {:time 110, :instrument 2, :pitch 69} {:time 109.5, :instrument 2, :pitch 55} {:time 109, :instrument 2, :pitch 65} {:time 108.5, :instrument 2, :pitch 71} {:time 108, :instrument 2, :pitch 57} {:time 120, :instrument 13, :pitch 77} {:time 119.5, :instrument 13, :pitch 77} {:time 119, :instrument 13, :pitch 77} {:time 118.5, :instrument 13, :pitch 77} {:time 118, :instrument 13, :pitch 77} {:time 117.5, :instrument 13, :pitch 77} {:time 117, :instrument 13, :pitch 77} {:time 116.5, :instrument 13, :pitch 77} {:time 116, :instrument 13, :pitch 77} {:time 115.5, :instrument 13, :pitch 76} {:time 111, :instrument 7, :pitch 59} {:time 109.5, :instrument 7, :pitch 61} {:time 108, :instrument 7, :pitch 62} {:time 111, :instrument 8, :pitch 59} {:time 109.5, :instrument 8, :pitch 61} {:time 108, :instrument 8, :pitch 62} {:time 111, :instrument 14, :pitch 59} {:time 109.5, :instrument 14, :pitch 61} {:time 108, :instrument 14, :pitch 62} {:time 111, :instrument 15, :pitch 59} {:time 109.5, :instrument 15, :pitch 61} {:time 108, :instrument 15, :pitch 62} {:time 107.5, :instrument 13, :pitch 74} {:time 107, :instrument 13, :pitch 74} {:time 106.5, :instrument 13, :pitch 74} {:time 106, :instrument 13, :pitch 74} {:time 105.5, :instrument 13, :pitch 74} {:time 107.5, :instrument 15, :pitch 55} {:time 107, :instrument 15, :pitch 55} {:time 106.5, :instrument 15, :pitch 55} {:time 106, :instrument 15, :pitch 55} {:time 105.5, :instrument 15, :pitch 55} {:time 105, :instrument 15, :pitch 55} {:time 104.5, :instrument 15, :pitch 55} {:time 104, :instrument 15, :pitch 55} {:time 103.5, :instrument 15, :pitch 55} {:time 103, :instrument 15, :pitch 55} {:time 102.5, :instrument 15, :pitch 55} {:time 102, :instrument 15, :pitch 55} {:time 101.5, :instrument 15, :pitch 55} {:time 101, :instrument 15, :pitch 55} {:time 100.5, :instrument 15, :pitch 55} {:time 100, :instrument 15, :pitch 55} {:time 99.5, :instrument 2, :pitch 59} {:time 99, :instrument 2, :pitch 72} {:time 98.5, :instrument 2, :pitch 59} {:time 98, :instrument 2, :pitch 59} {:time 97.5, :instrument 2, :pitch 59} {:time 97, :instrument 2, :pitch 71} {:time 96.5, :instrument 2, :pitch 59} {:time 96, :instrument 2, :pitch 57} {:time 95.5, :instrument 2, :pitch 59} {:time 95, :instrument 2, :pitch 69} {:time 94.5, :instrument 2, :pitch 59} {:time 94, :instrument 2, :pitch 59} {:time 93.5, :instrument 2, :pitch 59} {:time 93, :instrument 2, :pitch 69} {:time 92, :instrument 2, :pitch 59} {:time 91.5, :instrument 2, :pitch 60} {:time 91, :instrument 2, :pitch 69} {:time 90.5, :instrument 2, :pitch 59} {:time 99.5, :instrument 13, :pitch 72} {:time 99, :instrument 13, :pitch 74} {:time 98.5, :instrument 13, :pitch 76} {:time 98, :instrument 13, :pitch 77} {:time 97.5, :instrument 13, :pitch 72} {:time 97, :instrument 13, :pitch 74} {:time 96.5, :instrument 13, :pitch 76} {:time 96, :instrument 13, :pitch 77} {:time 95.5, :instrument 13, :pitch 77} {:time 95, :instrument 13, :pitch 77} {:time 94.5, :instrument 13, :pitch 77} {:time 94, :instrument 13, :pitch 77} {:time 93.5, :instrument 13, :pitch 77} {:time 93, :instrument 13, :pitch 77} {:time 92.5, :instrument 13, :pitch 77} {:time 92, :instrument 13, :pitch 77} {:time 91.5, :instrument 13, :pitch 77} {:time 91, :instrument 13, :pitch 77} {:time 90.5, :instrument 13, :pitch 77} {:time 90, :instrument 13, :pitch 77} {:time 89.5, :instrument 13, :pitch 77} {:time 89, :instrument 13, :pitch 77} {:time 89.5, :instrument 2, :pitch 59} {:time 89, :instrument 2, :pitch 69} {:time 88, :instrument 2, :pitch 57} {:time 87.5, :instrument 2, :pitch 59} {:time 87, :instrument 2, :pitch 67} {:time 86.5, :instrument 2, :pitch 59} {:time 86, :instrument 2, :pitch 59} {:time 85.5, :instrument 2, :pitch 59} {:time 85, :instrument 2, :pitch 69} {:time 84, :instrument 2, :pitch 59} {:time 83.5, :instrument 2, :pitch 59} {:time 83, :instrument 2, :pitch 65} {:time 82.5, :instrument 2, :pitch 59} {:time 82, :instrument 2, :pitch 59} {:time 81.5, :instrument 2, :pitch 59} {:time 81, :instrument 2, :pitch 69} {:time 80, :instrument 2, :pitch 57} {:time 79.5, :instrument 2, :pitch 62} {:time 79, :instrument 2, :pitch 69} {:time 78.5, :instrument 2, :pitch 60} {:time 78, :instrument 2, :pitch 60} {:time 77.5, :instrument 2, :pitch 60} {:time 77, :instrument 2, :pitch 71} {:time 76, :instrument 2, :pitch 60} {:time 75.5, :instrument 2, :pitch 64} {:time 75, :instrument 2, :pitch 72} {:time 74.5, :instrument 2, :pitch 64} {:time 73.5, :instrument 2, :pitch 64} {:time 73, :instrument 2, :pitch 71} {:time 88.5, :instrument 13, :pitch 77} {:time 88, :instrument 13, :pitch 78} {:time 87, :instrument 13, :pitch 79} {:time 86, :instrument 13, :pitch 79} {:time 85, :instrument 13, :pitch 81} {:time 84, :instrument 13, :pitch 79} {:time 83, :instrument 13, :pitch 77} {:time 82, :instrument 13, :pitch 76} {:time 81, :instrument 13, :pitch 77} {:time 80, :instrument 13, :pitch 79} {:time 79, :instrument 13, :pitch 77} {:time 78, :instrument 13, :pitch 77} {:time 77, :instrument 13, :pitch 77} {:time 76, :instrument 13, :pitch 79} {:time 75, :instrument 13, :pitch 76} {:time 74, :instrument 13, :pitch 76} {:time 73, :instrument 13, :pitch 76} {:time 72, :instrument 13, :pitch 81} {:time 43.5, :instrument 2, :pitch 62} {:time 43, :instrument 2, :pitch 71} {:time 42.5, :instrument 2, :pitch 60} {:time 41.5, :instrument 2, :pitch 60} {:time 41, :instrument 2, :pitch 71} {:time 99.5, :instrument 15, :pitch 55} {:time 99, :instrument 15, :pitch 55} {:time 98.5, :instrument 15, :pitch 55} {:time 98, :instrument 15, :pitch 55} {:time 97.5, :instrument 15, :pitch 55} {:time 97, :instrument 15, :pitch 55} {:time 96.5, :instrument 15, :pitch 55} {:time 96, :instrument 15, :pitch 55} {:time 95.5, :instrument 15, :pitch 55} {:time 95, :instrument 15, :pitch 55} {:time 94.5, :instrument 15, :pitch 55} {:time 94, :instrument 15, :pitch 55} {:time 93.5, :instrument 15, :pitch 55} {:time 93, :instrument 15, :pitch 55} {:time 92.5, :instrument 15, :pitch 55} {:time 92, :instrument 15, :pitch 55} {:time 91.5, :instrument 15, :pitch 55} {:time 91, :instrument 15, :pitch 55} {:time 90.5, :instrument 15, :pitch 55} {:time 90, :instrument 15, :pitch 55} {:time 89.5, :instrument 15, :pitch 55} {:time 72, :instrument 2, :pitch 62} {:time 71.5, :instrument 2, :pitch 62} {:time 71, :instrument 2, :pitch 62} {:time 70.5, :instrument 2, :pitch 62} {:time 70, :instrument 2, :pitch 62} {:time 69.5, :instrument 2, :pitch 62} {:time 69, :instrument 2, :pitch 71} {:time 68, :instrument 2, :pitch 62} {:time 67.5, :instrument 2, :pitch 65} {:time 67, :instrument 2, :pitch 72} {:time 66.5, :instrument 2, :pitch 64} {:time 66, :instrument 2, :pitch 62} {:time 65.5, :instrument 2, :pitch 62} {:time 65, :instrument 2, :pitch 71} {:time 64, :instrument 2, :pitch 62} {:time 63.5, :instrument 2, :pitch 62} {:time 63, :instrument 2, :pitch 71} {:time 62.5, :instrument 2, :pitch 62} {:time 62, :instrument 2, :pitch 60} {:time 61.5, :instrument 2, :pitch 65} {:time 61, :instrument 2, :pitch 71} {:time 60, :instrument 2, :pitch 64} {:time 59.5, :instrument 2, :pitch 65} {:time 59, :instrument 2, :pitch 72} {:time 58.5, :instrument 2, :pitch 64} {:time 58, :instrument 2, :pitch 64} {:time 57.5, :instrument 2, :pitch 64} {:time 57, :instrument 2, :pitch 76} {:time 56, :instrument 2, :pitch 62} {:time 55.5, :instrument 2, :pitch 62} {:time 55, :instrument 2, :pitch 74} {:time 54.5, :instrument 2, :pitch 62} {:time 54, :instrument 2, :pitch 62} {:time 53.5, :instrument 2, :pitch 62} {:time 53, :instrument 2, :pitch 74} {:time 52, :instrument 2, :pitch 64} {:time 51.5, :instrument 2, :pitch 64} {:time 51, :instrument 2, :pitch 74} {:time 50.5, :instrument 2, :pitch 64} {:time 50, :instrument 2, :pitch 64} {:time 49.5, :instrument 2, :pitch 62} {:time 49, :instrument 2, :pitch 72} {:time 48, :instrument 2, :pitch 62} {:time 47.5, :instrument 2, :pitch 60} {:time 47, :instrument 2, :pitch 71} {:time 46.5, :instrument 2, :pitch 62} {:time 45.5, :instrument 2, :pitch 60} {:time 45, :instrument 2, :pitch 71} {:time 89, :instrument 15, :pitch 55} {:time 88.5, :instrument 15, :pitch 55} {:time 88, :instrument 15, :pitch 67} {:time 87.5, :instrument 15, :pitch 57} {:time 87, :instrument 15, :pitch 69} {:time 86.5, :instrument 15, :pitch 57} {:time 85.5, :instrument 15, :pitch 57} {:time 85, :instrument 15, :pitch 69} {:time 84, :instrument 15, :pitch 57} {:time 83.5, :instrument 15, :pitch 69} {:time 83, :instrument 15, :pitch 71} {:time 82.5, :instrument 15, :pitch 73} {:time 82, :instrument 15, :pitch 74} {:time 81.5, :instrument 15, :pitch 62} {:time 80.5, :instrument 15, :pitch 62} {:time 81, :instrument 15, :pitch 69} {:time 80, :instrument 15, :pitch 74} {:time 79.5, :instrument 15, :pitch 67} {:time 79, :instrument 15, :pitch 73} {:time 78.5, :instrument 15, :pitch 67} {:time 78, :instrument 15, :pitch 71} {:time 77.5, :instrument 15, :pitch 67} {:time 76, :instrument 15, :pitch 67} {:time 75.5, :instrument 15, :pitch 69} {:time 75, :instrument 15, :pitch 71} {:time 74, :instrument 15, :pitch 66} {:time 73.5, :instrument 15, :pitch 71} {:time 72, :instrument 15, :pitch 71} {:time 71.5, :instrument 15, :pitch 73} {:time 71, :instrument 15, :pitch 74} {:time 70.5, :instrument 15, :pitch 76} {:time 70, :instrument 15, :pitch 78} {:time 69.5, :instrument 15, :pitch 62} {:time 69, :instrument 15, :pitch 69} {:time 68.5, :instrument 15, :pitch 62} {:time 68, :instrument 15, :pitch 78} {:time 67.5, :instrument 15, :pitch 79} {:time 67, :instrument 15, :pitch 78} {:time 66.5, :instrument 15, :pitch 76} {:time 66, :instrument 15, :pitch 74} {:time 65.5, :instrument 15, :pitch 62} {:time 65, :instrument 15, :pitch 74} {:time 64, :instrument 15, :pitch 62} {:time 63.5, :instrument 15, :pitch 62} {:time 62.5, :instrument 15, :pitch 62} {:time 61.5, :instrument 15, :pitch 62} {:time 63, :instrument 15, :pitch 73} {:time 61, :instrument 15, :pitch 73} {:time 60, :instrument 15, :pitch 62} {:time 59.5, :instrument 15, :pitch 62} {:time 59, :instrument 15, :pitch 72} {:time 58.5, :instrument 15, :pitch 62} {:time 57.5, :instrument 15, :pitch 62} {:time 57, :instrument 15, :pitch 72} {:time 56, :instrument 15, :pitch 62} {:time 55.5, :instrument 15, :pitch 69} {:time 55, :instrument 15, :pitch 67} {:time 54.5, :instrument 15, :pitch 69} {:time 54, :instrument 15, :pitch 67} {:time 53.5, :instrument 15, :pitch 62} {:time 53, :instrument 15, :pitch 69} {:time 52, :instrument 15, :pitch 62} {:time 51.5, :instrument 15, :pitch 62} {:time 51, :instrument 15, :pitch 69} {:time 50.5, :instrument 15, :pitch 62} {:time 49.5, :instrument 15, :pitch 62} {:time 49, :instrument 15, :pitch 69} {:time 48, :instrument 15, :pitch 62} {:time 47.5, :instrument 15, :pitch 69} {:time 47, :instrument 15, :pitch 67} {:time 46.5, :instrument 15, :pitch 69} {:time 46, :instrument 15, :pitch 67} {:time 45.5, :instrument 15, :pitch 62} {:time 45, :instrument 15, :pitch 69} {:time 44, :instrument 15, :pitch 62} {:time 43.5, :instrument 15, :pitch 74} {:time 43, :instrument 15, :pitch 72} {:time 42.5, :instrument 15, :pitch 62} {:time 41.5, :instrument 15, :pitch 62} {:time 41, :instrument 15, :pitch 66} {:time 40, :instrument 15, :pitch 62} {:time 39.5, :instrument 15, :pitch 62} {:time 39, :instrument 15, :pitch 69} {:time 38.5, :instrument 15, :pitch 62} {:time 37.5, :instrument 15, :pitch 62} {:time 37, :instrument 15, :pitch 66} {:time 36, :instrument 15, :pitch 62} {:time 35.5, :instrument 15, :pitch 69} {:time 35, :instrument 15, :pitch 67} {:time 34.5, :instrument 15, :pitch 62} {:time 33, :instrument 15, :pitch 74} {:time 31, :instrument 15, :pitch 73} {:time 29, :instrument 15, :pitch 73} {:time 27, :instrument 15, :pitch 72} {:time 25, :instrument 15, :pitch 72} {:time 0, :instrument 15, :pitch 62} {:time 0, :instrument 2, :pitch 60} {:time 0.5, :instrument 2, :pitch 60} {:time 1, :instrument 2, :pitch 71} {:time 1.5, :instrument 2, :pitch 60} {:time 2, :instrument 2, :pitch 62} {:time 2.5, :instrument 2, :pitch 60} {:time 3, :instrument 2, :pitch 69} {:time 3.5, :instrument 2, :pitch 62} {:time 1, :instrument 15, :pitch 69} {:time 1.5, :instrument 15, :pitch 62} {:time 2.5, :instrument 15, :pitch 62} {:time 3, :instrument 15, :pitch 69} {:time 3.5, :instrument 15, :pitch 62} {:time 4, :instrument 2, :pitch 60} {:time 4.5, :instrument 2, :pitch 60} {:time 5, :instrument 2, :pitch 69} {:time 5.5, :instrument 2, :pitch 60} {:time 6, :instrument 2, :pitch 60} {:time 6.5, :instrument 2, :pitch 60} {:time 7, :instrument 2, :pitch 72} {:time 7.5, :instrument 2, :pitch 60} {:time 4.5, :instrument 15, :pitch 62} {:time 5, :instrument 15, :pitch 69} {:time 5.5, :instrument 15, :pitch 62} {:time 6.5, :instrument 15, :pitch 62} {:time 7, :instrument 15, :pitch 69} {:time 7.5, :instrument 15, :pitch 62} {:time 8, :instrument 15, :pitch 62} {:time 8, :instrument 2, :pitch 60} {:time 8.5, :instrument 2, :pitch 60} {:time 9, :instrument 2, :pitch 74} {:time 9.5, :instrument 2, :pitch 60} {:time 10, :instrument 2, :pitch 60} {:time 10.5, :instrument 2, :pitch 60} {:time 11, :instrument 2, :pitch 74} {:time 11.5, :instrument 2, :pitch 60} {:time 12, :instrument 2, :pitch 60} {:time 12.5, :instrument 2, :pitch 60} {:time 13, :instrument 2, :pitch 76} {:time 13.5, :instrument 2, :pitch 60} {:time 14, :instrument 2, :pitch 60} {:time 14.5, :instrument 2, :pitch 60} {:time 15, :instrument 2, :pitch 72} {:time 15.5, :instrument 2, :pitch 60} {:time 18, :instrument 2, :pitch 60} {:time 16, :instrument 2, :pitch 60} {:time 17, :instrument 2, :pitch 74} {:time 17.5, :instrument 2, :pitch 60} {:time 18.5, :instrument 2, :pitch 60} {:time 19, :instrument 2, :pitch 72} {:time 19.5, :instrument 2, :pitch 60} {:time 20.5, :instrument 2, :pitch 60} {:time 21, :instrument 2, :pitch 71} {:time 21.5, :instrument 2, :pitch 60} {:time 22.5, :instrument 2, :pitch 60} {:time 23, :instrument 2, :pitch 71} {:time 23.5, :instrument 2, :pitch 60} {:time 24, :instrument 2, :pitch 60} {:time 25, :instrument 2, :pitch 74} {:time 25.5, :instrument 2, :pitch 62} {:time 26, :instrument 2, :pitch 62} {:time 26.5, :instrument 2, :pitch 60} {:time 27, :instrument 2, :pitch 74} {:time 27.5, :instrument 2, :pitch 60} {:time 28, :instrument 2, :pitch 60} {:time 28.5, :instrument 2, :pitch 60} {:time 29, :instrument 2, :pitch 72} {:time 29.5, :instrument 2, :pitch 62} {:time 30, :instrument 2, :pitch 60} {:time 30.5, :instrument 2, :pitch 60} {:time 31, :instrument 2, :pitch 71} {:time 31.5, :instrument 2, :pitch 62} {:time 32, :instrument 2, :pitch 60} {:time 33, :instrument 2, :pitch 71} {:time 33.5, :instrument 2, :pitch 60} {:time 34, :instrument 2, :pitch 60} {:time 34.5, :instrument 2, :pitch 60} {:time 35, :instrument 2, :pitch 72} {:time 35.5, :instrument 2, :pitch 60} {:time 36, :instrument 2, :pitch 60} {:time 37, :instrument 2, :pitch 72} {:time 37.5, :instrument 2, :pitch 60} {:time 38, :instrument 2, :pitch 62} {:time 38.5, :instrument 2, :pitch 60} {:time 39, :instrument 2, :pitch 72} {:time 39.5, :instrument 2, :pitch 60} {:time 39.5, :instrument 2, :pitch 60} {:time 40, :instrument 2, :pitch 60} {:time 44, :instrument 2, :pitch 60} {:time 44.5, :instrument 2, :pitch 60} {:time 44.5, :instrument 2, :pitch 60} {:time 8.5, :instrument 15, :pitch 62} {:time 9, :instrument 15, :pitch 69} {:time 9.5, :instrument 15, :pitch 62} {:time 10.5, :instrument 15, :pitch 62} {:time 11, :instrument 15, :pitch 69} {:time 11.5, :instrument 15, :pitch 62} {:time 12.5, :instrument 15, :pitch 62} {:time 13, :instrument 15, :pitch 69} {:time 13.5, :instrument 15, :pitch 62} {:time 14, :instrument 15, :pitch 62} {:time 15, :instrument 15, :pitch 69} {:time 15.5, :instrument 15, :pitch 62} {:time 16.5, :instrument 15, :pitch 62} {:time 17, :instrument 15, :pitch 69} {:time 17.5, :instrument 15, :pitch 62} {:time 18, :instrument 15, :pitch 62} {:time 19, :instrument 15, :pitch 69} {:time 19.5, :instrument 15, :pitch 62} {:time 20, :instrument 15, :pitch 62} {:time 21, :instrument 15, :pitch 69} {:time 21.5, :instrument 15, :pitch 62} {:time 22.5, :instrument 15, :pitch 62} {:time 23, :instrument 15, :pitch 69} {:time 23.5, :instrument 15, :pitch 62} {:time 24, :instrument 15, :pitch 62} {:time 25.5, :instrument 15, :pitch 62} {:time 26.5, :instrument 15, :pitch 62} {:time 27.5, :instrument 15, :pitch 62} {:time 28, :instrument 15, :pitch 62} {:time 29.5, :instrument 15, :pitch 62} {:time 30, :instrument 15, :pitch 62} {:time 30.5, :instrument 15, :pitch 62} {:time 31.5, :instrument 15, :pitch 62} {:time 32, :instrument 15, :pitch 62} {:time 33.5, :instrument 15, :pitch 62} {:time 116, :instrument 2, :pitch 59} {:time 117, :instrument 2, :pitch 67} {:time 117.5, :instrument 2, :pitch 59} {:time 118, :instrument 2, :pitch 59} {:time 118.5, :instrument 2, :pitch 59} {:time 119, :instrument 2, :pitch 69} {:time 119.5, :instrument 2, :pitch 59} {:time 120, :instrument 2, :pitch 59} {:time 120.5, :instrument 2, :pitch 59} {:time 121, :instrument 2, :pitch 69} {:time 121.5, :instrument 2, :pitch 57} {:time 122, :instrument 2, :pitch 59} {:time 122.5, :instrument 2, :pitch 59} {:time 123, :instrument 2, :pitch 71} {:time 123.5, :instrument 2, :pitch 59} {:time 124, :instrument 2, :pitch 59} {:time 125, :instrument 2, :pitch 72} {:time 125.5, :instrument 2, :pitch 59} {:time 126, :instrument 2, :pitch 59} {:time 126.5, :instrument 2, :pitch 59} {:time 127, :instrument 2, :pitch 71} {:time 127.5, :instrument 2, :pitch 59} {:time 128, :instrument 2, :pitch 59} {:time 128.5, :instrument 2, :pitch 59} {:time 129, :instrument 2, :pitch 71} {:time 129.5, :instrument 2, :pitch 59} {:time 120, :instrument 13, :pitch 77} {:time 120.5, :instrument 13, :pitch 77} {:time 121, :instrument 13, :pitch 77} {:time 121.5, :instrument 13, :pitch 77} {:time 122, :instrument 13, :pitch 77} {:time 122.5, :instrument 13, :pitch 77} {:time 123, :instrument 13, :pitch 77} {:time 123.5, :instrument 13, :pitch 77} {:time 124, :instrument 15, :pitch 62} {:time 124.5, :instrument 15, :pitch 62} {:time 125.5, :instrument 15, :pitch 62} {:time 126, :instrument 15, :pitch 62} {:time 126.5, :instrument 15, :pitch 62} {:time 127.5, :instrument 15, :pitch 62} {:time 128, :instrument 15, :pitch 57} {:time 128.5, :instrument 15, :pitch 57} {:time 129.5, :instrument 15, :pitch 57} {:time 130, :instrument 15, :pitch 57} {:time 130.5, :instrument 15, :pitch 57} {:time 131.5, :instrument 15, :pitch 57} {:time 132, :instrument 15, :pitch 55} {:time 132.5, :instrument 15, :pitch 55} {:time 133.5, :instrument 15, :pitch 55} {:time 134, :instrument 15, :pitch 55} {:time 134.5, :instrument 15, :pitch 55} {:time 130, :instrument 2, :pitch 59} {:time 130.5, :instrument 2, :pitch 59} {:time 131, :instrument 2, :pitch 69} {:time 131.5, :instrument 2, :pitch 59} {:time 132, :instrument 2, :pitch 59} {:time 132.5, :instrument 2, :pitch 59} {:time 133.5, :instrument 2, :pitch 59} {:time 134, :instrument 2, :pitch 59} {:time 134.5, :instrument 2, :pitch 59} {:time 124, :instrument 13, :pitch 77} {:time 124.5, :instrument 13, :pitch 77} {:time 125.5, :instrument 13, :pitch 77} {:time 126, :instrument 13, :pitch 77} {:time 126.5, :instrument 13, :pitch 76} {:time 127.5, :instrument 13, :pitch 77} {:time 125, :instrument 13, :pitch 77} {:time 127, :instrument 13, :pitch 77} {:time 128, :instrument 13, :pitch 77} {:time 128.5, :instrument 13, :pitch 77} {:time 129, :instrument 13, :pitch 77} {:time 129.5, :instrument 13, :pitch 77} {:time 130, :instrument 13, :pitch 77} {:time 130.5, :instrument 13, :pitch 77} {:time 131, :instrument 13, :pitch 77} {:time 131.5, :instrument 13, :pitch 77} {:time 132, :instrument 13, :pitch 77} {:time 132.5, :instrument 13, :pitch 77} {:time 133, :instrument 13, :pitch 77} {:time 133.5, :instrument 13, :pitch 77} {:time 134, :instrument 13, :pitch 77} {:time 134.5, :instrument 13, :pitch 77} {:time 135.5, :instrument 15, :pitch 55} {:time 136, :instrument 15, :pitch 55} {:time 136.5, :instrument 15, :pitch 55} {:time 137.5, :instrument 15, :pitch 55} {:time 138, :instrument 15, :pitch 55} {:time 138.5, :instrument 15, :pitch 55} {:time 139.5, :instrument 15, :pitch 55} {:time 140, :instrument 15, :pitch 62} {:time 140.5, :instrument 15, :pitch 62} {:time 141.5, :instrument 15, :pitch 62} {:time 142, :instrument 15, :pitch 62} {:time 142.5, :instrument 15, :pitch 62} {:time 143.5, :instrument 15, :pitch 62} {:time 144, :instrument 15, :pitch 57} {:time 144.5, :instrument 15, :pitch 57} {:time 145.5, :instrument 15, :pitch 57} {:time 146, :instrument 15, :pitch 57} {:time 144, :instrument 2, :pitch 65} {:time 144.5, :instrument 2, :pitch 64} {:time 145, :instrument 2, :pitch 60} {:time 145.5, :instrument 2, :pitch 67} {:time 146, :instrument 2, :pitch 64} {:time 146.5, :instrument 2, :pitch 60} {:time 135, :instrument 13, :pitch 77} {:time 135.5, :instrument 13, :pitch 77} {:time 136, :instrument 13, :pitch 77} {:time 136.5, :instrument 13, :pitch 77} {:time 137, :instrument 13, :pitch 77} {:time 137.5, :instrument 13, :pitch 77} {:time 138, :instrument 13, :pitch 76} {:time 138.5, :instrument 13, :pitch 76} {:time 139, :instrument 13, :pitch 77} {:time 139.5, :instrument 13, :pitch 77} {:time 140, :instrument 13, :pitch 77} {:time 140.5, :instrument 13, :pitch 77} {:time 133, :instrument 2, :pitch 69} {:time 135, :instrument 2, :pitch 71} {:time 137, :instrument 2, :pitch 69} {:time 135.5, :instrument 2, :pitch 57} {:time 136, :instrument 2, :pitch 59} {:time 136.5, :instrument 2, :pitch 59} {:time 137.5, :instrument 2, :pitch 59} {:time 138, :instrument 2, :pitch 59} {:time 138.5, :instrument 2, :pitch 60} {:time 139.5, :instrument 2, :pitch 69} {:time 139, :instrument 2, :pitch 67} {:time 139.5, :instrument 2, :pitch 59} {:time 140, :instrument 2, :pitch 55} {:time 140.5, :instrument 2, :pitch 55} {:time 141, :instrument 2, :pitch 71} {:time 141.5, :instrument 2, :pitch 59} {:time 142, :instrument 2, :pitch 59} {:time 142.5, :instrument 2, :pitch 57} {:time 143, :instrument 2, :pitch 69} {:time 143, :instrument 2, :pitch 60} {:time 143.5, :instrument 2, :pitch 57} {:time 141, :instrument 13, :pitch 77} {:time 141.5, :instrument 13, :pitch 76} {:time 142, :instrument 13, :pitch 76} {:time 142.5, :instrument 13, :pitch 76} {:time 143, :instrument 13, :pitch 77} {:time 143.5, :instrument 13, :pitch 76} {:time 144, :instrument 13, :pitch 76} {:time 144.5, :instrument 13, :pitch 76} {:time 145, :instrument 13, :pitch 76} {:time 145.5, :instrument 13, :pitch 76} {:time 146, :instrument 13, :pitch 76} {:time 146.5, :instrument 13, :pitch 74} {:time 147, :instrument 13, :pitch 74} {:time 144, :instrument 9, :pitch 62} {:time 145.5, :instrument 9, :pitch 62} {:time 147, :instrument 9, :pitch 59} {:time 146.5, :instrument 15, :pitch 57} {:time 71, :instrument 14, :pitch 76} {:time 72, :instrument 14, :pitch 78} {:time 73, :instrument 14, :pitch 78} {:time 74, :instrument 14, :pitch 78} {:time 75, :instrument 14, :pitch 78} {:time 75.5, :instrument 14, :pitch 78} {:time 76.5, :instrument 14, :pitch 74} {:time 79.5, :instrument 14, :pitch 78} {:time 80.5, :instrument 14, :pitch 78} {:time 81.5, :instrument 14, :pitch 78} {:time 82, :instrument 14, :pitch 78} {:time 82.5, :instrument 14, :pitch 76} {:time 83, :instrument 14, :pitch 76} {:time 83.5, :instrument 14, :pitch 76} {:time 85.5, :instrument 14, :pitch 78} {:time 86.5, :instrument 14, :pitch 76} {:time 87, :instrument 14, :pitch 76} {:time 87.5, :instrument 14, :pitch 74} {:time 88, :instrument 14, :pitch 74} {:time 89, :instrument 14, :pitch 66} {:time 89.5, :instrument 14, :pitch 69} {:time 91.5, :instrument 7, :pitch 74} {:time 92, :instrument 7, :pitch 74} {:time 93, :instrument 7, :pitch 66} {:time 94, :instrument 7, :pitch 69} {:time 94.5, :instrument 7, :pitch 69} {:time 103.5, :instrument 7, :pitch 74} {:time 104, :instrument 7, :pitch 74} {:time 105, :instrument 7, :pitch 66} {:time 106, :instrument 7, :pitch 69} {:time 106.5, :instrument 7, :pitch 69} {:time 107, :instrument 7, :pitch 67} {:time 108, :instrument 7, :pitch 66} {:time 109.5, :instrument 7, :pitch 69} {:time 111, :instrument 7, :pitch 74} {:time 115.5, :instrument 7, :pitch 78} {:time 116, :instrument 7, :pitch 78} {:time 117, :instrument 7, :pitch 76} {:time 118, :instrument 7, :pitch 74} {:time 118.5, :instrument 7, :pitch 74} {:time 123.5, :instrument 7, :pitch 76} {:time 124, :instrument 7, :pitch 76} {:time 125, :instrument 7, :pitch 74} {:time 126, :instrument 7, :pitch 74} {:time 126.5, :instrument 7, :pitch 74} {:time 127, :instrument 7, :pitch 74} {:time 128, :instrument 7, :pitch 78} {:time 129.5, :instrument 7, :pitch 76} {:time 131, :instrument 7, :pitch 74} {:time 131.5, :instrument 7, :pitch 78} {:time 133, :instrument 7, :pitch 76} {:time 134, :instrument 7, :pitch 74} {:time 134.5, :instrument 7, :pitch 74} {:time 139.5, :instrument 7, :pitch 74} {:time 140, :instrument 7, :pitch 74} {:time 141, :instrument 7, :pitch 74} {:time 142, :instrument 7, :pitch 74} {:time 142.5, :instrument 7, :pitch 74} {:time 143, :instrument 7, :pitch 74} {:time 144, :instrument 7, :pitch 73} {:time 145.5, :instrument 7, :pitch 74} {:time 147, :instrument 7, :pitch 71} {:time 144, :instrument 14, :pitch 73} {:time 145.5, :instrument 14, :pitch 74} {:time 147, :instrument 14, :pitch 71} {:time 108, :instrument 8, :pitch 66} {:time 109.5, :instrument 8, :pitch 69} {:time 111, :instrument 8, :pitch 74}]) ================================================ FILE: src/mecca/songs/confuzion.cljs ================================================ (ns mecca.songs.confuzion (:require [mecca.music :as music] [re-frame.core :as rf :refer [subscribe dispatch]])) @(dispatch [:set-tempo 156.5]) (defn bass1 [time] [{:time (+ time 0), :instrument 15, :pitch 71} {:time (+ time 1.5) :instrument 15, :pitch 71} {:time (+ time 2) :instrument 15, :pitch 71} {:time (+ time 3) :instrument 15, :pitch 73} {:time (+ time 3.5) :instrument 15, :pitch 69} {:time (+ time 4) :instrument 15, :pitch 69} {:time (+ time 5.5) :instrument 15, :pitch 69} {:time (+ time 6) :instrument 15, :pitch 69} {:time (+ time 8) :instrument 15, :pitch 64} {:time (+ time 9.5) :instrument 15, :pitch 64} {:time (+ time 10) :instrument 15, :pitch 64} {:time (+ time 12) :instrument 15, :pitch 64} {:time (+ time 13.5) :instrument 15, :pitch 64} {:time (+ time 14) :instrument 15, :pitch 64}]) (defn bass2 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 29.5, :instrument 15, :pitch 69} {:time 29, :instrument 15, :pitch 64} {:time 31, :instrument 15, :pitch 64} {:time 26, :instrument 15, :pitch 69} {:time 25.5, :instrument 15, :pitch 69} {:time 24, :instrument 15, :pitch 69} {:time 23, :instrument 15, :pitch 67} {:time 22.5, :instrument 15, :pitch 66} {:time 17.5, :instrument 15, :pitch 64} {:time 0, :instrument 15, :pitch 71} {:time 1.5, :instrument 15, :pitch 66} {:time 2, :instrument 15, :pitch 64} {:time 2.5, :instrument 15, :pitch 62} {:time 3.5, :instrument 15, :pitch 59} {:time 5.5, :instrument 15, :pitch 66} {:time 6, :instrument 15, :pitch 64} {:time 7, :instrument 15, :pitch 62} {:time 8, :instrument 15, :pitch 69} {:time 9.5, :instrument 15, :pitch 64} {:time 10, :instrument 15, :pitch 62} {:time 10.5, :instrument 15, :pitch 61} {:time 11.5, :instrument 15, :pitch 57} {:time 13.5, :instrument 15, :pitch 64} {:time 14, :instrument 15, :pitch 62} {:time 15, :instrument 15, :pitch 61} {:time 16, :instrument 15, :pitch 64} {:time 18.5, :instrument 15, :pitch 64} {:time 19, :instrument 15, :pitch 66} {:time 19.5, :instrument 15, :pitch 67} {:time 20.5, :instrument 15, :pitch 66} {:time 21, :instrument 15, :pitch 64} {:time 21.5, :instrument 15, :pitch 64}])) (defn bass3 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 0, :instrument 15, :pitch 66} {:time 1.5, :instrument 15, :pitch 66} {:time 2, :instrument 15, :pitch 66} {:time 3, :instrument 15, :pitch 69} {:time 4, :instrument 15, :pitch 64} {:time 5.5, :instrument 15, :pitch 64} {:time 6, :instrument 15, :pitch 64} {:time 8, :instrument 15, :pitch 64} {:time 9.5, :instrument 15, :pitch 64} {:time 10, :instrument 15, :pitch 64} {:time 11, :instrument 15, :pitch 61} {:time 12, :instrument 15, :pitch 62} {:time 13.5, :instrument 15, :pitch 62} {:time 14, :instrument 15, :pitch 62} {:time 16, :instrument 15, :pitch 62} {:time 17.5, :instrument 15, :pitch 62} {:time 18, :instrument 15, :pitch 62} {:time 20, :instrument 15, :pitch 61} {:time 21.5, :instrument 15, :pitch 61} {:time 22, :instrument 15, :pitch 61} {:time 24, :instrument 15, :pitch 61} {:time 25.5, :instrument 15, :pitch 73} {:time 26.5, :instrument 15, :pitch 71} {:time 27, :instrument 15, :pitch 69} {:time 27.5, :instrument 15, :pitch 68}])) (defn bass4 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 0, :instrument 15, :pitch 66} {:time 1.5, :instrument 15, :pitch 66} {:time 2, :instrument 15, :pitch 66} {:time 4, :instrument 15, :pitch 64} {:time 5.5, :instrument 15, :pitch 64} {:time 6, :instrument 15, :pitch 64} {:time 7, :instrument 15, :pitch 61} {:time 8, :instrument 15, :pitch 62} {:time 9.5, :instrument 15, :pitch 62} {:time 10, :instrument 15, :pitch 62} {:time 12, :instrument 15, :pitch 69} {:time 13.5, :instrument 15, :pitch 69} {:time 14, :instrument 15, :pitch 69}])) (defn bass5 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 0, :instrument 15, :pitch 67} {:time 8, :instrument 15, :pitch 66} {:time 16, :instrument 15, :pitch 64} {:time 17, :instrument 15, :pitch 62} {:time 18, :instrument 15, :pitch 61} {:time 19, :instrument 15, :pitch 59}])) (def bass-pat-1 (concat (bass1 0) (bass1 16) (bass2 32) (bass3 64) (bass4 92) (bass4 108) (bass5 124))) (defn bass6 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 0, :instrument 15, :pitch 71} {:time 1.5, :instrument 15, :pitch 66} {:time 2, :instrument 15, :pitch 71} {:time 2.5, :instrument 15, :pitch 66} {:time 3.5, :instrument 15, :pitch 66} {:time 4, :instrument 15, :pitch 69} {:time 5.5, :instrument 15, :pitch 69} {:time 6, :instrument 15, :pitch 69} {:time 8, :instrument 15, :pitch 68} {:time 9.5, :instrument 15, :pitch 64} {:time 10, :instrument 15, :pitch 68} {:time 10.5, :instrument 15, :pitch 64} {:time 11.5, :instrument 15, :pitch 64} {:time 12, :instrument 15, :pitch 66} {:time 13.5, :instrument 15, :pitch 66} {:time 14, :instrument 15, :pitch 66}])) (defn bass7 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 0, :instrument 15, :pitch 67} {:time 1, :instrument 15, :pitch 62} {:time 1.5, :instrument 15, :pitch 64} {:time 2, :instrument 15, :pitch 67} {:time 2.5, :instrument 15, :pitch 62} {:time 3, :instrument 15, :pitch 67} {:time 3.5, :instrument 15, :pitch 67} {:time 4, :instrument 15, :pitch 66} {:time 5.5, :instrument 15, :pitch 66} {:time 6, :instrument 15, :pitch 66} {:time 8, :instrument 15, :pitch 67} {:time 9, :instrument 15, :pitch 62} {:time 9.5, :instrument 15, :pitch 64} {:time 10, :instrument 15, :pitch 67} {:time 10.5, :instrument 15, :pitch 62} {:time 11, :instrument 15, :pitch 67} {:time 11.5, :instrument 15, :pitch 66} {:time 12, :instrument 15, :pitch 64} {:time 13.5, :instrument 15, :pitch 64} {:time 14, :instrument 15, :pitch 64} {:time 16, :instrument 15, :pitch 64} {:time 17.5, :instrument 15, :pitch 64} {:time 18, :instrument 15, :pitch 64}])) (def bass-pat-2 (concat (bass6 144) (bass6 160) (bass7 176) (bass1 196) (bass1 212))) (def bass-pat-3 (concat (bass2 228) (bass3 260) (bass4 288) (bass4 304) (bass5 320))) (def bass-pat-4 (concat (bass6 340) (bass6 356) (bass7 372) (bass1 392) (bass1 408))) (def bass-pat-5 (concat (bass1 424) (bass1 440) (bass1 456) (bass1 472) (bass1 488) (bass1 504) (bass1 520))) (defn drums1 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 15, :instrument 3, :pitch 67} {:time 14, :instrument 13, :pitch 77} {:time 13, :instrument 13, :pitch 77} {:time 12, :instrument 13, :pitch 77} {:time 11, :instrument 3, :pitch 67} {:time 10, :instrument 13, :pitch 77} {:time 9, :instrument 13, :pitch 77} {:time 8, :instrument 13, :pitch 77} {:time 7, :instrument 3, :pitch 67} {:time 6, :instrument 13, :pitch 77} {:time 5, :instrument 13, :pitch 77} {:time 4, :instrument 13, :pitch 77} {:time 3, :instrument 3, :pitch 67} {:time 2, :instrument 13, :pitch 77} {:time 1, :instrument 13, :pitch 77} {:time 0, :instrument 13, :pitch 77}])) (defn drums2 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 7.5, :instrument 13, :pitch 77} {:time 7, :instrument 3, :pitch 67} {:time 6.5, :instrument 13, :pitch 77} {:time 6, :instrument 13, :pitch 77} {:time 5.5, :instrument 13, :pitch 77} {:time 5, :instrument 3, :pitch 67} {:time 4.5, :instrument 13, :pitch 77} {:time 4, :instrument 13, :pitch 77} {:time 3.5, :instrument 13, :pitch 77} {:time 3, :instrument 3, :pitch 67} {:time 2.5, :instrument 13, :pitch 77} {:time 2, :instrument 13, :pitch 77} {:time 1.5, :instrument 13, :pitch 77} {:time 1, :instrument 3, :pitch 67} {:time 0.5, :instrument 13, :pitch 77} {:time 0, :instrument 13, :pitch 77}])) (defn drums-pat-1 [time] (map (fn [m] (update m :time #(+ % time))) (concat (drums1 0) (drums1 16) (drums1 32) (drums1 48) (drums1 64) (drums1 80) (drums1 96) (drums1 112) [{:time 131, :instrument 3, :pitch 67} {:time 130, :instrument 13, :pitch 77} {:time 129, :instrument 13, :pitch 77} {:time 128, :instrument 13, :pitch 77}]))) (defn drums-pat-2 [time] (map (fn [m] (update m :time #(+ % time))) (concat (drums2 132) (drums2 140) (drums2 148) (drums2 156) (drums2 164) (drums2 172) (drums2 180) (drums2 188)))) (defn glis [notes] (let [chord (reverse (sort-by :pitch notes)) times (for [note (range (count chord))] (update (nth chord note) :time #(+ % (* 0.1 note)))) pitches (for [note (range (count times))] (update (nth times note) :pitch #(- % note))) last-note (repeat 3 (last pitches)) last-note (for [note (range 1 3)] (update (nth last-note note) :time #(+ % (/ note 10.0))))] (concat pitches last-note))) (defn lead1 [time] (map (fn [m] (update m :time #(+ % time))) (concat [{:time 1.5, :instrument 14, :pitch 69} {:time 2, :instrument 14, :pitch 71} {:time 2.5, :instrument 14, :pitch 74} {:time 3, :instrument 14, :pitch 76} {:time 3.5, :instrument 14, :pitch 78} {:time 4, :instrument 14, :pitch 78} {:time 4.5, :instrument 14, :pitch 78} {:time 5, :instrument 14, :pitch 76} {:time 6, :instrument 14, :pitch 74} {:time 6.5, :instrument 14, :pitch 76} {:time 7.5, :instrument 14, :pitch 74} {:time 7.75, :instrument 14, :pitch 76} {:time 8, :instrument 14, :pitch 74} {:time 9, :instrument 14, :pitch 74} {:time 9.5, :instrument 14, :pitch 71}] (glis (repeat 12 {:time 10 :instrument 8, :pitch 71})) [{:time 12, :instrument 14, :pitch 74} {:time 12.5, :instrument 14, :pitch 74} {:time 13.5, :instrument 14, :pitch 74} {:time 14.5, :instrument 14, :pitch 71} {:time 15.5, :instrument 14, :pitch 69} {:time 16, :instrument 14, :pitch 71}] (glis (repeat 8 {:time 16, :instrument 8, :pitch 71})) [{:time 17.5, :instrument 14, :pitch 64} {:time 18, :instrument 14, :pitch 66} {:time 18.5, :instrument 14, :pitch 69} {:time 19, :instrument 14, :pitch 71} {:time 20, :instrument 14, :pitch 71} {:time 20.5, :instrument 14, :pitch 73} {:time 21.5, :instrument 14, :pitch 69} {:time 22.5, :instrument 14, :pitch 69} {:time 24, :instrument 14, :pitch 66} {:time 24.5, :instrument 14, :pitch 64} {:time 25.5, :instrument 14, :pitch 64}]))) (defn lead2 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 0, :instrument 5, :pitch 66} {:time 1.5, :instrument 5, :pitch 71} {:time 7, :instrument 5, :pitch 71} {:time 8, :instrument 5, :pitch 71} {:time 8.5, :instrument 5, :pitch 69} {:time 9.5, :instrument 5, :pitch 64} {:time 15, :instrument 5, :pitch 66} {:time 16, :instrument 5, :pitch 67} {:time 16.5, :instrument 5, :pitch 64} {:time 17, :instrument 5, :pitch 59} {:time 17.5, :instrument 5, :pitch 64} {:time 21, :instrument 5, :pitch 61} {:time 21.5, :instrument 5, :pitch 61} {:time 22.5, :instrument 5, :pitch 62} {:time 24, :instrument 5, :pitch 66} {:time 25.5, :instrument 5, :pitch 64}])) (defn lead3 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 65, :instrument 5, :pitch 73} {:time 65.5, :instrument 5, :pitch 73} {:time 67, :instrument 5, :pitch 73} {:time 68, :instrument 5, :pitch 73} {:time 69, :instrument 5, :pitch 74} {:time 69.5, :instrument 5, :pitch 71} {:time 73.5, :instrument 5, :pitch 71} {:time 74, :instrument 5, :pitch 71} {:time 75, :instrument 5, :pitch 71} {:time 76, :instrument 5, :pitch 71} {:time 76.5, :instrument 5, :pitch 73} {:time 77, :instrument 5, :pitch 71} {:time 77.5, :instrument 5, :pitch 69} {:time 81, :instrument 5, :pitch 69} {:time 81.5, :instrument 5, :pitch 69} {:time 82.5, :instrument 5, :pitch 68} {:time 83.5, :instrument 5, :pitch 66} {:time 84, :instrument 5, :pitch 68} {:time 85.5, :instrument 5, :pitch 66} {:time 88, :instrument 5, :pitch 65} {:time 88.5, :instrument 5, :pitch 66} {:time 89.5, :instrument 5, :pitch 68} {:time 92, :instrument 5, :pitch 69}])) (defn lead4 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 93.5, :instrument 14, :pitch 64} {:time 94, :instrument 14, :pitch 66} {:time 94.5, :instrument 14, :pitch 69} {:time 95, :instrument 14, :pitch 71} {:time 95.5, :instrument 14, :pitch 73} {:time 97, :instrument 14, :pitch 71} {:time 98, :instrument 14, :pitch 69} {:time 98.5, :instrument 14, :pitch 71} {:time 99.5, :instrument 14, :pitch 69} {:time 99.75, :instrument 14, :pitch 71} {:time 100, :instrument 14, :pitch 69} {:time 101.5, :instrument 14, :pitch 66}])) (defn gb1 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 102, :instrument 6, :pitch 66} {:time 103, :instrument 6, :pitch 74} {:time 104, :instrument 6, :pitch 73} {:time 118, :instrument 6, :pitch 66} {:time 119, :instrument 6, :pitch 74} {:time 120, :instrument 6, :pitch 73} {:time 125.5, :instrument 6, :pitch 71} {:time 126, :instrument 6, :pitch 71} {:time 126.5, :instrument 6, :pitch 71} {:time 128, :instrument 6, :pitch 71} {:time 128.5, :instrument 6, :pitch 73} {:time 129.5, :instrument 6, :pitch 69} {:time 133.5, :instrument 6, :pitch 69} {:time 134, :instrument 6, :pitch 69} {:time 135, :instrument 6, :pitch 66} {:time 136, :instrument 6, :pitch 69} {:time 137.5, :instrument 6, :pitch 68}])) (defn lead5 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 93.5, :instrument 14, :pitch 64} {:time 94, :instrument 14, :pitch 66} {:time 94.5, :instrument 14, :pitch 69} {:time 95, :instrument 14, :pitch 71} {:time 95.5, :instrument 14, :pitch 73} {:time 97, :instrument 14, :pitch 71} {:time 98, :instrument 14, :pitch 69} {:time 98.5, :instrument 14, :pitch 71} {:time 99.5, :instrument 14, :pitch 69} {:time 99.75, :instrument 14, :pitch 71} {:time 100, :instrument 14, :pitch 69} {:time 101.5, :instrument 14, :pitch 66} {:time 105.5, :instrument 14, :pitch 69} {:time 106, :instrument 14, :pitch 69} {:time 106.5, :instrument 14, :pitch 69} {:time 107, :instrument 14, :pitch 68} {:time 107.5, :instrument 14, :pitch 68} {:time 108, :instrument 14, :pitch 66} {:time 105.5, :instrument 14, :pitch 57} {:time 106, :instrument 14, :pitch 57} {:time 106.5, :instrument 14, :pitch 57} {:time 107, :instrument 14, :pitch 56} {:time 107.5, :instrument 14, :pitch 56} {:time 108, :instrument 14, :pitch 54} {:time 110, :instrument 14, :pitch 78} {:time 110.5, :instrument 14, :pitch 76} {:time 111, :instrument 14, :pitch 73} {:time 111.5, :instrument 14, :pitch 71} {:time 112, :instrument 14, :pitch 73} {:time 114.5, :instrument 14, :pitch 71} {:time 115, :instrument 14, :pitch 73} {:time 115.5, :instrument 14, :pitch 71} {:time 116, :instrument 14, :pitch 71} {:time 116.5, :instrument 14, :pitch 69} {:time 117.5, :instrument 14, :pitch 69} {:time 118, :instrument 6, :pitch 66} {:time 119, :instrument 6, :pitch 74} {:time 120, :instrument 6, :pitch 73}])) (defn plane1 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 125.5, :instrument 6, :pitch 74} {:time 126, :instrument 6, :pitch 74} {:time 126.5, :instrument 6, :pitch 74} {:time 128, :instrument 6, :pitch 74} {:time 128.5, :instrument 6, :pitch 76} {:time 129.5, :instrument 6, :pitch 73} {:time 133.5, :instrument 6, :pitch 73} {:time 134, :instrument 6, :pitch 73} {:time 135, :instrument 6, :pitch 69} {:time 136, :instrument 6, :pitch 73} {:time 137.5, :instrument 6, :pitch 71}])) (defn flower1 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 144, :instrument 12, :pitch 78} {:time 144.5, :instrument 12, :pitch 74} {:time 145, :instrument 12, :pitch 71} {:time 145.5, :instrument 12, :pitch 78} {:time 146.5, :instrument 12, :pitch 74} {:time 147, :instrument 12, :pitch 71} {:time 147.5, :instrument 12, :pitch 76} {:time 148.5, :instrument 12, :pitch 73} {:time 149.5, :instrument 12, :pitch 71} {:time 150, :instrument 12, :pitch 69} {:time 152, :instrument 12, :pitch 80} {:time 152.5, :instrument 12, :pitch 76} {:time 153, :instrument 12, :pitch 73} {:time 153.5, :instrument 12, :pitch 80} {:time 154.5, :instrument 12, :pitch 76} {:time 155.5, :instrument 12, :pitch 78}])) (defn star1 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 157, :instrument 4, :pitch 70} {:time 158, :instrument 4, :pitch 71} {:time 159, :instrument 4, :pitch 73} {:time 157, :instrument 6, :pitch 70} {:time 158, :instrument 6, :pitch 71} {:time 159, :instrument 6, :pitch 73}])) (defn lead6 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 176, :instrument 12, :pitch 86} {:time 177, :instrument 12, :pitch 86} {:time 178, :instrument 12, :pitch 86} {:time 179.5, :instrument 12, :pitch 86} {:time 180.5, :instrument 12, :pitch 85} {:time 184, :instrument 12, :pitch 86} {:time 185, :instrument 12, :pitch 86} {:time 186, :instrument 12, :pitch 86} {:time 188, :instrument 12, :pitch 88} {:time 189, :instrument 12, :pitch 90} {:time 189.5, :instrument 12, :pitch 88} {:time 193.5, :instrument 12, :pitch 88} {:time 194, :instrument 12, :pitch 88} {:time 194.5, :instrument 12, :pitch 86} {:time 195, :instrument 12, :pitch 85} {:time 195.5, :instrument 12, :pitch 83} {:time 176, :instrument 4, :pitch 74} {:time 177, :instrument 4, :pitch 74} {:time 178, :instrument 4, :pitch 74} {:time 179.5, :instrument 4, :pitch 74} {:time 180.5, :instrument 4, :pitch 73} {:time 184, :instrument 4, :pitch 74} {:time 185, :instrument 4, :pitch 74} {:time 186, :instrument 4 :pitch 74} {:time 188, :instrument 4, :pitch 76} {:time 189, :instrument 4, :pitch 78} {:time 189.5, :instrument 4, :pitch 76} {:time 193.5, :instrument 4, :pitch 76} {:time 194, :instrument 4, :pitch 76} {:time 194.5, :instrument 4, :pitch 74} {:time 195, :instrument 4, :pitch 73} {:time 195.5, :instrument 4, :pitch 71} {:time 176, :instrument 6, :pitch 74} {:time 177, :instrument 6 :pitch 74} {:time 178, :instrument 6, :pitch 74} {:time 179.5, :instrument 6 :pitch 74} {:time 180.5, :instrument 6 :pitch 73} {:time 184, :instrument 6, :pitch 74} {:time 185, :instrument 6, :pitch 74} {:time 186, :instrument 6 :pitch 74} {:time 188, :instrument 6, :pitch 76} {:time 189, :instrument 6, :pitch 78} {:time 189.5, :instrument 6, :pitch 76} {:time 193.5, :instrument 6 :pitch 76} {:time 194, :instrument 6 :pitch 76} {:time 194.5, :instrument 6, :pitch 74} {:time 195, :instrument 6 :pitch 73} {:time 195.5, :instrument 6 :pitch 71}])) (defn lead7 [time] (map (fn [m] (update m :time #(+ % time))) (concat [{:time 1.5, :instrument 14, :pitch 69} {:time 2, :instrument 14, :pitch 71} {:time 2.5, :instrument 14, :pitch 74} {:time 3, :instrument 14, :pitch 76} {:time 3.5, :instrument 14, :pitch 78} {:time 4, :instrument 14, :pitch 78} {:time 4.5, :instrument 14, :pitch 78} {:time 5, :instrument 14, :pitch 76} {:time 6, :instrument 14, :pitch 74} {:time 6.5, :instrument 14, :pitch 76} {:time 7.5, :instrument 14, :pitch 74} {:time 7.75, :instrument 14, :pitch 76} {:time 8, :instrument 14, :pitch 74} {:time 9, :instrument 14, :pitch 74} {:time 9.5, :instrument 14, :pitch 71}] (glis (repeat 12 {:time 10 :instrument 8, :pitch 71})) [{:time 12, :instrument 14, :pitch 74} {:time 12.5, :instrument 14, :pitch 74} {:time 13.5, :instrument 14, :pitch 74} {:time 14.5, :instrument 14, :pitch 71} {:time 15.5, :instrument 14, :pitch 69} {:time 16, :instrument 14, :pitch 71}] (glis (repeat 8 {:time 16, :instrument 8, :pitch 71})) [{:time 17.5, :instrument 14, :pitch 64} {:time 18, :instrument 14, :pitch 66} {:time 18.5, :instrument 14, :pitch 69} {:time 19, :instrument 14, :pitch 71} {:time 20, :instrument 14, :pitch 71} {:time 20.5, :instrument 14, :pitch 73} {:time 21.5, :instrument 14, :pitch 69} {:time 22.5, :instrument 14, :pitch 69} {:time 23.5, :instrument 14, :pitch 64} {:time 24, :instrument 14, :pitch 64} {:time 24.5, :instrument 14, :pitch 64} {:time 25, :instrument 14, :pitch 64} {:time 25.5, :instrument 14, :pitch 59} {:time 26, :instrument 14, :pitch 59} {:time 26.5, :instrument 14, :pitch 59} {:time 27, :instrument 14, :pitch 59} {:time 27.5, :instrument 14, :pitch 54} {:time 28, :instrument 14, :pitch 54} {:time 28.5, :instrument 14, :pitch 54} {:time 29, :instrument 14, :pitch 54} {:time 29.5, :instrument 14, :pitch 52} {:time 30, :instrument 14, :pitch 54} {:time 30.5, :instrument 14, :pitch 52} {:time 24, :instrument 12, :pitch 76} {:time 24.5, :instrument 12, :pitch 76} {:time 25, :instrument 12, :pitch 76} {:time 25.5, :instrument 12, :pitch 71} {:time 26, :instrument 12, :pitch 71} {:time 26.5, :instrument 12, :pitch 71} {:time 27, :instrument 12, :pitch 71} {:time 27.5, :instrument 12, :pitch 66} {:time 28, :instrument 12, :pitch 66} {:time 28.5, :instrument 12, :pitch 66} {:time 29, :instrument 12, :pitch 66} {:time 29.5, :instrument 12, :pitch 64} {:time 30, :instrument 12, :pitch 66} {:time 30.5, :instrument 12, :pitch 64}]))) (def lead8 [{:time 458, :instrument 14, :pitch 74} {:time 458.5, :instrument 14, :pitch 74} {:time 459.5, :instrument 14, :pitch 74} {:time 461, :instrument 14, :pitch 76} {:time 464, :instrument 14, :pitch 83} {:time 465.5, :instrument 14, :pitch 80} {:time 468, :instrument 14, :pitch 78} {:time 469.5, :instrument 14, :pitch 80} {:time 472, :instrument 14, :pitch 76} {:time 472.5, :instrument 14, :pitch 74} {:time 473.5, :instrument 14, :pitch 71} {:time 476, :instrument 14, :pitch 69} {:time 476.5, :instrument 14, :pitch 71} {:time 477.5, :instrument 14, :pitch 69} {:time 480, :instrument 14, :pitch 66} {:time 481.5, :instrument 14, :pitch 64}]) (defn lead9 [time] (map (fn [m] (update m :time #(+ % time))) [{:time 488, :instrument 12, :pitch 73} {:time 488, :instrument 12, :pitch 76} {:time 489, :instrument 12, :pitch 73} {:time 489, :instrument 12, :pitch 76} {:time 490.5, :instrument 12, :pitch 73} {:time 490.5, :instrument 12, :pitch 76} {:time 491.5, :instrument 12, :pitch 73} {:time 491.5, :instrument 12, :pitch 76} {:time 492, :instrument 12, :pitch 71} {:time 492, :instrument 12, :pitch 78} {:time 493, :instrument 12, :pitch 71} {:time 493, :instrument 12, :pitch 78} {:time 494.5, :instrument 12, :pitch 71} {:time 494.5, :instrument 12, :pitch 78} {:time 495.5, :instrument 12, :pitch 71} {:time 495.5, :instrument 12, :pitch 78} {:time 496, :instrument 12, :pitch 71} {:time 496, :instrument 12, :pitch 76} {:time 497, :instrument 12, :pitch 71} {:time 497, :instrument 12, :pitch 76} {:time 498.5, :instrument 12, :pitch 71} {:time 498.5, :instrument 12, :pitch 76} {:time 499.5, :instrument 12, :pitch 71} {:time 499.5, :instrument 12, :pitch 76} {:time 500, :instrument 12, :pitch 71} {:time 500, :instrument 12, :pitch 78} {:time 500.5, :instrument 12, :pitch 71} {:time 500.5, :instrument 12, :pitch 78} {:time 501, :instrument 12, :pitch 71} {:time 501, :instrument 12, :pitch 78} {:time 501.5, :instrument 12, :pitch 71} {:time 501.5, :instrument 12, :pitch 76} {:time 502.5, :instrument 12, :pitch 71} {:time 502.5, :instrument 12, :pitch 76} {:time 503.5, :instrument 12, :pitch 71} {:time 503.5, :instrument 12, :pitch 76}])) @(dispatch [:set-notes (concat bass-pat-1 bass-pat-2 bass-pat-3 bass-pat-4 bass-pat-5 (drums-pat-1 0) (drums-pat-2 0) (drums-pat-1 196) (drums-pat-2 196) (drums-pat-2 260) (drums-pat-2 324) (drums2 520) (drums2 528) (lead1 0) (lead2 32) (lead3 0) (lead4 0) (gb1 0) (lead5 0) (plane1 0) (flower1 0) (map (fn [m] (update m :time #(+ % 16))) (flower1 0)) (star1 0) (map (fn [m] (update m :time #(+ % 16))) (star1 0)) (lead6 0) (lead1 196) (lead2 228) (lead3 196) (lead4 196) (gb1 196) (lead5 196) (plane1 196) (flower1 196) (map (fn [m] (update m :time #(+ % 16))) (flower1 196)) (star1 196) (map (fn [m] (update m :time #(+ % 16))) (star1 196)) (lead6 196) (lead1 392) (lead7 424) lead8 (lead9 0) (lead9 16) (lead9 32))]) ================================================ FILE: src/mecca/songs/megaman.cljs ================================================ (ns mecca.songs.megaman) (defn delay-note [beats note] (update note :time #(+ beats %))) (defn loop-notes [notes] (let [length (apply max (map #(:time %) notes))] (into notes (map #(delay-note (inc length) %) notes)))) (defn verse-chorus [verse chorus] (let [length (apply max (map #(:time %) verse))] (into verse (map #(delay-note (inc length) %) chorus)))) (defn bass-triad [time root third] [{:time time :instrument 15, :pitch root} {:time (+ time 3) :instrument 15, :pitch root} {:time (+ time 4) :instrument 15, :pitch (+ root (if (= "major" third) 4 3))} {:time (+ time 6) :instrument 15, :pitch (+ root 7)} {:time (+ time 9) :instrument 15, :pitch root} {:time (+ time 10) :instrument 15, :pitch root} {:time (+ time 11) :instrument 15, :pitch root} {:time (+ time 12) :instrument 15, :pitch (+ root (if (= "major" third) 4 3))} {:time (+ time 14) :instrument 15, :pitch (+ root 7)}]) (def bass-lead-verse-chorus [{:time 188, :instrument 14, :pitch 83} {:time 187, :instrument 14, :pitch 78} {:time 186, :instrument 14, :pitch 75} {:time 185, :instrument 14, :pitch 75} {:time 183, :instrument 14, :pitch 75} {:time 182, :instrument 14, :pitch 74} {:time 181, :instrument 14, :pitch 71} {:time 180, :instrument 14, :pitch 74} {:time 176, :instrument 14, :pitch 74} {:time 173, :instrument 14, :pitch 76} {:time 171, :instrument 14, :pitch 74} {:time 169, :instrument 14, :pitch 76} {:time 167, :instrument 14, :pitch 79} {:time 166, :instrument 14, :pitch 74} {:time 164, :instrument 14, :pitch 76} {:time 160, :instrument 14, :pitch 76} {:time 159, :instrument 14, :pitch 74} {:time 158, :instrument 14, :pitch 71} {:time 157, :instrument 14, :pitch 67} {:time 155, :instrument 14, :pitch 67} {:time 154, :instrument 14, :pitch 71} {:time 153, :instrument 14, :pitch 72} {:time 152, :instrument 14, :pitch 71} {:time 149, :instrument 14, :pitch 76} {:time 148, :instrument 14, :pitch 74} {:time 144, :instrument 14, :pitch 74} {:time 141, :instrument 14, :pitch 76} {:time 139, :instrument 14, :pitch 74} {:time 127, :instrument 14, :pitch 76} {:time 126, :instrument 14, :pitch 74} {:time 124, :instrument 14, :pitch 73} {:time 123, :instrument 14, :pitch 74} {:time 122, :instrument 14, :pitch 71} {:time 121, :instrument 14, :pitch 64} {:time 119, :instrument 14, :pitch 64} {:time 116, :instrument 14, :pitch 73} {:time 115, :instrument 14, :pitch 74} {:time 114, :instrument 14, :pitch 71} {:time 113, :instrument 14, :pitch 64} {:time 115, :instrument 5, :pitch 59} {:time 114, :instrument 5, :pitch 62} {:time 113, :instrument 5, :pitch 64} {:time 112, :instrument 5, :pitch 62} {:time 109, :instrument 5, :pitch 62} {:time 107, :instrument 5, :pitch 64} {:time 105, :instrument 5, :pitch 66} {:time 103, :instrument 5, :pitch 67} {:time 101, :instrument 5, :pitch 62} {:time 100, :instrument 5, :pitch 66} {:time 99.5, :instrument 5, :pitch 66} {:time 99, :instrument 5, :pitch 66} {:time 98, :instrument 5, :pitch 66} {:time 97.5, :instrument 5, :pitch 66} {:time 97, :instrument 5, :pitch 66} {:time 93, :instrument 5, :pitch 66} {:time 91, :instrument 5, :pitch 64} {:time 89, :instrument 5, :pitch 66} {:time 87, :instrument 5, :pitch 67} {:time 85, :instrument 5, :pitch 59} {:time 84, :instrument 5, :pitch 64} {:time 83.5, :instrument 5, :pitch 64} {:time 83, :instrument 5, :pitch 64} {:time 82, :instrument 5, :pitch 64} {:time 81.5, :instrument 5, :pitch 64} {:time 81, :instrument 5, :pitch 64} {:time 79, :instrument 5, :pitch 67} {:time 78, :instrument 5, :pitch 66} {:time 77, :instrument 5, :pitch 67} {:time 75, :instrument 5, :pitch 59} {:time 74, :instrument 5, :pitch 64} {:time 73.5, :instrument 5, :pitch 64} {:time 73, :instrument 5, :pitch 64} {:time 72, :instrument 5, :pitch 64} {:time 71, :instrument 5, :pitch 59} {:time 69, :instrument 5, :pitch 59} {:time 68, :instrument 5, :pitch 64} {:time 67.5, :instrument 5, :pitch 64} {:time 67, :instrument 5, :pitch 64} {:time 63, :instrument 14, :pitch 76} {:time 62, :instrument 14, :pitch 74} {:time 60, :instrument 14, :pitch 73} {:time 59, :instrument 14, :pitch 74} {:time 58, :instrument 14, :pitch 71} {:time 57, :instrument 14, :pitch 64} {:time 55, :instrument 14, :pitch 64} {:time 52, :instrument 14, :pitch 73} {:time 51, :instrument 14, :pitch 74} {:time 50, :instrument 14, :pitch 71} {:time 49, :instrument 14, :pitch 64} {:time 137, :instrument 14, :pitch 76} {:time 135, :instrument 14, :pitch 79} {:time 134, :instrument 14, :pitch 74} {:time 132, :instrument 14, :pitch 76} {:time 127, :instrument 14, :pitch 76} {:time 126, :instrument 14, :pitch 74} {:time 132, :instrument 5, :pitch 76} {:time 127, :instrument 5, :pitch 76} {:time 126, :instrument 5, :pitch 74} {:time 132, :instrument 5, :pitch 64} {:time 127, :instrument 5, :pitch 64} {:time 126, :instrument 5, :pitch 62} {:time 66, :instrument 5, :pitch 64} {:time 65.5, :instrument 5, :pitch 64} {:time 65, :instrument 5, :pitch 64} {:time 63, :instrument 5, :pitch 64} {:time 62, :instrument 5, :pitch 62} {:time 51, :instrument 5, :pitch 59} {:time 50, :instrument 5, :pitch 62} {:time 49, :instrument 5, :pitch 64} {:time 48, :instrument 5, :pitch 62} {:time 45, :instrument 5, :pitch 62} {:time 43, :instrument 5, :pitch 64} {:time 41, :instrument 5, :pitch 66} {:time 39, :instrument 5, :pitch 67} {:time 37, :instrument 5, :pitch 62} {:time 36, :instrument 5, :pitch 66} {:time 35.5, :instrument 5, :pitch 66} {:time 35, :instrument 5, :pitch 66} {:time 34, :instrument 5, :pitch 66} {:time 33.5, :instrument 5, :pitch 66} {:time 33, :instrument 5, :pitch 66} {:time 29, :instrument 5, :pitch 66} {:time 27, :instrument 5, :pitch 64} {:time 25, :instrument 5, :pitch 66} {:time 23, :instrument 5, :pitch 67} {:time 21, :instrument 5, :pitch 59} {:time 20, :instrument 5, :pitch 64} {:time 19.5, :instrument 5, :pitch 64} {:time 19, :instrument 5, :pitch 64} {:time 18, :instrument 5, :pitch 64} {:time 17.5, :instrument 5, :pitch 64} {:time 17, :instrument 5, :pitch 64} {:time 15, :instrument 5, :pitch 64} {:time 14, :instrument 5, :pitch 62} {:time 13, :instrument 5, :pitch 64} {:time 11, :instrument 5, :pitch 59} {:time 10, :instrument 5, :pitch 64} {:time 9.5, :instrument 5, :pitch 64} {:time 9, :instrument 5, :pitch 64} {:time 8, :instrument 5, :pitch 64} {:time 7, :instrument 5, :pitch 59} {:time 5, :instrument 5, :pitch 59} {:time 4, :instrument 5, :pitch 64} {:time 3.5, :instrument 5, :pitch 64} {:time 3, :instrument 5, :pitch 64} {:time 2, :instrument 5, :pitch 64} {:time 1.5, :instrument 5, :pitch 64} {:time 1, :instrument 5, :pitch 64} {:time 0, :instrument 5, :pitch 64} {:time 188, :instrument 15, :pitch 71} {:time 187, :instrument 15, :pitch 66} {:time 186, :instrument 15, :pitch 63} {:time 185.5, :instrument 15, :pitch 63} {:time 185, :instrument 15, :pitch 63} {:time 183, :instrument 15, :pitch 63} {:time 182, :instrument 15, :pitch 62} {:time 181, :instrument 15, :pitch 59} {:time 180, :instrument 15, :pitch 62} {:time 179.5, :instrument 15, :pitch 62} {:time 179, :instrument 15, :pitch 62} {:time 178, :instrument 15, :pitch 62} {:time 177.5, :instrument 15, :pitch 62} {:time 177, :instrument 15, :pitch 62} {:time 176, :instrument 15, :pitch 62} {:time 175, :instrument 15, :pitch 65} {:time 174, :instrument 15, :pitch 69} {:time 173, :instrument 15, :pitch 65} {:time 172, :instrument 15, :pitch 72} {:time 171, :instrument 15, :pitch 65} {:time 170, :instrument 15, :pitch 69} {:time 169, :instrument 15, :pitch 65} {:time 167, :instrument 15, :pitch 69} {:time 166, :instrument 15, :pitch 69} {:time 165, :instrument 15, :pitch 72} {:time 164, :instrument 15, :pitch 65} {:time 163.5, :instrument 15, :pitch 65} {:time 163, :instrument 15, :pitch 65} {:time 161, :instrument 15, :pitch 65} {:time 162, :instrument 15, :pitch 65} {:time 161.5, :instrument 15, :pitch 65} {:time 160, :instrument 15, :pitch 65} {:time 159, :instrument 15, :pitch 64} {:time 158, :instrument 15, :pitch 67} {:time 157, :instrument 15, :pitch 71} {:time 156, :instrument 15, :pitch 74} {:time 155, :instrument 15, :pitch 67} {:time 154, :instrument 15, :pitch 71} {:time 153, :instrument 15, :pitch 64} {:time 151, :instrument 15, :pitch 74} {:time 150, :instrument 15, :pitch 67} {:time 149, :instrument 15, :pitch 71} {:time 148, :instrument 15, :pitch 64} {:time 147.5, :instrument 15, :pitch 64} {:time 147, :instrument 15, :pitch 64} {:time 146, :instrument 15, :pitch 64} {:time 144, :instrument 15, :pitch 64} {:time 143, :instrument 15, :pitch 69} {:time 142, :instrument 15, :pitch 65} {:time 141, :instrument 15, :pitch 69} {:time 140, :instrument 15, :pitch 72} {:time 139, :instrument 15, :pitch 65} {:time 138, :instrument 15, :pitch 69} {:time 137, :instrument 15, :pitch 65} {:time 134, :instrument 15, :pitch 69} {:time 133, :instrument 15, :pitch 72} {:time 132, :instrument 15, :pitch 65} {:time 131.5, :instrument 15, :pitch 65} {:time 131, :instrument 15, :pitch 65} {:time 129.5, :instrument 15, :pitch 65} {:time 129, :instrument 15, :pitch 65} {:time 130, :instrument 15, :pitch 65} {:time 128, :instrument 15, :pitch 65} {:time 126, :instrument 15, :pitch 71} {:time 124, :instrument 15, :pitch 67} {:time 123, :instrument 15, :pitch 64} {:time 122, :instrument 15, :pitch 64} {:time 121, :instrument 15, :pitch 64} {:time 118, :instrument 15, :pitch 71} {:time 116, :instrument 15, :pitch 67} {:time 115, :instrument 15, :pitch 64} {:time 112, :instrument 15, :pitch 64} {:time 110, :instrument 15, :pitch 69} {:time 108, :instrument 15, :pitch 66} {:time 107, :instrument 15, :pitch 62} {:time 106, :instrument 15, :pitch 62} {:time 105, :instrument 15, :pitch 62} {:time 102, :instrument 15, :pitch 69} {:time 100, :instrument 15, :pitch 66} {:time 99, :instrument 15, :pitch 62} {:time 96, :instrument 15, :pitch 62} {:time 94, :instrument 15, :pitch 67} {:time 92, :instrument 15, :pitch 64} {:time 91, :instrument 15, :pitch 60} {:time 90, :instrument 15, :pitch 60} {:time 89, :instrument 15, :pitch 60} {:time 86, :instrument 15, :pitch 67} {:time 84, :instrument 15, :pitch 64} {:time 83, :instrument 15, :pitch 60} {:time 80, :instrument 15, :pitch 60} {:time 78, :instrument 15, :pitch 71} {:time 76, :instrument 15, :pitch 67} {:time 75, :instrument 15, :pitch 64} {:time 74, :instrument 15, :pitch 64} {:time 73, :instrument 15, :pitch 64} {:time 70, :instrument 15, :pitch 71} {:time 68, :instrument 15, :pitch 67} {:time 67, :instrument 15, :pitch 64} {:time 64, :instrument 15, :pitch 64} {:time 65, :instrument 5, :pitch 67} {:time 65.5, :instrument 5, :pitch 67} {:time 66, :instrument 5, :pitch 67} {:time 67, :instrument 5, :pitch 67} {:time 67.5, :instrument 5, :pitch 67} {:time 68, :instrument 5, :pitch 67} {:time 69, :instrument 5, :pitch 64} {:time 71, :instrument 5, :pitch 64} {:time 72, :instrument 5, :pitch 67} {:time 73, :instrument 5, :pitch 67} {:time 73.5, :instrument 5, :pitch 67} {:time 74, :instrument 5, :pitch 67} {:time 75, :instrument 5, :pitch 64} {:time 77, :instrument 5, :pitch 71} {:time 78, :instrument 5, :pitch 69} {:time 79, :instrument 5, :pitch 71} {:time 81, :instrument 5, :pitch 67} {:time 81.5, :instrument 5, :pitch 67} {:time 82, :instrument 5, :pitch 67} {:time 83, :instrument 5, :pitch 67} {:time 83.5, :instrument 5, :pitch 67} {:time 84, :instrument 5, :pitch 67} {:time 85, :instrument 5, :pitch 64} {:time 87, :instrument 5, :pitch 71} {:time 89, :instrument 5, :pitch 69} {:time 91, :instrument 5, :pitch 67} {:time 93, :instrument 5, :pitch 69} {:time 97, :instrument 5, :pitch 69} {:time 97.5, :instrument 5, :pitch 69} {:time 98, :instrument 5, :pitch 69} {:time 99, :instrument 5, :pitch 69} {:time 99.5, :instrument 5, :pitch 69} {:time 100, :instrument 5, :pitch 69} {:time 101, :instrument 5, :pitch 66} {:time 103, :instrument 5, :pitch 71} {:time 105, :instrument 5, :pitch 69} {:time 107, :instrument 5, :pitch 67} {:time 109, :instrument 5, :pitch 66} {:time 112, :instrument 5, :pitch 66} {:time 113, :instrument 5, :pitch 67} {:time 114, :instrument 5, :pitch 66} {:time 115, :instrument 5, :pitch 64} {:time 126, :instrument 5, :pitch 66} {:time 127, :instrument 5, :pitch 67} {:time 63, :instrument 5, :pitch 67} {:time 62, :instrument 5, :pitch 66} {:time 51, :instrument 5, :pitch 64} {:time 50, :instrument 5, :pitch 66} {:time 49, :instrument 5, :pitch 67} {:time 48, :instrument 5, :pitch 66} {:time 45, :instrument 5, :pitch 66} {:time 43, :instrument 5, :pitch 67} {:time 41, :instrument 5, :pitch 69} {:time 39, :instrument 5, :pitch 71} {:time 37, :instrument 5, :pitch 66} {:time 36, :instrument 5, :pitch 69} {:time 35.5, :instrument 5, :pitch 69} {:time 35, :instrument 5, :pitch 69} {:time 34, :instrument 5, :pitch 69} {:time 33.5, :instrument 5, :pitch 69} {:time 33, :instrument 5, :pitch 69} {:time 29, :instrument 5, :pitch 69} {:time 27, :instrument 5, :pitch 67} {:time 25, :instrument 5, :pitch 69} {:time 23, :instrument 5, :pitch 71} {:time 21, :instrument 5, :pitch 64} {:time 20, :instrument 5, :pitch 67} {:time 19.5, :instrument 5, :pitch 67} {:time 19, :instrument 5, :pitch 67} {:time 18, :instrument 5, :pitch 67} {:time 17.5, :instrument 5, :pitch 67} {:time 17, :instrument 5, :pitch 67} {:time 15, :instrument 5, :pitch 71} {:time 14, :instrument 5, :pitch 69} {:time 13, :instrument 5, :pitch 71} {:time 11, :instrument 5, :pitch 64} {:time 10, :instrument 5, :pitch 67} {:time 9.5, :instrument 5, :pitch 67} {:time 9, :instrument 5, :pitch 67} {:time 8, :instrument 5, :pitch 67} {:time 7, :instrument 5, :pitch 64} {:time 5, :instrument 5, :pitch 64} {:time 4, :instrument 5, :pitch 67} {:time 3.5, :instrument 5, :pitch 67} {:time 3, :instrument 5, :pitch 67} {:time 2, :instrument 5, :pitch 67} {:time 1.5, :instrument 5, :pitch 67} {:time 1, :instrument 5, :pitch 67} {:time 0, :instrument 15, :pitch 64} {:time 3, :instrument 15, :pitch 64} {:time 4, :instrument 15, :pitch 67} {:time 6, :instrument 15, :pitch 71} {:time 9, :instrument 15, :pitch 64} {:time 10, :instrument 15, :pitch 64} {:time 11, :instrument 15, :pitch 64} {:time 12, :instrument 15, :pitch 67} {:time 14, :instrument 15, :pitch 71} {:time 16, :instrument 15, :pitch 60} {:time 19, :instrument 15, :pitch 60} {:time 20, :instrument 15, :pitch 64} {:time 22, :instrument 15, :pitch 67} {:time 25, :instrument 15, :pitch 60} {:time 26, :instrument 15, :pitch 60} {:time 27, :instrument 15, :pitch 60} {:time 28, :instrument 15, :pitch 64} {:time 30, :instrument 15, :pitch 67} {:time 32, :instrument 15, :pitch 62} {:time 35, :instrument 15, :pitch 62} {:time 36, :instrument 15, :pitch 66} {:time 38, :instrument 15, :pitch 69} {:time 41, :instrument 15, :pitch 62} {:time 42, :instrument 15, :pitch 62} {:time 43, :instrument 15, :pitch 62} {:time 44, :instrument 15, :pitch 66} {:time 46, :instrument 15, :pitch 69} {:time 48, :instrument 15, :pitch 64} {:time 51, :instrument 15, :pitch 64} {:time 52, :instrument 15, :pitch 67} {:time 54, :instrument 15, :pitch 71} {:time 57, :instrument 15, :pitch 64} {:time 58, :instrument 15, :pitch 64} {:time 59, :instrument 15, :pitch 64} {:time 60, :instrument 15, :pitch 67} {:time 62, :instrument 15, :pitch 71}]) (def bass-chorus [{:time 0, :instrument 15, :pitch 65} {:time 2, :instrument 15, :pitch 65} {:time 1, :instrument 15, :pitch 65} {:time 1.5, :instrument 15, :pitch 65} {:time 3, :instrument 15, :pitch 65} {:time 3.5, :instrument 15, :pitch 65} {:time 4, :instrument 15, :pitch 65} {:time 5, :instrument 15, :pitch 72} {:time 6, :instrument 15, :pitch 69} {:time 9, :instrument 15, :pitch 65} {:time 10, :instrument 15, :pitch 69} {:time 11, :instrument 15, :pitch 65} {:time 12, :instrument 15, :pitch 72} {:time 13, :instrument 15, :pitch 69} {:time 14, :instrument 15, :pitch 65} {:time 15, :instrument 15, :pitch 69} {:time 16, :instrument 15, :pitch 64} {:time 18, :instrument 15, :pitch 64} {:time 19, :instrument 15, :pitch 64} {:time 19.5, :instrument 15, :pitch 64} {:time 20, :instrument 15, :pitch 64} {:time 21, :instrument 15, :pitch 71} {:time 22, :instrument 15, :pitch 67} {:time 23, :instrument 15, :pitch 74} {:time 25, :instrument 15, :pitch 64} {:time 26, :instrument 15, :pitch 71} {:time 27, :instrument 15, :pitch 67} {:time 28, :instrument 15, :pitch 74} {:time 29, :instrument 15, :pitch 71} {:time 30, :instrument 15, :pitch 67} {:time 31, :instrument 15, :pitch 64} {:time 32, :instrument 15, :pitch 65} {:time 33.5, :instrument 15, :pitch 65} {:time 34, :instrument 15, :pitch 65} {:time 33, :instrument 15, :pitch 65} {:time 35, :instrument 15, :pitch 65} {:time 35.5, :instrument 15, :pitch 65} {:time 36, :instrument 15, :pitch 65} {:time 37, :instrument 15, :pitch 72} {:time 38, :instrument 15, :pitch 69} {:time 39, :instrument 15, :pitch 69} {:time 41, :instrument 15, :pitch 65} {:time 42, :instrument 15, :pitch 69} {:time 43, :instrument 15, :pitch 65} {:time 44, :instrument 15, :pitch 72} {:time 45, :instrument 15, :pitch 65} {:time 46, :instrument 15, :pitch 69} {:time 47, :instrument 15, :pitch 65} {:time 48, :instrument 15, :pitch 62} {:time 49, :instrument 15, :pitch 62} {:time 49.5, :instrument 15, :pitch 62} {:time 50, :instrument 15, :pitch 62} {:time 51, :instrument 15, :pitch 62} {:time 51.5, :instrument 15, :pitch 62} {:time 52, :instrument 15, :pitch 62} {:time 53, :instrument 15, :pitch 59} {:time 54, :instrument 15, :pitch 62} {:time 55, :instrument 15, :pitch 63} {:time 57, :instrument 15, :pitch 63} {:time 57.5, :instrument 15, :pitch 63} {:time 58, :instrument 15, :pitch 63} {:time 59, :instrument 15, :pitch 66} {:time 60, :instrument 15, :pitch 71}]) (def lead1 [{:time 1, :instrument 5, :pitch 67} {:time 1.5, :instrument 5, :pitch 67} {:time 2, :instrument 5, :pitch 67} {:time 3, :instrument 5, :pitch 67} {:time 3.5, :instrument 5, :pitch 67} {:time 4, :instrument 5, :pitch 67} {:time 5, :instrument 5, :pitch 64} {:time 7, :instrument 5, :pitch 64} {:time 8, :instrument 5, :pitch 67} {:time 9, :instrument 5, :pitch 67} {:time 9.5, :instrument 5, :pitch 67} {:time 10, :instrument 5, :pitch 67} {:time 11, :instrument 5, :pitch 64} {:time 13, :instrument 5, :pitch 71} {:time 14, :instrument 5, :pitch 69} {:time 15, :instrument 5, :pitch 71} {:time 17, :instrument 5, :pitch 67} {:time 17.5, :instrument 5, :pitch 67} {:time 18, :instrument 5, :pitch 67} {:time 19, :instrument 5, :pitch 67} {:time 19.5, :instrument 5, :pitch 67} {:time 20, :instrument 5, :pitch 67} {:time 21, :instrument 5, :pitch 64} {:time 23, :instrument 5, :pitch 71} {:time 25, :instrument 5, :pitch 69} {:time 27, :instrument 5, :pitch 67} {:time 29, :instrument 5, :pitch 69} {:time 33, :instrument 5, :pitch 69} {:time 33.5, :instrument 5, :pitch 69} {:time 34, :instrument 5, :pitch 69} {:time 35, :instrument 5, :pitch 69} {:time 35.5, :instrument 5, :pitch 69} {:time 36, :instrument 5, :pitch 69} {:time 37, :instrument 5, :pitch 66} {:time 39, :instrument 5, :pitch 71} {:time 41, :instrument 5, :pitch 69} {:time 43, :instrument 5, :pitch 67} {:time 45, :instrument 5, :pitch 66} {:time 48, :instrument 5, :pitch 66} {:time 49, :instrument 5, :pitch 67} {:time 50, :instrument 5, :pitch 66} {:time 51, :instrument 5, :pitch 64} {:time 62, :instrument 5, :pitch 66} {:time 63, :instrument 5, :pitch 67}]) (def mm1 [{:time 189.5, :instrument 14, :pitch 83}{:time 189, :instrument 14, :pitch 83}{:time 188.5, :instrument 14, :pitch 83}{:time 182.5, :instrument 14, :pitch 74}{:time 181.5, :instrument 14, :pitch 71}{:time 180.5, :instrument 14, :pitch 74}{:time 177.5, :instrument 14, :pitch 74}{:time 177, :instrument 14, :pitch 74}{:time 176.5, :instrument 14, :pitch 74}{:time 174.5, :instrument 14, :pitch 76}{:time 174, :instrument 14, :pitch 76}{:time 173.5, :instrument 14, :pitch 76}{:time 172.5, :instrument 14, :pitch 74}{:time 172, :instrument 14, :pitch 74}{:time 171.5, :instrument 14, :pitch 74}{:time 170.5, :instrument 14, :pitch 76}{:time 170, :instrument 14, :pitch 76}{:time 169.5, :instrument 14, :pitch 76}{:time 168.5, :instrument 14, :pitch 79}{:time 168, :instrument 14, :pitch 79}{:time 167.5, :instrument 14, :pitch 79}{:time 166.5, :instrument 14, :pitch 74}{:time 165.5, :instrument 14, :pitch 76}{:time 165, :instrument 14, :pitch 76}{:time 164.5, :instrument 14, :pitch 76}{:time 161.5, :instrument 14, :pitch 76}{:time 161, :instrument 14, :pitch 76}{:time 160.5, :instrument 14, :pitch 76}{:time 155.5, :instrument 14, :pitch 67}{:time 154.5, :instrument 14, :pitch 71}{:time 153.5, :instrument 14, :pitch 72}{:time 152.5, :instrument 14, :pitch 71}{:time 150.5, :instrument 14, :pitch 76}{:time 150, :instrument 14, :pitch 76}{:time 149.5, :instrument 14, :pitch 76}{:time 148.5, :instrument 14, :pitch 74}{:time 145.5, :instrument 14, :pitch 74}{:time 145, :instrument 14, :pitch 74}{:time 144.5, :instrument 14, :pitch 74}{:time 142.5, :instrument 14, :pitch 76}{:time 142, :instrument 14, :pitch 76}{:time 141.5, :instrument 14, :pitch 76}{:time 140.5, :instrument 14, :pitch 74}{:time 140, :instrument 14, :pitch 74}{:time 139.5, :instrument 14, :pitch 74}{:time 138.5, :instrument 14, :pitch 76}{:time 138, :instrument 14, :pitch 76}{:time 137.5, :instrument 14, :pitch 76}{:time 136.5, :instrument 14, :pitch 79}{:time 136, :instrument 14, :pitch 79}{:time 135.5, :instrument 14, :pitch 79}{:time 133, :instrument 14, :pitch 76}{:time 254, :instrument 8, :pitch 62}{:time 255, :instrument 8, :pitch 64}{:time 255, :instrument 15, :pitch 64}{:time 254, :instrument 15, :pitch 62}{:time 254, :instrument 3, :pitch 64}{:time 253.5, :instrument 2, :pitch 59}{:time 255, :instrument 2, :pitch 59}{:time 254, :instrument 2, :pitch 69}{:time 253, :instrument 2, :pitch 59}{:time 252, :instrument 2, :pitch 59}{:time 251.5, :instrument 2, :pitch 64}{:time 251, :instrument 2, :pitch 67}{:time 250.5, :instrument 2, :pitch 71}{:time 250, :instrument 2, :pitch 74}{:time 62, :instrument 3, :pitch 64}{:time 7, :instrument 13, :pitch 76}{:time 5.5, :instrument 13, :pitch 76}{:time 5, :instrument 13, :pitch 76}{:time 2, :instrument 2, :pitch 69}{:time 0, :instrument 2, :pitch 60}{:time 1, :instrument 13, :pitch 76}{:time 1.5, :instrument 13, :pitch 76}{:time 3, :instrument 13, :pitch 76}{:time 4, :instrument 2, :pitch 60}{:time 5, :instrument 2, :pitch 60}{:time 6, :instrument 2, :pitch 69}{:time 15, :instrument 13, :pitch 76}{:time 13.5, :instrument 13, :pitch 76}{:time 13, :instrument 13, :pitch 76}{:time 10, :instrument 2, :pitch 69}{:time 8, :instrument 2, :pitch 60}{:time 9, :instrument 13, :pitch 76}{:time 9.5, :instrument 13, :pitch 76}{:time 11, :instrument 13, :pitch 76}{:time 12, :instrument 2, :pitch 60}{:time 13, :instrument 2, :pitch 60}{:time 14, :instrument 2, :pitch 69}{:time 23, :instrument 13, :pitch 76}{:time 21.5, :instrument 13, :pitch 76}{:time 21, :instrument 13, :pitch 76}{:time 18, :instrument 2, :pitch 69}{:time 16, :instrument 2, :pitch 60}{:time 17, :instrument 13, :pitch 76}{:time 17.5, :instrument 13, :pitch 76}{:time 19, :instrument 13, :pitch 76}{:time 20, :instrument 2, :pitch 60}{:time 21, :instrument 2, :pitch 60}{:time 22, :instrument 2, :pitch 69}{:time 31, :instrument 13, :pitch 76}{:time 29.5, :instrument 13, :pitch 76}{:time 29, :instrument 13, :pitch 76}{:time 26, :instrument 2, :pitch 69}{:time 24, :instrument 2, :pitch 60}{:time 25, :instrument 13, :pitch 76}{:time 25.5, :instrument 13, :pitch 76}{:time 27, :instrument 13, :pitch 76}{:time 28, :instrument 2, :pitch 60}{:time 29, :instrument 2, :pitch 60}{:time 30, :instrument 2, :pitch 69}{:time 39, :instrument 13, :pitch 76}{:time 37.5, :instrument 13, :pitch 76}{:time 37, :instrument 13, :pitch 76}{:time 34, :instrument 2, :pitch 69}{:time 32, :instrument 2, :pitch 60}{:time 33, :instrument 13, :pitch 76}{:time 33.5, :instrument 13, :pitch 76}{:time 35, :instrument 13, :pitch 76}{:time 36, :instrument 2, :pitch 60}{:time 37, :instrument 2, :pitch 60}{:time 38, :instrument 2, :pitch 69}{:time 47, :instrument 13, :pitch 76}{:time 45.5, :instrument 13, :pitch 76}{:time 45, :instrument 13, :pitch 76}{:time 42, :instrument 2, :pitch 69}{:time 40, :instrument 2, :pitch 60}{:time 41, :instrument 13, :pitch 76}{:time 41.5, :instrument 13, :pitch 76}{:time 43, :instrument 13, :pitch 76}{:time 44, :instrument 2, :pitch 60}{:time 45, :instrument 2, :pitch 60}{:time 46, :instrument 2, :pitch 69}{:time 55, :instrument 13, :pitch 76}{:time 53.5, :instrument 13, :pitch 76}{:time 53, :instrument 13, :pitch 76}{:time 50, :instrument 2, :pitch 69}{:time 48, :instrument 2, :pitch 60}{:time 49, :instrument 13, :pitch 76}{:time 49.5, :instrument 13, :pitch 76}{:time 51, :instrument 13, :pitch 76}{:time 52, :instrument 2, :pitch 60}{:time 53, :instrument 2, :pitch 60}{:time 54, :instrument 2, :pitch 69}{:time 63, :instrument 13, :pitch 76}{:time 61.5, :instrument 13, :pitch 76}{:time 61, :instrument 13, :pitch 76}{:time 58, :instrument 2, :pitch 69}{:time 56, :instrument 2, :pitch 60}{:time 57, :instrument 13, :pitch 76}{:time 57.5, :instrument 13, :pitch 76}{:time 59, :instrument 13, :pitch 76}{:time 60, :instrument 2, :pitch 60}{:time 61, :instrument 2, :pitch 60}{:time 62, :instrument 2, :pitch 69}{:time 71, :instrument 13, :pitch 76}{:time 69.5, :instrument 13, :pitch 76}{:time 69, :instrument 13, :pitch 76}{:time 66, :instrument 2, :pitch 69}{:time 64, :instrument 2, :pitch 60}{:time 65, :instrument 13, :pitch 76}{:time 65.5, :instrument 13, :pitch 76}{:time 67, :instrument 13, :pitch 76}{:time 68, :instrument 2, :pitch 60}{:time 69, :instrument 2, :pitch 60}{:time 70, :instrument 2, :pitch 69}{:time 79, :instrument 13, :pitch 76}{:time 77.5, :instrument 13, :pitch 76}{:time 77, :instrument 13, :pitch 76}{:time 74, :instrument 2, :pitch 69}{:time 72, :instrument 2, :pitch 60}{:time 73, :instrument 13, :pitch 76}{:time 73.5, :instrument 13, :pitch 76}{:time 75, :instrument 13, :pitch 76}{:time 76, :instrument 2, :pitch 60}{:time 77, :instrument 2, :pitch 60}{:time 78, :instrument 2, :pitch 69}{:time 87, :instrument 13, :pitch 76}{:time 85.5, :instrument 13, :pitch 76}{:time 85, :instrument 13, :pitch 76}{:time 82, :instrument 2, :pitch 69}{:time 80, :instrument 2, :pitch 60}{:time 81, :instrument 13, :pitch 76}{:time 81.5, :instrument 13, :pitch 76}{:time 83, :instrument 13, :pitch 76}{:time 84, :instrument 2, :pitch 60}{:time 85, :instrument 2, :pitch 60}{:time 86, :instrument 2, :pitch 69}{:time 95, :instrument 13, :pitch 76}{:time 93.5, :instrument 13, :pitch 76}{:time 93, :instrument 13, :pitch 76}{:time 90, :instrument 2, :pitch 69}{:time 88, :instrument 2, :pitch 60}{:time 89, :instrument 13, :pitch 76}{:time 89.5, :instrument 13, :pitch 76}{:time 91, :instrument 13, :pitch 76}{:time 92, :instrument 2, :pitch 60}{:time 93, :instrument 2, :pitch 60}{:time 94, :instrument 2, :pitch 69}{:time 103, :instrument 13, :pitch 76}{:time 101.5, :instrument 13, :pitch 76}{:time 101, :instrument 13, :pitch 76}{:time 98, :instrument 2, :pitch 69}{:time 96, :instrument 2, :pitch 60}{:time 97, :instrument 13, :pitch 76}{:time 97.5, :instrument 13, :pitch 76}{:time 99, :instrument 13, :pitch 76}{:time 100, :instrument 2, :pitch 60}{:time 101, :instrument 2, :pitch 60}{:time 102, :instrument 2, :pitch 69}{:time 111, :instrument 13, :pitch 76}{:time 109.5, :instrument 13, :pitch 76}{:time 109, :instrument 13, :pitch 76}{:time 106, :instrument 2, :pitch 69}{:time 104, :instrument 2, :pitch 60}{:time 105, :instrument 13, :pitch 76}{:time 105.5, :instrument 13, :pitch 76}{:time 107, :instrument 13, :pitch 76}{:time 108, :instrument 2, :pitch 60}{:time 109, :instrument 2, :pitch 60}{:time 110, :instrument 2, :pitch 69}{:time 119, :instrument 13, :pitch 76}{:time 117.5, :instrument 13, :pitch 76}{:time 117, :instrument 13, :pitch 76}{:time 114, :instrument 2, :pitch 69}{:time 112, :instrument 2, :pitch 60}{:time 113, :instrument 13, :pitch 76}{:time 113.5, :instrument 13, :pitch 76}{:time 115, :instrument 13, :pitch 76}{:time 116, :instrument 2, :pitch 60}{:time 117, :instrument 2, :pitch 60}{:time 118, :instrument 2, :pitch 69}{:time 127, :instrument 13, :pitch 76}{:time 125.5, :instrument 13, :pitch 76}{:time 125, :instrument 13, :pitch 76}{:time 122, :instrument 2, :pitch 69}{:time 120, :instrument 2, :pitch 60}{:time 121, :instrument 13, :pitch 76}{:time 121.5, :instrument 13, :pitch 76}{:time 123, :instrument 13, :pitch 76}{:time 124, :instrument 2, :pitch 60}{:time 125, :instrument 2, :pitch 60}{:time 126, :instrument 2, :pitch 69}{:time 135, :instrument 13, :pitch 76}{:time 133.5, :instrument 13, :pitch 76}{:time 133, :instrument 13, :pitch 76}{:time 130, :instrument 2, :pitch 69}{:time 128, :instrument 2, :pitch 60}{:time 129, :instrument 13, :pitch 76}{:time 129.5, :instrument 13, :pitch 76}{:time 131, :instrument 13, :pitch 76}{:time 132, :instrument 2, :pitch 60}{:time 133, :instrument 2, :pitch 60}{:time 134, :instrument 2, :pitch 69}{:time 143, :instrument 13, :pitch 76}{:time 141.5, :instrument 13, :pitch 76}{:time 141, :instrument 13, :pitch 76}{:time 138, :instrument 2, :pitch 69}{:time 136, :instrument 2, :pitch 60}{:time 137, :instrument 13, :pitch 76}{:time 137.5, :instrument 13, :pitch 76}{:time 139, :instrument 13, :pitch 76}{:time 140, :instrument 2, :pitch 60}{:time 141, :instrument 2, :pitch 60}{:time 142, :instrument 2, :pitch 69}{:time 151, :instrument 13, :pitch 76}{:time 149.5, :instrument 13, :pitch 76}{:time 149, :instrument 13, :pitch 76}{:time 146, :instrument 2, :pitch 69}{:time 144, :instrument 2, :pitch 60}{:time 145, :instrument 13, :pitch 76}{:time 145.5, :instrument 13, :pitch 76}{:time 147, :instrument 13, :pitch 76}{:time 148, :instrument 2, :pitch 60}{:time 149, :instrument 2, :pitch 60}{:time 150, :instrument 2, :pitch 69}{:time 159, :instrument 13, :pitch 76}{:time 157.5, :instrument 13, :pitch 76}{:time 157, :instrument 13, :pitch 76}{:time 154, :instrument 2, :pitch 69}{:time 152, :instrument 2, :pitch 60}{:time 153, :instrument 13, :pitch 76}{:time 153.5, :instrument 13, :pitch 76}{:time 155, :instrument 13, :pitch 76}{:time 156, :instrument 2, :pitch 60}{:time 157, :instrument 2, :pitch 60}{:time 158, :instrument 2, :pitch 69}{:time 167, :instrument 13, :pitch 76}{:time 165.5, :instrument 13, :pitch 76}{:time 165, :instrument 13, :pitch 76}{:time 162, :instrument 2, :pitch 69}{:time 160, :instrument 2, :pitch 60}{:time 161, :instrument 13, :pitch 76}{:time 161.5, :instrument 13, :pitch 76}{:time 163, :instrument 13, :pitch 76}{:time 164, :instrument 2, :pitch 60}{:time 165, :instrument 2, :pitch 60}{:time 166, :instrument 2, :pitch 69}{:time 175, :instrument 13, :pitch 76}{:time 173.5, :instrument 13, :pitch 76}{:time 173, :instrument 13, :pitch 76}{:time 170, :instrument 2, :pitch 69}{:time 168, :instrument 2, :pitch 60}{:time 169, :instrument 13, :pitch 76}{:time 169.5, :instrument 13, :pitch 76}{:time 171, :instrument 13, :pitch 76}{:time 172, :instrument 2, :pitch 60}{:time 173, :instrument 2, :pitch 60}{:time 174, :instrument 2, :pitch 69}{:time 183, :instrument 13, :pitch 76}{:time 181.5, :instrument 13, :pitch 76}{:time 181, :instrument 13, :pitch 76}{:time 178, :instrument 2, :pitch 69}{:time 176, :instrument 2, :pitch 60}{:time 177, :instrument 13, :pitch 76}{:time 177.5, :instrument 13, :pitch 76}{:time 179, :instrument 13, :pitch 76}{:time 180, :instrument 2, :pitch 60}{:time 181, :instrument 2, :pitch 60}{:time 182, :instrument 2, :pitch 69}{:time 191, :instrument 13, :pitch 76}{:time 189.5, :instrument 13, :pitch 76}{:time 189, :instrument 13, :pitch 76}{:time 186, :instrument 2, :pitch 69}{:time 184, :instrument 2, :pitch 60}{:time 185, :instrument 13, :pitch 76}{:time 185.5, :instrument 13, :pitch 76}{:time 187, :instrument 13, :pitch 76}{:time 188, :instrument 2, :pitch 60}{:time 189, :instrument 2, :pitch 60}{:time 190, :instrument 2, :pitch 69}{:time 199, :instrument 13, :pitch 76}{:time 197.5, :instrument 13, :pitch 76}{:time 197, :instrument 13, :pitch 76}{:time 194, :instrument 2, :pitch 69}{:time 192, :instrument 2, :pitch 60}{:time 193, :instrument 13, :pitch 76}{:time 193.5, :instrument 13, :pitch 76}{:time 195, :instrument 13, :pitch 76}{:time 196, :instrument 2, :pitch 60}{:time 197, :instrument 2, :pitch 60}{:time 198, :instrument 2, :pitch 69}{:time 207, :instrument 13, :pitch 76}{:time 205.5, :instrument 13, :pitch 76}{:time 205, :instrument 13, :pitch 76}{:time 202, :instrument 2, :pitch 69}{:time 200, :instrument 2, :pitch 60}{:time 201, :instrument 13, :pitch 76}{:time 201.5, :instrument 13, :pitch 76}{:time 203, :instrument 13, :pitch 76}{:time 204, :instrument 2, :pitch 60}{:time 205, :instrument 2, :pitch 60}{:time 206, :instrument 2, :pitch 69}{:time 215, :instrument 13, :pitch 76}{:time 213.5, :instrument 13, :pitch 76}{:time 213, :instrument 13, :pitch 76}{:time 210, :instrument 2, :pitch 69}{:time 208, :instrument 2, :pitch 60}{:time 209, :instrument 13, :pitch 76}{:time 209.5, :instrument 13, :pitch 76}{:time 211, :instrument 13, :pitch 76}{:time 212, :instrument 2, :pitch 60}{:time 213, :instrument 2, :pitch 60}{:time 214, :instrument 2, :pitch 69}{:time 223, :instrument 13, :pitch 76}{:time 221.5, :instrument 13, :pitch 76}{:time 221, :instrument 13, :pitch 76}{:time 218, :instrument 2, :pitch 69}{:time 216, :instrument 2, :pitch 60}{:time 217, :instrument 13, :pitch 76}{:time 217.5, :instrument 13, :pitch 76}{:time 219, :instrument 13, :pitch 76}{:time 220, :instrument 2, :pitch 60}{:time 221, :instrument 2, :pitch 60}{:time 222, :instrument 2, :pitch 69}{:time 231, :instrument 13, :pitch 76}{:time 229.5, :instrument 13, :pitch 76}{:time 229, :instrument 13, :pitch 76}{:time 226, :instrument 2, :pitch 69}{:time 224, :instrument 2, :pitch 60}{:time 225, :instrument 13, :pitch 76}{:time 225.5, :instrument 13, :pitch 76}{:time 227, :instrument 13, :pitch 76}{:time 228, :instrument 2, :pitch 60}{:time 229, :instrument 2, :pitch 60}{:time 230, :instrument 2, :pitch 69}{:time 239, :instrument 13, :pitch 76}{:time 237.5, :instrument 13, :pitch 76}{:time 237, :instrument 13, :pitch 76}{:time 234, :instrument 2, :pitch 69}{:time 232, :instrument 2, :pitch 60}{:time 233, :instrument 13, :pitch 76}{:time 233.5, :instrument 13, :pitch 76}{:time 235, :instrument 13, :pitch 76}{:time 236, :instrument 2, :pitch 60}{:time 237, :instrument 2, :pitch 60}{:time 238, :instrument 2, :pitch 69}{:time 247, :instrument 13, :pitch 76}{:time 245.5, :instrument 13, :pitch 76}{:time 245, :instrument 13, :pitch 76}{:time 242, :instrument 2, :pitch 69}{:time 240, :instrument 2, :pitch 60}{:time 241, :instrument 13, :pitch 76}{:time 241.5, :instrument 13, :pitch 76}{:time 243, :instrument 13, :pitch 76}{:time 244, :instrument 2, :pitch 60}{:time 245, :instrument 2, :pitch 60}{:time 246, :instrument 2, :pitch 69}{:time 248, :instrument 2, :pitch 60}{:time 249, :instrument 13, :pitch 76}{:time 188, :instrument 14, :pitch 83}{:time 187, :instrument 14, :pitch 78}{:time 186, :instrument 14, :pitch 75}{:time 185, :instrument 14, :pitch 75}{:time 183, :instrument 14, :pitch 75}{:time 182, :instrument 14, :pitch 74}{:time 181, :instrument 14, :pitch 71}{:time 180, :instrument 14, :pitch 74}{:time 176, :instrument 14, :pitch 74}{:time 173, :instrument 14, :pitch 76}{:time 171, :instrument 14, :pitch 74}{:time 169, :instrument 14, :pitch 76}{:time 167, :instrument 14, :pitch 79}{:time 166, :instrument 14, :pitch 74}{:time 164, :instrument 14, :pitch 76}{:time 160, :instrument 14, :pitch 76}{:time 159, :instrument 14, :pitch 74}{:time 158, :instrument 14, :pitch 71}{:time 157, :instrument 14, :pitch 67}{:time 155, :instrument 14, :pitch 67}{:time 154, :instrument 14, :pitch 71}{:time 153, :instrument 14, :pitch 72}{:time 152, :instrument 14, :pitch 71}{:time 149, :instrument 14, :pitch 76}{:time 148, :instrument 14, :pitch 74}{:time 144, :instrument 14, :pitch 74}{:time 141, :instrument 14, :pitch 76}{:time 139, :instrument 14, :pitch 74}{:time 127, :instrument 14, :pitch 76}{:time 126, :instrument 14, :pitch 74}{:time 124, :instrument 14, :pitch 73}{:time 123, :instrument 14, :pitch 74}{:time 122, :instrument 14, :pitch 71}{:time 121, :instrument 14, :pitch 64}{:time 119, :instrument 14, :pitch 64}{:time 116, :instrument 14, :pitch 73}{:time 115, :instrument 14, :pitch 74}{:time 114, :instrument 14, :pitch 71}{:time 113, :instrument 14, :pitch 64}{:time 115, :instrument 5, :pitch 59}{:time 114, :instrument 5, :pitch 62}{:time 113, :instrument 5, :pitch 64}{:time 112, :instrument 5, :pitch 62}{:time 109, :instrument 5, :pitch 62}{:time 107, :instrument 5, :pitch 64}{:time 105, :instrument 5, :pitch 66}{:time 103, :instrument 5, :pitch 67}{:time 101, :instrument 5, :pitch 62}{:time 100, :instrument 5, :pitch 66}{:time 99.5, :instrument 5, :pitch 66}{:time 99, :instrument 5, :pitch 66}{:time 98, :instrument 5, :pitch 66}{:time 97.5, :instrument 5, :pitch 66}{:time 97, :instrument 5, :pitch 66}{:time 93, :instrument 5, :pitch 66}{:time 91, :instrument 5, :pitch 64}{:time 89, :instrument 5, :pitch 66}{:time 87, :instrument 5, :pitch 67}{:time 85, :instrument 5, :pitch 59}{:time 84, :instrument 5, :pitch 64}{:time 83.5, :instrument 5, :pitch 64}{:time 83, :instrument 5, :pitch 64}{:time 82, :instrument 5, :pitch 64}{:time 81.5, :instrument 5, :pitch 64}{:time 81, :instrument 5, :pitch 64}{:time 79, :instrument 5, :pitch 67}{:time 78, :instrument 5, :pitch 66}{:time 77, :instrument 5, :pitch 67}{:time 75, :instrument 5, :pitch 59}{:time 74, :instrument 5, :pitch 64}{:time 73.5, :instrument 5, :pitch 64}{:time 73, :instrument 5, :pitch 64}{:time 72, :instrument 5, :pitch 64}{:time 71, :instrument 5, :pitch 59}{:time 69, :instrument 5, :pitch 59}{:time 68, :instrument 5, :pitch 64}{:time 67.5, :instrument 5, :pitch 64}{:time 67, :instrument 5, :pitch 64}{:time 63, :instrument 14, :pitch 76}{:time 62, :instrument 14, :pitch 74}{:time 60, :instrument 14, :pitch 73}{:time 59, :instrument 14, :pitch 74}{:time 58, :instrument 14, :pitch 71}{:time 57, :instrument 14, :pitch 64}{:time 55, :instrument 14, :pitch 64}{:time 52, :instrument 14, :pitch 73}{:time 51, :instrument 14, :pitch 74}{:time 50, :instrument 14, :pitch 71}{:time 49, :instrument 14, :pitch 64}{:time 137, :instrument 14, :pitch 76}{:time 135, :instrument 14, :pitch 79}{:time 134, :instrument 14, :pitch 74}{:time 132, :instrument 14, :pitch 76}{:time 127, :instrument 14, :pitch 76}{:time 126, :instrument 14, :pitch 74}{:time 132, :instrument 5, :pitch 76}{:time 127, :instrument 5, :pitch 76}{:time 126, :instrument 5, :pitch 74}{:time 132, :instrument 5, :pitch 64}{:time 127, :instrument 5, :pitch 64}{:time 126, :instrument 5, :pitch 62}{:time 66, :instrument 5, :pitch 64}{:time 65.5, :instrument 5, :pitch 64}{:time 65, :instrument 5, :pitch 64}{:time 63, :instrument 5, :pitch 64}{:time 62, :instrument 5, :pitch 62}{:time 51, :instrument 5, :pitch 59}{:time 50, :instrument 5, :pitch 62}{:time 49, :instrument 5, :pitch 64}{:time 48, :instrument 5, :pitch 62}{:time 45, :instrument 5, :pitch 62}{:time 43, :instrument 5, :pitch 64}{:time 41, :instrument 5, :pitch 66}{:time 39, :instrument 5, :pitch 67}{:time 37, :instrument 5, :pitch 62}{:time 36, :instrument 5, :pitch 66}{:time 35.5, :instrument 5, :pitch 66}{:time 35, :instrument 5, :pitch 66}{:time 34, :instrument 5, :pitch 66}{:time 33.5, :instrument 5, :pitch 66}{:time 33, :instrument 5, :pitch 66}{:time 29, :instrument 5, :pitch 66}{:time 27, :instrument 5, :pitch 64}{:time 25, :instrument 5, :pitch 66}{:time 23, :instrument 5, :pitch 67}{:time 21, :instrument 5, :pitch 59}{:time 20, :instrument 5, :pitch 64}{:time 19.5, :instrument 5, :pitch 64}{:time 19, :instrument 5, :pitch 64}{:time 18, :instrument 5, :pitch 64}{:time 17.5, :instrument 5, :pitch 64}{:time 17, :instrument 5, :pitch 64}{:time 15, :instrument 5, :pitch 64}{:time 14, :instrument 5, :pitch 62}{:time 13, :instrument 5, :pitch 64}{:time 11, :instrument 5, :pitch 59}{:time 10, :instrument 5, :pitch 64}{:time 9.5, :instrument 5, :pitch 64}{:time 9, :instrument 5, :pitch 64}{:time 8, :instrument 5, :pitch 64}{:time 7, :instrument 5, :pitch 59}{:time 5, :instrument 5, :pitch 59}{:time 4, :instrument 5, :pitch 64}{:time 3.5, :instrument 5, :pitch 64}{:time 3, :instrument 5, :pitch 64}{:time 2, :instrument 5, :pitch 64}{:time 1.5, :instrument 5, :pitch 64}{:time 1, :instrument 5, :pitch 64}{:time 0, :instrument 5, :pitch 64}{:time 188, :instrument 15, :pitch 71}{:time 187, :instrument 15, :pitch 66}{:time 186, :instrument 15, :pitch 63}{:time 185.5, :instrument 15, :pitch 63}{:time 185, :instrument 15, :pitch 63}{:time 183, :instrument 15, :pitch 63}{:time 182, :instrument 15, :pitch 62}{:time 181, :instrument 15, :pitch 59}{:time 180, :instrument 15, :pitch 62}{:time 179.5, :instrument 15, :pitch 62}{:time 179, :instrument 15, :pitch 62}{:time 178, :instrument 15, :pitch 62}{:time 177.5, :instrument 15, :pitch 62}{:time 177, :instrument 15, :pitch 62}{:time 176, :instrument 15, :pitch 62}{:time 175, :instrument 15, :pitch 65}{:time 174, :instrument 15, :pitch 69}{:time 173, :instrument 15, :pitch 65}{:time 172, :instrument 15, :pitch 72}{:time 171, :instrument 15, :pitch 65}{:time 170, :instrument 15, :pitch 69}{:time 169, :instrument 15, :pitch 65}{:time 167, :instrument 15, :pitch 69}{:time 166, :instrument 15, :pitch 69}{:time 165, :instrument 15, :pitch 72}{:time 164, :instrument 15, :pitch 65}{:time 163.5, :instrument 15, :pitch 65}{:time 163, :instrument 15, :pitch 65}{:time 161, :instrument 15, :pitch 65}{:time 162, :instrument 15, :pitch 65}{:time 161.5, :instrument 15, :pitch 65}{:time 160, :instrument 15, :pitch 65}{:time 159, :instrument 15, :pitch 64}{:time 158, :instrument 15, :pitch 67}{:time 157, :instrument 15, :pitch 71}{:time 156, :instrument 15, :pitch 74}{:time 155, :instrument 15, :pitch 67}{:time 154, :instrument 15, :pitch 71}{:time 153, :instrument 15, :pitch 64}{:time 151, :instrument 15, :pitch 74}{:time 150, :instrument 15, :pitch 67}{:time 149, :instrument 15, :pitch 71}{:time 148, :instrument 15, :pitch 64}{:time 147.5, :instrument 15, :pitch 64}{:time 147, :instrument 15, :pitch 64}{:time 146, :instrument 15, :pitch 64}{:time 144, :instrument 15, :pitch 64}{:time 143, :instrument 15, :pitch 69}{:time 142, :instrument 15, :pitch 65}{:time 141, :instrument 15, :pitch 69}{:time 140, :instrument 15, :pitch 72}{:time 139, :instrument 15, :pitch 65}{:time 138, :instrument 15, :pitch 69}{:time 137, :instrument 15, :pitch 65}{:time 134, :instrument 15, :pitch 69}{:time 133, :instrument 15, :pitch 72}{:time 132, :instrument 15, :pitch 65}{:time 131.5, :instrument 15, :pitch 65}{:time 131, :instrument 15, :pitch 65}{:time 129.5, :instrument 15, :pitch 65}{:time 129, :instrument 15, :pitch 65}{:time 130, :instrument 15, :pitch 65}{:time 128, :instrument 15, :pitch 65}{:time 126, :instrument 15, :pitch 71}{:time 124, :instrument 15, :pitch 67}{:time 123, :instrument 15, :pitch 64}{:time 122, :instrument 15, :pitch 64}{:time 121, :instrument 15, :pitch 64}{:time 118, :instrument 15, :pitch 71}{:time 116, :instrument 15, :pitch 67}{:time 115, :instrument 15, :pitch 64}{:time 112, :instrument 15, :pitch 64}{:time 110, :instrument 15, :pitch 69}{:time 108, :instrument 15, :pitch 66}{:time 107, :instrument 15, :pitch 62}{:time 106, :instrument 15, :pitch 62}{:time 105, :instrument 15, :pitch 62}{:time 102, :instrument 15, :pitch 69}{:time 100, :instrument 15, :pitch 66}{:time 99, :instrument 15, :pitch 62}{:time 96, :instrument 15, :pitch 62}{:time 94, :instrument 15, :pitch 67}{:time 92, :instrument 15, :pitch 64}{:time 91, :instrument 15, :pitch 60}{:time 90, :instrument 15, :pitch 60}{:time 89, :instrument 15, :pitch 60}{:time 86, :instrument 15, :pitch 67}{:time 84, :instrument 15, :pitch 64}{:time 83, :instrument 15, :pitch 60}{:time 80, :instrument 15, :pitch 60}{:time 78, :instrument 15, :pitch 71}{:time 76, :instrument 15, :pitch 67}{:time 75, :instrument 15, :pitch 64}{:time 74, :instrument 15, :pitch 64}{:time 73, :instrument 15, :pitch 64}{:time 70, :instrument 15, :pitch 71}{:time 68, :instrument 15, :pitch 67}{:time 67, :instrument 15, :pitch 64}{:time 64, :instrument 15, :pitch 64}{:time 65, :instrument 5, :pitch 67}{:time 65.5, :instrument 5, :pitch 67}{:time 66, :instrument 5, :pitch 67}{:time 67, :instrument 5, :pitch 67}{:time 67.5, :instrument 5, :pitch 67}{:time 68, :instrument 5, :pitch 67}{:time 69, :instrument 5, :pitch 64}{:time 71, :instrument 5, :pitch 64}{:time 72, :instrument 5, :pitch 67}{:time 73, :instrument 5, :pitch 67}{:time 73.5, :instrument 5, :pitch 67}{:time 74, :instrument 5, :pitch 67}{:time 75, :instrument 5, :pitch 64}{:time 77, :instrument 5, :pitch 71}{:time 78, :instrument 5, :pitch 69}{:time 79, :instrument 5, :pitch 71}{:time 81, :instrument 5, :pitch 67}{:time 81.5, :instrument 5, :pitch 67}{:time 82, :instrument 5, :pitch 67}{:time 83, :instrument 5, :pitch 67}{:time 83.5, :instrument 5, :pitch 67}{:time 84, :instrument 5, :pitch 67}{:time 85, :instrument 5, :pitch 64}{:time 87, :instrument 5, :pitch 71}{:time 89, :instrument 5, :pitch 69}{:time 91, :instrument 5, :pitch 67}{:time 93, :instrument 5, :pitch 69}{:time 97, :instrument 5, :pitch 69}{:time 97.5, :instrument 5, :pitch 69}{:time 98, :instrument 5, :pitch 69}{:time 99, :instrument 5, :pitch 69}{:time 99.5, :instrument 5, :pitch 69}{:time 100, :instrument 5, :pitch 69}{:time 101, :instrument 5, :pitch 66}{:time 103, :instrument 5, :pitch 71}{:time 105, :instrument 5, :pitch 69}{:time 107, :instrument 5, :pitch 67}{:time 109, :instrument 5, :pitch 66}{:time 112, :instrument 5, :pitch 66}{:time 113, :instrument 5, :pitch 67}{:time 114, :instrument 5, :pitch 66}{:time 115, :instrument 5, :pitch 64}{:time 126, :instrument 5, :pitch 66}{:time 127, :instrument 5, :pitch 67}{:time 63, :instrument 5, :pitch 67}{:time 62, :instrument 5, :pitch 66}{:time 51, :instrument 5, :pitch 64}{:time 50, :instrument 5, :pitch 66}{:time 49, :instrument 5, :pitch 67}{:time 48, :instrument 5, :pitch 66}{:time 45, :instrument 5, :pitch 66}{:time 43, :instrument 5, :pitch 67}{:time 41, :instrument 5, :pitch 69}{:time 39, :instrument 5, :pitch 71}{:time 37, :instrument 5, :pitch 66}{:time 36, :instrument 5, :pitch 69}{:time 35.5, :instrument 5, :pitch 69}{:time 35, :instrument 5, :pitch 69}{:time 34, :instrument 5, :pitch 69}{:time 33.5, :instrument 5, :pitch 69}{:time 33, :instrument 5, :pitch 69}{:time 29, :instrument 5, :pitch 69}{:time 27, :instrument 5, :pitch 67}{:time 25, :instrument 5, :pitch 69}{:time 23, :instrument 5, :pitch 71}{:time 21, :instrument 5, :pitch 64}{:time 20, :instrument 5, :pitch 67}{:time 19.5, :instrument 5, :pitch 67}{:time 19, :instrument 5, :pitch 67}{:time 18, :instrument 5, :pitch 67}{:time 17.5, :instrument 5, :pitch 67}{:time 17, :instrument 5, :pitch 67}{:time 15, :instrument 5, :pitch 71}{:time 14, :instrument 5, :pitch 69}{:time 13, :instrument 5, :pitch 71}{:time 11, :instrument 5, :pitch 64}{:time 10, :instrument 5, :pitch 67}{:time 9.5, :instrument 5, :pitch 67}{:time 9, :instrument 5, :pitch 67}{:time 8, :instrument 5, :pitch 67}{:time 7, :instrument 5, :pitch 64}{:time 5, :instrument 5, :pitch 64}{:time 4, :instrument 5, :pitch 67}{:time 3.5, :instrument 5, :pitch 67}{:time 3, :instrument 5, :pitch 67}{:time 2, :instrument 5, :pitch 67}{:time 1.5, :instrument 5, :pitch 67}{:time 1, :instrument 5, :pitch 67}{:time 0, :instrument 15, :pitch 64}{:time 3, :instrument 15, :pitch 64}{:time 4, :instrument 15, :pitch 67}{:time 6, :instrument 15, :pitch 71}{:time 9, :instrument 15, :pitch 64}{:time 10, :instrument 15, :pitch 64}{:time 11, :instrument 15, :pitch 64}{:time 12, :instrument 15, :pitch 67}{:time 14, :instrument 15, :pitch 71}{:time 16, :instrument 15, :pitch 60}{:time 19, :instrument 15, :pitch 60}{:time 20, :instrument 15, :pitch 64}{:time 22, :instrument 15, :pitch 67}{:time 25, :instrument 15, :pitch 60}{:time 26, :instrument 15, :pitch 60}{:time 27, :instrument 15, :pitch 60}{:time 28, :instrument 15, :pitch 64}{:time 30, :instrument 15, :pitch 67}{:time 32, :instrument 15, :pitch 62}{:time 35, :instrument 15, :pitch 62}{:time 36, :instrument 15, :pitch 66}{:time 38, :instrument 15, :pitch 69}{:time 41, :instrument 15, :pitch 62}{:time 42, :instrument 15, :pitch 62}{:time 43, :instrument 15, :pitch 62}{:time 44, :instrument 15, :pitch 66}{:time 46, :instrument 15, :pitch 69}{:time 48, :instrument 15, :pitch 64}{:time 51, :instrument 15, :pitch 64}{:time 52, :instrument 15, :pitch 67}{:time 54, :instrument 15, :pitch 71}{:time 57, :instrument 15, :pitch 64}{:time 58, :instrument 15, :pitch 64}{:time 59, :instrument 15, :pitch 64}{:time 60, :instrument 15, :pitch 67}{:time 62, :instrument 15, :pitch 71}{:time 49, :instrument 8, :pitch 64}{:time 50, :instrument 8, :pitch 71}{:time 51, :instrument 8, :pitch 74}{:time 52, :instrument 8, :pitch 73}{:time 55, :instrument 8, :pitch 64}{:time 57, :instrument 8, :pitch 64}{:time 58, :instrument 8, :pitch 71}{:time 59, :instrument 8, :pitch 74}{:time 60, :instrument 8, :pitch 73}{:time 113, :instrument 8, :pitch 64}{:time 114, :instrument 8, :pitch 71}{:time 115, :instrument 8, :pitch 74}{:time 116, :instrument 8, :pitch 73}{:time 119, :instrument 8, :pitch 64}{:time 121, :instrument 8, :pitch 64}{:time 122, :instrument 8, :pitch 71}{:time 123, :instrument 8, :pitch 74}{:time 124, :instrument 8, :pitch 73}{:time 126, :instrument 3, :pitch 64}{:time 192, :instrument 15, :pitch 64}{:time 195, :instrument 15, :pitch 64}{:time 196, :instrument 15, :pitch 67}{:time 198, :instrument 15, :pitch 71}{:time 201, :instrument 15, :pitch 64}{:time 202, :instrument 15, :pitch 64}{:time 203, :instrument 15, :pitch 64}{:time 204, :instrument 15, :pitch 67}{:time 206, :instrument 15, :pitch 71}{:time 208, :instrument 15, :pitch 60}{:time 211, :instrument 15, :pitch 60}{:time 212, :instrument 15, :pitch 64}{:time 214, :instrument 15, :pitch 67}{:time 217, :instrument 15, :pitch 60}{:time 218, :instrument 15, :pitch 60}{:time 219, :instrument 15, :pitch 60}{:time 220, :instrument 15, :pitch 64}{:time 222, :instrument 15, :pitch 67}{:time 224, :instrument 15, :pitch 62}{:time 227, :instrument 15, :pitch 62}{:time 228, :instrument 15, :pitch 66}{:time 230, :instrument 15, :pitch 69}{:time 233, :instrument 15, :pitch 62}{:time 234, :instrument 15, :pitch 62}{:time 235, :instrument 15, :pitch 62}{:time 236, :instrument 15, :pitch 66}{:time 238, :instrument 15, :pitch 69}{:time 240, :instrument 15, :pitch 64}{:time 243, :instrument 15, :pitch 64}{:time 244, :instrument 15, :pitch 67}{:time 246, :instrument 15, :pitch 71}{:time 191, :instrument 12, :pitch 64}{:time 191.5, :instrument 12, :pitch 67}{:time 192, :instrument 12, :pitch 71}{:time 195, :instrument 12, :pitch 64}{:time 195.5, :instrument 12, :pitch 67}{:time 196, :instrument 12, :pitch 71}{:time 198, :instrument 12, :pitch 69}{:time 199, :instrument 12, :pitch 74}{:time 201, :instrument 12, :pitch 72}{:time 203, :instrument 12, :pitch 71}{:time 205, :instrument 12, :pitch 72}{:time 207, :instrument 12, :pitch 71}{:time 207, :instrument 12, :pitch 64}{:time 207.5, :instrument 12, :pitch 67}{:time 208, :instrument 12, :pitch 71}{:time 211, :instrument 12, :pitch 64}{:time 211.5, :instrument 12, :pitch 67}{:time 212, :instrument 12, :pitch 71}{:time 214, :instrument 12, :pitch 69}{:time 215, :instrument 12, :pitch 74}{:time 217, :instrument 12, :pitch 72}{:time 219, :instrument 12, :pitch 71}{:time 221, :instrument 12, :pitch 72}{:time 223, :instrument 12, :pitch 67}{:time 223, :instrument 12, :pitch 59}{:time 223.5, :instrument 12, :pitch 62}{:time 224, :instrument 12, :pitch 67}{:time 227, :instrument 12, :pitch 59}{:time 227.5, :instrument 12, :pitch 62}{:time 228, :instrument 12, :pitch 67}{:time 229, :instrument 12, :pitch 69}{:time 230, :instrument 12, :pitch 71}{:time 231, :instrument 12, :pitch 66}{:time 231, :instrument 12, :pitch 59}{:time 231.5, :instrument 12, :pitch 62}{:time 232, :instrument 12, :pitch 66}{:time 236, :instrument 12, :pitch 66}{:time 235, :instrument 12, :pitch 59}{:time 235.5, :instrument 12, :pitch 62}{:time 237, :instrument 12, :pitch 69}{:time 238, :instrument 12, :pitch 71}{:time 239, :instrument 12, :pitch 64}]) (def bass-verse (concat (bass-triad 0 64 "minor") (bass-triad 16 60 "major") (bass-triad 32 62 "major") (bass-triad 48 64 "minor"))) (def drum-beat [{:time 7, :instrument 13, :pitch 76} {:time 5.5, :instrument 13, :pitch 76} {:time 5, :instrument 13, :pitch 76} {:time 2, :instrument 2, :pitch 69} {:time 0, :instrument 2, :pitch 60} {:time 1, :instrument 13, :pitch 76} {:time 1.5, :instrument 13, :pitch 76} {:time 3, :instrument 13, :pitch 76} {:time 4, :instrument 2, :pitch 60} {:time 5, :instrument 2, :pitch 60} {:time 6, :instrument 2, :pitch 69}]) (def megaman mm1 ) ================================================ FILE: src/mecca/songs/stmp.cljs ================================================ (ns mecca.songs.stmp) (defn cello1 [time] [{:time (+ time 0) :instrument 2, :pitch 55} {:time (+ time 0.5) :instrument 2, :pitch 55} {:time (+ time 1) :instrument 2, :pitch 55} {:time (+ time 2) :instrument 2, :pitch 55} {:time (+ time 4) :instrument 2, :pitch 60} {:time (+ time 5) :instrument 2, :pitch 64} {:time (+ time 6) :instrument 2, :pitch 62} {:time (+ time 8) :instrument 2, :pitch 58} {:time (+ time 10) :instrument 2, :pitch 69} {:time (+ time 12) :instrument 2, :pitch 67} {:time (+ time 12.5) :instrument 2, :pitch 67} {:time (+ time 13) :instrument 2, :pitch 67} {:time (+ time 14) :instrument 2, :pitch 67} {:time (+ time 16) :instrument 2, :pitch 67} {:time (+ time 16.5) :instrument 2, :pitch 67} {:time (+ time 17) :instrument 2, :pitch 67} {:time (+ time 20) :instrument 2, :pitch 65} {:time (+ time 21) :instrument 2, :pitch 67} {:time (+ time 22) :instrument 2, :pitch 69} {:time (+ time 23) :instrument 2, :pitch 65} {:time (+ time 24) :instrument 2, :pitch 67} {:time (+ time 24.5) :instrument 2, :pitch 67} {:time (+ time 25) :instrument 2, :pitch 67} {:time (+ time 25.5) :instrument 2, :pitch 67} {:time (+ time 27) :instrument 2, :pitch 65} {:time (+ time 27.5) :instrument 2, :pitch 65} {:time (+ time 28) :instrument 2, :pitch 65} {:time (+ time 28.5) :instrument 2, :pitch 65} {:time (+ time 30) :instrument 2, :pitch 64} {:time (+ time 30.5) :instrument 2, :pitch 64} {:time (+ time 31) :instrument 2, :pitch 64} {:time (+ time 31.5) :instrument 2, :pitch 64} {:time (+ time 33) :instrument 2, :pitch 64} {:time (+ time 34) :instrument 2, :pitch 60} {:time (+ time 35) :instrument 2, :pitch 64} {:time (+ time 36) :instrument 2, :pitch 62} {:time (+ time 37) :instrument 2, :pitch 62} {:time (+ time 38) :instrument 2, :pitch 62}]) (def boat1 [{:time 187.5, :instrument 13, :pitch 62} {:time 187, :instrument 13, :pitch 67} {:time 186.5, :instrument 13, :pitch 65} {:time 186, :instrument 13, :pitch 69} {:time 185.5, :instrument 13, :pitch 67} {:time 185, :instrument 13, :pitch 65} {:time 184.5, :instrument 13, :pitch 62} {:time 184, :instrument 13, :pitch 60} {:time 183.5, :instrument 13, :pitch 65} {:time 183, :instrument 13, :pitch 69} {:time 182.5, :instrument 13, :pitch 70} {:time 182, :instrument 13, :pitch 72} {:time 181.5, :instrument 13, :pitch 67} {:time 181, :instrument 13, :pitch 65} {:time 180.5, :instrument 13, :pitch 67} {:time 180, :instrument 13, :pitch 69} {:time 179.5, :instrument 13, :pitch 70} {:time 179, :instrument 13, :pitch 72} {:time 178.5, :instrument 13, :pitch 74} {:time 178, :instrument 13, :pitch 75} {:time 177.5, :instrument 13, :pitch 74} {:time 177, :instrument 13, :pitch 72} {:time 176.5, :instrument 13, :pitch 70} {:time 176, :instrument 13, :pitch 68} {:time 175.5, :instrument 13, :pitch 63} {:time 175, :instrument 13, :pitch 68} {:time 174.5, :instrument 13, :pitch 67} {:time 174, :instrument 13, :pitch 71} {:time 173.5, :instrument 13, :pitch 69} {:time 173, :instrument 13, :pitch 67} {:time 172.5, :instrument 13, :pitch 62} {:time 172, :instrument 13, :pitch 67} {:time 171.5, :instrument 13, :pitch 69} {:time 171, :instrument 13, :pitch 65} {:time 170.5, :instrument 13, :pitch 64} {:time 170, :instrument 13, :pitch 62} {:time 169.5, :instrument 13, :pitch 60} {:time 169, :instrument 13, :pitch 65} {:time 168.5, :instrument 13, :pitch 67} {:time 168, :instrument 13, :pitch 71} {:time 167.5, :instrument 13, :pitch 69} {:time 167, :instrument 13, :pitch 67} {:time 166.5, :instrument 13, :pitch 69} {:time 166, :instrument 13, :pitch 71} {:time 165.5, :instrument 13, :pitch 73} {:time 165, :instrument 13, :pitch 74} {:time 164.5, :instrument 13, :pitch 76} {:time 164, :instrument 13, :pitch 74} {:time 163.5, :instrument 13, :pitch 73} {:time 163, :instrument 13, :pitch 74} {:time 162.5, :instrument 13, :pitch 76} {:time 162, :instrument 13, :pitch 74} {:time 161.5, :instrument 13, :pitch 76} {:time 161, :instrument 13, :pitch 77} {:time 160.5, :instrument 13, :pitch 76} {:time 160, :instrument 13, :pitch 74} {:time 159.5, :instrument 13, :pitch 71} {:time 159, :instrument 13, :pitch 72} {:time 158.5, :instrument 13, :pitch 74} {:time 158, :instrument 13, :pitch 72} {:time 157.5, :instrument 13, :pitch 71} {:time 157, :instrument 13, :pitch 69} {:time 156.5, :instrument 13, :pitch 67} {:time 156, :instrument 13, :pitch 65} {:time 155.5, :instrument 13, :pitch 64} {:time 155, :instrument 13, :pitch 65} {:time 154.5, :instrument 13, :pitch 64} {:time 154, :instrument 13, :pitch 62} {:time 153.5, :instrument 13, :pitch 67} {:time 153, :instrument 13, :pitch 71} {:time 152.5, :instrument 13, :pitch 69} {:time 152, :instrument 13, :pitch 71} {:time 151.5, :instrument 13, :pitch 69} {:time 151, :instrument 13, :pitch 67} {:time 150.5, :instrument 13, :pitch 69} {:time 150, :instrument 13, :pitch 65} {:time 149.5, :instrument 13, :pitch 68} {:time 149, :instrument 13, :pitch 69} {:time 148.5, :instrument 13, :pitch 68} {:time 148, :instrument 13, :pitch 69} {:time 147.5, :instrument 13, :pitch 72} {:time 147, :instrument 13, :pitch 71} {:time 146.5, :instrument 13, :pitch 72} {:time 146, :instrument 13, :pitch 71} {:time 145.5, :instrument 13, :pitch 72} {:time 145, :instrument 13, :pitch 74} {:time 144.5, :instrument 13, :pitch 71} {:time 144, :instrument 13, :pitch 69} {:time 143.5, :instrument 13, :pitch 68} {:time 143, :instrument 13, :pitch 66} {:time 142.5, :instrument 13, :pitch 68} {:time 142, :instrument 13, :pitch 66} {:time 141.5, :instrument 13, :pitch 64} {:time 141, :instrument 13, :pitch 62} {:time 140.5, :instrument 13, :pitch 64} {:time 140, :instrument 13, :pitch 66} {:time 139.5, :instrument 13, :pitch 64} {:time 139, :instrument 13, :pitch 62} {:time 138.5, :instrument 13, :pitch 64} {:time 138, :instrument 13, :pitch 62} {:time 137, :instrument 13, :pitch 64} {:time 136, :instrument 13, :pitch 69} {:time 135, :instrument 13, :pitch 66} {:time 134, :instrument 13, :pitch 64} {:time 133, :instrument 13, :pitch 66} {:time 132, :instrument 13, :pitch 68} {:time 131, :instrument 13, :pitch 64} {:time 130, :instrument 13, :pitch 73} {:time 129, :instrument 13, :pitch 69} {:time 128, :instrument 13, :pitch 71} {:time 127, :instrument 13, :pitch 73} {:time 126, :instrument 13, :pitch 71} {:time 125, :instrument 13, :pitch 68} {:time 124, :instrument 13, :pitch 66} {:time 123, :instrument 13, :pitch 64} {:time 122, :instrument 13, :pitch 71} {:time 121, :instrument 13, :pitch 73} {:time 120, :instrument 13, :pitch 71} {:time 119, :instrument 13, :pitch 68} {:time 118, :instrument 13, :pitch 66} {:time 117, :instrument 13, :pitch 64} {:time 116, :instrument 13, :pitch 66} {:time 115, :instrument 13, :pitch 61} {:time 114, :instrument 13, :pitch 64} {:time 113, :instrument 13, :pitch 68} {:time 112, :instrument 13, :pitch 66} {:time 111, :instrument 13, :pitch 64} {:time 110, :instrument 13, :pitch 66} {:time 109, :instrument 13, :pitch 68} {:time 108, :instrument 13, :pitch 71} {:time 107, :instrument 13, :pitch 68} {:time 106, :instrument 13, :pitch 66} {:time 105, :instrument 13, :pitch 64} {:time 104, :instrument 13, :pitch 66} {:time 103, :instrument 13, :pitch 61} {:time 102, :instrument 13, :pitch 64} {:time 101, :instrument 13, :pitch 66} {:time 100, :instrument 13, :pitch 68} {:time 99, :instrument 13, :pitch 71} {:time 98, :instrument 13, :pitch 68} {:time 97, :instrument 13, :pitch 66} {:time 96, :instrument 13, :pitch 64}]) (def heart1 [{:time 188, :instrument 15, :pitch 67} {:time 185, :instrument 15, :pitch 65} {:time 182, :instrument 15, :pitch 63} {:time 179, :instrument 15, :pitch 60} {:time 176, :instrument 15, :pitch 62} {:time 173, :instrument 15, :pitch 65} {:time 170, :instrument 15, :pitch 65} {:time 161, :instrument 15, :pitch 65} {:time 158, :instrument 15, :pitch 65} {:time 152, :instrument 15, :pitch 65} {:time 146, :instrument 15, :pitch 65} {:time 143, :instrument 15, :pitch 64} {:time 135, :instrument 15, :pitch 64} {:time 132, :instrument 15, :pitch 64} {:time 129, :instrument 15, :pitch 61} {:time 126, :instrument 15, :pitch 59} {:time 123, :instrument 15, :pitch 61} {:time 120, :instrument 15, :pitch 64} {:time 114, :instrument 15, :pitch 61} {:time 108, :instrument 15, :pitch 64} {:time 102, :instrument 15, :pitch 61} {:time 96, :instrument 15, :pitch 64}]) (def mario [{:time 0, :instrument 1, :pitch 79} {:time 0, :instrument 1, :pitch 67} {:time 3, :instrument 1, :pitch 76} {:time 3, :instrument 1, :pitch 72} {:time 12, :instrument 1, :pitch 84} {:time 12, :instrument 1, :pitch 67} {:time 12, :instrument 1, :pitch 76} {:time 6, :instrument 1, :pitch 79} {:time 6, :instrument 1, :pitch 67} {:time 9, :instrument 1, :pitch 77} {:time 9, :instrument 1, :pitch 74} {:time 15, :instrument 1, :pitch 79} {:time 15, :instrument 1, :pitch 76} {:time 15, :instrument 1, :pitch 72} {:time 18, :instrument 1, :pitch 70} {:time 18, :instrument 1, :pitch 82} {:time 21, :instrument 1, :pitch 77} {:time 21, :instrument 1, :pitch 74} {:time 24, :instrument 1, :pitch 67} {:time 24, :instrument 1, :pitch 84} {:time 24, :instrument 1, :pitch 76} {:time 27, :instrument 1, :pitch 69} {:time 30, :instrument 1, :pitch 72} {:time 33, :instrument 1, :pitch 72} {:time 36, :instrument 1, :pitch 71} {:time 33, :instrument 1, :pitch 77} {:time 30, :instrument 1, :pitch 79} {:time 33, :instrument 1, :pitch 79} {:time 36, :instrument 1, :pitch 83} {:time 39, :instrument 1, :pitch 69} {:time 42, :instrument 1, :pitch 71} {:time 45, :instrument 1, :pitch 72} {:time 39, :instrument 1, :pitch 83} {:time 42, :instrument 1, :pitch 83} {:time 45, :instrument 1, :pitch 81} {:time 48, :instrument 1, :pitch 79} {:time 48, :instrument 1, :pitch 67} {:time 51, :instrument 1, :pitch 76} {:time 51, :instrument 1, :pitch 72} {:time 60, :instrument 1, :pitch 84} {:time 60, :instrument 1, :pitch 67} {:time 60, :instrument 1, :pitch 76} {:time 54, :instrument 1, :pitch 79} {:time 54, :instrument 1, :pitch 67} {:time 57, :instrument 1, :pitch 77} {:time 57, :instrument 1, :pitch 74} {:time 63, :instrument 1, :pitch 79} {:time 63, :instrument 1, :pitch 76} {:time 63, :instrument 1, :pitch 72} {:time 66, :instrument 1, :pitch 70} {:time 66, :instrument 1, :pitch 82} {:time 69, :instrument 1, :pitch 77} {:time 69, :instrument 1, :pitch 74} {:time 72, :instrument 1, :pitch 67} {:time 72, :instrument 1, :pitch 84} {:time 72, :instrument 1, :pitch 76} {:time 75, :instrument 1, :pitch 69} {:time 78, :instrument 1, :pitch 72} {:time 81, :instrument 1, :pitch 72} {:time 84, :instrument 1, :pitch 71} {:time 81, :instrument 1, :pitch 77} {:time 78, :instrument 1, :pitch 79} {:time 81, :instrument 1, :pitch 79} {:time 84, :instrument 1, :pitch 83} {:time 87, :instrument 1, :pitch 69} {:time 90, :instrument 1, :pitch 71} {:time 93, :instrument 1, :pitch 72} {:time 87, :instrument 1, :pitch 83} {:time 90, :instrument 1, :pitch 83} {:time 93, :instrument 1, :pitch 81}]) (defn strum [notes] (let [chord (reverse (sort-by :pitch notes))] (for [note (range (count chord))] (update (nth chord note) :time #(- % (* 0.125 note)))))) (defn chord [time notes] (map (fn [n] {:time time :instrument 12, :pitch n}) notes)) (defn harp1 [time] (concat (strum (chord (+ time 0) [68 71 76 80 83])) (strum (chord (+ time 6) [64 68 73 76 80])) (strum (chord (+ time 12) [68 71 76 80 83])) (strum (chord (+ time 18) [64 68 73 76 80])) (strum (chord (+ time 24) [68 71 76 80 83])) (strum (chord (+ time 27) [64 68 73 76 80 85])) (strum (chord (+ time 30) [62 66 71 74 78 83 86])) (strum (chord (+ time 33) [64 69 73 76 81 85])) (strum (chord (+ time 36) [68 71 76 80 83])) (strum (chord (+ time 39) [66 69 74 78 81])) (strum (chord (+ time 47) [66 69 74 78 81])))) (defn harp2 [time] (concat (strum (chord (+ time 0) [65 69 72 77 81])) (strum (chord (+ time 6) [67 71 74 79 83])) (strum (chord (+ time 12) [65 69 72 77 81])) (strum (chord (+ time 15) [67 71 74 79 83])) (strum (chord (+ time 24) [67 71 74 79 83])) (strum (chord (+ time 27) [65 69 72 77 81])) (strum (chord (+ time 30) [67 71 74 79 83])) (strum (chord (+ time 33) [63 72 75 80 84])) (strum (chord (+ time 36) [63 70 75 79 82])) (strum (chord (+ time 39) [65 70 72 77 82])) (strum (chord (+ time 42) [65 69 72 77 81])))) (def violin [{:time 188, :instrument 3, :pitch 67} {:time 187, :instrument 3, :pitch 65} {:time 186, :instrument 3, :pitch 69} {:time 185, :instrument 3, :pitch 70} {:time 183, :instrument 3, :pitch 70} {:time 182, :instrument 3, :pitch 70} {:time 180, :instrument 3, :pitch 72} {:time 179, :instrument 3, :pitch 72} {:time 177, :instrument 3, :pitch 71} {:time 176, :instrument 3, :pitch 71} {:time 174, :instrument 3, :pitch 69} {:time 173, :instrument 3, :pitch 69} {:time 163, :instrument 3, :pitch 67} {:time 162, :instrument 3, :pitch 67} {:time 161, :instrument 3, :pitch 67} {:time 160, :instrument 3, :pitch 65} {:time 159, :instrument 3, :pitch 69} {:time 158, :instrument 3, :pitch 69} {:time 157, :instrument 3, :pitch 71} {:time 156, :instrument 3, :pitch 74} {:time 155, :instrument 3, :pitch 67} {:time 154, :instrument 3, :pitch 67} {:time 153, :instrument 3, :pitch 67} {:time 152, :instrument 3, :pitch 67} {:time 151, :instrument 3, :pitch 65} {:time 149, :instrument 3, :pitch 69} {:time 148, :instrument 3, :pitch 69} {:time 147, :instrument 3, :pitch 69} {:time 146, :instrument 3, :pitch 69} {:time 138, :instrument 3, :pitch 69} {:time 137, :instrument 3, :pitch 69} {:time 136, :instrument 3, :pitch 69} {:time 135, :instrument 3, :pitch 69} {:time 134, :instrument 3, :pitch 71} {:time 133, :instrument 3, :pitch 64} {:time 132, :instrument 3, :pitch 71} {:time 130, :instrument 3, :pitch 73} {:time 129, :instrument 3, :pitch 73} {:time 127, :instrument 3, :pitch 74} {:time 126, :instrument 3, :pitch 74} {:time 124, :instrument 3, :pitch 73} {:time 123, :instrument 3, :pitch 73} {:time 121, :instrument 3, :pitch 71} {:time 120, :instrument 3, :pitch 71} {:time 116, :instrument 3, :pitch 68} {:time 115, :instrument 3, :pitch 68} {:time 114, :instrument 3, :pitch 68} {:time 113, :instrument 3, :pitch 59} {:time 110, :instrument 3, :pitch 71} {:time 109, :instrument 3, :pitch 71} {:time 108, :instrument 3, :pitch 71} {:time 107, :instrument 3, :pitch 73} {:time 106, :instrument 3, :pitch 64} {:time 104, :instrument 3, :pitch 68} {:time 103, :instrument 3, :pitch 68} {:time 102, :instrument 3, :pitch 68} {:time 101, :instrument 3, :pitch 59} {:time 98, :instrument 3, :pitch 71} {:time 97, :instrument 3, :pitch 71} {:time 96, :instrument 3, :pitch 71} {:time 95, :instrument 3, :pitch 69} {:time 94, :instrument 3, :pitch 62}]) (def stmp (concat mario (cello1 0) (cello1 48) (map #(assoc % :instrument 3) (cello1 48)) (harp1 96) (harp2 (+ 96 50)) boat1 violin heart1)) ================================================ FILE: src/mecca/songs/zelda.cljs ================================================ (ns mecca.songs.zelda) (defn delay-note [beats note] (update note :time #(+ beats %))) (defn bass-triad [time pitch] [{:time time :instrument 15, :pitch pitch} {:time (+ time 4) :instrument 15, :pitch (+ pitch 7)} {:time (+ time 8) :instrument 15, :pitch (+ pitch 12)}]) (defn bass-ostinato [time pitch] [{:time (+ time 0,) :instrument 15, :pitch pitch} {:time (+ time 4,) :instrument 15, :pitch pitch} {:time (+ time 2,) :instrument 15, :pitch pitch} {:time (+ time 3,) :instrument 15, :pitch pitch} {:time (+ time 6,) :instrument 15, :pitch pitch} {:time (+ time 7,) :instrument 15, :pitch pitch} {:time (+ time 8,) :instrument 15, :pitch pitch} {:time (+ time 10) :instrument 15, :pitch pitch} {:time (+ time 11) :instrument 15, :pitch pitch} {:time (+ time 12) :instrument 15, :pitch pitch} {:time (+ time 14) :instrument 15, :pitch pitch} {:time (+ time 15) :instrument 15, :pitch pitch}]) (def bass1 (concat (bass-triad 0 60) (bass-triad 16 58) (bass-triad 32 56) (bass-triad 48 55))) (def bass2 (concat (bass-ostinato 64 60) (bass-ostinato 80 60) (bass-ostinato 96 60) (bass-ostinato 112 58) (bass-ostinato 128 56) (bass-ostinato 144 55) (bass-ostinato 160 60) (bass-ostinato 176 58) (bass-ostinato 192 56) (bass-ostinato 208 63) (bass-ostinato 224 61) (bass-ostinato 240 60) (bass-ostinato 256 62) (bass-ostinato 272 55) (bass-ostinato 288 60) (bass-ostinato 304 58) (bass-ostinato 320 56) (bass-ostinato 336 55) (bass-ostinato 352 54) (bass-ostinato 368 55) (bass-ostinato 384 54) (bass-ostinato 400 55) (bass-ostinato 416 61) (bass-ostinato 432 60) (bass-ostinato 448 62) (bass-ostinato 464 55))) (def lead1 [{:time 66, :instrument 12, :pitch 60} {:time 64, :instrument 12, :pitch 63} {:time 63.5, :instrument 12, :pitch 60} {:time 63, :instrument 12, :pitch 55} {:time 50, :instrument 12, :pitch 71} {:time 49, :instrument 12, :pitch 69} {:time 48, :instrument 12, :pitch 71} {:time 46, :instrument 12, :pitch 72} {:time 44, :instrument 12, :pitch 68} {:time 42, :instrument 12, :pitch 68} {:time 32, :instrument 12, :pitch 72} {:time 31.5, :instrument 12, :pitch 68} {:time 31, :instrument 12, :pitch 63} {:time 18, :instrument 12, :pitch 70} {:time 17, :instrument 12, :pitch 68} {:time 12, :instrument 12, :pitch 67} {:time 16, :instrument 12, :pitch 70} {:time 14, :instrument 12, :pitch 72} {:time 10, :instrument 12, :pitch 67} {:time 0, :instrument 12, :pitch 72}]) (defn boat [time pitch] [{:time time :instrument 13 :pitch pitch} {:time (+ time 7) :instrument 13, :pitch pitch} {:time (+ time 6) :instrument 13, :pitch pitch} {:time (+ time 4) :instrument 13, :pitch pitch} {:time (+ time 3) :instrument 13, :pitch pitch} {:time (+ time 2) :instrument 13, :pitch pitch}]) (defn shroom [time pitch] [{:time time :instrument 2 :pitch pitch} {:time (+ time 7) :instrument 2 :pitch pitch} {:time (+ time 6) :instrument 2 :pitch pitch} {:time (+ time 4) :instrument 2 :pitch pitch} {:time (+ time 3) :instrument 2 :pitch pitch} {:time (+ time 2) :instrument 2 :pitch pitch}]) (def drums (flatten (into [] (concat (for [beat (range 64 480 8)] (boat beat 66)) (for [beat (range 160 480 8)] (shroom beat 60)))))) (def car1 [{:time 480, :instrument 14, :pitch 60} {:time 479, :instrument 14, :pitch 55} {:time 478, :instrument 14, :pitch 55} {:time 476, :instrument 14, :pitch 55} {:time 475, :instrument 14, :pitch 55} {:time 474, :instrument 14, :pitch 55} {:time 472, :instrument 14, :pitch 55} {:time 471, :instrument 14, :pitch 55} {:time 470, :instrument 14, :pitch 55} {:time 468, :instrument 14, :pitch 55} {:time 467, :instrument 14, :pitch 55} {:time 466, :instrument 14, :pitch 55} {:time 464, :instrument 14, :pitch 67} {:time 463, :instrument 14, :pitch 69} {:time 462, :instrument 14, :pitch 69} {:time 460, :instrument 14, :pitch 69} {:time 459, :instrument 14, :pitch 66} {:time 458, :instrument 14, :pitch 66} {:time 456, :instrument 14, :pitch 66} {:time 455, :instrument 14, :pitch 66} {:time 454, :instrument 14, :pitch 66} {:time 452, :instrument 14, :pitch 66} {:time 451, :instrument 14, :pitch 64} {:time 450, :instrument 14, :pitch 62} {:time 448, :instrument 14, :pitch 62} {:time 448, :instrument 14, :pitch 62} {:time 447, :instrument 14, :pitch 60} {:time 446, :instrument 14, :pitch 60} {:time 444, :instrument 14, :pitch 60} {:time 442, :instrument 14, :pitch 60} {:time 443, :instrument 14, :pitch 60} {:time 442, :instrument 14, :pitch 60} {:time 440, :instrument 14, :pitch 63} {:time 439, :instrument 14, :pitch 63} {:time 438, :instrument 14, :pitch 63} {:time 436, :instrument 14, :pitch 63} {:time 435, :instrument 14, :pitch 67} {:time 434, :instrument 14, :pitch 67} {:time 432, :instrument 14, :pitch 67} {:time 431, :instrument 14, :pitch 68} {:time 430, :instrument 14, :pitch 68} {:time 428, :instrument 14, :pitch 68} {:time 427, :instrument 14, :pitch 65} {:time 426, :instrument 14, :pitch 65} {:time 424, :instrument 14, :pitch 65} {:time 423, :instrument 14, :pitch 65} {:time 422, :instrument 14, :pitch 65} {:time 420, :instrument 14, :pitch 65} {:time 419, :instrument 14, :pitch 65} {:time 418, :instrument 14, :pitch 65} {:time 416, :instrument 14, :pitch 65} {:time 415, :instrument 14, :pitch 55} {:time 414, :instrument 14, :pitch 55} {:time 412, :instrument 14, :pitch 55} {:time 411, :instrument 14, :pitch 55} {:time 410, :instrument 14, :pitch 55} {:time 408, :instrument 14, :pitch 55} {:time 407, :instrument 14, :pitch 55} {:time 406, :instrument 14, :pitch 55} {:time 404, :instrument 14, :pitch 55} {:time 403, :instrument 14, :pitch 71} {:time 402, :instrument 14, :pitch 71} {:time 400, :instrument 14, :pitch 71} {:time 399, :instrument 14, :pitch 72} {:time 398, :instrument 14, :pitch 72} {:time 396, :instrument 14, :pitch 72} {:time 395, :instrument 14, :pitch 68} {:time 394, :instrument 14, :pitch 68} {:time 392, :instrument 14, :pitch 68} {:time 391, :instrument 14, :pitch 68} {:time 390, :instrument 14, :pitch 68} {:time 388, :instrument 14, :pitch 68} {:time 387, :instrument 14, :pitch 68} {:time 386, :instrument 14, :pitch 68} {:time 384, :instrument 14, :pitch 68} {:time 382, :instrument 14, :pitch 67} {:time 383, :instrument 14, :pitch 55} {:time 382, :instrument 14, :pitch 55} {:time 380, :instrument 14, :pitch 55} {:time 379, :instrument 14, :pitch 55} {:time 378, :instrument 14, :pitch 55} {:time 376, :instrument 14, :pitch 55} {:time 375, :instrument 14, :pitch 55} {:time 374, :instrument 14, :pitch 55} {:time 372, :instrument 14, :pitch 55} {:time 371, :instrument 14, :pitch 71} {:time 370, :instrument 14, :pitch 71} {:time 368, :instrument 14, :pitch 71} {:time 367, :instrument 14, :pitch 72} {:time 366, :instrument 14, :pitch 72} {:time 364, :instrument 14, :pitch 72} {:time 363, :instrument 14, :pitch 68} {:time 362, :instrument 14, :pitch 68} {:time 360, :instrument 14, :pitch 68} {:time 359, :instrument 14, :pitch 68} {:time 358, :instrument 14, :pitch 68} {:time 356, :instrument 14, :pitch 68} {:time 355, :instrument 14, :pitch 68} {:time 354, :instrument 14, :pitch 68} {:time 352, :instrument 14, :pitch 68} {:time 351, :instrument 14, :pitch 67} {:time 351, :instrument 14, :pitch 71} {:time 350, :instrument 14, :pitch 71} {:time 350, :instrument 14, :pitch 67} {:time 319, :instrument 14, :pitch 70} {:time 317.5, :instrument 14, :pitch 68} {:time 316, :instrument 14, :pitch 67} {:time 315, :instrument 14, :pitch 67} {:time 314, :instrument 14, :pitch 67} {:time 312, :instrument 14, :pitch 67} {:time 311, :instrument 14, :pitch 67} {:time 310, :instrument 14, :pitch 67} {:time 308, :instrument 14, :pitch 67} {:time 307, :instrument 14, :pitch 67} {:time 306, :instrument 14, :pitch 67} {:time 304, :instrument 14, :pitch 67} {:time 303, :instrument 14, :pitch 65} {:time 302, :instrument 14, :pitch 64} {:time 301, :instrument 14, :pitch 62} {:time 300, :instrument 14, :pitch 60} {:time 298, :instrument 14, :pitch 60} {:time 296, :instrument 14, :pitch 55} {:time 295, :instrument 14, :pitch 55} {:time 294, :instrument 14, :pitch 55} {:time 291, :instrument 14, :pitch 60} {:time 290, :instrument 14, :pitch 60} {:time 292, :instrument 14, :pitch 55} {:time 288, :instrument 14, :pitch 60} {:time 254, :instrument 14, :pitch 67} {:time 252, :instrument 14, :pitch 67} {:time 251, :instrument 14, :pitch 67} {:time 249.5, :instrument 14, :pitch 67} {:time 248, :instrument 14, :pitch 67} {:time 244, :instrument 14, :pitch 67} {:time 243, :instrument 14, :pitch 65} {:time 242, :instrument 14, :pitch 63} {:time 240, :instrument 14, :pitch 63} {:time 238, :instrument 14, :pitch 65} {:time 236, :instrument 14, :pitch 67} {:time 232, :instrument 14, :pitch 68} {:time 376, :instrument 14, :pitch 67} {:time 375, :instrument 14, :pitch 67} {:time 373.5, :instrument 14, :pitch 67} {:time 372, :instrument 14, :pitch 67} {:time 368, :instrument 14, :pitch 79} {:time 367, :instrument 14, :pitch 78} {:time 365.5, :instrument 14, :pitch 78} {:time 364, :instrument 14, :pitch 78} {:time 363, :instrument 14, :pitch 78} {:time 361.5, :instrument 14, :pitch 78} {:time 360, :instrument 14, :pitch 78} {:time 359, :instrument 14, :pitch 75} {:time 357.5, :instrument 14, :pitch 72} {:time 356, :instrument 14, :pitch 66} {:time 355, :instrument 14, :pitch 63} {:time 353.5, :instrument 14, :pitch 60} {:time 352, :instrument 14, :pitch 54} {:time 348, :instrument 14, :pitch 71} {:time 348, :instrument 14, :pitch 67} {:time 347, :instrument 14, :pitch 71} {:time 346, :instrument 14, :pitch 71} {:time 344, :instrument 14, :pitch 71} {:time 343, :instrument 14, :pitch 71} {:time 342, :instrument 14, :pitch 71} {:time 340, :instrument 14, :pitch 71} {:time 339, :instrument 14, :pitch 74} {:time 338, :instrument 14, :pitch 74} {:time 336, :instrument 14, :pitch 74} {:time 335, :instrument 14, :pitch 75} {:time 334, :instrument 14, :pitch 75} {:time 332, :instrument 14, :pitch 75} {:time 331, :instrument 14, :pitch 72} {:time 330, :instrument 14, :pitch 72} {:time 328, :instrument 14, :pitch 72} {:time 327, :instrument 14, :pitch 72} {:time 326, :instrument 14, :pitch 72} {:time 324, :instrument 14, :pitch 72} {:time 323, :instrument 14, :pitch 72} {:time 322, :instrument 14, :pitch 72} {:time 320, :instrument 14, :pitch 72} {:time 347, :instrument 14, :pitch 74} {:time 346, :instrument 14, :pitch 74} {:time 344, :instrument 14, :pitch 74} {:time 343, :instrument 14, :pitch 74} {:time 342, :instrument 14, :pitch 74} {:time 340, :instrument 14, :pitch 74} {:time 339, :instrument 14, :pitch 77} {:time 338, :instrument 14, :pitch 77} {:time 336, :instrument 14, :pitch 77} {:time 335, :instrument 14, :pitch 78} {:time 334, :instrument 14, :pitch 78} {:time 332, :instrument 14, :pitch 78} {:time 331, :instrument 14, :pitch 75} {:time 330, :instrument 14, :pitch 75} {:time 328, :instrument 14, :pitch 75} {:time 327, :instrument 14, :pitch 75} {:time 326, :instrument 14, :pitch 75} {:time 324, :instrument 14, :pitch 75} {:time 323, :instrument 14, :pitch 75} {:time 322, :instrument 14, :pitch 75} {:time 320, :instrument 14, :pitch 75} {:time 319, :instrument 14, :pitch 74} {:time 317.5, :instrument 14, :pitch 72} {:time 316, :instrument 14, :pitch 70} {:time 304, :instrument 14, :pitch 70} {:time 303, :instrument 14, :pitch 69} {:time 302, :instrument 14, :pitch 67} {:time 301, :instrument 14, :pitch 65} {:time 300, :instrument 14, :pitch 64} {:time 299, :instrument 14, :pitch 64} {:time 296, :instrument 14, :pitch 64} {:time 295, :instrument 14, :pitch 62} {:time 294, :instrument 14, :pitch 64} {:time 292, :instrument 14, :pitch 64} {:time 288, :instrument 14, :pitch 67} {:time 287, :instrument 14, :pitch 68} {:time 286, :instrument 14, :pitch 68} {:time 284, :instrument 14, :pitch 68} {:time 283, :instrument 14, :pitch 69} {:time 282, :instrument 14, :pitch 69} {:time 280, :instrument 14, :pitch 69} {:time 279, :instrument 14, :pitch 70} {:time 278, :instrument 14, :pitch 70} {:time 276, :instrument 14, :pitch 70} {:time 272, :instrument 14, :pitch 71} {:time 270, :instrument 14, :pitch 74} {:time 268, :instrument 14, :pitch 72} {:time 267, :instrument 14, :pitch 71} {:time 266, :instrument 14, :pitch 69} {:time 264, :instrument 14, :pitch 69} {:time 263, :instrument 14, :pitch 67} {:time 262, :instrument 14, :pitch 66} {:time 260, :instrument 14, :pitch 66} {:time 256, :instrument 14, :pitch 66} {:time 255, :instrument 14, :pitch 67} {:time 253.5, :instrument 14, :pitch 68} {:time 248, :instrument 14, :pitch 70} {:time 247, :instrument 14, :pitch 68} {:time 245.5, :instrument 14, :pitch 67} {:time 244, :instrument 14, :pitch 68} {:time 243, :instrument 14, :pitch 67} {:time 242, :instrument 14, :pitch 67} {:time 240, :instrument 14, :pitch 67} {:time 239, :instrument 14, :pitch 68} {:time 237.5, :instrument 14, :pitch 70} {:time 232, :instrument 14, :pitch 72} {:time 231, :instrument 14, :pitch 70} {:time 229.5, :instrument 14, :pitch 68} {:time 228, :instrument 14, :pitch 70} {:time 227, :instrument 14, :pitch 68} {:time 224, :instrument 14, :pitch 68} {:time 223, :instrument 14, :pitch 70} {:time 221.5, :instrument 14, :pitch 68} {:time 220, :instrument 14, :pitch 70} {:time 219, :instrument 14, :pitch 70} {:time 216, :instrument 14, :pitch 70} {:time 215, :instrument 14, :pitch 70} {:time 211, :instrument 14, :pitch 72} {:time 212, :instrument 14, :pitch 70} {:time 208, :instrument 14, :pitch 75} {:time 207, :instrument 14, :pitch 72} {:time 205.5, :instrument 14, :pitch 74} {:time 204, :instrument 14, :pitch 75} {:time 203, :instrument 14, :pitch 75} {:time 200, :instrument 14, :pitch 75} {:time 199, :instrument 14, :pitch 74} {:time 198, :instrument 14, :pitch 72} {:time 197, :instrument 14, :pitch 70} {:time 196, :instrument 14, :pitch 68} {:time 195, :instrument 14, :pitch 68} {:time 192, :instrument 14, :pitch 68} {:time 191, :instrument 14, :pitch 74} {:time 189.5, :instrument 14, :pitch 72} {:time 188, :instrument 14, :pitch 70} {:time 184, :instrument 14, :pitch 70} {:time 183, :instrument 14, :pitch 69} {:time 182, :instrument 14, :pitch 67} {:time 181, :instrument 14, :pitch 65} {:time 180, :instrument 14, :pitch 64} {:time 178, :instrument 14, :pitch 64} {:time 168, :instrument 14, :pitch 64} {:time 167, :instrument 14, :pitch 62} {:time 166, :instrument 14, :pitch 64} {:time 164, :instrument 14, :pitch 64} {:time 144, :instrument 14, :pitch 67} {:time 143, :instrument 14, :pitch 65} {:time 142, :instrument 14, :pitch 64} {:time 141, :instrument 14, :pitch 62} {:time 140, :instrument 14, :pitch 60} {:time 138, :instrument 14, :pitch 60} {:time 132, :instrument 14, :pitch 55} {:time 128, :instrument 14, :pitch 60} {:time 112, :instrument 14, :pitch 67} {:time 111, :instrument 14, :pitch 65} {:time 110, :instrument 14, :pitch 64} {:time 109, :instrument 14, :pitch 62} {:time 108, :instrument 14, :pitch 60} {:time 106, :instrument 14, :pitch 60} {:time 100, :instrument 14, :pitch 55} {:time 96, :instrument 14, :pitch 60} {:time 377.5, :instrument 14, :pitch 67} {:time 379, :instrument 14, :pitch 67} {:time 380, :instrument 14, :pitch 67} {:time 381.5, :instrument 14, :pitch 67} {:time 383, :instrument 14, :pitch 67} {:time 384, :instrument 14, :pitch 54} {:time 385.5, :instrument 14, :pitch 60} {:time 387, :instrument 14, :pitch 63} {:time 388, :instrument 14, :pitch 66} {:time 389.5, :instrument 14, :pitch 72} {:time 391, :instrument 14, :pitch 75} {:time 392, :instrument 14, :pitch 78} {:time 394, :instrument 14, :pitch 78} {:time 395, :instrument 14, :pitch 78} {:time 396, :instrument 14, :pitch 78} {:time 397.5, :instrument 14, :pitch 78} {:time 399, :instrument 14, :pitch 78} {:time 400, :instrument 14, :pitch 79} {:time 404, :instrument 14, :pitch 67} {:time 405.5, :instrument 14, :pitch 67} {:time 407, :instrument 14, :pitch 67} {:time 408, :instrument 14, :pitch 67} {:time 409.5, :instrument 14, :pitch 67} {:time 411, :instrument 14, :pitch 67} {:time 412, :instrument 14, :pitch 67} {:time 413.5, :instrument 14, :pitch 67} {:time 415, :instrument 14, :pitch 67} {:time 416, :instrument 14, :pitch 68} {:time 417.5, :instrument 14, :pitch 68} {:time 419, :instrument 14, :pitch 68} {:time 420, :instrument 14, :pitch 68} {:time 421.5, :instrument 14, :pitch 68} {:time 423, :instrument 14, :pitch 68} {:time 424, :instrument 14, :pitch 68} {:time 425.5, :instrument 14, :pitch 68} {:time 427, :instrument 14, :pitch 68} {:time 428, :instrument 14, :pitch 73} {:time 429.5, :instrument 14, :pitch 73} {:time 431, :instrument 14, :pitch 73} {:time 432, :instrument 14, :pitch 72} {:time 433.5, :instrument 14, :pitch 72} {:time 435, :instrument 14, :pitch 72} {:time 436, :instrument 14, :pitch 67} {:time 437.5, :instrument 14, :pitch 67} {:time 439, :instrument 14, :pitch 67} {:time 440, :instrument 14, :pitch 67} {:time 441.5, :instrument 14, :pitch 67} {:time 443, :instrument 14, :pitch 67} {:time 444, :instrument 14, :pitch 63} {:time 445.5, :instrument 14, :pitch 63} {:time 447, :instrument 14, :pitch 63} {:time 448, :instrument 14, :pitch 66} {:time 449.5, :instrument 14, :pitch 66} {:time 451, :instrument 14, :pitch 66} {:time 452, :instrument 14, :pitch 66} {:time 453.5, :instrument 14, :pitch 66} {:time 455, :instrument 14, :pitch 67} {:time 456, :instrument 14, :pitch 69} {:time 457.5, :instrument 14, :pitch 69} {:time 459, :instrument 14, :pitch 71} {:time 460, :instrument 14, :pitch 72} {:time 462, :instrument 14, :pitch 74} {:time 464, :instrument 14, :pitch 71} {:time 468, :instrument 14, :pitch 70} {:time 469.5, :instrument 14, :pitch 70} {:time 471, :instrument 14, :pitch 70} {:time 472, :instrument 14, :pitch 69} {:time 473.5, :instrument 14, :pitch 69} {:time 475, :instrument 14, :pitch 69} {:time 476, :instrument 14, :pitch 68} {:time 477.5, :instrument 14, :pitch 68} {:time 479, :instrument 14, :pitch 68} {:time 480, :instrument 14, :pitch 67} {:time 160, :instrument 14, :pitch 67} {:time 162, :instrument 14, :pitch 67} {:time 163, :instrument 14, :pitch 60} {:time 164, :instrument 14, :pitch 67} {:time 160, :instrument 14, :pitch 64} {:time 171, :instrument 14, :pitch 64} {:time 172, :instrument 14, :pitch 64} {:time 173, :instrument 14, :pitch 65} {:time 174, :instrument 14, :pitch 67} {:time 175, :instrument 14, :pitch 69} {:time 176, :instrument 14, :pitch 70} {:time 179, :instrument 14, :pitch 72} {:time 180, :instrument 14, :pitch 72} {:time 181, :instrument 14, :pitch 74} {:time 182, :instrument 14, :pitch 76} {:time 183, :instrument 14, :pitch 77} {:time 184, :instrument 14, :pitch 79} {:time 192, :instrument 14, :pitch 72} {:time 194, :instrument 14, :pitch 72} {:time 195, :instrument 14, :pitch 72} {:time 196, :instrument 14, :pitch 72} {:time 197.5, :instrument 14, :pitch 72} {:time 199, :instrument 14, :pitch 72} {:time 200, :instrument 14, :pitch 72} {:time 201.5, :instrument 14, :pitch 72} {:time 203, :instrument 14, :pitch 72} {:time 204, :instrument 14, :pitch 72} {:time 205.5, :instrument 14, :pitch 70} {:time 207, :instrument 14, :pitch 68} {:time 208, :instrument 14, :pitch 70} {:time 211, :instrument 14, :pitch 68} {:time 212, :instrument 14, :pitch 67} {:time 213.5, :instrument 14, :pitch 67} {:time 215, :instrument 14, :pitch 67} {:time 216, :instrument 14, :pitch 67} {:time 217.5, :instrument 14, :pitch 67} {:time 219, :instrument 14, :pitch 67} {:time 220, :instrument 14, :pitch 67} {:time 221.5, :instrument 14, :pitch 67} {:time 223, :instrument 14, :pitch 67} {:time 224, :instrument 14, :pitch 65} {:time 227, :instrument 14, :pitch 67} {:time 228, :instrument 14, :pitch 68} {:time 229.5, :instrument 14, :pitch 68} {:time 231, :instrument 14, :pitch 68} {:time 226, :instrument 14, :pitch 65}]) (def gb1 [{:time 120, :instrument 6, :pitch 67} {:time 119, :instrument 6, :pitch 65} {:time 118, :instrument 6, :pitch 64} {:time 117, :instrument 6, :pitch 62} {:time 116, :instrument 6, :pitch 60} {:time 114, :instrument 6, :pitch 60} {:time 152, :instrument 6, :pitch 67} {:time 151, :instrument 6, :pitch 65} {:time 150, :instrument 6, :pitch 64} {:time 149, :instrument 6, :pitch 62} {:time 148, :instrument 6, :pitch 60} {:time 146, :instrument 6, :pitch 60}]) (def zelda [{:time 312, :instrument 4, :pitch 70}{:time 311, :instrument 4, :pitch 69}{:time 310, :instrument 4, :pitch 67}{:time 309, :instrument 4, :pitch 65}{:time 308, :instrument 4, :pitch 64}{:time 307, :instrument 4, :pitch 64}{:time 296, :instrument 4, :pitch 64}{:time 295, :instrument 4, :pitch 62}{:time 294, :instrument 4, :pitch 64}{:time 292, :instrument 4, :pitch 64}{:time 464, :instrument 6, :pitch 67}{:time 460, :instrument 6, :pitch 69}{:time 452, :instrument 6, :pitch 66}{:time 451, :instrument 6, :pitch 64}{:time 448, :instrument 6, :pitch 62}{:time 444, :instrument 6, :pitch 60}{:time 436, :instrument 6, :pitch 63}{:time 432, :instrument 6, :pitch 67}{:time 428, :instrument 6, :pitch 68}{:time 416, :instrument 6, :pitch 65}{:time 412, :instrument 6, :pitch 64}{:time 404, :instrument 6, :pitch 67}{:time 400, :instrument 6, :pitch 71}{:time 396, :instrument 6, :pitch 72}{:time 384, :instrument 6, :pitch 68}{:time 380, :instrument 6, :pitch 67}{:time 372, :instrument 6, :pitch 67}{:time 368, :instrument 6, :pitch 71}{:time 364, :instrument 6, :pitch 72}{:time 352, :instrument 6, :pitch 68}{:time 348, :instrument 6, :pitch 67}{:time 340, :instrument 6, :pitch 71}{:time 336, :instrument 6, :pitch 74}{:time 332, :instrument 6, :pitch 75}{:time 320, :instrument 6, :pitch 72}{:time 319, :instrument 6, :pitch 70}{:time 317.5, :instrument 6, :pitch 68}{:time 316, :instrument 6, :pitch 67}{:time 304, :instrument 6, :pitch 67}{:time 303, :instrument 6, :pitch 65}{:time 302, :instrument 6, :pitch 64}{:time 301, :instrument 6, :pitch 62}{:time 300, :instrument 6, :pitch 60}{:time 298, :instrument 6, :pitch 60}{:time 292, :instrument 6, :pitch 55}{:time 288, :instrument 6, :pitch 60}{:time 272, :instrument 6, :pitch 67}{:time 268, :instrument 6, :pitch 69}{:time 260, :instrument 6, :pitch 66}{:time 259, :instrument 6, :pitch 64}{:time 256, :instrument 6, :pitch 62}{:time 254, :instrument 6, :pitch 63}{:time 252, :instrument 6, :pitch 65}{:time 244, :instrument 6, :pitch 67}{:time 243, :instrument 6, :pitch 65}{:time 240, :instrument 6, :pitch 63}{:time 238, :instrument 6, :pitch 65}{:time 236, :instrument 6, :pitch 67}{:time 228, :instrument 6, :pitch 68}{:time 227, :instrument 6, :pitch 67}{:time 224, :instrument 6, :pitch 65}{:time 220, :instrument 6, :pitch 67}{:time 212, :instrument 6, :pitch 67}{:time 211, :instrument 6, :pitch 68}{:time 208, :instrument 6, :pitch 70}{:time 207, :instrument 6, :pitch 68}{:time 205.5, :instrument 6, :pitch 70}{:time 204, :instrument 6, :pitch 72}{:time 203, :instrument 6, :pitch 72}{:time 192, :instrument 6, :pitch 72}{:time 191, :instrument 6, :pitch 70}{:time 189.5, :instrument 6, :pitch 68}{:time 188, :instrument 6, :pitch 67}{:time 176, :instrument 6, :pitch 67}{:time 175, :instrument 6, :pitch 65}{:time 174, :instrument 6, :pitch 64}{:time 173, :instrument 6, :pitch 62}{:time 172, :instrument 6, :pitch 60}{:time 170, :instrument 6, :pitch 60}{:time 164, :instrument 6, :pitch 55}{:time 160, :instrument 6, :pitch 60}{:time 0, :instrument 15, :pitch 60}{:time 4, :instrument 15, :pitch 67}{:time 8, :instrument 15, :pitch 72}{:time 16, :instrument 15, :pitch 58}{:time 20, :instrument 15, :pitch 65}{:time 24, :instrument 15, :pitch 70}{:time 32, :instrument 15, :pitch 56}{:time 36, :instrument 15, :pitch 63}{:time 40, :instrument 15, :pitch 68}{:time 48, :instrument 15, :pitch 55}{:time 52, :instrument 15, :pitch 62}{:time 56, :instrument 15, :pitch 67}{:time 64, :instrument 15, :pitch 60}{:time 68, :instrument 15, :pitch 60}{:time 66, :instrument 15, :pitch 60}{:time 67, :instrument 15, :pitch 60}{:time 70, :instrument 15, :pitch 60}{:time 71, :instrument 15, :pitch 60}{:time 72, :instrument 15, :pitch 60}{:time 74, :instrument 15, :pitch 60}{:time 75, :instrument 15, :pitch 60}{:time 76, :instrument 15, :pitch 60}{:time 78, :instrument 15, :pitch 60}{:time 79, :instrument 15, :pitch 60}{:time 80, :instrument 15, :pitch 60}{:time 84, :instrument 15, :pitch 60}{:time 82, :instrument 15, :pitch 60}{:time 83, :instrument 15, :pitch 60}{:time 86, :instrument 15, :pitch 60}{:time 87, :instrument 15, :pitch 60}{:time 88, :instrument 15, :pitch 60}{:time 90, :instrument 15, :pitch 60}{:time 91, :instrument 15, :pitch 60}{:time 92, :instrument 15, :pitch 60}{:time 94, :instrument 15, :pitch 60}{:time 95, :instrument 15, :pitch 60}{:time 96, :instrument 15, :pitch 60}{:time 100, :instrument 15, :pitch 60}{:time 98, :instrument 15, :pitch 60}{:time 99, :instrument 15, :pitch 60}{:time 102, :instrument 15, :pitch 60}{:time 103, :instrument 15, :pitch 60}{:time 104, :instrument 15, :pitch 60}{:time 106, :instrument 15, :pitch 60}{:time 107, :instrument 15, :pitch 60}{:time 108, :instrument 15, :pitch 60}{:time 110, :instrument 15, :pitch 60}{:time 111, :instrument 15, :pitch 60}{:time 112, :instrument 15, :pitch 58}{:time 116, :instrument 15, :pitch 58}{:time 114, :instrument 15, :pitch 58}{:time 115, :instrument 15, :pitch 58}{:time 118, :instrument 15, :pitch 58}{:time 119, :instrument 15, :pitch 58}{:time 120, :instrument 15, :pitch 58}{:time 122, :instrument 15, :pitch 58}{:time 123, :instrument 15, :pitch 58}{:time 124, :instrument 15, :pitch 58}{:time 126, :instrument 15, :pitch 58}{:time 127, :instrument 15, :pitch 58}{:time 128, :instrument 15, :pitch 56}{:time 132, :instrument 15, :pitch 56}{:time 130, :instrument 15, :pitch 56}{:time 131, :instrument 15, :pitch 56}{:time 134, :instrument 15, :pitch 56}{:time 135, :instrument 15, :pitch 56}{:time 136, :instrument 15, :pitch 56}{:time 138, :instrument 15, :pitch 56}{:time 139, :instrument 15, :pitch 56}{:time 140, :instrument 15, :pitch 56}{:time 142, :instrument 15, :pitch 56}{:time 143, :instrument 15, :pitch 56}{:time 144, :instrument 15, :pitch 55}{:time 148, :instrument 15, :pitch 55}{:time 146, :instrument 15, :pitch 55}{:time 147, :instrument 15, :pitch 55}{:time 150, :instrument 15, :pitch 55}{:time 151, :instrument 15, :pitch 55}{:time 152, :instrument 15, :pitch 55}{:time 154, :instrument 15, :pitch 55}{:time 155, :instrument 15, :pitch 55}{:time 156, :instrument 15, :pitch 55}{:time 158, :instrument 15, :pitch 55}{:time 159, :instrument 15, :pitch 55}{:time 160, :instrument 15, :pitch 60}{:time 164, :instrument 15, :pitch 60}{:time 162, :instrument 15, :pitch 60}{:time 163, :instrument 15, :pitch 60}{:time 166, :instrument 15, :pitch 60}{:time 167, :instrument 15, :pitch 60}{:time 168, :instrument 15, :pitch 60}{:time 170, :instrument 15, :pitch 60}{:time 171, :instrument 15, :pitch 60}{:time 172, :instrument 15, :pitch 60}{:time 174, :instrument 15, :pitch 60}{:time 175, :instrument 15, :pitch 60}{:time 176, :instrument 15, :pitch 58}{:time 180, :instrument 15, :pitch 58}{:time 178, :instrument 15, :pitch 58}{:time 179, :instrument 15, :pitch 58}{:time 182, :instrument 15, :pitch 58}{:time 183, :instrument 15, :pitch 58}{:time 184, :instrument 15, :pitch 58}{:time 186, :instrument 15, :pitch 58}{:time 187, :instrument 15, :pitch 58}{:time 188, :instrument 15, :pitch 58}{:time 190, :instrument 15, :pitch 58}{:time 191, :instrument 15, :pitch 58}{:time 192, :instrument 15, :pitch 56}{:time 196, :instrument 15, :pitch 56}{:time 194, :instrument 15, :pitch 56}{:time 195, :instrument 15, :pitch 56}{:time 198, :instrument 15, :pitch 56}{:time 199, :instrument 15, :pitch 56}{:time 200, :instrument 15, :pitch 56}{:time 202, :instrument 15, :pitch 56}{:time 203, :instrument 15, :pitch 56}{:time 204, :instrument 15, :pitch 56}{:time 206, :instrument 15, :pitch 56}{:time 207, :instrument 15, :pitch 56}{:time 208, :instrument 15, :pitch 63}{:time 212, :instrument 15, :pitch 63}{:time 210, :instrument 15, :pitch 63}{:time 211, :instrument 15, :pitch 63}{:time 214, :instrument 15, :pitch 63}{:time 215, :instrument 15, :pitch 63}{:time 216, :instrument 15, :pitch 63}{:time 218, :instrument 15, :pitch 63}{:time 219, :instrument 15, :pitch 63}{:time 220, :instrument 15, :pitch 63}{:time 222, :instrument 15, :pitch 63}{:time 223, :instrument 15, :pitch 63}{:time 224, :instrument 15, :pitch 61}{:time 228, :instrument 15, :pitch 61}{:time 226, :instrument 15, :pitch 61}{:time 227, :instrument 15, :pitch 61}{:time 230, :instrument 15, :pitch 61}{:time 231, :instrument 15, :pitch 61}{:time 232, :instrument 15, :pitch 61}{:time 234, :instrument 15, :pitch 61}{:time 235, :instrument 15, :pitch 61}{:time 236, :instrument 15, :pitch 61}{:time 238, :instrument 15, :pitch 61}{:time 239, :instrument 15, :pitch 61}{:time 240, :instrument 15, :pitch 60}{:time 244, :instrument 15, :pitch 60}{:time 242, :instrument 15, :pitch 60}{:time 243, :instrument 15, :pitch 60}{:time 246, :instrument 15, :pitch 60}{:time 247, :instrument 15, :pitch 60}{:time 248, :instrument 15, :pitch 60}{:time 250, :instrument 15, :pitch 60}{:time 251, :instrument 15, :pitch 60}{:time 252, :instrument 15, :pitch 60}{:time 254, :instrument 15, :pitch 60}{:time 255, :instrument 15, :pitch 60}{:time 256, :instrument 15, :pitch 62}{:time 260, :instrument 15, :pitch 62}{:time 258, :instrument 15, :pitch 62}{:time 259, :instrument 15, :pitch 62}{:time 262, :instrument 15, :pitch 62}{:time 263, :instrument 15, :pitch 62}{:time 264, :instrument 15, :pitch 62}{:time 266, :instrument 15, :pitch 62}{:time 267, :instrument 15, :pitch 62}{:time 268, :instrument 15, :pitch 62}{:time 270, :instrument 15, :pitch 62}{:time 271, :instrument 15, :pitch 62}{:time 272, :instrument 15, :pitch 55}{:time 276, :instrument 15, :pitch 55}{:time 274, :instrument 15, :pitch 55}{:time 275, :instrument 15, :pitch 55}{:time 278, :instrument 15, :pitch 55}{:time 279, :instrument 15, :pitch 55}{:time 280, :instrument 15, :pitch 55}{:time 282, :instrument 15, :pitch 55}{:time 283, :instrument 15, :pitch 55}{:time 284, :instrument 15, :pitch 55}{:time 286, :instrument 15, :pitch 55}{:time 287, :instrument 15, :pitch 55}{:time 288, :instrument 15, :pitch 60}{:time 292, :instrument 15, :pitch 60}{:time 290, :instrument 15, :pitch 60}{:time 291, :instrument 15, :pitch 60}{:time 294, :instrument 15, :pitch 60}{:time 295, :instrument 15, :pitch 60}{:time 296, :instrument 15, :pitch 60}{:time 298, :instrument 15, :pitch 60}{:time 299, :instrument 15, :pitch 60}{:time 300, :instrument 15, :pitch 60}{:time 302, :instrument 15, :pitch 60}{:time 303, :instrument 15, :pitch 60}{:time 304, :instrument 15, :pitch 58}{:time 308, :instrument 15, :pitch 58}{:time 306, :instrument 15, :pitch 58}{:time 307, :instrument 15, :pitch 58}{:time 310, :instrument 15, :pitch 58}{:time 311, :instrument 15, :pitch 58}{:time 312, :instrument 15, :pitch 58}{:time 314, :instrument 15, :pitch 58}{:time 315, :instrument 15, :pitch 58}{:time 316, :instrument 15, :pitch 58}{:time 318, :instrument 15, :pitch 58}{:time 319, :instrument 15, :pitch 58}{:time 320, :instrument 15, :pitch 56}{:time 324, :instrument 15, :pitch 56}{:time 322, :instrument 15, :pitch 56}{:time 323, :instrument 15, :pitch 56}{:time 326, :instrument 15, :pitch 56}{:time 327, :instrument 15, :pitch 56}{:time 328, :instrument 15, :pitch 56}{:time 330, :instrument 15, :pitch 56}{:time 331, :instrument 15, :pitch 56}{:time 332, :instrument 15, :pitch 56}{:time 334, :instrument 15, :pitch 56}{:time 335, :instrument 15, :pitch 56}{:time 336, :instrument 15, :pitch 55}{:time 340, :instrument 15, :pitch 55}{:time 338, :instrument 15, :pitch 55}{:time 339, :instrument 15, :pitch 55}{:time 342, :instrument 15, :pitch 55}{:time 343, :instrument 15, :pitch 55}{:time 344, :instrument 15, :pitch 55}{:time 346, :instrument 15, :pitch 55}{:time 347, :instrument 15, :pitch 55}{:time 348, :instrument 15, :pitch 55}{:time 350, :instrument 15, :pitch 55}{:time 351, :instrument 15, :pitch 55}{:time 352, :instrument 15, :pitch 54}{:time 356, :instrument 15, :pitch 54}{:time 354, :instrument 15, :pitch 54}{:time 355, :instrument 15, :pitch 54}{:time 358, :instrument 15, :pitch 54}{:time 359, :instrument 15, :pitch 54}{:time 360, :instrument 15, :pitch 54}{:time 362, :instrument 15, :pitch 54}{:time 363, :instrument 15, :pitch 54}{:time 364, :instrument 15, :pitch 54}{:time 366, :instrument 15, :pitch 54}{:time 367, :instrument 15, :pitch 54}{:time 368, :instrument 15, :pitch 55}{:time 372, :instrument 15, :pitch 55}{:time 370, :instrument 15, :pitch 55}{:time 371, :instrument 15, :pitch 55}{:time 374, :instrument 15, :pitch 55}{:time 375, :instrument 15, :pitch 55}{:time 376, :instrument 15, :pitch 55}{:time 378, :instrument 15, :pitch 55}{:time 379, :instrument 15, :pitch 55}{:time 380, :instrument 15, :pitch 55}{:time 382, :instrument 15, :pitch 55}{:time 383, :instrument 15, :pitch 55}{:time 384, :instrument 15, :pitch 54}{:time 388, :instrument 15, :pitch 54}{:time 386, :instrument 15, :pitch 54}{:time 387, :instrument 15, :pitch 54}{:time 390, :instrument 15, :pitch 54}{:time 391, :instrument 15, :pitch 54}{:time 392, :instrument 15, :pitch 54}{:time 394, :instrument 15, :pitch 54}{:time 395, :instrument 15, :pitch 54}{:time 396, :instrument 15, :pitch 54}{:time 398, :instrument 15, :pitch 54}{:time 399, :instrument 15, :pitch 54}{:time 400, :instrument 15, :pitch 55}{:time 404, :instrument 15, :pitch 55}{:time 402, :instrument 15, :pitch 55}{:time 403, :instrument 15, :pitch 55}{:time 406, :instrument 15, :pitch 55}{:time 407, :instrument 15, :pitch 55}{:time 408, :instrument 15, :pitch 55}{:time 410, :instrument 15, :pitch 55}{:time 411, :instrument 15, :pitch 55}{:time 412, :instrument 15, :pitch 55}{:time 414, :instrument 15, :pitch 55}{:time 415, :instrument 15, :pitch 55}{:time 416, :instrument 15, :pitch 61}{:time 420, :instrument 15, :pitch 61}{:time 418, :instrument 15, :pitch 61}{:time 419, :instrument 15, :pitch 61}{:time 422, :instrument 15, :pitch 61}{:time 423, :instrument 15, :pitch 61}{:time 424, :instrument 15, :pitch 61}{:time 426, :instrument 15, :pitch 61}{:time 427, :instrument 15, :pitch 61}{:time 428, :instrument 15, :pitch 61}{:time 430, :instrument 15, :pitch 61}{:time 431, :instrument 15, :pitch 61}{:time 432, :instrument 15, :pitch 60}{:time 436, :instrument 15, :pitch 60}{:time 434, :instrument 15, :pitch 60}{:time 435, :instrument 15, :pitch 60}{:time 438, :instrument 15, :pitch 60}{:time 439, :instrument 15, :pitch 60}{:time 440, :instrument 15, :pitch 60}{:time 442, :instrument 15, :pitch 60}{:time 443, :instrument 15, :pitch 60}{:time 444, :instrument 15, :pitch 60}{:time 446, :instrument 15, :pitch 60}{:time 447, :instrument 15, :pitch 60}{:time 448, :instrument 15, :pitch 62}{:time 452, :instrument 15, :pitch 62}{:time 450, :instrument 15, :pitch 62}{:time 451, :instrument 15, :pitch 62}{:time 454, :instrument 15, :pitch 62}{:time 455, :instrument 15, :pitch 62}{:time 456, :instrument 15, :pitch 62}{:time 458, :instrument 15, :pitch 62}{:time 459, :instrument 15, :pitch 62}{:time 460, :instrument 15, :pitch 62}{:time 462, :instrument 15, :pitch 62}{:time 463, :instrument 15, :pitch 62}{:time 464, :instrument 15, :pitch 55}{:time 468, :instrument 15, :pitch 55}{:time 466, :instrument 15, :pitch 55}{:time 467, :instrument 15, :pitch 55}{:time 470, :instrument 15, :pitch 55}{:time 471, :instrument 15, :pitch 55}{:time 472, :instrument 15, :pitch 55}{:time 474, :instrument 15, :pitch 55}{:time 475, :instrument 15, :pitch 55}{:time 476, :instrument 15, :pitch 55}{:time 478, :instrument 15, :pitch 55}{:time 479, :instrument 15, :pitch 55}{:time 66, :instrument 12, :pitch 60}{:time 64, :instrument 12, :pitch 63}{:time 63.5, :instrument 12, :pitch 60}{:time 63, :instrument 12, :pitch 55}{:time 50, :instrument 12, :pitch 71}{:time 49, :instrument 12, :pitch 69}{:time 48, :instrument 12, :pitch 71}{:time 46, :instrument 12, :pitch 72}{:time 44, :instrument 12, :pitch 68}{:time 42, :instrument 12, :pitch 68}{:time 32, :instrument 12, :pitch 72}{:time 31.5, :instrument 12, :pitch 68}{:time 31, :instrument 12, :pitch 63}{:time 18, :instrument 12, :pitch 70}{:time 17, :instrument 12, :pitch 68}{:time 12, :instrument 12, :pitch 67}{:time 16, :instrument 12, :pitch 70}{:time 14, :instrument 12, :pitch 72}{:time 10, :instrument 12, :pitch 67}{:time 0, :instrument 12, :pitch 72}{:time 480, :instrument 14, :pitch 60}{:time 479, :instrument 14, :pitch 55}{:time 478, :instrument 14, :pitch 55}{:time 476, :instrument 14, :pitch 55}{:time 475, :instrument 14, :pitch 55}{:time 474, :instrument 14, :pitch 55}{:time 472, :instrument 14, :pitch 55}{:time 471, :instrument 14, :pitch 55}{:time 470, :instrument 14, :pitch 55}{:time 468, :instrument 14, :pitch 55}{:time 467, :instrument 14, :pitch 55}{:time 466, :instrument 14, :pitch 55}{:time 464, :instrument 14, :pitch 67}{:time 463, :instrument 14, :pitch 69}{:time 462, :instrument 14, :pitch 69}{:time 460, :instrument 14, :pitch 69}{:time 459, :instrument 14, :pitch 66}{:time 458, :instrument 14, :pitch 66}{:time 456, :instrument 14, :pitch 66}{:time 455, :instrument 14, :pitch 66}{:time 454, :instrument 14, :pitch 66}{:time 452, :instrument 14, :pitch 66}{:time 451, :instrument 14, :pitch 64}{:time 450, :instrument 14, :pitch 62}{:time 448, :instrument 14, :pitch 62}{:time 448, :instrument 14, :pitch 62}{:time 447, :instrument 14, :pitch 60}{:time 446, :instrument 14, :pitch 60}{:time 444, :instrument 14, :pitch 60}{:time 442, :instrument 14, :pitch 60}{:time 443, :instrument 14, :pitch 60}{:time 442, :instrument 14, :pitch 60}{:time 440, :instrument 14, :pitch 63}{:time 439, :instrument 14, :pitch 63}{:time 438, :instrument 14, :pitch 63}{:time 436, :instrument 14, :pitch 63}{:time 435, :instrument 14, :pitch 67}{:time 434, :instrument 14, :pitch 67}{:time 432, :instrument 14, :pitch 67}{:time 431, :instrument 14, :pitch 68}{:time 430, :instrument 14, :pitch 68}{:time 428, :instrument 14, :pitch 68}{:time 427, :instrument 14, :pitch 65}{:time 426, :instrument 14, :pitch 65}{:time 424, :instrument 14, :pitch 65}{:time 423, :instrument 14, :pitch 65}{:time 422, :instrument 14, :pitch 65}{:time 420, :instrument 14, :pitch 65}{:time 419, :instrument 14, :pitch 65}{:time 418, :instrument 14, :pitch 65}{:time 416, :instrument 14, :pitch 65}{:time 415, :instrument 14, :pitch 55}{:time 414, :instrument 14, :pitch 55}{:time 412, :instrument 14, :pitch 55}{:time 411, :instrument 14, :pitch 55}{:time 410, :instrument 14, :pitch 55}{:time 408, :instrument 14, :pitch 55}{:time 407, :instrument 14, :pitch 55}{:time 406, :instrument 14, :pitch 55}{:time 404, :instrument 14, :pitch 55}{:time 403, :instrument 14, :pitch 71}{:time 402, :instrument 14, :pitch 71}{:time 400, :instrument 14, :pitch 71}{:time 399, :instrument 14, :pitch 72}{:time 398, :instrument 14, :pitch 72}{:time 396, :instrument 14, :pitch 72}{:time 395, :instrument 14, :pitch 68}{:time 394, :instrument 14, :pitch 68}{:time 392, :instrument 14, :pitch 68}{:time 391, :instrument 14, :pitch 68}{:time 390, :instrument 14, :pitch 68}{:time 388, :instrument 14, :pitch 68}{:time 387, :instrument 14, :pitch 68}{:time 386, :instrument 14, :pitch 68}{:time 384, :instrument 14, :pitch 68}{:time 382, :instrument 14, :pitch 67}{:time 383, :instrument 14, :pitch 55}{:time 382, :instrument 14, :pitch 55}{:time 380, :instrument 14, :pitch 55}{:time 379, :instrument 14, :pitch 55}{:time 378, :instrument 14, :pitch 55}{:time 376, :instrument 14, :pitch 55}{:time 375, :instrument 14, :pitch 55}{:time 374, :instrument 14, :pitch 55}{:time 372, :instrument 14, :pitch 55}{:time 371, :instrument 14, :pitch 71}{:time 370, :instrument 14, :pitch 71}{:time 368, :instrument 14, :pitch 71}{:time 367, :instrument 14, :pitch 72}{:time 366, :instrument 14, :pitch 72}{:time 364, :instrument 14, :pitch 72}{:time 363, :instrument 14, :pitch 68}{:time 362, :instrument 14, :pitch 68}{:time 360, :instrument 14, :pitch 68}{:time 359, :instrument 14, :pitch 68}{:time 358, :instrument 14, :pitch 68}{:time 356, :instrument 14, :pitch 68}{:time 355, :instrument 14, :pitch 68}{:time 354, :instrument 14, :pitch 68}{:time 352, :instrument 14, :pitch 68}{:time 351, :instrument 14, :pitch 67}{:time 351, :instrument 14, :pitch 71}{:time 350, :instrument 14, :pitch 71}{:time 350, :instrument 14, :pitch 67}{:time 319, :instrument 14, :pitch 70}{:time 317.5, :instrument 14, :pitch 68}{:time 316, :instrument 14, :pitch 67}{:time 315, :instrument 14, :pitch 67}{:time 314, :instrument 14, :pitch 67}{:time 312, :instrument 14, :pitch 67}{:time 311, :instrument 14, :pitch 67}{:time 310, :instrument 14, :pitch 67}{:time 308, :instrument 14, :pitch 67}{:time 307, :instrument 14, :pitch 67}{:time 306, :instrument 14, :pitch 67}{:time 304, :instrument 14, :pitch 67}{:time 303, :instrument 14, :pitch 65}{:time 302, :instrument 14, :pitch 64}{:time 301, :instrument 14, :pitch 62}{:time 300, :instrument 14, :pitch 60}{:time 298, :instrument 14, :pitch 60}{:time 296, :instrument 14, :pitch 55}{:time 295, :instrument 14, :pitch 55}{:time 294, :instrument 14, :pitch 55}{:time 291, :instrument 14, :pitch 60}{:time 290, :instrument 14, :pitch 60}{:time 292, :instrument 14, :pitch 55}{:time 288, :instrument 14, :pitch 60}{:time 254, :instrument 14, :pitch 67}{:time 252, :instrument 14, :pitch 67}{:time 251, :instrument 14, :pitch 67}{:time 249.5, :instrument 14, :pitch 67}{:time 248, :instrument 14, :pitch 67}{:time 244, :instrument 14, :pitch 67}{:time 243, :instrument 14, :pitch 65}{:time 242, :instrument 14, :pitch 63}{:time 240, :instrument 14, :pitch 63}{:time 238, :instrument 14, :pitch 65}{:time 236, :instrument 14, :pitch 67}{:time 232, :instrument 14, :pitch 68}{:time 376, :instrument 14, :pitch 67}{:time 375, :instrument 14, :pitch 67}{:time 373.5, :instrument 14, :pitch 67}{:time 372, :instrument 14, :pitch 67}{:time 368, :instrument 14, :pitch 79}{:time 367, :instrument 14, :pitch 78}{:time 365.5, :instrument 14, :pitch 78}{:time 364, :instrument 14, :pitch 78}{:time 363, :instrument 14, :pitch 78}{:time 361.5, :instrument 14, :pitch 78}{:time 360, :instrument 14, :pitch 78}{:time 359, :instrument 14, :pitch 75}{:time 357.5, :instrument 14, :pitch 72}{:time 356, :instrument 14, :pitch 66}{:time 355, :instrument 14, :pitch 63}{:time 353.5, :instrument 14, :pitch 60}{:time 352, :instrument 14, :pitch 54}{:time 348, :instrument 14, :pitch 71}{:time 348, :instrument 14, :pitch 67}{:time 347, :instrument 14, :pitch 71}{:time 346, :instrument 14, :pitch 71}{:time 344, :instrument 14, :pitch 71}{:time 343, :instrument 14, :pitch 71}{:time 342, :instrument 14, :pitch 71}{:time 340, :instrument 14, :pitch 71}{:time 339, :instrument 14, :pitch 74}{:time 338, :instrument 14, :pitch 74}{:time 336, :instrument 14, :pitch 74}{:time 335, :instrument 14, :pitch 75}{:time 334, :instrument 14, :pitch 75}{:time 332, :instrument 14, :pitch 75}{:time 331, :instrument 14, :pitch 72}{:time 330, :instrument 14, :pitch 72}{:time 328, :instrument 14, :pitch 72}{:time 327, :instrument 14, :pitch 72}{:time 326, :instrument 14, :pitch 72}{:time 324, :instrument 14, :pitch 72}{:time 323, :instrument 14, :pitch 72}{:time 322, :instrument 14, :pitch 72}{:time 320, :instrument 14, :pitch 72}{:time 347, :instrument 14, :pitch 74}{:time 346, :instrument 14, :pitch 74}{:time 344, :instrument 14, :pitch 74}{:time 343, :instrument 14, :pitch 74}{:time 342, :instrument 14, :pitch 74}{:time 340, :instrument 14, :pitch 74}{:time 339, :instrument 14, :pitch 77}{:time 338, :instrument 14, :pitch 77}{:time 336, :instrument 14, :pitch 77}{:time 335, :instrument 14, :pitch 78}{:time 334, :instrument 14, :pitch 78}{:time 332, :instrument 14, :pitch 78}{:time 331, :instrument 14, :pitch 75}{:time 330, :instrument 14, :pitch 75}{:time 328, :instrument 14, :pitch 75}{:time 327, :instrument 14, :pitch 75}{:time 326, :instrument 14, :pitch 75}{:time 324, :instrument 14, :pitch 75}{:time 323, :instrument 14, :pitch 75}{:time 322, :instrument 14, :pitch 75}{:time 320, :instrument 14, :pitch 75}{:time 319, :instrument 14, :pitch 74}{:time 317.5, :instrument 14, :pitch 72}{:time 316, :instrument 14, :pitch 70}{:time 304, :instrument 14, :pitch 70}{:time 303, :instrument 14, :pitch 69}{:time 302, :instrument 14, :pitch 67}{:time 301, :instrument 14, :pitch 65}{:time 300, :instrument 14, :pitch 64}{:time 299, :instrument 14, :pitch 64}{:time 296, :instrument 14, :pitch 64}{:time 295, :instrument 14, :pitch 62}{:time 294, :instrument 14, :pitch 64}{:time 292, :instrument 14, :pitch 64}{:time 288, :instrument 14, :pitch 67}{:time 287, :instrument 14, :pitch 68}{:time 286, :instrument 14, :pitch 68}{:time 284, :instrument 14, :pitch 68}{:time 283, :instrument 14, :pitch 69}{:time 282, :instrument 14, :pitch 69}{:time 280, :instrument 14, :pitch 69}{:time 279, :instrument 14, :pitch 70}{:time 278, :instrument 14, :pitch 70}{:time 276, :instrument 14, :pitch 70}{:time 272, :instrument 14, :pitch 71}{:time 270, :instrument 14, :pitch 74}{:time 268, :instrument 14, :pitch 72}{:time 267, :instrument 14, :pitch 71}{:time 266, :instrument 14, :pitch 69}{:time 264, :instrument 14, :pitch 69}{:time 263, :instrument 14, :pitch 67}{:time 262, :instrument 14, :pitch 66}{:time 260, :instrument 14, :pitch 66}{:time 256, :instrument 14, :pitch 66}{:time 255, :instrument 14, :pitch 67}{:time 253.5, :instrument 14, :pitch 68}{:time 248, :instrument 14, :pitch 70}{:time 247, :instrument 14, :pitch 68}{:time 245.5, :instrument 14, :pitch 67}{:time 244, :instrument 14, :pitch 68}{:time 243, :instrument 14, :pitch 67}{:time 242, :instrument 14, :pitch 67}{:time 240, :instrument 14, :pitch 67}{:time 239, :instrument 14, :pitch 68}{:time 237.5, :instrument 14, :pitch 70}{:time 232, :instrument 14, :pitch 72}{:time 231, :instrument 14, :pitch 70}{:time 229.5, :instrument 14, :pitch 68}{:time 228, :instrument 14, :pitch 70}{:time 227, :instrument 14, :pitch 68}{:time 224, :instrument 14, :pitch 68}{:time 223, :instrument 14, :pitch 70}{:time 221.5, :instrument 14, :pitch 68}{:time 220, :instrument 14, :pitch 70}{:time 219, :instrument 14, :pitch 70}{:time 216, :instrument 14, :pitch 70}{:time 215, :instrument 14, :pitch 70}{:time 211, :instrument 14, :pitch 72}{:time 212, :instrument 14, :pitch 70}{:time 208, :instrument 14, :pitch 75}{:time 207, :instrument 14, :pitch 72}{:time 205.5, :instrument 14, :pitch 74}{:time 204, :instrument 14, :pitch 75}{:time 203, :instrument 14, :pitch 75}{:time 200, :instrument 14, :pitch 75}{:time 199, :instrument 14, :pitch 74}{:time 198, :instrument 14, :pitch 72}{:time 197, :instrument 14, :pitch 70}{:time 196, :instrument 14, :pitch 68}{:time 195, :instrument 14, :pitch 68}{:time 192, :instrument 14, :pitch 68}{:time 191, :instrument 14, :pitch 74}{:time 189.5, :instrument 14, :pitch 72}{:time 188, :instrument 14, :pitch 70}{:time 184, :instrument 14, :pitch 70}{:time 183, :instrument 14, :pitch 69}{:time 182, :instrument 14, :pitch 67}{:time 181, :instrument 14, :pitch 65}{:time 180, :instrument 14, :pitch 64}{:time 178, :instrument 14, :pitch 64}{:time 168, :instrument 14, :pitch 64}{:time 167, :instrument 14, :pitch 62}{:time 166, :instrument 14, :pitch 64}{:time 164, :instrument 14, :pitch 64}{:time 144, :instrument 14, :pitch 67}{:time 143, :instrument 14, :pitch 65}{:time 142, :instrument 14, :pitch 64}{:time 141, :instrument 14, :pitch 62}{:time 140, :instrument 14, :pitch 60}{:time 138, :instrument 14, :pitch 60}{:time 132, :instrument 14, :pitch 55}{:time 128, :instrument 14, :pitch 60}{:time 112, :instrument 14, :pitch 67}{:time 111, :instrument 14, :pitch 65}{:time 110, :instrument 14, :pitch 64}{:time 109, :instrument 14, :pitch 62}{:time 108, :instrument 14, :pitch 60}{:time 106, :instrument 14, :pitch 60}{:time 100, :instrument 14, :pitch 55}{:time 96, :instrument 14, :pitch 60}{:time 377.5, :instrument 14, :pitch 67}{:time 379, :instrument 14, :pitch 67}{:time 380, :instrument 14, :pitch 67}{:time 381.5, :instrument 14, :pitch 67}{:time 383, :instrument 14, :pitch 67}{:time 384, :instrument 14, :pitch 54}{:time 385.5, :instrument 14, :pitch 60}{:time 387, :instrument 14, :pitch 63}{:time 388, :instrument 14, :pitch 66}{:time 389.5, :instrument 14, :pitch 72}{:time 391, :instrument 14, :pitch 75}{:time 392, :instrument 14, :pitch 78}{:time 394, :instrument 14, :pitch 78}{:time 395, :instrument 14, :pitch 78}{:time 396, :instrument 14, :pitch 78}{:time 397.5, :instrument 14, :pitch 78}{:time 399, :instrument 14, :pitch 78}{:time 400, :instrument 14, :pitch 79}{:time 404, :instrument 14, :pitch 67}{:time 405.5, :instrument 14, :pitch 67}{:time 407, :instrument 14, :pitch 67}{:time 408, :instrument 14, :pitch 67}{:time 409.5, :instrument 14, :pitch 67}{:time 411, :instrument 14, :pitch 67}{:time 412, :instrument 14, :pitch 67}{:time 413.5, :instrument 14, :pitch 67}{:time 415, :instrument 14, :pitch 67}{:time 416, :instrument 14, :pitch 68}{:time 417.5, :instrument 14, :pitch 68}{:time 419, :instrument 14, :pitch 68}{:time 420, :instrument 14, :pitch 68}{:time 421.5, :instrument 14, :pitch 68}{:time 423, :instrument 14, :pitch 68}{:time 424, :instrument 14, :pitch 68}{:time 425.5, :instrument 14, :pitch 68}{:time 427, :instrument 14, :pitch 68}{:time 428, :instrument 14, :pitch 73}{:time 429.5, :instrument 14, :pitch 73}{:time 431, :instrument 14, :pitch 73}{:time 432, :instrument 14, :pitch 72}{:time 433.5, :instrument 14, :pitch 72}{:time 435, :instrument 14, :pitch 72}{:time 436, :instrument 14, :pitch 67}{:time 437.5, :instrument 14, :pitch 67}{:time 439, :instrument 14, :pitch 67}{:time 440, :instrument 14, :pitch 67}{:time 441.5, :instrument 14, :pitch 67}{:time 443, :instrument 14, :pitch 67}{:time 444, :instrument 14, :pitch 63}{:time 445.5, :instrument 14, :pitch 63}{:time 447, :instrument 14, :pitch 63}{:time 448, :instrument 14, :pitch 66}{:time 449.5, :instrument 14, :pitch 66}{:time 451, :instrument 14, :pitch 66}{:time 452, :instrument 14, :pitch 66}{:time 453.5, :instrument 14, :pitch 66}{:time 455, :instrument 14, :pitch 67}{:time 456, :instrument 14, :pitch 69}{:time 457.5, :instrument 14, :pitch 69}{:time 459, :instrument 14, :pitch 71}{:time 460, :instrument 14, :pitch 72}{:time 462, :instrument 14, :pitch 74}{:time 464, :instrument 14, :pitch 71}{:time 468, :instrument 14, :pitch 70}{:time 469.5, :instrument 14, :pitch 70}{:time 471, :instrument 14, :pitch 70}{:time 472, :instrument 14, :pitch 69}{:time 473.5, :instrument 14, :pitch 69}{:time 475, :instrument 14, :pitch 69}{:time 476, :instrument 14, :pitch 68}{:time 477.5, :instrument 14, :pitch 68}{:time 479, :instrument 14, :pitch 68}{:time 480, :instrument 14, :pitch 67}{:time 160, :instrument 14, :pitch 67}{:time 162, :instrument 14, :pitch 67}{:time 163, :instrument 14, :pitch 60}{:time 164, :instrument 14, :pitch 67}{:time 160, :instrument 14, :pitch 64}{:time 171, :instrument 14, :pitch 64}{:time 172, :instrument 14, :pitch 64}{:time 173, :instrument 14, :pitch 65}{:time 174, :instrument 14, :pitch 67}{:time 175, :instrument 14, :pitch 69}{:time 176, :instrument 14, :pitch 70}{:time 179, :instrument 14, :pitch 72}{:time 180, :instrument 14, :pitch 72}{:time 181, :instrument 14, :pitch 74}{:time 182, :instrument 14, :pitch 76}{:time 183, :instrument 14, :pitch 77}{:time 184, :instrument 14, :pitch 79}{:time 192, :instrument 14, :pitch 72}{:time 194, :instrument 14, :pitch 72}{:time 195, :instrument 14, :pitch 72}{:time 196, :instrument 14, :pitch 72}{:time 197.5, :instrument 14, :pitch 72}{:time 199, :instrument 14, :pitch 72}{:time 200, :instrument 14, :pitch 72}{:time 201.5, :instrument 14, :pitch 72}{:time 203, :instrument 14, :pitch 72}{:time 204, :instrument 14, :pitch 72}{:time 205.5, :instrument 14, :pitch 70}{:time 207, :instrument 14, :pitch 68}{:time 208, :instrument 14, :pitch 70}{:time 211, :instrument 14, :pitch 68}{:time 212, :instrument 14, :pitch 67}{:time 213.5, :instrument 14, :pitch 67}{:time 215, :instrument 14, :pitch 67}{:time 216, :instrument 14, :pitch 67}{:time 217.5, :instrument 14, :pitch 67}{:time 219, :instrument 14, :pitch 67}{:time 220, :instrument 14, :pitch 67}{:time 221.5, :instrument 14, :pitch 67}{:time 223, :instrument 14, :pitch 67}{:time 224, :instrument 14, :pitch 65}{:time 227, :instrument 14, :pitch 67}{:time 228, :instrument 14, :pitch 68}{:time 229.5, :instrument 14, :pitch 68}{:time 231, :instrument 14, :pitch 68}{:time 226, :instrument 14, :pitch 65}{:time 120, :instrument 6, :pitch 67}{:time 119, :instrument 6, :pitch 65}{:time 118, :instrument 6, :pitch 64}{:time 117, :instrument 6, :pitch 62}{:time 116, :instrument 6, :pitch 60}{:time 114, :instrument 6, :pitch 60}{:time 152, :instrument 6, :pitch 67}{:time 151, :instrument 6, :pitch 65}{:time 150, :instrument 6, :pitch 64}{:time 149, :instrument 6, :pitch 62}{:time 148, :instrument 6, :pitch 60}{:time 146, :instrument 6, :pitch 60}{:time 64, :instrument 13, :pitch 66}{:time 71, :instrument 13, :pitch 66}{:time 70, :instrument 13, :pitch 66}{:time 68, :instrument 13, :pitch 66}{:time 67, :instrument 13, :pitch 66}{:time 66, :instrument 13, :pitch 66}{:time 72, :instrument 13, :pitch 66}{:time 79, :instrument 13, :pitch 66}{:time 78, :instrument 13, :pitch 66}{:time 76, :instrument 13, :pitch 66}{:time 75, :instrument 13, :pitch 66}{:time 74, :instrument 13, :pitch 66}{:time 80, :instrument 13, :pitch 66}{:time 87, :instrument 13, :pitch 66}{:time 86, :instrument 13, :pitch 66}{:time 84, :instrument 13, :pitch 66}{:time 83, :instrument 13, :pitch 66}{:time 82, :instrument 13, :pitch 66}{:time 88, :instrument 13, :pitch 66}{:time 95, :instrument 13, :pitch 66}{:time 94, :instrument 13, :pitch 66}{:time 92, :instrument 13, :pitch 66}{:time 91, :instrument 13, :pitch 66}{:time 90, :instrument 13, :pitch 66}{:time 96, :instrument 13, :pitch 66}{:time 103, :instrument 13, :pitch 66}{:time 102, :instrument 13, :pitch 66}{:time 100, :instrument 13, :pitch 66}{:time 99, :instrument 13, :pitch 66}{:time 98, :instrument 13, :pitch 66}{:time 104, :instrument 13, :pitch 66}{:time 111, :instrument 13, :pitch 66}{:time 110, :instrument 13, :pitch 66}{:time 108, :instrument 13, :pitch 66}{:time 107, :instrument 13, :pitch 66}{:time 106, :instrument 13, :pitch 66}{:time 112, :instrument 13, :pitch 66}{:time 119, :instrument 13, :pitch 66}{:time 118, :instrument 13, :pitch 66}{:time 116, :instrument 13, :pitch 66}{:time 115, :instrument 13, :pitch 66}{:time 114, :instrument 13, :pitch 66}{:time 120, :instrument 13, :pitch 66}{:time 127, :instrument 13, :pitch 66}{:time 126, :instrument 13, :pitch 66}{:time 124, :instrument 13, :pitch 66}{:time 123, :instrument 13, :pitch 66}{:time 122, :instrument 13, :pitch 66}{:time 128, :instrument 13, :pitch 66}{:time 135, :instrument 13, :pitch 66}{:time 134, :instrument 13, :pitch 66}{:time 132, :instrument 13, :pitch 66}{:time 131, :instrument 13, :pitch 66}{:time 130, :instrument 13, :pitch 66}{:time 136, :instrument 13, :pitch 66}{:time 143, :instrument 13, :pitch 66}{:time 142, :instrument 13, :pitch 66}{:time 140, :instrument 13, :pitch 66}{:time 139, :instrument 13, :pitch 66}{:time 138, :instrument 13, :pitch 66}{:time 144, :instrument 13, :pitch 66}{:time 151, :instrument 13, :pitch 66}{:time 150, :instrument 13, :pitch 66}{:time 148, :instrument 13, :pitch 66}{:time 147, :instrument 13, :pitch 66}{:time 146, :instrument 13, :pitch 66}{:time 152, :instrument 13, :pitch 66}{:time 159, :instrument 13, :pitch 66}{:time 158, :instrument 13, :pitch 66}{:time 156, :instrument 13, :pitch 66}{:time 155, :instrument 13, :pitch 66}{:time 154, :instrument 13, :pitch 66}{:time 160, :instrument 13, :pitch 66}{:time 167, :instrument 13, :pitch 66}{:time 166, :instrument 13, :pitch 66}{:time 164, :instrument 13, :pitch 66}{:time 163, :instrument 13, :pitch 66}{:time 162, :instrument 13, :pitch 66}{:time 168, :instrument 13, :pitch 66}{:time 175, :instrument 13, :pitch 66}{:time 174, :instrument 13, :pitch 66}{:time 172, :instrument 13, :pitch 66}{:time 171, :instrument 13, :pitch 66}{:time 170, :instrument 13, :pitch 66}{:time 176, :instrument 13, :pitch 66}{:time 183, :instrument 13, :pitch 66}{:time 182, :instrument 13, :pitch 66}{:time 180, :instrument 13, :pitch 66}{:time 179, :instrument 13, :pitch 66}{:time 178, :instrument 13, :pitch 66}{:time 184, :instrument 13, :pitch 66}{:time 191, :instrument 13, :pitch 66}{:time 190, :instrument 13, :pitch 66}{:time 188, :instrument 13, :pitch 66}{:time 187, :instrument 13, :pitch 66}{:time 186, :instrument 13, :pitch 66}{:time 192, :instrument 13, :pitch 66}{:time 199, :instrument 13, :pitch 66}{:time 198, :instrument 13, :pitch 66}{:time 196, :instrument 13, :pitch 66}{:time 195, :instrument 13, :pitch 66}{:time 194, :instrument 13, :pitch 66}{:time 200, :instrument 13, :pitch 66}{:time 207, :instrument 13, :pitch 66}{:time 206, :instrument 13, :pitch 66}{:time 204, :instrument 13, :pitch 66}{:time 203, :instrument 13, :pitch 66}{:time 202, :instrument 13, :pitch 66}{:time 208, :instrument 13, :pitch 66}{:time 215, :instrument 13, :pitch 66}{:time 214, :instrument 13, :pitch 66}{:time 212, :instrument 13, :pitch 66}{:time 211, :instrument 13, :pitch 66}{:time 210, :instrument 13, :pitch 66}{:time 216, :instrument 13, :pitch 66}{:time 223, :instrument 13, :pitch 66}{:time 222, :instrument 13, :pitch 66}{:time 220, :instrument 13, :pitch 66}{:time 219, :instrument 13, :pitch 66}{:time 218, :instrument 13, :pitch 66}{:time 224, :instrument 13, :pitch 66}{:time 231, :instrument 13, :pitch 66}{:time 230, :instrument 13, :pitch 66}{:time 228, :instrument 13, :pitch 66}{:time 227, :instrument 13, :pitch 66}{:time 226, :instrument 13, :pitch 66}{:time 232, :instrument 13, :pitch 66}{:time 239, :instrument 13, :pitch 66}{:time 238, :instrument 13, :pitch 66}{:time 236, :instrument 13, :pitch 66}{:time 235, :instrument 13, :pitch 66}{:time 234, :instrument 13, :pitch 66}{:time 240, :instrument 13, :pitch 66}{:time 247, :instrument 13, :pitch 66}{:time 246, :instrument 13, :pitch 66}{:time 244, :instrument 13, :pitch 66}{:time 243, :instrument 13, :pitch 66}{:time 242, :instrument 13, :pitch 66}{:time 248, :instrument 13, :pitch 66}{:time 255, :instrument 13, :pitch 66}{:time 254, :instrument 13, :pitch 66}{:time 252, :instrument 13, :pitch 66}{:time 251, :instrument 13, :pitch 66}{:time 250, :instrument 13, :pitch 66}{:time 256, :instrument 13, :pitch 66}{:time 263, :instrument 13, :pitch 66}{:time 262, :instrument 13, :pitch 66}{:time 260, :instrument 13, :pitch 66}{:time 259, :instrument 13, :pitch 66}{:time 258, :instrument 13, :pitch 66}{:time 264, :instrument 13, :pitch 66}{:time 271, :instrument 13, :pitch 66}{:time 270, :instrument 13, :pitch 66}{:time 268, :instrument 13, :pitch 66}{:time 267, :instrument 13, :pitch 66}{:time 266, :instrument 13, :pitch 66}{:time 272, :instrument 13, :pitch 66}{:time 279, :instrument 13, :pitch 66}{:time 278, :instrument 13, :pitch 66}{:time 276, :instrument 13, :pitch 66}{:time 275, :instrument 13, :pitch 66}{:time 274, :instrument 13, :pitch 66}{:time 280, :instrument 13, :pitch 66}{:time 287, :instrument 13, :pitch 66}{:time 286, :instrument 13, :pitch 66}{:time 284, :instrument 13, :pitch 66}{:time 283, :instrument 13, :pitch 66}{:time 282, :instrument 13, :pitch 66}{:time 288, :instrument 13, :pitch 66}{:time 295, :instrument 13, :pitch 66}{:time 294, :instrument 13, :pitch 66}{:time 292, :instrument 13, :pitch 66}{:time 291, :instrument 13, :pitch 66}{:time 290, :instrument 13, :pitch 66}{:time 296, :instrument 13, :pitch 66}{:time 303, :instrument 13, :pitch 66}{:time 302, :instrument 13, :pitch 66}{:time 300, :instrument 13, :pitch 66}{:time 299, :instrument 13, :pitch 66}{:time 298, :instrument 13, :pitch 66}{:time 304, :instrument 13, :pitch 66}{:time 311, :instrument 13, :pitch 66}{:time 310, :instrument 13, :pitch 66}{:time 308, :instrument 13, :pitch 66}{:time 307, :instrument 13, :pitch 66}{:time 306, :instrument 13, :pitch 66}{:time 312, :instrument 13, :pitch 66}{:time 319, :instrument 13, :pitch 66}{:time 318, :instrument 13, :pitch 66}{:time 316, :instrument 13, :pitch 66}{:time 315, :instrument 13, :pitch 66}{:time 314, :instrument 13, :pitch 66}{:time 320, :instrument 13, :pitch 66}{:time 327, :instrument 13, :pitch 66}{:time 326, :instrument 13, :pitch 66}{:time 324, :instrument 13, :pitch 66}{:time 323, :instrument 13, :pitch 66}{:time 322, :instrument 13, :pitch 66}{:time 328, :instrument 13, :pitch 66}{:time 335, :instrument 13, :pitch 66}{:time 334, :instrument 13, :pitch 66}{:time 332, :instrument 13, :pitch 66}{:time 331, :instrument 13, :pitch 66}{:time 330, :instrument 13, :pitch 66}{:time 336, :instrument 13, :pitch 66}{:time 343, :instrument 13, :pitch 66}{:time 342, :instrument 13, :pitch 66}{:time 340, :instrument 13, :pitch 66}{:time 339, :instrument 13, :pitch 66}{:time 338, :instrument 13, :pitch 66}{:time 344, :instrument 13, :pitch 66}{:time 351, :instrument 13, :pitch 66}{:time 350, :instrument 13, :pitch 66}{:time 348, :instrument 13, :pitch 66}{:time 347, :instrument 13, :pitch 66}{:time 346, :instrument 13, :pitch 66}{:time 352, :instrument 13, :pitch 66}{:time 359, :instrument 13, :pitch 66}{:time 358, :instrument 13, :pitch 66}{:time 356, :instrument 13, :pitch 66}{:time 355, :instrument 13, :pitch 66}{:time 354, :instrument 13, :pitch 66}{:time 360, :instrument 13, :pitch 66}{:time 367, :instrument 13, :pitch 66}{:time 366, :instrument 13, :pitch 66}{:time 364, :instrument 13, :pitch 66}{:time 363, :instrument 13, :pitch 66}{:time 362, :instrument 13, :pitch 66}{:time 368, :instrument 13, :pitch 66}{:time 375, :instrument 13, :pitch 66}{:time 374, :instrument 13, :pitch 66}{:time 372, :instrument 13, :pitch 66}{:time 371, :instrument 13, :pitch 66}{:time 370, :instrument 13, :pitch 66}{:time 376, :instrument 13, :pitch 66}{:time 383, :instrument 13, :pitch 66}{:time 382, :instrument 13, :pitch 66}{:time 380, :instrument 13, :pitch 66}{:time 379, :instrument 13, :pitch 66}{:time 378, :instrument 13, :pitch 66}{:time 384, :instrument 13, :pitch 66}{:time 391, :instrument 13, :pitch 66}{:time 390, :instrument 13, :pitch 66}{:time 388, :instrument 13, :pitch 66}{:time 387, :instrument 13, :pitch 66}{:time 386, :instrument 13, :pitch 66}{:time 392, :instrument 13, :pitch 66}{:time 399, :instrument 13, :pitch 66}{:time 398, :instrument 13, :pitch 66}{:time 396, :instrument 13, :pitch 66}{:time 395, :instrument 13, :pitch 66}{:time 394, :instrument 13, :pitch 66}{:time 400, :instrument 13, :pitch 66}{:time 407, :instrument 13, :pitch 66}{:time 406, :instrument 13, :pitch 66}{:time 404, :instrument 13, :pitch 66}{:time 403, :instrument 13, :pitch 66}{:time 402, :instrument 13, :pitch 66}{:time 408, :instrument 13, :pitch 66}{:time 415, :instrument 13, :pitch 66}{:time 414, :instrument 13, :pitch 66}{:time 412, :instrument 13, :pitch 66}{:time 411, :instrument 13, :pitch 66}{:time 410, :instrument 13, :pitch 66}{:time 416, :instrument 13, :pitch 66}{:time 423, :instrument 13, :pitch 66}{:time 422, :instrument 13, :pitch 66}{:time 420, :instrument 13, :pitch 66}{:time 419, :instrument 13, :pitch 66}{:time 418, :instrument 13, :pitch 66}{:time 424, :instrument 13, :pitch 66}{:time 431, :instrument 13, :pitch 66}{:time 430, :instrument 13, :pitch 66}{:time 428, :instrument 13, :pitch 66}{:time 427, :instrument 13, :pitch 66}{:time 426, :instrument 13, :pitch 66}{:time 432, :instrument 13, :pitch 66}{:time 439, :instrument 13, :pitch 66}{:time 438, :instrument 13, :pitch 66}{:time 436, :instrument 13, :pitch 66}{:time 435, :instrument 13, :pitch 66}{:time 434, :instrument 13, :pitch 66}{:time 440, :instrument 13, :pitch 66}{:time 447, :instrument 13, :pitch 66}{:time 446, :instrument 13, :pitch 66}{:time 444, :instrument 13, :pitch 66}{:time 443, :instrument 13, :pitch 66}{:time 442, :instrument 13, :pitch 66}{:time 448, :instrument 13, :pitch 66}{:time 455, :instrument 13, :pitch 66}{:time 454, :instrument 13, :pitch 66}{:time 452, :instrument 13, :pitch 66}{:time 451, :instrument 13, :pitch 66}{:time 450, :instrument 13, :pitch 66}{:time 456, :instrument 13, :pitch 66}{:time 463, :instrument 13, :pitch 66}{:time 462, :instrument 13, :pitch 66}{:time 460, :instrument 13, :pitch 66}{:time 459, :instrument 13, :pitch 66}{:time 458, :instrument 13, :pitch 66}{:time 464, :instrument 13, :pitch 66}{:time 471, :instrument 13, :pitch 66}{:time 470, :instrument 13, :pitch 66}{:time 468, :instrument 13, :pitch 66}{:time 467, :instrument 13, :pitch 66}{:time 466, :instrument 13, :pitch 66}{:time 472, :instrument 13, :pitch 66}{:time 479, :instrument 13, :pitch 66}{:time 478, :instrument 13, :pitch 66}{:time 476, :instrument 13, :pitch 66}{:time 475, :instrument 13, :pitch 66}{:time 474, :instrument 13, :pitch 66}{:time 160, :instrument 2, :pitch 60}{:time 167, :instrument 2, :pitch 60}{:time 166, :instrument 2, :pitch 60}{:time 164, :instrument 2, :pitch 60}{:time 163, :instrument 2, :pitch 60}{:time 162, :instrument 2, :pitch 60}{:time 168, :instrument 2, :pitch 60}{:time 175, :instrument 2, :pitch 60}{:time 174, :instrument 2, :pitch 60}{:time 172, :instrument 2, :pitch 60}{:time 171, :instrument 2, :pitch 60}{:time 170, :instrument 2, :pitch 60}{:time 176, :instrument 2, :pitch 60}{:time 183, :instrument 2, :pitch 60}{:time 182, :instrument 2, :pitch 60}{:time 180, :instrument 2, :pitch 60}{:time 179, :instrument 2, :pitch 60}{:time 178, :instrument 2, :pitch 60}{:time 184, :instrument 2, :pitch 60}{:time 191, :instrument 2, :pitch 60}{:time 190, :instrument 2, :pitch 60}{:time 188, :instrument 2, :pitch 60}{:time 187, :instrument 2, :pitch 60}{:time 186, :instrument 2, :pitch 60}{:time 192, :instrument 2, :pitch 60}{:time 199, :instrument 2, :pitch 60}{:time 198, :instrument 2, :pitch 60}{:time 196, :instrument 2, :pitch 60}{:time 195, :instrument 2, :pitch 60}{:time 194, :instrument 2, :pitch 60}{:time 200, :instrument 2, :pitch 60}{:time 207, :instrument 2, :pitch 60}{:time 206, :instrument 2, :pitch 60}{:time 204, :instrument 2, :pitch 60}{:time 203, :instrument 2, :pitch 60}{:time 202, :instrument 2, :pitch 60}{:time 208, :instrument 2, :pitch 60}{:time 215, :instrument 2, :pitch 60}{:time 214, :instrument 2, :pitch 60}{:time 212, :instrument 2, :pitch 60}{:time 211, :instrument 2, :pitch 60}{:time 210, :instrument 2, :pitch 60}{:time 216, :instrument 2, :pitch 60}{:time 223, :instrument 2, :pitch 60}{:time 222, :instrument 2, :pitch 60}{:time 220, :instrument 2, :pitch 60}{:time 219, :instrument 2, :pitch 60}{:time 218, :instrument 2, :pitch 60}{:time 224, :instrument 2, :pitch 60}{:time 231, :instrument 2, :pitch 60}{:time 230, :instrument 2, :pitch 60}{:time 228, :instrument 2, :pitch 60}{:time 227, :instrument 2, :pitch 60}{:time 226, :instrument 2, :pitch 60}{:time 232, :instrument 2, :pitch 60}{:time 239, :instrument 2, :pitch 60}{:time 238, :instrument 2, :pitch 60}{:time 236, :instrument 2, :pitch 60}{:time 235, :instrument 2, :pitch 60}{:time 234, :instrument 2, :pitch 60}{:time 240, :instrument 2, :pitch 60}{:time 247, :instrument 2, :pitch 60}{:time 246, :instrument 2, :pitch 60}{:time 244, :instrument 2, :pitch 60}{:time 243, :instrument 2, :pitch 60}{:time 242, :instrument 2, :pitch 60}{:time 248, :instrument 2, :pitch 60}{:time 255, :instrument 2, :pitch 60}{:time 254, :instrument 2, :pitch 60}{:time 252, :instrument 2, :pitch 60}{:time 251, :instrument 2, :pitch 60}{:time 250, :instrument 2, :pitch 60}{:time 256, :instrument 2, :pitch 60}{:time 263, :instrument 2, :pitch 60}{:time 262, :instrument 2, :pitch 60}{:time 260, :instrument 2, :pitch 60}{:time 259, :instrument 2, :pitch 60}{:time 258, :instrument 2, :pitch 60}{:time 264, :instrument 2, :pitch 60}{:time 271, :instrument 2, :pitch 60}{:time 270, :instrument 2, :pitch 60}{:time 268, :instrument 2, :pitch 60}{:time 267, :instrument 2, :pitch 60}{:time 266, :instrument 2, :pitch 60}{:time 272, :instrument 2, :pitch 60}{:time 279, :instrument 2, :pitch 60}{:time 278, :instrument 2, :pitch 60}{:time 276, :instrument 2, :pitch 60}{:time 275, :instrument 2, :pitch 60}{:time 274, :instrument 2, :pitch 60}{:time 280, :instrument 2, :pitch 60}{:time 287, :instrument 2, :pitch 60}{:time 286, :instrument 2, :pitch 60}{:time 284, :instrument 2, :pitch 60}{:time 283, :instrument 2, :pitch 60}{:time 282, :instrument 2, :pitch 60}{:time 288, :instrument 2, :pitch 60}{:time 295, :instrument 2, :pitch 60}{:time 294, :instrument 2, :pitch 60}{:time 292, :instrument 2, :pitch 60}{:time 291, :instrument 2, :pitch 60}{:time 290, :instrument 2, :pitch 60}{:time 296, :instrument 2, :pitch 60}{:time 303, :instrument 2, :pitch 60}{:time 302, :instrument 2, :pitch 60}{:time 300, :instrument 2, :pitch 60}{:time 299, :instrument 2, :pitch 60}{:time 298, :instrument 2, :pitch 60}{:time 304, :instrument 2, :pitch 60}{:time 311, :instrument 2, :pitch 60}{:time 310, :instrument 2, :pitch 60}{:time 308, :instrument 2, :pitch 60}{:time 307, :instrument 2, :pitch 60}{:time 306, :instrument 2, :pitch 60}{:time 312, :instrument 2, :pitch 60}{:time 319, :instrument 2, :pitch 60}{:time 318, :instrument 2, :pitch 60}{:time 316, :instrument 2, :pitch 60}{:time 315, :instrument 2, :pitch 60}{:time 314, :instrument 2, :pitch 60}{:time 320, :instrument 2, :pitch 60}{:time 327, :instrument 2, :pitch 60}{:time 326, :instrument 2, :pitch 60}{:time 324, :instrument 2, :pitch 60}{:time 323, :instrument 2, :pitch 60}{:time 322, :instrument 2, :pitch 60}{:time 328, :instrument 2, :pitch 60}{:time 335, :instrument 2, :pitch 60}{:time 334, :instrument 2, :pitch 60}{:time 332, :instrument 2, :pitch 60}{:time 331, :instrument 2, :pitch 60}{:time 330, :instrument 2, :pitch 60}{:time 336, :instrument 2, :pitch 60}{:time 343, :instrument 2, :pitch 60}{:time 342, :instrument 2, :pitch 60}{:time 340, :instrument 2, :pitch 60}{:time 339, :instrument 2, :pitch 60}{:time 338, :instrument 2, :pitch 60}{:time 344, :instrument 2, :pitch 60}{:time 351, :instrument 2, :pitch 60}{:time 350, :instrument 2, :pitch 60}{:time 348, :instrument 2, :pitch 60}{:time 347, :instrument 2, :pitch 60}{:time 346, :instrument 2, :pitch 60}{:time 352, :instrument 2, :pitch 60}{:time 359, :instrument 2, :pitch 60}{:time 358, :instrument 2, :pitch 60}{:time 356, :instrument 2, :pitch 60}{:time 355, :instrument 2, :pitch 60}{:time 354, :instrument 2, :pitch 60}{:time 360, :instrument 2, :pitch 60}{:time 367, :instrument 2, :pitch 60}{:time 366, :instrument 2, :pitch 60}{:time 364, :instrument 2, :pitch 60}{:time 363, :instrument 2, :pitch 60}{:time 362, :instrument 2, :pitch 60}{:time 368, :instrument 2, :pitch 60}{:time 375, :instrument 2, :pitch 60}{:time 374, :instrument 2, :pitch 60}{:time 372, :instrument 2, :pitch 60}{:time 371, :instrument 2, :pitch 60}{:time 370, :instrument 2, :pitch 60}{:time 376, :instrument 2, :pitch 60}{:time 383, :instrument 2, :pitch 60}{:time 382, :instrument 2, :pitch 60}{:time 380, :instrument 2, :pitch 60}{:time 379, :instrument 2, :pitch 60}{:time 378, :instrument 2, :pitch 60}{:time 384, :instrument 2, :pitch 60}{:time 391, :instrument 2, :pitch 60}{:time 390, :instrument 2, :pitch 60}{:time 388, :instrument 2, :pitch 60}{:time 387, :instrument 2, :pitch 60}{:time 386, :instrument 2, :pitch 60}{:time 392, :instrument 2, :pitch 60}{:time 399, :instrument 2, :pitch 60}{:time 398, :instrument 2, :pitch 60}{:time 396, :instrument 2, :pitch 60}{:time 395, :instrument 2, :pitch 60}{:time 394, :instrument 2, :pitch 60}{:time 400, :instrument 2, :pitch 60}{:time 407, :instrument 2, :pitch 60}{:time 406, :instrument 2, :pitch 60}{:time 404, :instrument 2, :pitch 60}{:time 403, :instrument 2, :pitch 60}{:time 402, :instrument 2, :pitch 60}{:time 408, :instrument 2, :pitch 60}{:time 415, :instrument 2, :pitch 60}{:time 414, :instrument 2, :pitch 60}{:time 412, :instrument 2, :pitch 60}{:time 411, :instrument 2, :pitch 60}{:time 410, :instrument 2, :pitch 60}{:time 416, :instrument 2, :pitch 60}{:time 423, :instrument 2, :pitch 60}{:time 422, :instrument 2, :pitch 60}{:time 420, :instrument 2, :pitch 60}{:time 419, :instrument 2, :pitch 60}{:time 418, :instrument 2, :pitch 60}{:time 424, :instrument 2, :pitch 60}{:time 431, :instrument 2, :pitch 60}{:time 430, :instrument 2, :pitch 60}{:time 428, :instrument 2, :pitch 60}{:time 427, :instrument 2, :pitch 60}{:time 426, :instrument 2, :pitch 60}{:time 432, :instrument 2, :pitch 60}{:time 439, :instrument 2, :pitch 60}{:time 438, :instrument 2, :pitch 60}{:time 436, :instrument 2, :pitch 60}{:time 435, :instrument 2, :pitch 60}{:time 434, :instrument 2, :pitch 60}{:time 440, :instrument 2, :pitch 60}{:time 447, :instrument 2, :pitch 60}{:time 446, :instrument 2, :pitch 60}{:time 444, :instrument 2, :pitch 60}{:time 443, :instrument 2, :pitch 60}{:time 442, :instrument 2, :pitch 60}{:time 448, :instrument 2, :pitch 60}{:time 455, :instrument 2, :pitch 60}{:time 454, :instrument 2, :pitch 60}{:time 452, :instrument 2, :pitch 60}{:time 451, :instrument 2, :pitch 60}{:time 450, :instrument 2, :pitch 60}{:time 456, :instrument 2, :pitch 60}{:time 463, :instrument 2, :pitch 60}{:time 462, :instrument 2, :pitch 60}{:time 460, :instrument 2, :pitch 60}{:time 459, :instrument 2, :pitch 60}{:time 458, :instrument 2, :pitch 60}{:time 464, :instrument 2, :pitch 60}{:time 471, :instrument 2, :pitch 60}{:time 470, :instrument 2, :pitch 60}{:time 468, :instrument 2, :pitch 60}{:time 467, :instrument 2, :pitch 60}{:time 466, :instrument 2, :pitch 60}{:time 472, :instrument 2, :pitch 60}{:time 479, :instrument 2, :pitch 60}{:time 478, :instrument 2, :pitch 60}{:time 476, :instrument 2, :pitch 60}{:time 475, :instrument 2, :pitch 60}{:time 474, :instrument 2, :pitch 60}{:time 480, :instrument 15, :pitch 60}{:time 484, :instrument 15, :pitch 67}{:time 488, :instrument 15, :pitch 72}{:time 496, :instrument 15, :pitch 58}{:time 500, :instrument 15, :pitch 65}{:time 504, :instrument 15, :pitch 70}{:time 512, :instrument 15, :pitch 56}{:time 516, :instrument 15, :pitch 63}{:time 520, :instrument 15, :pitch 68}{:time 528, :instrument 15, :pitch 55}{:time 532, :instrument 15, :pitch 62}{:time 536, :instrument 15, :pitch 67}{:time 546, :instrument 12, :pitch 60}{:time 544, :instrument 12, :pitch 63}{:time 543.5, :instrument 12, :pitch 60}{:time 543, :instrument 12, :pitch 55}{:time 530, :instrument 12, :pitch 71}{:time 529, :instrument 12, :pitch 69}{:time 528, :instrument 12, :pitch 71}{:time 526, :instrument 12, :pitch 72}{:time 524, :instrument 12, :pitch 68}{:time 522, :instrument 12, :pitch 68}{:time 512, :instrument 12, :pitch 72}{:time 511.5, :instrument 12, :pitch 68}{:time 511, :instrument 12, :pitch 63}{:time 498, :instrument 12, :pitch 70}{:time 497, :instrument 12, :pitch 68}{:time 492, :instrument 12, :pitch 67}{:time 496, :instrument 12, :pitch 70}{:time 494, :instrument 12, :pitch 72}{:time 490, :instrument 12, :pitch 67}{:time 480, :instrument 12, :pitch 72}] #_(concat bass1 bass2 lead1 car1 gb1 drums (concat (bass-triad 480 60) (bass-triad 496 58) (bass-triad 512 56) (bass-triad 528 55)) (map #(delay-note 480 %) lead1))) ================================================ FILE: src/mecca/songs/zeldajson.cljs ================================================ (ns mecca.songs.zeldajson) (def zelda-json "{ \"formatType\": 1, \"tracks\": 5, \"track\": [ { \"event\": [ { \"deltaTime\": 0, \"type\": 255, \"metaType\": 88, \"data\": [ 4, 2, 96, 8 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 127, \"data\": 65407 }, { \"deltaTime\": 5, \"type\": 255, \"metaType\": 0, \"data\": -1 }, { \"deltaTime\": 119, \"type\": 255, \"metaType\": 14, \"data\": -1 }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 81, \"data\": 681818 }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 47 } ] }, { \"event\": [ { \"deltaTime\": 0, \"type\": 11, \"channel\": 0, \"data\": [ 0, 0 ] }, { \"deltaTime\": 0, \"type\": 12, \"channel\": 0, \"data\": 71 }, { \"deltaTime\": 0, \"type\": 11, \"channel\": 0, \"data\": [ 7, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 89, \"data\": 65024 }, { \"deltaTime\": 0, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 952, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 68, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 66, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 68, 100 ] }, { \"deltaTime\": 1344, \"type\": 8, \"channel\": 0, \"data\": [ 68, 100 ] }, { \"deltaTime\": 0, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 952, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 0, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 69, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 69, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 67, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 69, 100 ] }, { \"deltaTime\": 1344, \"type\": 8, \"channel\": 0, \"data\": [ 69, 100 ] }, { \"deltaTime\": 0, \"type\": 9, \"channel\": 0, \"data\": [ 49, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 49, 100 ] }, { \"deltaTime\": 1156, \"type\": 9, \"channel\": 0, \"data\": [ 49, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 49, 100 ] }, { \"deltaTime\": 1156, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 100, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 376, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 200, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 1252, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 100, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 376, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 200, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 1252, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 572, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 952, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 1016, \"type\": 8, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 252, \"type\": 8, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 76, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 76, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 79, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 79, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 572, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 952, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 0, \"data\": [ 80, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 1148, \"type\": 8, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 85, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 85, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 84, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 84, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 81, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 81, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 1148, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 81, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 81, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 1148, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 82, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 81, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 81, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 1148, \"type\": 8, \"channel\": 0, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 78, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 76, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 0, \"data\": [ 76, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 79, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 0, \"data\": [ 79, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 0, \"data\": [ 65, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 47 } ] }, { \"event\": [ { \"deltaTime\": 0, \"type\": 11, \"channel\": 1, \"data\": [ 0, 0 ] }, { \"deltaTime\": 0, \"type\": 12, \"channel\": 1, \"data\": 71 }, { \"deltaTime\": 0, \"type\": 11, \"channel\": 1, \"data\": [ 7, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 89, \"data\": 65024 }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 952, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 1344, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 0, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 952, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 8, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 1336, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 8, \"type\": 8, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 180, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 51, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 77, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 252, \"type\": 8, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 252, \"type\": 8, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 252, \"type\": 8, \"channel\": 1, \"data\": [ 68, 99 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 60, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 62, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 63, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 284, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 74, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 74, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 75, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 77, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 77, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 68, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 1148, \"type\": 8, \"channel\": 1, \"data\": [ 73, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 76, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 76, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 75, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 75, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 40, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 52, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 52, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 61, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 61, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 40, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 52, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 52, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 58, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 61, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 61, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 124, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 1, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 1148, \"type\": 8, \"channel\": 1, \"data\": [ 66, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 71, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 71, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 61, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 61, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 64, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 65, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 67, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 69, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 70, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 72, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 57, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 56, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 1, \"data\": [ 55, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 1, \"data\": [ 54, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 47 } ] }, { \"event\": [ { \"deltaTime\": 0, \"type\": 11, \"channel\": 2, \"data\": [ 0, 0 ] }, { \"deltaTime\": 0, \"type\": 12, \"channel\": 2, \"data\": 24 }, { \"deltaTime\": 0, \"type\": 11, \"channel\": 2, \"data\": [ 7, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 89, \"data\": 65024 }, { \"deltaTime\": 0, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 58, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 2, \"data\": [ 58, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 51, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 51, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 56, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 2, \"data\": [ 56, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 54, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 2, \"data\": [ 54, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 380, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 764, \"type\": 8, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 49, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 43, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 43, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 45, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 45, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 44, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 40, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 47, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 46, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 48, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 53, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 2, \"data\": [ 41, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 43, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 43, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 2, \"data\": [ 45, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 2, \"data\": [ 45, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 47 } ] }, { \"event\": [ { \"deltaTime\": 0, \"type\": 255, \"metaType\": 3, \"data\": \"Drums\" }, { \"deltaTime\": 0, \"type\": 11, \"channel\": 9, \"data\": [ 0, 0 ] }, { \"deltaTime\": 0, \"type\": 12, \"channel\": 9, \"data\": 0 }, { \"deltaTime\": 0, \"type\": 11, \"channel\": 9, \"data\": [ 7, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 89, \"data\": 65024 }, { \"deltaTime\": 6144, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 188, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 4, \"type\": 9, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 92, \"type\": 8, \"channel\": 9, \"data\": [ 42, 100 ] }, { \"deltaTime\": 0, \"type\": 255, \"metaType\": 47 } ] } ], \"timeDivision\": 384 }") (def zeldaparsed (.parse js/JSON zelda-json)) (def zelda-clj (js->clj zeldaparsed :keywordize-keys true)) ================================================ FILE: src/mecca/subs.cljs ================================================ (ns mecca.subs (:require [re-frame.core :as rf :refer [reg-sub]])) (rf/reg-sub :scale (fn [db _] (:scale db))) (rf/reg-sub :audio-context (fn [db _] (:audio-context db))) (rf/reg-sub :eval-result (fn [db _] (:eval-result db))) (rf/reg-sub :status (fn [db _] (:status db))) (rf/reg-sub :samples (fn [db _] (:samples db))) (rf/reg-sub :file-upload (fn [db _] (:file-upload db))) (rf/reg-sub :playing? (fn [db _] (:playing? db))) (rf/reg-sub :sharp? (fn [db _] (:sharp? db))) (rf/reg-sub :loop-end (fn [db _] (:loop-end db))) (rf/reg-sub :repeat? (fn [db _] (:repeat? db))) (rf/reg-sub :eraser? (fn [db _] (:eraser? db))) (rf/reg-sub :play-start (fn [db _] (:play-start db))) (rf/reg-sub :jumping? (fn [db _] (:jumping? db))) (rf/reg-sub :tempo (fn [db _] (:tempo db))) (rf/reg-sub :time (fn [db _] ;; db is current app state. 2nd unused param is query vector (:time db))) (rf/reg-sub :octave (fn [db _] (:octave db))) (rf/reg-sub :key (fn [db _] (:key db))) (rf/reg-sub :current-position (fn [db _] (:current-position db))) (rf/reg-sub :current-note (fn [db _] (:current-note db))) (rf/reg-sub :editor-beat-start (fn [db _] (:editor-beat-start db))) (rf/reg-sub :next-note-time (fn [db _] (:next-note-time db))) (rf/reg-sub :time-signature (fn [db _] (:time-signature db))) (rf/reg-sub :instrument (fn [db _] (:instrument db))) (rf/reg-sub :array-buffer (fn [db _] (:array-buffer db))) (rf/reg-sub :focused-note-pos (fn [db _] (:focused-note-pos db))) (rf/reg-sub :notes (fn [db _] (:notes db))) (rf/reg-sub :mario-x (fn [db _] (:mario-x db))) (rf/reg-sub :mario-y (fn [db _] (:mario-y db))) (rf/reg-sub :mario-run (fn [db _] (:mario-run db))) (rf/reg-sub :mario-jump (fn [db _] (:mario-jump db))) (rf/reg-sub :xml (fn [db _] (:xml db))) ================================================ FILE: src/mecca/transport.cljs ================================================ (ns mecca.transport (:require [re-frame.core :refer [subscribe dispatch]] [mecca.music :as music])) (defn svg-paths ([paths] (svg-paths nil paths 0 0 1)) ([attrs paths] (svg-paths attrs paths 0 0 1)) ([paths x y] (svg-paths nil paths x y 1)) ([paths x y scale] (svg-paths nil paths x y scale)) ([attrs paths x y scale] (into [:g (merge attrs {:transform (str "scale(" scale ") translate(" x "," y ")")})] (for [[color path] paths] [:path {:stroke color :d path}])))) (def tempo-slider [["#686850" "M1 0h3M0 1h1M4 1h1M0 2h1M4 2h1M0 3h1M4 3h1M0 4h1M4 4h1M0 5h1M4 5h1M0 6h1M4 6h1M1 7h3"] ["#f8f8e8" "M1 1h2M1 2h1M1 3h1M1 4h1M1 5h1"] ["#c8d0a8" "M3 1h1M1 6h1"] ["#e0e8c0" "M2 2h1M2 3h1M2 4h1M2 5h1"] ["#a0a880" "M3 2h1M3 3h1M3 4h1M3 5h1"] ["#b0b890" "M2 6h2"]]) (defn tempo-up [x y scale] [:rect {:x x :y y :width (* scale 12) :height (* scale 12) :stroke "black" :stroke-width 1 :visibility "hidden" :pointer-events "all" :on-click #(dispatch [:inc-tempo])}]) (defn tempo-down [x y scale] [:rect {:x x :y y :width (* scale 12) :height (* scale 12) :stroke "black" :stroke-width 1 :visibility "hidden" :pointer-events "all" :on-click #(dispatch [:dec-tempo])}]) (defn stop-button [x y scale] (svg-paths {:on-click #(do (dispatch [:stop]) (music/play-sample 17 63))} (if @(subscribe [:playing?]) [["#737373" "M0 0h12M0 1h1M11 1h1M0 2h1M11 2h1M0 3h1M3 3h6M11 3h1M0 4h1M3 4h1M11 4h1M0 5h1M3 5h2M6 5h1M8 5h1M11 5h1M0 6h1M3 6h1M11 6h1M0 7h1M3 7h2M6 7h1M8 7h1M11 7h1M0 8h1M3 8h1M11 8h1M0 9h1M11 9h1M0 10h1M11 10h1M0 11h12"] ["#ffffff" "M1 1h1"] ["#ceefe7" "M2 1H3M4 1H7M8 1H11M1 2H2M1 3H2M1 4H2M1 5H2M1 6H2M1 7H2M1 8H2M1 9H2M1 10H2"] ["#d6d6d6" "M3 1h1M7 1h1M3 2h1M7 2h1M9 3h2M10 4h1M10 5h1M10 6h1M10 7h1M10 8h1M3 9h1M8 9h2M3 10h4M8 10h1M10 10h1"] ["#000000" "M12 1h1M13 2h1M13 3h1M13 4h1M13 5h1M13 6h1M13 7h1M13 8h1M13 9h1M13 10h1M13 11h1M1 12h1M12 12h2M2 13h11"] ["#c6c6c6" "M2 2h1M4 2h3M8 2h3M2 3h1M2 4h1M9 4h1M2 5h1M9 5h1M2 6h1M9 6h1M2 7h1M9 7h1M2 8h1M9 8h1M2 9h1M4 9h4M10 9h1M2 10h1M7 10h1M9 10h1"] ["#adadad" "M12 2h1M12 3h1M4 4h2M7 4h2M5 5h1M7 5h1M12 5h1M4 6h3M8 6h1M12 6h1M7 7h1M4 8h5M12 8h1M12 9h1M12 10h1M12 11h1M2 12h2M5 12h3M9 12h3"] ["#a5a5b5" "M6 4h1M12 4h1M7 6h1M5 7h1M12 7h1M4 12h1M8 12h1"]] [["#000000" "M0 0h12M0 1h1M11 1h1M0 2h1M11 2h1M0 3h1M11 3h1M0 4h1M11 4h1M0 5h1M11 5h1M0 6h1M11 6h1M0 7h1M11 7h1M0 8h1M11 8h1M0 9h1M11 9h1M0 10h1M11 10h1M0 11h12"] ["#a0c0b0" "M12 0h1M0 12h1"] ["#f8f8f8" "M1 1h9M1 2h1M1 3h1M1 4h1M1 5h1M1 6h1M1 7h1M1 8h1M1 9h1"] ["#f828f8" "M10 1h1M2 2h8M2 3h8M2 4h8M2 5h8M2 6h8M2 7h8M2 8h8M2 9h8M1 10h1"] ["#707070" "M12 1h1M12 2h1M12 3h1M12 4h1M12 5h1M12 6h1M12 7h1M12 8h1M12 9h1M12 10h1M12 11h1M1 12h12"] ["#a870d0" "M10 2h1M10 3h1M10 4h1M10 5h1M10 6h1M10 7h1M10 8h1M10 9h1M2 10h9"]]) x y scale)) (defn play-button [x y scale] (if @(subscribe [:playing?]) (svg-paths {:on-click #(do (dispatch [:pause]) (music/play-sample 17 63))} [["#000000" "M0 0h2M0 1h1M2 1h2M0 2h1M4 2h2M0 3h1M6 3h2M0 4h1M8 4h1M0 5h1M9 5h1M0 6h1M8 6h1M0 7h1M6 7h2M0 8h1M4 8h2M0 9h1M2 9h2M0 10h2"] ["#f8f8f8" "M1 1h1M1 2h3M1 3h1M4 3h2M1 4h1M6 4h2M1 5h1M8 5h1M1 6h1M1 7h1M1 8h1"] ["#f8f800" "M2 3h2M2 4h4M2 5h6M2 6h4M2 7h2"] ["#f89000" "M6 6h2M4 7h2M2 8h2M1 9h1"] ["#707070" "M9 6h2M8 7h2M6 8h3M4 9h3M2 10h3M1 11h2"]] x y scale) (svg-paths {:on-click #(do (dispatch [:play-on]) (music/play-sample 17 63))} [["#707070" "M0 0h2M0 1h1M2 1h2M0 2h1M4 2h2M0 3h1M2 3h2M6 3h2M0 4h1M2 4h1M4 4h2M8 4h1M0 5h1M2 5h1M6 5h1M9 5h1M0 6h1M2 6h1M4 6h2M8 6h1M0 7h1M2 7h2M6 7h2M10 7h1M0 8h1M4 8h2M9 8h2M0 9h1M2 9h2M8 9h2M0 10h2M6 10h3M0 11h1M4 11h3M2 12h3M1 13h2"] ["#a0c0b0" "M2 0h10M4 1h8M6 2h6M8 3h4M9 4h3M10 5h2M10 6h2M11 9h1M10 10h2M9 11h3M0 12h1M7 12h5M0 13h1M5 13h7M0 14h1M3 14h9"] ["#f8f8f8" "M1 1h1"] ["#c8e8e0" "M1 2h3M1 3h1M4 3h2M1 4h1M6 4h2M1 5h1M8 5h1M1 6h1M1 7h1M1 8h1M1 9h1"] ["#a8a8a8" "M3 4h1M3 5h3M3 6h1M8 7h1M11 7h1M6 8h2M11 8h1M4 9h2M10 9h1M2 10h2M9 10h1M1 11h1M7 11h2M5 12h2M3 13h2M1 14h2"] ["#d0d0d0" "M7 5h1M6 6h2M4 7h2M2 8h2"] ["#000000" "M9 6h1M9 7h1M8 8h1M6 9h2M4 10h2M2 11h2M1 12h1"]] x y scale))) (defn transport [x y scale] [:svg {:view-box "0 -0.5 70 20" :shape-rendering "crisp-edges" :style {:cursor "url(images/hand.png),pointer"}} (svg-paths [["#000000" "M2 0h136M1 1h2M137 1h2M0 2h2M138 2h2M0 3h1M139 3h1M0 4h1M139 4h1M0 5h1M6 5h128M139 5h1M0 6h1M5 6h2M133 6h2M139 6h1M0 7h1M5 7h1M134 7h1M139 7h1M0 8h1M5 8h1M134 8h1M139 8h1M0 9h1M5 9h1M134 9h1M139 9h1M0 10h1M5 10h1M10 10h4M15 10h5M21 10h4M26 10h4M42 10h4M47 10h1M53 10h2M57 10h1M61 10h1M87 10h5M93 10h4M98 10h1M102 10h1M104 10h4M109 10h4M134 10h1M139 10h1M0 11h1M5 11h1M10 11h1M17 11h1M21 11h1M24 11h1M26 11h1M29 11h1M42 11h1M45 11h1M47 11h1M52 11h1M55 11h1M58 11h1M60 11h1M89 11h1M93 11h1M98 11h2M101 11h2M104 11h1M107 11h1M109 11h1M112 11h1M134 11h1M139 11h1M0 12h1M5 12h1M10 12h4M17 12h1M21 12h1M24 12h1M26 12h4M42 12h4M47 12h1M52 12h4M59 12h1M89 12h1M93 12h4M98 12h1M100 12h1M102 12h1M104 12h4M109 12h1M112 12h1M134 12h1M139 12h1M0 13h1M5 13h1M13 13h1M17 13h1M21 13h1M24 13h1M26 13h1M42 13h1M47 13h1M52 13h1M55 13h1M59 13h1M89 13h1M93 13h1M98 13h1M102 13h1M104 13h1M109 13h1M112 13h1M134 13h1M139 13h1M0 14h1M5 14h1M10 14h4M17 14h1M21 14h4M26 14h1M42 14h1M47 14h4M52 14h1M55 14h1M59 14h1M89 14h1M93 14h4M98 14h1M102 14h1M104 14h1M109 14h4M134 14h1M139 14h1M0 15h1M5 15h1M134 15h1M139 15h1M0 16h1M5 16h1M134 16h1M139 16h1M0 17h1M5 17h1M134 17h1M139 17h1M0 18h1M5 18h1M134 18h1M139 18h1M0 19h1M5 19h1M134 19h1M139 19h1M0 20h1M5 20h1M134 20h1M139 20h1M0 21h1M5 21h1M70 21h3M127 21h3M134 21h1M139 21h1M0 22h1M5 22h1M69 22h1M73 22h1M126 22h1M130 22h1M134 22h1M139 22h1M0 23h1M5 23h1M68 23h1M74 23h1M125 23h1M128 23h1M131 23h1M134 23h1M139 23h1M0 24h1M5 24h1M68 24h1M70 24h3M74 24h1M80 24h40M125 24h1M127 24h3M131 24h1M134 24h1M139 24h1M0 25h1M5 25h1M68 25h1M74 25h1M80 25h40M125 25h1M128 25h1M131 25h1M134 25h1M139 25h1M0 26h1M5 26h1M69 26h1M73 26h1M126 26h1M130 26h1M134 26h1M139 26h1M0 27h1M5 27h1M70 27h3M127 27h3M134 27h1M139 27h1M0 28h1M5 28h1M134 28h1M139 28h1M0 29h1M5 29h1M134 29h1M139 29h1M0 30h1M5 30h1M134 30h1M139 30h1M0 31h1M5 31h1M134 31h1M139 31h1M0 32h1M5 32h1M134 32h1M139 32h1M0 33h1M5 33h2M133 33h2M139 33h1M0 34h1M6 34h128M139 34h1M0 35h1M139 35h1M0 36h1M139 36h1M0 37h2M138 37h2M1 38h2M137 38h2M2 39h136"] ["#a8a8a8" "M3 1h133M2 2h1M136 2h1M1 3h1M137 3h1M1 4h1M6 4h128M137 4h1M1 5h1M5 5h1M134 5h1M137 5h1M1 6h1M4 6h1M135 6h1M137 6h1M1 7h1M4 7h1M133 7h1M135 7h1M137 7h1M1 8h1M4 8h1M133 8h1M135 8h1M137 8h1M1 9h1M4 9h1M133 9h1M135 9h1M137 9h1M1 10h1M4 10h1M133 10h1M135 10h1M137 10h1M1 11h1M4 11h1M133 11h1M135 11h1M137 11h1M1 12h1M4 12h1M133 12h1M135 12h1M137 12h1M1 13h1M4 13h1M133 13h1M135 13h1M137 13h1M1 14h1M4 14h1M133 14h1M135 14h1M137 14h1M1 15h1M4 15h1M133 15h1M135 15h1M137 15h1M1 16h1M4 16h1M133 16h1M135 16h1M137 16h1M1 17h1M4 17h1M133 17h1M135 17h1M137 17h1M1 18h1M4 18h1M133 18h1M135 18h1M137 18h1M1 19h1M4 19h1M133 19h1M135 19h1M137 19h1M1 20h1M4 20h1M133 20h1M135 20h1M137 20h1M1 21h1M4 21h1M133 21h1M135 21h1M137 21h1M1 22h1M4 22h1M133 22h1M135 22h1M137 22h1M1 23h1M4 23h1M133 23h1M135 23h1M137 23h1M1 24h1M4 24h1M133 24h1M135 24h1M137 24h1M1 25h1M4 25h1M133 25h1M135 25h1M137 25h1M1 26h1M4 26h1M133 26h1M135 26h1M137 26h1M1 27h1M4 27h1M133 27h1M135 27h1M137 27h1M1 28h1M4 28h1M133 28h1M135 28h1M137 28h1M1 29h1M4 29h1M133 29h1M135 29h1M137 29h1M1 30h1M4 30h1M133 30h1M135 30h1M137 30h1M1 31h1M4 31h1M133 31h1M135 31h1M137 31h1M1 32h1M4 32h1M133 32h1M135 32h1M137 32h1M1 33h1M4 33h1M7 33h126M135 33h1M137 33h1M1 34h1M5 34h1M134 34h1M137 34h1M1 35h1M137 35h1M1 36h2M136 36h1M2 37h134"] ["#707070" "M136 1h1M137 2h1M138 3h1M138 4h1M138 5h1M7 6h126M138 6h1M6 7h1M138 7h1M6 8h1M138 8h1M6 9h1M138 9h1M6 10h1M138 10h1M6 11h1M138 11h1M6 12h1M138 12h1M6 13h1M138 13h1M6 14h1M138 14h1M6 15h1M138 15h1M6 16h1M138 16h1M6 17h1M138 17h1M6 18h1M138 18h1M6 19h1M138 19h1M6 20h1M138 20h1M6 21h1M138 21h1M6 22h1M138 22h1M6 23h1M138 23h1M6 24h1M138 24h1M6 25h1M138 25h1M6 26h1M138 26h1M6 27h1M138 27h1M6 28h1M138 28h1M6 29h1M138 29h1M6 30h1M138 30h1M6 31h1M138 31h1M6 32h1M138 32h1M138 33h1M138 34h1M138 35h1M137 36h2M136 37h2M3 38h134"] ["#d0d0d0" "M3 2h133M2 3h2M135 3h2M2 4h1M5 4h1M134 4h1M136 4h1M2 5h1M4 5h1M135 5h1M2 6h1M2 7h1M7 7h126M2 8h1M7 8h1M132 8h1M2 9h1M7 9h1M132 9h1M2 10h1M7 10h1M132 10h1M2 11h1M7 11h1M132 11h1M2 12h1M7 12h1M132 12h1M2 13h1M7 13h1M132 13h1M2 14h1M7 14h1M132 14h1M2 15h1M7 15h1M132 15h1M2 16h1M7 16h1M132 16h1M2 17h1M7 17h1M132 17h1M2 18h1M7 18h1M132 18h1M2 19h1M7 19h1M132 19h1M2 20h1M7 20h1M132 20h1M2 21h1M7 21h1M132 21h1M2 22h1M7 22h1M132 22h1M2 23h1M7 23h1M132 23h1M2 24h1M7 24h1M132 24h1M2 25h1M7 25h1M132 25h1M2 26h1M7 26h1M132 26h1M2 27h1M7 27h1M132 27h1M2 28h1M7 28h1M132 28h1M2 29h1M7 29h1M132 29h1M2 30h1M7 30h1M132 30h1M2 31h1M7 31h1M132 31h1M2 32h1M7 32h126M2 33h1M2 34h1M4 34h1M135 34h1M2 35h1M5 35h130M136 35h1M3 36h1M135 36h1"] ["#f8f8f8" "M4 3h131M3 4h2M135 4h1M3 5h1M136 5h1M3 6h1M136 6h1M3 7h1M136 7h1M3 8h1M136 8h1M3 9h1M9 9h22M41 9h22M86 9h28M136 9h1M3 10h1M9 10h1M14 10h1M20 10h1M25 10h1M30 10h1M41 10h1M46 10h1M48 10h5M55 10h2M58 10h3M62 10h1M86 10h1M92 10h1M97 10h1M99 10h3M103 10h1M108 10h1M113 10h1M136 10h1M3 11h1M9 11h1M41 11h1M86 11h1M136 11h1M3 12h1M9 12h1M14 12h3M18 12h3M22 12h2M25 12h1M30 12h1M41 12h1M46 12h1M48 12h4M56 12h3M60 12h3M86 12h3M90 12h3M97 12h1M99 12h1M101 12h1M103 12h1M108 12h1M110 12h2M113 12h1M136 12h1M3 13h1M9 13h1M41 13h1M86 13h1M136 13h1M3 14h1M9 14h1M41 14h1M86 14h1M136 14h1M3 15h1M9 15h1M41 15h1M86 15h1M136 15h1M3 16h1M136 16h1M3 17h1M136 17h1M3 18h1M136 18h1M3 19h1M136 19h1M3 20h1M136 20h1M3 21h1M136 21h1M3 22h1M70 22h3M127 22h3M136 22h1M3 23h1M69 23h5M126 23h2M129 23h2M136 23h1M3 24h1M69 24h1M73 24h1M126 24h1M130 24h1M136 24h1M3 25h1M69 25h5M126 25h2M129 25h2M136 25h1M3 26h1M70 26h3M127 26h3M136 26h1M3 27h1M136 27h1M3 28h1M136 28h1M3 29h1M136 29h1M3 30h1M136 30h1M3 31h1M136 31h1M3 32h1M136 32h1M3 33h1M136 33h1M3 34h1M136 34h1M3 35h2M135 35h1M4 36h131"] ["#a0c0b0" "M8 8h124M8 9h1M31 9h10M63 9h23M114 9h18M8 10h1M31 10h10M63 10h23M114 10h18M8 11h1M31 11h10M63 11h23M114 11h18M8 12h1M31 12h10M63 12h23M114 12h18M8 13h1M31 13h10M63 13h23M114 13h18M8 14h1M31 14h10M63 14h23M114 14h18M8 15h1M31 15h10M63 15h23M114 15h18M8 16h124M8 17h124M8 18h124M8 19h124M8 20h124M8 21h62M73 21h54M130 21h2M8 22h61M74 22h52M131 22h1M8 23h60M75 23h50M8 24h60M75 24h5M120 24h5M8 25h60M75 25h5M120 25h5M8 26h61M74 26h52M131 26h1M8 27h62M73 27h54M130 27h2M8 28h124M8 29h124M8 30h124M8 31h124"] ["#c8e8e0" "M11 11h6M18 11h3M22 11h2M25 11h1M27 11h2M30 11h1M43 11h2M46 11h1M48 11h4M53 11h2M56 11h2M59 11h1M61 11h2M87 11h2M90 11h3M94 11h4M100 11h1M103 11h1M105 11h2M108 11h1M110 11h2M113 11h1M10 13h3M14 13h3M18 13h3M22 13h2M25 13h1M27 13h4M43 13h4M48 13h4M53 13h2M56 13h3M60 13h3M87 13h2M90 13h3M94 13h4M99 13h3M103 13h1M105 13h4M110 13h2M113 13h1M14 14h3M18 14h3M25 14h1M27 14h4M43 14h4M51 14h1M53 14h2M56 14h3M60 14h3M87 14h2M90 14h3M97 14h1M99 14h3M103 14h1M105 14h4M113 14h1M10 15h21M42 15h21M87 15h27"]] x y scale) [stop-button (+ x 14) 18 scale] [play-button (+ x 47) 17 scale] [tempo-down (+ x 34) 9 scale] [tempo-up (+ x 60) 9 scale] (svg-paths tempo-slider (+ x 85 (* 0.1 @(subscribe [:tempo]))) (+ 21 y) scale)]) ================================================ FILE: src/mecca/view.cljs ================================================ (ns mecca.view (:require [mecca.music :as music] [re-frame.core :as rf :refer [subscribe dispatch]] [reagent.core :as r] [mecca.castle :as castle] [mecca.transport :as transport] [mecca.editor :as editor :refer [svg-paths]] [mecca.mario :as mario] [sci.core :as sci] [mecca.sci] [mecca.sci-editor :as sci-editor :refer [!points points eval-result !result]] [nextjournal.clojure-mode.keymap :as keymap] [clojure.pprint :as pp] [goog.object :as o] [clojure.string :as str] [clojure.edn :as edn])) (defn note-guides [] (let [editor-x (subscribe [:editor-beat-start])] (fn [] (into [:g] (for [beat (range 0 9 0.5)] (if (= 0 (mod (+ (dec @editor-x) beat) 4)) [:g ;[bar-number (/ beat 4) (+ 296 (* 120 (mod beat 8))) 64 0.05] [:line {:x1 (+ 8 (* 6 beat)) :x2 (+ 8 (* 6 beat)) :y1 4 :y2 21 :stroke "orange" :stroke-width 0.25 :stroke-dasharray 0.5}]] [:line {:x1 (+ 8 (* 6 beat)) :x2 (+ 8 (* 6 beat)) :y1 4 :y2 21 :stroke "black" :stroke-width 0.075 :stroke-dasharray 0.5}])))))) (defn eval-all [s] (try (sci/eval-string s {:classes {'js goog/global :allow :all}}) (catch :default e (str e)))) (defn note-targets [] (let [instrument (subscribe [:instrument]) editor-x (subscribe [:editor-beat-start]) sharp? (subscribe [:sharp?])] (fn [] (into [:g] (for [time (range 0 9 0.5) pitch (range 19)] ^{:key [time pitch]} [:rect {:transform "translate(6.5,4)" :x (* 6 time) :y (- pitch 1) :height 1 :width 3 :stroke "black" :stroke-width 0.2 :fill "gray" :visibility "hidden" :opacity 0.2 :pointer-events "all" :on-mouse-over #(if-not (and @sharp? (or (= pitch 12) (= pitch 15) (= pitch 8) (= pitch 5) (= pitch 1) (= pitch 0))) (dispatch [:update-focus-note [time pitch]])) :on-mouse-out #(dispatch [:update-focus-note [nil nil]]) :on-click (let [pitches [84 83 81 79 77 76 74 72 71 69 67 65 64 62 60 59 57 55 53]] (cond @(subscribe [:eraser?]) #(do (music/play-sample 18 63) (dispatch [:remove-note (+ time (dec @editor-x)) (get pitches pitch)])) @(subscribe [:repeat?]) #(dispatch [:set-loop-end time]) :else #(do (dispatch [:add-note @instrument (+ time (dec @editor-x)) (get pitches pitch)]) (sci-editor/update-editor! (str (conj @(subscribe [:notes]) {:instrument @instrument :time (+ time (dec @editor-x)) :pitch (get pitches pitch)}))) (sci-editor/update-result! (str "Output꞉ " (eval-all (str (some-> @!points .-state .-doc str))))))))}]))))) (defn note-cursor [] (let [focused (subscribe [:focused-note-pos]) instrument (subscribe [:instrument]) sharp? (subscribe [:sharp?])] (when-not (= @focused [nil nil]) (let [x (first @focused) y (last @focused)] [:g (if @sharp? (svg-paths [["black" "M15 46C15 47 14 47 13 47 13 47 12 47 12 46V37L7 39V49C7 49 6 50 6 50 5 50 5 49 5 49V40L3 40C3 40 2 40 2 40 2 40 1 40 1 39V35C1 35 1 34 2 34L5 33V23L3 24C3 24 2 24 2 24 2 24 1 23 1 23V19C1 19 1 18 2 18L5 17V7C5 6 5 6 6 6 6 6 7 6 7 7V16L12 14V4C12 4 13 3 13 3 14 3 15 4 15 4V13L17 13C17 12 17 12 17 12 18 12 18 13 18 14V17C18 18 18 18 17 19L15 20V30L17 29C17 29 17 29 17 29 18 29 18 29 18 30V34C18 34 18 35 17 35L15 36V46ZM7 22V32L12 31V21Z"]] (+ 68 (* 86 x)) (+ 18 (* 15 y)) 0.07)) (cond @(subscribe [:eraser?]) [editor/eraser-cursor (+ 36 (* 30 x)) (+ (* 5 y) 20) 0.2] @(subscribe [:repeat?]) [editor/repeat-sign (+ 7 (* 6 x)) 8 0.13] :else (case @instrument 1 [mario/mario-icon (+ 2 (* 30 x)) (+ (* 5 y) 9) 0.2] 2 [mario/shroom (+ 32 (* 30 x)) (+ (* 5 y) 12) 0.2] 3 [mario/yoshi (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 4 [mario/star (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 5 [mario/flower (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 6 [mario/gb (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 7 [mario/dog (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 8 [mario/kitty (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 9 [mario/pig (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 10 [mario/swan (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 11 [mario/face (+ 32 (* 30 x)) (+ (* 5 y) 10) 0.2] 12 [mario/plane (+ 32 (* 30 x)) (+ (* 5 y) 15) 0.2] 13 [mario/boat (+ 32 (* 30 x)) (+ (* 5 y) 12) 0.2] 14 [mario/car (+ 32 (* 30 x)) (+ (* 5 y) 12) 0.2] 15 [mario/heart (+ 32 (* 30 x)) (+ (* 5 y) 15) 0.2]))])))) (defn score-notes [] (let [notes (subscribe [:notes]) editor-x (subscribe [:editor-beat-start])] (into [:g] (for [{:keys [time instrument pitch]} @notes :when (<= (dec @editor-x) time (+ 16 (dec @editor-x)))] ^{:key [instrument time pitch]} (let [x (- time (dec @editor-x)) pitch-map (zipmap [84 83 81 79 77 76 74 72 71 69 67 65 64 62 60 59 57 55 53] (range 19))] [:g (if-not (get pitch-map pitch) (svg-paths [["black" "M15 46C15 47 14 47 13 47 13 47 12 47 12 46V37L7 39V49C7 49 6 50 6 50 5 50 5 49 5 49V40L3 40C3 40 2 40 2 40 2 40 1 40 1 39V35C1 35 1 34 2 34L5 33V23L3 24C3 24 2 24 2 24 2 24 1 23 1 23V19C1 19 1 18 2 18L5 17V7C5 6 5 6 6 6 6 6 7 6 7 7V16L12 14V4C12 4 13 3 13 3 14 3 15 4 15 4V13L17 13C17 12 17 12 17 12 18 12 18 13 18 14V17C18 18 18 18 17 19L15 20V30L17 29C17 29 17 29 17 29 18 29 18 29 18 30V34C18 34 18 35 17 35L15 36V46ZM7 22V32L12 31V21Z"]] (+ 68 (* 86 x)) (+ 18 (* 15 (get pitch-map (dec pitch)))) 0.07)) (case instrument 1 [mario/mario-note (+ 2 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 9) 0.2] 2 [mario/shroom (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 12) 0.2] 3 [mario/yoshi (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 4 [mario/star (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 5 [mario/flower (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 6 [mario/gb (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 7 [mario/dog (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 8 [mario/kitty (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 9 [mario/pig (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 10 [mario/swan (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 11 [mario/face (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 10) 0.2] 12 [mario/plane (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 15) 0.2] 13 [mario/boat (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 12) 0.2] 14 [mario/car (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 12) 0.2] 15 [mario/heart (+ 32 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 15) 0.2] [mario/mario-note (+ 2 (* 30 x)) (+ (* 5 (or (get pitch-map pitch) (get pitch-map (dec pitch)))) 9) 0.2])]))))) (defn editor [] (let [editor-x (subscribe [:editor-beat-start]) mario-run (subscribe [:mario-run])] (fn [] (when (= 20 @mario-run) (dispatch [:jump-reset])) [:svg {:width "100%" :view-box "0 0 64 36" :style {:cursor "url(images/hand.png),pointer"}} [mario/cloud 1 1] [mario/hill 40] [castle/brick-face 363 18 6] [castle/brick-face 348 48 10] [mario/mario-sm] [editor/current-note-display 47 0 0.22] [editor/note-blocks] [mario/floor-tile 16] [:rect#editorframe {:stroke "black" :stroke-width 0.2 :fill "none" :height 20 :width 63.5 :x 0.25 :y 14.5}] [:g.staff {:transform "translate(0,13.5) scale(1)"} [editor/staff-lines] [editor/retract-editor 2] [editor/treble-clef (- 0.8 (* 6 (dec @editor-x))) 6.3] [editor/advance-editor] [editor/advance-measure] [editor/advance-end] [note-targets] [note-guides] [note-cursor] [score-notes] (when @(subscribe [:loop-end]) [editor/repeat-sign (+ 7 (* 6 @(subscribe [:loop-end]))) 8 0.13])]]))) (defn load-song [] [:input#input {:type "file" :on-change (fn [e] (let [dom (o/get e "target") file (o/getValueByKeys dom #js ["files" 0]) reader (js/FileReader.)] (.readAsText reader file) (set! (.-onload reader) #(dispatch [:set-notes (edn/read-string (-> % .-target .-result))]))))}]) (def demo "(defn scale [intervals] (reductions + (cycle intervals))) (def double-harmonic-minor [1 3 1 2 1 3 1]) (def blues [3 2 1 1 3 2]) (defn scale-note [note] (nth (reductions + 60 (cycle blues)) note)) (let [notes (range 10)] (for [beat (range (count notes))] {:instrument 1 :time beat :pitch (scale-note (nth notes beat))}))") (defn linux? [] (some? (re-find #"(Linux)|(X11)" js/navigator.userAgent))) (defn mac? [] (and (not (linux?)) (some? (re-find #"(Mac)|(iPhone)|(iPad)|(iPod)" js/navigator.platform)))) (defn key-mapping [] (cond-> {"ArrowUp" "↑" "ArrowDown" "↓" "ArrowRight" "→" "ArrowLeft" "←" "Mod" "Ctrl"} (mac?) (merge {"Alt" "⌥" "Shift" "⇧" "Enter" "⏎" "Ctrl" "⌃" "Mod" "⌘"}))) (defn render-key [key] (let [keys (into [] (map #(get ((memoize key-mapping)) % %) (str/split key #"-")))] (into [:span] (map-indexed (fn [i k] [:<> (when-not (zero? i) [:span " + "]) [:kbd.kbd k]]) keys)))) (defn key-bindings-table [keymap] [:table.w-full.text-sm [:thead [:tr.border-t [:th.px-3.py-1.align-top.text-left.text-xs.uppercase.font-normal.black-50 "Command"] [:th.px-3.py-1.align-top.text-left.text-xs.uppercase.font-normal.black-50 "Keybinding"] [:th.px-3.py-1.align-top.text-left.text-xs.uppercase.font-normal.black-50 "Alternate Binding"] [:th.px-3.py-1.align-top.text-left.text-xs.uppercase.font-normal.black-50 {:style {:min-width 290}} "Description"]]] (into [:tbody] (->> keymap (sort-by first) (map (fn [[command [{:keys [key shift doc]} & [{alternate-key :key}]]]] [:<> [:tr.border-t.hover:bg-gray-100 [:td.px-3.py-1.align-top.monospace.whitespace-nowrap [:b (name command)]] [:td.px-3.py-1.align-top.text-right.text-sm.whitespace-nowrap (render-key key)] [:td.px-3.py-1.align-top.text-right.text-sm.whitespace-nowrap (some-> alternate-key render-key)] [:td.px-3.py-1.align-top doc]] (when shift [:tr.border-t.hover:bg-gray-100 [:td.px-3.py-1.align-top [:b (name shift)]] [:td.px-3.py-1.align-top.text-sm.whitespace-nowrap.text-right (render-key (str "Shift-" key))] [:td.px-3.py-1.align-top.text-sm] [:td.px-3.py-1.align-top]])]))))]) (defn mecca [] [:div [editor] [:div.flex-container [:div.flex-item [sci-editor/editor demo !points {:eval? true}]] [:div.flex-item [transport/transport 20 -0.5 0.4] [editor/toolbar 0 0] [:center [:button {:on-click #(let [file-blob (js/Blob. [@(subscribe [:notes])] #js {"type" "text/plain"}) link (.createElement js/document "a")] (set! (.-href link) (.createObjectURL js/URL file-blob)) (.setAttribute link "download" "mecca.txt") (.appendChild (.-body js/document) link) (.click link) (.removeChild (.-body js/document) link))} "Download"] [load-song]]]] [:div [key-bindings-table (merge keymap/paredit-keymap* (mecca.sci/keymap* "Alt"))]]]) ================================================ FILE: test/mecca/core_test.cljs ================================================ (ns mecca.core-test (:require [cljs.test :refer-macros [deftest is testing]] [mecca.core :refer []])) ;(deftest multiply-test ; (is (= (* 1 2) (multiply 1 2)))) ;(deftest multiply-test-2 ; (is (= (* 75 10) (multiply 10 75)))) ================================================ FILE: test/mecca/test_runner.cljs ================================================ ;; This test runner is intended to be run from the command line (ns mecca.test-runner (:require ;; require all the namespaces that you want to test [mecca.core-test] [figwheel.main.testing :refer [run-tests-async]])) (defn -main [& args] (run-tests-async 5000))