ich fasse zusammen:
der threadersteller möchte eine app für das iphone OS erstellen. welche es ermöglicht die eigene stimme in eine tonleiter zu transponieren um diese dann mit einem piano am display anzusteuern und abzuspielen.
edit start
SELBSTZENSUR
edit end
@typ²
ich nehm mal an objective c bietet innerhalb des iphoneOS eine soundapi an. damit kannst du wohl aufnehmen und die daten auch irgendwie manipulieren.
du wirst dir die API gut anschaun müssen, wenn du das nicht eh schon getan hast.
also machen wir den einfachsten use-case: ein grundton und 7 oder 8 (ganz/halb)tonschritte (also ein tonleiter einer octave inkl oder eckl grundton in der nächsten octave).
dazu müssen wir mal den grundton aufnehmen. den speichern wir irgendwo (keine ahnung was da objectiveC und das OS da bieten/zulassen).
danach musst du den grundton eben 8 mal um einen gewissen wert pitchen und wieder speichern.
um welchen wert du pitch ergibt soch aus ganz einfachen regeln. c1 hat immer halb soviel hz wie ein c2 etc. eine oktave bedeutet also immer eine verdoppelung der hz/s.
wie du das mit objC machst weiß ich nicht, aber schau mal da im sourcecode nach:
http://github.com/zoul/Finch . da wirst du sicher einiges finden, bzw. sind da sicher leute beteiligt die wissen worums geht und dir wirklich helfen können.
zum schluss musst du nur noch das piano darstellen und jeden event den es verschickt (bei tasten/fingerdruck) richtig verarbeiten. je nach pianonote muss dann halt der richtige sound abgespielt werden.
aber beachte dass du mit tonleitern nicht die ganze pianotastatur abdeckst, sondern immer nur einen harmonischen teil bereich. aber das ist ja grundsätzliche musiktheorie über die du bei so einem projekt ohnedies bescheid wissen müsstest.
viel spaß auf jeden fall
-------------------------
edith die zweite, nach der selbstzensur, noch die selbstkorrektur:
ich hatte angenommen du möchtest die stimme des users als grundton verwenden.
wenn du stattdessen schon eine vorgefertigte tonleiter mitliefern willst vereinfacht sich das ganze.
dann kannst du wie vorgeschlagen einen sampler verwenden der für dich den grundton transponiert, eine tonleiter mit diesen sampler einspielen, und das ganze in eine audiodatei bouncen. dann noch die einzelnen töne rausschneiden und als resourcen in der app hinterlegen.
oder du verwendest einen audioeditor (wär meine empfehlung, weil du dazu nicht ganz soviel erlernen musst wie bei der bedienung eines sequenzers mit sampler).
ich kenne leider keine freeware editoren die ich empfehlen kann (andere hier?), aber zb wavelab und soundforge können das sicher und bieten(zum. wavelab) auch demo/lite versionen die reichen sollten.
du öffnest einfach den grundton und pitcht ihn (meist musst du die audiodatei/wellenform markieren (strg-a bei win) und dann im kontextmenu die entsprechende funktion aufrufen). danach speicherst du die audiodatei unter neuen namen, und das wiederholst du für jede note die du transponieren möchtest. dann wieder in die app resourcen damit und fertig.
btw. ich wäre trotzdem für die methode die dem user das erstellen des grundtons erlaubt. aber das erfordert auch mehr programmier-knowhow. keine ahnung ob du das hast bzw. bereit bist das zu lernen.
edith3:
einer geht noch, hier eine frequenztabelle von a0 bis c8. sollte beim pitchen helfen
[Geändert von chl am 06.07.2010 17:41 Uhr]
[Geändert von <a href="https://recording.de/myRecording/Profil/chl">chl</a> am 06.07.2010 17:57 Uhr]