Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Délire de Geek] Faites chanter votre PC !!

Concerto pour HP interne en bip majeur

    19 décembre 2008 à 15:02:50

    Salut !
    Ce topic est un fork de "Vos Geek Attitudes", suite à un petit délire qui commence à tourner au HS :p .

    Je vous rappelle le principe.

    J'ai créé l'autre jour un script bash totalement inutile(donc indispensable... :) ), qui permet de faire chanter "Petit Papa Noël" au haut-parleur interne du PC (voir le post original pour savoir le "pourquoi du comment").
    Ce que je vous propose, c'est de chercher ensemble à créer des partitions de différentes musiques/chansons connues pour les faire chanter à votre PC.

    EDIT : devant la demande d'une version qui marche sous Windows, (et les problèmes avec le script bash via cygwin) j'en ai fait un programme en C++ qui compile sous les 2 OS à la fois, sans rien avoir à modifier. La version C++ devrait etre plus réactive que la version bash ;)


    Le programme



    Voici le programme, merci à jolo2 pour avoir testé la compilation et l'exécution sous Windows :


    /**
     * file                       : main.cpp
     *------------------------------------------
     * Author                     : Christophe Angeli
     * Improvements & portability : Arnaud Calmettes 
     *
     */
    #include <cstdlib>
    #include <string>
    #include <iostream>
    #include <sstream>
    #include <fstream>
    #include <map>
    
    #ifndef __unix__
    # include <windows.h>
    #endif
    
    
    // Note/Octave/Frequency matching 
    
    int NOTES[12][9] =
    {
        {16, 33, 65, 131, 262, 523, 1046, 2093, 4186},
        {17, 35, 69, 139, 277, 554, 1109, 2217, 4435},
        {18, 37, 73, 147, 294, 587, 1175, 2349, 4699},
        {19, 39, 78, 155, 311, 622, 1244, 2489, 4978},
        {21, 41, 82, 165, 330, 659, 1328, 2637, 5274},
        {22, 44, 87, 175, 349, 698, 1397, 2794, 5588},
        {23, 46, 92, 185, 370, 740, 1480, 2960, 5920},
        {24, 49, 98, 196, 392, 784, 1568, 3136, 6271},
        {26, 52, 104, 208, 415, 831, 1661, 3322, 6645},
        {27, 55, 110, 220, 440, 880, 1760, 3520, 7040},
        {29, 58, 116, 233, 466, 932, 1865, 3729, 7459},
        {31, 62, 123, 245, 494, 988, 1975, 3951, 7902}
    };
    
    enum
    {
        SILENCE = -1,
        DO = 0,
        DO_ = 1,
        RE = 2,
        RE_ = 3,
        MI = 4,
        FA = 5,
        FA_ = 6,
        SOL = 7,
        SOL_ = 8,
        LA = 9,
        LA_ = 10,
        SI = 11
    };
    
    enum
    {
        OCTAVE_0 = 0,
        OCTAVE_1 = 1,
        OCTAVE_2 = 2,
        OCTAVE_3 = 3,
        OCTAVE_4 = 4,
        OCTAVE_5 = 5,
        OCTAVE_6 = 6,
        OCTAVE_7 = 7,
        OCTAVE_8 = 8,
    };
    
    std::map<std::string, int> noteMap;
    
    // Global variables
    int TEMPO = 250;
    int DURATION=TEMPO;
    int OCTAVE = 0;
    
    #ifdef __unix__
    /** 
     * Linux (dirty) adaptation from <windows.h>'s Beep function
     */
    void Beep(int freq, int length)
    {
        std::stringstream ossBeep;
        ossBeep << "beep -f " << freq << " -l " << length;
        system(ossBeep.str().c_str());
    }
    #endif
    
    
    /**
     * Reads the music sheet
     */
    int readFile( const char *file )
    {
        std::ifstream musicFile(file);
        if (! musicFile.is_open() )
            return 1;
        
        int octave = 0;
        double duration = 0;	
        std::string duration_str;	
        std::string line;
        std::string note;
    	
    	
        while ( std::getline( musicFile, line ) )
        {
            note = "";
            octave = 0;
            duration = 0;
            duration_str = "";
    
            std::stringstream lineStream(line);
            lineStream >> note >> octave >> duration_str;
    		
            // Empty line skipping
            if( note == "" )
                continue;
    
            // Tempo management
            std::string::size_type pos = note.find("TEMPO");
            if( pos  != std::string::npos )
    	{
                if( octave != 0)
                {			
                    TEMPO = octave;
                    DURATION = TEMPO;
                    continue;
                }
            }
    	
            // Octave management	
            if( octave )
            {
                OCTAVE = octave;
    	}
    
            // Duration management
            // (this looks dirty because of fraction interpretation)
            if( duration_str != "" )
            {
                pos = duration_str.find('/');
                if( pos != std::string::npos)
                {
                    std::istringstream numerateur( duration_str.substr(0,pos+1) );
                    std::istringstream denominateur (duration_str.substr(pos+1, duration_str.size()-(pos + 1)) );
                    int num = 1;
                    int den = 1;
                    numerateur >> num;
                    denominateur >> den;
                    DURATION = (int) (TEMPO * num / den);
                }
                else
                {
                    std::istringstream stream(duration_str);
                    stream >> duration;
                    DURATION = (int) (TEMPO * duration);
                }
            }
    
            // Silence management
            if (noteMap[note.c_str()] == SILENCE)
                Beep(1, DURATION);
            else
                // Finally, play the note !
                // This calls the "Beep" system function under windows
                // Or the custom one under Linux
                Beep(NOTES[ noteMap[note.c_str()] ][ OCTAVE ], DURATION);
        }
        return 0;
    }
    
    
    // Main : Basic declarations and parameter parsing
    int main(int argc, char* argv[])
    {
        noteMap["DO"] = DO;
        noteMap["DO_"] = DO_;
        noteMap["RE"] = RE;
        noteMap["RE_"] = RE_;
        noteMap["MI"] = MI;
        noteMap["FA"] = FA;
        noteMap["FA_"] = FA_;
        noteMap["SOL"] = SOL;
        noteMap["SOL_"] = SOL_;
        noteMap["LA"] = LA;
        noteMap["LA_"] = LA_;
        noteMap["SI"] = SI;
        noteMap["_"] = SILENCE;
    
    
        if( argc == 0 || ( argc != 0 && readFile(argv[1]) == 1 ))
            std::cout << "Usage : " << argv[0] << " FILENAME \n" << std::endl;
    
        return 0;
    }
    



    Comment l'installer ?



    Copiez-collez le dans un fichier "main.cpp", puis compilez-le sous votre IDE favori ou sous Linux avec la commande g++ main.cpp -o play

    Pour les fainéants, si vous avez Windows, vous pouvez aussi télécharger le pack suivant :
    http://www.mediafire.com/?pw3dxenx1k30kbh

    Comment le lancer ?



    Graphiquement, sous Windows :

    Faites glisser le .txt de la partition sur le .exe du programme

    Dans une console, suivant votre OS :

    Sous Windows : play.exe fichier_partition.txt
    Sous Linux : ./play fichier_partition

    Note importante

    Sous Linux, vous devez avoir installé le programme "beep", par exemple sous Ubuntu : sudo apt-get install beep
    Vous devez aussi vous assurer que le module "pcspkr" est bien activé (en principe il devrait l'être) : sudo modprobe -a pcspkr


    Méthode alternative : le script




    Voici le script, que j'ai personnellement appelé "play.sh", après correction de petits bugs (merci à Aniem pour sa contribution) :

    #!/bin/bash
    #####################################################################
    # File : play.sh
    #-------------------
    #
    # Author : Arnaud Calmettes
    #
    # Reads a music sheet (txt file) and plays it on the pc speaker
    # This script requires the "beep" program
    #
    
    ######################################################################
    # Note/Frequency correspondances  :  NOTE[octave]=Freq
    #
    # NOTE_ stands for the "sharp" note
    # _ 		alone stands for a silence
    #
    
    DO[0]=16.35
    DO_[0]=17.32
    RE[0]=18.35
    RE_[0]=19.45
    MI[0]=20.60
    FA[0]=21.83
    FA_[0]=23.12
    SOL[0]=24.50
    SOL_[0]=25.96
    LA[0]=27.50
    LA_[0]=29.14
    SI[0]=30.87
    
    DO[1]=32.70
    DO_[1]=34.65
    RE[1]=36.71
    RE_[1]=38.89
    MI[1]=41.2
    FA[1]=43.65
    FA_[1]=46.25
    SOL[1]=49
    SOL_[1]=51.91
    LA[1]=55
    LA_[1]=58.27
    SI[1]=61.74
    
    DO[2]=65.41
    DO_[2]=69.30
    RE[2]=73.42
    RE_[2]=77.78
    MI[2]=82.41
    FA[2]=87.31
    FA_[2]=92.5
    SOL[2]=98
    SOL_[2]=103.83
    LA[2]=110
    LA_[2]=116.54
    SI[2]=123.47
    
    DO[3]=130.81
    DO_[3]=138.59
    RE[3]=146.83
    RE_[3]=155.56
    MI[3]=164.81
    FA[3]=174.61
    FA_[3]=185
    SOL[3]=196
    SOL_[3]=207.65
    LA[3]=220
    LA_[3]=233.08
    SI[3]=246.94
    
    DO[4]=261.66
    DO_[4]=277.18
    RE[4]=293.664
    RE_[4]=311.126
    MI[4]=329.627
    FA[4]=349.228
    FA_[4]=369.994
    SOL[4]=391.995
    SOL_[4]=415.304
    LA[4]=440
    LA_[4]=466.163
    SI[4]=493.883
    
    DO[5]=523.25
    DO_[5]=554.37
    RE[5]=587.329
    RE_[5]=622.253
    MI[5]=659.255
    FA[5]=698.456
    FA_[5]=739.988
    SOL[5]=783.991
    SOL_[5]=830.609
    LA[5]=880
    LA_[5]=932.327
    SI[5]=987.766
    
    DO[6]=1046.50
    DO_[6]=1108.73
    RE[6]=1174.059
    RE_[6]=1244.507
    MI[6]=1318.510
    FA[6]=1396.912
    FA_[6]=1479.976
    SOL[6]=1567.982
    SOL_[6]=1661.218
    LA[6]=1760
    LA_[6]=1864.654
    SI[6]=1975.532
    
    
    DO[7]=2093
    DO_[7]=2217.46
    RE[7]=2344.318
    RE_[7]=2489.014
    MI[7]=2637.02
    FA[7]=2793.824
    FA_[7]=2959.952
    SOL[7]=3135.964
    SOL_[7]=3322.436
    LA[7]=3520
    LA_[7]=3729.308
    SI[7]=3951.064
    
    DO[8]=4186.01
    DO_[8]=4434.92
    RE[8]=4698.636
    RE_[8]=4978.028
    MI[8]=5274.04
    FA[8]=5587.648
    FA_[8]=5919.904
    SOL[8]=6270.928
    SOL_[8]=6644.972
    LA[8]=7040
    LA_[8]=7458.616
    SI[8]=7902.128
    
    
    # End of note declarations
    #####################################################################
    
    SILENCE=${DO[0]}
    TEMPO=250
    DURATION=$TEMPO
    CURRENT_OCTAVE=0
    
    # Play a note, given its name, octave and length
    play()
    {
    	if [ -z "$1" ]
    	then
    		return
    	fi
    
    	if [ "$1" = "TEMPO" ]
    	then
    		TEMPO=$2
    		DURATION=$TEMPO
    		return
    	fi		
    
    	if [ -n "$2" ]
    	then
    		CURRENT_OCTAVE=$2	
    	fi
    
    	if [ -n "$3" ] 
    	then
    		let "DURATION = $TEMPO * $3" 
    	fi
    	
    	if [ "$1" = "_" ]
    	then
    	  freq=$SILENCE
    	else
    		note=`eval "expr \$\{\"$1\"\[\"$CURRENT_OCTAVE\"\]\}"`
    		freq=`eval "expr \"$note\""`
    	fi
    
    	beep -f $freq -l $DURATION 
    }
    
    # Read the music sheet
    readfile()
    {
    	
    	while read LINE 			
    	do
    		play `echo $LINE | awk '{ print $1; print $2; print $3}'`
    	done
    }
    
    main()
    {
    	if [ -f "$1" ]
    	then
    		cat $1 | readfile  
    	else
    		echo "Usage : $0 FILENAME"
    	fi
    
    	exit 0
    }
    
    main $*
    


    Pour le faire fonctionner...



    Sous Linux



    Installez le programme "beep", s'il n'est pas déjà présent sur votre machine.
    Par exemple, sous Ubuntu :

    sudo apt-get install beep


    Enregistrez le script dans un fichier "play.sh" et rendez-le exécutable :

    chmod +x play.sh


    Pour le lancer il suffit de lui spécifier un fichier de partition :

    ./play.sh fichierpartition


    Sous Windows



    Merci à jolo2.

    Pour faire tourner le script sous windows, installez Cygwin.
    Copiez l'exécutable "beep.exe" dans le dossier C:\cygwin\bin
    Vous pouvez le trouver à cette adresse : http://www.frank-buss.de/beep/beep.exe
    Remplacez dans la ligne 179 du script par :

    beep $freq $DURATION
    


    (il suffit de retirer le "-f" et le "-l").
    Les reste fonctionne pareil.


    Créer une partition



    Pour créer une partition c'est très simple : 1 note par ligne.
    La partition peut commencer par exemple par "TEMPO 250" pour fixer l'unité de temps à 250 millisecondes.
    Une note est désignée par son nom en majuscules, suivie de son numéro d'octave, et sa durée relative :
    Par exemple :
    DO 5 2
    Jouera le DO de la 5ème octave pendant 2 unités de temps (avec l'exemple TEMPO = 250, ça sera pendant 500 millisecondes).

    Pour la durée de la note, vous pouvez aussi donner une fraction : 1/2, 3/4, 5/9...

    Un silence est symbolisé par un underscore "_" : sa syntaxe est la même que pour une note.
    Pour ajouter un dièse à une note, ajoutez un _ à son nom :

    EXEMPLE :

    TEMPO 300
    DO 5 2
    _ 5 1
    DO_ 5 1/2

    Ceci joue un DO 5 pendant 600ms, puis attend 300ms avant de jouer un DO 5 dièse pendant 150 ms.

    Si vous ne spécifiez pas la durée d'une note (ou d'un silence), celle-ci durera le même temps que la précédente.
    Pareil pour l'octave.

    ATTENTION : si vous voulez changer la durée, vous êtes obligés de préciser aussi l'octave.


    Alternativement, vous pouvez générer votre partition online grâce au script de jolo2 (merci à lui) :
    http://jolo2.eu/Mes%20Tests/notes/index.php

    Musiques déjà créées



    Voici une petite collection de partitions qui ont déjà été créées :

    Chants de Noël



    Petit papa noël :

    TEMPO 125
    DO 5 4
    FA
    FA
    FA
    SOL
    FA 5 8
    _ 5 4
    FA 5 3
    SOL 5 1
    LA 5 4
    LA
    LA
    LA_
    LA 5 8
    _ 5 4
    SOL 5
    FA 5
    _ 5 2
    FA 5
    FA
    FA
    MI
    RE
    DO 5 8
    _ 5 4
    DO 5 2
    DO
    FA 5 4
    _ 5
    FA 5 2
    FA
    MI
    FA
    SOL 5 8
    _ 5 4
    DO 5 4
    FA
    FA
    FA
    SOL
    FA 5 8
    _ 5 4

    FA 5 3
    SOL 5 1
    LA 5 4
    LA
    LA
    LA_
    LA 5 8
    _ 5 4
    SOL 5
    FA 5
    _ 5 2
    FA 5
    FA
    FA
    MI
    RE
    DO 5 8
    _ 5 4
    DO 5 2
    DO
    FA 5 4
    _ 5
    FA 5 2
    FA
    SOL
    SOL
    FA 5 6


    Vive le vent (Jingle Bells)

    TEMPO 225
    MI 6
    MI
    MI 6 2
    MI 6 1
    MI
    MI 6 2
    MI 6 1
    SOL 6
    DO 6 5/3
    RE 6 1/3
    MI 6 3
    _ 6 1
    FA
    FA
    FA 6 5/3
    FA 6 1/3
    FA 6 1
    MI 6
    MI 6
    MI 6
    MI 6
    RE 6
    RE 6
    MI 6
    RE 6 2
    SOL 6 1
    _
    MI
    MI
    MI 6 2
    MI 6 1
    MI
    MI 6 2
    MI 6 1
    SOL
    DO 6 5/3
    RE 6 1/3
    MI 6 3
    _ 6 1
    FA
    FA
    FA 6 5/3
    FA 6 1/3
    FA 6 1
    MI
    MI
    MI
    SOL
    SOL
    FA
    RE
    DO 6 3
    _ 6 1
    SOL 5
    MI 6
    RE
    DO
    SOL 5 3
    _ 5 1
    SOL
    MI 6
    RE
    DO
    LA 5 3
    _ 6 1
    LA 5
    FA 6
    MI
    RE
    SOL 6 2
    SOL
    LA 6 1
    LA
    SOL
    FA
    MI 6 3
    _ 6 1
    SOL 5
    MI 6
    RE
    DO
    SOL 5 3
    _ 6 1
    SOL 5
    MI 6
    RE
    DO
    LA 5 3
    _ 6 1
    LA 5
    FA 6
    MI
    RE
    SOL 6 2
    SOL
    LA 6 1
    SOL
    FA
    RE
    DO 6 3


    Mon beau sapin

    TEMPO 500
    SOL 5 1
    DO 6 2/3
    DO 6 1/3
    DO 6 2
    RE 6 1
    MI 6 2/3
    MI 6 1/3
    MI 6 3/2
    MI 6 1/2

    RE
    MI
    FA 6 1
    SI 5
    RE 6
    DO 6 2
    _ 6 1/2
    SOL
    SOL 6 2/3
    MI 6 1/3
    LA 6 3/2
    SOL 6 1/2
    SOL 6 2/3
    FA 6 1/3
    FA 6 3/2
    FA 6 1/2
    FA 6 2/3
    RE 6 1/3
    SOL 6 3/2
    FA 6 1/2

    FA 6 2/3
    MI 6 1/3
    MI 6 1
    _ 6 1/2
    SOL 5 1
    DO 6 2/3
    DO 6 1/3
    DO 6 2
    RE 6 1
    MI 6 2/3
    MI 6 1/3
    MI 6 3/2
    MI 6 1/2
    RE
    MI
    FA 6 1
    SI 5
    RE 6
    DO 6 2


    Tetris



    Merci à Hannibal !


    TEMPO 200
    MI 6
    _
    SI 5
    DO 6
    RE 6
    _
    DO 6
    SI 5
    LA 5
    _
    LA 5
    DO 6
    MI 6
    _
    RE 6
    DO 6
    SI 5
    _
    SI 5
    DO 6
    RE 6
    _
    MI 6
    _
    DO 6
    _
    LA 5
    _
    LA 5
    _
    _
    _
    LA 5
    _
    RE 6
    FA 6
    LA 6
    _
    SOL 6
    FA 6
    MI 6
    _
    _
    DO 6
    MI 6
    _
    RE 6
    DO 6
    SI 5
    _
    SI 5
    DO 6
    RE 6
    _
    MI 6
    _
    DO 6
    _
    LA 5
    _
    LA 5


    Zelda



    Thème principal :

    TEMPO 200
    DO 5 5/2
    SOL 4 3
    _ 5 1/2
    DO
    _
    DO
    RE
    MI
    FA
    SOL 5 5
    _ 5 1/2
    SOL 5 1
    SOL 5 3/4
    SOL_ 5
    LA_
    DO 6 5
    _ 5 1/2
    DO 6 1
    DO 6 3/4
    LA_ 5
    SOL_
    LA_
    _
    SOL_
    SOL 5 5
    SOL 5 2
    FA 5 1/2
    _
    FA
    SOL
    SOL_ 5 7/2
    _ 5 1
    SOL 5 1
    FA
    RE_ 5 1/2
    _
    RE_
    FA
    SOL 5 7/2
    _ 5 1
    FA 5 1
    RE_
    RE 5 1/2
    _
    RE
    RE_
    FA 5 7/2
    FA 5 1/2
    SOL
    SOL_ 5 1
    LA_
    SOL
    SOL 4 1/2
    SOL
    SOL
    _
    SOL
    SOL
    SOL
    _
    SOL
    SOL
    SOL 4 1
    SOL
    DO 5 5/2
    SOL 4 3
    _ 5 1/2
    DO
    _
    DO
    RE
    MI
    FA
    SOL 5 5
    _ 5 1/2
    SOL 5 1
    SOL 5 3/4
    SOL_ 5
    LA_
    DO 6 11/2
    _ 6 1/2
    RE_ 6 5/2
    RE 6
    SI 5 5
    SOL 5 5/2
    SOL_ 5 11/2
    _ 6 3/2



    DO 6 5/2
    SI 5
    SOL 5 5
    SOL 5 5/2
    SOL_ 5 11/2
    _ 6 3/2
    DO 6 5/2
    SI 5
    SOL 5 5
    MI 5 5/2
    FA 5 11/2
    _ 5 3/2
    SOL_ 5 5/2
    SOL
    RE_ 5 5
    DO 5 5/2
    RE 5 11/2
    _ 5 3/2
    FA 5 5/2
    SOL 5 11/2
    _ 5 1/2
    SOL 4 1/2
    SOL
    SOL 4 1
    SOL
    DO 5 1


    Super Mario Bros



    Thème original avec bruitages (repris depuis la version de Hannibal, merci à lui !)

    TEMPO 135
    MI 5 1
    MI 5
    _
    MI 5
    _
    DO 5
    MI 5
    _
    SOL 5
    _
    _
    _
    SOL 4
    _
    _
    SOL_ 3 1/3
    SOL_ 4
    LA 3
    LA 4
    LA_ 3
    LA_ 4
    SI 3
    SI 4
    _ 5 1
    _
    MI 5 1/3
    SOL
    DO 6
    FA_ 5
    LA
    RE 6
    SOL_ 5
    SI
    MI 6
    _ 5 1
    _
    DO 5 1
    _
    _
    SOL 4
    _
    _
    MI 4
    _
    _
    LA 4
    _
    SI 4
    _
    LA_ 4
    LA 4
    _
    SOL 4 4/3
    MI 5
    SOL 5
    LA 5 1
    _
    FA 5
    SOL 5
    _
    MI 5
    _
    DO 5
    RE 5
    SI 4
    _
    _
    DO 5
    _
    _
    SOL 4
    _
    _
    MI 4
    _
    _
    LA 4
    _
    SI 4
    _
    LA_ 4
    LA 4
    _
    SOL 4 4/3
    MI 5
    SOL 5
    LA 5 1
    _
    FA 5
    SOL 5
    _
    MI 5
    _
    DO 5
    RE 5
    SI 4
    _
    _
    _
    SOL 5
    FA_ 5
    FA 5
    RE_ 5
    _
    MI 5
    _
    SOL_ 4
    LA 4
    DO 5
    _
    LA 4
    DO 5
    RE 5
    _
    _
    SOL 5
    FA_ 5
    FA 5
    RE
    RE_ 5
    MI 5
    _
    DO 6
    _
    DO 6
    DO 6
    _
    SI 6 1/2
    SI
    MI 7 3/2
    _ 7 1/2
    SI 6 1/2
    MI 7 3/2
    _ 7 1
    SOL 5
    FA_ 5
    FA 5
    RE_ 5
    _
    MI 5
    _
    SOL_ 4
    LA 4
    DO 5
    _
    LA 4
    DO 5
    RE 5
    _
    _
    RE_ 5
    _
    _
    RE 5
    _
    _
    DO 5
    _
    _
    _
    _
    _
    _
    DO
    DO
    _
    DO
    _
    DO
    RE
    _
    MI
    DO
    _
    LA 4
    SOL
    _
    _
    _
    DO 5
    DO
    _
    DO
    _
    DO
    RE
    MI
    SOL 6 1/2
    DO 7
    MI
    RE
    MI
    SOL 7 1
    _ 5 1
    _
    _
    DO
    DO
    _
    DO
    _
    DO
    RE
    _
    MI
    DO
    _
    LA 4
    SOL
    _
    _
    _
    MI 5
    MI 5
    _
    MI 5
    _
    DO 5
    MI 5
    _
    SOL 5
    _
    _
    _
    SOL 4
    _
    _
    _
    MI 5
    DO 5
    _
    SOL 4
    _
    _
    SOL_
    _
    LA
    FA 5
    _
    FA 5
    LA 4
    _
    _
    _
    SI 4 4/3
    LA 5
    LA 5
    LA
    SOL
    FA 5 1
    MI 5 1
    DO 5 1
    _
    LA 4
    SOL
    _
    _
    _
    MI 5
    DO 5
    _
    SOL 4
    _
    _
    SOL_
    _
    LA
    FA 5
    _
    FA 5
    LA 4
    _
    _
    _
    SI 4 4/3
    FA 5
    FA
    FA
    MI
    RE
    DO
    _


    Le jingle de fin de niveau


    TEMPO 275
    DO 4 1/3
    MI
    SOL
    DO 5
    MI
    SOL
    DO 6 1
    SOL 5
    DO_ 4 1/3
    FA
    SOL_
    DO_ 5
    FA
    SOL_
    DO_ 6 1
    SOL_ 5
    RE_ 4 1/3
    SOL
    LA_
    RE_ 5
    SOL
    LA_
    RE_ 6 2/3
    _ 6 1/3
    RE_ 6 1/3
    RE_
    RE_
    FA 6 2


    La petite valse des niveaux aquatiques de Mario Bros 3 :

    TEMPO 300
    SOL 4 1
    LA
    SI
    DO 5
    RE
    RE_
    MI 5 1/2
    MI
    MI 5 1
    MI
    MI 5 2
    _ 5 1
    SOL 4 1/3
    MI 5 3
    RE_ 5 3
    MI 5 3
    _ 5 1
    SOL 4 1/3

    LA
    SI
    DO 5
    RE
    RE_
    MI 5 3
    RE_ 5 2
    FA 5 1
    MI 5 3
    _ 5 2
    _ 5 2/3
    SOL 4 1/3
    RE 5 3
    DO_
    RE
    _ 5 2
    SOL 4 1
    RE 5 3
    SOL 4 2
    FA 5 1
    MI 5 3
    _ 5 2
    _ 5 2/3
    SOL 4 1/3
    SOL 5 3
    SOL
    SOL
    SOL 5 1
    LA
    _ 5 2/3
    SOL 5 1/3
    FA 5 3
    FA
    FA
    FA 5 1
    SOL
    _ 5 2/3
    FA 5 1/3
    MI 5 3
    SI 4 1
    DO 5
    FA
    MI 5 1/3
    MI
    MI 5 1
    SI 4 1
    DO 5 3


    Vos créations



    Hymnes, Contines & Chants populaires



    Au clair de la lune
    La Marseillaise
    Chanson du Logiciel Libre
    We wish you a Merry Christmas
    Madame la Marquise
    Frère Jacques

    L'Internationale

    Classique, baroque... (bref, vieux =) )



    J.S. BACH - Fugue de "Toccata & Fugue" (moitié)
    W.A. Mozart - La Marche Turque
    Brahms - 5e Danse Hongroise
    Leopold Mozart - Symphonie des Jouets
    Beethoven - 9e Symphonie, 4e Mouvement ("Ode à la joie")
    Les yeux

    Rock



    Metallica - Seek and Destroy

    Muse - plug-in baby
    Van Halen - Eruption (solo tapping)
    Base rock
    Cowboys fringants - Les Étoiles Filantes

    Génériques télé & musiques de film



    La leçon de piano
    Pokémon
    H. Mancini - La Panthère Rose
    Jeux Interdis
    James Bond
    Harry Potter - Hedwig's theme
    Hampton the Hamster
    Star Wars - Ouverture et thème principal
    Star Wars - Thème de Luke
    Star Wars - Marche impériale
    Star Wars - Cantina
    Les Simpsons
    Mon voisin Totoro

    Jeux Vidéos



    Indiana Jones and the Last Crusade (PC, Abandonware) - Thème de Venise
    PacMan (Bonus)
    Zelda - Chant des bois perdus
    Zelda - Berceuse de Zelda
    Zelda - Temple du Temps
    Metal Gear Solid
    Metal Gear Solid (2 voix : version Game Boy :p )

    Autres



    Sans titre (Xhtml_boys)
    Folia (notation internationale)
    Serge Gainsbour - Couleur Café
    Sonnerie « cocorico »
    Sonnerie nokia

    C'EST À VOUS !



    Allez, c'est à vous, venez entretenir le délire, et faites-nous de jolies partitions !
    A vos claviers ! :p
    • Partager sur Facebook
    • Partager sur Twitter
    Zeste de Savoir, le site qui en a dans le citron !
    Anonyme
      19 décembre 2008 à 15:24:50

      au fait sur linux c'est rapide ou lent les musiques ? car moi c'est assez lent sous windows (surement a cause du logiciel supplementaire qu'il faut installer >_< )
      sa fait
      tu.....................ti.............tu..................tu............................tu...........................tu
      les points c'est les moment où y'as rien
      • Partager sur Facebook
      • Partager sur Twitter
        19 décembre 2008 à 15:30:13

        Ça dépend des machines et de ce que tu exécutes en même temps je pense : bash n'est pas un langage réputé pour être ultra-rapide non plus :-°

        Perso, je n'ai eu aucun soucis sous toutes les machines que j'ai testé sous Linux.
        Si quelqun se sent d'attaque pour créer une version en C ou C++ qui soit portable... il est le bienvenu ! :D

        EDIT : J'ai trouvé comment faire, je créerai le programme ce soir, j'aurai juste besoin de quelqun qui code sous Windows pour tester la compilation/l'exécution sous Win ;)
        Merci de m'adresser un MP si vous êtes volontaires.
        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          19 décembre 2008 à 16:49:40

          Tiens encore une remarque : il faut rajouter une ligne a la fin du fichier de partition, sinon la derniere ligne de la partoche n'est pas jouée.
          (peut-etre faut-il déplacer le premier bloc if de play() à la fin de la fonction, j'en suis pas sur et j'ai pas le temps de tester pour le moment)
          • Partager sur Facebook
          • Partager sur Twitter
            19 décembre 2008 à 16:59:13

            Ce script roxx, et les musiques faites dessus aussi =) !
            Ahlala que de souvenirs ^^ ..
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              19 décembre 2008 à 17:34:09

              Sur mac, il trouve pas <linux/kd.h> :(
              • Partager sur Facebook
              • Partager sur Twitter
                19 décembre 2008 à 19:51:21

                Quand j'ouvre beep.exe il me dit "accès refusé".

                Faut p'tet pas l'ouvrir avec le bloc note ?




                EDIT: Bon euh nan faut pas l'ouvrir au bloc note :)
                On la modifie avec quoi la ligne pour windows ?
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  19 décembre 2008 à 20:08:13

                  Je testerai ce week-end, tiens. Faut déjà que je retrouve mon speaker.
                  ( Il est externe a la carte mère, et je l'ai enlevé, parce que les erreurs windows, c'est strident).
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    19 décembre 2008 à 20:10:17

                    en fait la technique avec le fichier beep.exe rends des son en ralenti >_<
                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 décembre 2008 à 20:57:59

                      des zéros pour faire une video avec du son ?
                      j'ai pas de bip d'activé, mais j'aurais voulu voir !
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 décembre 2008 à 21:04:13

                        Marche pas chez moi, pas possible de modifier la ligne (on peut pas l'ouvrir) et tu dis pas comment le lancer.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 décembre 2008 à 21:08:34

                          'tin, c'est pas beep.exe qu'l faut modifier mais le script play.sh que vous recopiez en modifiant la ligne :D
                          Beep.exe vous avez juste à le caler dans C:\cygwin\bin

                          Quoi qu'il en soit je suis en train de finaliser une version en C++ qui compile sous Windows et Linux sans avoir à faire de modif'... encore quelques minutes de patience ;)
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Zeste de Savoir, le site qui en a dans le citron !
                          Anonyme
                            19 décembre 2008 à 21:13:51

                            .

                            -
                            Edité par Anonyme 12 juillet 2019 à 10:15:23

                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 décembre 2008 à 21:38:16

                              Je viens d'éditer et de poster la version C++, normalement tout le monde devrait maintenant s'en sortir !

                              Merci de bien vouloir me signaler tout problème éventuel à la compilation ou à l'exécution en précisant ce qui se passe : j'ai codé assez rapidement, je n'ai aucune erreur chez moi, jolo2 non plus sous Windows, mais il vaut mieux prévenir que guérir :D .
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Zeste de Savoir, le site qui en a dans le citron !
                              Anonyme
                                19 décembre 2008 à 22:05:39

                                Au fait voici mon script pour générer les partitions on-line :D
                                http://jolo2.eu/Mes%20Tests/notes/index.php
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 décembre 2008 à 23:00:32

                                  .exe ?
                                  Parce que bon...

                                  jolo2, sympa ton script. :)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    19 décembre 2008 à 23:02:29

                                    Citation : iBody

                                    .exe ?
                                    Parce que bon...

                                    jolo2, sympa ton script. :)



                                    Bah, si quelqun veut bien le compiler sous windows et uploader l'exécutable y'a pas de soucis, en même temps c'est pas bien compliqué quoi :-° ...

                                    EDIT : voilà, merci encore à jolo2

                                    http://calmettes.arnaud.free.fr/play/play.exe
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Zeste de Savoir, le site qui en a dans le citron !
                                      19 décembre 2008 à 23:05:46

                                      Ouais mais j'ai pas de compilateur sous la main.
                                      Merci jolo2. ;)

                                      Édit : Ça marche, faire glisser le .txt de la partition sur le .exe, et c'est parti. :)
                                      Par contre je testerais en détails demain, ça fait un peu de bruit. Les sons semblent pas être ralentis chez moi. ;)

                                      Par contre, c'est quoi une Octave et une Durée ?
                                      Et un Tempo ? :D
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        19 décembre 2008 à 23:17:13

                                        C'est expliqué dans le premier post... :-°
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Zeste de Savoir, le site qui en a dans le citron !
                                          19 décembre 2008 à 23:26:28

                                          Ça me dit pas ce que c'est. :-°
                                          J'ai essayé un truc de mon cahier de musique mais c'est pas terrible, ça fait une musique qu'on dirait sortie de Animal Crossing. :D
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            19 décembre 2008 à 23:31:57

                                            J'avais une suggestion pour améliorer ce qui vient d'être fait, c'est de créer un petit logiciel qui permettrait de taper ou importer des partitions, et par exemple en cliquant sur un bouton Play, le système se met en marche. :p Je ne peux pas le faire car je ne connais pas de langage de prog logiciel, mais je pense que ça ne doit pas être très difficile.

                                            L'exécutable ne fonctionne pas sous Vista
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              19 décembre 2008 à 23:38:14

                                              marrant je l'ai compiler sous Vista justement...
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                19 décembre 2008 à 23:39:50

                                                Citation : henneqxp

                                                J'avais une suggestion pour améliorer ce qui vient d'être fait, c'est de créer un petit logiciel qui permettrait de taper ou importer des partitions, et par exemple en cliquant sur un bouton Play, le système se met en marche. :p Je ne peux pas le faire car je ne connais pas de langage de prog logiciel, mais je pense que ça ne doit pas être très difficile.

                                                L'exécutable ne fonctionne pas sous Vista


                                                Non là désolé mais c'est trop demander pour un bête délire : déjà le temps perdu à expliquer à tout le monde comment ça fonctionne, si en plus faut faire une GUI qui compile de la même manière chez tout le monde, ça perd tout son sens ! :-°

                                                Si l'exécutable ne fonctionne pas, alors essaye de compiler.

                                                (dire que c'était parti d'un bête script shell un peu délirant sous linux >_< , ce topic s'est barré en "ça marche pas chez moi", et personne n'a encore participé au sujet tel qu'il a été défini... )
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Zeste de Savoir, le site qui en a dans le citron !
                                                  19 décembre 2008 à 23:42:52

                                                  Citation : NoHaR

                                                  Citation : henneqxp

                                                  J'avais une suggestion pour améliorer ce qui vient d'être fait, c'est de créer un petit logiciel qui permettrait de taper ou importer des partitions, et par exemple en cliquant sur un bouton Play, le système se met en marche. :p Je ne peux pas le faire car je ne connais pas de langage de prog logiciel, mais je pense que ça ne doit pas être très difficile.

                                                  L'exécutable ne fonctionne pas sous Vista



                                                  Non là désolé mais c'est trop demander pour un bête délire : déjà le temps perdu à expliquer à tout le monde comment ça fonctionne, si en plus faut faire une GUI qui compile de la même manière chez tout le monde, ça perd tout son sens ! :-°

                                                  Si l'exécutable ne fonctionne pas, alors essaye de compiler.

                                                  (dire que c'était parti d'un bête script shell un peu délirant sous linux >_< , ce topic s'est barré en "ça marche pas chez moi", et personne n'a encore participé au sujet tel qu'il a été défini... )


                                                  Tu nous excusera si on fait pas de Shell. ;)
                                                  Et puis maintenant qu'il y a l'exécutable, on va pouvoir essayer de bidouiller des trucs qui auront un semblant de musique. :D
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    19 décembre 2008 à 23:44:01

                                                    Cadeau liveendirecttrodlaballe :
                                                    Au clair de la lune :-°
                                                    TEMPO 300
                                                    SOL 4 1
                                                    SOL
                                                    SOL
                                                    LA
                                                    SI 4 2
                                                    LA
                                                    SOL 4 1
                                                    SI
                                                    LA
                                                    LA
                                                    SOL 4 2
                                                    SOL 4 1
                                                    SOL
                                                    SOL
                                                    LA
                                                    SI 4 2
                                                    LA
                                                    SOL 4 1
                                                    SI
                                                    LA
                                                    LA
                                                    SOL 4 2
                                                    _
                                                    LA 4 1
                                                    LA
                                                    LA
                                                    LA
                                                    MI 4 2
                                                    MI
                                                    LA 4 1
                                                    SOL
                                                    FA
                                                    MI
                                                    RE 4 3
                                                    SOL 4 1
                                                    SOL
                                                    SOL
                                                    LA
                                                    SI 4 2
                                                    LA
                                                    SOL 4 1
                                                    SI
                                                    LA
                                                    LA
                                                    SOL 4 4
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      19 décembre 2008 à 23:49:27

                                                      MERCI !
                                                      Enfin quelqun qui participe :D

                                                      (j'commençais à faire le noeud sur la corde là... )
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Zeste de Savoir, le site qui en a dans le citron !

                                                      [Délire de Geek] Faites chanter votre PC !!

                                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                      • Editeur
                                                      • Markdown