begin process at 2012 02 08 18:04:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimedia

 > BMP SONG : METTEZ DU SON DANS VOS BMP

BMP SONG : METTEZ DU SON DANS VOS BMP


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Multimedia Classé sous :pf32bit, scanline, midi Niveau :Débutant Date de création :06/01/2009 Date de mise à jour :07/01/2009 09:39:40 Vu / téléchargé :3 088 / 347

Auteur : Nicolas___

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (41)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
BMP Song : Mettez du son dans vos BMP !

Comment ?! Grâce au format 32 bits et au formidable composant TMidiGen

Grâce au byte réservé , j'y place les information nécessaire pour faire une petite chansonnette ...

Les bitmaps générés sont des bitmaps valides, mais c'est uniquement avec mon programme que vous serez en mesure de lire les chansons cachées à l'intérieur ...

Le composant TMidiGen est appelé dynamiquement , donc pas besoin d'installation
  


 Conclusion

Il est pas fini , il y a des beugs mais je coince à certain endroit et j'aimerais avoir des avis ...

Le composant TMidiGen n'est pas de moi

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

06 janvier 2009 10:04:29 :
j'ai corrigé des fautes d'orthographes j'ai corrigé des fautes de programmation j'ai corrigé le zip En gros j'ai fait beaucoup de correction ^^
06 janvier 2009 10:17:01 :
Capture
06 janvier 2009 10:23:27 :
Maj des SpinEdit apres le chargement d'un BmpSong (Important pr le Header)
06 janvier 2009 10:34:17 :
c'est pour ça que d'habitude je ne mets presque pas de commentaire dans le code : quand on change le code, les commentaires ne changent pas !
06 janvier 2009 12:00:21 :
Ajout de la possibilite d'enregistrer la mélodie hors du bitmap... voir coms
07 janvier 2009 09:39:53 :
description

 Sources du même auteur

Source avec Zip Source avec une capture SYNTHÉTISEUR [BASS]
Source avec Zip Source avec une capture SCAN THREAD : BASS
Source avec Zip Source avec une capture PEDALE MULTI EFFETS [BASS ASIO]
Source avec Zip Source avec une capture JEU SHOOT LE CANARD
Source avec Zip Source avec une capture SPRITE ENGINE : DE LA 2D FACILEMENT

 Sources de la même categorie

Source avec Zip LECTURE DU FORMAT EXIF par piette
Source avec Zip Source avec une capture SYNTHÉTISEUR [BASS] par Nicolas___
Source avec Zip Source avec une capture CLAVIER ARRANGEUR MIDI VIRTUEL par etirex
Source avec Zip Source avec une capture KINECT TEST V2 JOUER DE LA MUSIC AVEC KINECT par FFCAST
Source avec Zip CLASSEMENT DES MP3 par piette

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TEXTE SUR COURBE DE BEZIER par pseudo3
Source avec Zip Source avec une capture UTILISATION DE LA SCANLINE POUR OPTIMISER LA LECTURE ET L'ÉC... par Denis007
Source avec Zip Source avec une capture CLAVIER ARRANGEUR MIDI VIRTUEL par etirex
Source avec Zip Source avec une capture AUSSI PRATIQUE QUE CANVAS.PIXELS[ ] MAIS JUSQU'À 450 FOIS PL... par Caribensila
Source avec Zip Source avec une capture DÉFILEMENT D'UN TEXTE SOUS FORME D'IMAGE SUR UN AFFICHEUR À ... par zwail1

Commentaires et avis

Commentaire de Nicolas___ le 06/01/2009 00:38:06

Il y a 2 exemples dans le zip : le bitmap "normal" et le même mais en bitmap song, la difference de taille s'explique que l'un est en 24bit , l'autre en 32 ...

D'ailleurs existe t-il des Jpeg32bits ? (dans delphi7 TJpegImage supporte 8 et 24 uniquement)

Bien sur l'enregistrement se fait grâce a scanline (et un seul appel SiVouPlai :) )

Commentaire de Nicolas___ le 06/01/2009 00:42:48

J'ai oublié de dire comment faire

charger le fichier MusicSong.bmp et appuyer sur Play en dessous de la ListBox

De plus je pense que vu que j'utilise TMidiGen en dynamique, il n'y a pas besoin de l'installer, si ?

Pour en créér 1 , charger un Bmp valide , composez votre mélodie en appuyant sur les notes (vous la jouez avant de la sauvegarder )

Pour le reste , lisez les commentaires ... j'espère pas avoir fait trop de fautes ...

Nico

Commentaire de Caribensila le 06/01/2009 01:02:42

Y'a pas à dire, c'est original... et sympa.
J'avais déjà stocké des tas de trucs zarrebis dans le byte reserved du pf32bit, mais de la musique j'y avais jamais pensé!  :D
'faut quand même s'accrocher quand on ne connaît pas la musique comme moi. Mais ça a l'air bien commenté.
Bon, je vais essayer de comprendre et d'en faire, de la musique...

( Nan. Pas besoin d'installer TMidiGen. )

Commentaire de blueperfect le 06/01/2009 02:17:10

En fait, cela revient à stockr des infos supplémentaires dans n TBitmap...

Autant dériver :

type TSoundBitmap = class(TBitmap)

      _sounddate:Pointer;

     end;

....non ?

Commentaire de Nicolas___ le 06/01/2009 09:29:35

Le but de cette source, c'était d'utiliser le format 32 bits et me débrouiller pour faire quelque chose de valable avec un byte ...

  

Commentaire de Nicolas___ le 06/01/2009 12:06:35

La capture ne passe pas mais on s'en ***, le zip est passé :

Explication de la mise à jour :

Il y a maintenant moyen de composer sa musique et de l'enregistrer dans un fichier spécifique (*.ltn), pour après la recharger et pouvoir l'appliquer à n'importe  quel bitmap (sans devoir à chaque que fois la recommencer)

j'ai mis un exemple dans le zip :
FrereJacqueSong.ltn

Contient la "Partition" du fichier FrereJacques.bmp...


Bien sûr il est possible de faire l'inverse, on prend un BmpSong et on extrait la partition en faisant tout simplement "sauvegarder la musique"

NB: j'ai essayé de faire au mieux Frère Jacques mais c'est vraiment galère avec ce programme ...

Commentaire de Nicolas___ le 06/01/2009 14:50:37

Je viens de me rendre compte d'une belle boulette !

Les durée et Delay ne sont pas pris en 1/1000 sec mais en 1/100 sec !

Je ne peux pas changer maintenant mais je le ferais...

Commentaire de offlake le 07/01/2009 07:48:30

C'est un peut Fatiguant d'installer un Composant
N'est ce pas NICOLAS___
Donc Réfléchi toujours à utiliser les Composants Standard de Delphi ou Crée tes Propres Composants Dynamiquement Parce que ilya beaucoup de Débutant qui ne savent pas installer un Simple Composant
BY OFFLAKE

Commentaire de Nicolas___ le 07/01/2009 09:19:19

OFFLAKE , ou l'art de passer pour un ... !!!

Le composant est appelé dynamiquement, donc il n'y a pas besoin de l'installer !

Cfr Source :

procedure TMain.FormCreate(Sender: TObject);
var
  i : integer;
begin
  //Creation dynamique de TMidiGen pour les faineant
  // qui veulent pas l'installer
  Player := TMidiGen.Create(self);


No comment sur tes (soi disant) connaissances !

Commentaire de Loda le 07/01/2009 09:19:39

He!

Un programme original!

Bravo!

je regarderais ça un des ces quatre et je te donnerais un avis plus détails sur le code.

A+


Commentaire de offlake le 07/01/2009 09:24:18

j'ai meme pas vue le code, à vrai dire j'ai meme pas telecharger ce code
donc...
BY OFFLAKE

Commentaire de Nicolas___ le 07/01/2009 09:33:57

@OFFLAKE :
Les commentaires sont faits pour les gens :  

*) Qui sont intéressés par le code
*) Qui ont des remarques constructives vis à vis du code
*) Qui ne sont pas en mesure de comprendre le code et demande de l'aide à l'auteur

Quand tu auras rempli une de ces conditions (ça va, c'est pas trop compliqué comme mot ?), tu pourras posté des commentaires ici !

Sinon, passe ton chemin !  

Commentaire de Nicolas___ le 07/01/2009 09:41:17

@ Cari et Loda : Merci

Nico

Commentaire de offlake le 07/01/2009 12:47:30

((Moi ce qui m'éclate , c'est que tu n'arrives toujours pas à faire des zip valide ! (et je te l'ai déjà dis en plus )
Mais tu progresses , encore 2 fichiers inutiles  about.~pas et main.~pas))
((Et les descriptions ... un grand sens de la modestie :)))
c'est quoi ça
tu te moque des gens là
BY OFFLAKE

Commentaire de offlake le 07/01/2009 12:48:15

C'est pour ce commentaire j'ai Reposter avec les miens
BY OFFLAKE

Commentaire de Nicolas___ le 07/01/2009 13:12:11

oui mais j'avais regarder ton code et le commentaire était approprié !

"C'est pour ce commentaire j'ai Reposter avec les miens"

Non... attends tu bafouilles.Tu voulais certainement dire: C'est à cause de ce commentaire que j'ai posté les miens.

ça c'est du français !!!

Commentaire de Caribensila le 07/01/2009 23:28:31

Doué en comprendure de langue étrangère, l'ami Nico ! ! !  lol
Mais, en fait, on s'en fout un peu de l'orthographe, tant que ça reste compréhensible. Mais, hélas, ce n'est pas toujours le cas quand la grammaire est aussi allègrement massacrée!!! Là, ça devient du charabia ( voir l'étymologie ;).

Bref!

En ce qui concerne les JPEG 32 bits, et dans ton cas, ce ne serait pas recommandé de toute façon. Il y a toujours des pertes d'info avec le format JPEG, même avec une qualité de compression à 100%. Et si c'est acceptable pour des couleurs (car l'oeil humain n'est pas très performant sur ce point), ce ne l'est pas pour le stockage de données. En particulier pour de la musique où une fausse note saute aux yeux (si je peux dire).

Par contre, ton bidouillage de byte (sans pensée déplacée) m'a donné une idée sur le même principe que le tien, mais pour des parfums. Coder les composantes d'un parfum de la même façon serait sympa. Imagine une photo de roses qui diffuserait le parfum de la rose ou une photo de Marilyn Monroe qui diffuserait le N°5 de Chanel...
Reste à inventer ce nouveau périphérique. Mais je crois que les Jap' s'y sont déjà attaqué.

Commentaire de Caribensila le 07/01/2009 23:31:33

Pour Delphifr, seul le parfum de la tart'o concombre étant nécessaire et suffisant, ce sera facile.

Commentaire de Caribensila le 07/01/2009 23:40:25

Je viens de coder pour l'odeur de cramé, les mecs !

( Mais ça risque de vous coûter cher en CPU's... )

Commentaire de Caribensila le 08/01/2009 00:15:22

Bref, tu dois diffuser tes images en GIF ou PNG. Formats sans perte de données...

Commentaire de Nicolas___ le 08/01/2009 00:18:22

ok, je ne pensais pas que le byte reservé changerais de valeur aussi (mais alors à quoi sert-il si un tel format existe ? )

Commentaire de Caribensila le 08/01/2009 00:26:54

C'est ce qu'on appelle le canal alpha.
Il ne change pas les couleurs de l'image mais sert souvent à gérer la transparence de l'image. Il y a plusieurs techniques pour cela, mais je ne crois pas qu'il y a de norme.
On l'utilise aussi pour bcp d'autres choses ( comme toi ;)

Commentaire de Nicolas___ le 08/01/2009 00:31:54

En parlant de nos idées de bidouillages :
Au début mon idée était de faire des BmpHyperLink :

on rentre 1 site (www.DelphiFR.com , très belle exemple ^^ ) ,
on traduit ca en caractère ASCII (0-255) et on place chaque lettre dans 1 byte , plus ou moins le même principe mais beaucoup moins marrant ^^

De toutes manières on peut vraiment s'amuser à faire plus ou moins n'importe quoi avec ça, dommage que soit si petit un byte (hum hum hum :) )

  

