Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| fichier midi | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: fichier midi Dim 10 Avr 2011 - 9:29 | |
| Quelqu'un a-t'il une information sur les fichiers midi? Si je prends par exemple une partie de fichier midi téléchargé, j'ai ceci: - Citation :
77,84,104,100,0,0,0,6,0,0,0,1,0,192,77,84,114,107,0,0,36,219,0,255,3, 16,66,83,69,81,32,48,32,32,32,32,32,32,32,32,32,32,0,255,89,2,0,0,0, 176,100,0,0,101,0,0,6,2,0,224,0,64,0,176,0,0,0,32,0,0,192,71,0,176,7, 71,0,100,0,0,101,0,0,6,2,0,225,0,64,0,177,0,0,0,32,0,0,193,75,0 Or si je regarde ce qui est dit pour MIDI: - Citation :
- Cette commande MIDI_PLAY N,T joue la note N de type T sur la sortie MIDI.
N doit-être compris ente 21 et 108. N est la fréquence. T est la durée de la note, de 0 à 11 MIDI_VOLUME V: V doit être compris entre 1 et 127.
En regardant chaque octet d'un fichier midi, on voit bien qu'il n'y a pas de correspondance. On a des 0 et des nombres dépassant 127. |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: fichier midi Dim 10 Avr 2011 - 9:33 | |
| Bonjour Essaye avec google A+ | |
| | | Invité Invité
| Sujet: Re: fichier midi Dim 10 Avr 2011 - 11:43 | |
| Je ne comprend pas trop bien. J'ai téléchargé de Google un fichier pour voir. Qu'est-ce que Google pourrait dire sur MIDI et Panoramic, vu que c'est Panoramic qui almente. Les explications ne viendront pas de là a+ |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: fichier midi Dim 10 Avr 2011 - 11:52 | |
| Salut je pensais que tu voulais des infos sur les fichiers Midi donc de la ma démarche pour google et wikipedia | |
| | | Invité Invité
| Sujet: Re: fichier midi Dim 10 Avr 2011 - 12:07 | |
| Bonjour, De toute façon cela n'a pas une grande importance. Je voulais tester le remplacement d'un objet timer (la curiosité), par une musique midi. Mais cela ne marche pas bien. - Code:
-
error_french label picture1,picture2,picture3,picture4,blanc,teste ,mid_tmer font_size 0,12 dim a dim f(10,2) data 60 ,4,62,4,64,6,65,6,67,6
for a=1 to 5 read f(a,1) read f(a,2) next a
picture 1:left 1,10 :top 1, 10 :width 1,100:height 1,100 : color 1,255,255,0 edit 10:left 10,120:top 10,10 :text 10,"0,0" : on_change 10,picture1
picture 2:left 2,10 :top 2, 120:width 2,100:height 2,100 : color 2,0,255,0 edit 20:left 20,120:top 20,120:text 20,"0,0" : on_change 20,picture2
picture 3:left 3,10 :top 3, 230:width 3,100:height 3,100 : color 3,255,0,0 edit 30:left 30,120:top 30,230:text 30,"0,0" : on_change 30,picture3
picture 4:left 4,10 :top 4, 340:width 4,100:height 4,100 : color 4,0,0,255 edit 40:left 40,120:top 40,340:text 40,"0,0" :font_color 40,255,255,255 : on_change 40,picture4
midi_on a=1 gosub mid_tmer end ' ============================================
mid_tmer:
repeat gosub teste midi_play f(a,1),f(a,2) a=a+1:if a=6 then a=1 until scancode=27 midi_off return
teste: text 10,str$(mouse_x_position(1))+","+ str$(mouse_y_position(1)) text 20,str$(mouse_x_position(2))+","+ str$(mouse_y_position(2)) text 30,str$(mouse_x_position(3))+","+ str$(mouse_y_position(3)) text 40,str$(mouse_x_position(4))+","+ str$(mouse_y_position(4)) return ' ============================================ blanc: color 10,255,255,255 : color 20,255,255,255 color 30,255,255,255 : color 40,255,255,255 return
picture1: midi_off gosub blanc color 10,255,255,0 midi_on :return picture2: midi_off gosub blanc color 20,0,255,0 midi_on :return picture3: midi_off gosub blanc color 30,255,0,0 midi_on :return picture4: midi_off gosub blanc color 40,0,0,255 midi_on :return
J'ai du mal à comprendre, alors que je mets MIDI_OFF à chaque bout de code, pourquoi, la totalité du code n'est pas fait. Si ils y en a intéressés par le procédé, peut-être trouveront-ils une solution les notes de musique sont celles de l'exemple de Jack, puisque je ne sais pas me servir d'un fichier. @+ |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: fichier midi Dim 10 Avr 2011 - 15:25 | |
| | |
| | | Invité Invité
| Sujet: Re: fichier midi Lun 11 Avr 2011 - 16:24 | |
| Je te remercie. Seulement ce sujet n'est pas pour moi. Je voulais juste vérifier quelque chose. J'ai laissé le temps passer en pensant que l'un d'entre vous allez réagir. Que Nenni! Bizarre. C'est pourtant vous qui faite des jeux, et qui en avez la passion. C'est en voyant le jeux de Klaus et de Nicola que je me suis posé des questions concernant le son. La réflection que j'avais au départ était de savoir comment le son pouvait jouer en parallèle avec un programme. En dehors de sound, avec la fonction MIDI_PLAY, dans un jeu, théoriquement on devrait pouvoir suivre un code d'animation et jouer de la musique. Alors comment cela marche? Si vous exécutez le programme de teste que j'ai mis, pouvez-vous m'expliquer pourquoi ça ne marche pas? Le programme est au départ celui que j'ai mis iciJe l'ai modifié et fais deux essais. le premier en mettant la boucle repeat/until avant le end, et le second en faisant un démarrage à partir du clic sur la forme, pour avoir un mode évènementiel. Le résultat est que cela ne marche pas. Normalement à l'exécution du programme, en dehors du son, il n'y a que la procédure teste qui fonctionne. la procédure blanc et picture... n'interviennent pas. Alors comment faites-vous? Ne pensez-vous pas qu'il y a un bug? Je vous laisse avec ce problème, et normalement n'interviens plus, vu que cela doit être celui des connaissances de ce sujet. J'ai eu un autre problème avec ce programme. J'avais une erreur signalée incompréhensible: <List Index out of bounds(105)>. J'ai pensais au départ que cela venait du loader qui fait beaucoup de choses, et qui possède des LIST et des MEMOs. Il en était rien. Il s'agit d'une erreur de frappe: j'avais écrit: UNTIL_SCANCODE=27 en mettant un trait de soulignement entre until et scancode par mégarde. de Lao Zu (existence contesté au 6è siècle av.J.-C: - Citation :
- << En faisant que ton âme spirituelle et âme corporelle embrassent l’unité, peux-tu ne jamais quitter ton unité ? En concentrant ton énergie et en atteignant à la souplesse, peux-tu devenir un nouveau-né ?>>
Punition pour ne pas répondre aux problèmes! |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: fichier midi Lun 11 Avr 2011 - 17:10 | |
| - Citation :
- Si je prends par exemple une partie de fichier midi téléchargé, j'ai ceci:
Citation:
77,84,104,100,0,0,0,6,0,0,0,1,0,192,77,84,114,107,0,0,36,219,0,255,3, 16,66,83,69,81,32,48,32,32,32,32,32,32,32,32,32,32,0,255,89,2,0,0,0, 176,100,0,0,101,0,0,6,2,0,224,0,64,0,176,0,0,0,32,0,0,192,71,0,176,7, 71,0,100,0,0,101,0,0,6,2,0,225,0,64,0,177,0,0,0,32,0,0,193,75,0
Or si je regarde ce qui est dit pour MIDI: Citation: Cette commande MIDI_PLAY N,T joue la note N de type T sur la sortie MIDI. N doit-être compris ente 21 et 108. N est la fréquence. T est la durée de la note, de 0 à 11 MIDI_VOLUME V: V doit être compris entre 1 et 127.
En regardant chaque octet d'un fichier midi, on voit bien qu'il n'y a pas de correspondance. On a des 0 et des nombres dépassant 127. Je pense que tu confonds: - un fichier MIDI, - des notes qu'on joue sur la carte son, transformée en instrument MIDI. MIDI_PLAY est fait pour jouer une note d'une certaine durée sur la carte son de ton PC. Un fichier MIDI est codé de manière plus complexe qu'une succession de note/durée. Un fichier MIDI contient un en-tête (quatre octets MThd), puis différentes pistes (identifiées par les octets MTrk), puis les données des pistes. - Citation :
- Exemple de structure d'un fichier MIDI (décodé en texte clair):
MThd 1 4 96 0 TimeSig 4/4 24 8 0 Tempo 500000 MTrk 0 ProgramChange canal=1 program=5 192 NoteOn canal=1 note=76 velocity=32 384 NoteOff canal=1 note=76 velocity=0 384 Meta TrkEnd TrkEnd MTrk 0 ProgramChange canal=2 program=46 96 NoteOn canal=2 note=67 velocity=64 384 NoteOff canal=2 note=67 velocity=0 384 Meta TrkEnd TrkEnd MTrk 0 ProgramChange canal=3 program=70 0 NoteOn canal=3 note=48 velocity=96 0 NoteOn canal=3 note=60 velocity=96 384 NoteOff canal=3 note=48 velocity=0 384 NoteOff canal=3 note=60 velocity=0 384 Meta TrkEnd TrkEnd Je vais regarder ton exemple dès que j'ai un peu de temps. | |
| | | Invité Invité
| Sujet: Re: fichier midi Lun 11 Avr 2011 - 17:46 | |
| Merci pour l'intervention rapide. Cela concerne surtout ceux qui font des jeux. A ce jour j'en ai pas fait un. Le dernier en date est de 1982: un flipper sur un commodore Pet 2001 sur un écran en mode texte. Je ne me souviens pas en avoir fait d'autre. A si des essais de dessins animés sur Oric1 |
| | | Invité Invité
| Sujet: Re: fichier midi Mar 12 Avr 2011 - 6:04 | |
| Je me suis demandé si le problème ne venait pas de la fonction ON_CHANGE de EDIT. J'ai donc fait l'essai avec un objet TIMER qui ne teste que les coordonnées sur le picture jaune. Tant qu'on balade la souris sur le picture jaune, les coordonnées s'affichent. En cliquant sur FORM 0, on lance la musisque midi, et là les branchements du timer et ceux des edit ne fonctionnent pas. - Code:
-
label picture1,picture2,picture3,picture4,blanc,teste ,mid_tmer ,branche font_size 0,12 dim a , b ,a$ dim f(10,2) data 60 ,4,62,4,64,6,65,6,67,6
for a=1 to 5 read f(a,1) read f(a,2) next a
picture 1:left 1,10 :top 1, 10 :width 1,100:height 1,100 : color 1,255,255,0 edit 10:left 10,120:top 10,10 :text 10,"0,0" : on_change 10,picture1
picture 2:left 2,10 :top 2, 120:width 2,100:height 2,100 : color 2,0,255,0 edit 20:left 20,120:top 20,120:text 20,"0,0" : on_change 20,picture2
picture 3:left 3,10 :top 3, 230:width 3,100:height 3,100 : color 3,255,0,0 edit 30:left 30,120:top 30,230:text 30,"0,0" : on_change 30,picture3
picture 4:left 4,10 :top 4, 340:width 4,100:height 4,100 : color 4,0,0,255 edit 40:left 40,120:top 40,340:text 40,"0,0" :font_color 40,255,255,255 : on_change 40,picture4 edit 14:left 14,150:top 14,50:color 14,255,255,204 on_click 0, mid_tmer midi_on a$="en bougeant la souris sur le picture du haut, les paramètres sont affichés sur l'edit en écart rajouté avec l'objet TIMER"+chr$(13) a$=a$+"en cliquant sur la forme 0, on lance le teste qui normalement doit montrer les coordonnées dans les edits" message a$ a=1 timer 15:timer_interval 15,100:on_timer 15,branche end ' ============================================ branche: text 14,str$(mouse_x_position(1))+","+ str$(mouse_y_position(1)) return
mid_tmer: repeat b=0 gosub teste midi_play f(a,1),f(a,2):a=a+1:if a=6 then a=1 if b=0 then gosub blanc until scancode=27 midi_off return
teste: text 10,str$(mouse_x_position(1))+","+ str$(mouse_y_position(1)) text 20,str$(mouse_x_position(2))+","+ str$(mouse_y_position(2)) text 30,str$(mouse_x_position(3))+","+ str$(mouse_y_position(3)) text 40,str$(mouse_x_position(4))+","+ str$(mouse_y_position(4)) return ' ============================================ blanc: color 10,255,255,255 : color 20,255,255,255 color 30,255,255,255 : color 40,255,255,255:b=1 :return picture1: gosub blanc:color 10,255,255,0 :return picture2: gosub blanc:color 20,0,255,0 :return picture3: gosub blanc:color 30,255,0,0 :return picture4: gosub blanc:color 40,0,0,255 :return |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: fichier midi Mar 12 Avr 2011 - 8:23 | |
| Bonjour cosmos, Je ne pourrais pas vraiment t'aider concernant la norme midi, la seule chose que je peut te dire c'est que pour moi, midi signifie : c'est l'heure d'aller becqueter ! Par contre dans ton prog tu pourrais faire ceci : - Code:
-
label FinProg, .... timer 300:timer_off 300:timer_interval 300,100 on_timer 300,mid_timer on_close 0,FinProg ... timer_on 300 END
mid_timer: timer_off 300 b=0 gosub teste midi_play f(a,1),f(a,2):a=a+1:if a=6 then a=1 if b=0 then gosub blanc timer_on 300 return
FinProg: midi_off timer_off_all terminate Avec cette modif, chez moi ça fonctionne très bien... (la fermeture du form 0 n'est plus bloqué par le repeat-until). Le problème de mise à jour du text 14 viendrait peut être qu'il n'y a qu'un seul processus qui tourne. La fonction midi_play doit être bloquante. Je ne sais pas comment sont réellement gérés les timers sous Panoramic, mais je suppose que pendant l'execution de midi_play, les autres timers (dans ce cas le 15) doit être en attente... Peut être que pour contourner ce problème, il faudrait en fait lancer 2 processus (un pour la musique et l'autre pour le jeu). Et faire communiquer les processus entre-eux avec par exemple la DLL de Klaus... voir ici: https://panoramic.1fr1.net/t1012-communication-entre-programmes-panoramicD.J Peters avait utilisé une autre astuce : https://panoramic.1fr1.net/t1033-playsoundonce-playsoundlooped-stopsound | |
| | | Invité Invité
| Sujet: Re: fichier midi Mar 12 Avr 2011 - 9:48 | |
| Bonjour Nardo. J'ai pas pensé à préciser qu'il fallait cliquer sur escarpe pour arrêter le teste, ce qui rendre la main. La fermeture n'était pas mon problème.
En fait comme je l'ai dit, j'avais la curiosité de savoir si on pouvait mettre une musique sur un jeu en continu, et voir comment cela se comportait avait les outils Panoramic. Et c'est là que je ne comprend pas, vu que les testes ne fonctionnent pas. Autrement en dehors de la curiosité, je n'ai pas l'utilité de ces fonctions.
Je trouve seulement pas normal que les branchements ne se fassent pas, vu que dans la boucle de "play midi", il y a un gosub teste, et que celà soit cour-circuité par MIDI_PLAY.
Dans d'autre basic, il y a parfois deux modes: synchrone et asynchrone. Comme Panoramic a pour principal fonction de faire des jeux, Jack ayant à peu près dit: "je suis certain que ce qu'il en restera, ce seront les jeux" (je cite de mémoire), cela me surprend que ça ne marche pas. Maintenant c'est à vous de poser des questions, ou de dire que cela vous parait normal. (personnellement ce n'est pas mon cas). |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: fichier midi Mar 12 Avr 2011 - 10:23 | |
| En fait si tu appliques les modifs que j'ai mis, cela fonctionne... J'ai bien vu que la touche Escape permettait de sortie, mais je trouve plus propre de fermer l'applic avec le bouton standard de fermeture de fenêtre.
Les branchements se font mais tout est ralenti par l'execution de midi_play qui est bloquant. Je ne vois que la solution du lancement d'un autre processus pour palier à ce problème...
| |
| | | Contenu sponsorisé
| Sujet: Re: fichier midi | |
| |
| | | | fichier midi | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |