rolfdegen

AVR-Synthesizer "WAVE 1"

367 posts in this topic

hat deine neue soundkarte eigentlich eine midischnittstelle, damit du deinen synth auch über midi ansteuern kannst?

Share this post


Link to post
Share on other sites

Nein. Mach ich über das USB-Interface in meinem Midi-Keyboard.

Share this post


Link to post
Share on other sites

Hallo

 

In Bezug auf Cubase LE6 hatte ich Probleme mit dem Creative ASIO-Treiber. Mit diesem Treiber konnte ich in Cubase den Mikrofon-Eingang nicht aktivieren. Erst als ich den "ASIO4ALL" Treiber in der Version 2.0 auf meinem Win8 PC installiert hatte, funktionierte das Mikro problemlos. Außerdem lässt sich in dem "ASIO4ALL" Treiber die Latenz für Ein- und Ausgang sowie die Puffergröße einstellen. Ich habe einen Wert von 10msec und 256Byte gewählt.

 

Ich habe verschiede ASIO-Treiber in Cubase LE6 getestet und folgende Zeiten mit dem Oszilloskop gemessen:

ASIO-Treiber "ASIO4ALL" Version 2.0
ASIO-Buffergröße : 384 Samples
Gemessene Ausgangs-Latenz am Anfang der Midi-Note (gemessen am Midi-Eingang meines AVR-Synth) und Beginn der Audio-Ausgabe (von Cubase) variiert zwischen 4-6msec. Ab einer Buffergröße von 412 Samples verschlechtert sich der Latenzwert auf >45msec.

ASIO-Treiber "Creative"
Gemessene Ausgangs-Latenz (wie oben) ca. 10msec. Der gemessene Latenzwert bleibt auch bei einer Vergrößerung der Latenzzeit im Konfigurationsmenü unverändert.

ASIO-Treiber "DirectX Full Duplex"
Gemessene Ausgangs-Latenz (wie oben) ca. 30msec. 

 

Gruß Rolf

Share this post


Link to post
Share on other sites

4-6ms ist eigentlich ganz gut. Aber interessant, dass selbst die neuen Karten von Creative diese ASIO Probleme haben. Bestätigt nur meine Erfahrungen. Die Hardware mag ja gar nicht schlecht sein, bloss der Treibersupport ist unter aller Sau. Gamerkarten halt. 

 

Hab hier mit ner RME Muliface II bei 96khz und 64 Samples 2,7 ms globale Latenz.

Share this post


Link to post
Share on other sites

Hallo Kristal=

 

Mit der Zeit werde ich mir auch besseres Audio-Equipment kaufen wzb. ein gutes Audiointerface, analoges Mischpult und aktive Nahfeld Monitor-Boxen. Aber im Moment und wegen knappen Budget muss es leider etwas preisgünstiger sein. Da mein Interesse mehr an der Entwicklung von Klangerzeugern hängt, als an der Audio-Produktion selber, ist das wichtigste Werkzeug mein Computer  :rolleyes:

 


Gestern Abend hab ich mir noch einmal die Bedienung meines Synthis durch den Kopf gehen lassen. Bei der täglichen Arbeit an dem Synthi ist mir aufgefallen, das die vielen Tochfunktionen doch nicht so praktisch sind, wenn man an einem Sound herumbastelt. 

Aus diesem Grund habe ich überlegt, ob ich das Bedienkonzept nicht etwas verändere und für die Parametereingabe fünf Drehgeber implementieren (siehe Zeichnung).


Bild 1: AVR-Synthesizer Bedienpanel

Synth_Bedienung_01.png

Die Drehgeber hätten dann folgende Funktion: Vier Drehgeber für die Daten zB. ADSR und einen großen Drehgeber mit Tasterfunktion für die Menü- und Funktionsauswahl.

Ferner bin ich mit der Auswahl meiner bisher verwendeten Drehgeber nicht zufrieden. Der Dehgeber PEC12-4220F-S0024 von Watterott ist zu schwergängig und man hat kaum ein Gefühl bei der Rasterung. Der Drehgeber von ALPS STEC12E08 ist angenehm leichtgängig, aber prellt sehr stark. Mal schaun wo ich jetzt gute Drehgeber und Knöpfe herbekomme.
 


Ich habe gesehen, das einige User hier aus dem MIDIbox-Forum für ihr Projekt diesen Drehencoder von Bourns verwenden. Dieser sind zwar etwas teurer, aber vielleicht auch zuverlässiger. Hab jetzt welche bei Völkner bestellt. Mal schaun wie sich die Dinger in meinem Synth anstellen :smile:



Bild 1: Encoder Ecw1j-B24-Ac0024l 24 Ppr 0,1 W

 

 

100-m.jpg

 

Gruß Rolf

Edited by rolfdegen

Share this post


Link to post
Share on other sites

Die sind nicht wirklich zuverlaessiger, eher im Gegenteil - genau dieses Modell ist in den EMU Samplern verbaut, die teilweise massive Probleme haben. Allerdings reden wir hier von mehreren Jahren in Benutzung, es kann also etwas dauern bevor du etwas merkst :-).

Share this post


Link to post
Share on other sites

Im Vergleich zu dem Drehencoder von ALPS (30.000 Umdrehungen) hat der Drehencoder von Brouns aber eine bessere mechanische Lebensdauer (200.000 Umdrehungen).

Edited by rolfdegen

Share this post


Link to post
Share on other sites

Kann sein dass Emu-User ihr Equipment haeufiger nutzen als andere - ich hatte jedenfalls schon mehr defekte Bourns- als Alps-Encoder in den Fingern.

Share this post


Link to post
Share on other sites

Hallo Kristal

 

Danke für deinen Tip. Ich werde meine ALPS Encoder mal mit dem Aplikationsbeispiel für die ALPHA Encoder testen. Vielleicht prellen die dann nicht mehr so dolle. In meiner Software verwende ich die Encoder-Routine von Peter Dannegger und frage den Encoder in einem Timer-Interrupt jede Millisekunde ab.

 

 

Bild 1: Aplikationsbeispiel für Encoder von ALPHA

 

Enc_RC.jpg?psid=1

 

Gruß Rolf

Share this post


Link to post
Share on other sites

Hallo Rolf,

 

schau Dir mal meine Routine an: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fmios32%2Fcommon%2Fmios32_enc.c

 

Hier gibt es noch zusaetzliche Plausibilitaetschecks, die sicherstellen, dass bspw. bei einer schnellen Drehung in eine bestimmte Richtung keine Events fuer die entgegengesetzte Richtung generiert werden. Dies koennte bspw. bei einer Prellung passieren, aber auch dann, wenn man den Encoder (viel) zu schnell dreht (ich scanne i.d.R ebenfalls mit 1 mS)

    // INC
    // plausibility check: when accelerator > 0xe0, exit if last event was a DEC
    // if non-detented encoder: only do anything if the state has actually changed 

Die verschiedenen Encoder-Typen sind unter http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Finclude%2Fmios32%2Fmios32_enc.h definiert.

Die Codes definieren auch, auf welche Flanken getriggert wird:

 

      // if Bit N of ENC_MODE is set, according ENC_STAT triggers Do_Inc / Do_Dec
      //
      // Bit N     7   6   5   4  
      // ENC_STAT  8   E   7   1
      // DEC      <-  <-  <-  <-  
      // Pin A ____|-------|_______
      // Pin B ________|-------|___
      // INC       ->  ->  ->  ->  
      // ENC_STAT  2   B   D   4
      // Bit N     0   1   2   3 
      // This method is based on ideas from Avogra

 

 

Es hat sich herausgestellt, dass die ALPS STEC12E08 von Reichelt mit dem Code "0x22" unzuverlaessig arbeiten, mit "0x88" jedoch bestens zurechtkommen.

 

Gruss, Thorsten.

Share this post


Link to post
Share on other sites

