Side-Project, Continuation.
...
Geschafft! Dat Dingen is jetzt voll einsatzbereit.
...
# Übergabe der Einzelpattern (nicht Basispattern!) in Datenbank
## Check, ob in Datenbank bereits vorhanden & Übergabe oder Meldung
### Datenbank-Tabellen-Check-Durchlauf
foreach ( keys %patterns_transport ) {
print "Das Pattern $_ wird abgecheckt!\n";
# Check
my $check = pattern_check($patterns_transport{$_},$soundbank);
print "Check-Ergebnis: $check.\n";
# Wenn noch nicht vorhanden (="FALSE"), dann Übergabe (INSERT)
if ( $check eq "FALSE" ) {
print "Pattern wird übergeben!\n";
pattern_insert($patterns_transport{$_},$soundbank);
} else { print $check, "\n" }
}
# Zum Abschluß die temporäre Tabelle droppen & DB-Disconnect
basepattern_temp_drop();
disconnect_emysukdb();
...
Das Pattern Pattern 2 wird abgecheckt!
Check-Ergebnis: Wurde bereits am 2019-3-3 in der Datenbank gespeichert!.
Wurde bereits am 2019-3-3 in der Datenbank gespeichert!
Das Pattern Pattern 3 wird abgecheckt!
Check-Ergebnis: Wurde bereits am 2019-3-3 in der Datenbank gespeichert!.
Wurde bereits am 2019-3-3 in der Datenbank gespeichert!
Das Pattern Pattern 1 wird abgecheckt!
Check-Ergebnis: Wurde bereits am 2019-3-3 in der Datenbank gespeichert!.
Wurde bereits am 2019-3-3 in der Datenbank gespeichert!
Mithilfe
der nun (und folgend) in der Datebank hinterlegten Daten lassen sich
nicht nur Pattern zu bestimmten Soundbibliotheken (soundbanks) per
Zufall aus dem Lostopf ziehen, sondern generell alle Pattern, die dann
entsprechend der Zielbibliothek transformiert werden können, wenn sie
einer anderen Bibliothek entstammen. Da ist jetzt also eine ganze Menge
mehr möglich ... der innere Schweiß und die gelegentliche Flucherei, das
Kopfbrummen und -krampfen hat sich folglich gelohnt und wird sich noch
sehr bezahlt machen. Wonnebaa! Kläpp ming Händ! Jetzt nur noch ein
bisschen händisch füllen, dat Janze!
Zufällig gefunden:
Midi-Drumpattern per Perl-Skript in Hydrogen-Songs umwandeln
Weitere Drumkits sichern
@thiagonasper
: Just try the original URL List (
http://hydrogen-music.org/feeds/drumkit_list.php
), it is back online again.
Weil mit der Liste so nur umständlich was anzufangen ist, hat es mich zum Weiterspielen mit Perl animiert:
Code
#!/usr/bin/perl
# hydrogen-drumkits.pl
use strict;
use warnings;
use DBI;
use ZugangsDaten_postgresql qw($DB_USER $DB_PASSWD);
use Encode qw(is_utf8 decode encode);
# Variablen
my @quelldatei;
my @drumkit_names;
# Programm
## Öffnen der 'drumkit_list-1.php'-Datei zum Extrahieren der Drumkit-Daten
open ( my $fh, '<drumkit_list-1.php' );
@quelldatei = <$fh>;
close $fh;
## Umwandeln in Textdatei, fehlende Zeilenumbrüche ergänzen
### Array zu String
my $quelldatei = join("",@quelldatei);
$quelldatei =~ s/<drumkit></<drumkit>\n</g;
$quelldatei =~ s/<\/name></<\/name>\n</g;
$quelldatei =~ s/<\/url></<\/url>\n</g;
$quelldatei =~ s/<\/info></<\/info>\n</g;
$quelldatei =~ s/<\/author></<\/author>\n</g;
$quelldatei =~ s/<\/license></<\/license>\n</g;
### String als Textdatei zwischen-/abspeichern
open ( my $fhw, '>drumkit_list-1.txt' );
print $fhw $quelldatei;
close $fhw;
## Auslesen der Drumkit-Namen
my $drumkit_toggle = 0;
foreach ( @quelldatei ) {
if ( $_ =~ /<drumkit>/ ) { $drumkit_toggle = 1 }
if ( $drumkit_toggle == 1 ) {
if ( $_ =~ /<name>.*<\/name>/ ) {
my $name = $_;
$name =~ s/^(.*)<name>(.*)<\/name>(.*)$/$2/;
chomp $name;
push @drumkit_names, $name;
}
}
if ( $_ =~ /<\/drumkit>/ ) { $drumkit_toggle = 0 }
}
### Ausgabe der Drumkit-Namen am Bildschirm
print "Die Drumkits, die in dieser Datei verlinkt sind, heißen:\n\n";
print map { $_, "\n" } @drumkit_names;
print "\nListe Ende.\n";
Output
Die Drumkits, die in dieser Datei verlinkt sind, heißen:
Audiophob
belofilms.com - AC-Guitar-Strums (flac)
BJA_Pacific
Boss DR-110 (sf)
Classic 3355606 (sf)
Classic 626 (sf)
circAfrique v4
ColomboAcousticDrumkit (sf)
YamahaVintageKit (sf)
DeathMetal (sf)
Denon CRB-90
Drumkit excepcional
EasternHop (sf)
Electric Empire (sf)
Erny's percussions (sf)
Forzee Stereo Drumkit
Gimme A Hand 1.0
GSCW Kit 1 (Flac edition)
GSCW Kit 2 (Flac edition)
HardElectro (sf)
HipHop-1 (sf)
HipHop-2 (sf)
K-27 Trash Kit
Lightning1024
Millo drums 1 (sf)
Millo's MultiLayered 2 (sf)
Millo's MultiLayered 3 (sf)
Roland TR-909
Roland TR-808
Roland TR-707
Roland TR-606
Roland_MC-307_CR78&Cheaps
Roland_MC-307_TR-606
Roland_MC-307_TR-808_
Roland_MC-307_TR-909
Roland_MC-307_Techno1
rumpf_kit_z01_gm
SF3007-2011-Set-03
Synthie-1 (sf)
TD-7 (sf)
Techno-1 (sf)
The Black Pearl 1.0
TR808909 (sf)
VariBreaks (sf)
Liste Ende.
Die Links sind logischerweise auch ruckizucki extrahierbar:
Code
## Auslesen der Drumkit-Namen & -URLs
my $drumkit_toggle = 0;
foreach ( @quelldatei ) {
if ( $_ =~ /<drumkit>/ ) { $drumkit_toggle = 1 }
if ( $drumkit_toggle == 1 ) {
if ( $_ =~ /<name>.*<\/name>/ ) {
my $name = $_;
$name =~ s/^(.*)<name>(.*)<\/name>(.*)$/$2/;
chomp $name;
push @drumkit_names, $name;
} elsif ( $_ =~ /<url>.*<\/url>/ ) {
my $url = $_;
$url =~ s/^(.*)<url>(.*)<\/url>(.*)$/$2/;
chomp $url;
push @drumkit_urls, $url;
}
}
if ( $_ =~ /<\/drumkit>/ ) { $drumkit_toggle = 0 }
}
### Ausgabe der Drumkit-Namen am Bildschirm
print "Die Drumkits, die in dieser Datei verlinkt sind, heißen:\n\n";
print map { $_, "\n" } @drumkit_names;
print "\nNamen Liste Ende.\n";
### Ausgabe der Drumkit-Urls am Bildschirm
print "Die URLs zu den Drumkits sind:\n\n";
print map { $_, "\n" } @drumkit_urls;
print "\nURLs Liste Ende.\n";
Wenn ich schon nicht viel kann, sowas kann ich mittlerweile nebenher mal schnell aus dem Ärmel schütteln, immerhin. So wie früher Taschenrechner
Output
...
http://www.hydrogen-music.org/download/drumkits/Roland TR-909.h2drumkit
http://www.hydrogen-music.org/download/drumkits/Roland TR-808.h2drumkit
http://www.hydrogen-music.org/download/drumkits/Roland TR-707.h2drumkit
http://www.hydrogen-music.org/download/drumkits/Roland TR-606.h2drumkit
http://hydro.smoors.de/Roland_MC-307_CR78&Cheaps.h2drumkit
http://hydro.smoors.de/Roland_MC-307_TR-606.h2drumkit
http://hydro.smoors.de/Roland_MC-307_TR-808.h2drumkit
http://hydro.smoors.de/Roland_MC-307_TR-909.h2drumkit
http://hydro.smoors.de/Roland_MC-307_Techno1.h2drumkit
http://hydro.smoors.de/rumpf_kit_z01_h2.h2drumkit
https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/SF3007-2011-Set-03.h2drumkit
https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/The Black Pearl 1.0.h2drumkit
URLs Liste Ende.
Ich
meine, ich hab' schneller sowas eingetippt, als die einzelnen Links per
Copy & Paste nacheinander aus dem Text gefischt. Viel schneller.
Und überhaupt macht's mehr Gaudi. Würde ich auch, wenn's länger dauern
würde, lieber so machen, mittlerweile. So. Punkt.
Der
nächste Schritt ist, diese und die weiteren Infos ( Author, Lizenz
etc.) in meiner Datenbank abzulegen. Der Schritt danach, auch die Wav-
oder Flac-Audiodateien (bzw. das gepackte Bundle) in Blob-Feldern meiner
EMysuk-DB zu sichern. Auf daß ich möglichst lang & flexibel mit der
supernicen Software von Hydrogen arbeiten kann! Kurz noch ein Hinweis
auf die Verfasser/Bereitsteller dieses wertvollen Schatzes: Hydrogen!
Et voilà!
#!/usr/bin/perl
# hydrogen-drumkits.pl
use strict;
use warnings;
use DBI;
use ZugangsDaten_postgresql qw($DB_USER $DB_PASSWD);
use Encode qw(is_utf8 decode encode);
# Variablen
my @quelldatei;
my @drumkit_names;
my @drumkit_urls;
my @drumkit_authors;
# Programm
## Öffnen der 'drumkit_list-1.php'-Datei zum Extrahieren der Drumkit-Daten
open ( my $fh, '<drumkit_list-1.php' );
@quelldatei = <$fh>;
close $fh;
## Umwandeln in Textdatei, fehlende Zeilenumbrüche ergänzen
### Array zu String
my $quelldatei = join("",@quelldatei);
$quelldatei =~ s/<drumkit></<drumkit>\n</g;
$quelldatei =~ s/<\/name></<\/name>\n</g;
$quelldatei =~ s/<\/url></<\/url>\n</g;
$quelldatei =~ s/<\/info></<\/info>\n</g;
$quelldatei =~ s/<\/author></<\/author>\n</g;
$quelldatei =~ s/<\/license></<\/license>\n</g;
### String als Textdatei zwischen-/abspeichern
open ( my $fhw, '>drumkit_list-1.txt' );
print $fhw $quelldatei;
close $fhw;
## Quelldatei-Array neu einlesen
@quelldatei = split("\n",$quelldatei);
## Auslesen der Drumkit-Namen & -URLs & -Autoren
my $drumkit_toggle = 0;
foreach ( @quelldatei ) {
if ( $_ =~ /<drumkit>/ ) { $drumkit_toggle = 1 }
if ( $drumkit_toggle == 1 ) {
if ( $_ =~ /<name>.*<\/name>/ ) {
my $name = $_;
$name =~ s/^(.*)<name>(.*)<\/name>(.*)$/$2/;
chomp $name;
push @drumkit_names, $name;
} elsif ( $_ =~ /<url>.*<\/url>/ ) {
my $url = $_;
$url =~ s/^(.*)<url>(.*)<\/url>(.*)$/$2/;
chomp $url;
push @drumkit_urls, $url;
} elsif ( $_ =~ /<author>.*<\/author>/ ) {
my $author = $_;
$author =~ s/^(.*)<author>(.*)<\/author>(.*)$/$2/;
chomp $author;
push @drumkit_authors, $author;
}
}
if ( $_ =~ /<\/drumkit>/ ) { $drumkit_toggle = 0 }
}
## Ausgabe der extrahierten Informationen
for ( my $nr = 0; $nr < scalar @drumkit_names; $nr++ ) {
print "Drumkit: ", $drumkit_names[$nr], "\n";
print "URL: ", $drumkit_urls[$nr], "\n";
print "Autor(in): ", $drumkit_authors[$nr], "\n";
print "----------------------------------------------\n";
}
Output
...
Drumkit: Roland_MC-307_Techno1
URL: http://hydro.smoors.de/Roland_MC-307_Techno1.h2drumkit
Autor(in): Michael Wolkstein
----------------------------------------------
Drumkit: rumpf_kit_z01_gm
URL: http://hydro.smoors.de/rumpf_kit_z01_h2.h2drumkit
Autor(in): Emanuel Rumpf
----------------------------------------------
Drumkit: SF3007-2011-Set-03
URL: https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/SF3007-2011-Set-03.h2drumkit
Autor(in): Rainer Steffen Hain, Germany
----------------------------------------------
Drumkit: Synthie-1 (sf)
URL: http://prdownloads.sf.net/hydrogen/Synthie-1.h2drumkit
Autor(in): Artemiy Pavlov
----------------------------------------------
Drumkit: TD-7 (sf)
URL: http://prdownloads.sf.net/hydrogen/TD-7kit.h2drumkit
Autor(in): Artemiy Pavlov
----------------------------------------------
Drumkit: Techno-1 (sf)
URL: http://prdownloads.sf.net/hydrogen/Techno-1.h2drumkit
Autor(in): Artemiy Pavlov
----------------------------------------------
Drumkit: The Black Pearl 1.0
URL: https://sourceforge.net/projects/hydrogen/files/Sound%20Libraries/Main%20sound%20libraries/The Black Pearl 1.0.h2drumkit
Autor(in): Glen MacArthur
----------------------------------------------
Drumkit: TR808909 (sf)
URL: http://prdownloads.sf.net/hydrogen/TR808909.h2drumkit
Autor(in): Artemiy Pavlov
----------------------------------------------
Drumkit: VariBreaks (sf)
URL: http://prdownloads.sf.net/hydrogen/VariBreaks.h2drumkit
Autor(in): Artemiy Pavlov
----------------------------------------------
Jedes Mal Hudeligkeiten, jedes Mal Dressur durch den Interpreter. Kostenlose Dressur. Dankeschön!*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Interview mit dem Kultkölner: Hans Süper kommt ins Ollheimer Dorfhaus | General-Anzeiger Bonn
Kommentare
Kommentar veröffentlichen