IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

émettre un son d'équation donnée


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut émettre un son d'équation donnée
    bonjour
    je cherche un moyen de produire un son en connaissant soit ses coeff an et bn de Fourier, soit son signal (style f(x)=0 sur [0,1[ et 1 sur [1,2[ et 2-périodique)
    j'ai beau chercher je ne vois qu'une chose, c'est que certainement la librairie pygame sera incontournable
    mais je ne suis pas sûr d'une part et d'autre part il me faudrait un bout de code fonctionnel pour ensuite le modifier et commencer à travailler
    sauriez vous où je peux trouver cela ?
    merci !

  2. #2
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut
    j'ai fini par trouver cela sur un site de prof de physique mais le programme, même s'il ne renvoie aucune erreur, n'émet aucun son
    marche-t-il chez vous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    #from lycee import *
    import matplotlib.pyplot as plt
    import wave
    import math
    import binascii
    import numpy as np
     
    #Création d'un fichier audio au format WAV (PCM 8 bits stéréo 44100 Hz) 
    #à partir de 4 fréquences (1 fondamentale et trois harmoniques)
     
    NomFichier = 'manote.wav'
    manote = wave.open(NomFichier,'w') # appellation du fichier manote
     
    nbCanal = 2    # stéreo
    nbOctet = 1    # taille d'un échantillon : 1 octet = 8 bits
    fech = 44100   # fréquence d'échantillonnage
     
    frequence1 = 440#Hertz
    frequence2 = 2*frequence1
    frequence3 = 3*frequence1
    frequence4 = 4*frequence1
    niveau1 = 0.5
    niveau2 = 0.5
    niveau3 = 0.5
    niveau4 = 0.5
    duree = 5
     
    nbEchantillon = int(duree*fech)
    print("Nombre d'échantillons :",nbEchantillon)
     
    parametres = (nbCanal,nbOctet,fech,nbEchantillon,'NONE','not compressed')# tuple
    manote.setparams(parametres)    # création de l'en-tête (44 octets)
     
    # niveau max dans l'onde positive : +1 -> 255
    # niveau max dans l'onde négative : -1 ->   0
    # codage sur 256 valeurs donc niveau sonore nul à 128
     
    amplitude1 = 128*niveau1
    amplitude2 = 128*niveau2
    amplitude3 = 128*niveau3
    amplitude4 = 128*niveau4
     
     
    # affichage des fréquences fondamentale et harmoniques
    plt.figure(1)
    t = np.linspace (0, 5/frequence1, 1000)
    x1 =niveau1*np.sin(2.0*np.pi*frequence1*t)
    x2= niveau2*np.sin(2.0*np.pi*frequence2*t)
    x3 =niveau3*np.sin(2.0*np.pi*frequence3*t)
    x4 =niveau4*np.sin(2.0*np.pi*frequence4*t)
    plt.plot(t, x1,'r', label = "fréquence fondamentale")
    plt.plot(t, x2,'g', label = "harmonique 1")
    plt.plot(t, x3,'k', label = "harmonique 2")
    plt.plot(t, x4,'y', label = "harmonique 3")
    plt.title("forme des signaux")
    plt.show()
     
    #affichage de la forme du signal sonore
    plt.figure(2)
    t = np. linspace (0, 5/frequence1, 1000)
    x =(niveau1*np.sin(2.0*np.pi*frequence1*t)+niveau2*np.sin(2.0*np.pi*frequence2*t)+ niveau3*np.sin(2.0*np.pi*frequence3*t)+niveau4*np.sin(2.0*np.pi*frequence4*t))/4
    plt.plot(t,x)
    plt.title("forme du signal sonore")
    plt.show()
     
    #création du fichier son
     
    print('Veuillez patienter, création du fichier son en cours...')
    for i in range(0,nbEchantillon):
        # canal gauche
        # 128 seuil du zéro
        valG = wave.struct.pack('B',128+int(0.1*(\
        amplitude1*math.sin(2.0*math.pi*frequence1*i/fech)+\
        amplitude2*math.sin(2.0*math.pi*frequence2*i/fech)+\
        amplitude3*math.sin(2.0*math.pi*frequence3*i/fech)+\
        amplitude4*math.sin(2.0*math.pi*frequence4*i/fech)\
        )))
        # canal droite
        # 128 seuil du zéro
        valD = wave.struct.pack('B',128+int(0.1*(amplitude1*math.sin(2.0*math.pi*frequence1*i/fech)+amplitude2*math.sin(2.0*math.pi*frequence2*i/fech)+amplitude3*math.sin(2.0*math.pi*frequence3*i/fech)+amplitude4*math.sin(2.0*math.pi*frequence4*i/fech))))
     
        manote.writeframes(valG+valG) # écriture fichier
     
    # jouer le fichier son
    import pygame
    pygame.init()
    pygame.mixer.music.load("manote.wav")
    pygame.mixer.music.play()
    pygame.event.wait()
     
     
    #winsound.PlaySound('manote.wav',winsound.SND_FILENAME)
     
    manote.close()

  3. #3
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Citation Envoyé par elodouwen Voir le message
    mais le programme, même s'il ne renvoie aucune erreur, n'émet aucun son
    marche-t-il chez vous ?
    Oui tout à fait. Le fichier manote.wav est bien crée puis lu...
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  4. #4
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut
    Ah mince
    moi je n'entends rien…
    on parle bien de lire le fichier wav au sens "lire un fichier audio" c'est-à-dire produire un son ?

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut
    Je me permet de rajouter une question :
    sauriez-vous comment exporter le fichier Wav afin de le lire avec une autre application de lecture de son ?

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    bonjour

    je ne comprends pas la question "exporter" ...

    Le script génère (exporte) un fichier au format wav (manote.wav). Il suffit ensuite de le charger/lire avec un programme adéquat (pratiquement tous lecteurs de musique)
    $moi= ( !== ) ? : ;

  7. #7
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 870
    Points : 1 522
    Points
    1 522
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par elodouwen Voir le message
    Ah mince
    moi je n'entends rien…
    on parle bien de lire le fichier wav au sens "lire un fichier audio" c'est-à-dire produire un son ?
    Oui
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  8. #8
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut
    mercii de vos réponses
    bon erreur du débutant que je suis : le fichier manote.wav était créé dans ~/
    j'ai mis un chemin absolu
    c'est bon
    le programme lui-même ne génère aucun son mais ili produit un fichier .wav dans le dossiier que j'ai demandé, et ce wav produit bien un son
    il me reste à travailler mathématiquement dessus;
    mercii de m'avoir débloqué c'était tellement une erreur bête
    Vinz

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre du son en assembleur
    Par ricardvince dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 15/12/2005, 14h05
  2. Créer son type de donnée
    Par progfou dans le forum Général Python
    Réponses: 5
    Dernier message: 14/12/2005, 09h31
  3. [FLASH MX2004] Comment mettre le son?
    Par Bekurute dans le forum Flash
    Réponses: 7
    Dernier message: 22/08/2005, 18h04
  4. [MFC] émettre un son continu
    Par gwendo dans le forum MFC
    Réponses: 3
    Dernier message: 03/03/2005, 10h25
  5. [VB6] Mettre des sons dans un dll
    Par Mr Meuble dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/07/2004, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo