Eine der größten Höhlen Europas - direkt um die Ecke
Jo. So isses wohl, woll?
"Windloch" ist Jahrhundertfund für NRW - Radio Berg
https://www.radioberg.de/artikel/windloch-ist-jahrhundertfund-fuer-nrw-328455.html#&gid=1&pid=1
Google Maps
Das nächste Mal, wenn ich da vorbeikomme, kriechen mer mal 'ne Runde durch, wah?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Und nebenbei ein kleiner, weiterer Hint (zum letzten Riddle):
#!/usr/bin/perl
# ratet-mal.pl
use strict;
use warnings;
use Audio::Analyzer;
# Variablen
my $source = 'input.pcm';
my $analyzer = Audio::Analyzer->new(file => $source);
#useful information
my $freqs = $analyzer->freqs; #returns array reference
my @freqs = @$freqs;
# Programm
print "\nWieviele Frequenzbereiche von 0 Hz aufwärts sollen analysiert werden? (Anzahl + RETURN)\n";
my $first_n_freqs = <STDIN>;
chomp $first_n_freqs;
print "\nUm wieviel Prozent über dem Durchschnitt sollen die zu ermittelnden Frequenzen liegen? (Zahl ohne Prozentzeichen + RETURN)\n";
my $uppercent = <STDIN>;
chomp $uppercent;
my %chunks;
my $chunk_no = 0;
while(defined(my $chunk = $analyzer->next)) {
$chunk_no++;
my $done = $analyzer->progress;
print "Chunk ist nun: $chunk\n";
my $channels = $chunk->fft;
my $combined = $chunk->combine_fft($channels);
# print "\n", map {$_, "\n"} @$combined;
print "Anzahl Frequenzen: ", scalar @$freqs, "\n";
print "Anzahl FFT: ", scalar @$combined, "\n";
my $mean_fft = mean_fft($combined,$uppercent);
print "Durchschnittswert: $mean_fft\n";
my $freq_fft_ref = freq_fft($combined,$first_n_freqs);
my %freq_fft = %$freq_fft_ref;
print "Die Überdurchschnittswerte werden ermittelt!\n";
# sleep 5;
my %freqs_overmean;
foreach (sort {$freq_fft{$a} <=> $freq_fft{$b}} keys %freq_fft) {
if ($freq_fft{$_} < $mean_fft) {next}
else {$freqs_overmean{$_}=$freq_fft{$_}};
}
my @first_fft;
foreach (sort {$a <=> $b} keys %freqs_overmean) {
push @first_fft, $_;
}
my %notes;
foreach (@first_fft) {
my $note = freq_2_note($_);
$notes{$note} = $_;
}
print map {$_, "\n"} sort {$a cmp $b} keys %notes;
print "Uniqued Notes\n";
my %notes_uniq;
foreach (@first_fft) {
my $note = freq_2_note($_);
$note =~ s/[0-9]//g;
if (not exists $notes_uniq{$note}) {$notes_uniq{$note} = 1}
else {$notes_uniq{$note} = $notes_uniq{$note} + 1}
}
print map {$_, " : ", $notes_uniq{$_}, "-mal vorhanden\n"} sort {$a cmp $b} keys %notes_uniq;
my $chunk_string = join(";", map {$_."x".$notes_uniq{$_}} sort {$a cmp $b} keys %notes_uniq);
$chunks{$chunk_no} = $chunk_string;
print "$done% completed\n";
# sleep 3;
}
# Ergebnis-Chunks
print "\nDie ermittelten Chunks sind:\n\n";
print map {$_, " : ", $chunks{$_}, "\n"} sort {$a <=> $b} keys %chunks;
print "\n";
#######################################################################################
######################### Subroutinen ######################################
sub mean_fft {
my $combined_ref = shift;
my $uppercent = shift;
my @combined = @$combined_ref;
my $sum = 0;
map {$sum=$sum+$_} @combined;
my $mean_fft = $sum/(scalar @combined);
$mean_fft = $mean_fft*$uppercent/100;
return $mean_fft
}
sub freq_fft {
my $combined_ref = shift;
my $first_n_freqs = shift;
my @combined = @$combined_ref;
my %freq_fft;
for (my $i=0; $i < $first_n_freqs; $i++) {
if (not defined $freqs[$i]) {print "ERROR! freq-Wert"; sleep 11}
if (not defined $combined[$i]) {print "ERROR! combined-Wert"; sleep 11}
$freq_fft{$freqs[$i]} = $combined[$i];
}
return \%freq_fft
}
sub freq_2_note {
my $freq = shift;
my %freqs2notes = ("27.5" => "A0",
"29.1352" => "A#0/Bb0",
"30.8677" => "B0",
"32.7032" => "C1",
"34.6478" => "C#1/Db1",
"36.7081" => "D1",
"38.8909" => "D#1/Eb1",
"41.2034" => "E1",
"43.6535" => "F1",
"46.2493" => "F#1/Gb1",
"48.9994" => "G1",
"51.9131" => "G#1/Ab1",
"55" => "A1",
"58.2705" => "A#1/Bb1",
"61.7354" => "B1",
"65.4064" => "C2",
"69.2957" => "C#2/Db2",
"73.4162" => "D2",
"77.7817" => "D#2/Eb2",
"82.4069" => "E2",
"87.3071" => "F2",
"92.4986" => "F#2/Gb2",
"97.9989" => "G2",
"103.826" => "G#2/Ab2",
"110" => "A2",
"116.541" => "A#2/Bb2",
"123.471" => "B2",
"130.813" => "C3",
"138.591" => "C#3/Db3",
"146.832" => "D3",
"155.563" => "D#3/Eb3",
"164.814" => "E3",
"174.614" => "F3",
"184.997" => "F#3/Gb3",
"195.998" => "G3",
"207.652" => "G#3/Ab3",
"220" => "A3",
"233.082" => "A#3/Bb3",
"246.942" => "B3",
"261.626" => "C4",
"277.183" => "C#4/Db4",
"293.665" => "D4",
"311.127" => "D#4/Eb4",
"329.628" => "E4",
"349.228" => "F4",
"369.994" => "F#4/Gb4",
"391.995" => "G4",
"415.305" => "G#4/Ab4",
"440" => "A4",
"466.164" => "A#4/Bb4",
"493.883" => "B4",
"523.251" => "C5",
"554.365" => "C#5/Db5",
"587.33" => "D5",
"622.254" => "D#5/Eb5",
"659.255" => "E5",
"698.456" => "F5",
"739.989" => "F#5/Gb5",
"783.991" => "G5",
"830.609" => "G#5/Ab5",
"880" => "A5",
"932.328" => "A#5/Bb5",
"987.767" => "B5",
"1046.5" => "C6",
"1108.73" => "C#6/Db6",
"1174.66" => "D6",
"1244.51" => "D#6/Eb6",
"1318.51" => "E6",
"1396.91" => "F6",
"1479.98" => "F#6/Gb6",
"1567.98" => "G6",
"1661.22" => "G#6/Ab6",
"1760" => "A6",
"1864.66" => "A#6/Bb6",
"1975.53" => "B6",
"2093" => "C7",
"2217.46" => "C#7/Db7",
"2349.32" => "D7",
"2489.02" => "D#7/Eb7",
"2637.02" => "E7",
"2793.83" => "F7",
"2959.96" => "F#7/Gb7",
"3135.96" => "G7",
"3322.44" => "G#7/Ab7",
"3520" => "A7",
"3729.31" => "A#7/Bb7",
"3951.07" => "B7",
"4186.01" => "C8");
my $note_under;
my $note_above;
my $switch = "false";
foreach (sort {$a <=> $b} keys %freqs2notes) {
if ($switch eq "false" && $_ < $freq ) {$note_under=$_}
elsif ($switch eq "false") {$note_above=$_; $switch = "true"}
}
my $delta = ($note_above - $note_under)/2;
my $note;
if ($freq - $note_under < $delta) { $note = $freqs2notes{$note_under} }
else { $note = $freqs2notes{$note_above} }
return $note
}
...
Uniqued Notes
A : 4-mal vorhanden
C : 3-mal vorhanden
C#/Db : 1-mal vorhanden
D : 6-mal vorhanden
F : 3-mal vorhanden
G : 5-mal vorhanden
99% completed
Chunk ist nun: Audio::Analyzer::Chunk=HASH(0x56154f02f118)
Anzahl Frequenzen: 1024
Anzahl FFT: 1024
Durchschnittswert: 0.132533817728933
Die Überdurchschnittswerte werden ermittelt!
A3
A5
A6
C#5/Db5
D4
D5
D6
D7
G3
G4
G6
Uniqued Notes
A : 3-mal vorhanden
C#/Db : 1-mal vorhanden
D : 4-mal vorhanden
G : 4-mal vorhanden
100% completed
Die ermittelten Chunks sind:
1 : Ax1;Cx1;C#/Dbx1;Dx1;Fx2;Gx1
2 : Ax2;Cx1;C#/Dbx1;Ex1;Fx1
3 : Ax5;A#/Bbx2;Bx1;Cx3;C#/Dbx1;Dx3;Ex1;Fx4;Gx1
4 : Ax4;A#/Bbx1;Bx1;Cx5;C#/Dbx1;Dx2;Ex1;Fx3;F#/Gbx1;Gx2;G#/Abx1
5 : Ax5;A#/Bbx1;Cx2;C#/Dbx1;Dx3;Ex1;Fx3;F#/Gbx1;Gx3;G#/Abx1
6 : Ax4;A#/Bbx1;Cx3;C#/Dbx1;Dx4;Ex1;Fx4;Gx2;G#/Abx1
7 : Ax3;C#/Dbx1;Dx1;Fx2;Gx1
8 : Ax2;A#/Bbx1;Bx2;Cx1;Dx1;Ex1;Fx3;Gx1;G#/Abx2
9 : Ax1;A#/Bbx1;Bx2;Cx3;C#/Dbx1;Dx2;Ex1;Fx2;Gx1;G#/Abx1
10 : Ax1;Bx2;Cx3;C#/Dbx1;Dx2;Ex1;Fx3;Gx1
11 : Bx2;Cx3;C#/Dbx1;Dx2;Ex1;Fx3;Gx1
12 : Ax2;Bx1;Cx2;C#/Dbx1;Dx2;Ex1;Fx3;F#/Gbx1;Gx2;G#/Abx2
13 : Dx1;Ex1;Fx3;F#/Gbx1
14 : Ax1;Bx2;Cx2;C#/Dbx1;Dx2;Ex1;Fx2;Gx1
15 : Ax2;A#/Bbx1;Bx2;Cx4;C#/Dbx1;Dx2;Ex1;Fx2;Gx1;G#/Abx1
16 : Ax3;A#/Bbx1;Bx2;Cx4;C#/Dbx1;Dx2;Ex2;Fx3;F#/Gbx1;Gx2;G#/Abx1
17 : Ax2;A#/Bbx1;Bx2;Cx4;C#/Dbx1;Dx3;Ex2;Fx2;F#/Gbx1;Gx2;G#/Abx1
18 : Ax1;Cx2;C#/Dbx1;Dx1;Fx1
19 : A#/Bbx1;Cx1;Dx1;Fx1;Gx1
20 : Ax2;A#/Bbx1;Bx1;Cx2;Dx3;Fx1;Gx2;G#/Abx1
21 : Ax1;A#/Bbx1;Cx6;C#/Dbx2;Dx4;Ex2;Fx2;Gx3;G#/Abx1
22 : Ax1;A#/Bbx1;Bx2;Cx2;C#/Dbx1;Dx5;Ex3;Fx2;Gx4;G#/Abx1
23 : Ax1;A#/Bbx1;Cx3;C#/Dbx1;Dx6;Ex1;Fx1;Gx3;G#/Abx1
24 : Ax1;Cx2;Fx2
25 : Ax3;Cx3;Dx2;Ex1;Fx6;F#/Gbx1;Gx2
26 : Ax2;Cx6;Dx4;Ex1;Fx6;F#/Gbx1;Gx3
27 : Ax2;Cx7;Dx3;Ex2;Fx7;F#/Gbx1;Gx2
28 : Ax2;Cx4;Dx3;Ex1;Fx6
29 : Ax2;Cx1;Dx1;Fx3;F#/Gbx1;Gx1;G#/Abx2
30 : Ax5;A#/Bbx1;Cx4;C#/Dbx4;Dx2;D#/Ebx2;Ex3;Fx5;F#/Gbx2;Gx1;G#/Abx2
31 : Ax4;Bx2;Cx4;C#/Dbx1;Dx5;Ex2;Fx3;F#/Gbx1;Gx1;G#/Abx1
32 : Ax2;Bx2;Cx3;C#/Dbx3;Dx2;D#/Ebx2;Ex3;Fx2;Gx1
33 : Ax4;A#/Bbx1;Bx1;Cx4;C#/Dbx1;Dx3;D#/Ebx1;Ex1;Fx4;F#/Gbx2;Gx1
34 : Cx2;C#/Dbx2;Fx2
35 : Ax2;A#/Bbx2;Ex1;Fx1;Gx1
36 : Ax4;A#/Bbx2;Cx1;C#/Dbx1;Ex1;Fx2;F#/Gbx2;Gx3;G#/Abx1
37 : Ax2;A#/Bbx1;Bx2;Cx1;C#/Dbx1;Fx2;Gx2;G#/Abx4
38 : Ax2;A#/Bbx2;Bx4;Cx2;C#/Dbx2;Dx2;Ex2;Fx3;Gx1;G#/Abx1
39 : Ax2;A#/Bbx1;Bx3;Cx5;C#/Dbx2;Dx1;Ex1;Fx3;F#/Gbx1;Gx2
40 : Ax2;A#/Bbx2;Bx2;Cx2;C#/Dbx1;Dx3;Fx2;F#/Gbx1;Gx2;G#/Abx1
41 : Ax3;A#/Bbx1;Bx1;Cx2;C#/Dbx3;Dx1;Fx2;Gx2;G#/Abx1
42 : Ax3;Bx1;Cx4;C#/Dbx1;Dx2;Fx2;F#/Gbx1;Gx2
43 : Ax3;A#/Bbx2;Bx1;Cx2;C#/Dbx3;Dx6;Ex1;Fx2;F#/Gbx1;Gx2
44 : Ax5;A#/Bbx5;Bx3;Cx5;C#/Dbx5;Dx1;Fx2;F#/Gbx1;Gx2
45 : Ax5;A#/Bbx2;Cx4;C#/Dbx2;Dx4;Ex1;Fx2;F#/Gbx2;Gx3;G#/Abx2
46 : Ax2;A#/Bbx1;C#/Dbx1;Gx2
47 : Ax3;A#/Bbx2;Cx3;C#/Dbx2;Dx4;D#/Ebx1;Ex2;Fx1;F#/Gbx1;Gx2
48 : Ax6;A#/Bbx1;Cx4;C#/Dbx2;Dx6;D#/Ebx1;Ex1;Fx3;F#/Gbx2;Gx2;G#/Abx1
49 : Ax5;A#/Bbx1;Cx2;C#/Dbx6;Dx6;Ex2;Fx4;F#/Gbx1;Gx2
50 : Ax2;C#/Dbx1;Dx3;Ex1;Gx2
51 : Ax1;C#/Dbx1;Dx2;Ex1;Gx2
52 : Ax4;A#/Bbx1;C#/Dbx1;Dx5;Ex2;Fx3;F#/Gbx3;Gx2
53 : Ax7;A#/Bbx2;Bx2;Cx1;C#/Dbx3;Dx5;Ex1;Fx1;F#/Gbx1;Gx5;G#/Abx4
54 : Ax7;A#/Bbx3;Bx1;Cx2;C#/Dbx3;Dx5;Ex1;Fx1;F#/Gbx1;Gx2;G#/Abx2
55 : Ax7;A#/Bbx3;Bx2;Cx1;C#/Dbx6;Dx6;Ex1;Fx1;F#/Gbx1;Gx3;G#/Abx4
56 : Ax6;A#/Bbx7;Bx4;Cx5;C#/Dbx5;Dx5;Ex1;Fx2;F#/Gbx1;Gx1
57 : Ax3;A#/Bbx1;C#/Dbx1;Dx2;Ex1;Fx2;Gx1
58 : Ax2;A#/Bbx2;C#/Dbx1;Dx4;Ex1;Fx1;Gx2
59 : Ax3;A#/Bbx2;C#/Dbx1;Dx3;Ex1;Fx1;Gx3
60 : Ax7;A#/Bbx2;Bx2;Cx1;C#/Dbx1;Dx3;Ex1;Fx1;Gx2;G#/Abx1
61 : Ax4;A#/Bbx1;Cx5;C#/Dbx1;Dx4;Ex1;Fx3;Gx3
62 : Ax4;Cx1;Dx2;Fx1;Gx1
63 : Ax7;A#/Bbx4;Bx1;C#/Dbx1;Dx5;Fx1;G#/Abx1
64 : Ax4;A#/Bbx4;Bx2;Cx2;C#/Dbx2;Dx3;Fx2;Gx1
65 : Ax2;A#/Bbx5;Bx3;Cx3;C#/Dbx2;Dx7;Ex1;Fx3;Gx3
66 : Ax3;A#/Bbx4;Bx2;Cx2;C#/Dbx2;Dx8;Ex1;Fx4;F#/Gbx1;Gx4
67 : Ax4;A#/Bbx3;Bx1;Cx1;C#/Dbx1;Dx4;Ex1;Fx4;Gx4
68 : Dx1
69 : Dx1;Gx1
70 : Ax1;A#/Bbx2;Dx2;Ex1;Gx1
71 : Ax5;A#/Bbx2;Bx1;Cx3;C#/Dbx2;Dx6;D#/Ebx1;Ex1;Fx3;F#/Gbx2;Gx4
72 : Ax6;A#/Bbx3;Bx2;Cx2;C#/Dbx1;Dx7;Ex2;Fx4;F#/Gbx1;Gx4;G#/Abx2
73 : Ax2;A#/Bbx2;Cx1;Dx3;D#/Ebx1;Ex2;Fx4;F#/Gbx2;Gx4;G#/Abx2
74 : Ax3;A#/Bbx2;Bx1;Cx3;C#/Dbx1;Dx2;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx2;G#/Abx1
75 : Ax6;A#/Bbx2;Bx4;Cx3;C#/Dbx1;Dx5;Ex1;Fx2;Gx3;G#/Abx1
76 : Ax7;A#/Bbx4;Bx3;Cx7;C#/Dbx1;Dx4;D#/Ebx1;Ex2;Fx3;F#/Gbx1;Gx3;G#/Abx1
77 : Ax7;A#/Bbx3;Bx3;Cx6;C#/Dbx1;Dx6;Ex2;Fx3;F#/Gbx1;Gx4;G#/Abx2
78 : A#/Bbx1;Cx1;Dx2;Ex1;Fx2;Gx1
79 : Cx1;C#/Dbx1;Dx2;Fx1;Gx2;G#/Abx1
80 : Ax4;A#/Bbx1;Bx1;C#/Dbx1;Dx2;Gx2;G#/Abx1
81 : Ax4;A#/Bbx2;Bx2;Cx1;C#/Dbx2;Dx4;Fx3;F#/Gbx1;Gx4;G#/Abx1
82 : Ax7;A#/Bbx3;Bx3;C#/Dbx2;Dx3;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx4;G#/Abx1
83 : Ax4;A#/Bbx3;Cx1;C#/Dbx1;Dx4;D#/Ebx1;Ex1;Fx3;Gx4;G#/Abx1
84 : Ax2;A#/Bbx2;Cx1;Dx1;Ex1;Gx3;G#/Abx2
85 : Ax5;A#/Bbx1;Cx3;C#/Dbx1;Ex1;Fx2;Gx1
86 : Ax5;A#/Bbx2;Bx1;Cx2;C#/Dbx3;Dx4;D#/Ebx3;Ex1;Fx3;Gx4;G#/Abx1
87 : Ax2;A#/Bbx1;Bx2;Cx2;C#/Dbx2;Dx5;D#/Ebx3;Ex2;Fx3;Gx3
88 : Ax4;A#/Bbx1;Bx2;Cx2;C#/Dbx1;Dx5;D#/Ebx1;Ex2;Fx4;Gx3
89 : Ax2;Bx2;C#/Dbx1;Dx5;D#/Ebx1;Ex1;Fx3;F#/Gbx1;Gx2
90 : Ax2;A#/Bbx1;Cx2;C#/Dbx6;Dx6;D#/Ebx1;Ex2;Fx3;F#/Gbx2;Gx1;G#/Abx1
91 : Ax2;Bx1;Cx3;C#/Dbx4;Dx5;D#/Ebx1;Ex2;Fx3;F#/Gbx1;Gx2;G#/Abx1
92 : Ax4;A#/Bbx2;Bx1;Cx4;C#/Dbx4;Dx5;D#/Ebx1;Ex3;Fx4;F#/Gbx2;Gx4;G#/Abx2
93 : Ax1;Bx2;Cx4;C#/Dbx6;Dx7;D#/Ebx1;Ex2;Fx3;F#/Gbx1;Gx2;G#/Abx5
94 : Ax7;A#/Bbx1;Bx3;Cx3;C#/Dbx4;Dx8;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx3
95 : Ax4;A#/Bbx2;Bx2;Cx2;C#/Dbx1;Dx8;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx7
96 : Ax3;A#/Bbx1;Bx2;Cx1;C#/Dbx4;Dx3;Fx1;F#/Gbx3;Gx2;G#/Abx5
97 : Ax3;A#/Bbx2;Bx1;Cx3;C#/Dbx2;Dx2;Fx2;F#/Gbx2;Gx4;G#/Abx3
98 : Ax3;A#/Bbx3;Cx2;C#/Dbx3;Dx2;Fx4;Gx3;G#/Abx4
99 : Ax9;A#/Bbx1;Bx4;Cx2;C#/Dbx4;Dx4;Fx2;F#/Gbx1;Gx5;G#/Abx3
100 : Ax7;A#/Bbx2;Bx2;Cx2;Dx8;Ex1;Fx4;F#/Gbx2;Gx4;G#/Abx2
101 : Ax4;A#/Bbx1;Cx1;C#/Dbx2;Dx5;D#/Ebx2;Ex1;Fx2;F#/Gbx1;Gx1;G#/Abx1
102 : Ax3;Cx2;C#/Dbx1;Dx4;D#/Ebx1;Ex3;Fx2;F#/Gbx2;Gx1;G#/Abx1
103 : Ax3;A#/Bbx2;Cx5;C#/Dbx2;Dx7;Ex5;Fx2;F#/Gbx3;Gx2
104 : Ax4;A#/Bbx1;Cx6;C#/Dbx4;Dx6;Ex3;Fx3;F#/Gbx1;Gx6;G#/Abx2
105 : Ax6;A#/Bbx1;Cx7;C#/Dbx2;Dx7;Ex2;Fx2;F#/Gbx1;Gx4;G#/Abx1
106 : Ax6;Cx2;C#/Dbx2;Dx7;Fx1;F#/Gbx2;Gx2
107 : Ax5;A#/Bbx3;Bx2;Cx4;C#/Dbx2;Dx8;Ex1;Fx3;F#/Gbx1;Gx3;G#/Abx1
108 : Ax6;Cx1;C#/Dbx1;Dx7;D#/Ebx3;Ex1;Fx3;F#/Gbx1;Gx4;G#/Abx1
109 : Ax6;Cx2;Dx9;D#/Ebx4;Ex2;Fx5;F#/Gbx1;Gx3;G#/Abx1
110 : Ax5;Cx1;C#/Dbx5;Dx6;D#/Ebx1;Ex1;Fx6;F#/Gbx1;Gx4;G#/Abx1
111 : Ax5;Cx2;Dx5;Fx3;Gx2;G#/Abx1
112 : Ax3;A#/Bbx1;Cx1;Dx5;Fx1;Gx1
113 : Ax2;A#/Bbx1;Dx3;Ex1;Fx2;Gx1
114 : Ax3;A#/Bbx1;C#/Dbx3;Dx7;Fx2;Gx2;G#/Abx1
115 : Ax2;A#/Bbx2;C#/Dbx1;Dx6;Fx2;Gx2;G#/Abx2
116 : Ax2;A#/Bbx2;Cx1;C#/Dbx2;Dx6;Ex1;Fx1;Gx4;G#/Abx2
117 : Ax2;A#/Bbx1;Dx6;Ex1;Fx1;Gx1;G#/Abx2
118 : Ax2;A#/Bbx2;Dx5;Ex2;Fx3;Gx1;G#/Abx2
119 : Ax2;A#/Bbx2;C#/Dbx1;Dx5;Ex1;Fx4;Gx2;G#/Abx1
120 : Ax2;A#/Bbx2;Dx7;Ex1;Fx2;Gx1
121 : Ax2;Dx3;Gx1
122 : Gx1
123 : Ax7;C#/Dbx1;Dx3;Fx2;F#/Gbx1;Gx2
124 : Ax4;Cx3;C#/Dbx1;Dx6;Fx3;Gx5
125 : Ax3;C#/Dbx1;Dx4;Gx4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Und wahrscheinlich eine der größten Hohl- onda Tollheiten: Die tolle schwarze Null.
Das ist ja wie "Alles festzurren!". Ist doch klar, daß sich dann iwan gar nix mehr bewegt/bewegen kann.
Carl Christian von Weizsäcker: "Sie sind alle Getriebene" | ZEIT ONLINE
Bundeshaushalt: Schwarze Null von heute ist die Krise von morgen - SPIEGEL ONLINE
............................................................................................................................................................
"Windloch" ist Jahrhundertfund für NRW - Radio Berg
Beeindruckende Bilders vun drinne (für druße)
https://www.radioberg.de/artikel/windloch-ist-jahrhundertfund-fuer-nrw-328455.html#&gid=1&pid=1
Mein Standort und der der Höhle
Google Maps
Das nächste Mal, wenn ich da vorbeikomme, kriechen mer mal 'ne Runde durch, wah?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Und nebenbei ein kleiner, weiterer Hint (zum letzten Riddle):
Code (jetzt)
...#!/usr/bin/perl
# ratet-mal.pl
use strict;
use warnings;
use Audio::Analyzer;
# Variablen
my $source = 'input.pcm';
my $analyzer = Audio::Analyzer->new(file => $source);
#useful information
my $freqs = $analyzer->freqs; #returns array reference
my @freqs = @$freqs;
# Programm
print "\nWieviele Frequenzbereiche von 0 Hz aufwärts sollen analysiert werden? (Anzahl + RETURN)\n";
my $first_n_freqs = <STDIN>;
chomp $first_n_freqs;
print "\nUm wieviel Prozent über dem Durchschnitt sollen die zu ermittelnden Frequenzen liegen? (Zahl ohne Prozentzeichen + RETURN)\n";
my $uppercent = <STDIN>;
chomp $uppercent;
my %chunks;
my $chunk_no = 0;
while(defined(my $chunk = $analyzer->next)) {
$chunk_no++;
my $done = $analyzer->progress;
print "Chunk ist nun: $chunk\n";
my $channels = $chunk->fft;
my $combined = $chunk->combine_fft($channels);
# print "\n", map {$_, "\n"} @$combined;
print "Anzahl Frequenzen: ", scalar @$freqs, "\n";
print "Anzahl FFT: ", scalar @$combined, "\n";
my $mean_fft = mean_fft($combined,$uppercent);
print "Durchschnittswert: $mean_fft\n";
my $freq_fft_ref = freq_fft($combined,$first_n_freqs);
my %freq_fft = %$freq_fft_ref;
print "Die Überdurchschnittswerte werden ermittelt!\n";
# sleep 5;
my %freqs_overmean;
foreach (sort {$freq_fft{$a} <=> $freq_fft{$b}} keys %freq_fft) {
if ($freq_fft{$_} < $mean_fft) {next}
else {$freqs_overmean{$_}=$freq_fft{$_}};
}
my @first_fft;
foreach (sort {$a <=> $b} keys %freqs_overmean) {
push @first_fft, $_;
}
my %notes;
foreach (@first_fft) {
my $note = freq_2_note($_);
$notes{$note} = $_;
}
print map {$_, "\n"} sort {$a cmp $b} keys %notes;
print "Uniqued Notes\n";
my %notes_uniq;
foreach (@first_fft) {
my $note = freq_2_note($_);
$note =~ s/[0-9]//g;
if (not exists $notes_uniq{$note}) {$notes_uniq{$note} = 1}
else {$notes_uniq{$note} = $notes_uniq{$note} + 1}
}
print map {$_, " : ", $notes_uniq{$_}, "-mal vorhanden\n"} sort {$a cmp $b} keys %notes_uniq;
my $chunk_string = join(";", map {$_."x".$notes_uniq{$_}} sort {$a cmp $b} keys %notes_uniq);
$chunks{$chunk_no} = $chunk_string;
print "$done% completed\n";
# sleep 3;
}
# Ergebnis-Chunks
print "\nDie ermittelten Chunks sind:\n\n";
print map {$_, " : ", $chunks{$_}, "\n"} sort {$a <=> $b} keys %chunks;
print "\n";
#######################################################################################
######################### Subroutinen ######################################
sub mean_fft {
my $combined_ref = shift;
my $uppercent = shift;
my @combined = @$combined_ref;
my $sum = 0;
map {$sum=$sum+$_} @combined;
my $mean_fft = $sum/(scalar @combined);
$mean_fft = $mean_fft*$uppercent/100;
return $mean_fft
}
sub freq_fft {
my $combined_ref = shift;
my $first_n_freqs = shift;
my @combined = @$combined_ref;
my %freq_fft;
for (my $i=0; $i < $first_n_freqs; $i++) {
if (not defined $freqs[$i]) {print "ERROR! freq-Wert"; sleep 11}
if (not defined $combined[$i]) {print "ERROR! combined-Wert"; sleep 11}
$freq_fft{$freqs[$i]} = $combined[$i];
}
return \%freq_fft
}
sub freq_2_note {
my $freq = shift;
my %freqs2notes = ("27.5" => "A0",
"29.1352" => "A#0/Bb0",
"30.8677" => "B0",
"32.7032" => "C1",
"34.6478" => "C#1/Db1",
"36.7081" => "D1",
"38.8909" => "D#1/Eb1",
"41.2034" => "E1",
"43.6535" => "F1",
"46.2493" => "F#1/Gb1",
"48.9994" => "G1",
"51.9131" => "G#1/Ab1",
"55" => "A1",
"58.2705" => "A#1/Bb1",
"61.7354" => "B1",
"65.4064" => "C2",
"69.2957" => "C#2/Db2",
"73.4162" => "D2",
"77.7817" => "D#2/Eb2",
"82.4069" => "E2",
"87.3071" => "F2",
"92.4986" => "F#2/Gb2",
"97.9989" => "G2",
"103.826" => "G#2/Ab2",
"110" => "A2",
"116.541" => "A#2/Bb2",
"123.471" => "B2",
"130.813" => "C3",
"138.591" => "C#3/Db3",
"146.832" => "D3",
"155.563" => "D#3/Eb3",
"164.814" => "E3",
"174.614" => "F3",
"184.997" => "F#3/Gb3",
"195.998" => "G3",
"207.652" => "G#3/Ab3",
"220" => "A3",
"233.082" => "A#3/Bb3",
"246.942" => "B3",
"261.626" => "C4",
"277.183" => "C#4/Db4",
"293.665" => "D4",
"311.127" => "D#4/Eb4",
"329.628" => "E4",
"349.228" => "F4",
"369.994" => "F#4/Gb4",
"391.995" => "G4",
"415.305" => "G#4/Ab4",
"440" => "A4",
"466.164" => "A#4/Bb4",
"493.883" => "B4",
"523.251" => "C5",
"554.365" => "C#5/Db5",
"587.33" => "D5",
"622.254" => "D#5/Eb5",
"659.255" => "E5",
"698.456" => "F5",
"739.989" => "F#5/Gb5",
"783.991" => "G5",
"830.609" => "G#5/Ab5",
"880" => "A5",
"932.328" => "A#5/Bb5",
"987.767" => "B5",
"1046.5" => "C6",
"1108.73" => "C#6/Db6",
"1174.66" => "D6",
"1244.51" => "D#6/Eb6",
"1318.51" => "E6",
"1396.91" => "F6",
"1479.98" => "F#6/Gb6",
"1567.98" => "G6",
"1661.22" => "G#6/Ab6",
"1760" => "A6",
"1864.66" => "A#6/Bb6",
"1975.53" => "B6",
"2093" => "C7",
"2217.46" => "C#7/Db7",
"2349.32" => "D7",
"2489.02" => "D#7/Eb7",
"2637.02" => "E7",
"2793.83" => "F7",
"2959.96" => "F#7/Gb7",
"3135.96" => "G7",
"3322.44" => "G#7/Ab7",
"3520" => "A7",
"3729.31" => "A#7/Bb7",
"3951.07" => "B7",
"4186.01" => "C8");
my $note_under;
my $note_above;
my $switch = "false";
foreach (sort {$a <=> $b} keys %freqs2notes) {
if ($switch eq "false" && $_ < $freq ) {$note_under=$_}
elsif ($switch eq "false") {$note_above=$_; $switch = "true"}
}
my $delta = ($note_above - $note_under)/2;
my $note;
if ($freq - $note_under < $delta) { $note = $freqs2notes{$note_under} }
else { $note = $freqs2notes{$note_above} }
return $note
}
Output (jetzt)
...
Uniqued Notes
A : 4-mal vorhanden
C : 3-mal vorhanden
C#/Db : 1-mal vorhanden
D : 6-mal vorhanden
F : 3-mal vorhanden
G : 5-mal vorhanden
99% completed
Chunk ist nun: Audio::Analyzer::Chunk=HASH(0x56154f02f118)
Anzahl Frequenzen: 1024
Anzahl FFT: 1024
Durchschnittswert: 0.132533817728933
Die Überdurchschnittswerte werden ermittelt!
A3
A5
A6
C#5/Db5
D4
D5
D6
D7
G3
G4
G6
Uniqued Notes
A : 3-mal vorhanden
C#/Db : 1-mal vorhanden
D : 4-mal vorhanden
G : 4-mal vorhanden
100% completed
Die ermittelten Chunks sind:
1 : Ax1;Cx1;C#/Dbx1;Dx1;Fx2;Gx1
2 : Ax2;Cx1;C#/Dbx1;Ex1;Fx1
3 : Ax5;A#/Bbx2;Bx1;Cx3;C#/Dbx1;Dx3;Ex1;Fx4;Gx1
4 : Ax4;A#/Bbx1;Bx1;Cx5;C#/Dbx1;Dx2;Ex1;Fx3;F#/Gbx1;Gx2;G#/Abx1
5 : Ax5;A#/Bbx1;Cx2;C#/Dbx1;Dx3;Ex1;Fx3;F#/Gbx1;Gx3;G#/Abx1
6 : Ax4;A#/Bbx1;Cx3;C#/Dbx1;Dx4;Ex1;Fx4;Gx2;G#/Abx1
7 : Ax3;C#/Dbx1;Dx1;Fx2;Gx1
8 : Ax2;A#/Bbx1;Bx2;Cx1;Dx1;Ex1;Fx3;Gx1;G#/Abx2
9 : Ax1;A#/Bbx1;Bx2;Cx3;C#/Dbx1;Dx2;Ex1;Fx2;Gx1;G#/Abx1
10 : Ax1;Bx2;Cx3;C#/Dbx1;Dx2;Ex1;Fx3;Gx1
11 : Bx2;Cx3;C#/Dbx1;Dx2;Ex1;Fx3;Gx1
12 : Ax2;Bx1;Cx2;C#/Dbx1;Dx2;Ex1;Fx3;F#/Gbx1;Gx2;G#/Abx2
13 : Dx1;Ex1;Fx3;F#/Gbx1
14 : Ax1;Bx2;Cx2;C#/Dbx1;Dx2;Ex1;Fx2;Gx1
15 : Ax2;A#/Bbx1;Bx2;Cx4;C#/Dbx1;Dx2;Ex1;Fx2;Gx1;G#/Abx1
16 : Ax3;A#/Bbx1;Bx2;Cx4;C#/Dbx1;Dx2;Ex2;Fx3;F#/Gbx1;Gx2;G#/Abx1
17 : Ax2;A#/Bbx1;Bx2;Cx4;C#/Dbx1;Dx3;Ex2;Fx2;F#/Gbx1;Gx2;G#/Abx1
18 : Ax1;Cx2;C#/Dbx1;Dx1;Fx1
19 : A#/Bbx1;Cx1;Dx1;Fx1;Gx1
20 : Ax2;A#/Bbx1;Bx1;Cx2;Dx3;Fx1;Gx2;G#/Abx1
21 : Ax1;A#/Bbx1;Cx6;C#/Dbx2;Dx4;Ex2;Fx2;Gx3;G#/Abx1
22 : Ax1;A#/Bbx1;Bx2;Cx2;C#/Dbx1;Dx5;Ex3;Fx2;Gx4;G#/Abx1
23 : Ax1;A#/Bbx1;Cx3;C#/Dbx1;Dx6;Ex1;Fx1;Gx3;G#/Abx1
24 : Ax1;Cx2;Fx2
25 : Ax3;Cx3;Dx2;Ex1;Fx6;F#/Gbx1;Gx2
26 : Ax2;Cx6;Dx4;Ex1;Fx6;F#/Gbx1;Gx3
27 : Ax2;Cx7;Dx3;Ex2;Fx7;F#/Gbx1;Gx2
28 : Ax2;Cx4;Dx3;Ex1;Fx6
29 : Ax2;Cx1;Dx1;Fx3;F#/Gbx1;Gx1;G#/Abx2
30 : Ax5;A#/Bbx1;Cx4;C#/Dbx4;Dx2;D#/Ebx2;Ex3;Fx5;F#/Gbx2;Gx1;G#/Abx2
31 : Ax4;Bx2;Cx4;C#/Dbx1;Dx5;Ex2;Fx3;F#/Gbx1;Gx1;G#/Abx1
32 : Ax2;Bx2;Cx3;C#/Dbx3;Dx2;D#/Ebx2;Ex3;Fx2;Gx1
33 : Ax4;A#/Bbx1;Bx1;Cx4;C#/Dbx1;Dx3;D#/Ebx1;Ex1;Fx4;F#/Gbx2;Gx1
34 : Cx2;C#/Dbx2;Fx2
35 : Ax2;A#/Bbx2;Ex1;Fx1;Gx1
36 : Ax4;A#/Bbx2;Cx1;C#/Dbx1;Ex1;Fx2;F#/Gbx2;Gx3;G#/Abx1
37 : Ax2;A#/Bbx1;Bx2;Cx1;C#/Dbx1;Fx2;Gx2;G#/Abx4
38 : Ax2;A#/Bbx2;Bx4;Cx2;C#/Dbx2;Dx2;Ex2;Fx3;Gx1;G#/Abx1
39 : Ax2;A#/Bbx1;Bx3;Cx5;C#/Dbx2;Dx1;Ex1;Fx3;F#/Gbx1;Gx2
40 : Ax2;A#/Bbx2;Bx2;Cx2;C#/Dbx1;Dx3;Fx2;F#/Gbx1;Gx2;G#/Abx1
41 : Ax3;A#/Bbx1;Bx1;Cx2;C#/Dbx3;Dx1;Fx2;Gx2;G#/Abx1
42 : Ax3;Bx1;Cx4;C#/Dbx1;Dx2;Fx2;F#/Gbx1;Gx2
43 : Ax3;A#/Bbx2;Bx1;Cx2;C#/Dbx3;Dx6;Ex1;Fx2;F#/Gbx1;Gx2
44 : Ax5;A#/Bbx5;Bx3;Cx5;C#/Dbx5;Dx1;Fx2;F#/Gbx1;Gx2
45 : Ax5;A#/Bbx2;Cx4;C#/Dbx2;Dx4;Ex1;Fx2;F#/Gbx2;Gx3;G#/Abx2
46 : Ax2;A#/Bbx1;C#/Dbx1;Gx2
47 : Ax3;A#/Bbx2;Cx3;C#/Dbx2;Dx4;D#/Ebx1;Ex2;Fx1;F#/Gbx1;Gx2
48 : Ax6;A#/Bbx1;Cx4;C#/Dbx2;Dx6;D#/Ebx1;Ex1;Fx3;F#/Gbx2;Gx2;G#/Abx1
49 : Ax5;A#/Bbx1;Cx2;C#/Dbx6;Dx6;Ex2;Fx4;F#/Gbx1;Gx2
50 : Ax2;C#/Dbx1;Dx3;Ex1;Gx2
51 : Ax1;C#/Dbx1;Dx2;Ex1;Gx2
52 : Ax4;A#/Bbx1;C#/Dbx1;Dx5;Ex2;Fx3;F#/Gbx3;Gx2
53 : Ax7;A#/Bbx2;Bx2;Cx1;C#/Dbx3;Dx5;Ex1;Fx1;F#/Gbx1;Gx5;G#/Abx4
54 : Ax7;A#/Bbx3;Bx1;Cx2;C#/Dbx3;Dx5;Ex1;Fx1;F#/Gbx1;Gx2;G#/Abx2
55 : Ax7;A#/Bbx3;Bx2;Cx1;C#/Dbx6;Dx6;Ex1;Fx1;F#/Gbx1;Gx3;G#/Abx4
56 : Ax6;A#/Bbx7;Bx4;Cx5;C#/Dbx5;Dx5;Ex1;Fx2;F#/Gbx1;Gx1
57 : Ax3;A#/Bbx1;C#/Dbx1;Dx2;Ex1;Fx2;Gx1
58 : Ax2;A#/Bbx2;C#/Dbx1;Dx4;Ex1;Fx1;Gx2
59 : Ax3;A#/Bbx2;C#/Dbx1;Dx3;Ex1;Fx1;Gx3
60 : Ax7;A#/Bbx2;Bx2;Cx1;C#/Dbx1;Dx3;Ex1;Fx1;Gx2;G#/Abx1
61 : Ax4;A#/Bbx1;Cx5;C#/Dbx1;Dx4;Ex1;Fx3;Gx3
62 : Ax4;Cx1;Dx2;Fx1;Gx1
63 : Ax7;A#/Bbx4;Bx1;C#/Dbx1;Dx5;Fx1;G#/Abx1
64 : Ax4;A#/Bbx4;Bx2;Cx2;C#/Dbx2;Dx3;Fx2;Gx1
65 : Ax2;A#/Bbx5;Bx3;Cx3;C#/Dbx2;Dx7;Ex1;Fx3;Gx3
66 : Ax3;A#/Bbx4;Bx2;Cx2;C#/Dbx2;Dx8;Ex1;Fx4;F#/Gbx1;Gx4
67 : Ax4;A#/Bbx3;Bx1;Cx1;C#/Dbx1;Dx4;Ex1;Fx4;Gx4
68 : Dx1
69 : Dx1;Gx1
70 : Ax1;A#/Bbx2;Dx2;Ex1;Gx1
71 : Ax5;A#/Bbx2;Bx1;Cx3;C#/Dbx2;Dx6;D#/Ebx1;Ex1;Fx3;F#/Gbx2;Gx4
72 : Ax6;A#/Bbx3;Bx2;Cx2;C#/Dbx1;Dx7;Ex2;Fx4;F#/Gbx1;Gx4;G#/Abx2
73 : Ax2;A#/Bbx2;Cx1;Dx3;D#/Ebx1;Ex2;Fx4;F#/Gbx2;Gx4;G#/Abx2
74 : Ax3;A#/Bbx2;Bx1;Cx3;C#/Dbx1;Dx2;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx2;G#/Abx1
75 : Ax6;A#/Bbx2;Bx4;Cx3;C#/Dbx1;Dx5;Ex1;Fx2;Gx3;G#/Abx1
76 : Ax7;A#/Bbx4;Bx3;Cx7;C#/Dbx1;Dx4;D#/Ebx1;Ex2;Fx3;F#/Gbx1;Gx3;G#/Abx1
77 : Ax7;A#/Bbx3;Bx3;Cx6;C#/Dbx1;Dx6;Ex2;Fx3;F#/Gbx1;Gx4;G#/Abx2
78 : A#/Bbx1;Cx1;Dx2;Ex1;Fx2;Gx1
79 : Cx1;C#/Dbx1;Dx2;Fx1;Gx2;G#/Abx1
80 : Ax4;A#/Bbx1;Bx1;C#/Dbx1;Dx2;Gx2;G#/Abx1
81 : Ax4;A#/Bbx2;Bx2;Cx1;C#/Dbx2;Dx4;Fx3;F#/Gbx1;Gx4;G#/Abx1
82 : Ax7;A#/Bbx3;Bx3;C#/Dbx2;Dx3;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx4;G#/Abx1
83 : Ax4;A#/Bbx3;Cx1;C#/Dbx1;Dx4;D#/Ebx1;Ex1;Fx3;Gx4;G#/Abx1
84 : Ax2;A#/Bbx2;Cx1;Dx1;Ex1;Gx3;G#/Abx2
85 : Ax5;A#/Bbx1;Cx3;C#/Dbx1;Ex1;Fx2;Gx1
86 : Ax5;A#/Bbx2;Bx1;Cx2;C#/Dbx3;Dx4;D#/Ebx3;Ex1;Fx3;Gx4;G#/Abx1
87 : Ax2;A#/Bbx1;Bx2;Cx2;C#/Dbx2;Dx5;D#/Ebx3;Ex2;Fx3;Gx3
88 : Ax4;A#/Bbx1;Bx2;Cx2;C#/Dbx1;Dx5;D#/Ebx1;Ex2;Fx4;Gx3
89 : Ax2;Bx2;C#/Dbx1;Dx5;D#/Ebx1;Ex1;Fx3;F#/Gbx1;Gx2
90 : Ax2;A#/Bbx1;Cx2;C#/Dbx6;Dx6;D#/Ebx1;Ex2;Fx3;F#/Gbx2;Gx1;G#/Abx1
91 : Ax2;Bx1;Cx3;C#/Dbx4;Dx5;D#/Ebx1;Ex2;Fx3;F#/Gbx1;Gx2;G#/Abx1
92 : Ax4;A#/Bbx2;Bx1;Cx4;C#/Dbx4;Dx5;D#/Ebx1;Ex3;Fx4;F#/Gbx2;Gx4;G#/Abx2
93 : Ax1;Bx2;Cx4;C#/Dbx6;Dx7;D#/Ebx1;Ex2;Fx3;F#/Gbx1;Gx2;G#/Abx5
94 : Ax7;A#/Bbx1;Bx3;Cx3;C#/Dbx4;Dx8;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx3
95 : Ax4;A#/Bbx2;Bx2;Cx2;C#/Dbx1;Dx8;D#/Ebx1;Ex2;Fx4;F#/Gbx1;Gx7
96 : Ax3;A#/Bbx1;Bx2;Cx1;C#/Dbx4;Dx3;Fx1;F#/Gbx3;Gx2;G#/Abx5
97 : Ax3;A#/Bbx2;Bx1;Cx3;C#/Dbx2;Dx2;Fx2;F#/Gbx2;Gx4;G#/Abx3
98 : Ax3;A#/Bbx3;Cx2;C#/Dbx3;Dx2;Fx4;Gx3;G#/Abx4
99 : Ax9;A#/Bbx1;Bx4;Cx2;C#/Dbx4;Dx4;Fx2;F#/Gbx1;Gx5;G#/Abx3
100 : Ax7;A#/Bbx2;Bx2;Cx2;Dx8;Ex1;Fx4;F#/Gbx2;Gx4;G#/Abx2
101 : Ax4;A#/Bbx1;Cx1;C#/Dbx2;Dx5;D#/Ebx2;Ex1;Fx2;F#/Gbx1;Gx1;G#/Abx1
102 : Ax3;Cx2;C#/Dbx1;Dx4;D#/Ebx1;Ex3;Fx2;F#/Gbx2;Gx1;G#/Abx1
103 : Ax3;A#/Bbx2;Cx5;C#/Dbx2;Dx7;Ex5;Fx2;F#/Gbx3;Gx2
104 : Ax4;A#/Bbx1;Cx6;C#/Dbx4;Dx6;Ex3;Fx3;F#/Gbx1;Gx6;G#/Abx2
105 : Ax6;A#/Bbx1;Cx7;C#/Dbx2;Dx7;Ex2;Fx2;F#/Gbx1;Gx4;G#/Abx1
106 : Ax6;Cx2;C#/Dbx2;Dx7;Fx1;F#/Gbx2;Gx2
107 : Ax5;A#/Bbx3;Bx2;Cx4;C#/Dbx2;Dx8;Ex1;Fx3;F#/Gbx1;Gx3;G#/Abx1
108 : Ax6;Cx1;C#/Dbx1;Dx7;D#/Ebx3;Ex1;Fx3;F#/Gbx1;Gx4;G#/Abx1
109 : Ax6;Cx2;Dx9;D#/Ebx4;Ex2;Fx5;F#/Gbx1;Gx3;G#/Abx1
110 : Ax5;Cx1;C#/Dbx5;Dx6;D#/Ebx1;Ex1;Fx6;F#/Gbx1;Gx4;G#/Abx1
111 : Ax5;Cx2;Dx5;Fx3;Gx2;G#/Abx1
112 : Ax3;A#/Bbx1;Cx1;Dx5;Fx1;Gx1
113 : Ax2;A#/Bbx1;Dx3;Ex1;Fx2;Gx1
114 : Ax3;A#/Bbx1;C#/Dbx3;Dx7;Fx2;Gx2;G#/Abx1
115 : Ax2;A#/Bbx2;C#/Dbx1;Dx6;Fx2;Gx2;G#/Abx2
116 : Ax2;A#/Bbx2;Cx1;C#/Dbx2;Dx6;Ex1;Fx1;Gx4;G#/Abx2
117 : Ax2;A#/Bbx1;Dx6;Ex1;Fx1;Gx1;G#/Abx2
118 : Ax2;A#/Bbx2;Dx5;Ex2;Fx3;Gx1;G#/Abx2
119 : Ax2;A#/Bbx2;C#/Dbx1;Dx5;Ex1;Fx4;Gx2;G#/Abx1
120 : Ax2;A#/Bbx2;Dx7;Ex1;Fx2;Gx1
121 : Ax2;Dx3;Gx1
122 : Gx1
123 : Ax7;C#/Dbx1;Dx3;Fx2;F#/Gbx1;Gx2
124 : Ax4;Cx3;C#/Dbx1;Dx6;Fx3;Gx5
125 : Ax3;C#/Dbx1;Dx4;Gx4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Und wahrscheinlich eine der größten Hohl- onda Tollheiten: Die tolle schwarze Null.
Das ist ja wie "Alles festzurren!". Ist doch klar, daß sich dann iwan gar nix mehr bewegt/bewegen kann.
Carl Christian von Weizsäcker: "Sie sind alle Getriebene" | ZEIT ONLINE
Bundeshaushalt: Schwarze Null von heute ist die Krise von morgen - SPIEGEL ONLINE
............................................................................................................................................................
Kommentare
Kommentar veröffentlichen