<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">On Wed, May 15, 2019 at 4:51 PM Anthony Walter via lazarus <<a href="mailto:lazarus@lists.lazarus-ide.org">lazarus@lists.lazarus-ide.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">I usually add GPL licences to my repositories but I forgot this time. Thanks for reminding me. It's now attached.</div><div dir="ltr"><div><br></div><div>Regarding the TPianoKeyboard class here is some helpful information.</div><div><br></div><div>It's a TGraphicControl.</div><div>It relies on the Music unit, also in the same project, to convert keys to frequencies and also to format note names as strings.</div><div>You can define the number of keys on the piano by setting the KeyCount property. KeyCount ignores attempts to set its value to less than 1.</div><div>You can change the on screen size of the piano by setting the ScaleFactor property.<br></div><div>Setting Key[Index] := False/True turns the piano key from an released state to a pressed state (when true).</div><div>You can listen to the OnKeyToggle event to take action when a piano key is pressed or released.</div><div>The KeyToFrequency method gives you the frequency in hertz of the piano key by index.</div><div>The piano does its best to keep middle C in the middle of its key layout when you change KeyCount.</div><div><br></div><div>If you (or anyone really) have any improvement ideas for TPianoKeyboard or any other code in the project, let me know and I'll do my best to accommodate.</div></div></div></div></blockquote></div><div><br></div><div>Two useful features (suggestions :-D):</div><div><br></div><div>* Split the "sound logic" from TPianoKeyboard to own class (TPianoSynthesizer?) allowing to use it in non-LCL based applications;</div><div>* Supposing the feature above is done, the synthesizer could allow to record key sequences by typing or by string. (it would be useful to study applications like <a href="http://www.delek.net">DefleMask project</a> and play songs (strings only, without drums, bass etc.) like "Sonic - Green Hill Zone" <a href="https://www.youtube.com/watch?v=0YY13qh7X4A">https://www.youtube.com/watch?v=0YY13qh7X4A</a>, "Spring Yard Zone" <a href="https://www.youtube.com/watch?v=_8LUfR1iH_0">https://www.youtube.com/watch?v=_8LUfR1iH_0</a>. (Castlevania, Zelda and so on <3)</div><div><br></div>--<br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Silvio Clécio</div></div></div></div></div></div></div></div></div>