Synthétisation d`un orgue
Transcription
Synthétisation d`un orgue
Weitere Files findest du auf www.semestra.ch/files DIE FILES DÜRFEN NUR FÜR DEN EIGENEN GEBRAUCH BENUTZT WERDEN. DAS COPYRIGHT LIEGT BEIM JEWEILIGEN AUTOR. Synthétisation d’un orgue Analyse et Simulation Christoph Walker Matthias Kolly Noé Lutz Michel Kaltenrieder 3 mars 2004 Table des matières: 1 Introduction....................................................................... 2 Michel 31.3.04 11:04 Gelöscht: hèmes 2 Equipement utilisé ............................................................ 2 3 Échantillons ....................................................................... 4 Matthias Mahr 1.5.08 16:14 5 Conclusion ......................................................................... 8 Gelöscht: 4 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 Michel 31.3.04 11:04 Gelöscht: Fehler! Es wurden keine Einträge für das Inhaltsverzeichnis gefunden. Fehler! Formatvorlage nicht definiert. Synthétisation d’un orgue Fehler! Formatvorlage nicht definiert.Fehler! Formatvorlage nicht definiert. 1 Gelöscht: Synthétisation d’un orgue Matthias Mahr 1.5.08 16:14 Introduction Gelöscht: Synthétisation d’un orgue Le but de ce projet était de synthétiser les différents sons des registres d'un orgue a pipe. Pour cela il fallait d'abord enregistrer les sons ainsi de les analyser (FFT - Analyse de fréquence). Pour la reproduction des sons (synthétisation) on s'est servi uniquement des coefficients de la transformation de fourrier correspondante. Tout cela naturellement avec le but de garder une qualité de son acceptable. Les enregistrements se sont fait dans l'église de Prez-vers-Noréaz. Cet orgue comporte les registres suivants : Bourdon FluteDouce FluteDouceGambe Gambe Mixture Matthias Mahr 1.5.08 16:14 Octave8 Prestant Principale Salicional SousBasse Trompette Voix Celeste VoixCeleste_Salicional Michel 31.3.04 11:08 Gelöscht: frequence Michel 31.3.04 11:08 Gelöscht: relatif Michel 31.3.04 11:09 Gelöscht: s ça Michel 31.3.04 11:10 Gelöscht: L'orgue qui se situ la-bas date de [ORGEL_DATE] et se classe comme [enum: Barock, Romantik]. Elle contient [Anzahl_Pfeifen] pipes repartis sur les registres suivantes: Michel 31.3.04 11:07 Gelöscht: and Michel 31.3.04 11:07 Gelöscht: e Michel 31.3.04 11:07 Gelöscht: e 2 Equipement utilisé Michel 31.3.04 13:04 Gelöscht: Matthias Mahr 1.5.08 16:14 Formatiert: Seitenzahl, Englisch (USA) Laptop - Stockage des samples Carte son externe Préamplificateur Microphone - Conversion A/D du son (24 bits) - Sortie Firewire Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 2.1 Description: Processeur: Memory: Gelöscht: 3 mars 2004 Laptop Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Acer TravelMate 290 (Centrino) Intel Pentium M 1.3GHz 512MB DDR Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Fehler! Formatvorlage nicht definiert. -2- 3 mars 2004 Fehler! Formatvorlage nicht definiert. Synthétisation d’un orgue Fehler! Formatvorlage nicht definiert.Fehler! Formatvorlage nicht definiert. 2.2 Description: Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue Matthias Mahr 1.5.08 16:14 Carte son Gelöscht: Synthétisation d’un orgue MOTU 896 FireWire Carte son externe, connexion par FireWire. 2.3 Microphone Microphone à condensateur actif avec caractéristique cardioïde. On c'est décidé de prendre un tel microphone parce que ça nous permettait, grâce à la caractéristique cardioïde, de bien définir la zone d’où les sons arrivent. Ce procédé nous a permis de limiter une partie des bruits indésirables. Michel 31.3.04 11:11 Gelöscht: lorsque de Michel 31.3.04 11:11 Gelöscht: Ca Michel 31.3.04 11:12 Gelöscht: supprime déjà la plus part d Michel 31.3.04 11:12 Gelöscht: souhaitables Source de son Michel 31.3.04 13:04 Gelöscht: Matthias Mahr 1.5.08 16:14 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Fehler! Formatvorlage nicht definiert. -3- 3 mars 2004 Fehler! Formatvorlage nicht definiert. Synthétisation d’un orgue Fehler! Formatvorlage nicht definiert.Fehler! Formatvorlage nicht definiert. 3 Gelöscht: Synthétisation d’un orgue Bourdon C0.wav C2.wav Prestant C1.wav C2.wav FluteDouce C0.wav C2.wav C4.wav Principal C0.wav C0_E0_G0.wav C1.wav C1_E1_G1.wav C1_synte.wav C1_synte_.wav C2.wav C2_E2_G2.wav C3_E3_G3.wav G0.wav G1.wav G2.wav Gambe C0.wav C2.wav C4.wav Mixture C0.wav C0_F0.wav MontreNoé.wav Octave8 C0.wav C1.wav C2.wav Gelöscht: Synthétisation d’un orgue Matthias Mahr 1.5.08 16:14 Échantillons FluteDouceGambe C0.wav C2.wav C4.wav Matthias Mahr 1.5.08 16:14 Salicional C0.wav C1.wav C3.wav C4.wav G0.wav G3.wav SousBasse C0.wav C1.wav C2.wav Silence.wav Michel 31.3.04 11:13 Gelöscht: and Michel 31.3.04 11:13 Gelöscht: e Trompette C1.wav C2.wav Voix Céleste C1.wav C3.wav C4.wav G1.wav G3.wav Michel 31.3.04 11:13 Gelöscht: Celeste VoixCéleste_Salicional C1.wav C3.wav C4.wav G1.wav G3.wav Michel 31.3.04 11:13 Gelöscht: VoixCeleste Michel 31.3.04 11:13 Gelöscht: e Michel 31.3.04 11:13 Gelöscht: e Matthias Mahr 1.5.08 16:14 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Fehler! Formatvorlage nicht definiert. -4- 3 mars 2004 Fehler! Formatvorlage nicht definiert. Synthétisation d’un orgue Fehler! Formatvorlage nicht definiert.Fehler! Formatvorlage nicht definiert. 4 Analyse 4.1 Enregistrement Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue La qualité du son est dépendante d’une quantité innombrable de facteurs. Le choix de type et de l’emplacement du microphone en est un particulièrement important. Il nous a fallu plusieurs essais pour trouer le son optimal. Voici notre choix: Michel 31.3.04 11:14 Gelöscht: de plusieurs facteurs Michel 31.3.04 11:15 Gelöscht: . Michel 31.3.04 11:15 Gelöscht: En garantissant du matériel de bonne qualité il faut ensuit trouver le meilleur type de microphone (cardioïde ou directionnel) et le meilleur emplacement de ce dernier 7.3m Michel 31.3.04 11:19 Montre Gelöscht: n Michel 31.3.04 11:18 Gelöscht: fallait Michel 31.3.04 11:19 Gelöscht: ver le meilleur son Michel 31.3.04 11:19 Gelöscht: 4.2m Table de jeux Microphone 4.2 Matthias Mahr 1.5.08 16:14 Formatiert: Seitenzahl, Englisch (USA) Code Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 4.2.1 compareSounds.m 1. 2. 3. 4. 5. 6. 7. 8. 9. Matthias Mahr 1.5.08 16:14 % compareSounds % fichier qui compare un do enregistre avec un do calcule function compareSounds PATH = '/Users/noe/Documents/eif/2D/analyse et simulation/projet/AS07 - orgue/'; % notes a disposition NoteList = {'Bourdand/C0.mat';'Bourdand/C2.mat';'FluteDouce/C0.mat';'FluteDouce/C2.mat';'Flut eDouce/C4.mat';'FluteDouceGambe/C0.mat';'FluteDouceGambe/C2.mat';'FluteDouce Gambe/C4.mat';'Gambe/C0.mat';'Gambe/C2.mat';'Gambe/C4.mat';'MATHLAB/test.mat ';'Mixture/C0.mat';'Octave8/C0.mat';'Octave8/C1.mat';'Octave8/C2.mat';'Prest ant/C1.mat';'Prestant/C2.mat';'Principale/C1.mat';'Principale/C2.mat';'Salic ionale/C0.mat';'Salicionale/C1.mat';'Salicionale/C3.mat';'SousBass/C0.mat';'Sou sBass/C1.mat';'SousBass/C2.mat';'Trompet/C1.mat';'Trompet/C2.mat';'Voix Celeste/C1.mat';'Voix Celeste/C3.mat';'Voix Celeste/C4.mat';'VoixCeleste_Salicionale/C1.mat';'VoixCeleste_Salicionale/C3.m at';'VoixCeleste_Salicionale/C4.mat'}; Fs = 44100; NoteAJouer = [19 20 19 20 19 20]; % principale C1 C2 octave = [0 -1 1 0 2 1]; Fehler! Formatvorlage nicht definiert. -5- 3 mars 2004 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Fehler! Formatvorlage nicht definiert. Synthétisation d’un orgue Fehler! Formatvorlage nicht definiert.Fehler! Formatvorlage nicht definiert. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. yOut = 0; for i=1:size(NoteAJouer,2) Gelöscht: Synthétisation d’un orgue Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue % charger la matrice load(char(strcat(PATH,NoteList(NoteAJouer(i))))); end Matthias Mahr 1.5.08 16:14 % generation du son & adaptation de l'amplitude y = generateNote(maxValues,1,1,octave(i),Fs,0)*(1/i); yPlot = abs(fft(y)); subplot(size(NoteAJouer,2),1,i); plot(yPlot(1:1000)); % generateNote returns a vector of size duration*Fs yOut = [yOut y]; % ---------------------------------------------------------------% adaptation de l'amplitude yOut = yOut / 1000 * 0.2; % --------------------------------------------------------------% Ecriture du wav syntetise wavwrite(yOut,Fs,'compareSounds.wav'); end 4.2.2 synthétiser.m 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. % synthetise: % programme qui permet de synthetiser tous nos sons enregistres puis de % sauvegarder la matrice de valeurs maximums dans un fichier binaire % ([frequence amplitude]). De cette facon nous pouvons separer % l'application qui joue le morceau de l'application qui synthetise les % sons % function synthetiser % repertoire principale PATH = '/Users/noe/Documents/eif/2D/analyse et simulation/projet/AS07 - orgue/'; % nombre de coefficients qu'on va utiliser pour synthetiser le son NBR_KOEFF = 50; % liste de tous les fichiers qu'on veut synthetiser. NoteList = {'Bourdand/C0';'Bourdand/C2';'FluteDouce/C0';'FluteDouce/C2';'FluteDouce/C4';'Flut eDouceGambe/C0';'FluteDouceGambe/C2';'FluteDouceGambe/C4';'Gambe/C0';'Gambe/C2';'G ambe/C4';'Mixture/C0';'Octave8/C0';'Octave8/C1';'Octave8/C2';'Prestant/C1';' Prestant/C2';'Principale/C1';'Principale/C2';'Salicionale/C0';'Salicionale/C 1';'Salicionale/C3';'SousBass/C0';'SousBass/C1';'SousBass/C2';'Trompet/C1';' Trompet/C2';'Voix Celeste/C1';'Voix Celeste/C3';'Voix Celeste/C4';'VoixCeleste_Salicionale/C1';'VoixCeleste_Salicionale/C3';'VoixCel este_Salicionale/C4'}; Matthias Mahr 1.5.08 16:14 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 % pour chaque fichier for i=1:size(NoteList,1) Gelöscht: 3 mars 2004 % Lecture du fichier % ---------------------------------------------------------------- Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 FName = char(NoteList); FName = FName(i,:); % lire le fichier wave [y,Fs,bits]=wavread([PATH strcat(FName,'.wav')]); y=y(:,1); % prendre qu'une piste (on est en mono) Matthias Mahr 1.5.08 16:14 % FFT % ---------------------------------------------------------------% couper le son. on garde uniquement le son dans son etat stabilise y=y(100000:150000); % obtenir un nombre d'echentillions qui est une puissance de 2 n=2^floor(log2(size(y,1))); Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Gelöscht: 3 mars 2004 Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) f=Fs*(0:n)/n; % echelle des frequences z=fft(y,n+1); % vecteur complex de la transformation de fourier c=abs(z); % vecteur d'arguments des nombres complex Fehler! Formatvorlage nicht definiert. -6- 3 mars 2004 Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Fehler! Formatvorlage nicht definiert. Synthétisation d’un orgue Fehler! Formatvorlage nicht definiert.Fehler! Formatvorlage nicht definiert. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. % recherche les maxima % ---------------------------------------------------------------c(1:20)=0; maxValues=[]; for i=1:NBR_KOEFF % recherche maximum local [cmax,k] = max(c(1:n/2+1)); % enregistrer la valeur de l'amplitude et sa frequence maxValues(i,:) = [Fs*k/n cmax]; % applatir les valeurs autour du maximum c(k-20:k+20) = 0; end Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue % sauver les maxValues. % ---------------------------------------------------------------% enregistrer la matrice dans un fichier binaire filename = strcat(strcat(PATH,FName),'.mat') save(filename,'maxValues'); end end 4.2.3 generateNote.m 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. % function qui genere une note d'apres le vecteur des valeurs maximum % l'octave de reference est 0 function noteOut = generateNote( maxValues, duration, note, octave, Fs, addAttack) % frequences from DO to SI in Hz frequencies = logspace(log10(1),log10(2),13); octave = 2^octave; t=(1:duration*Fs)/Fs; y=0; for i=1:size(maxValues,1); y = y + maxValues(i,2) * sin(maxValues(i,1)*frequencies(note)*octave*2*pi*t); end if addAttack % attaque et declin attack = logspace(log10(1),log10(2),1000)-1; n = size(maxValues,1)-1; for i=1:size(attack,2) y(i) = attack(i) * y(i); j=n-1; y(j) = attack(i) * y(j); end end noteOut = y; Matthias Mahr 1.5.08 16:14 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 end Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 4.2.4 play.m 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 % Play % Programme qui permet de jouer frere jacques en canon. % function play Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) PATH = '/Users/noe/Documents/eif/2D/analyse et simulation/projet/AS07 - orgue/'; % notes a disposition NoteList = {'Octave8/C1.mat';'Prestant/C1.mat';'Principale/C1.mat';'Salicionale/C1.mat';'So usBass/C1.mat';'Trompet/C1.mat';'Voix Celeste/C1.mat';'VoixCeleste_Salicionale/C1.mat'}; NBR_KOEFF = 50; % frequence d'echentionnage Fs = 44100; Fehler! Formatvorlage nicht definiert. -7- 3 mars 2004 Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Fehler! Formatvorlage nicht definiert. Synthétisation d’un orgue Fehler! Formatvorlage nicht definiert.Fehler! Formatvorlage nicht definiert. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. % notes a jouter 1==DO notes = [1 3 5 1 1 3 5 1 5 6 8 5 6 8 8 10 8 6 5 1 8 10 8 6 5 1 1 8 1 1 8 1]; % Octave a jouter pour chaque note 0==octave de reference octave = [diag(zeros(27))' -1 0 0 -1 0]; % duree de la note. duration = [2 2 2 2 2 2 2 2 2 2 4 2 2 4 1 1 1 1 2 2 1 1 1 1 2 2 2 2 4 2 2 4]; % adaptation de la duree duration = duration / 8; Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue Matthias Mahr 1.5.08 16:14 Gelöscht: Synthétisation d’un orgue % note a utiliser pour jouer le canon register = [2 3 4]; % Prestant, Principale, Salicionale octave = octave -1; % chargement des valeurs maximales d'apres les matrices enregistrees % ---------------------------------------------------------------yMatrix = []; for j=1:size(register,2) % charger la matrice load(char(strcat(PATH,NoteList(register(j))))); y = 0; for i=1:size(notes,2) % generateNote returns a vector of size duration*Fs y = [y generateNote(maxValues,duration(i),notes(i),octave(i),Fs,1)]; end yMatrix(j,:) = y; octave = octave +1; end % assembler les notes en canon % ---------------------------------------------------------------offset = linspace(0,0,8*duration(1)*Fs); % pour le canon y=yMatrix(1,:); offset2=offset; for j=2:size(register,2) y = [y offset] + [offset2 yMatrix(j,:)]*0.5; offset2 = [offset2 offset]; end Michel 31.3.04 11:21 Gelöscht: très facile Michel 31.3.04 11:22 Gelöscht: Déjà la problématique d'enregistrer - un orgue se trouve dans une maison dite "sainte", directement au dessous du toit, ce qui pose des difficultés au niveau logistique, mais aussi que c'est un emplacement public, où, comme ça arrivait chez nous, les gens vont prie % ---------------------------------------------------------------% adaptation de l'amplitude y = y / 1000 *0.2; % --------------------------------------------------------------% Ecriture du wav syntetise wavwrite(y,Fs,'canon_synte.wav'); Michel 31.3.04 11:20 Gelöscht: r. end Matthias 16:14 Notre travailMahr arrive 1.5.08 de loin pas à la frontière de Formatiert: Seitenzahl, Englisch (USA) l'imaginabilité. Nous nous sommes concentré surtout à reproduire le son principal, ça veut dire, quand le son Matthias Mahr 1.5.08 16:14 s'est développé. Il reste la problématique de l'attaque et l'echo. Gelöscht: 3 mars 2004 Matthias Mahr 1.5.08 16:14 5 Gelöscht: 3 mars 2004 Conclusion Matthias Mahr 1.5.08 16:14 Le problème de synthétiser les différents sons d'une orge n'est pas une mince affaire. Gelöscht: 3 mars 2004 D’une part, il faudrait avoir un accès exclusif aux locaux, ce qui n’est pas si facile dans une église. Dans notre cas, des gens étaient venus prier (à haute voix) pendant les enregistrements. De plus, il faudrait enregistrer la nuit, etc… D’autre part, synthétiser un son est une chose, mais en simuler l’attaque et le déclin, prendre en compte de manière satisfaisante les échos, etc… sont des choses très difficiles, sur lesquelles les fabricants d’instruments électroniques se cassent encore la tête aujourd’hui. Même avec une puissance de calcul quasi-infinie, pourra-t-on jamais voler « l’âme » des instruments de musique analogiques ? Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Michel 31.3.04 13:04 Formatiert: Seitenzahl, Englisch (USA) Matthias Mahr 1.5.08 16:14 Gelöscht: 3 mars 2004 Fehler! Formatvorlage nicht definiert. -8- 3 mars 2004