begin process at 2012 02 10 20:26:00
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimedia

 > CRÉER DU SON

CRÉER DU SON


 Information sur la source

Note :
9,1 / 10 - par 10 personnes
9,10 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Multimedia Niveau :Débutant Date de création :11/07/2004 Date de mise à jour :13/02/2006 18:30:55 Vu / téléchargé :17 740 / 1 697

Auteur : RDX

Ecrire un message privé
Commentaire sur cette source (36)
Ajouter un commentaire et/ou une note

 Description

C'est juste un tutorial qui explique comment fonctionne le format WAVE PCM.
Y'a même un petit exemple à la fin pour montrer comment on peut créer un son dans un .wav.

Ce tutoriel se présente sous la forme d'une archive internet (texte compilé avec images), si ca marche pas chez vous, dites le moi, que je le ponde en html ou word.

Source

  • Vocabulaire:
  • ----------------
  • - La place que prend l'échantillon (8 ou 16 bits) se nomme la RESOLUTION.
  • petites erreurs:
  • --------------------
  • - L'expression mathématique (ou physique) d'une onde sinus est :
  • Onde (t) = A.sin[ (2 . Pi . F . t ) + p]
  • petite erreur, j'avais oublié la variable t !
  • - La fréquence maximum décelable dans un wave échantilloné a 44100 Hz est 22050 Hz (et non pas 22100)
Vocabulaire:
----------------

- La place que prend l'échantillon (8 ou 16 bits) se nomme la RESOLUTION.

petites erreurs:
--------------------

 - L'expression mathématique (ou physique) d'une onde sinus est :
Onde (t) = A.sin[ (2 . Pi . F . t ) + p]

petite erreur, j'avais oublié la variable t ! 

- La fréquence maximum décelable dans un wave échantilloné a 44100 Hz est 22050 Hz (et non pas 22100)

 Conclusion

S'il y a des erreurs ou des choses a rajouter, faites le moi savoir.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Comprendre le format wave PCM.mhtTélécharger ce fichier [Réservé aux membres club]355 012 octets

Télécharger le zip


 Historique

11 juillet 2004 18:40:51 :
zip
11 juillet 2004 18:43:34 :
J'ai essayé de mettre le zip en même temps que le site a été uploadé, du coup ca merde.
12 juillet 2004 15:20:43 :
Explication très détaillée de l'exemple de code fourni
12 juillet 2004 18:52:59 :
dernière maj
12 juillet 2004 18:54:36 :
dernière maj
13 juillet 2004 23:21:05 :
-
13 février 2006 18:28:40 :
Version html
13 février 2006 18:30:55 :
Version html

 Sources du même auteur

Source avec Zip Source avec une capture CONTROLE COMPTEUR ANALOGIQUE
Source avec Zip MIXAGE DE 2 FICHIERS .WAV
Source avec Zip JOUER DU SON EN DUR (DIRECTX8)
Source avec Zip Source avec une capture INTERPOLER UNE COURBE DISCONTINUE
Source avec Zip Source avec une capture SYNTHÉTISEUR VIRTUEL AUDIO VECTOR

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MON LECTEUR MP3 par kentharold
Source avec Zip Source avec une capture LECTEUR MULTIMÉDIA par lartiguef
Source avec Zip Source avec une capture RENOMMER SOUS-TITRES par memejoueur
Source .NET (Dotnet) "PARLEUR" EN VB 2010 par clementgeek41
Source avec Zip Source avec une capture CHANGER LE VOLUME SYSTÉME SANS ACTIVEX par kayoub5

Commentaires et avis

Commentaire de RDX le 11/07/2004 18:27:56

J'attends vos commentaires!

Commentaire de hhhp2004 le 11/07/2004 23:49:46

rdx ton affaire est trop forte ! je vais esseyer de comprendre plus en detail ton code ....

petite probleme : jai un peu de la difficulté a trouver le fichier wav, mais cest rien ....... pour les autres : il se trouve dans le dossier de visual basic ......

salut

Commentaire de Achoum le 12/07/2004 09:36:09

Super, vraiment super ce tutorial.
C'est toi qui la écrit ?

Commentaire de RDX le 12/07/2004 13:03:03

Oui tout est de moi. Je savais pas quoi mettre sur vbfrance, pis j'ai vu qu'il y avait pas de truc sur le son, alors je me suis lancé. Etant donné que je programme sur vb6 avec directSound depuis pas mal de temps, je connais quelques combines!

La prochaine source que j'essaierai de poster sera une sorte de logiciel de musique avec une boite a rythme, un module de basse, un module acid, un mini sampler et un spliter de wave.

Commentaire de BozzoDodo le 12/07/2004 14:42:11

Tout simplement excellent! C'est très interessant de connaitre le format des fichiers expliqué de facon si simple! 10/10

Commentaire de Scalpweb le 12/07/2004 18:08:30

c ce que je cherchais. Bravo et merci.

Commentaire de legion91 le 13/07/2004 14:01:01

Ouais je mattendais à voir une API comme mciExecute mais la c'est carrement génial, si tu fait la meme chose pour le mp3 ben la je ne serait que dire.

Allez 10/10 (par contre evite les commentaires en masse lol non je deconne c'est tres bien meme trop bien pour que ce soit vrai) continu comme sa man.

Commentaire de phtribaudeau le 13/07/2004 14:56:49

Ben mon cochon ! C'est pas mal du tout, tout ça !
Félicitation, car c'est très bien expliqué et ton source fonctionne parfaitement. C'est appréciable.
Bravo, 10/10.

Maintenant, il faut faire la seconde étape : la lecture du WAV sans passer par les fonctions API. Non ?

Encore bravo.

PS : juste un détail : t'es pas très bon en orthographe, tu sais...

Commentaire de RDX le 13/07/2004 22:02:10

Désolé pour l'orthographe, ca fait 6 ans que g pas fait de dictée, pis quand on a pas ca dans la peau...

Commentaire de RDX le 13/07/2004 22:11:54

Ah oui phtribaudeau, la lecture sans passer par les Api, je sais pas si c'est possible... En tout cas, tu peux jouer directement le buffer que tu viens de calculer sans avoir a le créer en wave, en l'envoyant directement dans la memoire de la carte son. Mais le code est assez compliqué a expliquer et assez difficile a manipuler, c'est pour ca que j'utilise directX, avec directSound!

Voila, merci a tous pour vos commentaires, je pensais pas que ca vous serais aussi utile.

Commentaire de legion91 le 07/08/2004 16:24:43

Je me suis un peu pencher du cote de la recuperation des données. Grace à ton prog j'ai pu faire une base de donnée en moins de 20lignes.

Cette source n'est pas que magnifique, elle dechire.
Encore merci man.

http://www.vbfrance.com/code.aspx?ID=25235

Commentaire de Horfee le 15/08/2004 02:36:13

sais tu ou on pourrait trouver de la doc sur comment l'envoyer dans le buffer de la carte son?ou encore comment faire avec irectsound?(chuis debutant...)

Commentaire de reflexinfo le 08/09/2004 17:34:30

bonjour ,
je trouve vos code trés sympas ...
je travail actuelement sur le son et je rencontre des petit problémes :
je dois faire un programe qui fonctionne en trois temps
-je dois généré un fichier wawe (une voix )
ensuite avec ce fichier je dois le mixer avec un ficher son  (music de fond) le tout doit générer un seul fichier son en wawe et en MP3 ...
voilà le petit probléme
en gros via le module de voix de windows (API TTS) je tape un texte je dois générer un fichier wave et ensuite le mixer avec une musique de fond ,pour en faire un fichier unique en deux format
et en plus  (API TTS) me génére une voix un peu robot je pense qu'il faudrais que je modifie cette voix avant enregistrement pour une voix plus humaine !!!!
donc je suis un peu mal
et je cherche de l'aide

merci d'avance

Cordialement

Stéph

Commentaire de RDX le 08/09/2004 23:20:59

Bonjour,

Alors mixer les deux sources audio c'est pas compliqué.
Enregistrer La sortie de TexttoSpeech ca doit pouvoir se faire.
Pour le mp3, plusieurs src sont dispo sur le site, par exemple :
http://www.vbfrance.com/code.aspx?ID=6459

En revanche, pour ce qui est de la synthèse vocale... Ce sont des ingenieurs spécialisés dans le son qui bidouillent ce genre de fonctions, alors quand il s'agit d'ameliorer leur resultats, vaut mieux etre serieusement qualifiés...
Pour ma part, je me suis arreté au bac, alors je ne te serais pas vraiment d'une grande aide.

Je peut dire que si ca vient de problèmes d'intonnations c'est pas la peine... Ou alors faut trouver un synthetiseur vocale de meilleure qualité.

Si c'est pour une application musicale (une voix chantée par exemple), laisse tomber tout de suite...

Je vais essayer de voir comment s'y prendre pour que la voix soit "plus réelle", mais je ne garanti rien.
D'ailleurs, si c'était possible aujourd'hui, je pense que les programmeurs de TTS y aurait déja pensé bien avant moi!

Bye!

Commentaire de reflexinfo le 09/09/2004 12:21:53

Merci de ta reponse rapide ,
c'est vrai que je suis un peu dans le caca avec ça ...
aurais tu un exemple de code pour la phase
"" mixer les deux sources audio et
Enregistrer La sortie de TexttoSpeech """ ?????
je vais voir de suite la source pour le MP3

vraiment merci de ton aide

Cordialement

Stéph

Commentaire de RDX le 09/09/2004 19:19:52

Pour le mixage, je vais le faire ce soir. en ce qui concerne TTS, je ne l'ai pas, alors ca va être difficile. Mais je pense qui doit être facile de le capturer avec directx8.

Commentaire de reflexinfo le 13/09/2004 11:26:11

Bonjour RDX,
encore merci pour ton aide .
je suis un peu géner ,je voudrais pas que tu perde ton temps de loisir pour mon probléme ...
mais comme on dit à charge de revanche ,tu me sauve la mise avec ton travail ,j'ai hate d'avoir les sources ,ne t'enmerde pas trop ,j'ai juste besion de comprendre comment ça marche !

merci

Cordialement

Stéph

Commentaire de RDX le 14/09/2004 10:14:45

Désolé pour tout le retard, mon pc a été vérollé apparement, j'ai du me bricoler un navigateur avec les template de vb parce que internet explorer veut plus rien savoir, il me change de pages toute les 5 secondes.

Je termine mon boulot et je vais le poster vers midi ou ce soir si j'ai pas le temps.

Commentaire de RDX le 14/09/2004 21:27:35

C'est fait :
http://www.vbfrance.com/code.aspx?id=26162

Bye!

Commentaire de reflexinfo le 21/09/2004 17:45:38

BONJOUR RDX ,
je viens de rentrer d'une mission en espagne ,et je suis super contant ,je vais le téléchager ...
je te tiens au jus
vraiment merci pour ton coup de pouce ,et comme on dit à charge de revanche !

cordialement

Stéphane

Commentaire de bisdidier le 01/10/2004 10:33:16

Bonjour.
Félicitations. Vous m'avez donné ce que je recherchais.
Pouvez vous faire un truc pareil pour le son midi? J'en ai besoin.
Par ailleur, même s'il est difficile à expliquer , donnez moi tout de même le code permettant de jouer directement le son contenu dans le buffer. Comment l'envoyer à la mémoire de la carte son pour lecture?
Merci d'avance.

Commentaire de RDX le 08/10/2004 11:24:08

Ok, pour lire le son directement, je vais essayer de voir ca cette semaine.
PourEuh ... Pour le midi, moi j'y connais rien!
Je peux te donner les fichiers qui decrivent le format midi, mais bon je penses que ca ne se maitrise pas du jour au lendemain. Il y a d'autres sources sur le site qui parlent de midi et qui proviennent de coders qui en savent bien plus que moi la dessus.

Commentaire de bisdidier le 10/10/2004 08:55:41

Ok, tout cela est bienvenu pour moi.
Cordialement.

Commentaire de RDX le 10/10/2004 18:11:30

Le format du midi (coller ca dans un .txt - police courrier new)


                           Standard MIDI File Format
                                Dustin Caldwell

      The standard MIDI file format is a very strange beast. When viewed as a
whole, it can be quite overwhelming. Of course, no matter how you look at it,
describing a piece of music in enough detail to be able to reproduce it
accurately is no small task. So, while complicated, the structure of the midi
file format is fairly intuitive when understood.
      I must insert a disclaimer here that I am by no means an expert with
midi nor midi files. I recently obtained a Gravis UltraSound board for my PC,
and upon hearing a few midi files (.MID) thought, "Gee, I'd like to be able to
make my own .MID files." Well, many aggravating hours later, I discovered that
this was no trivial task. But, I couldn't let a stupid file format stop me.
(besides, I once told my wife that computers aren't really that hard to use,
and I'd hate to be a hypocrite) So if any errors are found in this
information, please let me know and I will fix it. Also, this document's scope
does not extend to EVERY type of midi command and EVERY possible file
configuration. It is a basic guide that should enable the reader (with a
moderate investment in time) to generate a quality midi file.

1. Overview

      A midi (.MID) file contains basically 2 things, Header chunks and Track
chunks. Section 2 explains the header chunks, and Section 3 explains the track
chunks. A midi file contains ONE header chunk describing the file format,
etc., and any number of track chunks. A track may be thought of in the same
way as a track on a multi-track tape deck. You may assign one track to each
voice, each staff, each instrument or whatever you want.

2. Header Chunk

      The header chunk appears at the beginning of the file, and describes the
file in three ways. The header chunk always looks like:

4D 54 68 64 00 00 00 06 ff ff nn nn dd dd

The ascii equivalent of the first 4 bytes is MThd. After MThd comes the 4-byte
size of the header. This will always be 00 00 00 06, because the actual header
information will always be 6 bytes.

ff ff is the file format. There are 3 formats:

0 - single-track
1 - multiple tracks, synchronous
2 - multiple tracks, asynchronous

Single track is fairly self-explanatory - one track only. Synchronous multiple
tracks means that the tracks will all be vertically synchronous, or in other
words, they all start at the same time, and so can represent different parts
in one song. Asynchronous multiple tracks do not necessarily start at the same
time, and can be completely asynchronous.

nn nn is the number of tracks in the midi file.

dd dd is the number of delta-time ticks per quarter note. (More about this
later)


3. Track Chunks

The remainder of the file after the header chunk consists of track chunks.
Each track has one header and may contain as many midi commands as you like.
The header for a track is very similar to the one for the file:

4D 54 72 6B xx xx xx xx

As with the header, the first 4 bytes has an ascii equivalent. This one is
MTrk. The 4 bytes after MTrk give the length of the track (not including the
track header) in bytes.
      Following the header are midi events. These events are identical to the
actual data sent and received by MIDI ports on a synth with one addition. A
midi event is preceded by a delta-time. A delta time is the number of ticks
after which the midi event is to be executed. The number of ticks per quarter
note was defined previously in the file header chunk. This delta-time is a
variable-length encoded value. This format, while confusing, allows large
numbers to use as many bytes as they need, without requiring small numbers to
waste bytes by filling with zeros. The number is converted into 7-bit bytes,
and the most-significant bit of each byte is 1 except for the last byte of the
number, which has a msb of 0. This allows the number to be read one byte at a
time, and when you see a msb of 0, you know that it was the last (least
significant) byte of the number. According to the MIDI spec, the entire delta-
time should be at most 4 bytes long.
      Following the delta-time is a midi event. Each midi event (except a
running midi event) has a command byte which will always have a msb of 1 (the
value will be >= 128). A list of most of these commands is in appendix A. Each
command has different parameters and lengths, but the data that follows the
command will have a msb of 0 (less than 128). The exception to this is a meta-
event, which may contain data with a msb of 1. However, meta-events require a
length parameter which alleviates confusion.
      One subtlety which can cause confusion is running mode. This is where
the actual midi command is omitted, and the last midi command issued is
assumed. This means that the midi event will consist of a delta-time and the
parameters that would go to the command if it were included.

4. Conclusion

      If this explanation has only served to confuse the issue more, the
appendices contain examples which may help clarify the issue. Also, 2
utilities and a graphic file should have been included with this document:

DEC.EXE - This utility converts a binary file (like .MID) to a tab-delimited
text file containing the decimal equivalents of each byte.

REC.EXE - This utility converts a tab-delimited text file of decimal values
into a binary file in which each byte corresponds to one of the decimal
values.

MIDINOTE.PS - This is the postscript form of a page showing note numbers with
a keyboard and with the standard grand staff.
                                      
                                  Appendix A

1. MIDI Event Commands

Each command byte has 2 parts. The left nybble (4 bits) contains the actual
command, and the right nybble contains the midi channel number on which the
command will be executed. There are 16 midi channels, and 8 midi commands (the
command nybble must have a msb of 1).
In the following table, x indicates the midi channel number. Note that all
data bytes will be <128 (msb set to 0).

Hex      Binary       Data          Description
8x       1000xxxx     nn vv         Note off (key is released)
                                    nn=note number
                                    vv=velocity

9x       1001xxxx     nn vv         Note on (key is pressed)
                                    nn=note number
                                    vv=velocity

Ax       1010xxxx     nn vv         Key after-touch
                                    nn=note number
                                    vv=velocity

Bx       1011xxxx     cc vv         Control Change
                                    cc=controller number
                                    vv=new value

Cx       1100xxxx     pp            Program (patch) change
                                    pp=new program number

Dx       1101xxxx     cc            Channel after-touch
                                    cc=channel number

Ex       1110xxxx     bb tt         Pitch wheel change (2000H is normal or no
                                    change)
                                    bb=bottom (least sig) 7 bits of value
                                    tt=top (most sig) 7 bits of value

The following table lists meta-events which have no midi channel number. They
are of the format:

FF xx nn dd

All meta-events start with FF followed by the command (xx), the length, or
number of bytes that will contain data (nn), and the actual data (dd).

Hex      Binary       Data          Description
00       00000000     nn ssss       Sets the track's sequence number.
                                    nn=02 (length of 2-byte sequence number)
                                    ssss=sequence number

01       00000001     nn tt ..      Text event- any text you want.
                                    nn=length in bytes of text
                                    tt=text characters

02       00000010     nn tt ..      Same as text event, but used for
                                    copyright info.
                                    nn tt=same as text event

03       00000011     nn tt ..      Sequence or Track name
                                    nn tt=same as text event

04       00000100     nn tt ..      Track instrument name
                                    nn tt=same as text event

05       00000101     nn tt ..      Lyric
                                    nn tt=same as text event

06       00000110     nn tt ..      Marker
                                    nn tt=same as text event

07       00000111     nn tt ..      Cue point
                                    nn tt=same as text event

2F       00101111     00            This event must come at the end of each
                                    track

51       01010001     03 tttttt     Set tempo
                                    tttttt=microseconds/quarter note

58       01011000     04 nn dd ccbb Time Signature
                                    nn=numerator of time sig.
                                    dd=denominator of time sig. 2=quarter
                                    3=eighth, etc.
                                    cc=number of ticks in metronome click
                                    bb=number of 32nd notes to the quarter
                                    note

59       01011001     02 sf mi      Key signature
                                    sf=sharps/flats (-7=7 flats, 0=key of C,
                                    7=7 sharps)
                                    mi=major/minor (0=major, 1=minor)

7F       01111111     xx dd ..      Sequencer specific information
                                    xx=number of bytes to be sent
                                    dd=data

The following table lists system messages which control the entire system.
These have no midi channel number. (these will generally only apply to
controlling a midi keyboard, etc.)

Hex      Binary       Data          Description
F8       11111000                   Timing clock used when synchronization is
                                    required.

FA       11111010                   Start current sequence

FB       11111011                   Continue a stopped sequence where left
                                    off

FC       11111100                   Stop a sequence


The following table lists the numbers corresponding to notes for use in note
on and note off commands.


Octave||                     Note Numbers
   #  ||
      || C   | C#  | D   | D#  | E   | F   | F#  | G   | G#  | A   | A#  | B
-----------------------------------------------------------------------------
   0  ||   0 |   1 |   2 |   3 |   4 |   5 |   6 |   7 |   8 |   9 |  10 | 11
   1  ||  12 |  13 |  14 |  15 |  16 |  17 |  18 |  19 |  20 |  21 |  22 | 23
   2  ||  24 |  25 |  26 |  27 |  28 |  29 |  30 |  31 |  32 |  33 |  34 | 35
   3  ||  36 |  37 |  38 |  39 |  40 |  41 |  42 |  43 |  44 |  45 |  46 | 47
   4  ||  48 |  49 |  50 |  51 |  52 |  53 |  54 |  55 |  56 |  57 |  58 | 59
   5  ||  60 |  61 |  62 |  63 |  64 |  65 |  66 |  67 |  68 |  69 |  70 | 71
   6  ||  72 |  73 |  74 |  75 |  76 |  77 |  78 |  79 |  80 |  81 |  82 | 83
   7  ||  84 |  85 |  86 |  87 |  88 |  89 |  90 |  91 |  92 |  93 |  94 | 95
   8  ||  96 |  97 |  98 |  99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107
   9  || 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119
  10  || 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 |


                                BIBLIOGRAPHY

  "MIDI Systems and Control" Francis Rumsey  1990 Focal Press

  "MIDI and Sound Book for the Atari ST" Bernd Enders and Wolfgang Klemme
          1989 M&T Publishing, Inc.

  MIDI file specs and general MIDI specs were also obtained by sending e-mail
         to LISTSERV@AUVM.AMERICAN.EDU with the phrase GET MIDISPEC PACKAGE
         in the message.


------------------------------- DEC.CPP ------------------------------------

/*  file  dec.cpp

by  Dustin Caldwell    (dustin@gse.utah.edu)

*/


#include <dos.h>
#include <stdio.h>
#include <stdlib.h>

void helpdoc();

main()
{
        FILE *fp;

        unsigned char ch, c;

        if((fp=fopen(_argv[1], "rb"))==NULL)            /* open file to read */
        {
                printf("cannot open file %s\n",_argv[1]);
                helpdoc();
                exit(-1);
        }

        c=0;
        ch=fgetc(fp);

        while(!feof(fp))                        /* loop for whole file */
        {
                printf("%u\t", ch);             /* print every byte's decimal equiv. */
                c++;
                if(c>8)                                 /* print 8 numbers to a line */
                {
                        c=0;
                        printf("\n");
                }

                ch=fgetc(fp);
        }

        fclose(fp);                     /* close up */
}

void helpdoc()                  /* print help message */
{
        printf("\n   Binary File Decoder\n\n");

        printf("\n Syntax:  dec binary_file_name\n\n");

        printf("by Dustin Caldwell  (dustin@gse.utah.edu)\n\n");
        printf("This is a filter program that reads a binary file\n");
        printf("and prints the decimal equivalent of each byte\n");
        printf("tab-separated. This is mostly useful when piped \n");
        printf("into another file to be edited manually.  eg:\n\n");
        printf("c:\>dec sonata3.mid > son3.txt\n\n");
        printf("This will create a file called son3.txt which can\n");
        printf("be edited with any ascii editor. \n\n");
        printf("(rec.exe may also be useful, as it reencodes the \n");
        printf("ascii text file).\n\n");
        printf("Have Fun!!\n");
}

---------------------------- REC.CPP ----------------------------------

/*  File  rec.cpp
        by Dustin Caldwell   (dustin@gse.utah.edu)
*/

#include <dos.h>
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

void helpdoc();

main()
{
        FILE *rfp, *wfp;

        unsigned char ch, c;
        char s[20];

        if((rfp=fopen(_argv[1], "r"))==NULL)                    /* open the read file */
        {
                printf("cannot open file %s \n",_argv[1]);
                helpdoc();
                exit(-1);
        }

        if((wfp=fopen(_argv[2], "wb"))==NULL)                   /* open the write file */
        {
                printf("cannot open file %s \n",_argv[1]);
                helpdoc();
                exit(-1);
        }

        c=0;

        ch=fgetc(rfp);

        while(!feof(rfp))                       /* loop for whole file */
        {

                if(isalnum(ch))                 /* only 'see' valid ascii chars */
                {
                        c=0;
                        while(isdigit(ch))      /* only use decimal digits (0-9) */
                        {
                                s[c]=ch;        /* build a string containing the number */
                                c++;
                                ch=fgetc(rfp);
                        }
                        s[c]=NULL;                      /* must have NULL terminator */

                        fputc(atoi(s), wfp);/* write the binary equivalent to file */

                }

                ch=fgetc(rfp);                  /* loop until next number starts */


        }

        fclose(rfp);                    /* close up */
        fclose(wfp);
}


void helpdoc()          /* print help message */
{
        printf("\n   Text File Encoder\n\n");

        printf("\n Syntax:  rec text_file_name binary_file_name\n\n");

        printf("by Dustin Caldwell  (dustin@gse.utah.edu)\n\n");
        printf("This is a program that reads an ascii tab-\n");
        printf("delimited file and builds a binary file where\n");
        printf("each byte of the binary file is one of the decimal\n");
        printf("digits in the text file.\n");
        printf(" eg:\n\n");
        printf("c:\>rec son3.txt son3.mid\n\n");
        printf("(This will create a file called son3.mid which is\n");
        printf("a valid binary file)\n\n");
        printf("(dec.exe may also be useful, as it decodes binary files)\n\n");
        printf("Have Fun!!\n");
}

Commentaire de legion91 le 10/10/2004 23:32:44

Et ben ya de la recherche, un conseil fait un site perso (si c'est pas deja fait) où yaurai des exemple en C et en Vb sur les differents formats audio.

Je persiste à dire que cette source elle dechire d'instruction ;-)

Commentaire de OneHacker le 22/01/2005 19:53:33

C'est super, j'avais l'intention d'en faire un car c'est rare de trouver un logiciel de son gratuit et complet ! une question : il n'y que visual basic qui modifie le son ou il travaille en concert avec DirectX ou Direct Sound ? si il travaillent de concert faut-il aussi connaitre des commandes DirectX ou un truc de ce genre ?

Commentaire de psykocrash le 26/01/2005 00:45:44

Salut,
Est ce que tu pourais m'expliquer (pourquoi pas avec un code vb) comment séparer les sons (instruments) des paroles dans un fichier wave ? Le but étant d'avoir, a partir d'un fichier wave, deux fichiers. L'un contenant la musique uniquement (pour des karaokés par exemple) et l'autre contenant uniquement le chant (pour qu'un vocaliste puisse mieux travailler des morceaux).
Je galère un peut (beaucoup :p) alors je sollicite ton aide :)
Merci d'avance,
Psykocrash

PS : ton tutorial est tout simplement génial :)

Commentaire de spy_EIT le 11/04/2005 15:12:19


Salut Psychocrash !

Je crois que tu reves un peu.... si on pouvait extraire la voix d'un Wav, ça se saurait !! Le seul truc faisable (mais assez pouri) c'est de filtrer avec un filtre paramétrable, que tu règlera en fonction du type de voix (homme ou femme, aigu ou grave). En effet, un fichier wav ne contient que la WaveForm (londe sonore quoi) où tout est superposé !! Il n'y a donc aucun moyen de séparer la voix du reste de façon satisfaisante (sauf évidemment si tu a un wav contenant la voix uniquement, auquel cas tu peux soustraire les deux signaux pour récupérer l'instru.. mais je pense pas que ça soit le cas !).

Il n'y a que le midi qui permet de séparer les instruments entre eux, et la voix, car un fichier midi contient des infos sur les instruments, les notes, les voulmes, les attaques.... et l'onde sonore est synthétysée par la carte son à partir de ces infos.

En espérant t'avoir aidé....

SPY

Commentaire de spy_EIT le 11/04/2005 15:12:36


Salut Psychocrash !

Je crois que tu reves un peu.... si on pouvait extraire la voix d'un Wav, ça se saurait !! Le seul truc faisable (mais assez pouri) c'est de filtrer avec un filtre paramétrable, que tu règlera en fonction du type de voix (homme ou femme, aigu ou grave). En effet, un fichier wav ne contient que la WaveForm (londe sonore quoi) où tout est superposé !! Il n'y a donc aucun moyen de séparer la voix du reste de façon satisfaisante (sauf évidemment si tu a un wav contenant la voix uniquement, auquel cas tu peux soustraire les deux signaux pour récupérer l'instru.. mais je pense pas que ça soit le cas !).

Il n'y a que le midi qui permet de séparer les instruments entre eux, et la voix, car un fichier midi contient des infos sur les instruments, les notes, les voulmes, les attaques.... et l'onde sonore est synthétysée par la carte son à partir de ces infos.

En espérant t'avoir aidé....

SPY

Commentaire de spy_EIT le 11/04/2005 15:14:47

Oups, je clique trop vite ;)

Commentaire de psykocrash le 11/04/2005 23:29:14

Merci pour l'info spy_EIT. Mon projet tombe à l'eau :p

Commentaire de OneHacker le 12/04/2005 14:28:01

C'est super, j'avais l'intention d'en faire un car c'est rare de trouver un logiciel de son gratuit et complet ! une question : il n'y que visual basic qui modifie le son ou il travaille en concert avec DirectX ou Direct Sound ? si il travaillent de concert faut-il aussi connaitre des commandes DirectX ou un truc de ce genre ?

Merci d'avance

Commentaire de jrbleboss le 20/04/2005 21:57:45

c'est vraiment totalement génial.
C'est pas tout simple mais c'est très bien expliqué.
Je voudrais savoir comment on peut dessiner les ondes des fichiers ??

Trop cool.

Une des meilleures source de vbfrance.

JRB

Commentaire de RDX le 28/04/2005 10:51:25

J'ai déposé une source qui le fait, regarde dans la liste de mes sources :)

Commentaire de Dri le 03/07/2005 17:28:51

pour ceux qui cherchent un editeur de son gratuit y'a bien un freeware opensource concurent de soundforge... un truc dans le genre "Audacity" mais je sais plus...

pour ma part j'avais déjà les notion d'échantillonage avant de tomber sur cette page... Je sais déjà "décrypter" le format wave (et par exemple le représenter dans un osciloscope) mais mon problème se situe à "comment un son PCM est-il stocké dans la ram". De la même manière qu'un wave ? une entête différente ? Les chaînes ne sont plus entrelacées ?

Enfin bref je n'en sais rien du tout... j'espérais trouver la réponse ici mais impossible de lire le fichier. IE me met une page inexistante et si e change l'extension en html c'est illisible... J'aimerais bien une version HTML s'il te plait. Et aussi éventuellement des liens vers de la doc. Je voudrais jouer mes sons avec l'api PlaySound mais sur le msdn je n'ai rien trouvé sur le "son en mémoire"...

Dri

Commentaire de Dri le 05/07/2005 14:36:25

bon bah j'ai fini par trouver... c'est finalement le fichier tel quel qu'il faut envoyer à playsound... Ma demande d'une version html est toujours valable par contre. J'espère en apprendre plus avec.

Dri

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,279 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales