Salut,

Slcnc CMS est sorti il y a déjà bien des années... Et depuis sa sortie initiale, pas le moindre bogue signalé, de nombreux téléchargements, mais pas la moindre mise à jour non plus...

Il faut dire que ce projet dérivait directement du site à l'époque auto-hébergé qui allait devenir plus tard Clewn.org. Des mois de travail et de test avaient été effectués sur le code, et encore de nombreux mois ont été nécessaire pour arriver à la toute première version... Qui est restée l'unique version jusqu'à aujourd'hui.

Mais là, voici, après de longues heures de travail, la nouvelle mouture, nom de code Slcnc Reborn (clin d'œil à Ampache Reborn, qui ne fait pas tout a fait la même chose mais est un très bon soft, d'ailleurs on est en train de travailler à l'utiliser pour mettre en ligne la nouvelle version de l'archive musicale de Dogmazic). Pas une réécriture de fond en comble, simplement un gros élagage et un sérieux coup de jeune sur une base de code qui a prouvé à l'épreuve du temps sa qualité.

Les principaux défauts de Slcnc CMS première version étaient principalement une interface très peu ergonomique et très peu lisible, ainsi qu'une pléthore de fonctionnalités toutes plus expérimentales et peu utilisées les unes que les autres qui désorientaient plus qu'autre chose.

J'ai voulu recentrer le CMS sur ses objectifs principaux, à savoir gérer le site d'un projet musical avec au choix téléchargement gratuit ou vente en ligne, en mettant l'accent sur les deux "core features", téléchargement des fichiers et écoute en ligne.

Les paradigmes de navigation de la nouvelle version, comme ceux (légèrement différents) de la version précédente, sont peu adaptés à une utilisation dans un cadre multi-projets... Clairement pas ce qu'il vous faut pour un site de label ou si, comme moi, vous vous cachez dernière de (trop ?) nombreux projets.

La publication est à 100% piloté par les métadonnées que vous aurez intégrées à vos fichiers audio avec un logiciel dédié (tag editor, comme par exemple Easytag) ou avec votre logiciel favori de lecture de média (presque tous proposent une gestion basique des métadonnées de nos jours), voire même avec votre logiciel de production audio qui offrira souvent cette fonctionnalité s'il exporte dans des formats supportant les métadonnées.

Toute métadonnée est bonne à mettre, histoire de confort pour vos auditeurs, bien sûr, mais les plus importantes pour Slcnc CMS sont :
  • Artiste
  • Album (chaque album a droit à une page spécifique, si vous êtes du genre à inonder vos relations de liens pour faire votre promo ça peut être pratique)
  • Titre du morceau (même remarque que pour album)
  • Style/genre : très utile si vous œuvrez dans plusieurs style ou genre bien délimités, moins intéressant si votre musique reste dans le même registre ou dans plusieurs styles aux limites floues... Mais chaque style présent parmi vos morceaux aura sa propre page rassemblant tous les morceaux s'y rattachant, assez bien si quelqu'un un jour se dit "tiens aujourd'hui je me ferais bien une rétrospective de leurs morceaux reggae" ou quelque chose du genre
  • Numéro de piste (au sein de l'album), qui est affichée sur le site sur la plupart des pages où des morceaux sont présents... Et des morceaux sont présents sur toutes les pages....
  • Commentaires, sans doute le plus important si vous faites de la musique libre, car il s'affiche sur site en tant qu'"informations de licence", c'est là ou il faudra indiquer l'url de n'importe quelle licence pourvu qu'elle ait une adresse web, ainsi que les diverses informations légales, comme les informations de paternité de différents samples libre que vous auriez utilisés, tout ça. Si ce champ est laissé vide, la mentions "tous droits réservés" sera par défaut affichée, à défaut de mieux...

Quand au champ année, il n'est plus affiché dans les encarts de chaque chanson, histoire d'alléger (un peu) graphiquement les pages, qui donnent déjà la plupart du temps, pour chaque titre, la totalité des champs que je viens d'énumérer.

Vous avez vu, je parle de tout ça en français... Car le site est désormais entièrement disponible en deux versions, français et anglais, le visiteur est invité à choisir sur la page d'accueil du site, et ensuite peut passer de l'une à l'autre à loisir.

Pour le visiteur, donc... Car si vous voulez éditer le fichier options.php, tout est en anglais dedans... Mais on va y venir.

Je disais donc que le site est à 100% piloté par les métadonnées. En effet, dans l'arborescence des répertoires se trouve le sous-dossier audio. Pour publier de nouveaux albums, il suffit simplement d'y mettre les fichiers audio, et c'est tout, c'est publié. Pas de formulaire à remplir, pas d'étape sur étape à franchir... Idéal si vous préférer consacrer votre temps libre à faire de la musique plutôt qu'à l'insérer dans un système d'information.

Quand aux pochettes de disque... elles s'affichent, sous forme de miniatures, sur les pages des albums et les pages des morceaux, mais pas sur la page principale, car je suis certain qu'il y en aura qui voudront mettre des pochettes hautes résolutions pour que les visiteurs puisse les télécharger, et la page principale, qui peut selon votre productivité contenir de très nombreux morceaux, se serait mise à beaucoup trop s'alourdir et je sais pour l'avoir expérimenté qu'au delà d'une quinzaine ou une vingtaine d'images haute résolution, même réduites à la taille d'une vignette, n'importe quel ordinateur un tant soit peu ancien ou peu puissant va demander grâce. Ce qu'il faudrait, vous allez me dire, c'est un générateur automatique de vignettes, comme ça bing, plus de problème, et en en faisant des liens vers la version HD on permet tout de même aux internautes de télécharger en haute qualité... Bon, ben ce sera pas pour cette version.

Ce qui sera pas pour cette version non plus, c'est la conversion automatique vers les différents formats nécessaires au streaming sur la majorité des navigateurs. Il vous faudra continuer à mettre sur le serveur trois versions du même fichier portant le même nom, une en .ogg, une en .mp3, et une en .flac... Il faut absolument les trois : les ogg et mp3 sont nécessaire pour être écoutable sur tous les navigateurs (les équipes du w3c ayant cédées aux pressions des lobbystes des brevets logiciel lors de la mise au point de la norme HTML5, et ayant refusé d'émettre une recommandation en faveur du ogg comme format pour l'audio, officiellement par crainte de brevets dit "sous marins", que le format ogg aurait enfreint sans qu'on s'en soit encore aperçu. Le résultat de ce manque de volonté libriste est que certains navigateurs veulent du ogg, d'autres du mp3, pour proposer le streaming audio via les dernières technologies... Il faut donc fournir les deux formats) ;

