1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-20 05:12:07 +00:00
Commit graph

9 commits

Author SHA1 Message Date
Conrad Pankoff
45c5a91afc Piano: Add mouse support for playing notes
Fixes #332
2019-08-03 07:59:41 +02:00
Andreas Kling
1c0669f010 LibDraw: Introduce (formerly known as SharedGraphics.)
Instead of LibGUI and WindowServer building their own copies of the drawing
and graphics code, let's it in a separate LibDraw library.

This avoids building the code twice, and will encourage better separation
of concerns. :^)
2019-07-18 10:18:16 +02:00
Andreas Kling
2a9b627ae9 Piano: Use CObject::custom_event() to simplify PianoWidget a bit. 2019-07-14 10:28:10 +02:00
Andreas Kling
1ecb7462b7 Piano: Use CEventLoop::wake() to trigger repaint from sound thread.
In order to repaint the GUI after the sound thread has produced some sweet
new waves, we post a CCustomEvent to the main thread's event loop and then
wake up that event loop via CEventLoop::wake().
2019-07-14 10:22:28 +02:00
Andreas Kling
559a999852 Piano: Use a fixed-width font in the UI to align things nicely. 2019-07-13 23:14:00 +02:00
Andreas Kling
3eeb0734ba Piano: Remove some unused code. 2019-07-13 23:02:07 +02:00
Andreas Kling
ec7b98f079 Piano: Take down the baseline "volume" from 3000 to 1800.
I have no idea what a good value for this would be. This seems to do better
when playing many notes at once.
2019-07-13 20:54:16 +02:00
Andreas Kling
eec9666735 Piano: Use a secondary thread to write the audio stream.
This frees up the main thread to draw the GUI. The secondary thread uses
a pipe to trick the main thread's event loop to break out of select() and
update() the PianoWidget. :^)
2019-07-13 20:20:08 +02:00
Andreas Kling
c962c54610 Piano: Start working on a desktop piano.
The idea here is to implement a simple synhesizer that allows you to play
music with your keyboard. :^)

It's a huge hack currently but we can improve upon this.
2019-07-13 17:05:16 +02:00