deckerego / macropad_4chord_midi Goto Github PK
View Code? Open in Web Editor NEWA take on the 4chord MIDI project with the Adafruit Macropad
License: Mozilla Public License 2.0
A take on the 4chord MIDI project with the Adafruit Macropad
License: Mozilla Public License 2.0
controls.py
Somehow support 7th chords (and optionally augmented & diminished chords) even tho we only have three keys per note
For example, what is being shown as "Oct: 2" or "C2" is actually being sent as C1 over the MIDI channel
When connected to an Android device the macropad halts at code.py output
and will not boot all the way.
MusicRadar and John Mayer were right, I was wrong:
https://fosstodon.org/@deckerego/110231575203702715
https://en.wikipedia.org/wiki/Take_On_Me
https://www.musicradar.com/news/john-mayer-harry-styles-a-ha-chord-progression
Verse: ii-V-I-IV-V
Chorus: I-iii-vi-IV
Bridge: iii-vii-iii-vii-ii-V
On maybe the 10th measure of a short melody in Hookpad, attempted to send a 7th chord to Hookpad as notes for the melody line. Rather than being recorded in octave order they were recorded randomly (a different sequence after repeated attempts).
No arpeggio delay was configured.
Add a setting for the MIDI channel (possibly set in the control menu)
Currently we only support the major (ionian) mode. We should support the other modes, possibly by rotating the "CHROMATIC_SCALE_NAMES" constant to instead be a "diatonic scale" that is a rotation of C D E F G A B. From https://hellomusictheory.com/learn/mixolydian-mode/:
Modal scales | Notes of the mode |
---|---|
C Ionian mode | C – D – E – F – G – A – B |
D Dorian mode | D – E – F – G – A – B – C |
E Phrygian mode | E – F – G – A – B – C – D |
F Lydian mode | F – G – A – B – C – D – E |
G Mixolydian mode | G – A – B – C – D – E – F |
A Aeolian mode | A – B – C – D – E – F – G |
B Locrian mode | B – C – D – E – F – G – A |
See also https://guitardashboard.com/ as a good way to validate that the additional modes provide the correct progressions.
Properly show diminished chord numerals (e.g. vii°) in progressions.
Love the macropad code, but I have a rather infuriating issue - mine only runs for a few seconds!
I have updated the macropad to CircuitPython 8.0.5, and copied every file from the Macropad.4chord.MIDI.v2.3.0.zip onto the pad without issues, and it fires up perfectly. However after a couple of seconds I get the message:
(snake emoji)[email protected] Keyboard
KeyboardInterrupt:
Code done running.
then:
(snake emoji)Done | 8.0.5
Press any key to ente
r the REPL. Use CTRL-
D to reload.
then:
(snake emoji)REPL | 8.0.5
n 8.0.5 on 2023-03-31
; Adafruit Macropad R
P2040 with rp2040
M105
The M105 continues repeating indefinitely
The only differences between the contents of my Macropad and your zip file is the presence of a file called settings.toml in addition to the settings.py, plus a bootout.txt containing:
Adafruit CircuitPython 8.0.5 on 2023-03-31; Adafruit Macropad RP2040 with rp2040
Board ID:adafruit_macropad_rp2040
UID:DF60BCA0036F5434
boot.py output:
Mounting Read-Only
I am a total noob blindly following instructions with zero knowledge of code or what I'm doing, so apologies if this is an obvious thing that anyone with any clue should know how to resolve!
Many thanks :)
@jedgarpark just posted a great build to the Adafruit Learning System with Hexpad: MIT licensed code available at https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Hexpad/code.py
Aside from the very cool hex layout there are some interesting ideas around choosing modes and the layout of chord intervals - will be interesting to see if there's anything to learn.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.