Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pedal Visualization #79

Closed
frink opened this issue Nov 22, 2020 · 6 comments
Closed

Pedal Visualization #79

frink opened this issue Nov 22, 2020 · 6 comments

Comments

@frink
Copy link

frink commented Nov 22, 2020

For the Sustain Pedal, Soft Pedal and Sostenuto Pedal you could show an icon on the right hand side (partially transparent above the highest octave) which highlights the pedal usage. The pedals could be highlighted with various intensity of color to show the true pumping of the pedals beyond the simple up and down (since many modern samplers do in fact have a different sound for a half down pedal...)

Likewise, the volume pedal could also be illustrated as well for organ pieces this could be quite helpful to show the expression.

I think this would be vary helpful when using this visualization for music education...

@kosua20
Copy link
Owner

kosua20 commented Nov 22, 2020

Hello and thank you for the feedback ! Right now the pedals can be visualized, but the effect is disabled by default (I might modify this if this is hampering discoverability). You have to enable them by checking the corresponding layer in the "Show layers..." panel. From what I've gathered of the MIDI standard specification, they are only ON/OFF signals ; if you have any documentation on how modern samplers communicate the intensity I would be very interested!
For the volume pedal I didn't know the volume CC could be used for this, I'll add an option to display it too, thank you!

@frink
Copy link
Author

frink commented Nov 22, 2020

Damper lift is communicated just like any other midi CC value 0-127 while many early synths interpreted >=64 as on and <=63 as off it has always been variable in the specification. Here are the common pedal CC mappings:

CC 7 = Volume (usually used for overall volume - not pedal)
CC 11 = Expression (usually used for organ style expression swells)
CC 64 = Damper (historically binary but now some synths use variable input)
CC 66 = Sostenuto (historically binary but now some synths use variable input)
CC 67 = Soft (historically binary but now some synths use variable input)

There are many more. MIDI is massive in scope. But these are the main pedals used...

@kosua20
Copy link
Owner

kosua20 commented Nov 22, 2020

Thank you for the details. MIDIVisualizer already support 64/66/67 as binary pedals, but I wasn't aware of the use of 11. If I want to add support for variable input I need to find a way to still support the historical binary interpretation. I could check the overall values used in a track, if there are only two (one < 64 and one ≥ 64) it's probably a binary signal, else display it as variable and adjust the opacity accordingly.

@frink
Copy link
Author

frink commented Nov 23, 2020

Most older controllers send 0 or 127 so there is no gradation unless it was recorded that way.

I think Kurzweil was the first to implement half-pedaling in their hardware. Today most high-end controllers support half-pedaling because its such an expressive part of the pianist's vocabulary. I see pianists use half-pedaling on both the soft pedal and sustain pedal quite regularly... Sadly a lot of DAWs don't have a good facility to visualize this in step editing. Therefore, most modern synth music propitiates the myth that the sustain pedal is a button.

@kosua20
Copy link
Owner

kosua20 commented Nov 27, 2020

Thank you for these details! I've added support for the expression pedal and continuous values in the latest release v5.3. It will adjust the opacity based on the velocity stored, while still supporting the binary mode for compatibility.

@frink
Copy link
Author

frink commented Nov 29, 2020

I'll have to take a look.

@kosua20 kosua20 closed this as completed Dec 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants