Bonjour, alors je suis sur Processing 3.1.1 sous W10 avec normalement la dernière de Beads.
Sinon sur le lien suivant vous trouverez une portion de code qui m'affiche un code d'erreur très long qui dit ne pas trouver la source, cependant le code fonctionne et je cherche juste à empecher cette erreur :
http://paste2.org/KcW9KGjH
De plus j'ai un autre problème qui est lors du démarrage de mon programme, parfois j'ai cette erreur au lancement lors du chargement de ma musique (elle fait 10Mo) :
java.lang.RuntimeException: Waited 5000ms for: <6c8aac95, 624d5f74>[count 2, qsz 0, owner <main-FPSAWTAnimator#00-Timer0>] - <main-FPSAWTAnimator#00-Timer0-FPSAWTAnimator#00-Timer1> at processing.opengl.PSurfaceJOGL$2.run(PSurfaceJOGL.java:449) at java.lang.Thread.run(Thread.java:745)
Et sinon est-il possible de faire tourner un son en boucle comme avec .loop de minim ?
Merci
Hors ligne
salut
j'y vais seulement de mémoire mais dans ton void setup tu a ton String audioFileName puis un savePath
sa ne serais pas plutôt loadPath ? save étant pour sauvegarder un fichier et le "data/musique/Musique_Menu.mp3" ne devrait t-il pas être entre les guillemet ex: loadPath("data/musique/Musique_Menu.mp3");
de plus me semble que quand j'avais essayer la libraires bead pour faire jouer le morceau sa prenais ex:Musique_menu.play(); et pour l'arreter Musique_menu.stop();
mais comme je te dit je peux me tromper sa fais longtemps que j'ai utiliser cette librairie
et si tu a juste besoin d'un fichier son a jouer en boucle qui n'est rien de bien compliquer tourne toi vers la librairie sound de processing qui est beaucoup plus facile a mettre en œuvre
sur ce bien a toi
Danny
Hors ligne
Salut, Imdidi
La fonction loadPath n'existe pas donc je ne vois pas vraiment ce que tu veux dire.
J'utilise déjà c'est deux fonction pour jouer le morceau ^^
Je vais regarder cette librairie pour voir si elle me permet de faire ce que je veux.
Merci de ton aide
Hors ligne
D'accord la librairie Sound à l'air pas mal mais je ne vois pas de fonction pour changer le volume ou le gain.
EDIT : Finalement Sound n'est pas assez développé, du coup retour à la case départ
Dernière modification par hekmil (2016-05-22 16:17:46)
Hors ligne
salut
voici l'exemple numero 4 de bead il s'appelle sample player qui est un lecteur de fichier audio
voila le code je t'invite a l’étudier et le modifier pour tes besoins remarque que tu na pas besoin de savepath seulement de dire le lien ou est ton fichier
sur ce bonne continuation
Danny
import beads.*; import java.util.Arrays; AudioContext ac; void setup() { size(300,300); ac = new AudioContext(); selectInput("Select an audio file:", "fileSelected"); } /* * This code is used by the selectInput() method to get the filepath. */ void fileSelected(File selection) { /* * Here's how to play back a sample. * * The first line gives you a way to choose the audio file. * The (commented, optional) second line allows you to stream the audio rather than loading it all at once. * The third line creates a sample player and loads in the Sample. * SampleManager is a utility which keeps track of loaded audio * files according to their file names, so you don't have to load them again. */ String audioFileName = selection.getAbsolutePath(); SamplePlayer player = new SamplePlayer(ac, SampleManager.sample(audioFileName)); /* * And as before... */ Gain g = new Gain(ac, 2, 0.2); g.addInput(player); ac.out.addInput(g); ac.start(); /* * Note there is a lot more you can do. e.g., Varispeed. Try adding this... Envelope speedControl = new Envelope(ac, 1); player.setRate(speedControl); speedControl.addSegment(1, 1000); //wait a second speedControl.addSegment(-0.5, 3000); //now rewind * */ } /* * Here's the code to draw a scatterplot waveform. * The code draws the current buffer of audio across the * width of the window. To find out what a buffer of audio * is, read on. * * Start with some spunky colors. */ color fore = color(255, 102, 204); color back = color(0,0,0); /* * Just do the work straight into Processing's draw() method. */ void draw() { loadPixels(); //set the background Arrays.fill(pixels, back); //scan across the pixels for(int i = 0; i < width; i++) { //for each pixel work out where in the current audio buffer we are int buffIndex = i * ac.getBufferSize() / width; //then work out the pixel height of the audio data at that point int vOffset = (int)((1 + ac.out.getValue(0, buffIndex)) * height / 2); //draw into Processing's convenient 1-D array of pixels vOffset = min(vOffset, height); pixels[vOffset * height + i] = fore; } updatePixels(); }
Dernière modification par imdidi (2016-05-24 00:35:00)
Hors ligne
J'ai déjà étudier les exemple de processing, et je souhaite faire un jeu pas un programme où l'utilisateur doit rentrer pour la jouer.
Cdlt
Hors ligne
En gros j'ai trouvé ce code sur Beadsproject http://paste2.org/CvO7c6tE mais c'est du Java, je souhaiterais utiliser la même manière de faire une musique en loop sur Processing.
Hors ligne
Bonjour,
Ce que tu as trouvé, ce sont les sources de Beads. Pour faire une boucle il faut juste insérer la ligne suivante dans le setup(); juste après la déclaration du player :
player.setLoopType(SamplePlayer.LoopType.LOOP_FORWARDS);
Hors ligne
Merci effectivement le son est bien loopé
Du coup pour la longue erreur que j'avais posté au début, une idée ?
Hors ligne
salut
dans le code que je t'ai donner tu aurais pu juste commenter le "selectinput" dans le void setup et mettre ton lien de fichier pour le faire jouer c'est pour cela que je t'ai dit étudie le. Et tous aurais probablement fonctionner que ce soit un jeu ou un programme le code est le même.
fais un teste et essaye ça
Musique_menu = new AudioContext(); //String audioFileName = savePath("") +"data/musique/Musique_Menu.mp3"; SamplePlayer player = new SamplePlayer(Musique_menu, SampleManager.sample("data/musique/Musique_Menu.mp3")); g = new Gain(Musique_menu, 1, 0.025); g.addInput(player); Musique_menu.out.addInput(g); Musique_menu.setKillOnEnd(); // Cette fonction n'est pas reconnu non plus }
bonne journée
Danny
Dernière modification par imdidi (2016-05-24 15:46:18)
Hors ligne
Non j'ai déjà essayer cette façon mais lorsque je lance le programme j'obtiens NullPointer Exception, il faut bien mettre un sketchPatch ou save ou machin quelque part. Le problème c'est lorsque je lance le programme parfois il met trop de temps a charger la musique et le programme crash
Et je parlais aussi de l'erreur lorsque je contrôle mon gain avec ControlP5
Dernière modification par hekmil (2016-05-24 22:02:22)
Hors ligne
salut
essaye sa alors
Musique_menu = new AudioContext(); String audioFileName = sketchPath("") +"data/musique/Musique_Menu.mp3"; SamplePlayer player = new SamplePlayer(Musique_menu, SampleManager.sample(audioFileName)); g = new Gain(Musique_menu, 1, 0.025); g.addInput(player); Musique_menu.out.addInput(g); //Et ICI CE N'EST PAS L'AUDIO CONTEXT A DECLARER MAIS LE PLAYER // Musique_menu.setKillOnEnd(); // Ca Cest Pas bon player.setKillOnEnd(false);
je ne comprend pas comment ton morceau de musique peux ce lancer car ca prend un musique_menu.start() a quelque part
a moins que tu n'aille pas donner tout le code
tien nous au courant
Danny
Hors ligne
Oui j'ai bien un start(); que j'avais rajouté après en effet ^^
Hors ligne
ok et le bout de code a tu resolut ton probleme ?
Hors ligne
Ba c'est la même chose que ce que j'ai ^^
Hors ligne