Teensy Synth "Shruthi 2"

#6407431
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
Angehängte Dateien:
#6409926
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
Angehängte Dateien:
Gast #6411573
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?
#6411617
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..
#6421609
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
Angehängte Dateien:
#6429089
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
Angehängte Dateien:
Beitrag #6439961 wurde von einem Moderator gelöscht.
#6439962
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
Angehängte Dateien:
#6442696
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
Angehängte Dateien:
#6444599
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
Angehängte Dateien:
Gast #6445043
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.
Gast #6445303
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.)
#6445358
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
Angehängte Dateien:
Gast #6449325
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.
#6468029
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";
#6468429
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
Angehängte Dateien:
Beitrag #6468677 wurde von einem Moderator gelöscht.
Beitrag #6468679 wurde von einem Moderator gelöscht.
#6521639
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
#6525460
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
Angehängte Dateien:
#6528778
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
Angehängte Dateien:
#6528877
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.
#6529021
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
#6536494
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
Angehängte Dateien:
#6544412
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
Angehängte Dateien:
Gast #6551218
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
Angehängte Dateien:
#6551447
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 von einem Moderator gelöscht.
#6552150
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
Angehängte Dateien:
#6553747
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
Gast #6554917
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.
Angehängte Dateien:
#6556146
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
}
#6559007
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.
#6559146
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
#6582361
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
Angehängte Dateien:
#6582374
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
Angehängte Dateien:
#6582378
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
Angehängte Dateien:
#6582395
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.
Angehängte Dateien:
#6582822
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
Angehängte Dateien:
#6592075
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
Angehängte Dateien:
#6597773
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
Angehängte Dateien:
Gast #6598938
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.
#6602125
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
Angehängte Dateien:
#6611901
Lesenswert?

Es geht voran..

Das 3D Model der Hauptplatinen. Die Platine hat ungefähr die Größe einer 
Laborkarte im Euroformat (160 x 100).

Das Fx Modul wird hinten einfach draufgesteckt.

4.Bild ist der aktueller Prototyp

Gruß Rolf und schönen Sonntag :)
Angehängte Dateien:
#6617055
Lesenswert?

So..

Die Platine jetzt fertig. Wir haben uns überlegt, für die Elektronik 
Bastler einen Expansions-Anschluss (K4, K8) im Synthesizer zu 
integrieren.

Er besteht aus 3 analogen Eingängen (0-3.3V) , sowie Datenleitungen und 
Stromversorgung für die Ansteuerung eines zweiten 74HC595.

Damit lassen sich z.B. über zwei 16 Kanal Analogmultiplexer (74HC4067) 
Potis, Schalter und Steuerspannungen abfragen.

Gruß Rolf
Angehängte Dateien:
#6736696
Lesenswert?

Hallöchen..

Ups.. Ich habe schon lange nichts mehr über unsere "Jeannie" gepostet. 
Der DIY Synth ist fast fertig. Bin noch dabei einen kleinen Step 
Sequencer zu integrieren.

Es können dann Platinen oder komplette Bausätze inkl. Gehäuse auf 
tubeohm.com bestellt werden.
LinK: https://www.tubeohm.com/new-developement.html

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

Youtube: https://youtu.be/azkAbpPoJL8
Youtube: https://youtu.be/V-1fEZYGhbw

Gruß Rolf
Angehängte Dateien:
#6747136
Lesenswert?

Hallöchen..

Für die LFOs habe ich noch eine Phasen Steuerung von 0 Grad und 180 Grad 
eingebaut.Im System Menü kann der globale Parameter für die 
Transponierung von +- 12 Halbtönen eingestellt werden.

Beim MasterTune bin ich mir noch nicht sicher ob die Einstellung ok ist.
Hab die Einstellung auf +- 10Hz beim 440Hz Grundton programmiert.
Das entspricht bei allen Tönen eine maximale Verstimmung von +- 2,27%
Sollte doch für eine Stimmung mit analogen Synthis ausreichen 🤔

