Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Java ME] Pitch Control

Pagina: 1
Acties:

  • Tha Ertenal
  • Registratie: September 2002
  • Laatst online: 31-05-2022
ik ben bezig met een spel voor op je mobiel, wat lijkt op een soort guitar hero. Er speelt nu een AMR bestand af als nummer en tegelijk een MIDI bestand waar ik vanalles uit wil halen, waaronder de Pitch Control. Nu moet het zo werken, dat er bij een bepaalde frequentie een nootje van boven komt. Dus bijvoorbeeld bij 42000Hz. Dit is wat ik nu heb:

code:
1
2
3
4
5
6
InputStream isMID = getClass().getResourceAsStream("sosRescueMe.mid");
Player pMID = Manager.createPlayer(isMID, "audio/midi");
pMID.realize();
pMID.prefetch();

pitchControl = (PitchControl) pMID.getControl("PitchControl");


en nu moet er dus een soort while loop in komen die constant checkt of de frequentie al 42000hz is. Daarvoor heb ik zoiets gemaakt:

code:
1
2
3
4
5
6
7
8
int x = 0;
while(go != false) {
  x++;
  System.out.println(pitchControl.getPitch());
  if(x == 4000) {
    go = false;
  }
}

hij geeft nu dus een aantal keer de pitch van het nummer. Maar ik krijg steeds een 0hz in mijn system.out.println. Heeft iemand misschien enig idee hoe ik dit wel kan aanpakken? ik loop namelijk vast..

AMD Phenom II X6 1090T | 2x 4GB Kingston | Geforce GTX 560TI | Creative I-Trigue L3450


  • remco_k
  • Registratie: April 2002
  • Laatst online: 12:52

remco_k

een cassettebandje was genoeg

PitchControl!=frequentie.

Dat ie 0 geeft klopt.
Pitch = 0% , track loopt op orginele snelheid.
Stel je de pitch in op 10% loopt de track 10% sneller.
Stel je de pitch in op -10% loopt de track 10% langzamer.

Ik denk dat je midi niet kan pitchen.

@hieronder:
Zelfde mening, meer woorden. :w

Edit:
En dan zeg ik nog maar even niks over de merkwaardige while lus...
Weleens van 'for' gehoord?

[ Voor 68% gewijzigd door remco_k op 31-03-2008 14:55 ]

Alles kan stuk.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
De pitch die je daar krijgt is waarschijnlijk de pitch van +7 tot -7, of van +100% tot -100% (of iets dergelijks) waarop het hele nummer afspeelt. Als je denkt met 5 regels code de juiste noten ergens uit een golfvorm te kunnen halen (je hebt het immers over Herzen) dan heb je het mis :D
Maar omdat je (lucky you) met midi werkt moet je wel de huidige 'noot' kunnen uitlezen omdat midi niet (veel) meer is dan een verzameling noten/duratie/etc. Maar dat heeft (zover ik weet dan) geen drol met pitch te maken.

Dan heb je overigens ook niets met Hertzen te maken (42000Hz is een verrekkes hoge noot, die zul je sowieso niet horen, boven de 20Khz hoor je al amper als je ouder bent dan 25 ofzo). En dan nog is een instrument nooit "zuiver" X-herz. Het is altijd een samenstelling van vele harmonieuzen. Je kunt niet stellen dat een fluit/piano/gitaar/whatever op toon "C" X-herz is.

Al met al dus een gevalletje: zorg eerst dat je weet waar je het over hebt voor je er aan begint ;) :Y)

[ Voor 35% gewijzigd door RobIII op 31-03-2008 14:49 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 13:04

BCC

RobIII schreef op maandag 31 maart 2008 @ 14:42:
Maar omdat je (lucky you) met midi werkt moet je wel de huidige 'noot' kunnen uitlezen omdat midi niet (veel) meer is dan een verzameling noten/duratie/etc. Maar dat heeft (zover ik weet dan) geen drol met pitch te maken.
Midi heeft een pitch modulator / controller, maar die maakt eigenlijk alleen de toon hoger of lager. Wat je er hiermee zou willen doen weet ik verder ook niet :)

[ Voor 29% gewijzigd door BCC op 31-03-2008 15:16 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
BCC schreef op maandag 31 maart 2008 @ 15:15:
[...]

Midi heeft een pitch modulator / controller, maar die maakt eigenlijk alleen de toon hoger of lager. Wat je er hiermee zou willen doen weet ik verder ook niet :)
Dan pitch je de noot of (misschien wel) het hele nummer; maar dan heb je nog steeds niet de "noot" te pakken waar de TS naar op zoek is.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij