AlgoMotion
Polyrhythms Visualized: All Polyrhythm Pairs Less Than 10 (Coprime Pairs)
updated
Cities are named after the 12 notes of the chromatic scale, so we have something to listen to as we operate on the graph.
Includes a quick primer on the traveling salesman problem (TSP), conventional approaches to solving it and why they're difficult for larger problem sizes (combinatorial explosion, NP-hardness), some basic heuristics (nearest neighbor algorithm, optimal bitonic tour), and an explanation of genetic algorithms (tournament selection, elitism, crossover, mutation, and a termination condition) and their application to the TSP.
We use "edge recombination crossover" a.k.a. the "edge recombination operator" to crossover parent solutions in the TSP, and "displacement mutation" to mutate offspring.
A genetic algorithm is applied to the TSP with a population of size 20, then again with a population of size 100.
The genetic algorithm visualizations were programmed in Java using a graphical library called Processing (processing.org/).
________________________
Sources:
• Razali, N. M., & Geraghty, J. (2011, July). Genetic algorithm performance with different selection strategies in solving TSP. In Proceedings of the world congress on engineering (Vol. 2, No. 1, pp. 1-6). Hong Kong, China: International Association of Engineers. iaeng.org/publication/WCE2011/WCE2011_pp1134-1139.pdf
• Larranaga, P., Kuijpers, C. M. H., Murga, R. H., Inza, I., & Dizdarevic, S. (1999). Genetic algorithms for the travelling salesman problem: A review of representations and operators. Artificial intelligence review, 13, 129-170. cig.fi.upm.es/wp-content/uploads/2024/01/Genetic-algorithms-for-the-travelling-salesman-problem-A-review-of-representations-and-operators.pdf
• Estimate for number of atoms in the observable universe: "How many atoms are in the observable universe?" by Harry Baker, July 10, 2021: livescience.com/how-many-atoms-in-universe.html
________________________
Further Reading (affiliate links):
▶ "Genetic Algorithms in Search, Optimization, and Machine Learning" by David E. Goldberg: amzn.to/3YgQkpw
▶ "Evolutionary Deep Learning: Genetic algorithms and neural networks" by Micheal Lanham: amzn.to/4flymbN
▶ "Introduction to Algorithms" (4th Edition) by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, & Clifford Stein : amzn.to/3WlnnGj
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
0:00 The Traveling Salesman Problem
0:33 Naive Brute Force, Combinatorial Explosion
1:13 Held-Karp Algorithm
1:43 Other Exact Algorithms for the TSP
1:54 NP-Hardness
2:04 Heuristics
2:13 Nearest Neighbor Algorithm
2:59 Optimal Bitonic Tour
3:23 Genetic Algorithm Overview
3:38 Fitness
3:52 Initial Population Generation
4:07 Elitism
4:15 k-Way Tournament Selection
4:36 Crossover
5:10 Mutation
5:38 Termination Condition
5:59 Genetic Algorithm Summary
6:11 Genetic algorithm evolves a solution to the TSP with population size 20
36:09 Genetic algorithm evolves a solution the TSP with population size 100
#visualization #computerscience #computation #geneticalgorithm #java #processing #computermusic #algorithmiccomposition #satisfying #educational #algorithm #ai
Part 1: youtu.be/mOKmc099Wcs
The Collatz conjecture is also known as the 3n + 1 problem, the 3x + 1 problem, the Ulam conjecture, Kakutani's problem, the Thwaites conjecture, Hasse's algorithm, or the Syracuse problem.
Three different strategies are used to map the "hailstone sequences" into sequences of frequencies: multiplying each hailstone number by a "base frequency"; multiplying each hailstone number by an increment frequency and adding it to a base frequency; and a logarithmic mapping.
An attack, decay, sustain, release (ADSR) envelope is used on pure sine waves to generate the tones, followed by a gentle low-pass filter to smooth out the perceived loudness across the frequency range.
These visualizations were written in Java using a graphical library called Processing (processing.org/).
0:00 The Collatz Conjecture Recap
0:53 Strategy No. 1
3:51 Strategy No. 2
6:32 Strategy No. 3
#math #music #microtonal #musictheory #unsolved #patterns #code #java #software #computerscience #visualization #algorithmicmusic #algorithmiccomposition #part2
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
This pattern is an "oscillator" with period 5, meaning it repeats itself every 5 generations.
The finer details of the Game of Life and the music generation process are explained in the long form video: youtu.be/b2SjVwYNr54
This visualization was written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
#music #computermusic #algorithmiccomposition #algorithmicmusic #algorithm #math #cellularautomata #gameoflife #computerscience
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
This pattern is a "spaceship", meaning it translates itself across the grid.
The finer details of the Game of Life and the music generation process are explained in the long form video: youtu.be/b2SjVwYNr54
This visualization was written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
#music #computermusic #algorithmiccomposition #algorithmicmusic #algorithm #math #cellularautomata #gameoflife #computerscience
This is the fourth smallest known spaceship in terms of number of cells.
The finer details of the Game of Life and the music generation process are explained in the long form video: youtu.be/b2SjVwYNr54
This visualization was written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
#music #computermusic #algorithmiccomposition #algorithmicmusic #algorithm #math #cellularautomata #gameoflife #computerscience
This pattern is a "spark" that takes 45 generations to completely die out.
The finer details of the Game of Life and the music generation process are explained in the long form video: youtu.be/b2SjVwYNr54
This visualization was written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
#music #computermusic #algorithmiccomposition #algorithmicmusic #algorithm #math #cellularautomata #gameoflife #computerscience
This pattern is the fifth smallest known spaceship in terms of number of cells.
The finer details of the Game of Life and the music generation process are explained in the long form video: youtu.be/b2SjVwYNr54
This visualization was written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
#music #computermusic #algorithmiccomposition #algorithmicmusic #algorithm #math #cellularautomata #gameoflife #computerscience
This pattern is a "spark" that takes 130 generations to completely die out.
The finer details of the Game of Life and the music generation process are explained in the long form video: youtu.be/b2SjVwYNr54
This visualization was written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
#music #computermusic #algorithmiccomposition #algorithmicmusic #algorithm #math #cellularautomata #gameoflife #computerscience
The finer details of the Game of Life and the music generation process are explained in the long form video: youtu.be/b2SjVwYNr54
This visualization was written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
#music #computermusic #algorithmiccomposition #algorithmicmusic #algorithm #math #cellularautomata #gameoflife #computerscience
We experiment with different note layouts and starting patterns to produce a variety of musical results.
0:00 Conway's Game of Life
1:38 Game of Life as a Musical Instrument
3:01 Thinning strategies
4:51 Midweight Spaceship (MWSS), harmonic minor
5:18 Heavyweight Spaceship (HWSS), major pentatonic
5:43 Glider, melodic minor (ascending)
6:12 Loafer, major scale
7:22 31P8H4V0, melodic minor (ascending)
8:00 Canada Goose, major scale
8:40 Table, major 13 chord
8:52 Table, major pentatonic
9:01 Twin Bees Shuttle Spark, melodic minor (ascending)
9:11 Z-hexomino, harmonic minor
9:30 Die hard, harmonic minor
10:17 Octagon 2, major scale
10:35 Pinwheel, major scale
10:55 Figure eight, melodic minor (ascending)
11:17 Pentadecathlon, major scale
11:40 T-tetromino, major scale
These visualizations were written in Java using the Processing graphical library (https://processing.org). The audio was generated using Java's built-in MIDI library (javax.sound.midi).
Life Lexicon: conwaylife.com/ref/lexicon/lex.htm
________
Interested in learning more about algorithms, math, 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
▶ “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
#music #math #cellularautomata #gameoflife #conway #computermusic #algorithmicmusic #algorithmiccomposition #patterns #algorithm #computerscience
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
The Collatz conjecture is also known as the 3n + 1 problem, the 3x + 1 problem, the Ulam conjecture, Kakutani's problem, the Thwaites conjecture, Hasse's algorithm, or the Syracuse problem.
Different strategies are used to map the "hailstone sequences" into sequences of MIDI note numbers, including a straightforward "additive" numerical mapping, "directional" mappings using fixed jump sizes, and mappings based on pitch class.
These visualizations were written in Java using a graphical library called Processing (processing.org), and Java's built-in MIDI library for generating MIDI data (package javax.sound.midi).
0:00 The Collatz Conjecture
1:27 Mapping to MIDI Notes
2:07 Strategy No. 1
4:03 Strategy No. 2
4:45 Strategy No. 3
5:21 Strategy No. 4
5:54 Strategy No. 5
7:18 Strategy No. 6
8:04 Strategy No. 7
9:12 Extra Long Example
________
Interested in learning more about algorithms, math, 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):
▶ "The Ultimate Challenge: The 3x+1 Problem" by Jeffrey C. Lagarias: amzn.to/4aVejxH
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
▶ “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
#math #music #musictheory #unsolved #patterns #code #java #software #computerscience #visualization #algorithmicmusic #algorithmiccomposition
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
This visualization was written in Java using a graphical library called Processing (processing.org), and Java's built-in MIDI library for sound (package javax.sound.midi).
________
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
▶ “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
#music #visualization #polygon #pentagon #circleoffifths #musictheory #scale #chromaticscale #math #geometry #rotation #modulararithmetic
This visualization was written in Java using a graphical library called Processing (processing.org), and Java's built-in MIDI library for sound (package javax.sound.midi).
________
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
▶ “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
#music #visualization #polygon #pentagon #circleoffifths #musictheory #scale #chromaticscale #math #geometry #rotation #modulararithmetic
Going back to the original wide screen aspect ratio for this stream!
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
The first couple of regular polygons (the triangle and the square) have easy-to-foresee musical results, but others are not so obvious until you see/hear them!
This visualization was written in Java using a graphical library called Processing (processing.org), and Java's built-in MIDI library for sound (package javax.sound.midi).
0:00 Triangle
1:17 Square
2:10 Pentagon
3:14 Hexagon
4:06 Heptagon
5:04 Octagon
6:08 Nonagon
7:13 Decagon
8:09 Hendecagon
9:11 Dodecagon
________
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
▶ “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
#music #musictheory #circleoffifths #polygon #code #java #software #computerscience #visualization #geometry #rotation #algorithmicmusic #algorithmiccomposition
Using all 12 notes (the chromatic scale) as the corners of a dodecagon, a fractal pattern is formed using the chaos game.
From the longer video: youtu.be/alUhtuYt2DQ
________
Interested in learning more about fractals, 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):
▶ "The Fractal Geometry of Nature" by Benoit B. Mandelbrot: amzn.to/4apa7pT
▶ "Fractals Everywhere" by Michael F. Barnsley: amzn.to/4apgh9r
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
▶ “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
#fractal #math #music #programming #code #java #processing #computerscience #beauty #art #music #mathematical #sierpinski #triangle #chromatic #scale #visualization
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Using the notes C, D, E, G♭, A♭, and B♭ (the whole-tone scale) as the corners of a hexagon, a fractal pattern is formed using the chaos game.
From the longer video: youtu.be/alUhtuYt2DQ
________
Interested in learning more about fractals, 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):
▶ "The Fractal Geometry of Nature" by Benoit B. Mandelbrot: amzn.to/4apa7pT
▶ "Fractals Everywhere" by Michael F. Barnsley: amzn.to/4apgh9r
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
▶ “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
#fractal #math #music #programming #code #java #processing #computerscience #beauty #art #music #mathematical #sierpinski #triangle #wholetone #scale #visualization
Using the notes C, E, and A♭ (an augmented chord) as the corners of a triangle, the Sierpinski Triangle is generated via the chaos game.
From the longer video: youtu.be/alUhtuYt2DQ
________
Interested in learning more about fractals, 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):
▶ "The Fractal Geometry of Nature" by Benoit B. Mandelbrot: amzn.to/4apa7pT
▶ "Fractals Everywhere" by Michael F. Barnsley: amzn.to/4apgh9r
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
▶ “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
#fractal #math #music #programming #code #java #processing #computerscience #beauty #art #music #mathematical #sierpinski #triangle #augmented
New this stream:
▶ Minor aesthetic tweaks (background images)
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
▶ “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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
We start using a triangle on the notes C, E, and A♭ (forming an augmented chord), and play the chaos game to generate the Sierpiński triangle.
Then we use a hexagon on the notes C, D, E, G♭, A♭, and B♭ (a whole-tone scale). For optimal packing, the ratio used to divide the lines in the chaos game is 0.667 for a hexagon.
Next we use all 12 notes (the chromatic scale) to form a dodecagon fractal. The dodecagon is optimally packed with a ratio of 0.789 to divide the lines.
Finally, we use a square (i.e. a diamond) on the notes C, E♭, G♭, and A (forming a diminished 7th chord). Playing the normal chaos game on a square, however, doesn't yield a fractal. It only produces uniform noise within the square. When a simple restriction is added: not allowing any corner to be repeated twice in a row, a beautiful fractal results.
0:00 Sierpiński Triangle
3:54 Hexagon Chaos Game
7:05 Dodecagon Chaos Game
10:27 Square Chaos Game
________
Interested in learning more about fractals, 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):
▶ "The Fractal Geometry of Nature" by Benoit B. Mandelbrot: amzn.to/4apa7pT
▶ "Fractals Everywhere" by Michael F. Barnsley: amzn.to/4apgh9r
▶ “Algorithms” (4th Edition) by Robert Sedgewick & Kevin Wayne: amzn.to/3uo25xR
▶ “Effective Java” (3rd Edition) by Joshua Bloch: amzn.to/3HOnYJL
▶ “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
#fractal #math #music #beauty #art #mathematics #code #programming #computerscience #processing #java #visualization #algorithmicmusic #computermusic #experimental #hypnotic #randomness
New features:
▶ Minor69 chord (available to everyone), use any of: min69, minor69, m69, -69
▶ Add comments to your commands (available to everyone): the interpreter will ignore everything after "//" or "#" (not including # within note commands) so you can write arbitrary text after your command.
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
New features:
▶ Minor69 chord (available to everyone), use any of: min69, minor69, m69, -69
▶ Add comments to your commands (available to everyone): the interpreter will ignore everything after "//" or "#", so you can write arbitrary text after your command.
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
New features:
▶ Minor69 chord (available to everyone), use any of: min69, minor69, m69, -69
▶ Add comments to your commands (available to everyone): the interpreter will ignore everything after "//" or "#", so you can write arbitrary text after your command.
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Longer version (256 steps): youtu.be/_7oxzD9SFKo
In the The On-Line Encyclopedia of Integer Sequences (OEIS), the Toothpick Sequence is sequence number A139250: oeis.org/A139250
To generate the toothpick sequence, at each step add a toothpick to the end of every "exposed" toothpick. Two toothpicks may never overlap, and the midpoint of each new toothpick must touch the endpoint of exactly one existing toothpick. An endpoint is "exposed" if it does not touch any other toothpick.
At steps of the form 2^k (powers of 2), the number of new toothpicks at those steps are equal to 2^k, and they are always placed along two lines perpendicular to the initial toothpick.
Chord Selection:
=============
The chords move through the circle of fifths until a "power of 2" step is reached. Each chord is selected so that every time we arrive at a "power of 2" step, the chord is a C.
The exact quality of each chord was manually selected for each pitch class (i.e. for all 12 notes). The number of notes in each chord and the MIDI velocity of each note are functions of how many new toothpicks are placed at a given step.
The code for creating this video was written in Java using the Processing graphical library (processing.org/).
#math #art #music #toothpick #sequence #circleoffifths #musictheory #algorithmicmusic #visualization #mathematics #cellularautomata #algorithm #java #code #computerscience #fractal #hypnotic #mesmerizing #calming #calmingmusic #audiovisual #studymusic #focusmusic
In the The On-Line Encyclopedia of Integer Sequences (OEIS), the Toothpick Sequence is sequence number A139250: oeis.org/A139250
To generate the toothpick sequence, at each step add a toothpick to the end of every "exposed" toothpick. Two toothpicks may never overlap, and the midpoint of each new toothpick must touch the endpoint of exactly one existing toothpick. An endpoint is "exposed" if it does not touch any other toothpick.
At steps of the form 2^k (powers of 2), the number of new toothpicks at those steps are equal to 2^k, and they are always placed along two lines perpendicular to the initial toothpick.
Chord Selection:
=============
The chords move through the circle of fifths until a "power of 2" step is reached. Each chord is selected so that every time we arrive at a "power of 2" step, the chord is a C.
The exact quality of each chord was manually selected for each pitch class (i.e. for all 12 notes). The number of notes in each chord and the MIDI velocity of each note are functions of how many new toothpicks are placed at a given step.
The code for creating this video was written in Java using the Processing graphical library (processing.org/).
________
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
#math #art #music #toothpick #sequence #circleoffifths #musictheory #algorithmicmusic #visualization #mathematics #cellularautomata #algorithm #java #code #computerscience #fractal #hypnotic #mesmerizing #calming #calmingmusic #audiovisual #studymusic #focusmusic
New member-only features:
▶ Change the melody instrument with one of the following commands: rhodes, rhodes2, organ, pipeorgan, vibes, marimba, nylon, electric, strings, brass, whistle, beep, synth, dreamsynth, shortsynth, glisssynth, vocal.
▶ Use a cymbal pattern of any length between 1 and 16 (e.g. cym200, cym2010, cym1000200020120020, etc.).
▶ New chords: 7sus2, 7sus4, 9sus4, min7#11, min7b9.
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, changing the drum pattern, changing the color theme, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj7 C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
The chord changes are from the first 16 bars of Arabesque No. 1 (looped).
________
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 six elements, the probability of the list being sorted on any given pass is 1/6! = 1/720 ≈ 0.00139.
In this instance, the algorithm took 1051 passes to sort the list.
The six elements of the list are mapped to notes of a specific scale or chord, depending on which chord is being played in the progression.
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.
________
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
#debussy #algorithm #music #musictheory #piano #classical #impressionist #arabesque #meme #random #randomness #improvisation #bogosort #sortingalgorithm #sorting #visualization #computerscience #programming #code #satisfying #asmr #scrollingscore #transcription #hypnotic #lullaby #sleepmusic #sleepingmusic #studymusic #focusmusic
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.0000248.
In this instance, the algorithm took 3154 passes to sort the list.
The eight elements of the list are mapped to notes of a specific scale or chord, depending on which chord is being played in the progression.
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.
________
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
#bach #algorithm #music #musictheory #classical #baroque #meme #prelude #random #randomness #improvisation #bogosort #arpeggio #arpeggios #sortingalgorithm #sorting #visualization #computerscience #programming #code #satisfying #asmr #scrollingscore #transcription #hypnotic #studymusic #focusmusic
A follow-up stream, as the first one tonight was relatively short.
New member-only and Super Chat-only commands:
▶ Change the color theme with "darkmode" and "lightmode"
▶ Change the cymbal pattern with commands like "cym20102010" (2 is an accent, 1 is a regular hit).
▶ Ten tempo tiers (t0, t1, t2, ... t9).
▶ Shorter mute command syntax.
▶ New member-only scales/chords: augmaj7 (Aug major 7 chord), dblharmmajor (double harmonic major scale)
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj7 C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
New member-only and Super Chat-only commands:
▶ Change the color theme with "darkmode" and "lightmode"
▶ Change the cymbal pattern with commands like "cym20102010" (2 is an accent, 1 is a regular hit).
▶ Ten tempo tiers (t0, t1, t2, ... t9).
▶ Shorter mute command syntax.
Become a channel member to help keep this channel viable, and unlock full access to all commands, including tempo changes, muting instruments, and custom note specification: youtube.com/channel/UCuiNK3mwhlVnxNJNyAcr3iw/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyNotes", for example:
Eb.Bbmaj7 C.Ebmaj7 F.Fmin7 Bb.Bdim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Ebmaj7 Cmin7 Fmin7 Bb7
If no chord is specified, a major chord is assumed, so "C G F G" is valid syntax.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library (processing.org), and gRPC (grpc.io) to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Thanks to @pianoinvalhalla for first writing this progression during a ChomboSort live stream (the interactive chat-controlled version of this bogosort audio-visualization).
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 six elements, the probability of the list being sorted on any given pass is 1/6! = 1/720 ≈ 0.00139.
In this instance, the algorithm took 1040 passes to sort the list.
The six elements of the list are mapped to notes of a specific scale or chord, depending on which chord is being played in the progression.
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.
________
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
#debussy #algorithm #music #musictheory #classical #impressionist #clairdelune #meme #random #randomness #improvisation #bogosort #sortingalgorithm #sorting #visualization #computerscience #programming #code #satisfying #asmr #scrollingscore #transcription #hypnotic #studymusic #focusmusic
Each ball gets "highlighted" while the others are "dampened" to help you hear and understand the individual parts of the polyrhythm in their relation to the whole.
The balls bounce according to the rules of Newtonian physics, assuming there's no air resistance, no losses due to friction, etc. (i.e. "perfectly elastic" bounces).
Most of the process of creating of this video was live streamed. Those interested in the coding process and technologies used can watch the livestream VODs here: youtube.com/playlist?list=PLalbhJlZQkkkPc9k0-hpq-cSoHoKDDiZR
Other videos from @AlgoMotion you might enjoy:
▶youtu.be/D1blQCd2PhQ
▶youtu.be/R-S7uL_qCTo
▶youtu.be/5lhBFJAzKlI
________
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
#music #polyrhythm #polyrhythms #meme #rhythm #jacobcollier #computerscience #visualization #code #physics #hypnotic #asmr #relaxing #java #processing
Become a channel member to unlock full access to all commands, including tempo changes, muting instruments, and custom note specification: youtube.com/@AlgoMotion/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With a 7-element list, the probability of a successful sort on any pass is 1/(7!) = 1/5040 ≈ 0.000198.
________
The general syntax is: "BassNote.MelodyRootNote.MelodyNoteSpec", for example:
Eb.Bb.maj7 C.Eb.maj7 F.F.min7 Bb.B.dim7
For a I-vi-ii-V in Eb major.
When you want to use the same melody note root as the bass note, you can use the shorthand notation and just specify a single note, e.g.:
Eb.maj7 C.min7 F.min7 Bb.7
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'.maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library, and gRPC to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
Become a channel member to unlock full access to all commands, including tempo changes, muting instruments, and custom note specification: youtube.com/@AlgoMotion/join
________
Chat-Operated Musical Bogosort (ChomboSort) is an extension of the "Bogosort Sheds" videos from @AlgoMotion, wherein you (the users in chat) control the notes bogosort plays by typing commands.
Bogosort is a (poor) sorting algorithm that attempts to sort a list by randomly shuffling it, checking if it's sorted, and trying again repeatedly until it's sorted. In ChomboSort, the elements in the list are mapped to musical notes which you see and hear being played back in real time as the sort proceeds.
The stream ends when the list is successfully sorted. With an 8-element list, the probability of a successful sort on any pass is 1/(8!) = 1/40,320 ≈ 0.0000248.
________
The general syntax is: "BassNote.MelodyRootNote.MelodyNoteSpec", for example:
Eb.Eb.maj7 C.C.min7 F.F.min7 Bb.Bb.7
For a I-vi-ii-V in Eb major.
To lower or raise the bass note, use a comma or apostrophe, respectively. For example: "C,.C'.maj" plays the bass note an octave lower, and the melody notes an octave higher.
Use "b" and "#" for flat and sharp, respectively. The commands are *not* case sensitive.
If any part of your command is considered invalid syntax, the whole command will be ignored. Refer to the syntax guide (bit.ly/chombosort-syntax) for a complete command reference.
ChomboSort is written primarily in Java using the Processing graphical library, and gRPC to connect the major system components.
________
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
#music #algorithm #computermusic #interactive #live #livestream #algorithmicmusic #algorithmiccomposition #sorting #java #processing #code #computerscience #jazz #musictheory #scales #chords #chat #random #randomness #hypnotic #studymusic #focusmusic
The algorithm for generating a MIDI file from a given image is roughly:
1. Run edge detection on the original image.
2. Dilate the grayscale edge image.
3. Downsample the image to a height matching the number of notes in the desired range.
4. Convert the downsampled image to MIDI by constraining the notes to certain pitches over time.
#midiart #music #algorithm #computervision #midi #computermusic #donnalee #charlieparker #bird #jazz #code #programming #images #visualization #visuals #art #piano #sax #saxophone
The algorithm for generating a MIDI file from a given image is roughly:
1. Run edge detection on the original image.
2. Dilate the grayscale edge image.
3. Downsample the image to a height matching the number of notes in the desired range.
4. Convert the downsampled image to MIDI by constraining the notes to certain pitches over time.
#midiart #music #algorithm #computervision #midi #computermusic #dukeellington #taketheatrain #atrain #jazz #code #programming #images #visualization #visuals #art #piano
The algorithm for generating a MIDI file from a given image is roughly:
1. Run edge detection on the original image.
2. Dilate the grayscale edge image.
3. Downsample the image to a height matching the number of notes in the desired range.
4. Convert the downsampled image to MIDI by constraining the notes to certain pitches over time.
#midiart #music #algorithm #computervision #midi #computermusic #ellafitzgerald #ella #rhythmchanges #igotrhythm #jazz #code #programming #images #visualization #visuals #art #piano
The algorithm for generating a MIDI file from a given image is roughly:
1. Run edge detection on the original image.
2. Dilate the grayscale edge image.
3. Downsample the image to a height matching the number of notes in the desired range.
4. Convert the downsampled image to MIDI by constraining the notes to certain pitches over time.
#midiart #music #algorithm #computervision #midi #computermusic #dizzygillespie #trumpet #horn #jazz #code #programming #images #visualization #visuals #art #piano
The algorithm for generating a MIDI file from a given image is roughly:
1. Run edge detection on the original image.
2. Dilate the grayscale edge image.
3. Downsample the image to a height matching the number of notes in the desired range.
4. Convert the downsampled image to MIDI by constraining the notes to certain pitches over time.
#midiart #music #algorithm #computervision #midi #computermusic #giantsteps #coltrane #trane #johncoltrane #jazz #code #programming #images #visualization #visuals #art #piano #sax #saxophone
The algorithm for generating a MIDI file from a given image is roughly:
1. Run edge detection on the original image.
2. Dilate the grayscale edge image.
3. Downsample the image to a height matching the number of notes in the desired range.
4. Convert the downsampled image to MIDI by constraining the notes to certain pitches over time.
#midiart #music #algorithm #computervision #midi #computermusic #autumnleaves #jazz #code #programming #images #visualization #visuals #art #piano
Includes the standards Autumn Leaves, Giant Steps, Night in Tunisia, Rhythm Changes (I Got Rhythm), Take the "A" Train, and Donna Lee, set to images of a leaf, John Coltrane, Dizzy Gillespie, Ella Fitzgerald, Duke Ellington, and Charlie Parker.
The algorithm for generating a MIDI file from a given image is roughly:
1. Run edge detection on the original image.
2. Dilate the grayscale edge image.
3. Downsample the image to a height matching the number of notes in the desired range.
4. Convert the downsampled image to MIDI by constraining the notes to certain pitches over time.
I intend to explain the algorithm in more detail in a future video, stay tuned for that!
________
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
#midiart #music #algorithm #computervision #midi #computermusic #autumnleaves #dukeellington #giantsteps #coltrane #dizzygillespie #taketheatrain #charlieparker #bird #ellafitzgerald #rhythmchanges #jazz #code #programming #images #visualization #visuals #art #sax #piano