Töne Ausgeben

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Mr Hopp

Betreff: Töne Ausgeben

BeitragSa, Jun 18, 2005 8:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich plane ein Programm, mit dem man Stücke komponieren kann, und sie dann abspielen lassen kann. Allerdings weiß' ich nicht, wie ich die Töne wirklich Frequenzgenau ausgeben kann. Ich weiß' zwar, dass de Grundton C' 261.626 Hz hat, weiß aber nicht, wie ich das umsetzen kann. Die normale Freqeunz ist ja 44100, was soll ich machen? (Ein summendes Geräusch, was erstmal die Instrumente ersetzen soll habe ich schon gefunden)

Edit: Oh, die Frequenz meines Tones ist gar nicht 44100, auch nicht 22050, was jetzt?

Mfg Mr Hopp[/b]
 

totonak5

BeitragSa, Jun 18, 2005 10:31
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich das richtig verstanden habe, willst du die frequenz ändern oder!?

meines wissens nach geht das gar nicht oder!?
Just for Fun!
Jesus loves U!

TheShadow

Moderator

BeitragSa, Jun 18, 2005 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
mit bbmax soll es gehen
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Mr Hopp

BeitragSa, Jun 18, 2005 11:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, Blitzmax hab' ich aber nich. Und was ist mit ChannelPitch?

BladeRunner

Moderator

BeitragSa, Jun 18, 2005 11:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst zwischen der Samplefrequenz (in Deinem Fall 22050 Hz) und der Tonhöhe (zb. 330 Hz für den Kammerton a) unterscheiden.

Ersteres gibt die Auflösung bzw. Genauigkeit deines Samples wieder, das zweitere ist die im Sample enthaltene Schwingung (und somit hörbare Tonhöhe).
Mit Channelpitch kannst du - vorausgesetzt Du hast ein "reines" Tonsample von dem Du weisst in welcher Tonhöhe es aufgenommen wurde -schon arbeiten. Jede Verdoppellung der Wiedergabegeschwindigkeit bedeutet Steigerung um eine Oktave. Die 12 Halbtöne lassen sich also errechnen. (Es sollte dazu auch Listen geben, bemüh einfach mal google.)

Viel Erfolg.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Spuckfunkel

BeitragSa, Jun 18, 2005 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe mal einen "klangfarben synthesizer" in blitz geproggt, der Töne einer chromatischen tonleiter (also alle hier üblichen) erzeugen konnte.

link:
https://www.blitzforum.de/view...highlight=

wenn du magst, kann ich dir den code dazu geben (b3d).
mein aktuelles game in progress: Jumpingrub
 

Mr Hopp

BeitragSo, Jun 19, 2005 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe schon eine Liste, mit allen Frequenzen, habe auch den Grundton C', weiß' aber nicht welche Frequenz der Ton hat (also, 260Hz oder so ist eindeutig zu tief). Und ja, ich denke, der Code wäre hilfreich.

BladeRunner

Moderator

BeitragSo, Jun 19, 2005 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
nocheinmal: verwechsel nicht samplerate mit Tonhöhe.

Wenn Du ein Sample hast, welches mit 22050 Hz aufgezeichnet wurde, und darin spielt ein Klavier C' (261 Hz), was kommt ann wohl raus, wenn Du dieses Sample per Channelpitch auf 261 Hz abspiuelen lässt ? Genau, bestenfalls noch ein dunkles Brummen.

Um Genau zu sein:
Wenn Du ein 22050 sample mit 261 hz wiedergibst,entspricht das ~1,2 % der originalen Abspielgeschwindigkeit, d.h. dein C' wird noch auf 3,01 Hz wiedergegeben- absolut unhörbar.

Dein Ziel sollte aber sein, die Samplefrequenz entsprechend der gewünschten Tonhöhe zu verändern.

Das ist im Wesentlichen recht simple Mathematik (division, Multiplikation) und ein wenig Nachdenken.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Artemis

BeitragSo, Jun 19, 2005 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
also töne abspielen geht auch über systembeep!

Jan_

Ehemaliger Admin

BeitragMo, Jun 20, 2005 8:15
Antworten mit Zitat
Benutzer-Profile anzeigen
bass.dll

dort kann man das machen.
between angels and insects
 

TOONY

BeitragMo, Jun 20, 2005 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
gibt es keine MIDI ausgabe in BB ???

dann hätte man alle töne und instumente der Soundkarte zur verfügung!

Spuckfunkel

BeitragMo, Jun 20, 2005 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du den code haben willst, gib mir mal deine email adresse.

aber es ist eigentlich ganz einfach (wenn du eine reine physikalisch richtige stimmung haben willst, reicht aber für den anfang):

sound = sounddatei mit 44 kHz gesamplet, am besten der Ton c
note = 0-11 (0 = c / 11 = h)
oktave = -3 bis +3 (oder so)

und dann:

Code: [AUSKLAPPEN]
Pitch = note+(oktave*12)
ChannelPitch sound,44000*(1.0595^Pitch)


wenn du die tonhöhe einfach durch änderung der abspielgeschwindigkeit änderst (wie im beispiel), ändert sich natürlich auch die Länge des Tones.
Ich habe deshalb in meinem Klangfarbensynthesizer samples benutzt, die ich loopfähig gemacht habe, sie dann als loop abspielen lassen habe und die Tonlänge per einfacher Decay Hüllkurve geregelt. So kann man dann die Länge der Töne sehr einfach regeln.
Wenn du dann noch komplexere Hüllkurven (mit Attack, Decay, Release und Sustain oder noch komplexer) programmierst, wärst du schon am beginn einen synthesizer zu programmieren.

Dann brauch man nur noch einen Filter programmieren (schwer!) Modulationen einbauen, auf osszilatorebene (soundgenerator - kann man ja auch samplebasiert machen, indem man samples mischt, oder subtrahiert) etwas mehr abgehen und schon hätte man einen coolen subtrativen synthesizer.
Is mein traum so etwas mal zu programmieren, scheiterte bisher aber an dem programmieren eines Lowpass Filters.
Naja, gehört jetzt eigentlich aber nicht zum thema.
mein aktuelles game in progress: Jumpingrub
 

Mr Hopp

BeitragMo, Jun 20, 2005 14:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja gut, ich wollte ja auch keinen Synthesizer, trotzdem, Danke, das wird mir weiterhelfen!
 

sonicfire

BeitragDi, Jun 21, 2005 2:37
Antworten mit Zitat
Benutzer-Profile anzeigen
jau, schade.......AMOS hatte früher nette MIDI Befehle ... warum das in BB nicht mehr der FAll ist ...hmm
~sonic

TheShadow

Moderator

BeitragDi, Jun 21, 2005 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
weil AMOS <> BB ist. Man kann Amiga und PC nicht vergleichen.

Tipp 1: benutze kein Pitch über 44100 - weil das wird nicht von allen PCs supportet

Tipp 2: ein Sinus-Ton entspricht nicht einem Ton den ein Klavier macht. Der Ton eines Klaviers ist nicht so synthetisch und ist "wärmer" - mit Nachhall.
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Mr Hopp

BeitragSo, Jun 26, 2005 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das mit dem Klavier hab' ich jetzt auch festgestellt, wird wohl ein Ziel für eine eventuelle Erweiterung sein. Ich hab's erstmal mit so leeren Tönen die ich von der Website eines Weltraum-(So was wie 'ne Satelitenschüssel) hab.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group