# Copyright (C) 2002-2004 gregoire HUBERT.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author : gregoire HUBERT
#
# XML_node.objet
#
# This object is an XML node representation
#
# /- name (string)
# xml_node --- attributes (array)
# \- children (array) or value (string)
class xml_node {
var $name;
var $attributes = array();
var $children = array();
var $value = "";
function xml_node($name,$attributes,$children=array(),$value="") {
$this->name = $name;
if (is_array($attributes)) {
$this->attributes = $attributes;
}
$this->children = $children;
$this->value = $value;
}
}
# Copyright (C) 2003-2004 gregoire HUBERT.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Author : gregoire HUBERT
#
# xml_tree class
#
# This object parses an XML stream and offers a tree composed by xml_nodes
#
class xml_tree {
var $xml_stream;
var $current_node;
var $root_node;
var $index;
var $value;
function xml_tree() {
$this->root_node = new xml_node("__ROOT_NODE",array());
$this->current_node = $this->root_node;
}
function add_tree($xml_stream) {
# Managing the parser
$this->xml_stream = $xml_stream;
$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);
if (!xml_parse_into_struct($xml_parser,$this->xml_stream,$this->value,$this->index)) {
xml_parser_free($xml_parser);
die("XML Parse error");
}
xml_parser_free($xml_parser);
# Now, $this->value and $this->index are informed, we can use the get_node methode.
$tab_result = $this->get_node(0,count($this->value) - 1);
$this->root_node->children[] = $tab_result[0];
$this->current_node = $this->root_node;
}
function get_node($index_start,$index_stop) {
#echo " \n";
#echo "GET-NODE($index_start,$index_stop) \n";
# What we are going to return is an array of xml_nodes
$return_tab = array();
# depth is only here to check if everything is all right
$tab_node = $this->value[$index_start];
$depth = $tab_node["level"]-1;
# Now we have to be sure we do not forget a single node
for ($index = $index_start;$index <= $index_stop;$index++) {
#echo "\$index = $index ";
# get the current node
$tab_node = $this->value[$index];
# what type of node is it ?
switch($tab_node["type"]) {
case "complete" :
# Depth integrity check
if ($tab_node["level"] != $depth+1) {
die("ERREUR # contrainte d'intégrité au noeud complet $index, niveau $depth + 1 au lieu de ".$tab_node["level"]);
}
#echo "Noeud complet trouvé position $index TAG ".$tab_node["tag"]." \n";
# Easy one, no children to manage, only a value...
$return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],"",$tab_node["value"]);
break;
case "open" :
# Depth integrity check
if ($tab_node["level"] != $depth +1 ) {
die("ERREUR # contrainte d'intégrité au noeud ouvert $index, niveau $depth au lieu de ".$tab_node["level"]);
}
# Open tag, we re-use this methode to return its children
# Where is the correspondong close tag ?
$node_index = $this->index[$tab_node["tag"]];
$flipped_node_index = array_flip($node_index);
#echo "This ".$tab_node["tag"]." is at coords ".$flipped_node_index[$index]." ";
$i=1;
do {
$next_index = $node_index[$flipped_node_index[$index] + $i++];
$next_tag=$this->value[$next_index];
}
while ($next_tag["level"]!=$tab_node["level"]);
#echo "Ouverture de noeud détectée pos $index TAG ".$tab_node["tag"]." \n Parcours jusqu au $next_index \n";
# good, we can now instanciate our node
$return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],$this->get_node($index+1,$next_index),"");
# As we called the get_node methode, we are sure that nodes have been parsed to the corresponding close tag
$index = $next_index;
break;
case "close" :
# Depth integrity check
if ($tab_node["level"] != $depth ){
die("ERREUR # contrainte d'intégrité au noeud fermé $index, niveau $depth au lieu de ".$tab_node["level"]);
}
#echo "Fermeture de noeud detectée pos $index TAG ".$tab_node["tag"]."
\n";
# This ugly thing is useless because reaching a close tag means that $index==$index_stop but who knows ? =)
# it will be skipped soon
$index = $index_stop;
break;
default:
die("Erreur de type de TAG non déterminé :'".$tab_node["type"]."'");
}
}
# We are out ... returns the array with collected children...
return ($return_tab);
}
# this function browse the xml tree and set the current node to the selected node
function give_node($path) {
if ($path[0]=="/") {
$current_node=$this->root_node;
$path=substr($path,1);
#echo "ABSOLUTE PATH GIVEN=$path ";
}
else {
$current_node = $this->current_node;
}
#echo "PATH GIVEN=$path ";
$tab_path = split("/",$path);
foreach ($tab_path as $node_expr) {
#echo "STUDYING EXPR='$node_expr' ";
$node = $current_node;
$expr_tab = split("\?",$node_expr);
$node_name = $expr_tab[0];
$attr_tab = 0;
if (count($expr_tab)>1) {
##echo "TROUVE AU MOINS UNE CONDITION SUR LES ATTRIBUTS... ";
$attr_expr_tab=split(",",$expr_tab[1]);
$attr_tab=array();
foreach($attr_expr_tab as $attr_expr) {
$attr_split_expr=split("=",$attr_expr);
$attr_tab[$attr_split_expr[0]]=$attr_split_expr[1];
}
}
$last=0;
foreach ($node->children as $children) {
#echo "COMPARING WITH '$children->name' ";
if ($children->name == $node_name) {
##echo "TROUVE NOEUD CORRESPONDANT $node_name ";
if (is_array($attr_tab)) {
$node_attributes = $children->attributes;
foreach ($attr_tab as $key=>$value) {
if ($node_attributes[$key] == $value) {
#echo "ATTRIBUTE & CHANGE CURRENT NODE TO ".$children->name." ";
$current_node = $children;
$last = 1;
}
}
}
else {
##echo "CHILD=".$children->name." ";
#echo "CHANGE CURRENT NODE TO ".$children->name." ";
$current_node = $children;
$last=1;
}
}
if ($last) {
break;
}
}
if (!$last) {
#echo "PATH ERROR $node_name ";
#die("MMmmmh It seems that this file is not a DIA XML format...sorry...");
return 0;
}
}
return $current_node;
}
function browse_tree($path) {
$node = $this->give_node($path);
if (is_object($node)) {
$this->current_node = $node;
return 1;
}
return 0;
}
# this method dumps an html representation of the xml tree
function xml_show($node = "",$level=0,$last=0) {
if ($node=="") {
$node=$this->root_node;
}
if (!is_object($node)) {
die("ERROR : node is not an object");
}
$line="";
for($i=1;$i<=$level;$i++) {
if ((i==$level-1) and ($last)) {
$line.=" ";
}
else {
$line.=" |";
}
if ($i==$level) {
$line.="`-";
}
}
$line.=$node->name;
#echo $line;
$line.="".count($node->children)."";
if (count($node->children)==1) {
$line.=" (".$node->value.") \n";
echo "$line";
}
else {
$line.=" \n";
echo "$line";
$i=1;
foreach($node->children as $children) {
if ($i==count($node->children)) {
$this->xml_show($children,$level+1,1);
}
else {
$this->xml_show($children,$level+1);
}
$i++;
}
}
}
#END_CLASS
}
PERVERT ASSHOLE (FRA) - Welcome To My Zombie Cathouse (2012)

