Comments (5)
Hi Eethann,
You should use Q instead of T for this :)
from orca.
Interesting. The key feature of T
is that it has the implicit modulo of the index, which allows for a pseudo-transposition that wraps around from the end of the scale degrees back to the start. Is there a similarly easy way to do that with Q?
My aim has been to transpose a given note by a given scale degree.
This generally looks something like the grid below, with lots of similar QGT combinations referring to the same scale in comments. The approach makes it easy to switch the mode for the entire grid, but takes up space and time calculating the offsets. Making a "mode" for midi that used scale degrees instead of chromatic notes could simplify this a lot, and open up some nice possibilities (easy modulation across the entire grid, etc.). Apologies if I'm too dense in not seeing the equivalent approach using Q.
.......0a7Q........
847GabcdEfg........
...a.....aaa.......
.....12C4..........
....wC304T0546.....
.....0Y0A0.........
......D207TabcdEfg.
.......:02af1......
...................
...................
..........#abcdEfg#
..........#used.by#
..........#many.Qs#
from orca.
I'm not super familiar with what scales are, so this is a bit beyond me at the moment, but I can show you how to do modulo on-demand:
1X..
6I4.
The reason I suggested Q
was that you can have Octave-Note ports, which might help carrying over B. But it might be too much legwork here.
In my local copy of orca(uxn), I have a hexadecimal operator which I use for controlling lights on stage when I do shows, but you could make yourself an operator that works in a similar way, so you could have ~3a
(A3#). Alternatively, you could do an operator that uses 2 x base36
ports and generate a midi value between 0-72
that could be more easily operated on.
If none of this works, you could make yourself a little midi pre-processor script that offsets the midi notes.
from orca.
Thanks for all of that. Re the modulo, thanks for clarifying that. I'd been working at it and know it's in some of the docs, sorry to have missed it here.
If it's helpful context, the trick with scales is that the offset isn't consistent. E.g. if the notes in a scale are the minor scale ABCDEFG, +2 gets you from A to B, but it only takes +1 to get from B to C. If you want to transpose a note 2 scale degrees consistently, you need to change the amount you add depending on what note you're transposing and to where. If the MIDI implementation has some sense of scales inbuilt, it simplifies this. You just add the number of scale degrees you want to transpose by, and don't need to worry about the variations in # of chromatic steps.
Thanks for the idea of the midi preprocessor, I've been thinking about something along those lines for a few things. I might still give a go at an implementation in my branch, just to test out the concept.
from orca.
hoi niccco!
from orca.
Related Issues (20)
- Tutorial at https://git.sr.ht/~rabbits/orca-examples has a mistake HOT 2
- Found another "bounce" reference HOT 6
- Example code in SourceHut archive has an incorrect definition of the B command HOT 5
- Example on SourceHut "orca-examples" uses old definition of B
- Ableton Link? HOT 2
- Increasing clock precision HOT 4
- Web version down? HOT 4
- issue with some commands : command/. does not work. OS big sur 11.6
- Multiple MIDI output device HOT 3
- Orca VST maybe HOT 1
- Can't start UDP server HOT 1
- npm install doesn't work on macOS Monterey with M1 HOT 2
- Add swing parameter to clock HOT 6
- Feature Idea: Handling increased complexity through multidimensionality / portals HOT 3
- Convert MIDI to Orca HOT 4
- `delete` key
- Should reading `#` uncomment/unlock following characters? HOT 4
- Receive MIDI HOT 2
- Linux Build failling to launch on Ubuntu 22.04 if you don't specify --no-sandbox HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orca.