<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
</body>
</html>
console.clear();
// Dice roll, returns a random number between 1 and 6
const dice = () => Math.ceil(Math.random() * 6);
// Peek function, applies "fn" to n, idx, but returns n so it can be used as a mapping function
const peek = fn => (n, idx) => { fn(n, idx); return n; };
// Convert table content into an array of arrays containing the measure indexes
const table = input => input
.split('\n') // Split text into array of text lines
.map(line => line.split(' ')) // Split textline into separate digits
.map(line => line.map(digit => parseInt(digit))); // Map each digit string to a number
// Convert beats content into an array of measures containing an array of beat objects
const beats = input => input
.split('\n') // Split text into array of text lines
.map(line => line.split(' ')) // Split textline into separate space-divided chunks
.map((line, idx) => ({ // Map beat to object
note: line[0],
start: parseFloat(line[1]),
duration: parseFloat(line[2]) }))
.reduce((acc, line) => ({ // Group beats by measure
acc,
[line.start]: [acc[line.start] || [], line] }), {});
// Get a random list of measures
const challenge = (beats, table) => [Array(table.length).keys()] // Return an array of n elements
.map(n => dice() + dice()) // Roll two dices and sum
.map((result, idx) => table[idx][result - 2]) // Get the corresponding item from the table
.map(measure => beats[measure]) // Get the corresponding measure from the beats
.map(peek((measure, idx) => measure.map(peek(beat => beat.start = idx)))) // Replace beat start index by new index
.reduce((acc, measure) => acc.concat(measure), []) // Flatmap the array of measures into a single array of beats
.map(beat => beat.note + ' ' + beat.start + ' ' + beat.duration) // Map the beat to a beat string similar to th input
.join('\n'); // Join the beat strings to a single string with newlines
const beatsInput = `F3 0 1
F5 0 1
D3 1 1
D5 1 1
G3 2 1
G5 2 1
A4 3 1
B2 3 2
G3 3 2
F#4 4 0.5
G4 4.5 0.5
B4 5 0.5
G5 5.5 0.5
C3 6 2
E3 6 2
G5 6 1
C5 7 1
E5 8 1
G2 9 0.5
G5 9 1
B2 9.5 0.5
D5 10 2
G3 10 1
B2 11 1
B4 12 2
D5 12 2
G2 12 1
G4 12 2
G5 12 2
G3 13 0.5
F3 13.5 0.5
E3 14 0.5
D3 14.5 0.5
C3 15 2
E3 15 2
G4 15 1
C5 16 1
E5 17 1
C3 18 2
E5 18 0.5
G3 18 2
C5 18.5 0.5
E5 19 0.5
G5 19.5 0.5
C6 20 0.5
G5 20.5 0.5
C3 21 1
C5 21 2
G2 22 1
C2 23 1
C5 24 1
E5 24 1
G3 24 2
B4 25 1
D5 25 1
G2 26 1
B4 27 0.5
G3 27 2
A4 27.5 0.5
B4 28 0.5
C5 28.5 0.5
D5 29 0.5
B4 29.5 0.5
C3 30 1
E5 30 0.5
C5 30.5 0.5
B4 31 0.5
D3 31 1
A4 31.5 0.5
D2 32 1
G4 32 0.5
F#4 32.5 0.5
C3 33 1
C5 33 1
E4 33 1
C3 34 1
C5 34 1
E4 34 1
C3 35 1
C5 35 1
E4 35 1
E3 36 2
E5 36 1
G3 36 2
C5 37 1
G4 38 1
C3 39 1
C5 39 2
G2 40 1
C2 41 1
C3 42 2
E5 42 1
G3 42 2
G5 43 0.5
E5 43.5 0.5
C3 44 1
C5 44 1
E3 44 1
A5 45 1
D3 45 2
F#3 45 2
F#5 46 1
C3 47 1
D5 47 1
F#3 47 1
C5 48 0.5
E3 48 2
G3 48 2
G4 48.5 0.5
C5 49 0.5
E5 49.5 0.5
G4 50 0.5
C5 50.5 0.5
C3 51 2
E3 51 2
G4 51 1
C5 52 1
C3 53 1
E5 53 1
G3 53 1
C3 54 2
E5 54 0.5
G3 54 2
C5 54.5 0.5
E5 55 1
C3 56 1
E3 56 1
G5 56 1
B2 57 2
G5 57 1
B5 58 0.5
D6 58.5 0.5
D5 59 1
C3 60 1
C5 60 0.5
E5 60.5 0.5
D3 61 1
G5 61 0.5
D5 61.5 0.5
A4 62 0.5
D2 62 1
F#5 62.5 0.5
C3 63 2
E5 63 1
C5 64 1
G4 65 1
F3 66 0.5
F5 66 0.5
E3 66.5 0.5
E5 66.5 0.5
D3 67 0.5
D5 67 0.5
E3 67.5 0.5
E5 67.5 0.5
F3 68 0.5
F5 68 0.5
G3 68.5 0.5
G5 68.5 0.5
B4 69 2
D5 69 2
G2 69 1
G4 69 2
G5 69 2
G3 70 0.5
F3 70.5 0.5
E3 71 0.5
D3 71.5 0.5
D3 72 2
D4 72 0.5
F#4 72.5 0.5
A4 73 0.5
D5 73.5 0.5
C3 74 1
F#5 74 0.5
A5 74.5 0.5
C3 75 0.5
C5 75 1
E5 75 1
E3 75.5 0.5
C5 76 1
E5 76 1
G3 76 0.5
E3 76.5 0.5
C4 77 0.5
C5 77 1
E5 77 1
C3 77.5 0.5
B3 78 2
F5 78 0.5
G3 78 2
E5 78.5 0.5
F5 79 0.5
D5 79.5 0.5
C5 80 0.5
B4 80.5 0.5
A3 81 2
C3 81 2
F#5 81 0.5
D5 81.5 0.5
A4 82 0.5
A5 82.5 0.5
F#5 83 0.5
D5 83.5 0.5
B4 84 0.5
G3 84 2
D5 84.5 0.5
G5 85 0.5
D5 85.5 0.5
B4 86 1
G2 86 1
B4 87 2
D5 87 2
G2 87 1
G4 87 2
G5 87 2
G3 88 0.5
F3 88.5 0.5
E3 89 0.5
D3 89.5 0.5
C3 90 2
E5 90 0.5
G3 90 2
C5 90.5 0.5
G4 91 1
C3 92 1
E5 92 1
G3 92 1
C3 93 2
E3 93 2
G4 93 1
C5 94 1
E5 95 1
B4 96 2
D5 96 2
G2 96 1
G4 96 2
G5 96 2
G3 97 0.5
F3 97.5 0.5
E3 98 0.5
D3 98.5 0.5
E5 99 0.5
G3 99 2
C5 99.5 0.5
E5 100 0.5
C5 100.5 0.5
G4 101 1
A4 102 1
D3 102 2
F#3 102 2
D5 103 1
A3 104 1
C3 104 1
F#5 104 1
A4 105 0.5
C3 105 1
E5 105.5 0.5
D3 106 1
D5 106 0.5
G5 106.5 0.5
D2 107 1
F#5 107 0.5
A5 107.5 0.5
B2 108 2
D3 108 2
G5 108 0.5
B5 108.5 0.5
G5 109 0.5
D5 109.5 0.5
B4 110 1
C3 111 0.5
C5 111 1
E3 111 0.5
G3 111.5 0.5
C3 112 0.5
E3 112 0.5
G4 112 1
G3 112.5 0.5
C3 113 0.5
E3 113 0.5
E5 113 1
G3 113.5 0.5
B2 114 0.5
G5 114 1
D3 114.5 0.5
G3 115 0.5
G4 115 1
D3 115.5 0.5
B2 116 0.5
G4 116 1
G2 116.5 0.5
C3 117 2
C5 117 0.5
E3 117 2
B4 117.5 0.5
C5 118 0.5
E5 118.5 0.5
G4 119 0.5
C5 119.5 0.5
C3 120 2
C5 120 0.5
E3 120 2
B4 120.5 0.5
C5 121 0.5
E5 121.5 0.5
G4 122 1
B4 123 0.5
G2 123 2
C5 123.5 0.5
D5 124 0.5
B4 124.5 0.5
A4 125 0.5
G4 125.5 0.5
C3 126 2
E3 126 2
G5 126 1
F5 127 0.5
E5 127.5 0.5
D5 128 0.5
C5 128.5 0.5
A4 129 1
F3 129 2
F5 130 0.5
D5 130.5 0.5
A4 131 0.5
G3 131 1
B4 131.5 0.5
C5 132 0.5
E3 132 2
G3 132 2
B4 132.5 0.5
C5 133 0.5
G4 133.5 0.5
E4 134 0.5
C4 134.5 0.5
B2 135 2
D3 135 2
G5 135 1
B5 136 0.5
G5 136.5 0.5
D5 137 0.5
B4 137.5 0.5
B2 138 2
D3 138 2
G5 138 1
G5 139 0.5
D5 139.5 0.5
B5 140 1
C3 141 2
E5 141 1
G3 141 2
C5 142 0.5
E5 142.5 0.5
C3 143 1
E3 143 1
G5 143 0.5
C6 143.5 0.5
C3 144 0.5
E3 144 0.5
E5 144 1
G3 144.5 0.5
C3 145 0.5
C5 145 1
E3 145 0.5
G3 145.5 0.5
C3 146 0.5
E3 146 0.5
G4 146 1
G3 146.5 0.5
C5 147 1
E3 147 2
G3 147 2
E5 148 0.5
C5 148.5 0.5
G4 149 1
C3 150 2
C5 150 0.5
E3 150 2
G4 150.5 0.5
E5 151 0.5
C5 151.5 0.5
G5 152 0.5
E5 152.5 0.5
D5 153 0.5
F3 153 2
C#5 153.5 0.5
D5 154 0.5
F5 154.5 0.5
G3 155 1
G4 155 0.5
B4 155.5 0.5
C3 156 2
C5 156 1
E5 156 1
C5 157 0.5
E5 157 0.5
D5 157.5 0.5
F5 157.5 0.5
E5 158 1
G5 158 1
C3 159 1
C5 159 1
E4 159 1
C3 160 1
C5 160 1
E4 160 1
C3 161 1
C5 161 1
E4 161 1
B2 162 2
D3 162 2
G5 162 1
B5 163 1
D5 164 1
D5 165 0.5
G2 165 2
G3 165 2
B4 165.5 0.5
D4 166 1
G3 167 1
C3 168 0.5
E3 168 0.5
E5 168 1
G3 168.5 0.5
C3 169 0.5
C5 169 1
E3 169 0.5
G3 169.5 0.5
C3 170 0.5
E3 170 0.5
G4 170 1
G3 170.5 0.5
C3 171 0.5
E3 171 0.5
G5 171 1
G3 171.5 0.5
C3 172 0.5
E3 172 0.5
E5 172 1
G3 172.5 0.5
C3 173 0.5
C5 173 1
E3 173 0.5
G3 173.5 0.5
C3 174 0.5
E3 174 0.5
G5 174 1
G3 174.5 0.5
C3 175 0.5
C5 175 1
E3 175 0.5
G3 175.5 0.5
C3 176 0.5
E3 176 0.5
E5 176 1
G3 176.5 0.5
C3 177 2
E3 177 2
G5 177 1
F5 178 0.5
E5 178.5 0.5
D5 179 0.5
C5 179.5 0.5
C5 180 1
E3 180 2
G3 180 2
E5 181 0.5
C5 181.5 0.5
G5 182 1
C3 183 1
E5 183 0.5
C5 183.5 0.5
B4 184 0.5
D3 184 1
G4 184.5 0.5
A4 185 0.5
D2 185 1
F#4 185.5 0.5
C3 186 2
E5 186 0.5
C5 186.5 0.5
B4 187 0.5
C5 187.5 0.5
G4 188 1
C3 189 2
E5 189 0.5
G3 189 2
G5 189.5 0.5
C6 190 0.5
G5 190.5 0.5
C3 191 1
E5 191 0.5
G3 191 1
C5 191.5 0.5
D3 192 2
D5 192 0.5
F#3 192 2
A4 192.5 0.5
D5 193 1
F#5 194 1
A3 195 1
D3 195 1
F#5 195 1
A5 196 1
D3 196 1
F#3 196 1
C3 197 1
D3 197 1
F#5 197 1
C3 198 2
C5 198 0.5
E3 198 2
B4 198.5 0.5
C5 199 0.5
E5 199.5 0.5
E3 200 1
G3 200 1
G4 200 0.5
C5 200.5 0.5
B2 201 2
G5 201 1
B5 202 0.5
G5 202.5 0.5
D5 203 0.5
G5 203.5 0.5
C3 204 2
E3 204 2
G5 204 1
E5 205 1
C5 206 1
D3 207 2
F#5 207 1
A5 208 0.5
F#5 208.5 0.5
C3 209 1
D5 209 0.5
F#5 209.5 0.5
B2 210 2
D3 210 2
G5 210 0.5
B5 210.5 0.5
D6 211 0.5
B5 211.5 0.5
B2 212 1
D3 212 1
G5 212 1
F3 213 2
F5 213 0.5
E5 213.5 0.5
D5 214 0.5
C5 214.5 0.5
B4 215 0.5
G3 215 1
D5 215.5 0.5
C3 216 0.5
E3 216 0.5
G5 216 1
G3 216.5 0.5
C3 217 0.5
E3 217 0.5
E5 217 1
G3 217.5 0.5
C3 218 0.5
C5 218 1
E3 218 0.5
G3 218.5 0.5
C3 219 2
C6 219 0.5
E3 219 2
B5 219.5 0.5
C6 220 0.5
G5 220.5 0.5
E5 221 0.5
C5 221.5 0.5
C3 222 1
D5 222 1
F#4 222 1
C3 223 1
D5 223 1
F#4 223 1
C3 224 1
D5 224 1
F#4 224 1
C3 225 2
C6 225 0.5
E3 225 2
B5 225.5 0.5
C6 226 0.5
G5 226.5 0.5
C3 227 1
E5 227 0.5
G3 227 1
C5 227.5 0.5
B2 228 2
D3 228 2
G5 228 0.5
B5 228.5 0.5
G5 229 1
B2 230 1
D5 230 1
G3 230 1
C3 231 2
C5 231 1
C4 232 1
C2 233 1
C3 234 1
C5 234 2
G2 235 1
C2 236 1
C3 237 2
D5 237 1
A4 238 1
F#5 239 1
B4 240 2
D5 240 2
G2 240 1
G4 240 2
G5 240 2
G3 241 0.5
F3 241.5 0.5
E3 242 0.5
D3 242.5 0.5
B2 243 2
D5 243 0.5
G3 243 2
B4 243.5 0.5
G4 244 1
B2 245 1
D3 245 1
G5 245 1
C3 246 1
C5 246 2
G2 247 1
C2 248 1
C3 249 2
C5 249 0.5
E3 249 2
G4 249.5 0.5
E5 250 0.5
C5 250.5 0.5
G5 251 0.5
E5 251.5 0.5
C5 252 1
E3 252 2
G3 252 2
E5 253 1
G4 254 1
B2 255 2
D5 255 1
G3 255 2
D5 256 0.5
G5 256.5 0.5
B5 257 1
C3 258 2
E3 258 2
G5 258 1
C5 259 1
C3 260 1
E5 260 1
G3 260 1
B2 261 2
D3 261 2
G5 261 0.5
D5 261.5 0.5
G5 262 0.5
B5 262.5 0.5
B2 263 1
D3 263 1
G5 263 0.5
D5 263.5 0.5
F3 264 0.5
F5 264 0.5
E3 264.5 0.5
E5 264.5 0.5
D3 265 1
D5 265 1
G3 266 1
G5 266 1
A3 267 2
C3 267 2
F#5 267 0.5
A5 267.5 0.5
D6 268 0.5
A5 268.5 0.5
A3 269 1
C3 269 1
F#5 269 0.5
A5 269.5 0.5
B4 270 2
D5 270 2
G2 270 1
G4 270 2
G5 270 2
G3 271 0.5
F3 271.5 0.5
E3 272 0.5
D3 272.5 0.5
B4 273 1
D5 273 1
G2 273 2
G3 273 2
G5 274 0.5
B5 274.5 0.5
D5 275 1
G3 275 1
C3 276 1
C5 276 2
G2 277 1
C2 278 1
B4 279 2
D5 279 2
G2 279 1
G4 279 2
G5 279 2
G3 280 0.5
F3 280.5 0.5
E3 281 0.5
D3 281.5 0.5
C3 282 2
E3 282 2
G5 282 1
E5 283 1
C5 284 1
C3 285 2
E5 285 1
C5 286 1
G4 287 1
B2 288 2
D3 288 2
G5 288 0.5
F#5 288.5 0.5
G5 289 0.5
D5 289.5 0.5
B2 290 1
B4 290 0.5
G3 290 1
G4 290.5 0.5
C3 291 0.5
C5 291 1
E3 291 0.5
G3 291.5 0.5
C3 292 0.5
E3 292 0.5
G4 292 1
G3 292.5 0.5
C3 293 0.5
E3 293 0.5
E5 293 1
G3 293.5 0.5
A3 294 2
C3 294 2
F#5 294 1
A5 295 1
A3 296 1
C3 296 1
D5 296 1
B4 297 2
D5 297 2
G2 297 1
G4 297 2
G5 297 2
G3 298 0.5
F3 298.5 0.5
E3 299 0.5
D3 299.5 0.5
C3 300 2
E5 300 0.5
G3 300 2
D5 300.5 0.5
E5 301 0.5
G5 301.5 0.5
C3 302 1
C6 302 0.5
E3 302 1
G5 302.5 0.5
A3 303 2
C3 303 2
F#5 303 0.5
D5 303.5 0.5
A5 304 1
A3 305 1
C3 305 1
F#5 305 1
C5 306 0.5
E3 306 2
G3 306 2
E5 306.5 0.5
C5 307 0.5
G4 307.5 0.5
E4 308 1
C3 309 2
E5 309 0.5
D5 309.5 0.5
E5 310 0.5
G5 310.5 0.5
C6 311 0.5
G5 311.5 0.5
C3 312 2
F#5 312 1
A5 313 0.5
F#5 313.5 0.5
D5 314 0.5
F#5 314.5 0.5
A4 315 1
C3 315 1
D3 316 1
D5 316 0.5
C5 316.5 0.5
B4 317 0.5
D2 317 1
A4 317.5 0.5
B4 318 2
D5 318 2
G2 318 1
G4 318 2
G5 318 2
G3 319 0.5
F3 319.5 0.5
E3 320 0.5
D3 320.5 0.5
C3 321 2
E5 321 1
G3 321 2
G5 322 1
C3 323 1
C6 323 1
E3 323 1
A3 324 2
D5 324 0.5
F3 324 2
F5 324.5 0.5
D5 325 0.5
F5 325.5 0.5
B4 326 0.5
D4 326 1
G3 326 1
D5 326.5 0.5
B4 327 0.5
C3 327 1
D5 327 0.5
A4 327.5 0.5
C5 327.5 0.5
A4 328 0.5
C5 328 0.5
D3 328 1
B4 328.5 0.5
G4 328.5 0.5
B4 329 0.5
D2 329 1
G4 329 0.5
A4 329.5 0.5
F#4 329.5 0.5
C3 330 1
C5 330 2
G2 331 1
C2 332 1
C3 333 0.5
E3 333 0.5
E5 333 1
G3 333.5 0.5
C3 334 0.5
C5 334 1
E3 334 0.5
G3 334.5 0.5
C3 335 0.5
E3 335 0.5
G4 335 1
G3 335.5 0.5
B3 336 2
F5 336 1
G3 336 2
D5 337 1
B4 338 1
B4 339 1
D5 339 1
G3 339 1
B4 340 1
D5 340 1
G3 340 1
B4 341 1
D5 341 1
G3 341 1
C3 342 2
C5 342 0.5
E3 342 2
G4 342.5 0.5
E5 343 0.5
C5 343.5 0.5
G5 344 0.5
E5 344.5 0.5
D5 345 0.5
F3 345 2
F5 345.5 0.5
A5 346 0.5
F5 346.5 0.5
D5 347 0.5
G3 347 1
B4 347.5 0.5
D3 348 2
D5 348 0.5
F#3 348 2
A4 348.5 0.5
D5 349 0.5
F#5 349.5 0.5
A5 350 0.5
F#5 350.5 0.5
C3 351 1
E5 351 0.5
A5 351.5 0.5
D3 352 1
G5 352 0.5
B5 352.5 0.5
D2 353 1
F#5 353 0.5
A5 353.5 0.5
C3 354 2
E3 354 2
E5 354 0.5
C5 354.5 0.5
G5 355 0.5
E5 355.5 0.5
C6 356 0.5
G5 356.5 0.5
D3 357 2
D6 357 1
F#3 357 2
A5 358 0.5
F#5 358.5 0.5
D3 359 1
D5 359 0.5
F#3 359 1
A4 359.5 0.5
B2 360 2
G3 360 2
G5 360 1
B5 361 0.5
G5 361.5 0.5
D5 362 1
B2 363 1
D3 363 1
G5 363 0.5
F#5 363.5 0.5
B2 364 1
D3 364 1
G5 364 0.5
B5 364.5 0.5
B2 365 1
D5 365 1
G3 365 1
B4 366 2
D5 366 2
G2 366 1
G4 366 2
G5 366 2
G3 367 0.5
F3 367.5 0.5
E3 368 0.5
D3 368.5 0.5
C3 369 1
C5 369 1
E4 369 1
C3 370 1
C5 370 1
E4 370 1
C3 371 1
C5 371 1
E4 371 1
G3 372 1
G5 372 0.5
E5 372.5 0.5
D5 373 0.5
G2 373 1
B4 373.5 0.5
G4 374 1
C5 375 0.5
E3 375 2
G4 375.5 0.5
C5 376 0.5
E5 376.5 0.5
E3 377 0.5
G5 377 0.5
C3 377.5 0.5
C5 377.5 0.5
E5 377.5 0.5
B4 378 2
D5 378 2
G2 378 1
G4 378 2
G5 378 2
G3 379 0.5
F3 379.5 0.5
E3 380 0.5
D3 380.5 0.5
B4 381 1
G3 381 2
D5 382 1
G5 383 1
A5 384 0.5
B2 384 1
D3 384 1
G5 384.5 0.5
B2 385 1
D3 385 1
F#5 385 0.5
G5 385.5 0.5
B2 386 1
D5 386 1
G3 386 1
C3 387 1
C5 387 1
E4 387 1
C3 388 1
C5 388 1
E4 388 1
C3 389 1
C5 389 1
E4 389 1
C3 390 1
C5 390 2
G2 391 1
C2 392 1
C5 393 1
E5 393 1
G3 393 1
B4 394 0.5
D5 394 0.5
G2 394 1
B4 394.5 0.5
G4 394.5 0.5
G4 395 1
B2 396 2
D5 396 1
G3 396 2
G5 397 0.5
D5 397.5 0.5
B4 398 0.5
D5 398.5 0.5
A4 399 0.5
C3 399 1
E5 399.5 0.5
B4 400 0.5
D3 400 1
D5 400 0.5
A4 400.5 0.5
C5 400.5 0.5
B4 401 0.5
D2 401 1
G4 401 0.5
A4 401.5 0.5
F#4 401.5 0.5
C3 402 1
D3 402 1
F#5 402 1
C3 403 1
D3 403 1
F#5 403 0.5
D5 403.5 0.5
A5 404 1
C3 404 1
D3 404 1
C3 405 2
C6 405 0.5
E3 405 2
B5 405.5 0.5
C6 406 0.5
G5 406.5 0.5
E5 407 0.5
C5 407.5 0.5
C3 408 0.5
C5 408 1
E3 408 0.5
G3 408.5 0.5
C3 409 0.5
E3 409 0.5
G4 409 1
G3 409.5 0.5
C3 410 0.5
E3 410 0.5
E5 410 1
G3 410.5 0.5
A4 411 1
D2 411 0.5
D5 411 1
F#5 411 1
D3 411.5 0.5
C#3 412 0.5
F#5 412 2
D3 412.5 0.5
C3 413 0.5
D3 413.5 0.5
B2 414 2
G5 414 0.5
B5 414.5 0.5
G5 415 0.5
B5 415.5 0.5
D5 416 1
A4 417 1
C3 417 1
F#3 417 1
A4 418 0.5
C3 418 1
F#3 418 1
D5 418.5 0.5
A3 419 1
C3 419 1
F#5 419 1
B2 420 2
D5 420 0.5
G3 420 2
E5 420.5 0.5
F5 421 0.5
D5 421.5 0.5
C5 422 0.5
G2 422 1
B4 422.5 0.5
C3 423 2
C5 423 1
E3 423 2
G4 424 1
E5 425 1
B2 426 2
D3 426 2
G5 426 1
D5 427 0.5
B4 427.5 0.5
B2 428 1
D3 428 1
G4 428 1
C3 429 0.5
E3 429 0.5
G5 429 1
G3 429.5 0.5
C3 430 0.5
C5 430 1
E3 430 0.5
G3 430.5 0.5
C3 431 0.5
E3 431 0.5
E5 431 1
G3 431.5 0.5
D5 432 0.5
F3 432 2
F5 432.5 0.5
A4 433 0.5
D5 433.5 0.5
B4 434 0.5
G3 434 1
D5 434.5 0.5
C3 435 1
D5 435 1
F#4 435 1
C3 436 1
D5 436 1
F#5 436 1
A5 437 1
C3 437 1
F#5 437 1
C3 438 1
E5 438 0.5
C6 438.5 0.5
B5 439 0.5
D3 439 1
G5 439.5 0.5
A5 440 0.5
D2 440 1
F#5 440.5 0.5
C3 441 2
C6 441 0.5
E3 441 2
B5 441.5 0.5
C6 442 0.5
G5 442.5 0.5
E5 443 0.5
C5 443.5 0.5
F3 444 2
F5 444 0.5
D5 444.5 0.5
A4 445 1
B4 446 1
G3 446 1
C3 447 0.5
C5 447 1
E5 447 1
G4 447 1
B2 447.5 0.5
C3 448 0.5
E5 448 2
D3 448.5 0.5
E3 449 0.5
F#3 449.5 0.5
C3 450 1
C5 450 2
G2 451 1
C2 452 1
C3 453 2
E3 453 2
G5 453 1
F5 454 0.5
E5 454.5 0.5
D5 455 0.5
C5 455.5 0.5
C3 456 2
D5 456 0.5
A4 456.5 0.5
F#5 457 0.5
D5 457.5 0.5
A5 458 0.5
F#5 458.5 0.5
C3 459 2
D5 459 0.5
C#5 459.5 0.5
D5 460 0.5
F#5 460.5 0.5
A5 461 0.5
F#5 461.5 0.5
B2 462 2
D3 462 2
G5 462 0.5
B5 462.5 0.5
G5 463 0.5
D5 463.5 0.5
B4 464 0.5
G4 464.5 0.5
C5 465 0.5
E3 465 2
G3 465 2
G4 465.5 0.5
E5 466 0.5
C5 466.5 0.5
G5 467 1
C3 468 2
E5 468 0.5
D5 468.5 0.5
E5 469 0.5
G5 469.5 0.5
C6 470 0.5
G5 470.5 0.5
B4 471 1
G2 471 2
D5 472 0.5
B4 472.5 0.5
A4 473 0.5
G4 473.5 0.5
C3 474 1
E5 474 0.5
G5 474.5 0.5
D3 475 1
D5 475 0.5
C5 475.5 0.5
B4 476 0.5
D2 476 1
A4 476.5 0.5
C3 477 2
C5 477 0.5
E3 477 2
B4 477.5 0.5
C5 478 0.5
E5 478.5 0.5
C3 479 1
E3 479 1
G4 479 0.5
C5 479.5 0.5
C3 480 1
D5 480 1
F#4 480 1
C3 481 1
D5 481 1
F#4 481 1
C3 482 1
D5 482 1
F#4 482 1
C3 483 2
E5 483 0.5
G3 483 2
D5 483.5 0.5
E5 484 0.5
G5 484.5 0.5
C3 485 1
C6 485 0.5
E3 485 1
G5 485.5 0.5
B2 486 2
D3 486 2
G5 486 0.5
F#5 486.5 0.5
G5 487 0.5
D5 487.5 0.5
B4 488 0.5
G4 488.5 0.5
D5 489 1
G3 489 0.5
F#3 489.5 0.5
G3 490 0.5
G4 490 2
D3 490.5 0.5
B2 491 0.5
G2 491.5 0.5
B2 492 2
D5 492 1
B4 493 1
G4 494 1
B3 495 2
D5 495 0.5
G3 495 2
B5 495.5 0.5
G5 496 0.5
D5 496.5 0.5
B4 497 1
C3 498 2
C5 498 1
E3 498 2
C5 499 0.5
D5 499.5 0.5
E5 500 1
C3 501 2
E3 501 2
G5 501 1
F5 502 0.5
E5 502.5 0.5
D5 503 0.5
E3 503 1
G3 503 1
C5 503.5 0.5
C3 504 1
E5 504 0.5
G5 504.5 0.5
D3 505 1
D5 505 0.5
G5 505.5 0.5
A4 506 0.5
D2 506 1
F#5 506.5 0.5
C3 507 1
C5 507 2
G2 508 1
C2 509 1
B4 510 0.5
G2 510 2
G3 510 2
C5 510.5 0.5
D5 511 0.5
E5 511.5 0.5
B2 512 1
F5 512 0.5
G3 512 1
D5 512.5 0.5
C3 513 1
C5 513 2
G2 514 1
C2 515 1
F3 516 2
F5 516 0.5
A5 516.5 0.5
A4 517 1
B4 518 0.5
G3 518 1
D5 518.5 0.5
C3 519 0.5
E3 519 0.5
G4 519 1
G3 519.5 0.5
C3 520 0.5
C5 520 1
E3 520 0.5
G3 520.5 0.5
C3 521 0.5
E3 521 0.5
E5 521 1
G3 521.5 0.5
E5 522 0.5
G3 522 1
C5 522.5 0.5
B4 523 0.5
G2 523 1
D5 523.5 0.5
G5 524 1
A5 525 0.5
B2 525 2
D3 525 2
G5 525.5 0.5
B5 526 0.5
G5 526.5 0.5
B2 527 1
D3 527 1
D5 527 0.5
G5 527.5 0.5`;
const tableInput = `96 32 69 40 148 104 152 119 98 3 54
22 6 95 17 74 157 60 84 142 87 130
141 128 158 113 163 27 171 114 42 165 10
41 63 13 85 45 167 53 50 156 61 103
105 146 153 161 80 154 99 140 75 135 28
122 46 55 2 97 68 133 86 129 47 37
11 134 110 159 36 118 21 169 62 147 106
30 81 24 100 107 91 127 94 123 33 5
70 117 66 90 25 138 16 120 65 102 35
121 39 136 176 143 71 155 88 77 4 20
26 126 15 7 64 150 57 48 19 31 108
9 56 132 34 125 29 175 166 82 164 92
112 174 73 67 76 101 43 51 137 144 12
49 18 58 160 136 162 168 115 38 59 124
109 116 145 52 1 23 89 72 149 173 44
14 83 79 170 93 151 172 111 8 78 131`;
console.log(challenge(beats(beatsInput), table(tableInput)));
Output
300px
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |