Forum: Mikrocontroller und Digitale Elektronik Teensy Synth "Shruthi 2"


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
4 lesenswert
nicht lesenswert
Hallöchen zusammen..

Ich entwickel zur Zeit einen neuen DIY Synthesizer auf Basis eines 
Teensy 4.0 Boards. Der Synthesizer wird ähnlich aussehen wie der kleine 
Shruthi Synthesizer von Mutable Instruments. Im Vergleich zum Shruthi 
wird dieser Synth mehrstimmig sein, ein farbiges TFT Display besitzen 
und noch andere Dinge wzB ein 2Channel 16Bit DA-Wandler, digitale und 
analoge Filter. Das Gehäuse- und Platinen-Format wird ähnlich dem 
Shruthi sein (siehe Bild). Deshalb habe ich für das DIY Project auch den 
Namen "Shruthi 2" gewählt.

Display Test am Teensy: https://youtu.be/14eL3NDJccw

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Kleines Update..

"Bald wird wieder Musik gemacht.."  :))

Ich habe das 2.2 Zoll große TFT Display gegen ein kleineres 1.8 Zoll 
Display ersetzt. Ich bin der Meinung das passt besser zu dem kleinen 
Shruthi Format. Das 2.2 Zoll Display hat doch etwas überladen 
ausgesehen. Wellenformdarstellungen und Menütexte passen auch auf so 
einem kleinen Farbdisplay mit einer Auflösung von 128 x 160 Pixel.

Das Teensy 4.0 Board habe ich auf die Rückseite gesetzt. Was noch fehlt 
ist der 16Bit 2Ch. DA-Wandler PT8211. Dieser ist bestellt. Mit den 4 
Potis steuert man die Parametereinstellung. Der Encoder ist mit einer 
Tastenfunktion ausgestattet und steuert die Menüfunktionen. Es gibt 4 
analoge Eingänge für Modulation. Midi-Buchsen und 6 Tasten und 8 LED's.

Es wird die Möglichkeit geben, den "Shruthi 2" mit oder ohne Filterboard 
zu betreiben. Man hat dann die Möglichkeit, die digitalen Filter im 
Teensy zu nutzen.

Gruß Rolf

: Bearbeitet durch User
von tom (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:

> "Bald wird wieder Musik gemacht.."  :))

Kannst Du etwas zur Latenz sagen?
Bzw. ist der Teensy auch für Eurorack interessant, in interaktion mit 
CV?

Schön wäre, wenn man bei deinem Synth die Form der Hüllkurven einstellen 
oder gar modulieren könnte.
Das ist eine sehr mächtige Funktion, die auch im Mix sehr wichtig ist 
und letztlich Kompressoren oft überflüssig macht.
Unterschätze niemals das Anpingen von Filtern ...

Was für eine Syntheseform wird es?

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Wellenform-, Wavetable-, Granular-, FM-, PWM-, Subtraktive-, Additive-, 
16Bit Samples, Digitale und Analoge Filter, Delay und Hall Effekte. Mal 
schaun was der kleine Professor so alles kann. Sound 16Bit DAC mit 
44.1KHz und Oversampling. Hülkuven: DAHDSR (Delay Attack Hold Decay 
Sustain Release), Sequencer, TFT color Display, Shruthi-Filterboards 
uvm..

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
tom schrieb:
> Kannst Du etwas zur Latenz sagen?
> Bzw. ist der Teensy auch für Eurorack interessant, in interaktion mit
> CV?

Hallo Tom

Ich habe jetzt Midi integriert und die Latenz gemessen. Sie liegt im 
Bereich von 5ms. Die ADC-Eingänge im Teensy 4.0 und Teensy 4.1 rauschen 
sehr. Eine 12Bit Auflösung für Modulationszwecke dadurch kaum machbar. 
Ich benutze 4 Potis an den ADC Eingängen mit einer 7Bit Auflösung. Das 
funktioniert gut. Für meine 4 Modulationseingänge werde ich einen 
externen 12Bit AD-Wandler zB den MCP3208 benutzen. Der hat einen 
Referenzspannungseingang. Beim Teensy 4.0 und 4.1 ist die 
Referenzspannung für den ADC direkt mit der Versorgungsspannung im Chip 
verbunden. Einen externen Referenzspannungseingang gibt es leider nicht.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
First sound on my Teensy Synth "Shruthi 2" . Der Sound ist nicht 
besonders gut da er vom Handy aufgenommen wurde. Die Hardware besteht 
jetzt aus einem Teensy 4.1 Board und SGTL5000 2ch. 16Bit DAC. Zur Zeit 
ist der Shruthi2 noch einstimmig. Er soll später aber 6stimmig werden.

Video: https://youtu.be/ffCMaR70G6g

Gruß Rolf

: Bearbeitet durch User
Beitrag #6439961 wurde vom Autor gelöscht.
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Hallöchen..

Zur Zeit beschäftige ich mich viel mit der Entwicklung des kleinen
"Shruthi 2" Synthesizer. Ein häufiges Problem bei Entwicklungen von
Musikelektronik Projekten am PC, ist ein störendes 50Hz Brummen im
Audiosignal. Schuld ist eine Masseschleife die durch eine Doppelerdung
durch das Tonsignalkabel zwischen PC, Mischpult, USB-Schnittstelle und
Oszilloskop, sowie dem Schutz-
kontaktleiter in der Elektroanlage entsteht.

Um das Brumm-Problem an meinem Arbeitsplatz in den Griff zu kriegen,
habe ich einen NF-Übertrager (Niederfrequenz-Übertrager) und USB
Isolator enutzt. Beide Geräte trennen das Signal galvanisch vom Synth
zum Mischpult und der USB-Schnittstelle am PC. Jetzt kann ich ohne
störendes Brumm mit dem geerdeten Oszilloskop am Synthesizer messen. Der
vewendete USB-Isolator von Meilhaus ist USB-1 und USB-2 kompatibel und
funktioniert unter Windows 10
problemlos. Ohne Probleme konnte ich auch mein Teensy 4.1 Board über den
USB-Isolator programmieren.

1.Bild: USB Isolator
Link:
https://www.reichelt.de/meilhaus-usb-isolator-me-usb-iso-me-usb-iso-p266402.html?search=ME+USB

2.Bild: NF-Übetrager
Link:
https://www.monacor.de/produkte/beschallungstechnik/signalverarbeitung/signaloptimierung/fga-40hq/

Gruß Rolf

von Bülent C. (mirki)


Bewertung
1 lesenswert
nicht lesenswert
schönes Projekt!
In meinen Audio Projekten hatte ich vieles immer auf Differential 
ausgelegt. Dadurch hatte ich die "Erdungsprobleme" nicht.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Ab heute tanzen wir mehrstimmig :)

Der "Shruthi 2" hat jetzt 6 Stimmen und spielt polyphon. Ich denke man 
kann das noch auf 8 Stimmen ausbauen, da die Prozessorauslastung 
inklusiv der Filterberechnung unter 6% liegt. Zur Zeit gibt es nur einen 
Oszillator pro Stimme. Es werden später aber 2 pro Stimme. Die 
Oszillator Funktionen sind noch nicht integriert. Das ist jetzt mein 
nächster Schritt. Am Klang wird noch gearbeitet. Es ist halt noch viel
zu programmieren. Packen wirs an ;-)

1.Bild: Der Synth Block
2.Bild: Prototyp "Shruthi 2"

Video Link: https://youtu.be/Oj_5WZgwOww

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen :)

Ich habe die Potentiometer-Abfrage in den Setup-Einstellungen noch etwas 
optimiert. Das verhindert das zufällige Springen der Potiwerte in den 
Menüseiten.
1
#include <ResponsiveAnalogRead.h>
2
3
//init ADC inputs fom Teensy in Setup function
4
  pinMode(14, INPUT_DISABLE);
5
  pinMode(16, INPUT_DISABLE);
6
  pinMode(17, INPUT_DISABLE);
7
  pinMode(22, INPUT_DISABLE);
8
        ResponsiveAnalogRead analog1(A0, true);
9
        ResponsiveAnalogRead analog2(A2, true);
10
        ResponsiveAnalogRead analog3(A3, true);
11
        ResponsiveAnalogRead analog4(A8, true);
12
  analog1.setActivityThreshold(16);
13
  analog2.setActivityThreshold(16);
14
  analog3.setActivityThreshold(16);
15
  analog4.setActivityThreshold(16);
16
  analog1.enableEdgeSnap();
17
  analog2.enableEdgeSnap();
18
  analog3.enableEdgeSnap();
19
  analog4.enableEdgeSnap();
20
21
//*************************************************************************
22
// read Potentiometers 
23
//*************************************************************************
24
boolean read_pots (void)
25
{
26
  boolean pot_change = false;
27
  
28
  // read Potentiometer 1
29
  if (analog1.hasChanged() == true){
30
    pot_1 = ((analog1.getValue())>> 3);
31
    pot_1_change = true;
32
    pot_change = true;
33
  }
34
  
35
  // read Potentiometer 2
36
  if (analog2.hasChanged() == true){
37
    pot_2 = ((analog2.getValue())>> 3);
38
    pot_2_change = true;
39
    pot_change = true;
40
  }
41
  
42
  // read Potentiometer 3
43
  if (analog3.hasChanged() == true){
44
    pot_3 = ((analog3.getValue())>> 3);
45
    pot_3_change = true;
46
    pot_change = true;
47
  }
48
  
49
  // read Potentiometer 4
50
  if (analog4.hasChanged() == true){
51
    pot_4 = ((analog4.getValue())>> 3);
52
    pot_4_change = true;
53
    pot_change = true;
54
  }
55
  
56
  boolean temp_flag = pot_change;
57
  pot_change = false;
58
  return temp_flag;
59
}

Im Anhang der komplette Arduino Code. Alles noch in Arbeit ;)

Gruß Rolf

von tom (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Midi integriert und die Latenz gemessen. Sie liegt im
> Bereich von 5ms. Die ADC-Eingänge im Teensy 4.0 und Teensy 4.1 rauschen
> sehr. Eine 12Bit Auflösung für Modulationszwecke dadurch kaum machbar.

Danke für die Angtwort. 5ms sind ja gerade an der Grenze des Virtuosen.
Vielleicht rauscht alles mit einer linearen Spannungsversorgung weniger 
als mit USB-Strom?
Da ich jetzt Deine Grafik der Hüllkurve gesehen habe und du es 
viellleicht überlesen hast oder nach wie vor unterschätzt:

tom schrieb:
> Schön wäre, wenn man bei deinem Synth die Form der Hüllkurven einstellen
> oder gar modulieren könnte.
> Das ist eine sehr mächtige Funktion, die auch im Mix sehr wichtig ist
> und letztlich Kompressoren oft überflüssig macht.
> Unterschätze niemals das Anpingen von Filtern ...

Einfach die Hüllkurve mit sich selbst rückgekoppelt positiv oder negativ 
multiplizieren.
Oder die einzelnen Stufen

hoch 1  linear,
hoch >1 konkav,
hoch <1 konvex.

von rbx (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sehr schönes Projekt! :)

Rolf D. schrieb:
> Die ADC-Eingänge im Teensy 4.0 und Teensy 4.1 rauschen
> sehr. Eine 12Bit Auflösung für Modulationszwecke dadurch kaum machbar.

..man könnte zumindest das Rauschen modulieren.
Beim Yamaha TX16W ließen sich die Filtertables ganz gut modulieren, der 
hatte auch nur 12Bit. (Allerdings erst viele Jahre später..)
(und außerdem hatte der eine (für seine Zeit) ziemlich gute 
Tonhöhen-Erkennung bei Eingangssignalen.)

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hallöchen aus dem schönen Wuppertal (:

Für die vier externe Modulationsbuchsen werde ich einen MCP3204 oder 
MCP3208 verwenden. Der hat 12Bit und einen externen 
Referenzspannungsanschluss.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen..

Heute habe ich das KeyTracking für den Filter implementiert. Der 
Digitale Multimode-Filter hat einen Steuereingang mit der Bezeichnung 
octaveControl(). Darüber lässt sich die Filtereckfrequenz steuern.

An diesen Steuereingang wird das Signal für Filter Envelope und für das 
KeyTracking über einen Mixer angeschlossen (siehe SynthBlock).

Die Filtereckfrequenz (cutoff) wird über den Parameter frequency() 
eingestellt und die Resonanz über den Parameter resonance().

1.Bild: Digital Multimode-Filter 
https://i.ibb.co/pP9N6Ts/Shruthi2-Synth-Block.jpg
2.Bild: SynthBlock

Später gibts noch eine Hörprobe.

Gruß Rolf

: Bearbeitet durch User
von Audiomann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Wellenform-, Wavetable-, Granular-, FM-, PWM-, Subtraktive-, Additive-
Geht mit der Wavetable auch Wave-Guide-Synthese?

Ich würde gerne sowas nachbauen:
Beitrag "Tonerzeugung und Klangformung mit wenig Rechenbedarf"
(siehe Beispielklang)

von tom (Gast)


Bewertung
0 lesenswert
nicht lesenswert
klar geht das.
hier ist die GUI zum einfachen Patchen im Teensy:
https://www.pjrc.com/teensy/gui/index.html?info=AudioSynthWaveform

Je nachdem, was deine Ansprüche sind, wieviel Zeit Du hast und wie es am 
Ende genau aussehen soll, würde ich dir jedoch eine mächtigere 
Entwicklungsumgebung wie Pure Data (läuft auch embedded) oder 
SuperCollider oder Csound oder Faust oder Python empfehlen.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Erster Test mit 8 Stimmen.

Die Oszilloskopfunktion ist noch nicht perfekt und wird noch geändert.

Vermutlich liegt das am Framebuffer für die Anzeige.

Video: https://youtu.be/hQjbzxM8q1A

Gruß Rolf

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hab einen Word warp error in AtmelStudio 7. Ich weis nicht warum. Hab 
einen String in mehrere Zeilen geschrieben und mit Plus verbunden.

error: invalid operands of types 'const char [41]' and 'const char [77]' 
to binary 'operator+
1
const static char* INITPATCH = "Solina,1.00,0.43,0.00,0,0,0.99,1.00,0.00" + 
2
"1.00,0.47,0.0,12,-12,12,12,0,0.83,0.70,0.16,0.00,0.00,1.10,282.00,0.00" +
3
"0.70,0.00,7.24,0,0,0,10.48,0,0,0.00,1,4.00,1448.00,0.22,1864.00,41.00,808.00" + 
4
"0.92,991.00,5.60,0.83,0.00,0.0,0.0,0.0,0.0,0.0";

: Bearbeitet durch User
von Larry (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> 0.00" + "1.00,

Traditionsbewusste C-Schreiber nahmen einfach einen \.

0.00,\
1.00,

Und selbst der ist wohl ueberfluessig.
Ich wuerde mal ein gutes Buch empfehlen.
Es ist nicht das Telefonbuch.

von Rolf D. (rolfdegen)


Bewertung
1 lesenswert
nicht lesenswert
Hallo Larry

Danke für deinen Hinweis. Funktioniert jetzt. Man lernt nie aus ;)

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen zusammen..

Ich habe mal versucht den Audio Block von einer Stimmen aus ingesammt 8 
Stimmen darzustellen. Die nicht belegten Eingänge von "voiceMIxer1" und 
"voiceMixerM" werden von den anderen Stimmen benutzt.

"waveformMod1a" und "waveformMod1b" sind die beiden Waveform 
Oszillatoren in einer Stimme. Oszillator Wellenformen sind "SINE", 
"bandlimited SAWTOOTH", "bandlimited SQUARE", "TRIANGLE", "bandlimidet 
Puls", "S&H", "variable TRIANGLE" (from Triangle to SAW) und USER.

1.Bild: VoiceNo 1
2.Bild: VoiceNo 1-8

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen und einen schönen Sonntag :)

Ich habe mal einen Vergleich von einer Bandlimitierten Wellenformen im 
"DeepMind6" und meiner "Jeannie" gemacht. Die kleine Jeannie klingt 
einfach nur bezaubernd ;-)

Video: https://youtu.be/wBGwYatS-Ks

Gruß Rolf

Beitrag #6468677 wurde von einem Moderator gelöscht.
Beitrag #6468679 wurde von einem Moderator gelöscht.
von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hallöchen..

Nach längerer Krankheit melde ich mich wieder zurück und blicke Lustvoll 
in die Zukunft. Auch meine "Jeannie" fragt schon, wann es weiter geht 
mit der Synthesizer-Entwicklung.

Da mir der ganze Drahtverhau unter der Platine auf den Kecks ging, habe 
ich mich dazu entschlossen, dass Ganze noch einmal neu aufzubauen und 
ordentlich zu verlöten.

Da der interne AD-Wandler im Teensy-Prozessor zu sehr rauscht, wird für 
die Potentiometerabfrage und die vier Modulationseingänge ein 
preisgünstiger ATmega168 Prozessor verwendet.

Dieser wird über eine Serielle Leitung vom Teensy Prozessor zyklisch 
abgefragt und liefert die ADC-Werte.


Ich wünsche Euch ein schönes und besinnliches Weihnachtfest und bleibt 
gesund holy-willi

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen und Frohe Weihnacht holy-willi

Ich hatten jetzt wieder etwas Zeit und Lust und habe an meiner "Jeannie" 
weitergearbeitet.

Hab den kompletten Synth jetzt auf eine Lochrasterplatte gelötet und 
eine Stromversorgung +5V und +3.3V integriert.

Versorgt wird das Ganze von einem 9V Steckernetzteil. Der 7805 wird ca. 
39C warm bei einer max. Last von 160mA.

Das Arduino Nano Board ( ATmega328 ) für die Poti-Abfrage und 
Modulations-Eingänge wird später durch einen Atmega328 ersetzt.

Durch den integrierten ATmega328 wäre eine XT Version mit vielen Potis 
und Schaltern denkbar.

Als 16Bit Dac verwende ich jetzt den preiswerten PT8211. Der wird vom 
Teensy 4.1 Board mit 4fachen Oversampling (88KHz) angesteuert.

Da reicht dann ein einfacher LowPass Filter am Ausgang. Zusätzlich wird 
noch eine schaltbare Bassanhebung (Bassbooster) integriert.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen..

Ich habe die Schaltung noch etwas abgeändert. Statt einem ATmega wird 
ein MCP3208 mit 8 Kanälen und einer Auflösung von 12 Bit verwendet. Der 
MCP3208 arbeitet mit 3.3V und hat ein sehr geringes Rauschen von ± 1 
LSB. Die ADC-Daten werden über den Teensy SPI-Port 0 mit 1,6 MHz 
Taktrate übertragen.

Gruß Rolf

: Bearbeitet durch User
von O. R. (oscherischery)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:

> Da der interne AD-Wandler im Teensy-Prozessor zu sehr rauscht, (...)

Vielleicht sind die Stützkondensatoren zu weit vom Controller weg? 
Verschieb die mal von Deinem Lochraster direkt auf die Teensy-Platine. 
D.h. 4,7 nF von jedem ADC-Pin nach Masse.

Die Kondensatoren verhindern den Spannungseinbruch beim Samplen, d.h. 
wenn sich der interne sample&hold-Kondensator umlädt. Sonst siehst Du 
Übersprechen der Nachbarkanäle und deutlich erhöhtes Rauschen. Für 10 
bit muss der externe Stützkondensator 1000x größer sein als der 
chip-interne Sample-Kondensator. Empfehlungen stehen meist im Datenblatt 
des ADC.

Alternativ kann man ADC-Eingänge auch niederohmig treiben, z.B. über 
einen Operationsverstärker. Diesen Weg wählt man bei schnellen Signalen, 
wo der RC-Tiefpass vor dem ADC sonst zu groß wäre.

Der Tiefpass vor dem ADC sollte übrigens zu Deiner Abtastrate passen. 
Stichwort Abtasttheorem. Abtastrate ist wie oft die Software einen neuen 
Wert zum Rechnen benutzt, nicht wie oft die Hardware wandelt.

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hallo O.R.

Danke für deine guten Tip's. Hab am Teensy 4.0 und 4.1 ADC schon viel 
ausprobiert auch mit 100nF Kondensatoren direkt am ADC-Eingang (Input 
Cap. 1.5pF). Wenn der Prozessor sehr aktiv ist, werden Störungen und 
Rauschen über die interne Versorgungsspannung 3.3V an den ADC 
weitergeleitet. Mehr als 8Bit sind effektiv kaum nutzbar. Aus diesem 
Grund habe ich mich für einen externen AD-Wandler entschieden.

Link zum Datenblatt Seite 60: 
https://www.mouser.de/datasheet/2/302/IMXRT1060IEC-1396579.pdf

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
4 lesenswert
nicht lesenswert
Hallöchen und hoffentlich auf ein schönes neue Jahr 2021 :)

Ich hab an der "Jeannie" weiter gearbeitet und die Auswahl von 
verschiedenen Wellenform Bänken hinzugefügt. Mit dem freien WaveEditor 
von Synthesis Technology habe ich die verschiedenen Wellenformen 
erstellt und mit Hilfe von Audacity und einem HexEditor Nero in meinen 
Programmcode übertragen. Die Wellenformen befinden sich nach dem 
programmieren im 8MByte großen Flashspeicher des Teensy 4.1.

Link: Synthesis Technologie
https://www.synthtech.com/

Link: Audacity
https://www.audacity.de/

Link: HexEditor Nero
https://www.hhdsoftware.com/free-hex-editor

Link: Youtube
https://youtu.be/deOFKt0GxbE

Gruß Rolf

: Bearbeitet durch User
von Bülent C. (mirki)


Bewertung
0 lesenswert
nicht lesenswert
Sehr schönes Projekt!!

von Christian H. (netzwanze) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Link: Youtube
> https://youtu.be/deOFKt0GxbE

Ich höre im Video während der Töne leise Knacklaute, welche zwischen 
beiden Kanälen hin und her wandert. Sind das Kompressionsartefakte bei 
Youtube oder ist dieses Knacken auch im Original vorhanden?

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Ja hab ich auch bemerkt. Kann sein das es in der Effekt-Engine im Teensy 
passiert und ich die Lautstärke im Mischer etwas verringern muss. Mal 
schaun..

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hab mal auf einen Kanal mit Sinus und ohne Fx getestet. Kein Störungen.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Schaltplan

