{"id":13974,"date":"2026-05-16T09:52:53","date_gmt":"2026-05-16T07:52:53","guid":{"rendered":"https:\/\/store.algosyntax.com\/?post_type=download&#038;p=13974"},"modified":"2026-05-16T10:23:00","modified_gmt":"2026-05-16T08:23:00","slug":"umg-piano-keys","status":"publish","type":"download","link":"https:\/\/store.algosyntax.com\/marketplace\/unreal-engine\/umg-piano-keys\/","title":{"rendered":"UMG Piano Keys"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"13974\" class=\"elementor elementor-13974\" data-elementor-post-type=\"download\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93726f6 e-flex e-con-boxed e-con e-parent\" data-id=\"93726f6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3716991 elementor-widget elementor-widget-heading\" data-id=\"3716991\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">UMG Piano Keys<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d88d380 e-flex e-con-boxed e-con e-parent\" data-id=\"d88d380\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4af3882 elementor-widget elementor-widget-text-editor\" data-id=\"4af3882\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"1jezs61\" data-start=\"18\" data-end=\"56\">Piano keyboard UI for Unreal Engine<\/h2><p data-start=\"58\" data-end=\"165\">Build clean, interactive piano key interfaces in UMG without rebuilding keyboard layout logic from scratch.<\/p><p data-start=\"167\" data-end=\"344\"><strong data-start=\"167\" data-end=\"185\">UMG Piano Keys<\/strong> is a focused Unreal Engine plugin for creating piano keyboard widgets for music tools, piano rolls, MIDI interfaces, learning apps, and runtime instrument UI. It is based on the Enhanced UI Architecture, Specifically, it used Enhanced UI Grids.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b13e29 elementor-widget__width-initial elementor-arrows-position-inside elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel\" data-id=\"5b13e29\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;lazyload&quot;:&quot;yes&quot;,&quot;navigation&quot;:&quot;both&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Image Carousel\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 3\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/store.algosyntax.com\/wp-content\/uploads\/marketplace\/unreal-engine\/enhancedui\/umgpianokeys-banner.jpg\" alt=\"UMgPianoKeys Banner\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 3\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/store.algosyntax.com\/wp-content\/uploads\/marketplace\/unreal-engine\/enhancedui\/interactivepianokeys2.jpg\" alt=\"InteractivePianoKeys2\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 3\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/store.algosyntax.com\/wp-content\/uploads\/marketplace\/unreal-engine\/enhancedui\/styleumgpianokeysyourway.jpg\" alt=\"StyleUMGPianoKeysYourWay\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-left\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-right\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"swiper-pagination\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5e4d527 e-flex e-con-boxed e-con e-parent\" data-id=\"5e4d527\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e2d701a elementor-widget elementor-widget-text-editor\" data-id=\"e2d701a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"1y10k69\" data-start=\"351\" data-end=\"375\">Build piano UI faster<\/h2><p data-start=\"377\" data-end=\"423\">A piano keyboard needs correct white-key and black-key layout, overlapping key shapes, labels, input events, styling, orientation, flipping, and scrolling and scaling.<\/p><p data-start=\"566\" data-end=\"656\">UMG Piano Keys handles that foundation for you, so you can focus on the product around it.<br \/><br \/><\/p><h3 data-section-id=\"1tapz6f\" data-start=\"6144\" data-end=\"6184\">Is UMG Piano Keys a full piano roll?<\/h3><p data-start=\"6185\" data-end=\"6365\">No. It is a <strong data-start=\"6197\" data-end=\"6217\">piano keys widget<\/strong>. The white and black interactable keys.<br data-start=\"6218\" data-end=\"6221\" \/>It is designed to solve the piano keyboard part cleanly so it can fit into larger music UI systems such as piano rolls, editors, and note tools.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-966a3ca e-flex e-con-boxed e-con e-parent\" data-id=\"966a3ca\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d4fd551 elementor-widget elementor-widget-text-editor\" data-id=\"d4fd551\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"iu1zzt\" data-start=\"663\" data-end=\"679\">Core features<\/h2><ul data-start=\"681\" data-end=\"1084\"><li data-section-id=\"1ucg5ns\" data-start=\"681\" data-end=\"724\">Vertical and horizontal piano key layouts<\/li><li data-section-id=\"1ucg5ns\" data-start=\"681\" data-end=\"724\">Scrolling and Scaling<\/li><li data-section-id=\"77nyhq\" data-start=\"725\" data-end=\"756\">White and black key rendering<\/li><li data-section-id=\"16avyo9\" data-start=\"757\" data-end=\"787\">Configurable MIDI note range<\/li><li data-section-id=\"sfjtq5\" data-start=\"788\" data-end=\"806\">Key size control<\/li><li data-section-id=\"9m2v3l\" data-start=\"807\" data-end=\"831\">Flip direction support<\/li><li data-section-id=\"1do184t\" data-start=\"832\" data-end=\"859\">Label display and styling<\/li><li data-section-id=\"1kwb9mq\" data-start=\"860\" data-end=\"901\">Separate white-key and black-key styles<\/li><li data-section-id=\"wusom6\" data-start=\"902\" data-end=\"923\">Pressed key visuals<\/li><li data-section-id=\"1bgow5c\" data-start=\"924\" data-end=\"974\">Pointer press, release, hover, and drag behavior<\/li><li data-section-id=\"11cz790\" data-start=\"975\" data-end=\"1030\">External note state support for playback or selection<\/li><li data-section-id=\"16157dz\" data-start=\"1031\" data-end=\"1051\">Zoom curve support<\/li><li data-section-id=\"1mkcg40\" data-start=\"1052\" data-end=\"1084\">Blueprint and C++ friendly API<\/li><li data-section-id=\"1mkcg40\" data-start=\"1052\" data-end=\"1084\">Based on EnhancedUI Grids<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d935e71 e-flex e-con-boxed e-con e-parent\" data-id=\"d935e71\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15bace4 elementor-widget elementor-widget-text-editor\" data-id=\"15bace4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"8hztkc\" data-start=\"5388\" data-end=\"5407\">Typical workflow<\/h2><h3 data-section-id=\"h6h51p\" data-start=\"5409\" data-end=\"5430\">1. Add the widget<\/h3><p data-start=\"5431\" data-end=\"5477\">Place the piano key widget in your UMG layout.<\/p><h3 data-section-id=\"1x3kd3a\" data-start=\"5479\" data-end=\"5508\">2. Configure the keyboard<\/h3><p data-start=\"5509\" data-end=\"5573\">Choose the orientation, note range, key size, and flip behavior.<\/p><h3 data-section-id=\"1wjrde9\" data-start=\"5575\" data-end=\"5590\">3. Style it<\/h3><p data-start=\"5591\" data-end=\"5661\">Customize white keys, black keys, pressed states, labels, and offsets.<\/p><h3 data-section-id=\"1g4yzvp\" data-start=\"5663\" data-end=\"5688\">4. Hook up your logic<\/h3><p data-start=\"5689\" data-end=\"5745\">Connect input events, external note state, or tool data.<\/p><h3 data-section-id=\"ddlnd8\" data-start=\"5747\" data-end=\"5783\">5. Ship a real piano keyboard UI<\/h3><p data-start=\"5784\" data-end=\"5852\">Use it in your product instead of reinventing the same system again.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-03f0429 e-flex e-con-boxed e-con e-parent\" data-id=\"03f0429\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c6f8689 elementor-widget elementor-widget-text-editor\" data-id=\"c6f8689\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"mh4hqm\" data-start=\"1091\" data-end=\"1111\">Made for music UI<\/h2><p data-start=\"1113\" data-end=\"1136\">Use UMG Piano Keys for:<\/p><ul data-start=\"1138\" data-end=\"1302\"><li data-section-id=\"owi9yt\" data-start=\"1138\" data-end=\"1159\">piano roll sidebars<\/li><li data-section-id=\"1lpi9yi\" data-start=\"1160\" data-end=\"1172\">MIDI tools<\/li><li data-section-id=\"234eg0\" data-start=\"1173\" data-end=\"1196\">virtual instrument UI<\/li><li data-section-id=\"1uthkqz\" data-start=\"1197\" data-end=\"1224\">music learning interfaces<\/li><li data-section-id=\"wbdeby\" data-start=\"1225\" data-end=\"1242\">sequencer tools<\/li><li data-section-id=\"ba1ogi\" data-start=\"1243\" data-end=\"1273\">editor-style music workflows<\/li><li data-section-id=\"1xdcl4b\" data-start=\"1274\" data-end=\"1302\">runtime audio applications<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f27a452 e-flex e-con-boxed e-con e-parent\" data-id=\"f27a452\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca667d8 elementor-widget elementor-widget-text-editor\" data-id=\"ca667d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"91lb0p\" data-start=\"1309\" data-end=\"1350\">High-level API, piano-focused controls<\/h2><p data-start=\"1352\" data-end=\"1430\">UMG Piano Keys hides the low-level grid system behind piano-specific settings.<\/p><p data-start=\"1432\" data-end=\"1460\">You work with concepts like:<\/p><ul data-start=\"1462\" data-end=\"1564\"><li data-section-id=\"1wvjz53\" data-start=\"1462\" data-end=\"1481\">piano orientation<\/li><li data-section-id=\"1phh66y\" data-start=\"1482\" data-end=\"1492\">key size<\/li><li data-section-id=\"7emkiv\" data-start=\"1493\" data-end=\"1505\">note range<\/li><li data-section-id=\"rei60u\" data-start=\"1506\" data-end=\"1522\">flip direction<\/li><li data-section-id=\"1rfupl9\" data-start=\"1523\" data-end=\"1535\">label mode<\/li><li data-section-id=\"y2dp2g\" data-start=\"1536\" data-end=\"1548\">zooming and scrolling<\/li><li data-section-id=\"9bfl71\" data-start=\"1549\" data-end=\"1564\">pressed notes<\/li><\/ul><p data-start=\"1566\" data-end=\"1598\">Not generic rendering internals.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-19ce674 e-flex e-con-boxed e-con e-parent\" data-id=\"19ce674\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-768fac7 elementor-widget elementor-widget-text-editor\" data-id=\"768fac7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"1rtioxd\" data-start=\"1605\" data-end=\"1625\">Style it your way<\/h2><p data-start=\"1627\" data-end=\"1672\">Customize the keyboard to match your product.<\/p><p data-start=\"1674\" data-end=\"1682\">Control:<\/p><ul data-start=\"1684\" data-end=\"1822\"><li data-section-id=\"1hpedrk\" data-start=\"1684\" data-end=\"1703\">white key brushes<\/li><li data-section-id=\"1hnq0eo\" data-start=\"1704\" data-end=\"1723\">black key brushes<\/li><li data-section-id=\"16gxga9\" data-start=\"1724\" data-end=\"1745\">pressed key brushes<\/li><li data-section-id=\"1rg2q4d\" data-start=\"1746\" data-end=\"1758\">label font<\/li><li data-section-id=\"xw9or7\" data-start=\"1759\" data-end=\"1772\">label color<\/li><li data-section-id=\"1h4yr07\" data-start=\"1773\" data-end=\"1789\">label position<\/li><li data-section-id=\"19mrvtv\" data-start=\"1790\" data-end=\"1804\">label offset<\/li><li data-section-id=\"1kecs1h\" data-start=\"1805\" data-end=\"1822\">black key depth<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9972c75 e-flex e-con-boxed e-con e-parent\" data-id=\"9972c75\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e7d89f elementor-widget elementor-widget-text-editor\" data-id=\"2e7d89f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"mmcv7q\" data-start=\"1829\" data-end=\"1853\">Built for integration<\/h2><p data-start=\"1855\" data-end=\"1909\">UMG Piano Keys is designed to fit into larger systems.<\/p><p data-start=\"1911\" data-end=\"2097\">Use it as the piano-key layer inside your own piano roll, sequencer, MIDI editor, or music tool. It provides the keyboard UI foundation while your product owns the higher-level workflow.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>UMG Piano Keys Piano keyboard UI for Unreal Engine Build clean, interactive piano key interfaces in UMG without rebuilding keyboard layout logic from scratch. UMG Piano Keys is a focused Unreal Engine plugin for creating piano keyboard widgets for music tools, piano rolls, MIDI interfaces, learning apps, and runtime instrument UI. It is based on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13989,"template":"elementor_header_footer","edd-categories":[11,4],"edd-tags":[140,139],"class_list":["post-13974","download","type-download","status-publish","has-post-thumbnail","hentry","download_category-code-plugins","download_category-unreal-engine","download_tag-enhancedui","download_tag-userinterface","entry","has-media","edd-download","edd-download-cat-code-plugins","edd-download-cat-unreal-engine","edd-download-tag-enhancedui","edd-download-tag-userinterface"],"acf":[],"_links":{"self":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/edd-downloads\/13974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/edd-downloads"}],"about":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/types\/download"}],"author":[{"embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/users\/1"}],"version-history":[{"count":2,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/edd-downloads\/13974\/revisions"}],"predecessor-version":[{"id":13992,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/edd-downloads\/13974\/revisions\/13992"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/media\/13989"}],"wp:attachment":[{"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/media?parent=13974"}],"wp:term":[{"taxonomy":"download_category","embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/edd-categories?post=13974"},{"taxonomy":"download_tag","embeddable":true,"href":"https:\/\/store.algosyntax.com\/asx-rest\/wp\/v2\/edd-tags?post=13974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}