Gruß Rolf
Angehängte Dateien:
#6756875
Lesenswert?

Danke für dein Interesse. Das Hauptmerkmal der Jeannie sind die 
Synthesizer Funktionen und die kleine Bauform. Ich wollte keine große 
Platine mit vielen Reglern und Tasten bauen. Das gibt es schon. Aus 
diesem Grund habe ich das Grafische Userinterface entwickelt um die 
Bedienung auch mit weniger Bauteilen zu realisieren. Der Sequencer ist 
eine kleine Zusatzfunktion.

Hier eine Sound Demo mit Sequencer. Der Sequencer in der Jeannie läuft 
und gleichzeitig werden auf einem angeschlossenen Midi-Keyboard Noten 
gespielt.
Link: 
https://drive.google.com/file/d/1s1OCn4WAIJBdLkKUmH0S9qgTmxRnekML/view?usp=sharing

Eigentlich ist die Jeannie ein kleiner "Clone" dieses Synthesizers 
(Bild) nur mit einigen Extras wzB 32Bit DAC und DSP Effekte Link: 
https://electrotechnique.cc/

Gruß Rolf
Angehängte Dateien:
#6817277
Lesenswert?

Hallöchen..

Nach kleinen technischen Schwierigkeiten sind wir jetzt in der Endphase 
unserer Entwicklung. Mit dem FV-1 DSP Chip für die Effekte hatten wir 
noch etwas Probleme. Das konnten wir aber lösen. Die Bauteilbeschaffung 
ist noch ein kleines Problem. Wir versuchen es über Chinesische Händler. 
Die Gehäusekonstruktion ist fertig und wird in den nächsten Wochen 
bestellt. Es wird ein transparentes und farbiges Gehäuse mit Stützfüssen 
werden(ähnlich wie im Bild).

Mehr Informationen hier: https://www.tubeohm.com/new-developement.html

Ein paar technische Details zur Jeannie kann ich jetzt schon verraten..
* 8 stimmig polyphoner DIY Synthesizer
* ARM Cortex-M7 Prozessor 816MHz mit 1MByte Ram
* 2 digitale Oszillatoren pro Stimme mit PWM Kontrolle für Variable 
Pulse * und Variable Triangle Waveform
* 1 PWM LFO
* Pitch Envelope für beide Osczillatoren
* 2 LFOs für Pitch und Filter
* Osc FX (XOR, XMOD, MOD, AND, OR, FM) with OSC-Mix function
* 12 Standard Wellenformen (zum Teil bandlimitiert)
* 500 User Wellenformen
* Noise Generator (White or Pink)
* Digitaler 12dB Multimode Filter mit Resonanz und Überblendfunktion 
(LP/HP/BP)
* 2 ADSR Envelopes max 12sec für Amplifier und Filter mit positiver und 
negativer Steuerung
* Waveshaper mit verschiedenen Kurvenformen
* zwei Unisono Modes
* 15 DSP Effekte mit einstellbaren Parametern
* Farbiges TFT Display mit 128x160 Pixel
* 16 Step Sequencer
* SD Karte fürs laden und speichern der Sound Programme max 2048
* Externer Netzteilanschluss 12 VDC/1A und Netzschalter
und einiges mehr..

Sound Demo: https://youtu.be/UMu46sERF3A

Gruß Rolf
Angehängte Dateien:
Beitrag #6817288 wurde von einem Moderator gelöscht.
#6817298
Lesenswert?

Hallöchen liebe Synthianer smile

Das neue Jeannie Panel Board ist aus China eingetroffen. Andre hat das 
Board jetzt aufgebaut und getestet. Es funktioniert alles wundervoll. 
Das DIY Manual ist auch fast fertig. Jetzt fehlt nur noch das Gehäuse 
und dann sind wir fertig.

Gruß Rolf
Angehängte Dateien:
#6817812
Lesenswert?

Hallo Tobias

Jede Stimme besitzt zwei Oszillatoren mit Modulationseingängen für 
Frequenz- und Phasenmodulation.

Die XOR Funktion ist eine Art Ringmodulation im Stil von Korg MS20. XMOD 
moduliert einen Oszillator mit dem anderen, abhängig von der Position 
des OscMix Reglers. Ein negativer Werte erhöht die Modulation von Osc1 
durch Osc2. Ein positiver Wert erhöht die Modulation von Osc2 durch 
Osc1.

Bei FM wird Osc1 durch Osc2 moduliert.

AND und OR ist eine digitale Logikfunktion beider Oszillator Ausgänge. 
Das Ergebnissen sind interessanten neuen Wellenformen bis hin zu 
aggressiver digitaler Verzerrung.

Gruß Rolf
Angehängte Dateien:
#6838465
Lesenswert?

Ein kleiner Synth mit viel Potential für Klangtüftler:

Ich habe in die kleinen Jeannie insgesammt 945 16Bit User Wellenformen 
gepackt. Dazu kommen noch 12 zum Teil bandlimitierte Grundwellenformen.
Dann für jede Stimme einen 12dB Multifilter mit Resonanz und dahinter
für jede Stimme einen separaten Waveshaper mit verschiedenen 
Kurvenformen.

Abgerundet wird das Ganze durch einen 24Bit Effekt DSP mit einstellbaren 
Parametern. Sollte für Klangtüftler ausreichen 👍
#6838469
Lesenswert?

Software Änderungen im Sequencer

Die Sequencer-Record Funktion nimmt jetzt Velocity-Werte beim Einspielen 
der Noten am Keyboard auf. Die Lautstärke der Noten entspricht einer 
Farbe. Je heller die Farbe um so lauter die Note.

Ferner ist ein Sequencer Poly-Mode geplant. Schließlich haben wir ja 
einen 8 stimmigen Synthesizer.Dabei werden maximal 4 Noten gleichzeitig 
in einem Step gespeichert.

Gruß Rolf
Angehängte Dateien:
#6842204
Lesenswert?

Hallo Jimi

Es gibt Midi IN und Midi OUT bzw True. Uber MIDI CC Messages können 
Parameter gesteuert werden. Eine Midi-Software für die Jeannie ist 
geplant.

Eigenschaften

    • 8 stimmig polyphoner DIY Synthesizer
    • ARM Cortex-M7 Prozessor 816MHz mit 1MByte Ram
    • zwei digitale Oszillatoren pro Stimme
    • 15 Wellenformbänke mit insgesamt 945 Wellenformen
    • 12 Standard Wellenformen zum Teil bandlimitiert
    • Rauschgenerator (White und Pink Noise)
    • Oszillator Modulation (XOR, XMOD, MOD, AND, OR, FM)
    • Waveshaper mit Verschiedenen Kurvenformen
    • 2 LFOs für Pitch und Filter mit 6 unterschiedlichen Wellenformen
    • 1 PWM LFO von 0.04Hz - 25Hz
    • Digitaler 12dB Multimode Filter mit Resonanz und Überblendfunktion 
(LP/HP/BP)
    • 2 ADSR Generatoren 0.5ms – 12s mit positiver und negativer 
Steuerung
    • 24Bit DSP Effekt Modul mit 15 Effekten und einstellbaren 
Parametern
    • polyphoner 16 Step Sequencer
    • SD Karten fürs Laden und Speichern der Sound Programme max. 2048
    • Farbiges 1.8 Zoll Display mit einer Auflösung von 160x128 Pixel
    • Lautstärkeregler
    • Boost Funktion für tiefe Bässe
    • Stereo Audioausgang Klinkenbuchse 6.3mm
    • 4 Potentiometer für die Parametereingaben
    • Drehgeber für Menüsteuerung und Soundauswahl
    • 6 Funktionstaster
    • Externes Netzteil 12 VDC/1000mA
    • und Netzschalter

Gruß Rolf
#7057372
Lesenswert?

Hallöchen..
In der Zwischenzeit gab es wieder einige Updates für unsere Jeannie..

Hier die wichtigsten Updates
 - Auswahl von State Variable Filter oder 24dB Ladder Filter im 
Systemmenü
 - Hüllkurven jetzt mit Exponentiellen Verlauf
 - Einstellbare Attack-Phase mit exponentiellen oder linearen Anstieg
 - LFOs mit Fade In und Fade Out und one shot Funktion
 - Modulationsmenü hinzugefügt
 - Oszillatoren jetzt mit Phasen Modulation
 - SysEx Dump für Patches und Patch Bank in Vorbereitung (siehe Bilder)

Mehr Infos hier: 
https://www.sequencer.de/synthesizer/threads/tubeohm-jeannie-polyphonic-diy-synthesizer.160564/

Gruß Rolf
Angehängte Dateien:
#7397263
Lesenswert?

Hallo liebe Synthiana :)

Unsere Jeannie kann jetzt Stereo. Die acht Stimmen lassen sich beliebig im Stereo-Panorama verteilen (siehe Bild)

Im Poly Modus sind die Stimmen anders verteilt wie im Unison- und Mono-Mode.

Stimmenverteilung im Poly-Mode: 1.Voice Links 90%, Rechts 10% 2.Voice Links 80%, Rechts 20% 3.Voice Links 70%, Rechts 30% 4.Voice Links 60%, Rechts 40% 5.Voice Links 40%, Rechts 60% 6.Voice Links 30%, Rechts 70% 7.Voice Links 20%, Rechts 80% 8.Voice Links 10%, Rechts 90%

Stimmenverteilung im Mono-Mode Mono: Stimme Mitte Mono-2: 1.Stimme Links, 2.Stimme Rechts Mono-3: 1.Stimme Links, 2.Stimme Mitte, 3.Stimme Rechts Mono-4: 1.Stimme Links, 2.Stimme links zur Mitte, 3.Stimme rechts zur Mitte, 4.Stimme Rechts Mono-6: 1.Stimme Links, 2.Stimme etwas links zur Mitte, 3.Stimme etwas mehr links zur Mitte, 4.Stimme etwas mehr rechts zur Mitte, 5.Stimme etwas rechts zur Mitte, 6.Stimme rechts

Das Ganze lässt sich mit dem PAN-Regler von Mono zu Stereo spreaden :)

An der Stimmenverteilung im Unison-Mode wird noch gearbeitet.

Youtube: https://youtu.be/75-9MeFV5rk

Gruß Rolf

Angehängte Dateien:
#7432954
Lesenswert?

Jeannie Virtueller Midi Controller 1.0

Der Midi Controller empfängt und sendet die Daten über USB. Einige Funktionen sind zu speziell und können nur an der Jeannie programmiert bzw eingestellt werden. Jetzt will ich die Prg-Nr. und den Namen beim Umschalten anzeigen lassen. Vielleicht kennt sich jemand mit der Programmierung der Ctrlr App aus. Für Hilfe wäre ich jedenfalls dankbar.

Gruß Rolf

Angehängte Dateien:
#7697886
Lesenswert?

Hallöchen.. Der letzte Beitrag ist schon etwas her. In der Zwischenzeit gabs für die Jeannie einige Firmware Updates (siehe Link). Unter anderem kann Jeannie jetzt auch Wavetables auf beiden Oszillatoren. Um das zu bewerkstelligen, habe ich einen Teil der Oszillator Engine vom Braids Synthesizer (Mutable Instrument) implementiert.

Jeannie Blog: https://www.sequencer.de/synthesizer/threads/jeannie-polyphonic-diy-synthesizer.160564/

Video: https://youtu.be/K3h3YKNzHP0

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren