Publicité

Annonce

Réduire
Aucune annonce.

Comment faire pour convertir Chordpro en doc ?

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Comment faire pour convertir Chordpro en doc ?

    Je dispose d'un gros fichier d'accords sous la forme "Chordpro" que je voudrais convertir en texte (paroles) avec les accords au-dessus.
    J'ai trouvé plusieurs sites qui peuvent faire l'inverse comme ici: http://blog.ukegeeks.com/easily-form...ordpro-format/
    mais moi, je voudrais l'inverse.
    Comment faire ?
    Merci d'avance

    KORG Pa800 - KORG Pa4X - Mes Contes Fantastiques
    Il vaut mieux mobiliser son intelligence pour des bêtises que de mobiliser sa bêtise pour des choses intelligentes.

  • #2
    Avec un petit programme en python : une fois mis dans un fichier chord.py, il suffit de taper python chord.py monfichier.txt pour afficher le résultat. Ajouter > autrefichier.txt pour renvoyer le résultat dans un autre fichier

    Code:
    import sys
    
    file_name = sys.argv[1]
    file = open(file_name)
    
    for ligne in file.readlines():
       chord_mode = False
       chord_n = 0
       chord_line = " "
       lyric_line = " "
    
       for c in ligne:
           if c == "[":
               chord_mode = True
           elif c == "]":
               chord_mode = False
           elif chord_mode:
               chord_n += 1
               chord_line += c
           else:
               if chord_n>0:
                  chord_n -= 1
               else:
                  chord_line += " "
               lyric_line += c
       print(chord_line)
       print(lyric_line)
    Dernière modification par floyer, 04 mars 2018, 19h21.
    http://www.sinerj.org/~loyer/piano/

    It's never too late to learn to play the piano. (tip of the day)

    Côté piano : Yamaha N1X, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 13, Arturia V Collection 9, Korg Collection 3, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 - Casque : AKG K-702

    Commentaire


    • #3
      Merci. Pourquoi en python ? Ça ne fonctionnerait pas dans un autre langage de programmation ? (par ex VBA en exploitant les macros de MS Office)
      N'existe t-il pas des solutions online ?
      KORG Pa800 - KORG Pa4X - Mes Contes Fantastiques
      Il vaut mieux mobiliser son intelligence pour des bêtises que de mobiliser sa bêtise pour des choses intelligentes.

      Commentaire


      • #4
        En VBA, on n’a pas accès à la ligne de commande : il faut donc rechercher la fonction qui retourne un nom de fichier demandé graphiquement. (L’aurais tu...)

        Vu la simplicité, tu peux le convertir dans n’importe quel langage... mais je suis plutôt rouillé en VBA. Et pas sûr que les macros OpenOffice soit bien compatibles avec celles de Microsoft Office.

        (Sans compter les problèmes de versions. Je ne suis pas arriver à faire marcher les exemples de https://openoffice-libreoffice.devel...rs-FileControl)
        Dernière modification par floyer, 04 mars 2018, 18h15.
        http://www.sinerj.org/~loyer/piano/

        It's never too late to learn to play the piano. (tip of the day)

        Côté piano : Yamaha N1X, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 13, Arturia V Collection 9, Korg Collection 3, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 - Casque : AKG K-702

        Commentaire


        • #5
          En ligne, tu as des convertisseurs chordpro -> HTML comme http://webchord.sourceforge.net/ , mais ce dernier ne retourne pas du simple texte, mais du HTML (avec des tableaux pour aligner les accords sur le texte). A voir selon tes besoins.


          En VBA (testé sous LibreOffice)... mais c'est tout de suite plus long... Il suffit de choisir un fichier fichier.txt, et cela le transforme en fichier.txt_converted.txt.... J'ai eu la flemme de supprimer le premier .txt.

          Code:
          Function open_file as string
             Dim file_dialog as Object
          
             GlobalScope.BasicLibraries.LoadLibrary("Tools")
             file_dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
          
             open_status = file_dialog.Execute()
             If open_status = 1 Then
                file_path = file_dialog.Files(0)
                open_file = file_path
             End If
             file_dialog.Dispose()
          end function
          
          Sub Main
             f1 = open_file
             f2 = f1 + "_converted.txt"
             open f1 for input as #1
             open f2 for output as #2
             dim TextLine as String
          
             Do While Not EOF(1)  
                Line Input #1, TextLine
                chord_mode = False
                chord_n = 0
                chord_line = ""
                lyric_line = ""
                For i=1 to len(TextLine):
                   c = mid(TextLine,i,1)
                   if c = "[" then
                      chord_mode = True
                   else
                      if c = "]" then
                         chord_mode = False
                      else
                          if chord_mode then
                             chord_n = chord_n+1
                             chord_line = chord_line + c
                          else
                             if chord_n>0 then
                                chord_n = chord_n-1
                             else
                                chord_line = chord_line + " "
                             end if
                             lyric_line = lyric_line + c
                          end if
                      end if
                   end if
                Next i
                print #2, chord_line
                print #2, lyric_line
             loop
             close #1
             close #2
          End Sub
          Dernière modification par floyer, 04 mars 2018, 20h14.
          http://www.sinerj.org/~loyer/piano/

          It's never too late to learn to play the piano. (tip of the day)

          Côté piano : Yamaha N1X, pianos VSL Syncron et Vienna Imperial, Garritan CFX, Bechstein Digital Grand, Ivory, Galaxy et beaucoup d’autres pianos virtuels - Côté synthé : Roland A-500 Pro, Native-Instruments Komplete 13, Arturia V Collection 9, Korg Collection 3, Air Music Technology plugins, OP-X Pro II, dexed (émulateur DX7 libre), Yamaha S-YXG50 - DAW : Reaper 6, Cubase Artist 9 - Interface audio : Steinberg UR22 - Casque : AKG K-702

          Commentaire


          • #6
            Merci pour tout ce temps que tu y a passé! :banane

            Commentaire


            • #7
              Envoyé par galettouille Voir le message
              Merci pour tout ce temps que tu y a passé! :banane
              Oh oui alors, un très grand merci floyer :coucou. Je vais l'expérimenter de ce pas.

              KORG Pa800 - KORG Pa4X - Mes Contes Fantastiques
              Il vaut mieux mobiliser son intelligence pour des bêtises que de mobiliser sa bêtise pour des choses intelligentes.

              Commentaire


              • #8
                Bon, malheureusement problème de compilation, il bute sur "CreateUnoService"

                En revanche, le site m'a beaucoup aidé (pour cette fois) Merci
                Dernière modification par Semantix, 06 mars 2018, 11h28.
                KORG Pa800 - KORG Pa4X - Mes Contes Fantastiques
                Il vaut mieux mobiliser son intelligence pour des bêtises que de mobiliser sa bêtise pour des choses intelligentes.

                Commentaire

                Chargement...
                X