Hallo Forengemeinde. Ich möchte an Ostern beginnen, eine digitale
elektronische Orgel zu bauen. Die Idee ist, die Orgeltöne mit einem oder
mehreren AVRs zu generieren, die auf Knopfdruck jeweils fertig
gesampelte Töne aus dem RAM laden und aus kleinen Lautsprechern heraus
in die Rohren zu jagen, damit diese eine Resonanz bilden und wie echte
Orgeltöne klingen.
Ich mache es also elektronisch und nicht mechanisch, wie in diesem
Projekt:
Beitrag "High Pressure Organ"
Ich brauche minimal 8 Töne gleichzeitig, möglicherweise auch 10. Wie
schnell könnte ein typischer AVR diesbezüglich arbeiten, also die
Knopfdruckschleife durchlaufen und dann, solange gedrückt wird, ein
Sample aus dem RAM holen und es ausgeben? Die Schleife müsste für 10
Töne mit mindestens 480kHz laufen - ginge das?
Wie gebe ich die Töne dann aus? Ich möchte nicht jeden Ton einzeln,
sondern in Gruppen auf die Pfeifen geben. Welche Wandler wären zu
empfehlen? Ich denke, ich muss das seriell machen, um alle an einen oder
zwei AVR anschließen zu können, nehme ich an. Wieviele Töne kann man
zusammenfassen, um AD-Wandler und Lautsprecher zu sparen?
2 (Sinus-) Töne könnten noch gehen, wenn man sich anschaut, wie man mit
einem AVR DTMF Töne erzeugt, wie in AVR314 beschrieben:
http://www.atmel.com/Images/doc1982.pdf
Alles andere wird aber auch durch den kleinen RAM des AVR beschränkt.
Für mich klingt das entweder nach einem Job für 'nen XMega mit externen
SDRAM oder einem STM32. Gut, man könnte auch auf die Idee kommen, den
Sample ins Flash zu speichern und dann mit variabler Samplefrequenz
auszulesen, das macht AVR314 ja auch so, wird aber bei tiefen Tönen
recht kompliziert (wg. der niedrigen Abtastfrequenz) und dürfte nicht
besonders gut klingen.
Schon mal an einen MIDI Expander gedacht?
Wenn ich das richtig verstehe, dann will er mit einem kleinen
Lautsprecher die Luft in den Röhren in Resonanz schwingen lassen.
Dazu braucht es keine Samples. Es genügt ein Sinuston in der richtigen
Frequenz. Diesen Ton dürfte man ohne weiteres in einem kleinen AVR
abbilden können. Dann digital zu analog wandeln und ausgeben.
Allerdings bezweifle ich daß ein leiner Lautsprecher genügend Lautstärke
bringt. Das kommt jetzt natürlich auch auf den Lautsprecher an. Aber
funktionieren könnt das schon. Ich würde erstmal einen Testaufbau mit
einer Röhre und einem Lautsprecher machen und den Ton aus einem
Sinusgenerator oder einem Synthesizer zur Anregung benutzen. Dann hörst
Du ja ob das vernünftig klingen kann.
Resonanz schrieb:> Dazu braucht es keine Samples.
Doch, einen einzigen :-)
> Es genügt ein Sinuston in der richtigen> Frequenz. Diesen Ton dürfte man ohne weiteres in einem kleinen AVR> abbilden können. Dann digital zu analog wandeln und ausgeben.
Deswegen erwähne ich ja AVR314. Hier werden immerhin schon 2 Töne
gleichzeitig ausgegeben. Ich habe daraus mal eine kleine Türklingel im
Tiny45 gebaut, klingt ganz nett - es mussten lediglich statt der DTMF
Teilerfaktoren die der Tonleiter errechnet und in die Tabelle gebaut
werden.
> Die Schleife müsste für 10 Töne mit mindestens 480kHz laufen
?
Wo kommen die 480kHz her?
Kein Mensch kann das hören. Wenn die Schwingungen (Grundfrequenz plus
Oberwellen) mit 40kHz per DDS erzeugt werden, dann reicht das dicke. Das
ist CD-Qualität und mehr braucht es wirklich nicht.
der verfügbare Speicher kann natürlich zum Problem werden.
Aber alles in allem. So wie du ganze Fragestellung formuliert ist: nein,
das wirst du nicht schaffen. Es reicht nicht, etwas nur zu wollen. Man
muss es auch können.
Ob nun 2, 4 oder 10 Sinustöne gleichzeitig - die Sinustabelle brauchst
du nur einmal. Der Ramverbrauch steigt also nicht so dramatisch an.
Welche max. Frequenz brauchst du?
Gruß Jonas
Hobbyorganist schrieb:> und aus kleinen Lautsprechern heraus in die Rohren zu jagen,> damit diese eine Resonanz bilden und wie echte Orgeltöne klingen.> Ich möchte nicht jeden Ton einzeln,> sondern in Gruppen auf die Pfeifen geben.
Pfeifen ? Eine Pfeife produziert von selbst einen Ton.
Welches wirre Zeug redest du ?
Einen AVR kannst du jedenfalls vergessen.
Er hat nicht genug RAM und ist für Audio nicht so geeignet.
Nimm einen ordentlichen uC, wie ARM oder gleich einen DSP.
Der produziert dannn 10 überlagerte Töne ganz ohne Pfeifen.
Da muss man sich noch Gedanken um das Keyboard machen, damit
man 10 gleichzeitig gedrückte Tasten auch erkennen kann, und
man sollte sich Gedanken machen, daß 2 Töne aus einem Instrument
nicht 2 einzelne Töne sind, sondern sich Mischprodukte ergeben,
der eine Ton also den anderen beeinflusst, für natürlichen Klang.
480.000Hz * 128 (stützstellen für den Sinus) * 2 min. fache Abtastung *
= 122.880000 MHz die dein Avr rennen müsste...
Vergiss es
Und da fehlt noch der Phasenzähler der auch noch mal einige bit breit
ist(sonst hast du nur eine feste frequenz)
Gruß jonas
Jonas Biensack schrieb:> 480.000Hz * 128 (stützstellen für den Sinus) * 2 min. fache Abtastung => 122.880000 MHz die dein Avr rennen müsste...> Vergiss es
vergiss die 480kHz
Da hat er irgendwas rumgerechnet.
Mir ist eines noch nicht klar. Wie soll das mechanisch funktionieren?
So wie ich das verstanden habe, hat er da einen Satz von Rohren als
Ersatz für Orgelpfeifen. Anstelle die Pfeifen über einen Luftstrom und
eine Spalt in Schwingungen zu versetzen, koppelt er (so die Idee) eine
Schwingung direkt in die Luftsäule ein (per Lautsprecher).
Ob das so funktioniert? Das würde ich im Vorfeld mal ausprobieren. So
recht kann ich mir das noch nicht vorstellen. Resonanz hin oder her. Um
die Luftsäule in Schwingungen zu versetzen und die aufrecht zu erhalten,
ist Energie nötig. Die kommt ja nicht irgendwo her, sondern die muss der
Lautsprecher liefern.
Hi,
kennst Du das hier:
http://bolltone.de/Projekte/PropB3/PropB3.html
Alles fertig, MIDI steuerbar und klingt auch noch... Oh, ist ja
Propeller und nicht AVR... ;-)
Ach ja, und Du willst keine B3 sondern eine Pfeifenorgel. Wenn Du aber
eine Röhre in Resonanz bringen willtst, muß sie schon auf die Frequenz
des Tones bezogen die richtige Länge haben. Du kannst nicht einfach 8
Röhren mit 8 Lautsprechern anpusten und egal was Du spielst klingt das
dann, Du brauchst für jeden Ton (nicht gespielten!) eine entsprechend
lange Röhre, ebenso viele Lautsprecher und, und , und...
Grüße,
Jörg
... natürlich kann ich nicht wissen, um was es Dir geht, mal mit AVR
basteln oder Orgelmusik machen.
Ansonsten könnte ich Dir neben der Propeller-B3 noch
http://www.hauptwerk.com/
empfehlen.
Wow das sind ja schon Antworten! Ganz kurz:
480kHz = 10 Kanäle a 48kHz Samplefrequenz.
Die Orgelpfeifen sollen den Ton unterstützen.
Externes SDRAM war angedacht. Als einen Mega, wenn man an einen AVR
nicht dranbekommt.
Gfs macht es Sinn, einen AVR je Ton zu nehmen?
Hobbyorganist schrieb:> 480kHz = 10 Kanäle a 48kHz Samplefrequenz.
Mach dich doch erst einmal schlau, wie Orgeltöne aussehen (offene
Pfeifen und gedackte Pfeifen).
Du willst super duper Hüllkurven bauen und dann in eine Röhre
abstrahlen, die den Grundton filtert?
Fang doch etwas einfacher an. Ein Rechteck mit f und dazu ein Rechteck
mit 2f und schon hast du alle Obertöne. Nun eine Filterbank und es
klingt schon fast richtig. Musst du nur noch das Ein- und Ausschwingen
in den Griff bekommen.
Als erste Aufgabe: Wie stellst du die 12. Wurzel aus 2 dar für die
gleichbleibend temperierte Stimmung?
Ich bin nicht so sicher, ob Dein Ansatz funktioniert und zwar einerseits
nicht, was die Nutzung eines oder mehrer AVR anbelangt und zweitens auch
nicht, was das Pfeifenanregungskonzept angeht.
Zur Tonerzeugung:
Ersteinmal wird es nicht reichen, die Orgelpfeifen einfach in Bewegung
zu setzen, um den typischen Orgelklang zu bekommen, denn passiv
angeregte Pfeiffen klingen anders, als aktiv angeregte. Eine Orgelpfeife
hat auch verschiedene Punkte, an denen sie Schall aussendet und das ist
an der seitlichen Luftauslasssöffnung z.B. sehr viel
hochfrequenzlastiger, als am oberen Luftaustritt, wegen der Wirbel.
Zweitens wird das, was die Orgel abgibt, deinen Ton modulieren, Du
bekommst also ein Mischprodukt. Wie das klingt, kann ich so nicht sagen,
aber ich halte es für naheliegender, die Orgelpfeife den Ton machen zu
lassen und sie mit einem Sinus anzuregen - gfs mit einem
oberwellenbehafteten.
Welche Töne man zusammenfassen kann, ist mir auch nicht 100% geläufig,
aber ich würde nicht benachbarte Töne nehmen, sondern solche, deren
Oberwellen in die Pfeife "passen". Also entweder 12 Pfeifen für jeden
Grundton und dessen Obtaven ebenfalls durch dieselbe Pfeife oder nur 7
Stück und die Quinten noch mit beipacken. Vielleicht ist es aber auch
besser, immer 2 benachbarte Töne zu nehmen und die Pfeife in der Tonlage
auf die Mitte der beiden Frequenzen anzupassen, dass sie beide gleich
gut verstärkt. Dann könntest Du 6 Pfeifen nehmen und jeweils wieder die
Oktaven dazu nehmen. Grundsätzlich geht es- die Digitalorgelbauer nutzen
auch weniger Pfeifen, als sie Töne haben.
Frage:
Welche Pfeifen willst Du nehmen? Wenn Du den Luftstrom nicht erzeugst,
reicht mitunter eine einfache Resonanzröhre. Es bleibt aber das Problem
mit dem Mischen.
Zur Realisation:
Insgesamt glaube ich, dass es orgelähnlicher klingen dürfte, wenn Du die
Samples einfach in ein Stereobild mischst und die Stereoanlage
dranhängst. Dann hast Du auch den Hall der Kirchenorgel. Wenn Du den
nämlich mitaufgenommen hast, darfst Du ihn keinesfalls nochmal durch die
Pfeife gehen lassen. Du bräuchtest also wenn schon "trockene" Samples.
Nachtrag:
Jetzt kommt mir eine Idee: Was wäre, wenn Du die Töne garnicht
verschiedenen Lautsprechern zuordnest, sondern allen LS alle Töne
zuführst? Dann könntest Du die Pfeifen plazieren, wo Du willst und sie
insgesamt mitresonieren lassen. Oder Du steckst sie in einen Holzkasten,
der von den Seiten von 2 LS angetrieben wird, die aufeinander
zuarbeiten. Die Luft kommt dann akustisch aus den Pfeifen.
Noch etwas zur Realisation:
Wenn Du nur ein RAM auslesen willst, würde ich keinen Microcontroller
nehmen, sondern ein PLD oder ein FPGA. Da bekommst Du auch genügend
Rechenleistung und vor allem IO-Pins! Mit einem Controller dürfte es
schwer werden, genügend viele DA-Wandler ausreichend schnell
anzusteuern. Mit einem FPGA bestünde die Möglichkeit, es per PDM zu
machen. Da landen wir dann bei dem Vorschlag:
http://www.96khz.org/htm/pldmodularorgan.htm
Ich würde erst einmal eine Pfeife mit einem Ton / Pfeifenton bestrahlen
und schauen, was dabei rauskommt. Kannst ja die Ergebnisse mal posten.
> Als erste Aufgabe: Wie stellst du die 12. Wurzel aus 2 dar für die> gleichbleibend temperierte Stimmung?
Beide jeder Temperatur, im Sommer wie im Winter, ist die 12. Wurzel der
Zahl 2 ca. 1,0594630943592953.
Mariot schrieb:>> Als erste Aufgabe: Wie stellst du die 12. Wurzel aus 2 dar für die>> gleichbleibend temperierte Stimmung?>> Beide jeder Temperatur, im Sommer wie im Winter, ist die 12. Wurzel der> Zahl 2 ca. 1,0594630943592953.
Er meinte sicher, die Repräsentation der Zahl selbst als z.B. INT, die
ja eine Irrationale ist, wobei kleine Fehler und Verstimmungen kein so
grosses Problem sind.
Oder meintest Du nun das Wort "temperiert"?
-> temperierte Stimmung
Werden Orgenpfeifen eigentlich getempert?
Hobbyorganist schrieb:> Hallo Forengemeinde. Ich möchte an Ostern beginnen, eine digitale> elektronische Orgel zu bauen. Die Idee ist, die Orgeltöne mit einem oder> mehreren AVRs zu generieren, die auf Knopfdruck jeweils fertig> gesampelte Töne aus dem RAM laden und aus kleinen Lautsprechern heraus> in die Rohren zu jagen, damit diese eine Resonanz bilden und wie echte> Orgeltöne klingen.
Aus dem RAM? Damit sind die AVR chronisch unterversorgt. Maximal hast du
16KByte, das ist nicht wirklich viel, wenn man bedenkt, daß für Mono-Ton
in CD-Qualität (44,1kHz Samplefrequenz, 16 Bit Auflösung) schon
88,2Kbyte/Sekunde fällig werden und der RAM somit für maximal ca. 0,2
Sekunden Schallereignis ausreicht. Da wäre Flash besser, den gibt's
immerhin bis 256kByte groß, das reicht dann wenigstens für eine gute
Sekunde.
> Ich brauche minimal 8 Töne gleichzeitig, möglicherweise auch 10. Wie> schnell könnte ein typischer AVR diesbezüglich arbeiten, also die> Knopfdruckschleife durchlaufen und dann, solange gedrückt wird, ein> Sample aus dem RAM holen und es ausgeben? Die Schleife müsste für 10> Töne mit mindestens 480kHz laufen - ginge das?
Nein. Weder hast du genug Speicher für die Samples noch ist der AVR
schnell genug, um 8 oder 10 davon gleichzeitig mit ordentlicher
Auflösung auszuspucken. Zwei oder drei etwa mögen gehen. D.h.: Du
bräuchtest mehrere richtig große AVRs. Das ist Unsinn. Dafür nimmt man
gleich potentere Hardware und externen Speicher.
Ich könnte mir eher vorstellen, dass die Luftsäule in der Röhre zusammen
mit dem Lautsprecher ein elektromechanisches Resonanzsystem bildet, das
man auf analogem Weg (Rückkopplung) eigenresonant anregen kann.
Dann stimmen auch die Obertöne, wie bei der pneumatischen Version. Aber
eine Röhre mit bestimmten, verschiedenen Frequenzen zu vergewaltigen,
halte ich nicht für eine Lösung die authentische Klangmuster liefern
soll.
Simpel schrieb:> Ich könnte mir eher vorstellen, dass die Luftsäule in der Röhre zusammen> mit dem Lautsprecher ein elektromechanisches Resonanzsystem bildet, das> man auf analogem Weg (Rückkopplung) eigenresonant anregen kann.> Dann stimmen auch die Obertöne, wie bei der pneumatischen Version. Aber> eine Röhre mit bestimmten, verschiedenen Frequenzen zu vergewaltigen,> halte ich nicht für eine Lösung die authentische Klangmuster liefern> soll.
Ja, genau das hatte ich in meinem ersten Beitrag mit "Mischprodukten"
schon anklingen lassen wollen. Das ergibt Resonanzen auf mehreren
Frequenzen mit den entsprechenden Schwebungen. Im Prinzip etwas
Ähnliches, was man in Synthesizern mit RESO-Filtern baut. Da Orgeltöne
üblicherweise lange gehalten werden, hat die Röhre ("Pfeife" sage ich
jetzt nicht) genug Zeit, sich aufzuschaukeln.
Ich bin eigentlich sehr sicher, dass man das hauptsächlich gleichförmig
anregen muss, dann erübrigt sich auch das Problem der langen Töne und
der Samplelänge von mehreren Sekunden und damit auch das smoothing beim
loopen etc etc etc ...
Wegen des Mitschwingens der Nachbarpfeifen nochmals: Bei der echten
Orgel werden immer auch Nachbarn angeregt, die dann nach Massgabe der
erzielbaren Frequenzen mitschwingen und Schwebungen generieren. Zudem
passen ja die Obertöne einiger Pfeifen mit den Grundtönen anderer ganz
gut zusammen. Das macht dann die feinen Untertöne der echten Orgel.
Und wegen dem Problem hier:
> die 12. Wurzel der Zahl 2 ca. 1,0594630943592953
Zu 8Bit Zeiten auf dem 64er habe ich das immer synthetisch gerechnet,
mit 440Hz * 8 für den höchsten Ton (A) und dann für jeden Ton einfach
mit 185/196 gerechnet. Das ist selbst bei Fortsetzung über 4 Oktaven
immer noch auf wenige Promille genau. Ausrechnen braucht man es aber
auch nur einmal, für die DDS Sinus Funktion braucht man eh das fertige
FrequencyTuningWord je Ton. Wären 12. Mit dem Dreh kann man dann während
des Spiels ganz einfach das Pitching ändern auch wenn die CPU keine
Wurzel ziehen kann.
Hobbyorganist schrieb:> aus kleinen Lautsprechern heraus> in die Rohren zu jagen, damit diese eine Resonanz bilden und wie echte> Orgeltöne klingen.
Hi, das wird schwierig, weil ein Pfeifenton einer echten Orgel aus
vielen Komponenten zusammengesetzt ist: Windgeräusch, Spalt- und
Schneidentöne und der eigentliche Grundton, der sich langsam ausbildet,
an Spalt und Mündung abstrahlt und durch den nachströmenden Wind
aufrecht erhalten wird. Bis auf den Grundton fallen bei deinem Ansatz
alle anderen typischen Klangkomponenten weg. D.h. ich vermute, das, was
da übrig bleibt, wird sich ziemlich arm anhören.
Außerdem wirst du wahrscheinlich nicht verhindern können, dass der
Lautsprecher in alle Richtungen abstrahlt, d.h. du wirst immer auch den
"Anregungston" hören.
Bevor du viel Energie in die Elektronik steckst, würde ich erst einmal
dein Grundprinzip "Lautsprecher brüllt in Rohr" verifizieren, z.B. mit
einem Sinus in Grundtonfrequenz als Input und -damit es sich überhaupt
noch entfernt nach Orgel anhört- mit einem Pfeifenkörper aus einer alten
Orgelpfeife als Resonator.
Und wenn du die Anregung noch realistischer machen willst, dann misch
die Obertöne gleich dazu. Das sind bei offenen Pfeifen alle ganzzahligen
Vielfachen der Grundfrequenz, bei gedackten Pfeifen alle ungeraden
Vielfachen der Grundfrequenz. Bei beiden Pfeifenarten sind die jeweils
ersten Obertöne fast genauso energiereich wie der Grundton.
Gruss, Rainer
Hättest Du ein 3D-Frequenzprofil von Orgelpfeiffen, also ein Spektrum
mit Zeitverlauf? Dann könnte man es in der Tat voll elektronisch
nachbilden, wenn man sich die Sinustöne generiert und den Zeitverlauf
drüberzieht. Das ist im Grunde das, was ich mit meinem "LaPlaceSynthie"
treibe, nur fehlt es meistens am Wissen über den 3D-Tonverlauf. Leider
ist es mir auch noch nicht gelungen, dass vernüftig aufzuzeichnen, dass
man es hätte mit FFT zerlegen können.
Ich würde auch DDS befürworten (stand ja weiter oben schon). Dann kann
zumindest ein kleiner AVR einen prima Sinus erzeugen und das mit ein
paar Tabellen im Flash ohne viel Sample-Aufwand.
Sollen es doch Samples sein, täte es auch ein serieller SPI-Flash.
Zumindest hab ich damit ohne große Timing-Probleme schon 32kHz Samples
über die PWM geschoben.
Je nachdem wie das preislich geplant ist, würde ich - bei zehn
geforderten Tönen - einfach jeden Generator einzeln aufbauen
(China-Platinen sind verdammt günstig) und das ganze über einen elften
Controller steuern...
Jürgen Schuhmacher schrieb:> wobei kleine Fehler und Verstimmungen kein so> grosses Problem sind.
Das hängt stark vom Gehör und musikalischem Empfinden des Zuhörers ab.
> Oder meintest Du nun das Wort "temperiert"?> -> temperierte Stimmung
Ich empfehle Wikipedia für Grundlagen.
> Werden Orgenpfeifen eigentlich getempert?
Die Herstellung ist Betriebsgeheimnis. Nicht durch Zufall klingen die
Orgeln unterschiedlicher Hersteller auch unterschiedlich.
Der TO sollte sich vielleicht äußern, ob er den Klang einer Sakralorgel
nachbauen möchte oder ob es eher Orgel für U-Musik werden soll.
Jürgen Schuhmacher schrieb:> Welche Pfeifen willst Du nehmen?
Dann waren da noch die Zungenpfeifen, die den Ton nicht nur mit der Luft
erzeugen...
Und ich bezweifle sehr, das es sich interessant anhört, wenn die
Resonanz mit einem Sinus angeregt wird. Immerhin passiert diese Anregung
bei einer geblasenen Pfeife mit breitbandigem Rauschen am Luftspalt. Und
es bilden sich etliche lokale Resonanzen aus.
Wenn ich in eine Pfeife einen reinen Sinus reingebe, kommt da mit sehr
hoher Wahrscheinlichkeit ein (langweiliger) reiner Sinus wieder
heraus...
Rainer B. schrieb:> ich vermute, das, was da übrig bleibt, wird sich ziemlich arm anhören.
Und nicht im Mindesten irgendwas mit einem Orgelklang gemeinsam haben.
Hobbyorganist schrieb:> Wow das sind ja schon Antworten! Ganz kurz:>> 480kHz = 10 Kanäle a 48kHz Samplefrequenz.
Ähm.
die 10 Kanäle kann man auch alle zur gleichen Zeit generieren.
Du brauchst also 48kHz und nicht 480
Hallo Hobbyonanist,
du willst also mit Lautsprechern deine Pfeife anblasen. Das wird nichts
mal eben zwischen Gründonnerstag und Ostersonntag, da hättest du dir
schon vor Weihnachten Gedanken machen müssen. Wie willst du denn die
Lautsprecher luftdicht an den Pfeifen befestigen? Verstärker brauchst du
auch noch.
Karl Heinz schrieb:>> 480kHz = 10 Kanäle a 48kHz Samplefrequenz.> Ähm.> die 10 Kanäle kann man auch alle zur gleichen Zeit generieren.
Das wäre jetzt für den Fall gewesen, wenn ein Controller 10 Kanäle
bedient
Lothar Miller schrieb:> Jürgen Schuhmacher schrieb:>> Welche Pfeifen willst Du nehmen?> Dann waren da noch die Zungenpfeifen, die den Ton nicht nur mit der Luft> erzeugen...
Da bin ich auch noch am Suchen. Ich hätte aber Zugang zu einem
Metallbauer, der mir Hohlstäbe in allen Grössen liefern kann.
Dirk J. schrieb:> du willst also mit Lautsprechern deine Pfeife anblasen.
"Anregen"
> mal eben zwischen Gründonnerstag und Ostersonntag, da hättest du dir> schon vor Weihnachten Gedanken machen müssen.
Das ist schon seit letztem Herbst in meinem Kopf :-)
> Wie willst du denn die> Lautsprecher luftdicht an den Pfeifen befestigen? Verstärker brauchst du> auch noch.
Ich kenne mich ein wenig mit Lautsprecherbau aus. Das Verschliessen
denke ich ist kein Problem. Die Lautsprecher werden passend in
Pfeifenrohrdurchmesser gekauft. Die Tonerzeugung in der Pfeife kann ja
weg, daher werde ich die Lautsprecher mal probieren, von oben
anzubringen.
Gdacht habe ich mir das etwas so wie hier:
http://twhk.de/hausorgel/12x-rohrfloete-gedackt-kupfer-a.jpg
Nochmals zur Tonerzeugung:
Als Samples sollen entweder echte Orgeltöne Verwendung finden, oder
vereinfachte Wellen mit Obertönen, sowie das hier gemacht wird:
http://www.eminent-orgeln.de/images/Obertonanalyse_gross.jpg
Hobbyorganist schrieb:> Karl Heinz schrieb:>>> 480kHz = 10 Kanäle a 48kHz Samplefrequenz.>> Ähm.>> die 10 Kanäle kann man auch alle zur gleichen Zeit generieren.>> Das wäre jetzt für den Fall gewesen, wenn ein Controller 10 Kanäle> bedient
Kanal * Samplefrequenz = Unsinn
Du willst 10 Samples mit 48 kHz gleichzeitig ausgeben. Was für eine
Orgel doch sehr wenig ist, oder man braucht dann sehr viel Speicher
(denke dabei an die Möglichkeit, verschieden "Register, oder wie das aus
heißt" zu ziehen)?
Hobbyorganist schrieb:> Dirk J. schrieb:>> du willst also mit Lautsprechern deine Pfeife anblasen.> "Anregen"
Soweit ich das verstehe, kannst Du mit einem Lautsprecher keine Pfeife
anregen, da Du damit keinen stetigen Luftstrom erzeugen kannst (in eine
Richtung).
Hobbyorganist schrieb:> Nochmals zur Tonerzeugung:> Als Samples sollen entweder echte Orgeltöne Verwendung finden, oder> vereinfachte Wellen mit Obertönen, sowie das hier gemacht wird:> http://www.eminent-orgeln.de/images/Obertonanalyse_gross.jpg
Vllt. doch nicht lieber eine SW-Orgel nehmen.
mar IO schrieb:> Kanal * Samplefrequenz = Unsinn
Dann erkläre mir mal, wie Du permanent 10 Kanäle gleichzeitig mit
samples versorgen willst. Die 48kHz kommen vom Audio-DAC und die 10 von
den Fingern. Für jeden Kanal muss das passende Sample geholt und
ausgegeben werden. Oder habe ich was verpasst?
Timonius schrieb:> Sollen es doch Samples sein, täte es auch ein serieller SPI-Flash.> Zumindest hab ich damit ohne große Timing-Probleme schon 32kHz Samples> über die PWM geschoben.
Mit einem Flash und einem Kanal, nehme ich an. Wie schnell könnte ich
einen flash-Baustein maximal auslesen? Schafft man mit allen Zugriffen,
Lesen, Schreiben und Programmverwaltung 500kHz auf einem seriellen
Flash?
Hallo Hobbyorganist. Die Orgelpfeifen als Statisten zu misbrauchen, ist
doch etwas weit dahingedacht. Diese Art von Pfeifen brauchen schon
richtig Luftdruck und Energie, um zu schwingen. Das schaffen kleine
Lautsprecher eher nicht.
Ich würde samples abspielen oder den Klaang synthetisch erzeugen. Hast
Du das gesehen? Beitrag "Programm für Soundmodul."
Sobald Du einen elektronischen Klang beisammen hast, kannst Du das auch
noch filtern und zurechtbiegen und mischen, wie ich das mit meinem
Audiogerät gemacht habe: http://fpgasynth.beepworld.de/pldaudio.htm
Hobbyorganist schrieb:> mar IO schrieb:>> Kanal * Samplefrequenz = Unsinn>> Dann erkläre mir mal, wie Du permanent 10 Kanäle gleichzeitig mit> samples versorgen willst. Die 48kHz kommen vom Audio-DAC und die 10 von> den Fingern. Für jeden Kanal muss das passende Sample geholt und> ausgegeben werden. Oder habe ich was verpasst?
Unsinn, da 480 kHz nichts aussagt und der Wert für nichts zu gebrauchen
ist.
Hobbyorganist schrieb:> Die Schleife müsste für 10> Töne mit mindestens 480kHz laufen - ginge das?
Nicht die Schleife sondern -der- ein Interrupt muss alle 1/(48 kHz) zehn
Audio-Ausgänge mit Samples versorgen. Hier muss nichts schneller oder
langsamer laufen, sondern stets seine 48 kHz beibehalten. Was sich
ändert, ist die Datenrate, die verarbeitet werden muss.
Du möchtest doch die Audio-Ausgänge synchron ausgeben, oder irre ich
mich da???
Du möchtest 10 Audio-Ausgänge mit 48 kHz möglichst latenzfrei ansteuern
und noch zusätzlich 16/24 Bit-Samples loopen und mit Hüllkurven /
Lautstärke / Anschlag verrechnen. Also einen ROMpler mit
10-Audioausgänge bauen, der zehn Pfeifen als Attrappen besitzt. Da
brauchst Du schon etwas
Rechenleistung/Geschwindigkeit/Speicher(Möglichkeiten) dahinter.
Hobbyorganist schrieb:> mar IO schrieb:>> Kanal * Samplefrequenz = Unsinn>> Dann erkläre mir mal, wie Du permanent 10 Kanäle gleichzeitig mit> samples versorgen willst. Die 48kHz kommen vom Audio-DAC und die 10 von> den Fingern. Für jeden Kanal muss das passende Sample geholt und> ausgegeben werden. Oder habe ich was verpasst?
Ähm.
Man kann mit jedem einzelnen Takt der 48kHz durchaus auch alle
benötigten 10 Ausgänge versorgen. Das ist kein Problem
1
ISR(...)// wird im 48kHz Raster aufgerufen
2
{
3
for(i=0;i<NR_CHANNELS;i++)
4
{
5
if(channel[i].isUsed)
6
output(sampels[channel[i].sampleNr++);
7
}
8
}
wie auch immer dann die Ausgage Stufe aussieht und dementsprechend
angesprochen werden muss.
Hobbyorganist schrieb:> Ich kenne mich ein wenig mit Lautsprecherbau aus. Das Verschliessen> denke ich ist kein Problem. Die Lautsprecher werden passend in> Pfeifenrohrdurchmesser gekauft. Die Tonerzeugung in der Pfeife kann ja> weg, daher werde ich die Lautsprecher mal probieren, von oben> anzubringen.> Gdacht habe ich mir das etwas so wie hier:> http://twhk.de/hausorgel/12x-rohrfloete-gedackt-kupfer-a.jpg
Hi, der punkt bei gedeckten pfeifen ist der, dass die oben einen
schwingungsknoten haben. Wenn du die von oben anregt, dann machst du
damit eine offene Pfeife draus. Der Grundton ist damit dann nicht mehr
der ursprüngliche, sondern eine Oktave höher. Außerdem liegt bei offenen
Pfeifen der Schwingungsbauch -abhängig vom Durchmesser- deutlich
oberhalb der Pfeifenmündung, Stichwort "Mündungskorrektur". Deine
Lautsprecherkalotte muss sich damit auch deutlich oberhalb der
Pfeifenmündung befinden, um den originalen Grundton anzuregen bzw. die
Oktave. Wenn du also den Lautsprecher direkt auf die Pfeifenmündung
setzt, dann wird die Resonanzfrequenz höher sein als der auf der Pfeife
angegebene Grundton. Weiterhin haben alle Pfeifen eines Registers
unterschiedliche Durchmesser, damit alle gleich laut klingen: Je höher
der Ton, desto kleiner der Durchmesser. Es ist also vermutlich mit
Fummelarbeit verbunden, auf alle Pfeifen einen passenden Lautsprecher
aufzusetzen.
Unter dem strich veränderst du mit allen diesen Aktionen die eigentliche
Klangcharakteristik der verwendeten Orgelpfeifen so stark, dass das
Ergebnis mit Sakralorgelklang noch soviel zu tun hat wie Eintracht
Braunschweig mit 1.Bundesliga. Aber wer weiß, vielleicht wird ja noch
was daraus.
Gruß, Rainer
Georg G. schrieb:> Jürgen Schuhmacher schrieb:>> wobei kleine Fehler und Verstimmungen kein so>> grosses Problem sind.> Das hängt stark vom Gehör und musikalischem Empfinden des Zuhörers ab.
Typischerweise werden 20-30 Cent absolut nicht mehr gehört und 5-10 Cent
im AB-Vergleich, die ich dafür hernziehen würde, um eine Toleranz für
solche Systeme zu definieren. Wenn ein Lautsprecher einen minimal
erhöhten Sinus liefert, passen die Schwebungen nicht so, wie üblich,
aber das tun sie bei keinem akustischen System exakt.
>> Oder meintest Du nun das Wort "temperiert"?>> -> temperierte Stimmung> Ich empfehle Wikipedia für Grundlagen.
Mein Hinweis ware eher an Mariot gerichtet, der auf das Stichwort
"temperiert" hin, von Sommer und Winter sprach.
>> Werden Orgenpfeifen eigentlich getempert?> Die Herstellung ist Betriebsgeheimnis. Nicht durch Zufall klingen die> Orgeln unterschiedlicher Hersteller auch unterschiedlich.
Das wiederum war ironisch gemeint, um noch eine Form von "Temperieren"
ins Spiel zu bringen.
>und aus kleinen Lautsprechern heraus>in die Rohren zu jagen, damit diese eine Resonanz bilden und wie echte>Orgeltöne klingen.
Was ist das für ein totaler Quatsch ???
Man steuert doch nicht Röhren mit Lautsprechern an !!!
Und wenn man Lautsprecher hat, braucht man keine Röhren.
Grundsätzlich ist sein Denkansatz schon richig: Die physikalischen
Objekte, die ein Tonerzeugersystem bilden, formen durch ihre zeitlich
versetzt auftretenden Resonanzen massgelich den Ton. Bei der Orgel ist
es erstens der Pfeifenkorpus und zweitens das Gesamtinstrument zusammen
mit dem Raum. Ich denke, das ist, was der TO im Sinn hatte: Den Samples
Dreidimensionalität zu verleihen.
Nur ist bei aufgenommenen Signalen, wie er sie im Auge hast, dieses ja
schon drin und zwar jeweils ein ganz konkreter für die Situation
einzigartiger Klangverlauf. Da kann man nicht einfach nochmal
Teilfunktionen der Orgel mit ins Spiel bringen. Entweder komplette
samples oder synthetische Klänge aus generischen Wellen, die passend
modifiziert wurden.
Wenn es wirklich Pfeifen oder Röhren oder was auch immer sein müssen,
dürfte etwas Foschung anfallen, was die Anregung angeht.
wie wird das eigentlich mit den digitalen Pfeifenorgeln gemacht, die mal
einen Weile aktuell waren? Ich hatte diese auf Messen gesehen, es waren
kleine kompakte Geräte mit vielleicht 30-40 Pfeifen, also bei weit nicht
für jeden Ton ein.
es gibt derartige kommerzielle Konstruktionen mit Röhren. D.h. einen
Prospekt mit leeren Röhren die wie Pfeifenaussehen aber keine sind.
Darunte eine stinknormale Lautsprecherbox welche wie eine mäsige
Elektronenorgel klingt. Die Röhren werden auf Resonanz angeregt und
schon klingt das im Raum deutlich besser als jeder Lautsprecher.
Guck mal hier wir dsowas diskutiert wie du bauen willst:
http://orgelforum.sakral-orgel.de/viewtopic.php?f=4&t=225
Es gibt dazu sogar ein ganzes Formum "Klangabstrahlung" wo
allesamt leidenschaftliche Spezialisten zuhause sind.
Bevor ich mich da an eine Leiterplatte mache würde ich dem Hauptwerk
Link von vorne mal nachgehen. Einer der Sampler war mein Professor in
Rechnerarchitekturen. Vor einiger Zeit war Hauptwerk frei und das größte
Problem war den PCs mit wenigstens 1Gb Ram ausstatten zu können. Das hat
für Hauptwerk gerade so gereicht. Ebenso die Rechenzeit: Hauptwerk nutzt
die MMX Erweiterungen der IA32 Architektur bzw. die Hardware Floating
Point Anweisungen um Samples beim mehrstimmigen Spielen
zusammenzurechnen. Mit 1Gb dürfen es auch nicht soviele Stimmen sein,
denn wenn ein Sample nicht im Speicher ist, gibt es eine unakzeptable
Verzögerung bis der Ton anspricht. Heute ist das mit mehreren Gb weniger
problematisch und deshalb kostet Hauptwerk zwischenzeitlich eine
Kleinigkeit.
Aber höre dir das erst mal (auf Kopfhörer) an. Es gibt haufenweise
Freaks die sich die Nächte um die Ohren schlagen (wenn die Vögel nicht
pfeiffen und wenig Verkehr ist) hunderte Kilometer weit fahren um
irgendwo in den Kirchen Mikrofone aufstellen um fette Samples zu
kriegen. Mit und ohne Raumakustik, d.h. Hauptwerk kann nicht nur die
Pfeife sondern auch den Raum nachbilden. Die historischen (temperierten)
Stimmungen sind auf Hauptwerk übrigens auch der Knaller weil man zum
Hörvergleich in den Tonarten umschalten kann was an den Originalpfeiffen
ja nicht so einfach geht. (Google nach "Wolfsquinte")
Ansonsten noch ein Orgeltip: Kirchen haben heute kein Geld mehr und
Orgelbauer sind ein hungerndes und vom Aussterben bedrohtes Volk. Viele
Gemeinden werden aufgelöst, abgerissen oder an Muslime verkauft die
keine Orgeln brauchen. Die Orgelbauer haben Platzprobleme weil das Zeugs
alles sperrig ist und die Miete für ein Lager viel Geld kostet. So
kannst du i.d.R. für wenig Geld einen ganzen Satz alte Pfeifen kriegen
die du nicht als Resonator sondern dann als echte Pfeife wiederbeleben
kannst. Das alte Zeugs wird oft auf Flohmärkten verscheppert welche dann
der Gemeinde zugutekommen. Veilelicht 2 Oktaven mit ein oder zwei
Registern dann mit Synthesizer kombiniert. Der Synthi macht den Wumm und
die Pfeiffen machen den Raumklang als Kontrast. Das kann ein
Lautsprecher so nie. Gerne auch mit mechanischem Schlagwerk und Midi -
ein AVR kann dann die Tastatur und Schnittstellen abfragen. Für
wirkliche Samples aber definitiv viel zu klein. Einfach mal bei der
Kirchenmucke (Kantor/Organist/Musikdirektor) in der Gemeinde nachfragen.
Die wissen dann die lokalen Orgelbauer und die wissen wo was geht.
Traditionnell gilt es aber mit Fingerspitzengefühl die Brücke zwischen
Softies und Kirchenmuckern auszuoloten (Elektronik ist der Mitbeweber
der Orgelbauer und die haben heute nichts mehr zu schmunzeln) und schon
kommmst du an bestes Material und allergeilsten Sound ran.
J. V. schrieb:> es gibt derartige kommerzielle Konstruktionen mit Röhren.
Super Beitrag! Genau das habe ich mir vorgestellt! Den links werde ich
direkt nachgehen. Wie Du richtig vermutet hast, sind die umschaltbaren
Tonarten ein Ziel der Arbeit, weil man das im Synth leicht erreichen
kann.
Eine Frage vorab:
> D.h. einen Prospekt mit leeren Röhren die wie Pfeifenaussehen aber> keine sind.
Welches Material das ist, weisst Du nicht zufällig?
> Die Röhren werden auf Resonanz angeregt und> schon klingt das im Raum deutlich besser als jeder Lautsprecher.
Exakt, das hatte ich im Sinn!
Jürgen Schuhmacher schrieb:> Ich denke, das ist, was der TO im Sinn hatte: Den Samples> Dreidimensionalität zu verleihen.
So ist es. Was viele nicht verstehen ist, dass 3dimensionaler Sound
einfach besser klingt. Das Gehör ist 3dimesional, also müssen es die
Musikinstrumente auch sein.
Ich hätte noch zwei Fragen zu deinen Ideen:
Jürgen Schuhmacher schrieb:> Dann könntest Du die Pfeifen platzieren, wo Du willst und sie> insgesamt mitresonieren lassen. Oder Du steckst sie in einen Holzkasten,> der von den Seiten von 2 LS angetrieben wird, die aufeinander> zuarbeiten. Die Luft kommt dann akustisch aus den Pfeifen.
Könntest Du bitte beschreiben, wie Du das genau meinst?
> Entweder komplette> samples oder synthetische Klänge aus generischen Wellen, die passend> modifiziert wurden.
Wie sollten die Wellenformen aussehen, wenn nicht vollständige Samples
und wie sollten sie modifiziert werden? Ich habe mir Deine Orgel auf
deiner Webseite angesehen, wie machst du das?
Rainer B. schrieb:> Wenn du also den Lautsprecher direkt auf die Pfeifenmündung> setzt, dann wird die Resonanzfrequenz höher sein als der auf der Pfeife> angegebene Grundton. Weiterhin haben alle Pfeifen eines Registers> unterschiedliche Durchmesser, damit alle gleich laut klingen: Je höher> der Ton, desto kleiner der Durchmesser. Es ist also vermutlich mit> Fummelarbeit verbunden, auf alle Pfeifen einen passenden Lautsprecher> aufzusetzen.
Danke für den wertvollen Beitrag. Ja, tatsächlich erwarte ich etwas
Fummelarbeit, die wird wohl so aussehen, dass ich die Röhren auf eine
entsprechende Länge bringen werde, um den Ton und die Resonanz
anzupassen.
Das Thema Lautstärke ist aber ein Punkt! Hatte ich noch nicht bedacht.
Das wollte ich eigentlich so regeln, dass die Lautsprecher
unterschiedlich laut sind, bzw die Töne entsprechend stark zugemischt
werden.
Karl Heinz schrieb:> Hobbyorganist schrieb:>> mar IO schrieb:>>> Kanal * Samplefrequenz = Unsinn>>>> Dann erkläre mir mal, wie Du permanent 10 Kanäle gleichzeitig mit>> samples versorgen willst. Die 48kHz kommen vom Audio-DAC und die 10 von>> den Fingern. Für jeden Kanal muss das passende Sample geholt und>> ausgegeben werden. Oder habe ich was verpasst?> Man kann mit jedem einzelnen Takt der 48kHz durchaus auch alle> benötigten 10 Ausgänge versorgen. Das ist kein Problem> ISR( ... ) // wird im 48kHz Raster aufgerufen> {> for( i = 0; i < NR_CHANNELS; i++ )> {> if( channel[i].isUsed )> output( sampels[ channel[i].sampleNr++ );> }> }>> wie auch immer dann die Ausgage Stufe aussieht und dementsprechend> angesprochen werden muss.
Ja aber dann passiert doch genau das, wovon ich rede: Für jeden der
CHANNELS muss ein Wert geholt und abgeschickt werden. Für 48kHz
Samplerate sind das mindestens 480kHz Abtastrate.
In dieser Schleife, egal ob Interrupt oder nicht, muss dann ein
RAM-Zugriff laufen, der Zähler erhöht werden und der Port bedient
werden. Das läuft doch in einem Controller alles nacheinander.
Hobbyorganist schrieb:> Ja aber dann passiert doch genau das, wovon ich rede: Für jeden der> CHANNELS muss ein Wert geholt und abgeschickt werden.
Ja und?
Was denkst du eigentlich wie lange das dauert, alle 1/48tausend Sekunden
10 Werte auf den Weg zu bringen?
> Für 48kHz> Samplerate sind das mindestens 480kHz Abtastrate.
Du hast es immer noch nicht.
Die ISR wird mit einer Frequenz von 48kHZ aufgerufen.
Bei jedem Aufruf werden alle 10 Kanäle mit neuen Werten versorgt.
48kHz sind genug.
Und wenns 20 Kanäle wären, würde die notwendige Frequenz immer noch
48kHz sein.
> In dieser Schleife, egal ob Interrupt oder nicht, muss dann ein> RAM-Zugriff laufen, der Zähler erhöht werden und der Port bedient> werden. Das läuft doch in einem Controller alles nacheinander.
Ja,
in 100 Nanosekunden.
Mir scheint, du machst dir keine Vorstellung davon, wie schnell so ein
mit 16Mhz getakteter AVR tatsächlich arbeitet? Der macht rund 14
Millionen Befehle pro Sekunde! 1 Befehl wird in ca. (je nach Befehl) 7
tausendstel millionstel (7 mal 10 hoch -8) Sekunden, oder 0.07 µSekunden
oder 0.00007 Millisekunden oder 0.00000007 Sekunden oder 70 Nanosekunden
abgearbeitet. Was denkst du was das jemanden kratzt, wenn der µC alle
20µS mal 50 oder 100 Befehle a 0.07µs abzweigen muss um 10 DAC mit neuen
Werten zu versorgen?
Das ist nicht dein großes Problem, solange du keine aufwändigen
Filteralgorithmen da hinten drann hast sondern nur eine Hüllkurve
einmultiplizieren musst.
Aber du musst die Samples auch irgendwo speichern. Und da hast du dann
auf einem AVR ein Problem.
Hobbyorganist schrieb:> J. V. schrieb:>> es gibt derartige kommerzielle Konstruktionen mit Röhren.
Hohoho! So langsam wird das Thema interessant! Ich erinnere mich auch an
eine Messe, wo sie solche Gerätchen vorgestellt haben. Aber ich habe
mich nie näher mit der Funktion befasst. Wie ich eingangs schon
vermutete dienen die Pfeifen da nur zu Resonanz. Es sollte mich aber
wundern, wenn da wirklich Orgeltöne aus den Lautsprechen herauskommen.
Dann würden die Röhren nicht viel Klang leisten, sage ich mal.
> Jürgen Schuhmacher schrieb:>> Ich denke, das ist, was der TO im Sinn hatte: Den Samples>> Dreidimensionalität zu verleihen.> So ist es. Was viele nicht verstehen ist, dass 3dimensionaler Sound> einfach besser klingt. Das Gehör ist 3dimesional, also müssen es die> Musikinstrumente auch sein.
Naja, sagen wir mal so: Eine dreidimensionale Klangabstrahlung bildet
auch im Raum ein stark ortsabhängiges Gefüge, wegen der Echos. Die
eigentliche Funktion der Resonanzröhren ist aber wohl mehr die, des
Mitschwingens und der sich bildenden Schwebungen. Das belebt den Klang.
Meines Erachtens erfordert dies aber dann sehr trocken und direkt
aufgenommene Primärtöne. Dessen bin ich eigentlich ziemlich sicher.
Aber zunächst noch mal zu Deinem Timing Problem:
Hobbyorganist schrieb:> Ja aber dann passiert doch genau das, wovon ich rede: Für jeden der> CHANNELS muss ein Wert geholt und abgeschickt werden. Für 48kHz> Samplerate sind das mindestens 480kHz Abtastrate.
Das ist schon richtig, sofern Du unterstellst, dass der AVR mit dem
Ausgeben voll ausgelastet ist. Das ist er aber nicht insofern ist Deine
Rechung eine untere Minimalanforderung, die weit übertroffen wird.
> In dieser Schleife, egal ob Interrupt oder nicht, muss dann ein> RAM-Zugriff laufen, der Zähler erhöht werden und der Port bedient> werden. Das läuft doch in einem Controller alles nacheinander.
Du kannst beruhigt sein, das Holen eines RAM-Wertes und Absenden auf
einen DAC geht in weniger, als 10 Takten, auch wenn man es umständlich
programmiert, von daher braucht Dein Controller nicht mal 5 MHz
Taktfrequenz. Du hast also ausserhalb der ISR genügend Zeit, die
Tastaturthemen zu erledigen.
Karl Heinz schrieb:> Was denkst du was das jemanden kratzt, wenn der µC alle> 20µS mal 50 oder 100 Befehle a 0.07µs abzweigen muss um 10 DAC mit neuen> Werten zu versorgen?
Na ganz so grosszügig ist es ja nun auch nicht. Die 100 Befehle wären
schon 7us und damit fast die Hälfte der Zykluszeit. :-)
Ein bissl Verwaltung gibt es auch noch rund um die Stimmengeneration,
denn die ISR muss voll deterministisch laufen, wenn es keinen Jitter
geben soll. Man muss sich auch überlegen, wann welcher DAC takten soll
und wann er beladen wird. Da wäre ein fixes Timing wichtig und die
Kanäle müssen in derselben Reihenfolge laufen.
Ich habe mal überschlägig überdcht, was die Schleife tun müsste, um
meine Orgel abzubilden. (Ist aus meinem Concept book und läuft in VHDL)
Notenzähler auf Null
Tastenzähler auf Null
"Tastenschleife : 8 Input Ports pollen für 8x8 bit = 61 von 64 Tasten"
PORTNUMMER = KEYNUMMER / 8;
BITNUMMER = KEYNUMMER - 8 * PORTNUMMER; realisiert durch Bitrotation
"Entscheidung, ob Taste an oder nicht, gfs Inkrement eines Zählers"
VARIABLE = PORT(PORTNUMMER)
TASTE = BIT(VARIABLE, BITNUMMER) realisiert durch "AND"
WENN TASTE = AN
WENN Notenzähler < 10
Notenzähler = Notenzähler + 1;
NotenarrayNeu (Notenzähler) = KEYNUMMER;
Ende Tastenschleife
Ab hier hast du ein Array mit den 10 gedrückten Noten, gemäss
Vorrangstrategie, hier halt die Notenhöhe. Dann wäre zu prüfen, ob die
Noten schon gedrückt sind und die Information "Neue Note" muss gelöscht
werden
FOR NOTESOLLNR = 1 bis 10
NeueNote(NOTESOLLNR) = 0
FOR NOTEISTNR = 1 bis 10
WENN(NotenarrayNeu (NOTESOLLNR) = NotenarrayAlt(NOTEISTNR)
NotenarrayNeu (NOTESOLLNR) = NULL
SONST
NotenarrayNeu (NOTESOLLNR) = RETRIGGER
Ab hier enthält das neue Notenarray nur noch neue NOten oder den Befehl
"retrigger". Ich brauche den, um mein Oszillatoren weiterlaufen lassen
zu können und dennoch die Hüllkurven neu zu starten.
Nun werden die Informationen schlagartig in das alte Notenarray
übertragen und dann wenn eine neue Note gespielt wurde, der
Notenstandszähler im alten Array inkrementiert, sodass die dortigen
ältesten Noten überschrieben werden, gleichzeitig wird der Kanal neu
gestartet. Unter Umständen musst Du an der Stelle auch den Klang, der zu
der Note passt, mit in den virtuellen Kanal einfügen. Ansonsten wird die
Note und vor allem der Kanal beibehalten, keine Note gestohlen und nur
der Kanal neu gestartet, wenn das gewünscht ist.
In der synchronen Schleife wäre zu tun:
Samplezähler = Samplezähler + 1;
Notenzähler auf Null
FOR Notenzähler 0 ... 10
RAMADRESSE = Funktion (NotenarrayAlt(Notenzähler) + Samplezähler)
PORTNUMMER = Funktion (Notenzähler)
PORTNUMMER = RAMADRESSE
Für mich sind das weniger, als 20 Takte, zusammen mit der Bearbeitung
der Tastenfunktion reichen 10MHz Taktfrequenz für den Controller.
Falls Du es nicht mit Samples, sondern doch Sinus-DDS bauen willst:
Notenzähler auf Null
FOR Notenzähler 0 ... 10
PHASEINKREMENT(Notenzähler) = NotenarrayAlt((Notenzähler);
und Synchron dann
PHASE(Notenzähler) = PHASE(Notenzähler) +
PHASEINKREMENT((Notenzähler);
VALUe = SINTABLE (PHASE(Notenzähler)
etc..
dauert natürlich länger, braucht aber kein externes RAM.
Vielleicht eine Anmerkung noch: Wenn Du einen Sinus aus DDS machen
willst, brauchst Du mehrkanalige Ausgänge / Ports und DACs. Rechtecke
aus einem Pin auszugeben und zu filtern, wie es bei meiner Orgel mache,
ist viel einfacher. Mit einem sehr einfachen Filter bekommst Du schon
einen guten Sinus hin, wobei Oberwellen ja nicht so nachteilig wären,
bei Deiner APP.
So und nun hierzu nochmal:
Hobbyorganist schrieb:> Könntest Du bitte beschreiben, wie Du das genau meinst?
War nur so eine spontane Idee: Manche Lautsprecherbassboxen arbeiten
nach diesem push-pull Prinzip: Eine fette Röhre, an beiden Seiten ein
LS, die im Gegentakt arbeiten, d.h. der eine drückt, der andere zieht.
Wenn man das Prinzip umdreht und sich gleichphasig arbeiten lässt,
neutralisiert sich der Aussenklang, da sie in die Box brüllen. Wenn
diese zu den Pfeifen hin offen ist, hätte man einen gleichmässigen
Schallaustritt. Ist aber vermutlich nicht doch so der Brüller.
Jeder Pfeife/Röhre einen eigenen Lautsprecher zu geben, ist vermutlich
klüger und löste auch das Lautstärkeproblem.
>> Entweder komplette>> samples oder synthetische Klänge aus generischen Wellen, die passend>> modifiziert wurden.> Wie sollten die Wellenformen aussehen, wenn nicht vollständige Samples> und wie sollten sie modifiziert werden?
Das ist die Frage! :-) Ich würde sagen, "dünne" also wenig resonierende
/ schwebende Primärklänge. Beim Sounddesign mit Synthesizern hat man ja
dasselbe Problem: Je mehr Spuren und Oberwellen beteiligt sind, desto
fetter wird das Ganze und desto problematischer sind komplexe Wellen und
Modulationen. Für Lead-Sounds können sie indes nicht komplex und lebhaft
genug sein.
Da fallen mir noch zwei Dinge ein:
1) Wie willst Du die Orgel grundsätzlich stimmen? Du kennst Dich mit
Kirchentonarten aus? Wie sollen die Pfeifen angepasst werden? Und wie
wird umgeschaltet?
2) Wieviele Röhren werden es nun? Wenn Du nur wenige Röhren hast, werden
die auch nur wenige Frequenzen betonen. Um die Schwebungen zu
kontrollieren, ist es bei Synthies so, dass die anregende Frequenz mit
einem Vibrato versehen wird. Dann werden die Resonanzfilter (und das
sind deine Röhren letztenendes) immer ein wenig angeregt, auch wenn die
Frequenz variiert.
> Ich habe mir Deine Orgel auf> deiner Webseite angesehen, wie machst du das?
Das ist was komplett anderes. Ich benutze 12 leicht verrauschte, da
jitternde Tongeneratoren, die auf analoge Filter arbeiten und damit
einen für jeden Ton leicht unsauberen Takt erzeugen. Die werden dann
runtergeteilt und gehen auf Filter, die ein wenig schweben. Zumindestes
in der zweiten Version ist das so, die erste arbeitete clean. Von da ab
hat man einen Digitalwert als Ausgang - jeweils als n-Bitvektor. Der
geht aber nicht auf DACs sondern R2R-Filter, die einen nichtlinearen
Verlauf haben, also "falsch" arbeiten und Oberwellen haben. Ab da ist
dann jeder Ton individuell. Gemischt wird rein analog. Ich würde heute
aber eher so bauen, dass jeder Ton schon im PLD gemacht wird und als PWM
rausgeht. Das ist einfacher zu kontrollieren und mit heutigen PLDs /
FPGAs auch gut genug. Meine damalige "Orgel" ist nämlich klanglich nicht
so, dass man sie jetzt unbedingt nachbauen müsste :D
> Eine fette Röhre, an beiden Seiten ein>LS, die im Gegentakt arbeiten, d.h. der eine drückt, der andere zieht.
VonWegen. Das ergäbe (wenn es denn gemacht würde) nur Blindleistung!
Dank nochmals zwischendurch für die zahlreichen Vorschläge. Ich werde
jeder Orgelpfeifenersatzröhre einen Lautsprecher spendieren, d.h.
zunächst einmal ein System bauen und dieses ausprobieren.
Mit den Klängen werde ich herumprobieren. Als erstes einen Sinus, dann
Oberwellen und so weiter. Orgelsampels habe ich mir besorgt, die sollten
auch letzterdings kein Problem sein. Ich habe mir überlegt, die
Anordnung erst mit einem Soundprogramm zum Laufen zu bringen, d.h. die
Wellen abzuspielen und abzuhören, was herauskommt. So sollte es wohl
möglich sein, sich dem Thema zu nähern.
Das mit der Rechenleistung habe ich ebenfalls abgeschätzt und sehe, dass
es reichen wird, wenn ich entsprechende Controller nehme. Aussuchen
werde ich sie mir nach RAM-Bedarf. Vorschläge sind willkommen.
Jürgen Schuhmacher schrieb:> 1) Wie willst Du die Orgel grundsätzlich stimmen? Du kennst Dich mit> Kirchentonarten aus?
Kirchentonarten sollten es nicht sein, als erstes Temperierte Stimmung.
>Wie sollen die Pfeifen angepasst werden?
Am Besten wäre es, wenn man die Resonanzen mit kleinen klemmbaren
Gewichten verändern könnte. Magnete wären auch noch ein Thema. Muss aber
nicht sein.
> 2) Wieviele Röhren werden es nun?
36 über 3 Oktaven sind in Planung.
Karl Heinz schrieb:> Das ist nicht dein großes Problem, solange du keine aufwändigen> Filteralgorithmen da hinten drann hast sondern nur eine Hüllkurve> einmultiplizieren musst.
Die Hüllkurve müsste schon noch rein, da die Samples gelooped werden
müssen. Obendrein muss man beim Loopen sanft überblenden. Über das
Programm habe ich mir schon Gedanken gemacht. Zu dem, was Jürgen oben an
Pseudo-Code angedeutet hat, kommt schon noch einiges hinzu! Z.B. die
Frequenzänderung am Anfang des Tons etc...
Hobbyorganist schrieb:> Am Besten wäre es, wenn man die Resonanzen mit kleinen klemmbaren> Gewichten verändern könnte. Magnete wären auch noch ein Thema. Muss aber> nicht sein.
Hi, Das ist Grütze. So kannst du vllt Stimmgabeln stimmen, aber keine
Orgelpeifen oder andere Röhren.
Grobstimmung = Zusägen
Feinstimmung(Metallpfeifen) = oben aufweiten/eindrücken, tool required =
Metallsäge, Feile, Stimmhammer
Feinstimmung(Holzpfeife) = Üblicherweise befindet sich in der
Rückwärtigen Pfeifenseite oben ein Ausschnitt, der durch Vorsatz aus
Holz mehr oder weniger abgedeckt wird, tool required = Säge, Bohrer,
Schraube, Flügelmutter
In wie weit dieses Prinzip noch funktioniert, wenn du oben deinen
Lautsprecher draufschraubst: Keine Ahnung.
Vorschlag: Versuch deine Mimik auf einen Zylinder zu befestigen, denn du
dann von oben über die eigentliche Pfeife schiebst. Um das Ganze dicht
zu machen, mit Filz/Leder abdichten. Stimmen durch Verschieben.
Gruss, Rainer
>> D.h. einen Prospekt mit leeren Röhren die wie Pfeifenaussehen aber>> keine sind.>Welches Material das ist, weisst Du nicht zufällig?
der Fantasie sind keine Grenzen gesetzt weil jedes Material anders
klingt. Das ist auch die Kunst der Orgelbauer die richtige Kombination
mit der Materialstärke zu bekommen. Das ist Vergleichbar mit Saitenlänge
und Dicke des Drahts. D.h. man kann eine gleiche Tonhöhe durch beliebig
viele Kombinationen von Länge und Querschnitt kriegen. Das macht die
Unterschiede denn eine Kiste klingt geil und die andere einfach
langweilig. Mann nennt das auch Mensur oder Diapasion. Grundsätzlich
gilt, daß Blech mehr Obertöne als Holz macht. Teilweise kommen auch
ziemlich exotische Bleche zum Einsatz wie z. Bsp. Zinn oder so. Wenn du
mal Kontakt zu Orgelbauern hast können die dir wahrscheinlich viel mehr
drüber erzählen wie dir lieb ist. Im Prinzip funktioniert das aber schon
mit einer Röhre aus Pappe vielleicht von einer Teppichverpackung oder
der Kern von einer Rolle Plotterpapier o.ä !
Wenn du eine Röhre nur auf Resonanz durch Elektronik angeregt betreibst
ist die Länge bzw. Stimmung überhaupt nicht kritisch weil die
Durchlasskurve i.d.R. ziemlich breit ausfällt bzw. die "Filtergüte"
nicht zu hoch sein sollte. Wenn letzeres der Fall ist, fängt es an zu
"scheppern"
Aber wie gesagt, die Hauptwerk Leistungen wirst du mit einem AVR nicht
mal annährend erreichen. Selbst wenn die Rechenleistung langen würde,
wäre der Adressbereich für Speicher viel zu klein ...
Danke für den Tipp. Ein FPGA wäre mir jetzt zuviel des Guten, es müsste
mit einem uC gehen, meine ich. Ich muss ihn ja auch noch programmieren
können. Das Gerät soll auch automatisch spielen können.
Ich habe inzwischen die ersten Tests machen können, werde gfs mal was
reinstellen. Die ersten Ergebnisse zweigen, dass man die Rohre wohl
direkt anregen muss. Der Luftdruck wird nicht reichen. Man hört zuviel
von dem Sample. Die Rohre addieren nur etwa 5% Schallanteil.
Was ist, wenn man einen Schallwandler direkt auf die Röhren klebt? Mit
Luftverkopplung allein wird sich kaum mehr machen lassen.
>einen FPGA
könntest Du auch programmieren. Für Deine Zwecke reicht ein Spartan 3A
für 5,-.
Hobbyorganist schrieb:> Welche sollte man da nehmen?
Gute Frage. Einen konkreten Typ für Deine Applikation kann ich Dir jtzt
nicht anraten. Aber vielleicht hilft der Tipp: Für die
Gegenschallerzeugung im Sinne einer Abschirmung gegen unerwünschtes
Abhören in sicherheitsgerpüften Besprechungsräumen, werden Scheiben mit
kleinen Schallwandlern beklebt, welche die mit Mikrofonen im Raum
aufgenommenen Stimmen inklusive ihrer Berechneten Echos gegenphasig
einspeisen und zudem noch Rauschen draufaddieren. Danach kanst Du mal
suchen. Letzlich ist es eine Frage der Leistung, die die Dinger haben
müssen.
Ich habe nun am Wochenende eine Testanordnung der Röhren aufgebaut und
einige Aufnahmen gemacht. Das Beste, was ich gefunden habe ist, die
Röhren direkt luftdicht mit einem Gummiring auf den Lautsprecher zu
montieren, weil der Körperschall der Lautsprecher die Röhren zusätzlich
anregt und der Luftschall so nur oben austritt.
Im angehängten file kann man den Klang der Röhren hören, wenn man
draufschlägt, dann kommt der Lautsprecherton alleine und danach der
Gesamtklang. Die Röhren brauchen fast 1 Sekunde, um voll anzuschwingen
und laufen nach Abschalten des Tons auch etwas nach. Angeregt wird mit
Sinus.
Bin auf Kommentare gespannt.
Na herzlichen Glückwunsch. =) Wie die Schwebung einsetzte, kam ich mir
fast ein wenig in der Kirche vor *gg
Für eine schnelle Konzeptbestätigung gefällt mir das schon sehr gut
MfG chaos
Hört sich in der Tat etwas nach Orgel an, aber der Klang, wenn die
"Röhren" angeschlagen werden, klint irgendwie komisch; mehr wie ein
gedämpftes Vibraphon. Da fehlen mir eindeutig die Höhen.
Was sind das jetzt für Röhren? Ich dachte, es wären Orgelpfeifen(?)
>Kirche
Das war so gar nicht beabsichtigt, aber ja, das dachte ich auch sofort.
>Vibraphon / fehlende Höhen
Kann sein, aber die Röhren sind ja gedämpft befestigt. Vielleicht ist
das der Grund.
>Röhren
Es sind ausrangiert Orgelpfeifen, die ich gekürzt habe. Übrig ist jetzt
die lange Röhre alleine ohne Tonerzeugung.
Hobbyorganist schrieb:> Es sind ausrangiert Orgelpfeifen, die ich gekürzt habe.
Du willst nicht im Ernst sagen, dass Du an denen herumgesägt hast? Dir
ist schon klar, dass dann die Resonanzfrequenzen nicht mehr stimmen?
Nachtrag: Ich bin kein Orgelbauspezialist, aber vermutlich passen nun
auch die Oberschwingungen nicht mehr zur Grundschwingung. Da bin ich
eigentlich zimelich sicher, dass das so ist. Du hast damit sehr schräg
klingende Töne.
Jetzt verstehe ich auch, warum Du die Erregerschwingung tunen willst.
Ich fürchte, damit ist es nicht getan. Du musst die fehlende Masse durch
Ausgleichsgewichte ersetzten, würde ich mal tippen. Keine Ahnung ob das
geht.
Mahlzeit,
na, das ist doch mal wieder ein Forschritt!
Dein Pfeifenkörper hört sich komisch an. Kann es sein, dass es sich bei
deiner Pfeife um eine nichtklingende Prospektpfeife gehandelt hat?
Eine normale Pfeife aus Orgelmetall besteht fast nur aus Zinn/Blei und
müsste beim Anschlagen entsprechend dumpf klingen. Deine hört sich eher
nicht so an. Entsprechend schärfer wird der Ton.
Absägen: ist nicht so kritisch. Es ändert sich lediglich der Grundton
ein wenig, wenn du nicht allzu weit über dem Kern abgesägt hast.
In deinem Klangsample ist eine leichte Schwebung zu hören, heißt für
mich: Die Resonanzfrequenz ist nicht gleich der Anregungsfrequenz. Tunen
der Erregerschwingung ist eine gute Idee. Wenn Pfeife offen, ist der
Abstand zwischen deinem Lautsprecher und einem Stück oberhalb der
Mündung = Lambda/2, bei geschlossenen Pfeifen Lambda/4 zwischen
Lautsprecher und Deckel.
Kannst auch den Pfeifenkörper durch oben Aufweiten oder Verengen
stimmen.
Und misch gleich mal die Obertöne mit rein. Bei oben offenen Pfeifen
alle ganzzahligen Vielfachen der Grundfrequenz, bei gedackten Pfeifen
alle ungeraden Vielfachen der Grundfrequenz. Bei beiden Pfeifenarten
sind die jeweils ersten Obertöne fast genauso energiereich wie der
Grundton.
Rainer B. schrieb:> Und misch gleich mal die Obertöne mit rein.
Gute Information, das mit den Oberwellen, allerdings frage ich mich, ob
man das wirklich reinmischen muss oder doch der Pfeife überlassen
sollte, was bauartbedingt betont wird. Die Überlegung ist nämlich die:
Wenn man ohnehin die richtigen Oberwellen präsentiert, dann hat man
irgendwann den kompletten Pfeifenton und braucht gar kein Metall mehr.
Währen wir also wieder beim sample?
Nein, Samples werden es sicher nicht. Ich habe aber Deine Anregung
aufgegriffen, es mit Rechtecksignalen zu versuchen. Dies werde ich am
Wochenende angehen.
Weiter stellt sich die Frage, ob ich statt des AVR einen FPGA nehme, um
die benötigten Rechtecksignale zu erzeugen. Die Idee ist nämlich eine
PWM zu nehmen, wie ich das hier bereits angedeutet habe:
Beitrag "Re: FPGA als digitaler Oszillator?"
Ich denke nicht, dass es mit einem einfachen Microcontroller geht, alle
PWMs zu erzeugen. Ein FPGA schafft das ja leicht. Die Signale müssen
dann aber einzeln aus dem FPGA kommen und dürfen nicht vorher gemischt
werden, wie an der anderen Stelle vermutet wurde. Ich will die Pfeifen
ja einzeln steuern. Und dazu müssen die Frequenzen eben auch
programmierbar sein.
In dem anderen Thema wurde empfohlen, die Frequenzen dadurch zu
gewinnen, dass 2,00024 MHz geteilt werden. Davon ausgehend, dass ich
genau 2,00 MHz oder Vielfache nehme, weil ich keinen Sonderquarz mit der
2,000024 bekomme, habe ich es durchgerechnet und gelange ich zu
folgender Tabelle.
Die Abweichungen der Töne vom ideal sind ziemlich statistisch +/- von
daher scheint es sogar ok zu sein. Wenn ich richtig rechne, bekomme ich
weniger als 1 Cent Abweichung. Ich habe dazu die Fehlerprozentzahl mit
12 und 100 multipliziert, bin mir da jetzt nicht so sicher, das wäre
sehr wenig.
Jedenfalls blieben nun an Aufgabenstellung:
Erzeugung der Grundfrequenzen für 3 oder mehr Oktaven, Zumischung der
richtigen Menge an Oberwellen für die offenen Pfeifenröhren und Ausgabe
an Verstärker. Eigentlich liesse sich an dieser Stelle auch ein
Digitalverstärker nehmen, meine Ich.
Hobbyorganist schrieb:> Erzeugung der Grundfrequenzen für 3 oder mehr Oktaven, Zumischung der> richtigen Menge an Oberwellen für die offenen Pfeifenröhren und Ausgabe> an Verstärker. Eigentlich liesse sich an dieser Stelle auch ein> Digitalverstärker nehmen, meine Ich.
Ein Digitalverstärker, wie du es nennst, ist auf den ertel Blick eine
gute Idee, weil er nur ON/OFF bzw PLUS/MINUS schaltet und so Verluste
spart, er kann aber so nur Rechtecksignale verstärken. Die Oberwellen
sind dabei nach Fourier festgelegt. Sobald Du dort noch herummischst,
kommen Zwischensignale heraus und Du benötist wieder einen
Linearverstärker.
Wenn Du mit PWM arbeitest, dann kannst Du das Zumischen der Oberwellen
im FPGA oder dem AVR machen, erhälst damit ein virtuelles Analogsignal
(von mir aus als 16 Bit), das Du dann in die PWM-Wandlung führst. Ab
dann bist Du wieder digital und könntest einen solchen digitalen
Verstärker nehmen. Wenn Du das aber so ausgibts, bekommst Du neue
Oberwellen, nur diesmal im MHz-Bereich. Die werden zwar theoretisch am
Lautsprecher gekillt, sie erzeugen Dir aber zusammen mit dem Verhalten
der PWM (die ist ja nicht ideal und produziert Schwebungen) auch
Störungen im NF-Bereich. Das ist nicht so einfach zu handhaben.
Besser wäre es, du würdest die einzelnen PWM-Ausgänge ((besser noch
PDM!) direkt auf einen Tiefpass geben und damit wieder ein analoges
Signal machen. Die Bandbegrezung würde die Oberwellen der PWM
eliminieren und auch die Artefakte der PDM selber etwas dämpfen, die
musikalischen Oberwellen wären aber noch im Signal enthalten. Ab dann
ginge es auch einen Linearverstärker. Bei Deinen Leistungen sollten
Verluste aber weniger ein Problem sein. So könntest Du jedes Signal über
einen Pin ausgeben.
Mir fällt noch was ein. Es gäbe doch eine Möglichkeit, Digitalendstufen
zu nehmen:
Du mischst zwei Rechtecksignale so in der Amplitude, dass ihre
Oberwellen sich zu einem homogenen Gefüge addieren, das für die
Orgelpfeifenanregung taugt. Das müsste man herausfinden. Die beiden
mischst Du dann erst ausgangsseitig am Lautsprecher, indem Du sie im
Gegentakt arbeiten lässt, wie man das bei H-Brücken macht. U.u. liesse
sich auch ein H-Brückenbaustein finden, der genug Leistung hat. Für
Motoren gibt es das ja.
Ich vermute mal, man könnte neben der einfachen, auch jeweils die
doppelte / dreifache Rechteckfrequenz gleicher Amplitude einspeisen. Im
Mittel hätten beide Ausgänge 50% Pegel (bzw GND bei symmetrischer
Brücke) und damit gäbe es keinen Gleichanteil zwischen den
Gegentaktpins.
Ich habe das aber noch nicht so gemacht und rate nach wie vor zu einer
schnellen PDM mit z.B. 100 MHz Ausgang und einem Filter. Ein einfaches
LC ist da komplett ausreichend. Dann kannst Du immer noch entscheiden,
was Du mal einspeist.
@Hobbyorganist (Gast)
>genau 2,00 MHz oder Vielfache nehme, weil ich keinen Sonderquarz mit der>2,000024 bekomme, habe ich es durchgerechnet und gelange ich zu>folgender Tabelle.
jajaja, die deutsche Präzision.
2,000024 sind 24 Hz Abweichung zu 2 MHz, bzw. 12ppm! Das kann man
problemlos mit einem Trimmer machen, da braucht es keinen Spezialquarz.
Wobei die 12ppm sowieso ein akademischer Furz sind, das spielt praktisch
keinerlei Rolle. Ich behaupte, dass auch Vollprofis mit dem absoluten
Gehör keine 12ppm Verstimmung hören (Tricks wie direkter Vergleich und
Schwebung zählen nicht).
Könnte es sein, dass dieser Quarz gar keine ureigenste Audiobestimmung
besass sondern für einen anderen Zweck gedacht- einfach Verwendung fand,
da verfügbar war?
Mich würde interessieren, ob bei dem Projekt was rausgekommen ist. Falls
der TO noch mitlieset, bitte mal melden.
Dann würde Ich anmerken wollen, dass in der Tabelle oben glaube ich ein
Faktor 2 bei dem Fehler in Cent liegt.
Beitrag "Re: AVR Orgel Eigenbau"
Weil nach dem Mondkalender, alle Orgeln, die an Ostern gebaut werden,
einen gar wunderbaren Klang besitzten.
oder, weil es 4 Tage vor Ostern war, als er das Posting geschrieben hat.
Jörg S. schrieb:> kennst Du das hier:>> http://bolltone.de/Projekte/PropB3/PropB3.html>> Alles fertig, MIDI steuerbar und klingt auch noch... Oh, ist ja> Propeller und nicht AVR... ;-)
Falls Du noch mitliest:
Was war das für ein Projekt? Ist das Deins gewesen? Aktueller link?
Hobbyorganist schrieb:> eine digitale> elektronische Orgel zu bauen. Die Idee ist, die Orgeltöne mit einem oder> mehreren AVRs zu generieren, die auf Knopfdruck jeweils fertig> gesampelte Töne aus dem RAM laden und aus kleinen Lautsprechern heraus> in die Rohren zu jagen, damit diese eine Resonanz bilden und wie echte> Orgeltöne klingen.
Ist aus diesem Projekt etwas geworden?
Die Idee selbst ist nicht verkehrt. Man sollte nur noch Verwirklichung
genau überlegen.
Es müssen für jeden Ton 2 Sachen gemacht werden: Wellenform und
Einschwingen - Anhalten - Ausklang.
Wellenform könnte als eine Tabelle in RAM liegen und bei jedem
Registerumschalten neu aus einzelnen Registertabellen in Flash
zusammengerechnet werden. Unmittelbar aus Flash bei Generation zu
berechnen - dafür ist AVR zu langsam.
Eine Tabelle wäre gut als int16_t, besser statt 512 Worte nur 480 zu
nutzen: damit lassen sich leichter und ungestört reine Quinten und
Terzen machen: das ist für Mixturen und Aliquoten notwendig. 16'
Register bilden in dieser Tabelle eine Schwingung, 8' zwei Schwingungen,
5 1/3' drei usw.
Einschwingen usw.: Ideal wäre Wellenform auch während Einschwingen zu
ändern, dafür ist aber AVR zu langsam. Als Kompromiß kann man hier bei
gleicher Welenform bleiben. Amplitude im Lauf zu berechnen - dafür ist
AVR zu langsam. Hier könnte man aber externe DAC benutzen, die mit
Ext-Vref arbeiten, z.B. MCP4922
Auf dem Bild ist Prinzip dargestellt. ATMega macht in ISR ~30-40 kHz
(das kann Timer 1, Timer2 sein oder Int0 ) Schallsynthese für Kanal A
und B. PWM von OC0A und OC0B wird für Atacca und Release benutzt. Eine
Diode macht es möglich, daß Release ca. 4x Attaca lang wird (normale
Verhältnis für Orgel). PWM bestimmt die Amplitude, die Orgelintonation
verbessert und dafür negative Wirkung von Ausgangsfilter entgegenwirkt.
Es sollte eine Zentraleinheit vorhanden sein, die Tasten befragt oder
über MIDI notwendige Information bekommt, findet dann freie
Synheseinheit und über I2C oder SPI diese Einheit auf notwendige
Frequenz, Phase und Amplitude einstimmt, auch Wellenform übergibt. Somit
kann man alles mit ca. 8 oder 10 Syntheseinheiten machen.
Hobbyorganist schrieb:> Die Schleife müsste für 10> Töne mit mindestens 480kHz laufen - ginge das?
Hier bleibt mir unklar, wozu man 480 kHz braucht? Z.B. CD klingt mit
44,1 kHz sehr gut.
Mit 16 oder 20 MHz Takt und mit 40 kHz Schallerzeugung kann AVR 2 Töne
machen und es bleibt dazwischen noch etwas Zeit für Anderes (Steuercode
empfangen und bewerten usw.). Am besten kann man diese 2 Töne für einen
einzigen Ton benutzen: entweder um Stereo zu machen oder für Schwebung.
Jürgen S. schrieb:> Wie misst man "sehr gut"?
Ich bin ein Musiker. Entsprechend habe ich Ohren. Für mich ist
CD-Qualität völlig ausreichend.
Wenn mir irgendeine Aufnahme nicht gefällt, dann liegt das nie in
Träger-Qualität. Normalerweise schlechte Aufführung oder schlecht
Mikrofone gestellt oder schlecht geschnitten.
Jürgen S. schrieb:> Ich will jetzt keine Diskussion um höhere Abtastraten anfangen und> verweise daher auf die Abhandlung von Andreas Gernemann sowie ein> Beispiel auf meiner Webseite:
Vielleicht hat er empfindlichere Ohren als ich? Theorie allein ist hier
nutzlos.
Was aber elektronische Musikinstrument betrifft: zum Unterschied von
Mikrofon, Verstärker und Lautsprecher darf ein Musikinstrument selbst
klingen. Deshalb darf man hier von Verzerrungen gar nicht reden.
Eine Orgel hat normalerweise C - f3 oder C - g3 in Manual (ausnahmsweise
C - c4, aber nur kleine Übeorgeln) und C - f1 oder C - g1, bei alten
Instrumenten auch C - d1 und sogar C - c1 in Pedal. Für 16' Register C =
32,7 Hz, g3 = 784 Hz, für 1' Register C = 523 Hz, g3 = 12544 Hz. Höher
klingt eine Orgel nie. Wenn es über g3 geht, repetieren die Pfeifen eine
Oktave tiefer. Oft repetieren sie auch unter g3. Aber schon über 8 kHz
kann man Tonhöhe kaum noch unterscheiden, man hört nur "klingeln",
irgendwas ohne bestimmten Ton (hier kann man selber ein Experiment
machen: man spielt Arpeggio auf einem Klavier von unten bis nach oben.
Zuerst C-Dur, das endet sich auf c5. Danach D-Dur, aber das endet sich
auch auf c5, da ein Klavier d5 gar nicht hat. Trotzdem hört man ganz
normale Akkord ohne Verfälschung! :) ).
D.h. stupide Rechnung, daß man unbedingt 20 kHz braucht und bei 44, 1
kHz CD 20 kHz verzerrt wird - das ist nur reine Theorie. Für Praxis hat
das keine Bedeutung, da hohe Frequenzen zwar als Obertöne vorhanden,
aber Amplitude ist klein.
Maxim B. schrieb:> Ich bin ein Musiker.
dito.
>Entsprechend habe ich Ohren.
dito
> Für mich ist CD-Qualität völlig ausreichend
für mich nicht, denn:
Wenn man z.B. Geigen aufnimmt, dann weiß man um den hohen Anteil der
Lautstärke im hohen Frequenzbereich. Geigen geben nämlich sogar meßbaren
Ultrasschall ab und man kann annehmen, dass der auch erfasst wird, weil
er das Trommelfell und die Gehörknochen beeindruckt, selbst wenn die
Sinneshaare ihn nicht weiterleiten können. Für Sprache gilt ähnliches,
was den hohen Spektralanteil angeht.
Aus dem Grunde müssen Mikrofone für Geigen, Sprache und andere auch
entsprechend "stumpf" klingen oder es filtertechnisch reduziert werden,
um nicht zu viele Anteile in der Nähe von Nyquist oder gar darüber zu
produzieren, die nicht abgebildet werden.
Dass eine CD "gut klingt" ist also kein Maßstab, denn beim Mastering
wird genau darauf Rücksicht genommen. Musik wird mit abfallenden
Bandfiltern bearbeitet, die ab etwa 1kHz mit 3dB/oct fallen. Das
unterstützt die Reduktion im oberen Band und macht die Angelegenheit
unkritischer. Bei 96kHz/SACD z.B. braucht man die Verrenkungen nicht und
kann so mischen, wie gewollt und nötig. Geigen profitieren sehr von
hohen Abtastraten.
Maxim B. schrieb:> darf ein Musikinstrument selbst> klingen. Deshalb darf man hier von Verzerrungen gar nicht reden.
Ja, sie dürfen klingen, nur wird bei dieser Betrachtung verkannt, dass
die Oberwellen von Instrumenten immer zu ihren Grundwellen passen, bzw
im Fall des Diskantproblems beim Klaiver z.B. eine Instrumenteneigenheit
sind. Abflachungen und Verhalten im Frequenzgang durch Mikrofone,
Dämpfer und die Raumakustik produzieren dabei lineare Verzerrungen.
Die Benutzung einer starren Abtastfrequenz und die daraus resultierenden
Spiegelfrequenzen generieren aber spektrale Verzerrungen durch die
Erzeugung neuer, nicht passender Obertöne.
Jürgen S. schrieb:> Geigen geben nämlich sogar meßbaren> Ultrasschall ab und man kann annehmen
Auch wenn du Ultraschall aufnehmen kannst - kannst du den auch hören?
Ich nicht.
Wozu braucht man etwas aufnehmen, was man sowieso nicht hören kann?
Jürgen S. schrieb:> Aus dem Grunde müssen Mikrofone für Geigen, Sprache und andere auch> entsprechend "stumpf" klingen
Ein Mikrofon darf nicht klingen: Mikrofon ist kein Musikinstrument! Wenn
ein Mikrofon klingt, bedeutet das nur, daß dieses Mikrofon den Klang
verzerrt.
Jürgen S. schrieb:> Musik wird mit abfallenden> Bandfiltern bearbeitet, die ab etwa 1kHz mit 3dB/oct fallen.
Wirklich? Und wer macht das so mit Musik? Ich nicht. Ich sehe dafür
keine Notwendigkeit, auch bei 44100/16.
Jürgen S. schrieb:> Ja, sie dürfen klingen, nur wird bei dieser Betrachtung verkannt, dass> die Oberwellen von Instrumenten immer zu ihren Grundwellen passen
Bist du sicher? Hast du etwas von unharmonischen Obertönen gehört?
Jürgen S. schrieb:> bzw> im Fall des Diskantproblems beim Klaiver
Warum denkst du, daß
1. unharmonische Obertöne nur Klavier hat?
2. unharmonische Obertöne Klavier nur in Diskant hat?
Konische Orgelpfeifen haben auch unharmonische Obertöne, wie auch
Zungen. Klavier hat unharmonische Obertöne auf allen Saiten, auch im
Baß. Wie sonst kann man erklären, daß gleichmäßige Sequenz von Quarten,
Quinten, Sexten und Terzen bei Übergang von Baß zu Mitte unterbrochen
wird?
Aber das alles ist trotzdem kein Grund, ein Mikrofon klingen lassen,
d.h. aus einem Mikrofon eine Klangverzerrkiste machen.
Jürgen S. schrieb:> Die Benutzung einer starren Abtastfrequenz und die daraus resultierenden> Spiegelfrequenzen generieren aber spektrale Verzerrungen durch die> Erzeugung neuer, nicht passender Obertöne.
Ich bin wirklich erstaunt, wie viel alles DU HÖREN kannst!
von Maxim B. (max182)
>Auch wenn du Ultraschall aufnehmen kannst - kannst du den auch hören?>Ich nicht.>Wozu braucht man etwas aufnehmen, was man sowieso nicht hören kann?
Ja, man kann ihn hören, weil es nichtlineare Effekte gibt:
https://www.elektormagazine.de/magazine/elektor-201103/3764
Christoph M. schrieb:> Ja, man kann ihn hören, weil es nichtlineare Effekte gibt:
Dafür sollte Ultraschall große Amplitude haben. In Praxis kommt das so
gut wie nie vor.
Mag sein, daß man bei einer Geige Ultraschall feststellen kann. Dafür
sollte man aber Messmikrofon sehr nah an Saiten und Decke platzieren.
Das ist absolut unrealistische Fall für Praxis.
D.h. wie sagt man in KGB: wer sucht, der findet immer :)