Töne Ausgeben
Übersicht

Mr HoppBetreff: Töne Ausgeben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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! |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit bbmax soll es gehen | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, Blitzmax hab' ich aber nich. Und was ist mit ChannelPitch? | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
also töne abspielen geht auch über systembeep! | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
bass.dll
dort kann man das machen. |
||
between angels and insects |
TOONY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gibt es keine MIDI ausgabe in BB ???
dann hätte man alle töne und instumente der Soundkarte zur verfügung! |
||
![]() |
Spuckfunkel |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja gut, ich wollte ja auch keinen Synthesizer, trotzdem, Danke, das wird mir weiterhelfen! | ||
sonicfire |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jau, schade.......AMOS hatte früher nette MIDI Befehle ... warum das in BB nicht mehr der FAll ist ...hmm | ||
~sonic |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group