Änderungen vorbehalten. Grüße Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen zusammen oder alleine (:

Ich habe gestern den ganzen Tag an einer Schaltung herumgedoktert um das 
Einschaltknacksen an meiner "Jeannie" zu eliminieren. Viele 
Konstrukteure von Musikgeräten machen sich keine Gedanken darüber und 
verzichten aus Kostengründen auf den zusätzlichen Schaltungsaufwand. 
Ursache für den Einschalt- bzw Ausschaltknackser ist hauptsächlich die 
Single-Supply Versorgungsspannung in meinem Synth und der 
Ausgangsverstärker.

Link: 
https://www.all-electronics.de/wp-content/uploads/migrated/article-pdf/81722/ei08-11-056.pdf

Es gab viele Überlegungen den Ausgang mit speziellen CMOS-Schalten zB 
NS5B1G384 zu schalten oder eine symetrische Versorgungsspannung mit 
+5V/-5V zu integrieren. Aber alle Schaltungsvarianten waren ohne Erfolg 
gekrönt. Es gab beim Einschalten der Versorgungsspannung immer einen 
mehr oder weniger großen Störimpuls am Ausgang.

Hier der Einschaltimpuls am Ausgang mit symmetrischer 
Versorgungsspannung. Man kann hierbei schön erkennen, dass durch den 
unterschiedliche zeitlichen Aufbau der Versorgungsspannung (+5V 78L05, 
-5V 79L05 + LT1054 Ladungspumpe für negative Versorgungsspannung)am 
Ausgangsverstärker, ein kurzer Impuls entsteht.

Bild 1: Einschalt-Impuls. Gelb: +5V, Blau: -5V, Pink: Audio-Ausgang

Letztendlich habe ich mich aber doch wieder für ein kostengünstigere 
Schaltungsvariante mit einem Miniatur-Relais zB G6K-2F-Y-TR DC5 
entschieden.
Das Relais schaltet nachdem sich die Ausgangs-Elkos C18/C19 aufgeladen 
auf den Audioausgang. Ein Einschaltknacks an angeschlossenen Geräten 
sollte dadurch nicht mehr oder nur noch ganz leise auftreten.

Bild 2: Schaltungsvariante mit Miniatur-Relais am Ausgang

Gruß Rolf

: Bearbeitet durch User
von Micki (Gast)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo Rolf,

das ist ja ein tolles Projekt. Ich bin neu in der Diy-Teensy-Ecke, habe 
aber fast das gleiche Ziel wie du und plane mit dem Teensy4.1 einen 
Universal-Editor zu bauen, der eben auch Polysynth kann.

Daher hätte ich großes Interesse an deinem Sketch. Ich habe allerdings 
keinen Link gesehen. Kann ich den haben.

Ich würde mich über eine Zusammenarbeit sehr freuen.

Beste Grüße aus Düsseldorf!
Bleib gesund

Micki

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Micki

Kein Problem. Mein Code ist Open source und basiert auf den frien 
Code-Kern des Teensy Synthesizer TSYNTH von ElectroTechnique. Ich habe 
den Code für meine Synth angepasst und geändert und bin noch nicht 
fertig. Ich programmiere unter Atmel Studio 7.

Link TSynth: https://electrotechnique.cc/

Mein Code: 
https://drive.google.com/file/d/1YR7Gxg8-dmrmmCZVHiO7xNsEXhx2U4iD/view?usp=sharing

Mein aktueller Blog: 
https://www.sequencer.de/synthesizer/threads/avr-synthesizer-wave-1-de-generator.87599/page-19

Gruß Rolf

Beitrag #6552143 wurde vom Autor gelöscht.
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ..

Anti-Pop Schaltung ohne Relais ..

Der LM317 erhöht nach dem Einschalten langsam die Betriebsspannung für 
den Audioverstärker. Dadurch kommt es nur noch zu einem kleinen 
Störsignal beim Einschalten.

Da der LM317 wegen seiner internen Uref von 1,25V seinen Ausgang nicht 
auf 0 Volt regeln kann, sorgen die beiden Dioden D1 und D2  durch ihren 
Spannungsabfall dafür, dass der Anstieg der Ausgangsspannung bei 0 Volt 
beginnt. Der Spannungsabfall an D1 und D2 hat aber auch den Nachteil, 
das die maximale Versorgungsspannung am Ausgangsverstärker etwas singt.

1.Bild: Schaltung
2.Bild: Spannungsanstieg ohne AntiPop
3.Bild: Spannungsanstieg mit AntiPop

Audio File: 
https://drive.google.com/file/d/1BYZRGSl4H3rWMuQaOre5pfe5TaR1NqYx/view

Gruß Rolf

von Norbert S. (micki)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf,

1000 Dank.
Du machst ziemlich das, was ich mir vorgestellt habe. Ich fand den 
TSynth toll, wollte aber nicht noch ein Gerät rumstehen haben. Aber 
meine Anfängerfähigkeiten reichen bisher nicht aus, um den TSynth 
umzustricken.
Ich danke erstmal für deine Infos und werde mir das heute Abend ansehen.

Beste Grüße
Micki

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hi Norbert,

ich stecke noch ziemlich tief in der Entwicklung. Daher der etwas 
chaotische Code. Hardware steht auch noch nicht ganz fest. Eventuell 
fallen die Modulationseingänge weg und dafür kommt noch ein kleiner 
Joystick und als Erweiterungsmodul eine steckbare Platine mit VF-1 
Effektchip dazu.

Gruß Rolf

von Norbert S. (micki)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf,
gestern Abend habe ich mir das Skript und deine Schaltpläne angeschaut. 
Ich bin zutiefst beeindruckt. Ich werde mich da durchbeißen 😂👍

Eine Frage: Der Encoder hängt bei dir nur an Masse und am Teensy.
Bei mir (Interrupt nach Müller-Dürholt) klappt der nicht (?).

Benutzt du eine special Library? Wenn ja welche? Ich würde das Problem 
gerne lösen.

Weiter viel Erfolg wünscht
Micki

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hi Norbert

Für die Encoder-Abfrage wird aus der Arduino-Lib Encoder.h von Paul 
Stoffregen verwendet. Diese Abfrage nutzt interrupts.

Gruß Rolf

von Norbert Schreiber (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf,

ich hoffe, ich kann diese Plattform nutzen, um Fragen zu stellen.
Falls es einen besseren Ort für einen Austausch gibt, dann wäre ich 
dankbar für einen Hinweis.

Ich habe den Encoder-Basic-Sketch von PS gestern probiert. Ursprünglich 
hatte ich die Pins 31 und 32 vorgesehen für DT und Clk, erhielt aber die 
unten angehängte Fehlermeldung.

Ich habs auch mit den Pins 8 und 9 versucht, gleiches Ergebnis.

Vielleicht siehst du ja schnell, was ich falsch mache.
Im *.doc meine Pinbelegung für Audio, Display, Knobs, Potis und Encoder

Beste Grüße
Norbert

********************************************************************

Arduino: 1.8.13 (Windows 10), TD: 1.53, Board: "Teensy 4.1, Serial, 600 
MHz, Faster, German"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs 
-logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools 
C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files 
(x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files 
(x86)\Arduino\libraries -libraries 
C:\Users\Micki\Documents\Arduino\libraries 
-fqbn=teensy:avr:teensy41:usb=serial,speed=600,opt=o2std,keys=de-de 
-ide-version=10813 -build-path 
C:\Users\Micki\AppData\Local\Temp\arduino_build_937643 -warnings=none 
-build-cache C:\Users\Micki\AppData\Local\Temp\arduino_cache_208821 
-verbose G:\Einplatinen Computer\Arduino 
Teensy\Encoder_Stoffregen\Encoder_Stoffregen.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine 
-hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program 
Files (x86)\Arduino\tools-builder -tools C:\Program Files 
(x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files 
(x86)\Arduino\libraries -libraries 
C:\Users\Micki\Documents\Arduino\libraries 
-fqbn=teensy:avr:teensy41:usb=serial,speed=600,opt=o2std,keys=de-de 
-ide-version=10813 -build-path 
C:\Users\Micki\AppData\Local\Temp\arduino_build_937643 -warnings=none 
-build-cache C:\Users\Micki\AppData\Local\Temp\arduino_cache_208821 
-verbose G:\Einplatinen Computer\Arduino 
Teensy\Encoder_Stoffregen\Encoder_Stoffregen.ino

Using board 'teensy41' from platform in folder: C:\Program Files 
(x86)\Arduino\hardware\teensy\avr

Using core 'teensy4' from platform in folder: C:\Program Files 
(x86)\Arduino\hardware\teensy\avr

Detecting libraries used...

"C:\\Program Files 
(x86)\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -E 
-CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib 
-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti 
-fno-threadsafe-statics -felide-constructors -Wno-error=narrowing 
-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ 
-DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 
-DUSB_SERIAL -DLAYOUT_GERMAN "-IC:\\Program Files 
(x86)\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643\\sketch\\E 
ncoder_Stoffregen.ino.cpp"  -o nul -DARDUINO_LIB_DISCOVERY_PHASE

Alternatives for Encoder.h: [Encoder@1.4.1 Encoder@1.4.1]

ResolveLibrary(Encoder.h)

  -> candidates: [Encoder@1.4.1 Encoder@1.4.1]

"C:\\Program Files 
(x86)\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -E 
-CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib 
-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti 
-fno-threadsafe-statics -felide-constructors -Wno-error=narrowing 
-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ 
-DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 
-DUSB_SERIAL -DLAYOUT_GERMAN "-IC:\\Program Files 
(x86)\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" 
"-IC:\\Users\\Micki\\Documents\\Arduino\\libraries\\Encoder" 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643\\sketch\\E 
ncoder_Stoffregen.ino.cpp"  -o nul -DARDUINO_LIB_DISCOVERY_PHASE

"C:\\Program Files 
(x86)\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -E 
-CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib 
-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti 
-fno-threadsafe-statics -felide-constructors -Wno-error=narrowing 
-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ 
-DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 
-DUSB_SERIAL -DLAYOUT_GERMAN "-IC:\\Program Files 
(x86)\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" 
"-IC:\\Users\\Micki\\Documents\\Arduino\\libraries\\Encoder" 
"-IC:\\Users\\Micki\\Documents\\Arduino\\libraries\\Encoder\\utility" 
"C:\\Users\\Micki\\Documents\\Arduino\\libraries\\Encoder\\Encoder.cpp" 
-o nul -DARDUINO_LIB_DISCOVERY_PHASE

Generating function prototypes...

"C:\\Program Files 
(x86)\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -E 
-CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib 
-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti 
-fno-threadsafe-statics -felide-constructors -Wno-error=narrowing 
-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ 
-DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 
-DUSB_SERIAL -DLAYOUT_GERMAN "-IC:\\Program Files 
(x86)\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" 
"-IC:\\Users\\Micki\\Documents\\Arduino\\libraries\\Encoder" 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643\\sketch\\E 
ncoder_Stoffregen.ino.cpp"  -o 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643\\preproc\\ 
ctags_target_for_gcc_minus_e.cpp"  -DARDUINO_LIB_DISCOVERY_PHASE

"C:\\Program Files 
(x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u 
--language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns 
--line-directives 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643\\preproc\\ 
ctags_target_for_gcc_minus_e.cpp"

Sketch wird kompiliert...

"C:\\Program Files 
(x86)\\Arduino\\hardware\\teensy/../tools/precompile_helper" 
"C:\\Program Files (x86)\\Arduino\\hardware\\teensy\\avr/cores/teensy4" 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643" 
"C:\\Program Files 
(x86)\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -x 
c++-header -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib 
-MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti 
-fno-threadsafe-statics -felide-constructors -Wno-error=narrowing 
-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ 
-DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 
-DUSB_SERIAL -DLAYOUT_GERMAN "-IC:\\Program Files 
(x86)\\Arduino\\hardware\\teensy\\avr/cores/teensy4" 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643/pch/Arduin 
o.h"  -o 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643/pch/Arduin 
o.h.gch"

Using previously compiled file: 
C:\Users\Micki\AppData\Local\Temp\arduino_build_937643\pch\Arduino.h.gch

"C:\\Program Files 
(x86)\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-g++" -c 
-O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD 
-std=gnu++14 -fno-exceptions -fpermissive -fno-rtti 
-fno-threadsafe-statics -felide-constructors -Wno-error=narrowing 
-mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ 
-DTEENSYDUINO=153 -DARDUINO=10813 -DARDUINO_TEENSY41 -DF_CPU=600000000 
-DUSB_SERIAL -DLAYOUT_GERMAN 
"-IC:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643/pch" 
"-IC:\\Program Files 
(x86)\\Arduino\\hardware\\teensy\\avr\\cores\\teensy4" 
"-IC:\\Users\\Micki\\Documents\\Arduino\\libraries\\Encoder" 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643\\sketch\\E 
ncoder_Stoffregen.ino.cpp"  -o 
"C:\\Users\\Micki\\AppData\\Local\\Temp\\arduino_build_937643\\sketch\\E 
ncoder_Stoffregen.ino.cpp.o"

In file included from G:\Einplatinen Computer\Arduino 
Teensy\Encoder_Stoffregen\Encoder_Stoffregen.ino:7:0:

C:\Users\Micki\Documents\Arduino\libraries\Encoder/Encoder.h: In 
constructor 'Encoder::Encoder(uint8_t, uint8_t)':

C:\Users\Micki\Documents\Arduino\libraries\Encoder/Encoder.h:82:25: 
error: cannot convert 'volatile uint32_t* {aka volatile long unsigned 
int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in 
assignment

   encoder.pin1_register = PIN_TO_BASEREG(pin1);

                         ^

C:\Users\Micki\Documents\Arduino\libraries\Encoder/Encoder.h:84:25: 
error: cannot convert 'volatile uint32_t* {aka volatile long unsigned 
int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in 
assignment

   encoder.pin2_register = PIN_TO_BASEREG(pin2);

                         ^

Mehrere Bibliotheken wurden für "Encoder.h" gefunden

 Benutzt: C:\Users\Micki\Documents\Arduino\libraries\Encoder

 Nicht benutzt: C:\Program Files 
(x86)\Arduino\hardware\teensy\avr\libraries\Encoder

Bibliothek Encoder in Version 1.4.1 im Ordner: 
C:\Users\Micki\Documents\Arduino\libraries\Encoder  wird verwendet

Fehler beim Kompilieren für das Board Teensy 4.1.

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Ich glaube es liegt an der Definition für deine Encoder Variable. Nimm 
mal long statt byte ?

Beispiel
1
/* Encoder Library - TwoKnobs Example
2
 * http://www.pjrc.com/teensy/td_libs_Encoder.html
3
 *
4
 * This example code is in the public domain.
5
 */
6
7
#include <Encoder.h>
8
9
// Change these pin numbers to the pins connected to your encoder.
10
//   Best Performance: both pins have interrupt capability
11
//   Good Performance: only the first pin has interrupt capability
12
//   Low Performance:  neither pin has interrupt capability
13
Encoder knobLeft(5, 6);
14
Encoder knobRight(7, 8);
15
//   avoid using pins with LEDs attached
16
17
void setup() {
18
  Serial.begin(9600);
19
  Serial.println("TwoKnobs Encoder Test:");
20
}
21
22
long positionLeft  = -999;
23
long positionRight = -999;
24
25
void loop() {
26
  long newLeft, newRight;
27
  newLeft = knobLeft.read();
28
  newRight = knobRight.read();
29
  if (newLeft != positionLeft || newRight != positionRight) {
30
    Serial.print("Left = ");
31
    Serial.print(newLeft);
32
    Serial.print(", Right = ");
33
    Serial.print(newRight);
34
    Serial.println();
35
    positionLeft = newLeft;
36
    positionRight = newRight;
37
  }
38
  // if a character is sent from the serial monitor,
39
  // reset both back to zero.
40
  if (Serial.available()) {
41
    Serial.read();
42
    Serial.println("Reset both knobs to zero");
43
    knobLeft.write(0);
44
    knobRight.write(0);
45
  }
46
}

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallöchen..

Es geht voran. Ich bin gerade dabei die Filterpage zu programmieren und 
die Filterüberblendung von LowPass nach HighPass darzustellen.

Gruß Rolf

von Norbert S. (micki)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf,

leider liegt es nicht an der Definition der Encoder-Variablen. Die ist 
ja auch schon im Sketch von Paul Stoffregen auf "long" gesetzt.

Ich denke, es hat was mit Routinen im Hintergrund zu tun. Im Fehlertext 
heißt es :
"cannot convert 'volatile uint32_t* {aka volatile long unsigned
int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in
assignment"
aber ich weiß nicht, was ich da machen könnte. Da fehlen mir die Skills.

Ich schreibe jetzt mal im pjrc-Forum. Vielleicht kennen die das Problem.

Schönes Wochenende und vielen Dank für die Unterstüzung.

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Wie fragst du deiner Encoder genau ab.

In einer alten Version meiner Software frage ich den Encoder wie folgt 
ab:
1
#define ENCODER_OPTIMIZE_INTERRUPTS
2
#include <Encoder.h>
3
4
// Encoder Pins
5
Encoder myEnc(31, 30);
6
7
8
//*************************************************************************
9
// read Encoder
10
//*************************************************************************
11
boolean read_Encoder (void)
12
{
13
  int newPosition = (myEnc.read() >> 2);
14
  
15
  if (newPosition != oldPosition) {
16
    if (newPosition < 0) {
17
      newPosition = 0;
18
      oldPosition = 0;
19
      myEnc.write(0);      
20
    }
21
    
22
    else if (newPosition > 3){
23
      newPosition = 3;
24
      oldPosition = 3;
25
      myEnc.write(3 * 4);
26
    }
27
    oldPosition = newPosition;
28
    return true;
29
  }
30
  return false;
31
}

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo again..

Kleines Video zum Filter: https://youtu.be/2QipRkolZk0

My next step ist die Implementierung von Filter- und Amp Envelope

Ein besseres Video folgt. Bis dahin liebe Grüße aus dem verregneten 
Wuppertal.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Kleines Update..

Die Envelopes bekommen noch einen Delay- und Hold Parameter. Diese 
beiden Parameter werden später noch in die Grafik hinzugefügt. 
Zusätzlich gibts in der Kopfzeile ein Peakmeter für die Kontrolle des 
Ausgangspegel am DAC.

Bis zum nächsten mal. Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo liebe Freunde (:

Ich habe in der Jeannie die kleinste Attack Time von 1ms auf 0.25ms 
verringert. Das macht mehr Punch bei Percussion Sounds.

1.Bild 1ms
2.Bild 0.25ms

Grüße aus Wuppertal..

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Das Platinchen wird immer voller..

Jetzt sind LEDs, Taster und Joystick hinzugekommen. Ich hoffe Andre kann 
den Joystick irgendwie auf der Platine noch unterbringen. Damit lassen 
sich dann ausgewählte Parameter wzB Filter Cutoff und Pitch in der 
Modulationsmatrix modulieren. Zusätzlich bekommt die Jeannie noch ein 
steckbares Effektmodul Spin FV-1 auf die Rückseite der Platine montiert.

Das hier ist ein Prototyp und die Anordnung von Tastern, Potis u.a. 
wirds sich noch etwas ändern. Dann ist aber gut. Den Rest macht die 
Software.

Bis denn.. Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Das hier ist eine andere Platine mit dem Spin FV-1 Chip. Die hatte ein 
Freund für ein anderes Projekt entwickelt.

Der FV-1 klingt nicht übel. Ich habe den Chip damals als Prototyp in 
einen Degenerator eingebaut.

Sound-File vom Degenerator: 
https://drive.google.com/file/d/1jG6EDCP229hFpG_nj78ssqflCWHZS45M/view

Video: https://youtu.be/unN71yPqREU

Bild: FV-1 Prototyp im Degenerator

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallöchen..

Am Freitag habe ich von UK-electronic die FV-1 Chips bekommen. Dies sind 
28-polige SMD-Chips, aber das Löten ist nicht schwierig. Zum Vergleich 
daneben ein 8-poliges IC (1.Bild).

2.Bild Das Menü zum einstellen der Effekte wird in der Jeannie ähnlich 
aussehen wie im Degenerator.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Die Schaltpläne (Änderungen vorbehalten)

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Hallöchen liebe Freunde..

Es geht voran. Corona hat auch was positives. Man verbringt mehr Zeit 
Zuhause und am Rechner. Bevor es ans layouten der Platinen geht, will 
ich wissen, ob alles funktioniert. Ich bin da vielleicht etwas 
altmodisch. Aber ein Versuchsaufbau auf dem Breadboard ist immer mit 
Kontaktproblemen und Störungen verbunden. Da löte ich lieber und bin mir 
sicher, dass es zumindest keine Kontaktprobleme gibt :)

Die rechte Platine wird das optionale Fx Board. Die Platine wird später 
im Layout etwas kleiner ausfallen und über eine Kontaktleiste auf die 
Rückseite mit der Hauptplatine verbunden.

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallöchen..

1.Bild: Der Prototyp der Fv-1 Schaltung ist jetzt fertig gelötet und 
funktioniert fehlerfrei. Die Platine wird später etwas kleiner werden 
wegen SMD und Umplatzierung der Power Schaltung (+/- 5V) auf die 
Hauptplatine.

2.Bild: Das Fx Menü im Synth ist fast fertig. Es fehlt noch das erneute 
Anzeigen der Parameterwerte nach einem Programmwechsel.

Youtube: https://youtu.be/Tq4jn6Mz5Ko

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Hallöchen und schönen Tag (:

Es gibt mal wieder ein paar Änderungen im Schaltplan. Der DAC Ausgang 
(PT8211) am Teensy Board hat einen aktiven 32KHz LowPass Filter bekommen 
(2.Bild). Dadurch werden hochfrequente Störsignale am Eingang des Effekt 
Chips verringert.

3.Bild
Der OTA (IC5a/b) für die Lautstärkeregelung des Effektsignals (MIX) ist 
jetzt an den Ausgang des Effekt Chips verlegt worden. Damit ist der 
Noisefloor am Synthesizer Ausgang bei kleinen Effekt Pegeln etwas 
geringer.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallöchen..

Wir haben damit begonnen die Platinen zu routen. Bin gespannt wie groß 
die werden.

Bild: Fx Board

von Tobias N. (technick2)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf, hast du vor, an das Teensy auch MIDI-Geräte anzuschließen? 
Wie ist das gedacht? Ich hätte da einen gewissen Bedarf für einen 
MIDI-Empfänger, der müsste aber USB-host spielen können, um 
MIDI-Master-Keyboards verstehen zu können. Das Teensy wird als eine 
Plattform genannt, mit dem man einen USB-host bauen kann.

von Rolf D. (rolfdegen)


Bewertung
1 lesenswert
nicht lesenswert
Hallo Tabias

Danke für dein Interesse. Ich muss deine Frage leider verneinen. Die 
"Jeannie" unterstützt in der derzeitigen Entwicklungsstufe nur ein 
normales Midi-In und Midi-Thru.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallöchen :cheer:

Der Fortschritt lässt sich nicht aufhalten. Dieses mal geben wir richtig 
Gas. Das Fx Platienchen ist fertig. Andre hat jetzt damit begonnen das 
"Jeannie" Mainboard zu routen. Bin gespannt..

1.Bild: Fx Board
2.Bild: Mainboard

Das ist der erste Entwurf des "Jeannie" Mainboard (2.Bild). Es wird noch 
einige Änderungen geben wzB das Teensy Prozessor Modul (Links). Das wird 
noch weiter nach unten verschoben, damit man die USB Buchse von Außen 
benutzen kann.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Der 1.Entwurf in 3D

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.