» codelab : http://codelab.fr/accueil » Forum : Processing : http://codelab.fr/processing » Beads + Control P5 : http://codelab.fr/6311 Ceci est la version imprimable d'un sujet du forum, pour retourner à la version complète : Beads + Control P5 |
hekmil — 2016-05-18 18:13:51 |
Bonjour, alors je suis sur Processing 3.1.1 sous W10 avec normalement la dernière de Beads. 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 ? :) |
imdidi — 2016-05-20 23:05:31 |
salut |
hekmil — 2016-05-21 14:17:39 |
Salut, Imdidi |
hekmil — 2016-05-21 14:26:06 |
D'accord la librairie Sound à l'air pas mal mais je ne vois pas de fonction pour changer le volume ou le gain. |
imdidi — 2016-05-24 00:34:03 |
salut 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(); } |
hekmil — 2016-05-24 10:08:17 |
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. |
hekmil — 2016-05-24 10:52:12 |
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. |
Mushussu — 2016-05-24 12:58:37 |
Bonjour, player.setLoopType(SamplePlayer.LoopType.LOOP_FORWARDS); |
hekmil — 2016-05-24 13:46:11 |
Merci effectivement le son est bien loopé :D |
imdidi — 2016-05-24 15:45:14 |
salut 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 |
hekmil — 2016-05-24 21:27:25 |
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 |
imdidi — 2016-05-25 22:27:09 |
salut 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 |
hekmil — 2016-05-26 13:01:51 |
Oui j'ai bien un start(); que j'avais rajouté après en effet ^^ |
imdidi — 2016-05-26 20:01:43 |
ok et le bout de code a tu resolut ton probleme ? |
hekmil — 2016-05-26 20:03:12 |
Ba c'est la même chose que ce que j'ai ^^ |
imdidi — 2016-05-26 23:19:45 |
Ok donc le savepath tu la remplacer pour sketchpath et ton musique menu.setkillonend tu la remplacer par player.setkillonend et ca fais toujour la meme chose |
hekmil — 2016-05-26 23:34:11 |
Enfaite la tout ce que je cherchais marche maintenant il y a juste l'erreur lorsque j'utilise mon curseur cP5 |
imdidi — 2016-05-27 00:01:19 |
0ok ben moi jarrete la je sais pas dequoi tu parle et je trouve ca tres dur de te suivre |
hekmil — 2016-05-27 00:06:56 |
Heu ok ^^ C'est juste mon void Musique (float v) { g.setGain(v/1000)} |
imdidi — 2016-05-27 01:28:29 |
tien voila j’espère que ça auras pu t'aider import controlP5.*; import beads.*; int MusiqueVolume = 50; ControlP5 cp5; AudioContext Musique_menu; Gain g; void setup() { cp5 = new ControlP5(this); cp5.addSlider("MusiqueVolume") .setPosition(300, 236) .setSize(250, 23) .setRange(0, 100) // on choisit l'interValle .setLabel(""); 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); player.setKillOnEnd(false); } void draw () { g.setGain(MusiqueVolume / 1000); } |
hekmil — 2016-05-28 12:51:10 |
Effecitvement vu que j'utilisais dans une fonction mon g.setGain() que je n’appelais jamais la déclaration de variable était inutile, si je le met dans le draw tout fonctionne sans problème, merci ;) |