Jump to content

Transform Pitch to Control Values, can I include note-off?


Recommended Posts

Howdy all! First-time poster; long-time reader.


I am sending MIDI from Logic via IAC Bus into Quartz Composer. The MIDI Notes Receiver patch in Quartz converts individual pitches into a number between 0 and 1, depending on velocity (0 if vel=0, 1 if vel=127, ~.5 if vel=64, etc.) but does not retain any information indicating register (or MIDI note number), which is exactly the kind of data I want to process in my Quartz composition.


The solution that occurred to me is to send that data from the get go in Logic, before it ever gets to Quartz, which would allow me to used the MIDI Controller Receiver patch instead, which makes things much easier in that environment. After some research, the path of least resistance seems to be transforming pitch to controller values. However, I noticed that for many notes (most consistently 16th-note subdivisions and smaller) would only convert the note-on, giving me a very messy transformation.


Here is the transform operation I'm currently using:




And here is the result:


And here's what I'd like to be able to do:


Any ideas? Many thanks in advance! (And sorry if these screen shots are too big!)






[images too wide removed by moderator - Please keep all screenshots below 800 pixels, thanks. Read Me Before Posting - Forum Guidelines (#8 )]

Link to comment
Share on other sites

Ohhhhh. Wow, it never occurred to me that those dashes actually stand for something. Awesome, that's super helpful, thanks David!


Basically I'm building a MIDI visualizer in Quartz Composer. It can receive MIDI data and convert it in just about any way imaginable. It can then take that data and pipe it into any visual or motion-related parameter you can think of.


For this particular project (my first, trying to keep it simple) I have a MIDI file of 6 instruments. Each instrument is represented as a cube on an x,y,z axis. I want to feed it MIDI note numbers and translate those values into positions on the y-axis so that pitch is represented visually by vertical position.


Kineme.net offers a whole slew of custom Quartz Composer patches that enhance the core MIDI functionality in the programming environment (for Quartz). The standard 'MIDI Note Receiver' in Quartz only translates *any* midi note into a simple binary on/off (0,1) value. So I was tearing my hair out trying to figure out how to convert that from a simple binary to note numbers which I could easily convert into y-axis values.


I got it to work, so now you see 6 cubes moving around perfectly in time with the music and each instrument's range has been mapped to the same area on the y-axis. So, for example, if each instrument plays its lowest note, all 6 cubes hop down to the bottom of the screen, etc.


It's pretty cool! And just the tip of the iceberg.


But it has definitely forced me to really dig deeper into the Transform window and the Environment. Two features that I've avoided up until now. But damn, those things are amazing. Just finally starting to wrap my head around how Transform works (beyond the basic presets which I've used for years). I imagine you'll hear from me again with more nagging questions about these two seriously deep features.


Hope that answers your question! Sorry for rambling, just psyched by the new creative potential. If you want to see what I'm talking about with MIDI visualization in Quartz Composer, check this out.



Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...