This document provides comprehensive test results for implementing progressive transformations in the Rhythm Pattern Explorer plugin. It compares all 8 progressive transformations with the webapp implementation to ensure accurate plugin behavior.
Algorithm: Barlow Indispensability
Mode: Concentration (removing onsets)
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 8 | 11111111 | All beats active |
1 | 7 | 10111111 | Remove position 1 (least indispensable) |
2 | 6 | 10101111 | Remove position 3 (least indispensable) |
3 | 5 | 10101011 | Remove position 5 (least indispensable) |
4 | 4 | 10101010 | Remove position 7 (least indispensable) |
5 | 3 | 10001010 | Remove position 2 (medium indispensable) |
6 | 2 | 10001000 | Remove position 6 (medium indispensable) |
7 | 1 | 10000000 | Remove position 4, keep downbeat |
Algorithm: Barlow Indispensability
Mode: Dilution (adding onsets)
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 1 | 10000000 | Only downbeat |
1 | 2 | 10001000 | Add position 4 (highest indispensability) |
2 | 3 | 10101000 | Add position 2 (medium indispensability) |
3 | 4 | 10101010 | Add position 6 (medium indispensability) |
4 | 5 | 11101010 | Add position 1 (least indispensable) |
5 | 6 | 11111010 | Add position 3 (least indispensable) |
6 | 7 | 11111110 | Add position 5 (least indispensable) |
7 | 8 | 11111111 | Add position 7 (least indispensable) |
Algorithm: Wolrab (Anti-Barlow)
Mode: Concentration (removing onsets)
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 8 | 11111111 | All beats active |
1 | 7 | 01111111 | Remove position 0 (most indispensable - downbeat!) |
2 | 6 | 01110111 | Remove position 4 (highest indispensability) |
3 | 5 | 01010111 | Remove position 2 (medium indispensable) |
4 | 4 | 01010101 | Remove position 6 (medium indispensable) |
5 | 3 | 00010101 | Remove position 1 (least indispensable) |
6 | 2 | 00000101 | Remove position 3 (least indispensable) |
7 | 1 | 00000001 | Remove position 5, keep position 7 |
Algorithm: Wolrab (Anti-Barlow)
Mode: Dilution (adding onsets)
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 1 | 10000000 | Only downbeat |
1 | 2 | 11000000 | Add position 1 (least indispensable) |
2 | 3 | 11010000 | Add position 3 (least indispensable) |
3 | 4 | 11010100 | Add position 5 (least indispensable) |
4 | 5 | 11010101 | Add position 7 (least indispensable) |
5 | 6 | 11110101 | Add position 2 (medium indispensable) |
6 | 7 | 11110111 | Add position 6 (medium indispensable) |
7 | 8 | 11111111 | Add position 4 (highest indispensability) |
Algorithm: Euclidean (Bjorklund)
Mode: Concentration
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 8 | 11111111 | All beats active |
1 | 7 | 11111011 | E(7,8) - maximally even distribution |
2 | 6 | 11011011 | E(6,8) - maximally even distribution |
3 | 5 | 10110110 | E(5,8) - maximally even distribution |
4 | 4 | 10101010 | E(4,8) - maximally even distribution |
5 | 3 | 10010010 | E(3,8) - maximally even distribution |
6 | 2 | 10010000 | E(2,8) - maximally even distribution |
7 | 1 | 10000000 | E(1,8) - single downbeat |
Algorithm: Euclidean (Bjorklund)
Mode: Dilution
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 1 | 10000000 | E(1,8) - single downbeat |
1 | 2 | 10010000 | E(2,8) - maximally even distribution |
2 | 3 | 10010010 | E(3,8) - maximally even distribution |
3 | 4 | 10101010 | E(4,8) - maximally even distribution |
4 | 5 | 10110110 | E(5,8) - maximally even distribution |
5 | 6 | 11011011 | E(6,8) - maximally even distribution |
6 | 7 | 11111011 | E(7,8) - maximally even distribution |
7 | 8 | 11111111 | E(8,8) - all beats active |
Algorithm: Dilcue (Anti-Euclidean)
Mode: Concentration
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 8 | 11111111 | All beats active |
1 | 7 | 01111111 | Complement of E(1,8) |
2 | 6 | 01101111 | Complement of E(2,8) |
3 | 5 | 01101101 | Complement of E(3,8) |
4 | 4 | 01010101 | Complement of E(4,8) |
5 | 3 | 01001001 | Complement of E(5,8) |
6 | 2 | 00100100 | Complement of E(6,8) |
7 | 1 | 00000100 | Complement of E(7,8) |
Algorithm: Dilcue (Anti-Euclidean)
Mode: Dilution
Step | Onsets | Pattern | Description |
---|---|---|---|
Base | 1 | 10000000 | Single downbeat |
1 | 2 | 00100100 | Complement of E(6,8) |
2 | 3 | 01001001 | Complement of E(5,8) |
3 | 4 | 01010101 | Complement of E(4,8) |
4 | 5 | 01101101 | Complement of E(3,8) |
5 | 6 | 01101111 | Complement of E(2,8) |
6 | 7 | 01111111 | Complement of E(1,8) |
7 | 8 | 11111111 | All beats active |
Based on Clarence Barlow’s concept of indispensability values for different metrical positions.
Indispensability Table for 8 steps:
Position 0: 1.000 (downbeat - most indispensable)
Position 1: 0.333 (least indispensable)
Position 2: 0.666 (medium indispensable)
Position 3: 0.333 (least indispensable)
Position 4: 0.833 (high indispensable - halfway point)
Position 5: 0.333 (least indispensable)
Position 6: 0.666 (medium indispensable)
Position 7: 0.333 (least indispensable)
Transformation Rules:
Inverts the Barlow logic to create anti-metrical patterns.
Transformation Rules:
Uses the Bjorklund algorithm to create maximally even distributions.
Transformation Rules:
Generates the complement of Euclidean patterns.
Transformation Rules:
Use the patterns above to validate your plugin implementation:
The test file /Users/alex/Documents/Coding/rhythm_pattern_explorer/progressive_test_simple.js
can be run to regenerate these results for verification.
Algorithm | Concentration Strategy | Dilution Strategy | Downbeat Treatment |
---|---|---|---|
Barlow (B) | Remove least indispensable | Add to most indispensable | Always preserved |
Wolrab (W) | Remove most indispensable | Add to least indispensable | Can be removed |
Euclidean (E) | Generate E(k,n) | Generate E(k,n) | Depends on math |
Dilcue (D) | Generate complement | Generate complement | Depends on math |
This comprehensive reference should enable accurate implementation of all 8 progressive transformations in the plugin, with exact pattern matching to the webapp behavior.