Die Entprellung funktioniert. Der Fehler scheint aber bei mir im Programm zu liegen. Sobald ich eine andere Funktionsroutine aufrufe fängts an zu prellen. Mal schaun was da schiefläuft :( 

Share this post


Link to post
Share on other sites

Hallo

 

So..hab den Fehler gefunden. War eine kleine Codezeile in meinem Programm, die da nicht hingehörte und schon funktionieren die ALPS-Encoder wies besser nicht sein könnte :rolleyes:

Solche Fehler passieren, wenn man zu lange am Programmcode sitzt und den Wald vor lauter Bäumen nicht mehr sieht.

 

Hab die Encoder von Bourns jetzt stoniert und noch ein paar ALPS bestellt.

 

Gruß Rolf 

Edited by rolfdegen

Share this post


Link to post
Share on other sites

Hallo

Habe das Netzteil vom AVR-Synthi etwas modernisiert. Den Festspannungsregler 7805 habe ich durch einen modernen verlustärmeren Schaltregler vom Typ TSR 1-2450 ersetzt. Dieser wird jetzt nur noch handwarm und braucht keinen Kühlkörper mehr. Den alten Schaltregler für die +3.3V Spannung habe ich ebenfalls durch einen TSR 1-2433 ersetzt. Zum Schutz vor Überspannung sind die Schokky-Dioden D3, D6 und D9 vorgesehen. Zusätzliche Störungen durch die Schaltregler sind an den DAC- und den Audioausgängen nicht messbar. Das liegt daran begründet, das die Xmega MCU auf dem Xplained-Board durch einen separaten 3.3V Linear-Regler verrsorgt wird und Störungen auf der +5V Schiene am Ausgang des 3.3V Linear-Reglers eliminiert werden.

Bild 1: Netzteilschaltung "AVR-Synth"

Netzteil_AVR_Synth_02.png

 

Gruß Rolf

 

 

 

 

 

 

Hallöchen und einen guten Abend zusammen..

So langsam wird es Zeit über ein Gehäuse für meinen Synthesizer nachzudenken. Eigentlich hatte ich ja vor, meinen AVR-Synthesizer in mein kleines Midi-Keyboard einzubauen (siehe Bild 1). Aber ich habe mich dann doch für ein externes Gehäuse entschieden, um einerseits den Nachbau zu erleichtern und bei der Gestaltung der Frontplatte bzw. des Bedien-Panels freie Hand zu haben. 

Bild 1: Bildmontage Midi-Keyboard mit AVR-Synthesizer

 

 

Miditech_01.jpg
Aber wer die Wahl hat, der hat auch die Qual.. Ich habe mir im Internet viele Synthesizer Marke Eigenbau angesehen. Darunter auch sehr "interessante" Bauformen wie diese hier..
 
1724.jpgt_12throotanalog_105.jpg
mixtape-alpha-synthesizer-640x417-133401P0000790.JPG
473827104.jpeg
 
 
 

Für meinen kleinen AVR-Synth schwebt mir ein kleines edles Pultgehäuse vor, wie zum Beispiel das von der Firma Hammond oder BOPLA. 


Bild 2: Edles Pultgehäuse von Hammond

case_02.jpg

 

Bild 3: Pultgehäuse von BOPLA

case_01.jpg

 

Das Gehäuse von Hammond gefällt mir dabei sehr. Die Frontplatte werde ich mir entweder bei der Firma Schaeffer AG ausfräsen und bohren lassen, oder ich versuch es selber. Schaun wir mal..

Bis zum nächten Beitrag

Lieben Gruß Rolf
 
 
 
Edited by rolfdegen

Share this post


Link to post
Share on other sites

Hallo zusammen

 

Ich möchte euch den ersten Gehäuse-Entwurf für mein Synthesizer "WAVE 1" vorstellen. Die Idee stammt von Wolfgang (alias Wiesolator) aus dem CC2-Forum. Grundlage ist ein Alugehäuse der Firma BOPLA (Bild 2).

Die gelbe Frontplatte lasse ich von der Firma Schaeffer herstellen. Die zwei Gehäuseseitenteile werden aus Holz sein. Die Idee für die zusätzlichen Regler (Edit) hatte Wolfgang. Für Live-Aktionen können die Regler mit einer Funktion belegt werden.

 

 

 

 

Bild 1: Gehäuse-Entwurf für meinen Synthesizer "WAVE 1"

6d93d2b3f11c5233f349bb3347daf6.jpg

Bild 2: Verwendetes Pultgehäuse von BOPLA

atph-1865-300.jpg

Vorschlag_Gehaeuse.png

 

Was in dem Entwurf noch fehlt, sind Volume-Regler für den Kopfhöreranschluss und SD-Card Beschriftung (oben).

 

Gruß Rolf 

Edited by rolfdegen

Share this post


Link to post
Share on other sites

Hallo Rolf,

Warum benutzt du eigentlich Potis statt Encoder?
Beim Laden und Speichern von Sound Presets oder dem Fernsteuern von MIDI Parametern durch die DAW würden die aktuell eingestellten Werte der Potis ja nicht mitberücksichtigt.

Da könnte man bestimmt auch etwas mit Abholmodus für die Potis programmieren, ich persönlich empfinde die Abholmethode eher als unvollkommenen Workaround. Unter anderem, weil man sich nicht darauf verlassen kann, daß die Markierung auf der Potikappe auch dem internen Wert entspricht, oder ob der interne Wert erst noch abgeholt werden muß.
Evtl macht es ja Sinn, statt der verwendeten Potis eher auf Encoder mit LED Kranz zu setzen.
So kannst du Speichern, Laden, Fernsteuern und selbst Mehrfachbelegungen der Encoder sind möglich.

Share this post


Link to post
Share on other sites

Hallo Thomasch und noch frohe Ostern  :rolleyes:

 

Die Verwendung von einigen Potis statt Encoder war die Empfehlung eines Freundes (Musiker). Zum Beispiel ist das Cutoff-Poti für die Realtime-Steuerung direkt mit CV-Eingang des Filters verbunden. Dadurch hat man bei einer hohen Resonance-Einstellung eine viel bessere Auflösung und kann es feiner einstellen. Die digitale Steuerung der Filter ist weiterhin möglich. Aber das ist nur eine Idee von vielen. Das Design ist noch nicht endgültig. Ich stelle auch gerade fest, das die Größe des bestellten Alu-Gehäuse (183 x 200mm) vermutlich etwas zu klein sein wird, um alle Encoder, Potis, Schalter und Display einzubauen. Zum Beispiel hatte ich den Abstand der vier Encoder (A-D) zueinander mit 20mm (Achse zu Achse) viel zu klein gewählt und hatte dadurch Probleme bei der Bedienung. Den Abstand habe ich jetzt auf 30mm vergrößert und kann die Encoder prima bedienen, ohne mir die Finger dabei zu "brechen" :rolleyes:

 

Gruß Rolf

Edited by rolfdegen

Share this post


Link to post
Share on other sites

Hallo

Leider hat Gestern unerwartet meine SSD-Festplatte ihren Geist aufgegeben und ich hab mal wieder einen ganzen Tag damit vertrödelt, mein Windows8-System auf eine neue Systemfestplatte (keine SSD mehr) aufzuspielen und neu zu konfigurieren. 

Damit es aber hier nicht so langweilig wird, ein ganz kleiner Vorgeschmack auf die neue ADSR-Funktion in meinem AVR-Synth nach einer Idee von Wolfgang aus dem CC2-Forum.

Youtube-Video

 

Viel Spaß. Gruß Rolf

Edited by rolfdegen

Share this post


Link to post
Share on other sites
Hallo Thomasch und noch frohe Ostern  :rolleyes:

 

Die Verwendung von einigen Potis statt Encoder war die Empfehlung eines Freundes (Musiker). Zum Beispiel ist das Cutoff-Poti für die Realtime-Steuerung direkt mit CV-Eingang des Filters verbunden. Dadurch hat man bei einer hohen Resonance-Einstellung eine viel bessere Auflösung und kann es feiner einstellen. Die digitale Steuerung der Filter ist weiterhin möglich. Aber das ist nur eine Idee von vielen. Das Design ist noch nicht endgültig

Der Nachteil bei MIDI ist die relativ geringe Auflösung mit 7 Bit, da geb ich dir recht.

In der Praxis halte ich das aber für weniger dramatisch, als auf die Fernsteuermöglichkeiten von Cutoff und Resonanz verzichten zu müssen.

In meinen Songs mache ich beispielsweise intensiv Gebrauch von Automatisierung durch die DAW, daher halte ich das persönlich auch für wichtiger, als eine superfeine "analoge" Auflösung.

Pro und Contra:

                                               Poti to CV          Midi to CV

Hohe Auflösung                         +++                       ---

Automation                                n.V.                       +++

Speicherung                              n.V.                       +++

Mehrfachbelegung                    n.V.                       +++     

 

 

 

Damit es aber hier nicht so langweilig wird, ein ganz kleiner Vorgeschmack auf die neue ADSR-Funktion in meinem AVR-Synth nach einer Idee von Wolfgang aus dem CC2-Forum.

Sieht doch nicht schlecht aus.

Evtl macht es ja Sinn eine Beschleunigungsfunktion für die Encoder zu Implementieren. Je schneller du drehst, um so größer werden die Parametersprünge, ansonsten kurbelst du dich ja tot.

Gruß

Thomasch

Share this post


Link to post
Share on other sites

Zur Beschleunigungsfunktion der Encoder. Wird noch dran gearbeitet :smile:

 

Gruß Rolf

Edited by rolfdegen

Share this post


Link to post
Share on other sites

Hallo zusammen und einen wunderschönen guten Tag..

Ich wollte mich hier mal wieder melden und über den aktuellen Entwicklungsstand meines AVR-Synthesizer berichten.

Die Entwicklung eines übersichtlichen und verständlichen Benutzermenüs für das Display des AVR-Synthesizers verschlingt sehr viel Zeit und "Hirnschmalz". Aus diesem Grund bitte ich um Verständnis und Geduld, wenn sich ab und zu hier im Forum nichts großes tut. Ich bedanke mich nochmals bei Wolfgang (alias Wisolator aus dem CC2-Forum), der mit vielen guten Ideen und interessanten Infos mein Projekt bereichert.

Wie gesagt programmiere ich zur Zeit das Benutzermenü für meinen AVR-Synth. Das Benutzermenü besteht zur Zeit aus 9 Menü-Seiten (Sound, Osc, LFO, ADSR, VCF, VCA) die alle einen ähnlichen Aufbau haben (siehe Bild 1). Später werden noch einige Menüseiten für weitere Funktionen wzB für die Modulations-Matrix folgen. Die alten Touchfunktionen im Menü sind durch Drehgeber ersetzt worden. Dadurch ist es möglich auch andere Grafik-Displays ohne Touchfunktion zu benutzen. Alle Einstellungen werden momentan über die fünf Drehgeber (Rotary encoder) gemacht. Eventuell werden später noch ein paar Taster integriert.

 

Bild 1: Einschaltmeldung und die Initialisierung der SDCARD

AVR_Page01.jpg

 

Bild 2: Soundauswahl

AVR_Page02.jpg

 

Bild 3: Oszillator-Menü

AVR_Page03.jpg

 

Bild 4: ADSR1-Menü

AVR_Page04.jpg

 

Bild 5: ADSR2-Menü

AVR_Page05.jpg

 

Bild 6: Filter-Menü

AVR_Page06.jpg

 

Bild 7: Encoder-Funktion

EncFunktion.jpg

 

Gruß Rolf

1 person likes this

Share this post


Link to post
Share on other sites

Das Layout ist aber sehr stark am Blofeld orientiert... ;-)

 

Gruss, Thorsten.

Share this post


Link to post
Share on other sites

Fettes Projekt! "Release", nicht "Relaese", aber eine sehr coole Geschichte, Respekt!

Ciao,

Peter

Share this post


Link to post
Share on other sites

Hallo zusammen..

 

 

 

Das Layout ist aber sehr stark am Blofeld orientiert... ;-)

 

Gruss, Thorsten.

 

Ja das stimmt. Ich finde die Menü-Struktur des Blofeld sehr gelungen und habe mich daran ein wenig orientiert. Mir ist schon klar, das ich mit meiner "one-man show" keinen professionellen Synthesizer wzB einen "Waldorf Blofeld"  entwickeln kann. Aber es macht riesigen Spaß, zu versuchen, die gute Ideen aus diesen Waldorf Synthis in meinen kleinen 8Bit Synthi zu intergieren. Nicht umsonst habe ich meinen Synthi "WAVE 1" nach einem legendären Vorbild von Waldorf benannt :smile:.

 

@Hawkeye

Danke für deinen Hinweis. Wurde sofort korrigiert. 

 

Gruß Rolf  

Edited by rolfdegen

Share this post


Link to post
Share on other sites

Hallo

Ich habe das Filter-Menü und die Anzeige der Cutoff-Frequenz etwas abgeändert (siehe Bild 1). Die Abbildung der Filterkurve entspricht der voreingestellten Eckfrequenz des Tiefpassfilters. Der Parameter "Cutoff" (0-127) bestimmt die Eckfrequenz beim Tiefpass-Filter. Mit dem Parameter "Resona." (0-64) kann die Resonanz für den Tiefpassfilter eingestellt werden. Bei hohen Resonanzwerten kommt es zur Selbstoszillation des Filters. An einer grafische Anzeige für den Resonanzwert in der Filterkurve programmiere ich gerade. 

Der Parameter "KTrack" (Keytracking 0-100) ist zur Zeit noch nicht implementiert. Mit "EnvAmo" (Env Amount 0-64) bestimmt man den Einfluss der Filterhüllkurve (ADSR2) auf die Filterfrequenz. Mit zunehmenden Einstellwerten steigt die Filterfrequenz mit der Modulationsauslenkung der ADSR2-Hüllkurve. Klänge mit einem harten Anschlag klingen in der Startphase dadurch etwas heller.

Die Formel für den Filtersteuerwert lautet:

uint16_t cutoff;
uint16_t amount;
cutoff = ((adsr2_out >>8)*(cutoff_value1 *2)>>8);
amount = ((adsr2_out >>8)*(amount_value1*4)>>8);
CV_VCF_Cha1 = (cutoff+amount);
CV_VCF_Cha2 = (cutoff+amount);

 

Bild 1: AVR-Synth Filter-Menü

Filter.jpg

 

Gruß Rolf

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now