Label : Auto-Production
Sortie du Scud : 28 février 2012
Pays : France
Genre : Metal
Type : Album
Playtime : 12 Titres - 45 Mins
Sur ce coup là, ignorant les origines du groupe et ne jugeant que sur le packaging, je me suis bien fait avoir. Mais j’ai des circonstances atténuantes, il faut quand même le préciser.
D’abord le nom du combo, PERVERT ASSHOLE, et puis le titre de la galette, Welcome To My Zombie Cathouse. Je m’attendais en effet avec tout ça à une resucée de MORTICIAN, version plus paillarde que Gore, ou encore à un remix de Rob ZOMBIE, matinée de Grind sauvage.
Que nenni…
D’une part, parce que PERVERT ASSHOLE est un groupe bien de chez nous, et parisien de surcroît. Fondé sur les cendres de FOLGE DEM WIND et CORROSIVE ELEMENTS en 2009, ce quartette de dépeceurs ne craint pas grand-chose, et assume son identité nécrofun (vous me pardonnerez ce néologisme que je trouve très approprié…) jusqu’au trognon.
Il faut dire qu’ils y vont forts les cons…Un simple énoncé des titres suffirait déjà à placer la barre très haute (« Born To Porn », « My Dog’s Pussy », « I Cum Whiskey »), mais si en plus, j’ajoute quelques extraits des textes hauts en couleurs, la coupe n’est pas loin d’être pleine. Pour exemple, extrait de « My Dog’s Pussy » :
« J’ai l’habitude de lécher la chatte de ma chienne, son parfum acide me rend dingue, j’ai l’habitude de lécher la chatte de ma chienne, son goût amer c’est le Paradis ».
Voilà, une fois le contexte placé, libre à vous de poursuivre la lecture de cette chronique/d’entamer l’écoute de ce CD. Car comme disait feu l’ami Dom Duj’, « Gare-gare, c’est pas du Ronsard !! »
En effet, de Ronsard, il n’est pas question ici. Pas plus que de Baudelaire, de Yeats, Mozart ou Haydn. Mais à la limite, je dirais qu’on s’en bat les couilles. Et je vais la faire courte (à l’inverse de la teub du chanteur je présume…). Vous voyez un peu le MOTORHEAD bien greasy, celui d’Orgasmatron ou de Rock’n’Roll ? Les NASHVILLE PUSSY ? Alors vous les prenez en ingrédient de base, vous rajoutez une grosse louche de Hardcore bien sec, vous faites jouer le tout par une bande de barges sévèrement burnés et inconscients, et vous obtenez cette mixture diaboliquement jouissive qu’est Welcome To My Zombie Cathouse.
Chapeau les gars, pour du gras, c’est du gras. J’en ai encore les doigts qui bavent. Hé, viens là le chat ! Et hop, c’est tout propre. On peut y aller.
Mais bon, tout ça, c’est très con, mais est ce qu’au moins, c’est bon ? Je serais tenté de dire que les multiples râles féminins qui parsèment l’œuvre en sont la réponse la plus évidente. Ca joue, ça jute, en plein dans ta face de fils de pute. Après tout, on ne se surnomme pas Brutal, Dr Perv, Lt Skiimpies et T.P Bunghole par hasard ! PERVERT ASSHOLE, c’est du porno auditif pour tous ceux qui ont à la place des oreilles un gros dard. Qui sont capables de bander du tympan sans avoir recours au boucan.
Parce qu’ils ont beau essayer de se faire passer pour une simple bande d’allumés, nos amis savent leur instrument (le vrai, pas l’autre…) manier !!!
Pas de prise de tête, mais du raide pour la quéquette, ça joue gros, gras, épais, sans toutefois tomber dans la caricature pour mériter les injures. Tiens, la jam finale, plus bluesy que le caleçon de Billy GIBBONS, c’est pas du Hard-core ?
Et la voix du Dr Perv, c’est pas du dédain bourrin ? Cette façon de traîner sur les vers, comme un cadavre qu’on met en terre, c’est juste du tonnerre. Point. Dans ta gueule. Sois pas bégueule !!
Et perso, le riff Thrash de « Born To Porn », c’est juste mon kiff. Cette confession en forme d’hommage au père Lemmy, c’est bien troussé, comme une soubrette dans l’escalier, entre deux chambres nettoyées.
La Wah Wah de « Nice To Meat You » pourrait se fourrer dans tous les trous. « Living Dead Slut », c’est la poupée gonflable dont on rêve tous, au binaire aussi plombé que le trou de balle huilé. Merde les gars, le priapisme, vous connaissez ???
Je ne vais pas m’étendre (hum…) plus longtemps sur le sujet (sauf si celui-ci est une jeune fille au pair ukrainienne morte depuis deux jours), PERVERT ASSHOLE, c’est jouissif, c’est comme d’avaler une bouteille de Cif avant de se faire vider le calcif. C’est du Rock, pour sur, et du bien Hard, comme Rocco et son braquemart. Sauf que nos gus à nous sont plus intéressés par le blasphème, et les cadavres sexy, ils aiment. Et du coup, leur musique fait monter une envie de piqûre de moustique, du genre de celles qui niquent, et qui vous vident à sec.
Et puis, voyez les cinquante sept titres vides comme une private Joke. Il fallait bien ça pour un bon 69 !
Ajouté : Jeudi 12 Juillet 2012 Chroniqueur : Mortne2001 Score :     Lien en relation: Pervert Asshole Website Hits: 7082
|