Gambas France BETA


Pas de compte ? Incription

Lire des sons Midi GB2 et GB3

12
AuteurMessages
LanoueC#1 Posté le 5/10/2010 à 21:35:00
Bonsoir

que faut il faire pour lire des sons midi en GB2 et GB3
je n'ai pas trouvé grand chose ou mal cherché ! :scratch:

sound.play
j'ai rajouté le composant gb.sdl.sound !

faut il ouvir un fichier son avec open fichier for read

un exemple quelque part?

bien à vous tous

LanoueC
Prokopy#2 Posté le 5/10/2010 à 23:09:00
Kinder PinguiSalut LanoueC,

Malheureusement non, on ne peut jouer du MIDI avec gb.sdl.sound. Il faut dire que ce n'est pas un composant très évolué … :|
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
LanoueC#3 Posté le 6/10/2010 à 13:14:00
merci

Mais alors comment jouer du midi avec GB3 et GB2?
OU
comment jouer des autres format de son ?

Merci
LanoueC
Prokopy#4 Posté le 6/10/2010 à 14:44:00
Kinder PinguiTu peux lire un fichier son WAV, OGG ou MP3 en utilisant la classe Music :

1
Music.Load("mamusique.mp3")'Chargement du fichierMusic.Play() 'On joue la musiqueMusic.Stop() 'On arrête


Tu peux aussi utiliser les propriété Music.Pos et Music.Volume pour avoir la position et le volume de la musique.
Par contre cette classe est plus adaptée pour des musiques de fond que pour un lecteur audio, je tiens à le préciser. ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
manu#5 Posté le 6/10/2010 à 19:04:00
Avec Gambas ca roule !Spheris a fait un exemple ICI pour voir comment jouer des sons

La classe music est plus complète que la classes sound. Elles font toute les deux partie du composant gb.sdl.sound.
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
Prokopy#6 Posté le 6/10/2010 à 21:00:00
Kinder Pingui
La classe music est plus complète que la classes sound.


Elle est surtout complètement différente. Lorsque tu crées un son avec New Sound("monson.wav"), il est entièrement chargé en mémoire. Quand du appelles Music.Load(), il définit juste le fichier à jouer et en charge le premier bout. Le reste du fichier est chargé progressivement depuis le disque dur au fur et à mesure que la musique avance.
Ce afin de ne pas gaspiller de mémoire, car généralement un son est court et a besoin d'être chargé rapidement (un tir de fusil à répétition par exemple), alors qu'une musique de fond est trop longue pour être chargée entièrement en mémoire (on ne peut pas se permettre de flinguer 3Mo comme ça), mais on peut en revanche se permettre de charger le fichier bout par bout étant donné que c'est régulier.

En résumé, si tu veux utiliser des petits effets sonores courts, utilise Sound. Si tu veux jouer une musique de fond, utilise Music.
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
spheris#7 Posté le 7/10/2010 à 23:09:00
Lanouec, et si tu veux vraiment jouer tous les formats audio inimaginables, passe par la commande EXEC en ligne de commande: :
1
DIM mamusique AS stringEXEC ["mplayer", mamusique]

;) ;)
manu#8 Posté le 8/10/2010 à 07:05:00
Avec Gambas ca roule !Mais il faut être sure que Mplayer soit installé car toutes les distrib ne l'installent pas par défaut.

Un petit test de présence sur le PC s'impose au lancement du soft. Autrement c'est le plantage assuré.
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
spheris#9 Posté le 8/10/2010 à 07:48:00
Et que va-t-il se passer? rien, il n'éxcutera pas mplayer renvoyant le message mplayer bin not found mais cela ne plantera pas ton soft.
;)
manu#10 Posté le 8/10/2010 à 12:56:00
Avec Gambas ca roule !ok possible....

mais tester la presence d'un soft est simple. Moi je le fait comme ça :

1
IF Exist("/usr/bin/mplayer") = FALSE THEN Message.Title = "Impossible de Continuer !" Message.Warning(" Il semble que MPlayer ne soit pas installé.\nVeuillez verifier dans votre gestionnaire de paquet\n et installez le." "Quitter") ME.CloseEndif


c'est pas compliqué :)

PS

Pour connaitre l'emplacement de l’exécutable à tester, faire en console :

$ type monexecutable
il vous retournera le chemin complet

Si vous m'avez suivi ca veux dire que l'on pourrais donc tester l’existence de notre logiciel avec EXEC "Type" mpalyer....



Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
LanoueC#11 Posté le 11/10/2010 à 17:47:00
re bonjour

et encore merci pour toutes ces solutions

Si je veux qu'il n'y ait pas de problème de chargement du fichier son après installation à partir du Deb , il faut que le fichier soit dans le dossier programme?

j'ai fais ceci : Music.Load(Application.Path & "/sons/son1.mp3")

normalement, a moins que je me mélange les pinceaux encore une fois, le fichier son devrait être chargé correctement?
mais j'ai une erreur could not read usr/bin/sons/son1.mp3

apllication path ne correspond pas au dossier du programme?

Merci
LanoueC
Prokopy#12 Posté le 11/10/2010 à 17:58:00
Kinder PinguiEssaie plutôt Application.Dir. ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
manu#13 Posté le 11/10/2010 à 17:58:00
Avec Gambas ca roule !Ton application est sous usr/bin/sons/ ????

Là tu dois avoir des problemes de droits sur ces dossiers. L'utilisateur Lanouec ne doit pas avoir de droits.... mais bon, la je reconnais mes difficultés avec linux, donc je risque de te dire une betise . Perso, les appli gambas, je les mets dans le home, c'est plus simple.

Concernant ton code, si tu met ton fichier son dans le dossier de ton application tu le charges comme ceci :

1
Music.Load("son1.mp3")


tu ne précises pas le dossier puisque c'est celui de ton application.
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
LanoueC#14 Posté le 11/10/2010 à 20:28:00
OUi Manu

c'est ce que j'avais fais en premier, mais j'ai voulu mettre mes fichiers dans un dossier et c'est là que cela ne fonctionne plus

music.load("son1.mp3") : c'est OK

mais music.load("/dossiser/son1.mp3") c'est pas OK

Ton application est sous usr/bin/sons/ ????
: c'est àprès installation avec le deb qu'il y a cette erreur


Prokopy :
Music.Load(Application.Path & "/sons/son1.mp3") : fonctionne dans l'IDE et avec l'exécutable mis dans le dossier projet MAIS pas apres installation du DEB

Music.Load(Application.Dir & "/sons/son1.mp3") : erreur "ne peut pas lire depuis home/LanoueC/Documents/sons/son1.mp3" Bizarre le dossier du projet n'est pas dans Documents mais dans Gambas/Gambas2 ???
Prokopy#15 Posté le 11/10/2010 à 20:59:00
Kinder Pingui

music.load("son1.mp3") : c'est OK

mais music.load("/dossiser/son1.mp3") c'est pas OK


Pour que le fichier soit cherché "dans" l'exécutable, il faut que le chemin soit relatif : il ne faut pas mettre de racine, donc pas de "/" devant.
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
12