Frage

Ich möchte Geräusche produzieren, die Audio aus echten Instrumenten ähneln würden. Das Problem ist, dass ich nur sehr wenig Ahnung habe, wie ich das bekomme.

Was ich so weit von echten Instrumenten entfernt weiß, ist, dass die Geräusche, die sie ausgeben, selten sauber sind. Aber wie man so unreine Geräusche produziert?

Ich habe das so weit gegangen, dass es zu tun habe, es erzeugt einen ziemlich einfachen Klang, von dem ich nicht sicher bin, ob es die ALSA richtig verwendet.

import numpy
from numpy.fft import fft, ifft
from numpy.random import random_sample
from alsaaudio import PCM, PCM_NONBLOCK, PCM_FORMAT_FLOAT_LE

pcm = PCM()#mode=PCM_NONBLOCK)
pcm.setrate(44100)
pcm.setformat(PCM_FORMAT_FLOAT_LE)
pcm.setchannels(1)
pcm.setperiodsize(4096)

def sine_wave(x, freq=100):
    sample = numpy.arange(x*4096, (x+1)*4096, dtype=numpy.float32)
    sample *= numpy.pi * 2 / 44100
    sample *= freq
    return numpy.sin(sample)

for x in xrange(1000):
    sample = sine_wave(x, 100)
    pcm.write(sample.tostring())
War es hilfreich?

Lösung

Fröhlich, wenn Sie etwas erzeugen möchten (von Grund auf neu), das wirklich "biologisch" klingt, dh ein physisches Objekt, können Sie wahrscheinlich ein wenig darüber lernen, wie diese Geräusche generiert werden. Für eine solide Einführung könnten Sie sich ein Buch wie Fletcher und Rossings ansehen Die Physik von Musikinstrumenten. Es gibt auch viele Sachen im Internet, vielleicht möchten Sie einen Blick auf die Primer James Clark haben hier

Wenn Sie zumindest einen Skim über diese Art von Sachen haben, geben Sie Ihnen eine Vorstellung davon, was Sie haben. Das genaue Modellieren physischer Instrumente ist sehr schwierig!

Wenn Sie etwas haben möchten, das physisch klingt, eher etwas, das wie Instrument X klingt, ist Ihr Job etwas einfacher. Sie können Frequenzen ganz einfach aufbauen und zusammen stapeln, ein wenig Geräusch hinzufügen, und Sie erhalten etwas, das zumindest nicht nach einem reinen Ton klingt.

Wenn Sie ein wenig über die Fourier -Analyse im Allgemeinen lesen, hilft dies ebenso wie Frequenzmodulationstechniken (Freency Modulation).

Habe Spaß!

Andere Tipps

Die Soundsynthese ist ein komplexes Thema, das viele Jahre Studium erfordert, um zu meistern.

Es ist auch kein völlig gelöstes Problem, obwohl relativ jüngste Entwicklungen (wie die physische Modellierungssynthese) Fortschritte bei der Nachahmung der realen Instrumente erzielt haben.

Es gibt eine Reihe von Optionen für Sie. Wenn Sie sicher sind, dass Sie die Synthese weiter untersuchen möchten, schlage ich vor, dass Sie zunächst die FM -Synthese kennenlernen möchten. Zumindest in grundlegenden Formen ist es relativ einfach, in Software zu lernen und zu implementieren, und erzeugt eine breite Palette interessanter Klänge. Schauen Sie sich auch das Buch "The Computer Music Tutorial" von Curtis Roads an. Es ist eine Bibel für alles, was Computermusik für Computermusik ist, und obwohl es ein paar Jahre alt ist, ist es das Buch der Wahl, um die Grundlagen zu lernen.

Wenn Sie einen schnelleren Weg haben möchten, um einen lebensechten Klang zu erzeugen, sollten Sie die Sampingtechniken verwenden: Nehmen Sie die Instrumente auf, die Sie reproduzieren möchten (oder eine bereits bestehende Beispielbank verwenden möchten) und spielen Sie einfach die Samples zurück. Es ist ein viel einfacherer (und oft effektiverer) Ansatz.

Ich bin damit einverstanden, dass dies sehr nicht trivial ist und es keinen "richtigen Weg" gibt, aber Sie sollten in Betracht ziehen, mit einem zu beginnen (oder Ihre eigene zu machen). MIDI Soundfont.

Wie andere Leute sagten, kein triviales Thema. Es gibt Herausforderungen sowohl auf der Programmierseite der Dinge (insbesondere wenn Sie sich für niedrige Latenz interessieren) als auch im Syntheseteil. Eine Goldmine für die Soundsynthese ist die Seite von Julius O. Smith. Es gibt viel von Techniken für die Synthese http://ccrma-ww.stanford.edu/~jos/.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top