summaryrefslogtreecommitdiff
path: root/Userland/Applications/Piano
diff options
context:
space:
mode:
authorkleines Filmröllchen <filmroellchen@serenityos.org>2022-03-03 11:28:28 +0100
committerAndreas Kling <kling@serenityos.org>2022-03-14 22:46:46 +0100
commit1088c2c71641e765d9eba9d18918b17718336d78 (patch)
tree024a3cb0a1b894aebe0246ff7db964ea8c9e7316 /Userland/Applications/Piano
parentd2510d0caa64d4deebdc1823189ce4dbf92b0c40 (diff)
downloadserenity-1088c2c71641e765d9eba9d18918b17718336d78.zip
Piano: Decrease sample headroom
Multiplying all samples by 0.1 was kind of silly. This also requires adjusting the wave visualizer so that the waves still fit.
Diffstat (limited to 'Userland/Applications/Piano')
-rw-r--r--Userland/Applications/Piano/Music.h2
-rw-r--r--Userland/Applications/Piano/WaveWidget.cpp6
2 files changed, 4 insertions, 4 deletions
diff --git a/Userland/Applications/Piano/Music.h b/Userland/Applications/Piano/Music.h
index c4b662db8b..5af0825baa 100644
--- a/Userland/Applications/Piano/Music.h
+++ b/Userland/Applications/Piano/Music.h
@@ -31,7 +31,7 @@ constexpr int buffer_size = sample_count * sizeof(Sample);
constexpr double sample_rate = 44100;
// Headroom for the synth
-constexpr double volume_factor = 0.1;
+constexpr double volume_factor = 0.8;
enum Switch {
Off,
diff --git a/Userland/Applications/Piano/WaveWidget.cpp b/Userland/Applications/Piano/WaveWidget.cpp
index e0c71163bc..25f1df548f 100644
--- a/Userland/Applications/Piano/WaveWidget.cpp
+++ b/Userland/Applications/Piano/WaveWidget.cpp
@@ -18,10 +18,10 @@ WaveWidget::WaveWidget(TrackManager& track_manager)
int WaveWidget::sample_to_y(int sample) const
{
- constexpr int nice_scale_factor = 4;
- sample *= nice_scale_factor;
+ // Sample scaling that looks good, experimentally determined.
+ constexpr double nice_scale_factor = 1.0;
constexpr double sample_max = NumericLimits<i16>::max();
- double percentage = sample / sample_max;
+ double percentage = sample / sample_max * nice_scale_factor;
double portion_of_half_height = percentage * ((frame_inner_rect().height() - 1) / 2.0);
double y = (frame_inner_rect().height() / 2.0) + portion_of_half_height;
return y;