Autore Topic: Aiuto Guitar Simulator  (Letto 1737 volte)

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Aiuto Guitar Simulator
« il: 30 Agosto 2012, 15:55:41 CEST »
0
Ciao ragazzi avrei bisogno di un aiutino un punto di partenza qualcosa  :D
Vorrei realizzare un app tipo questa

praticamente selezioni le corde poi dai una strisciata e ti emette il suono desiderato,ma non so proprio da dove partire,dove reperire l'audio etc anche un minimo picolissimo tutorial andrebbe piu che bene  O:-)
Ciao e grazie
per qualsiasi aiuto possiate darmi.
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Aiuto Guitar Simulator
« Risposta #1 il: 23 Agosto 2013, 11:25:01 CEST »
0
up
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline matttt

Re:Aiuto Guitar Simulator
« Risposta #2 il: 23 Agosto 2013, 11:29:35 CEST »
0
up
UP di un post di 1 anno fa? Wow :)

L'immagine cmq non è più disponibile vedo.

Entrando in dettaglio che informazioni vorresti?
Potresti intanto iniziare con un'app con una semplice View con un'immagine che visualizza le corde e poi fare delle prove per gestire i movimenti touch.

Prova questo link della documentazione - ti spiega come lavorare con i touch di scorrimento:
Tracking Movement | Android Developers
Le mie apps su Google Play Store:

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Aiuto Guitar Simulator
« Risposta #3 il: 23 Agosto 2013, 11:46:40 CEST »
0
e lo so scusami, sono tornato ora su un progetto vecchio  :-)
non mi interessa la simulazione touch, mi servirebbe solo la parte riguardante il suono, nel senso io inserisco c3 e lui mi suona la corda c3 alla posizione x.
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline matttt

Re:Aiuto Guitar Simulator
« Risposta #4 il: 23 Agosto 2013, 11:58:55 CEST »
0
e lo so scusami, sono tornato ora su un progetto vecchio  :-)
non mi interessa la simulazione touch, mi servirebbe solo la parte riguardante il suono, nel senso io inserisco c3 e lui mi suona la corda c3 alla posizione x.
Ora che ci penso... credo ci siano già app che fanno una cosa simile. Una volta un mio amico ne stava usando una che aveva suoni campionati da un Ukulele :)

Immagino che usare dei semplici wav / ogg dei suoni delle singole singole corde non ti ispiri molto eh?
Le mie apps su Google Play Store:

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Aiuto Guitar Simulator
« Risposta #5 il: 23 Agosto 2013, 12:29:06 CEST »
0
mah guarda senza essere modesto sono un discreto programmatore quindi avendo uno zippone pieno di wav non andrebbe male, ma si trova uno zippone con ogni "pizzicata" di ogni singola corda e con gli accordi fra esse?
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline matttt

Re:Aiuto Guitar Simulator
« Risposta #6 il: 23 Agosto 2013, 12:57:49 CEST »
0
mah guarda senza essere modesto sono un discreto programmatore quindi avendo uno zippone pieno di wav non andrebbe male, ma si trova uno zippone con ogni "pizzicata" di ogni singola corda e con gli accordi fra esse?
Non metto in dubbio la tua abilità, metto in dubbio il fatto che un'app simulatore di chitarra che ti fa soltanto partire dei wav in base a degli eventi touch potrebbe non essere così "sfiziosa"
Io almeno pretenderei qualcosa di più... tipo tocco parzialmente una corda e sento un suono un po' diverso, scorro un po' verso l'alto una corda e sento qualcos'altro. Ma forse sono io che pretendo troppo, mi sa che è un casino :)

Per i suoni non hai modo di registrarli? Ho paura sia difficile trovarli già pronti, campionati bene e royalty-free (sempre che consideri questo ultimo aspetto necessario...)
Le mie apps su Google Play Store:

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Aiuto Guitar Simulator
« Risposta #7 il: 23 Agosto 2013, 14:46:15 CEST »
0
le singole corde le trovi royality free ma a me interessano tutti gli accordi le combinazioni e anche come dici tu ogni punto della chitarra, in realtà non verrebbe usato il touch ma una cosa piu figa ma senza questi suoni non posso farci niente, forse con un midi generator si possono fare tutte le combinazioni che vuoi mmm
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline matttt

Re:Aiuto Guitar Simulator
« Risposta #8 il: 23 Agosto 2013, 15:22:50 CEST »
0
Penso proprio che la parte più difficile sia proprio questa di trovare il modo giusto per generare i suoni in modo flessibile in base ai movimenti che fai nella app.
Inizialmente pensavo volessi usare qualche funzione per generare i suoni manualmente in base alle frequenze, ma poi ripensandoci penso sia assai complicato riprodurre un suono che assomiglia a quello di una chitarra... al massimo fai dei toni o dei toni un po' modulati, ma non tanto di più.

Android + Midi... boh. Hai provato a fare qualche ricerca?
Così a sensazione ho paura che non sia una strada agevole.
Vedo che tra i formati media supportati c'è midi ma penso che non vada molto più in la del play di un .mid
Le mie apps su Google Play Store:

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Aiuto Guitar Simulator
« Risposta #9 il: 23 Agosto 2013, 15:30:08 CEST »
0
in realtà qualche app carina di guitar simulator c'è forse la strada migliore e chiedere a chi l'ha fatta  :-)
il midi dovrebbe generare qualsiasi suono in base alla nota o all'accordo che gli passi ma dubito fortemente che sia stato implementato tramite qualche libreria.
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Aiuto Guitar Simulator
« Risposta #10 il: 28 Agosto 2013, 12:59:29 CEST »
0
La latenza su dispositivi android, in particolar modo pre-jelly bean ma purtroppo anche jelly bean, è spaventosa. Si arriva a picchi di 200-300ms. Ho letto che su specifici dispositivi (nexus), con android 4.2/4.3 sono riusciti ad abbassare da 100ms a circa 12ms.

A meno che non vi sia una ragione il consiglio è quello di usare dei campioni. Per le diverse note anche se è brutto puoi sempre cambiare il pitch...

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Aiuto Guitar Simulator
« Risposta #11 il: 28 Agosto 2013, 14:52:53 CEST »
0
La latenza su dispositivi android, in particolar modo pre-jelly bean ma purtroppo anche jelly bean, è spaventosa. Si arriva a picchi di 200-300ms. Ho letto che su specifici dispositivi (nexus), con android 4.2/4.3 sono riusciti ad abbassare da 100ms a circa 12ms.

A meno che non vi sia una ragione il consiglio è quello di usare dei campioni. Per le diverse note anche se è brutto puoi sempre cambiare il pitch...
purtroppo non ho mai fatto neinte del genere infatti cercavo un esempio o qualcosa di OS(open source) ma niente da fare a quanto pare non c'è niente in giro .-.
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Aiuto Guitar Simulator
« Risposta #12 il: 28 Agosto 2013, 14:57:49 CEST »
0
Se usi un soundpool c'è questo metodo:

SoundPool | Android Developers

Se usi una audio track invece:

AudioTrack | Android Developers

EDIT: in pratica tu suoni il campione più o meno velocemente, questo dà l'effetto di aumentare/diminuire la tonalità.
Sicuramente in giro trovi le formule precise per sapere, partendo dalla frequenza di campionamento originale, quella che corrisponde ad una nota specifica.

Utilizzando più campioni e giocando col pitch puoi ottenere dei risultati decenti se le note che simuli sono vicine a quella originale. Ovviamente cambiando il playback rate cambia la durata della nota.

 :-)
« Ultima modifica: 28 Agosto 2013, 15:00:23 CEST da undead »

Offline Francymad

  • Nuovo arrivato
  • *
  • Post: 41
  • impossible is nothing.
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet 7 Pollici 2.2.3
  • Play Store ID:
    Francymad
  • Sistema operativo:
    Windows 7,XP
Re:Aiuto Guitar Simulator
« Risposta #13 il: 28 Agosto 2013, 15:07:20 CEST »
0
e questo l'avevo capito  :-)
più che altro dove trovo i campioni audio questo è il mio blocco piu grande  :-\
Da un certo punto in avanti non c'è più modo di tornare indietro. E' quello il punto al quale si deve arrivare. Kafka

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Aiuto Guitar Simulator
« Risposta #14 il: 28 Agosto 2013, 16:16:52 CEST »
0
Se fossi in te me li farei da solo.

Prendi un programma che emula una chitarra, ti fai una canzone con una sola nota e te la esporti in .wav. Una per ogni nota che ti serve. Parti da C-4 e vai a salire.

A quel punto te li manipoli come vuoi con qualsiasi programma di editing. Quando sei soddisftatto del risultato (ovviamente non ci lasciare 200ms di latenza all'inizio/fine) converti in mp3 o ogg o altro formato che ti resta comodo per la app e poi usa soundpool/audiotrack e aggiusta il pitch alla bisogna.

Per il valore del pitch una frequenza di 440 a 44100 khz è un A-4 ma se la suoni a metà velocità hai una frequenza di 220. Questo equivale a scendere di una ottava, 12 semitoni.
In breve l'algoritmo per cambiare tonalità deve basarsi sul cambio di frequenza. La frequenza che vuoi ottenere la trovi considerando il cambio di frequenza per semitono che è banalmente:

2^(1.0f/12.0f)

Partendo quindi da una nota di riferimento (che in basso è C-4 in alto è la nota più vicina che hai generato) puoi calcolarti la nuova frequenza.

Con:

source_rate - playback rate del tuo file, che supponiamo essere 44100hz
source_freq - la frequenza della tua nota di riferimento
target_freq - la frequenza della nota che vuoi suonare, rappresentata da source_freq+(2^(numerosemitonididistanza/12.0f)) o source_freq-(2^(numerosemitonididistanza/12.0f))
target_rate -  è l'incognita che devi trovare

imposti questa relazione:

source_freq:source_rate=target_freq:target_rate

Che nel caso indicato di una ottava e passando quindi da A-4 ad A-3:

440:44100=220:x

x = 22050

Se hai lasciato 50ms di latenza occhio che dimezzando la frequenza di playback ti si raddoppia quindi sali subito a 100ms.

 :-)