Commentaire de Caribensila le 08/01/2009 00:52:57

Il y a effectivement bcp de trucs à faire de ce côté-là.

Commentaire de cirec le 08/01/2009 13:06:00 administrateur CS

Salut,

c'est bien vu et pour le moins original ... bravo

mais je trouve qu'il est dommage de se priver du canal alpha (enfin c'est mon avis ^^)
Alors oui personne (ou presque) n'utilise ce format et c'est bien dommage car sont utilisation est très simple et peut se révéler très utile ...

Sinon les infos (Alpha) sont "normées" ... plus ou moins ... lol
de 0 = Transparence à 255 = Opaque avec bien sur toutes les nuances dans cet intervalle !!!

Commentaire de Caribensila le 08/01/2009 14:40:45

C'est un format qui est quand même très utilisé dans les jeux video.
Outre sa rapidité d'affichage par les cartes graphiques modernes (car codé sur 2 mots, il est traité très rapidement par le proc de ces cartes), le canal alpha est souvent utilisé pour stocker la transparence ou la réflexion des textures.

Commentaire de cirec le 08/01/2009 14:59:40 administrateur CS

quand je dis "personne (ou presque) n'utilise ce format"
je pensai sous Delphi et en pur GDI !!!
donc rien à voir avec les nouvelles méthodes d'affichage des cartes récentes.

Commentaire de MAURICIO le 09/01/2009 11:38:35 administrateur CS

Bonjour à tous!

l' idée est originale et le source mérite toute notre attention.

Cependant, son utilisation dans la pratique n' est pas très fonctionnelle car d' abord on est limité en espace par la taille de la propre image et, inversement, la taille réservée peut etre exagérée si on veut garder que quelques bits d' info alors que l' on a une grande image.
Ce serait plus interessant de faire un fichier comprenant les 2 types d' info séparés, ou, 2 fichiers séparés (un fichier bmp et un fichier wav).

Je me demande par contre, s' il est possible de mettre des infos (le son donc) au début ou à la fin d' un fichier bitmap et que celui-ci reste lisible par des programmes comme msPaint ou par notre cher compo TImage.

Maurício

Commentaire de MAURICIO le 09/01/2009 11:41:01 administrateur CS 9/10

Notez que je n' ai pas téléchargé la source car j' en ai pas eu l' utilité pour comprendre l' approche de l' auteur.

L' utilisation de jpeg est hasardeuse comme l' explique si bien notre Cari national.

9/10.

Commentaire de Nicolas___ le 09/01/2009 13:03:04

@ maurico : Oui c'est un grand désavantage ...
mais je me répète cette source a été conçue pour utilisé le byte réservée
(donc malheureusement lié au nombre de pixels du Bitmap )

Pour l'idée du wave lié au bitmap, oui c'est une chouette idée mais maintenant est ce que le bitmap est encore "lisible normalement", là est toute la question !

(Enfin faudrait plus essayé de regarder de Jpeg + Ogg (ou Mp3; enfin du format compressé) , parce que du BMP avec du Wave , ça va faire du lourd ! )  

Et merci pour la note, ça fait toujours plaisir :)

@Cirec : j'ai essayé dans trouver sur le net des Bmp32bits avec le canal alpha mais je n'ai rien trouvé, il y a t-il un endroit pour les télécharger où il faut les faire avec un logiciel comme Photoshop, ou Gimp ?

Commentaire de MAURICIO le 09/01/2009 13:12:21 administrateur CS

La note c' est surtout parce que tu as une image de Akira comme photo!!!

