Forum des Objets Communicants et Solutions pour les Libérer...


 
AccueilAccueil  GalerieGalerie  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partagez | 
 

 Hack pour lire les medias locaux

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
bretelles
Lapin nain
Lapin nain


Age : 40
Localisation : Paris
Nabaztag : Agatag et Barnab (serveur local)
Nbr de messages : 49
Carottes : 2216

MessageSujet: Hack pour lire les medias locaux   Lun 26 Déc 2016 - 14:36

Bonjour à tous,

je crée un topic dédié ce sera plus propre.
En jouant avec le tts je me suis rendu compte qu'il était assez facile de jouer des médias locaux (hébergés par le serveur) en bidouillant légèrement. Cela va surtout intéresser les éleveurs qui utilisent un serveur local mais qui sait, cela peut permettre aussi à des serveurs officiels de proposer une liste( ou des listes) de médias thématiques.

J'ai essayé juste des fichiers mp3 (pour l'instant je trouve que les fichiers en 22.05 Khz sont ceux qui rendent le mieux, j'attends vos avis yellownabzwink ) et des fichiers midi (peu sont supportés, ils doivent être au format Standard MIDI format 0 visiblement d'après les specs de la puce ML2870A). Si vous en trouvez d'autres, je prends yellownabzsmile

L'idée est d'avoir un répertoire média à la racine de http-wrapper contenant les fichiers à jouer.

Et voici la modification de code, dans le fichier server/lib/ttsmanager.cpp
Code:

// Create TTS Song in /broadcast/tts/<name>/<voice>/[md5].mp3
QByteArray TTSManager::CreateNewSound(QString text, QString voice, QString name, bool forceOverwrite)
{
   if (voice == "media")
   {
      return ("broadcast/media/" + text).toAscii();
   }

   TTSInterface * tts = Instance().GetTTSByName(name);
   return tts->CreateNewSound(text, voice, forceOverwrite);
}

QByteArray TTSManager::CreateNewSound(QString text, QString voice, bool forceOverwrite)
{
   if (voice == "media")
   {
      return ("broadcast/media/" + text).toAscii();
   }

   TTSInterface * tts = Instance().GetTTSByName(GlobalSettings::Get("Config/TTS", "acapela").toString());
   return tts->CreateNewSound(text, voice, forceOverwrite);
}

Et après, on peut facilement jouer le média en indiquant son nom dans la chaîne tts et en précisant media comme voice, exemple pour jouer pirates.mid:
Code:

http://terrier.local/ojn/FR/api.jsp?sn=XXXXXXXXXXXX&token=XXXXXXXXXXXXXXXXXXXXXX&tts=pirates.mid&voice=media

Voilà j'attends vos retours.


bretelles

PS: deux fichiers midi pour tester, je suis preneur si vous en avez qui fonctionnent !
Pirates des Caraïbes : http://cherche-heritier.com/nabaztag/pirates.mid
la marche impériale de Star Wars : http://cherche-heritier.com/nabaztag/imperial.mid

Edit: correction sur le format supporté, ci-joint, extrait des specs
ml2870a specifications a écrit:
FREQUENTLY ASKED QUESTIONS
Q1. What kind of musical score formats does the ML2870A support?
A1. ML2870A can play Standard MIDI files under given conditions and the Oki original musical score format
directly. If Standard MIDI file format 1/0 or Karaoke function need to be supported, Oki provides sample
software based on NDA for this purpose.
Q2. What is the condition for playing Standard MIDI file directly?
A2.
(1) Play format 0 only, do not play format 1.
(2) Eliminate text and MIDI events not supported by the ML2870A.
Q3. Which MIDI events does the ML2870A support?
A3.
- Note On/Off / Program change / Pitch bend / Channel pressure
- Control change [Modulation / Volume / Pan / Expression / Sustain / Reset all controller / All note off]
- RPN [Pitch bend sensitivity / Fine tuning / Coarse tuning]
Q4. Does the ML2870A support synchronization of LED with ADPCM playback ?
A4. Yes. LED and ADPCM functions are included in the musical score and are assigned as percussion to MIDI
channel 10. It is necessary to build a software routine for this synchronization.


Edit 2: Sur Windows, un super programme qui permet de convertir les midi format 1 en format 0, ça marche nickel : http://www.gnmidi.com/
Choisissez Freeware -> GN1:0 et convertissez yellownabzwink
Revenir en haut Aller en bas
bretelles
Lapin nain
Lapin nain


Age : 40
Localisation : Paris
Nabaztag : Agatag et Barnab (serveur local)
Nbr de messages : 49
Carottes : 2216

MessageSujet: Re: Hack pour lire les medias locaux   Mar 27 Déc 2016 - 1:15

Pour info, j'ai bien trouvé cette page pour lire des sons : http://openjabnab.fr/ojn_admin/faq.php?question=comment-jouer-un-son
Mais sur mon serveur local, la page ne fonctionnant pas, je ne sais pas s'il est possible d'uploader un fichier midi et je ne sais pas dans quel répertoire c'est envoyé.
Le mieux serait alors d'utiliser mes modifs sur le même répertoire non ?
Revenir en haut Aller en bas
Surame
Lapin nain
Lapin nain


Localisation : Tours
Nbr de messages : 24
Carottes : 1227

MessageSujet: Re: Hack pour lire les medias locaux   Sam 4 Mar 2017 - 9:14

Merci Bretelles pour cette excellente contribution. Je suis en train de tester ça.
Moi aussi j'aime bien l'idée d'avoir un serveur local.
Revenir en haut Aller en bas
bretelles
Lapin nain
Lapin nain


Age : 40
Localisation : Paris
Nabaztag : Agatag et Barnab (serveur local)
Nbr de messages : 49
Carottes : 2216

MessageSujet: Re: Hack pour lire les medias locaux   Sam 4 Mar 2017 - 22:11

De rien Surame, content de voir que ça sert à au moins une autre personne que moi yellownabzsmile
Mais je ne suis pas sûr que beaucoup utilise des serveurs locaux...
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Hack pour lire les medias locaux   

Revenir en haut Aller en bas
 
Hack pour lire les medias locaux
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème pour lire une vidéo sur sa PS3?
» ETRE PAYE POUR LIRE DES MAILS ET GRATUIT EN PLUS :::::
» matériel pour lire les homebrew sur DS
» Probleme pour lire video en streaming
» Le meilleur moyen pour lire des jeux JAP sur une ps2 EURO ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum des Objets Communicants et Solutions pour les Libérer... :: II. Nabaztag, Karotz, mir:ror, Dal:Dal (Violet Object Operating System) :: Les Nabaztags sont sauvés ! Les solutions... :: [OJN] OpenJabNab-
Sauter vers: