AlgoMotion | Bogosort Sheds Giant Steps Until it Sorts the List: 8-Note Version with Scrolling Score! @AlgoMotion | Uploaded January 2024 | Updated October 2024, 7 hours ago.
Bogosort sheds the Giant Steps changes, this time using a list with 8 elements, with a maj9 (add6) on every I, and an altered scale on every ii and V.
The Bogosort algorithm is as follows:
1. Randomly shuffle the list.
2. Check if the list is sorted.
3. If not, go back to 1.
For a list of n elements, there is a 1/n! chance that Bogosort successfully sorts the list on any given pass, since there are n! (n factorial) possible permutations of the list. So with eight elements, the probability of the list being sorted on any given pass is 1/8! = 1/40,320 ≈ 0.000025.
In this instance, the algorithm took 5329 passes to sort the list.
The eight elements of the list are mapped to the notes of a specific scale, depending on which chord is being played in the progression. On every I chord, the algorithm uses the notes of a maj9 (add6) chord rooted on the I, and on every ii and V chord, it uses the notes of an altered scale rooted on the V.
More precisely, the notes used over each chord are:
▶ I chords: 1, 2, maj3, 5, maj6, maj7, 9, maj3 (up an octave, i.e. maj10), rooted on the I chord
▶ ii and V chords: 1, min2, min3, ♭4, ♭5, min6, min7, 1 (octave), rooted on the V chord (the altered scale of the V)
The shuffling algorithm used is the Fisher–Yates Shuffle, from lowest index to highest. The note played is the value of the element at the current index in the outer for-loop of the shuffle algorithm.
The colors used to represent the three keys of the Coltrane changes are inspired loosely by Scriabin's note-to-color mapping:
▶ B major ↔ blue or pearly blue
▶ G major ↔ orange
▶ E♭ major ↔ flesh (glint of steel)
________
Interested in learning more about algorithms and how to program? Here are some useful and/or classic textbooks that I recommend (these are affiliate links, if you buy one, I get a small commission):
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
▶ “Python Crash Course, 3rd Edition: A Hands-On, Project-Based Introduction to Programming” by Eric Matthes: amzn.to/481jQ43
▶ “Design Patterns: Elements of Reusable Object-Oriented Software” by Erich Gamma, Richard Helm, Ralph Johnson, & John Vlissides: amzn.to/49fpr7R
▶ “Discrete Algorithmic Mathematics” by Stephen B. Maurer & Anthony Ralston: amzn.to/4bmsOvG
#jazz #algorithm #altered #music #coltrane #giantsteps #improvisation #bogosort #sortingalgorithm #sorting #visualization #computerscience #programming #code #satisfying #hypnotic #random #studymusic #focusmusic
Bogosort sheds the Giant Steps changes, this time using a list with 8 elements, with a maj9 (add6) on every I, and an altered scale on every ii and V.
The Bogosort algorithm is as follows:
1. Randomly shuffle the list.
2. Check if the list is sorted.
3. If not, go back to 1.
For a list of n elements, there is a 1/n! chance that Bogosort successfully sorts the list on any given pass, since there are n! (n factorial) possible permutations of the list. So with eight elements, the probability of the list being sorted on any given pass is 1/8! = 1/40,320 ≈ 0.000025.
In this instance, the algorithm took 5329 passes to sort the list.
The eight elements of the list are mapped to the notes of a specific scale, depending on which chord is being played in the progression. On every I chord, the algorithm uses the notes of a maj9 (add6) chord rooted on the I, and on every ii and V chord, it uses the notes of an altered scale rooted on the V.
More precisely, the notes used over each chord are:
▶ I chords: 1, 2, maj3, 5, maj6, maj7, 9, maj3 (up an octave, i.e. maj10), rooted on the I chord
▶ ii and V chords: 1, min2, min3, ♭4, ♭5, min6, min7, 1 (octave), rooted on the V chord (the altered scale of the V)
The shuffling algorithm used is the Fisher–Yates Shuffle, from lowest index to highest. The note played is the value of the element at the current index in the outer for-loop of the shuffle algorithm.
The colors used to represent the three keys of the Coltrane changes are inspired loosely by Scriabin's note-to-color mapping:
▶ B major ↔ blue or pearly blue
▶ G major ↔ orange
▶ E♭ major ↔ flesh (glint of steel)
________
Interested in learning more about algorithms and how to program? Here are some useful and/or classic textbooks that I recommend (these are affiliate links, if you buy one, I get a small commission):
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
▶ “Python Crash Course, 3rd Edition: A Hands-On, Project-Based Introduction to Programming” by Eric Matthes: amzn.to/481jQ43
▶ “Design Patterns: Elements of Reusable Object-Oriented Software” by Erich Gamma, Richard Helm, Ralph Johnson, & John Vlissides: amzn.to/49fpr7R
▶ “Discrete Algorithmic Mathematics” by Stephen B. Maurer & Anthony Ralston: amzn.to/4bmsOvG
#jazz #algorithm #altered #music #coltrane #giantsteps #improvisation #bogosort #sortingalgorithm #sorting #visualization #computerscience #programming #code #satisfying #hypnotic #random #studymusic #focusmusic