Quant au flac, mince, on est en 2015, il me parait plus que nécessaire de l'imposer. Tous les sites de musique un peu récents qui ne sont pas de simple dinosaures continuant à vivre sur une immense base d'utilisateurs constituée depuis des années proposent ou imposent l'upload dans un format sans perte de haute qualité. De nos jours, en cherchant un peu, on peut trouver des hébergements PHP mutualisés dont le prix de renouvellement annuel revient à peine à celui d'un repas dans un resto pas cher... Même si c'est vrai qu'à la mise en place initiale, c'est souvent un peu plus... Bon, il faut aller chercher dans le low-cost, vous attendez pas à avoir la qualité de l'assistance de Gandi dernière vous, mais pour ce prix-là, vous pouvez avoir un hébergement de 25Gio sans problème, ce qui représente des centaines et des centaines de morceaux de longueur moyenne, même en multipliant les formats, même en optant pour les plus hautes qualités.

Mais j'en reviens aux pochettes d'album. J'entends déjà les plus narquois dire "tu dis que ton site est piloté par les métadonnées, mais pour les images où il n'y a guère qu'un champ "commentaire" sans aucune catégorisation, tu fais comment, hein ?"

C'est simple, les images sont gérées par une hiérarchie de répertoires. Par exemple si votre groupe s'appelle les Family's Victims et votre album "L.A.P.A", vous créez dans le sous-répertoire nommé "cover" un répertoire "Family's Victims", et dans ce répertoire vous créez un sous-répertoire "L.A.P.A", où vous placerez un -et seulement un ! - fichier image dans le format que vous préférez, pourvu qu'il soit supporté sur le web.

Et si mon album s'appelle "Low/High", vous allez me dire (le caractère slash (/) servant de séparateurs entre répertoire et sous répertoire dans les adresse sur internet)... Très simple, vous créer un répertoire "Lo", dedans vous créez un répertoire "High", et dans ce dernier vous mettez votre fichier image. Remarquez je suis pas absolument certain que ça soit effectivement implémenté dans Slcnc Reborn, ce cas spécial... Je me souviens que je l'avais codé, mais était-ce avant ou après que Slcnc CMS soit publié... Je ne sais pas. Avis aux testeurs et testeuses.

Je disais donc que pour ce qui est du streaming audio, tout passe par du HTML5. Au niveau du support par les navigateurs, ça fait maintenant 6 ou 7 ans que l'écrasante majorité des navigateurs graphiques le supporte, à l'exception notable d'Internet Explorer (qui s'en serait douté ? ) qui n'a commencé à bien prendre en compte les fonction audio de la norme qu'à partir de sa version 9.

Le gros avantage sur les lecteurs en Flash c'est que Flash, hormis le fait qu'il soit un affreux logiciel propriétaire non redistribuable, non modifiable, non vérifiable, avec un rythme de mise à jour brisant les compatibilités ascendantes conçu, à mon avis, pour empêcher toute alternative compatible d'émerger, c'est que Flash donc, est affreusement gourmand en ressources. Qui ne s'est jamais retrouvé, au temps anciens de Dogmazic V2, à faire une recherche par proximité géographique dans un secteur un peu populeux... Et Dogma, qui affichait un bouton "play" en Flash a coté de chaque projet correspondant au secteur de recherche, de vous faire ramer votre pc jusqu'aux limites du gel, et vous voilà a batailler plusieurs minutes pour arriver à fermer la fenêtre... Je ne parle même pas d'essayer d'écouter les morceaux. Généralement les sites contournent cette limitation en n'affichant simultanément qu'un nombre très limité, voire un unique lecteur, qui ira, après chaque morceau et en utilisant du scripting, communiquer à nouveau avec le serveur pour obtenir, via un service web, un message formaté contenant les informations sur le morceaux suivant avant de commencer la lecture... Limitatif au niveau de la créativité ergonomique, et lourd à mettre en place.

Tandis qu'avec HTML5, j'ai mené mes petites expérimentations avec une machine équipée d'un processeur Sempron 140 déjà âgée de 5 ans et qui était, même à l'époque de sa sortie, considérée comme de l'entrée de gamme peu puissante. J'ai affiché des pages contenant 150 lecteurs simultanément, pour permettre de buttiner librement d'une chanson à l'autre sans avoir à se fader une dizaine de clics... Tout s'est passé très bien, une fois la page chargée aucun ralentissement notable, les morceaux qui jouaient et s'enchaînaient sans problème...

Car c'est ça le nouveau concept de navigation de cette nouvelle version du logiciel : une fois que vous avez choisi votre langue, vous arrivez sur une page vous présentant une grande mosaïque de rectangles pastels de différentes tailles, et chaque pastel est un lecteur, et la totalité de votre catalogue est là, toutes vos chansons rangés de manière aléatoire et accessibles en un clic, sans jamais besoin de charger une nouvelle page, tout juste quelques courtes secondes d'attente quand un morceau se termine et que le lecteur voisin précharge avant de commencer à lire... Ceci pour permettre une expérience utilisateur agréable et ludique, favoriser les découvertes, ne pas laisser vos auditeurs écouter toujours le même album... Ceci, même si sur chaque lecteur il y a un lien vers la page album, un lien vers la page genre, etc... Un tel système, en 2012, aurait été un peu trop osé... Mais avec la démocratisation de machines toujours plus puissantes, en 2015 ça me parait jouable

C'est à cause de ce moyen inédit de présenter un catalogue musical que je disais que ce CMS n'est pas adapté aux sites multi-groupes... Vous vous voyez débarquer sur un site comme ça présentant plusieurs groupes, obligé de faire défiler la mosaïque dans tous les sens ou de recourir à la recherche plein texte pour trouver le groupe que vous êtes venu écouter...

Et ce manque de souplesse pour le multi-groupe est un peu gênant au niveau de la gestion du payant et du gratuit. En effet, le choix, en éditant le fichier options.conf (on y vient, on y vient), du payant ou du gratuit, ne se fait pas chansons par chansons (ce deviendrait une horreur à gérer si vous êtes un peu productif), ni album par album (même chose), mais artiste par artiste. Par défaut, les artistes sont payants, pour les rendre gratuit il y a une variable de type tableau dans laquelle on peut entrer une liste des artistes pour lesquels le téléchargement sera disponible gratuitement...

Donc dans le meilleur des cas, si vous êtes Lily, vous pouvez toujours mettre tout "Lily" gratuit et "Lily Ft Luka K." payant, ou au contraire tout Lily payant et "Lily Ft George X" gratuit, mais ça ne va guère plus loin... De toute façon moi, perso, je liste plutôt les featurings dans le titre du morceau et non dans le nom de l'artiste, c'est beaucoup plus pratique pour les auditeurs et auditrice qui ont, comme moi, l'habitude d'utiliser un logiciel de lecture de média qui gère la navigation par bibliothèque.

Puisqu'on en est au payant VS gratuit, un point qui ne doit pas intéresser grand monde par ici, sachez juste que les paiement sont traités par Paypal qui prendra dans les 35 cents + 3.5% ou quelque chose comme ça sur de commission sur chaque transaction, et que le prix de vente n'est pas facilement modifiable, n'étant pas géré au niveau d'options.php, si on souhaite le changer il faut aller modifier le code en plusieurs endroits dans les deux fichiers d'index, ce qui n'est pas pratique du tout, et encore moins à la portée de tous. Le prix par défaut est de 70 cents par morceaux, ce qui m'a semblé un bon compromis entre un prix plus bas qui ne vous laisse que des miettes à cause de la part fixe de commission bancaire quand quelqu'un n'achète qu'un morceau, et un prix trop haut qui décourage les achats coups de cœurs de morceaux supplémentaires lors d'une commande un peu conséquente.

D'ailleurs à propos d'achat coup de cœur, en mode payant il y a deux options pour exploiter les tendances acheteurs compulsifs de vos fans, le lien "acheter tout l'album" présent sur chaque lecteur de chanson, et le lien "acheter toutes les chansons disponibles" présent dans le menu principal. Mais comme je disais, j'imagine que toutes ces histoires de vente en ligne n'emballent pas grand monde par ici.

J'en viens (enfin) à un point particulièrement intéressant, les informations de bases qui sont modifiables en éditant le fichier options.php.

Éditer un fichier d'option rédigé en php n'est vraiment pas compliqué à faire, il y a juste deux ou trois truc de base à savoir :
  1. il y a deux types de syntaxe, les variables simples, ne contenant qu'une valeur, et les variables de type tableau, en contenant une liste, qui sont utilisés par Slcnc CMS.
  2. une variable simple se déclare comme cela :
    $nom_de_loption='valeur de l\'option';

Pas grand chose à dire... Le nom de la variable commence par un $, toujours, et la valeur quelle doit prendre est encadrée par des apostrophes... Si la valeur contient une apostrophe, il faut la faire précéder d'un antislash (\) pour indiquer que ce n'est pas le délimiteur de fin, mais du contenu appartenant à la valeur que l'on veut affecter. Quand au point virgule final, il annonce simplement que l'instruction est terminée et que l'on peu passer à la suivante.

