Giter VIP home page Giter VIP logo

Comments (5)

neauoire avatar neauoire commented on June 8, 2024

Hi Eethann,

You should use Q instead of T for this :)

from orca.

eethann avatar eethann commented on June 8, 2024

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.

neauoire avatar neauoire commented on June 8, 2024

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.

eethann avatar eethann commented on June 8, 2024

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.

sense-amr avatar sense-amr commented on June 8, 2024

hoi niccco!

from orca.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.