2009-08-24 38 views
9

Sto cercando il modo più realistico di riprodurre il suono di una palla che rotola. Attualmente sto usando un campione Wav che suono più e più volte finché la palla si muove - il che non sembra giusto.Suono di palla che rotola

Ho pensato di sintetizzare completamente il suono, di cui so molto poco (quasi nulla), sarei grato per qualsiasi tutorial/materiale di ricerca/campioni riguardanti la sintesi del suono di una palla fatta di materiale particolare rotolamento su una superficie fatta di un altro materiale. Inoltre, se questa idea è completamente sbagliata, ti preghiamo di suggerire un altro modo per farlo.

Grazie!

+1

Potrebbe non essere corretto perché l'ampiezza alla fine del wav non corrisponde all'ampiezza iniziale. Potresti provare a farlo prima (usando la dissolvenza in apertura per avviare il suono) prima di scavare in reami più complessi –

+0

Il suono è un breve campionamento continuo, suona "ok", ma non riesco a controllare la natura del suono per quanto riguarda velocità delle palle. È difficile da descrivere: | – arul

+11

Davvero non essere d'accordo con il voto SuperUser. Voglio dire, perché? Arul non sta cercando un'applicazione per riprodurre un suono, sta cercando un metodo per * generare * un suono realistico. – dmckee

risposta

8

Immagino che otterrete il più grande successo per il vostro buck eseguendo una regolazione dinamica della frequenza sul suono che rende la frequenza di riproduzione proporzionale alla velocità della palla. Non so che tipo di libreria suoni usi, ma la maggior parte supporterà qualche variante di questo.

Ad esempio, in FMOD è possibile utilizzare il metodo Channel :: setFrequency. Idealmente, calcoleresti la frequenza di riproduzione desiderata in base alla frequenza di campionamento originale (Fo) del tuo WAV, alla velocità corrente della pallina (Vc) e alla velocità "ideale" della palla alla quale il suono WAV di default suona (Vi). Qualcosa in genere piace:

F = Fo * (Vc/Vi)

Questo tenderà ad abbattere la palla arriva più lontano dalla velocita 'ideale'. Potresti desiderare di avere diversi WAV diversi adatti a diversi intervalli di velocità a cui passi a determinate velocità di soglia. All'interno della staffa di ogni WAV, faresti lo stesso tipo di regolazione della frequenza.

Un'altra nota: questo probabilmente non è qualcosa che vale la pena di fare ogni fotogramma. Immagino che fare questo più di 20 volte al secondo sarebbe una perdita di tempo.

ADDENDUM: il ridimensionamento della frequenza di riproduzione come questo può essere utilizzato anche per simulare l'effetto Doppler.Una volta impostata la frequenza di riproduzione regolata, eseguirai un'altra scala della frequenza in base alla velocità della palla rispetto all'ascoltatore (la fotocamera).

+0

Un'idea interessante. Probabilmente è meglio fare cambiando il cutoff di un filtro passa-basso piuttosto che modificando la velocità di riproduzione del suono. – Nosredna

+0

Questo non porterebbe davvero alla stessa cosa. Il suono di qualcosa che si muove a velocità diverse è più di una semplice diffusione di frequenza - ha a che fare con la velocità complessiva del suono. Immagina di far funzionare il suono del motore di una macchina attraverso un filtro passa-basso. Non importa dove si imposta il cutoff, la 'velocità' (RPM) del motore non suonerà in modo diverso. Inoltre - le regolazioni della frequenza di riproduzione sono più facili/economiche da fare in tempo reale. – Quintus

+0

Questo è il più vicino alla mia attuale implementazione +/- di lavoro, quindi accetto questa risposta. Grazie a tutti per le vostre idee! – arul

6

Avete provato a riprodurre il suono in avanti, quindi a riprodurlo all'indietro ea farlo scorrere? Uso questo trucco graficamente per creare pattern ripetuti. Non so molto del suono ma potrebbe funzionare?

+0

Questa è in realtà una buona idea - essenzialmente una piastrellatura dimensionale. –

+3

i suoni all'indietro non sono qualitativamente diversi dal suono normale? – Jimmy

+2

se è una clip breve, non sarà visibile. questo è in realtà un ottimo modo per rendere il suono senza soluzione di continuità senza crossfading. – leolobato

5

Un approccio potrebbe essere quello di analizzare il suono di una palla rotolante e scomporlo nelle sue forme d'onda del componente. Quindi sarai in grado di generare il tuo file wav con onde sintetizzate.
Dovreste essere in grado di farlo usando una FFT su un campione del suono.

Uno svantaggio è che il suono risulterà probabilmente sintetizzato - sarà necessario aggiungere rumore e tale da renderlo più realistico. Farlo sembrare abbastanza reale potrebbe essere la parte più difficile.

+0

Vedrò che questo metodo è adatto per l'utilizzo in tempo reale in un ambiente con risorse limitate (smart phone)? – arul

+0

Onestamente, non lo so. Se sai che la palla farà un certo suono in condizioni note, i parametri sonori sono noti. Pertanto, dovresti essere in grado di "memorizzare" abbastanza suoni sintetizzati in modo da poter creare un file wav loopable. Ricordo solo la FFT dei miei giorni universitari e mi sembrava un buon approccio. –

+2

Passare da FFT per sintetizzare un suono è una cosa ragionevole da fare, ma probabilmente non in questo caso. La cosa interessante di una palla che rotola sono i cambiamenti momentanei nello spettro. Potresti usare l'intero processore per risintendere il suono. Soprattutto se usi una sintesi additiva di morphing. – Nosredna

3

Non penso che abbiate bisogno di sintetizzare questo. Sarebbe troppo difficile persino sembrare convincente.

A seconda di come è la scena, è possibile eseguire il loop di foward/back e simulare un effetto doppler applicando un filtro passa-basso e/o modificando l'intonazione.

A proposito, freesoung.org è un ottimo posto per campioni gratuiti. Non sono registrati professionalmente ma sono un buon punto di partenza per la manipolazione. D'altra parte, sound ideas ha alcuni grandi CD di esempio (sono in realtà standard del settore) se riesci a trovarli a buon mercato. Devi solo cercare quello che ha i suoni di palla rotante.

2

La mia domanda è "perché?" - Vedi qualche beneficio in questo, o è solo per divertimento? La tua domanda implica che tu non sia felice con il wav che stai usando, ma credo fermamente che sintetizzare il tuo sembrerà molto inferiore.

Se il campione wav non sembra corretto, suggerirei di provare a trovare un altro campione. Sintetizzare un suono non è facile e non sarà mai realistico come il tuo campione.

La sintesi in tempo reale può richiedere più risorse per l'elaborazione e il calcolo. Si può benissimo finire per prerenderizzare il suono sintetizzato in un file wav ed eseguire una riproduzione.

Se si desidera simulare il suono di materiali diversi, è possibile utilizzare alcuni DSP o anche semplici trucchi come il rallentamento o l'accelerazione della riproduzione wav. Il modo più semplice è il prerender in un'altra applicazione e memorizzare una copia del file per ogni utilizzo.

+0

Esistono molti tipi di metodi di sintesi che richiederebbero una piccola parte del processore. La riproduzione di esempio sarà sempre ripetitiva e ovvia, quindi penso che sia una buona idea pensare alle possibilità di sintesi. – Nosredna

3

mi piace molto l'approccio descritto in questo documento SIGGRAPH:

http://www.cs.ubc.ca/~kvdoel/publications/foleyautomatic.pdf

Descrive sintetizzare il suono di un rotolamento roccia in un wok (no, davvero :). L'idea è di usare la sintesi modale (cioè le risposte all'impulso convesse), ei risultati possono essere molto convincenti.

Ecco un link al video demo che va con la carta:

http://www.cs.ubc.ca/~kvdoel/publications/foleyautomatic.mpeg

Ed ecco un link alla libreria JASS (scritto da uno degli autori), che è stato utilizzato per creare il suono per il video:

http://www.cs.ubc.ca/~kvdoel/jass/jass.html

non sono sicuro se si potesse farlo girare su un telefono intelligente, ma con una sufficiente spira di routine/approssimazione efficiente si potrebbe essere in grado di fare qualcosa che nteresting ...

+0

Lettura impressionante, grazie. – arul

+0

Felice che ti sia piaciuto. Buona fortuna con la sintesi. – datageist