je plaisante ... un peu ... lol

Commentaire de cirec le 09/01/2009 14:26:24 administrateur CS

Salut,

alors oui l'idée de Mauricio (fusionner le BMP avec le Wav) fonctionne parfaitement et les données reste parfaitement lisible ...

@Nicolas___:
pour les BMP32Bit oui il faut les créer soit même ou, plus simple, exporter un PNG en BMP32Bit avec The Gimp par Ex.

Attention le simple fait de convertir un BMP24Bit en BMP32Bit ne fonctionnera pas ... puisque par défaut la valeur de Alpha est à 0 donc transparent :d

Commentaire de Caribensila le 09/01/2009 14:43:19

Le gros handicap du format Bmp 32 bit, c'est quand même l'obésité.

Mais après vérification, le JPEG 2000 est bien capable de compresser sans perte.
Ce format de compression ayant, pour le cas qui nous occupe, beaucoup d'autres avantages et il a est noté qu'il est plus performant que le JPEG.
Perso, je ne comprends pas bien le manque d'intérêt pour ce format de compression qu'on ne rencontre que rarement, parait-il.

Voir:
http://fr.wikipedia.org/wiki/Paquet_(JPEG2000)

Commentaire de cirec le 09/01/2009 15:03:51 administrateur CS

alors pour l'obésité du BMP32Bit j'ai une solution toute simple la compression Zip en toute transparence (encore ^^) qui au final donne un fichier plus petit que la même image en PNG

Bien sur avec cette méthode il n'y a plus de compatibilité directe avec les autres logiciels de traitement d'images mais le but était de pouvoir accéder aux BMP32Bit depuis les ressources d'un programme Delphi sans pour autant occuper trop de place ... et de ce coté le contrat est pleinement rempli et j'irais même plus loin, j'ai l'impression que le chargement, la décompression et l'affichage se font plus vite qu'avec le format PNG.

maintenant pour le JPEG2000 .. j'ai été voir le lien et si tu cliques sur l'image de droite (pour la comparaison) ben le pot qui se trouve à gauche de l'image est plus flou sur le JPEG2000 que sur le JPEG !!!!!!

Commentaire de Nicolas___ le 09/01/2009 15:46:11

@maurico :
si je te dis que j'ai ts les mangas d'akira, tu me mets 10 à tts mes sources :) lol

@cirec : c'est vrai que la compression Zip apporte 1 réel avantage, je n'y avais pas pensé

Commentaire de Caribensila le 09/01/2009 15:50:01

Ah, oui! Tu as raison, Cirec.
Pourtant, dans le texte, il est écrit : « De plus, les contours nets et contrastés sont mieux rendus. »   'faudrait faire une étude précise...

Si on accepte de perdre la compatibilité avec les autres logiciels de traitement d'image, autant créer son propre format avec un fichier binaire et y stocker l'image en mode palettisé. pf8bit serait suffisant pour l'exemple de Nico, par exemple. C'est un peu l'idée que suggère Mauricio. Et là, les inconvénients relevés par Mauricio disparaissent pour arriver à un fichier optimisé.
Et, en plus, la compression Zip de Cirec, la-dessus, et hop! C'est un poids plume!  ;)

En tout cas, je retiens  ZIP vs PNG. Merci de l'info, Cirec !

Commentaire de Bacterius le 10/01/2009 11:59:36

Depuis que j'ai testé ton application Nicolas, je n'ai plus de DirectSound sur ma machine - aucun son ne sort ni ne rentre ... Même pas sur ton appli !

Quelqu'un a-t-il eu ce problème, pour que je sache si ça vient du composant MidiGen ou d'autre-chose qui coinciderait avec le moment de test ?

Merci d'avance :)

Cordialement, Bacterius !

Commentaire de Nicolas___ le 10/01/2009 12:11:52

Désolé mais je pense que tu es le seul a avoir ce problème !

T'es sur que tu t'es pas mis en Mute , ou que ton Volume midi est à zéro ?

J'ai jamais rencontre ce problème ... , bizarre !

Par contre, ce qui ce passe c'est quand on utilise un programme pour lire,créer du midi(dans mon cas guitar pro), mon application ne sort aucun son, mais uniquement mon application !

PS : tu peux tjs réinstaller tes drivers de ta carte sons mais vraiment, je trouve ça un peu zarbi !

Commentaire de Bacterius le 10/01/2009 12:32:02

J'ai tout vérifié tout est réglo côté volume.
Mais par exemple, quand j'ouvre mon pilote de son, j'essaye de réinitialiser :

(voilà le log - enfin une partie)

________________

[Initializing sound driver]

/Begin
Initializing ...
Error initializing : DirectSound could not be initialized !
Cleaning audio buffers ...
Initializing ...
Error initializing : DirectSound could not be initialized !
Bypassing error ...
Loading default wave sample ...
Error loading default wave sample : could not be loaded !
Loading default midi sample ...
Error loading default midi sample : could not be loaded !
Localizing microphone ...
Microphone localized - checking ...
Microphone error : microphone checking failed - [Unknown error] !
Too many errors : Aborting ...
Aborted.
/End
________________

Cordialement, Bacterius !

Commentaire de Bacterius le 10/01/2009 13:04:48

C'est bon Nicolas - en réalité, un virus s'était glissé dans mon D:\Windows\System32\svchost.exe.

Je m'en suis aperçu en redémarrant mon ordinateur, le resident shield (bouclier résident ?) de mon anti-virus m'a informé, et me l'a réparé.

Tout va bien :)

Cordialement, Bacterius !

Commentaire de Francky23012301 le 12/01/2009 13:33:44

Et la tart'o'concombre elle rentre dans le bmp ou f'lau qui fasse un régime ?? :p

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Piano midi [ par sebrs1 ] Comment faire pour jouer des ons de piano en midi?@+Sebrs1PS (qui ne signifie pas playstation :-)) : visitez mon site qui fait ses début svphttp://pro MIDI files [ par magic123 ] Salut tout le monde, J'aurais besoin d'informations pour savoir comment faire pour lire et décoder un midi file, ceci afin d'effectuer quelques modifi Insérer un fichier Midi sous Delphi [ par frutygirls ] Bonjour ! Nous avons un TP à faire en cours et nous souhaitons y ajouter un fond musical, mais nous galèrons ! Nous avons commencé à insérer un objet Fichiers Midi - Bug avec la longueur des chemins ? [ par Udun ] J'ai rencontré une erreur bizarre dans Delphi. En effet, avec le composantMediaPlayer, je lisais des fichiers midi et j'ai rencontré l'erreu Port Jeux (MIDI) avec WinXP [ par PHIL63 ] Bonjour à tous,J'aurais besoin dans une application, de pouvoir détecter si il y a un appuie sur le bouton feu du port joystick (c'est pas p MIDI [ par Nicolas___ ] Voila , hier j'ai telechargé un logicile excellent TS-AudioToMIDI disponible sur www.Telecharger.com le but étant ,pour ceux qui ne l'a Midi : Testeurs pour un composant [ par Francky23012301 ] Salut  à tous,Je viens de faire un composant TMidiCom (Com c'est pour communication ) dont le but est de communiquer avec un appareil midi comme un sy SoundFont [ par Francky23012301 ] Salut à tous,Je suis entrain de faire un soft avec le protocole Midi. J'ai voulu utiliser la dll Bass mais à force de décortiquer cette Dll admet pas Stratégie pour décaler des bits [ par Francky23012301 ] Salut la compagnie ,Je travaille sur les fichiers midi : les évènements midi utilisent un paramètre qui est un DeltaTime et qui peut (et doit ) codé s Problème sur routines de WinMM.dll, gestion de Midi [ par Bacterius ] Bonsoir,je voudrais pouvoir jouer un son midi sans media player.J'ai trouvé sur MSDN quelques infos interessantes dans la DLL WinMM.dll ...mais je ne


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,764 sec (3)

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