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&amp;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 zücken suchen, finden und bedienen können (was ich - glaube ich - immer noch - nur nicht mehr so schnell - kann können könnte) ...

 

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&amp;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!*




* Ich weiß das wirklich zu schätzen. Ehrlich, ernsthaft. ;-)




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




Interview mit dem Kultkölner: Hans Süper kommt ins Ollheimer Dorfhaus | General-Anzeiger Bonn


Kommentare

Beliebte Posts aus diesem Blog

·

Es brennt.

Bye, bye Nord Stream 2!