Les variables simples permettent de définir des options comme le titre du site, son adresse sur le web (utilisée uniquement pour les retours au site après paiement sur Paypal, dans le cas de la vente en ligne... Comme indiqué, n'oubliez pas le slash final), l'adresse mail associée à votre compte Paypal, qui doit être publique, déjà parce que Paypal l'affiche en clair à chaque demande de transaction, même si ça ne va pas au bout... Et ensuite parce que c'est le courriel indiqué comme moyen de contact, ce n'est pas dramatique d'en mettre un bidon que vous ne lisez jamais (voire qui n'existe pas) si tout sur votre site est gratuit... Par contre si vous vendez, il est toujours possible que vous tombiez sur quelqu'un qui après avoir payé, a eu un problème allant de la coupure de courant au renversage de café sur le clavier du laptop et n'a pas pu télécharger dans le délais imparti... Télécharger ne demandant pas la création du moindre compte, le lien contenant la liste des téléchargements disparait à la fin de la session. Pas de panique, si la transaction a vraiment eu lieu vous la retrouverez toujours dans votre historique Paypal, sous l'intitulé "Order" suivi d'une série de nombres séparés par des tirets, ces nombres sont en fait le nom d'un fichier dans le sous répertoire "d" du site, qui archive la liste des commandes passées sur le site, que la transaction est débouché ou non. Il suffit d'ouvrir celui qui correspond pour trouver dans le fichiers, entre autre, la liste complète des morceaux achetés... Vous n'avez plus qu'à envoyer au plaintif une liste de liens directs vers les morceaux dans les différents formats.

Les variables simples permettent aussi de spécifier deux choses utiles : les biographies, un court texte introductif (court car faut pas détourner du but, qui sera l'appui sur les boutons "lecture" juste en dessous), une en français et une en anglais... Elle sont bien sûr toutes deux optionnelles, il suffit de les déclarer vide si l'on ne veut pas les remplir, comme cela :
$bio_en='';


Et l'autre variable utile, c'est $getid3path, qui contient l'emplacement du fichiers de lecture des métadonnées getid3 et de ses petits copains de la bibliothèque libre php-getid3.Par défaut c'est le sous répertoire "id3" à la racine de l'installation. Je ne veux pas redistribuer cette bibliothèque, je préfère que les users aillent chercher la dernière version sur Sourceforge, car il est possible que le CMS ne voit à nouveau aucune mise à jour pendant des années, je ne vais pas m'amuser à poster des mises à jours juste pour intégrer d'éventuelles corrections de bogues de php-getid3.
Enfin, il y a deux variables dans options.php qui utilisent les tableaux, $freebands qui liste les groupes ou artistes pour lesquels le téléchargement sera gratuit, la syntaxe est très simple :
$freebands = array ('premier groupe', 'deuxième groupe', 'l\'ancien groupe');


Tout va entre les deux parenthèses, les différents groupes de la liste sont a séparer par des virgules, et doivent être encadrés par des apostrophes, avec toujours la règle de l'antislash en cas d'apostrophe dans une valeur qui s'applique.

Et il y a, pour finir, $links qui utilise un tableau clef-valeur pour gérer la liste des liens externes, la clef étant le titre du lien (qui sera affiché) et la valeur l'adresse internet vers laquelle le lien devra pointer, par exemple pour entrer un lien vers un compte Twitter :
$links['Twitter']='http://Twitter.com/MonCompteTwitter';


Vous voyez rien de bien sorcier, il vous suffit de répéter la manœuvre pour chaque lien externe que vous souhaitez ajouter.

Voyez comme c'est pas compliquer de spécifier des options en PHP.

Enfin, il y a un dernier point sur lequel je voudrais m'étendre un peu, il s'agit du piratage : le site n'est pas du tout résistant au vol de fichier disponibles à la vente. En fait, comme il était indiqué à une époque sur la FAQ de Bandcamp, je sais pas si c'est toujours le cas, une personne qui cherche des informations sur comment télécharger gratuitement une œuvre disponible en streaming y arrivera quasi toujours, que ce soit en renommant un fichier temporaire, en utilisant un plugin de navigateur ou un logiciel conçu dans ce but, voire tout simplement en capturant le son système, ce qui n'est pas bien compliqué, à une époque sous Ubuntu il était même possible de router le son système vers l'entrée standard du système audio à la place de la prise microphone directement depuis les "paramètres sonores"... Bandcamp concluait, dans sa faq, en disant que les pirates servaient la cause des artistes, citant des études montrant que plus un morceau était piraté, plus il allait toucher des clients potentiels, et au final plus il allait se vendre... Ahahaha sacré Bandcamp. Mais avec l'audio HTML5, qui a été conçu avant tout comme le reste du web, comme un système de ressources en ligne identifiables et accessibles, on touche vraiment le fond, et il ne faut vraiment pas de compétences techniques bien avancées pour obtenir au prix d'un très léger effort les morceaux mis en vente sans les payer. Reste à savoir si les études citées par Bandcamp sont dans le vrai.

Voilà c'était un peu long, maintenant ce que vous attendez tous et toutes, le lien pour admirer les captures d'écran et télécharger cette nouvelle version : https://sourceforge.net/projects/slcnccms/ .Image

Le logiciel étant sous GPL V3. Je termine par un petit point un peut limite pour ce forum, car comme dit l'avertissement "tout message au ton trop promotionnel ou publicitaire sera supprimé sans préavis"... Si j'ai autant détaillé cette doc ici, c'est qu'il n'y en avait pas jusque présent, nulle part. Cependant pour la plaquette web présentant mon activité de freelancer, je compte publier des tutoriaux vraiment très orientés vers les néophytes pour utiliser au quotidien ce CMS : comment, pas à pas, transcoder, taguer, téléverser les fichiers audio, avec VLC et Filezilla, comment créer l'arborescence des répertoires à pochettes de disques et téléverser les pochettes avec Fillezilla... Car je compte proposer, mon but étant avec la baisse des couts d'hébergement de permettre au plus de monde possible de monter un site web pour son projet musical même sans aucune connaissance préalable et sans payer 1000 ou 2000 euros un "webdesigner" qui pondra un site avec des players en Flash et non-évolutif, je compte proposer, donc, un service clef en main de location et gestion de l'hébergement, installation, configuration initiale et maintenance dans le temps, pour un coût vraiment modeste (enfin, selon les critères du monde occidental....) et à la portée de tous, ne laissant au musicien que la partie "alimentation en média" à gérer... Si vous voulez plus de détails, merci de ne pas poster dans ce fil, ça ne m'irait pas du tout pour un forum sur la musique libre, contactez moi plutôt par message privé... Mais avec toutes les informations que j'ai postées ici, vous ne devriez pas trop avoir de problème si vous voulez vous lancer par vous même dans l'aventure de la création d'un site de musique sans avoir besoin d'écrire du code, et dans ce cas, bien sûr, n'hésitez pas à poster dans ce fil, je serai très heureux de vous aider dans les différentes étapes de la mise en œuvre de cette solution.

Et allez voir les captures d'écran , ça vaut vraiment le détour .

Salut,

Shangri-l