Totengraeber Posted June 8, 2005 Report Share Posted June 8, 2005 Hallo erst mal.Bin vor 2 Wochen auf die Seite gestoßen und war fastziniert. Gefällt mir wirklich gut, was die Leute hier machen :)Nun gleich zu meiner Frage:Mein englisch ist nicht gerade toll. Habe schon versucht viel zu lesen und es zu verstehen. Allerdings komme ich mit den Modulen nicht so recht klar. Ich weiß ehrlich gesagt nicht, was ich für was genau bräuchte. Es sei auch angemerkt, dass ich mit MIDI (außer zum Ansteuern von Effektgeräten; ProgrammChange etc.) so gut wie keine Erfahrung habe.Was ich eigentlich vorhabe:Ich habe ein Rack-Effektgerät gebaut und möchte das MIDI-Fähig machen.Es sollen verschieden Presets abgespeichert werden können und auf ProgrammChange jeweils die nötigen Einstellungen wiederhergestellt werden. Pro Preset sollen folgende Werte gespeichert sein:- Eine Bezeichnung- Stellung von 4 Potis- Position eines 8-Wege-Schalters- Position eines 2-Wege-Schalters (Bypass)Der Preset-Name soll in einem Display angezeigt werden. Die Einstellungen zu den Presets sollte man über möglichst wenig Regler an der Front einstellen können. Der Name des Presets sollte ebenfalls frei Wählbar sein. Von der Bedienung her soll das ganze etwas an das Rocktron Intellifex angelehnt sein ;)Ist soetwas Prinzipiell mit den Möglichkeiten, die mir die hier vorgestellten Komponenten geben, möglich? Was brauch ich dazu?Ich weiß, viele Fragen, aber hoffe jemand kann mir trotzdem weiterhelfen! Vielen Dank schon mal!mfgTotengraeber Quote Link to comment Share on other sites More sharing options...
alisa 1387 Posted June 8, 2005 Report Share Posted June 8, 2005 Als Anfangs-Nebenbei-Projekt eher weniger geeignet. Du müsstest alle Potis ausbauen und mit Transistoren oder so arbeiten. Statt der Reglerstellung würde jeweils eine Steuerspannung den Parameter steuern. Wenn Du dazu fähig bist, dann wär der Rest nicht sooo schwierig (MIDIbox -> DAC -> Dein Gerät)Also ich möchte dich nicht entmutigen, selbst arbeite ich auch gerade an einem für den Anfang "etwas dick geratenem" Projekt :P Quote Link to comment Share on other sites More sharing options...
p-cord Posted June 8, 2005 Report Share Posted June 8, 2005 Hi,alisa hat Recht, das ist für den Anfang schon etwas groß…Der Vollständigkeit halber möchte ich noch sagen, daß Du die Potis auch gegen Vactrols (eine Art "Vintage-Optokoppler") austauschen kannst, das ist einfacher.Jedoch sind die in D recht schwierig zu bekommen bzw. dann teuer. Man kann die auch mit Lämpchen/LDRs selber machen; ich hab damit schon einiges rumexperimentiert aber es funktioniert nicht wirklich präzise.Grundsätzlich wäre es aber machbar mit einem Core-Modul, einem DIN-Modul (für die Eingabeelemente), einem DOUT-Modul (für die Schalter und LEDs) und einem AOUT-Modul (für die Potis)…Dann müßtest Du noch die Applikationen anpassen.Vielleicht findest Du auch hier im "Midification"-Forum noch was, was Dir konkret weiterhilft. :) fabian Quote Link to comment Share on other sites More sharing options...
Totengraeber Posted June 8, 2005 Author Report Share Posted June 8, 2005 Das mit den Anwendungen anpassen soll mal nicht so das Problem sein (ich hab in 3 Wochen Abschlussprüfung zum Fachinformatiker Anwendungsentwicklung ;) ).Potis irgendwo rausmachen müsste ich eigentlich auch nicht. Bisher existiet der Rack-Effekt nur auf dem Schaltplan - es sind also noch massig Anpassungen/Änderungen möglich.Nur dass ich das jetzt richtig verstehe:MIDIbox ist das Kenr-Modul. Dazu brauch ich dann das DIN-Modul, um eingaben möglich zu machen. DOUT, um eventuelle Schalter und LEDs ein- und auszuschalten und das Modul zur Display-Ansteuerung. Wenn ich das richtig verstehe kann ich noch mit dem AOUT unterschiedliche Spannungen "senden", richtig?Momentan sehe ich das größte Problem noch an zwei Stellen:1.) Potis durch Schaltungen/Bauteile ersetzen, die den selben Effekt wie erstere haben, aber über eine Spannung gesteuert werden können2.) Speichern der Presets Quote Link to comment Share on other sites More sharing options...
raphael Posted June 8, 2005 Report Share Posted June 8, 2005 Hallo,1.) Potis durch Schaltungen/Bauteile ersetzen, die den selben Effekt wie erstere haben, aber über eine Spannung gesteuert werden könnenDie Potis selbst solltest du durch Encoder ersetzen. Die kommen dann an das DIN Modul. Oder du klemms die Potis an den ADC des PICs. Ich würde aber zu Encodern raten.Zur Ansteuerung des eigentlichen Effekts könntest du z.B. per AOUT mit VCAs oder digitalen Potis arbeiten. Das hängt aber davon ab, was du denn steuern willst...2.) Speichern der Presetshttp://www.ucapps.de/mbhp_bankstick.html ist die Lösung.Gruß,Raphael Quote Link to comment Share on other sites More sharing options...
Totengraeber Posted June 8, 2005 Author Report Share Posted June 8, 2005 Die Potis selbst solltest du durch Encoder ersetzen. Die kommen dann an das DIN Modul. Oder du klemms die Potis an den ADC des PICs. Ich würde aber zu Encodern raten.Hmmm. Sind Encoder also sozusagen "Potis", mit denen ich digital einen Wert einstellen kann, den MIOS dann auswertet, abspeichert und bei Bedarf per AOUT wieder ausgibt?!?Zur Ansteuerung des eigentlichen Effekts könntest du z.B. per AOUT mit VCAs oder digitalen Potis arbeiten. Das hängt aber davon ab, was du denn steuern willst...hmm.. VCAs. Hab ich jetzt shcon öfters gelesen. Aber irgendwie finde ich per Google darüber nichts brauchbares. Irgendeine Seite, wo diese Dinger mal erklärt sind, wie sie funktionieren und wo man sie evtl. gleich bestellen kann habe ich leider noch nicht gefunden :(http://www.ucapps.de/mbhp_bankstick.html ist die Lösung.OK. Die komplette Ansteuerung davon funktioniert dann über MIOS, richtig?!?Danke schon mal für eure Hilfe! ;) Quote Link to comment Share on other sites More sharing options...
raphael Posted June 8, 2005 Report Share Posted June 8, 2005 Hmmm. Sind Encoder also sozusagen "Potis", mit denen ich digital einen Wert einstellen kann, den MIOS dann auswertet, abspeichert und bei Bedarf per AOUT wieder ausgibt?!?Ja. Du hast bestimmt schon mal so ein Ding in den Fingern gehabt. Nennt man auch Endlosdrehregler.Bei Potis hat man ja immer das Problem, dass nach dem Laden eines Presets der Poti-Wert nie gleich dem gerade geladenen Wert ist.hmm.. VCAs. Hab ich jetzt shcon öfters gelesen. Aber irgendwie finde ich per Google darüber nichts brauchbares. Irgendeine Seite, wo diese Dinger mal erklärt sind, wie sie funktionieren und wo man sie evtl. gleich bestellen kann habe ich leider noch nicht gefundenz. B. hier: http://home.comcast.net/~sbernardi/elec/og2/og2_dual_linear_vca.htmlder CEM3330 ist auch ein Kandidat.OK. Die komplette Ansteuerung davon funktioniert dann über MIOS, richtig?!?siehe: http://www.ucapps.de/mios_fun.html Da gibts folgende Funktionen:MIOS_EEPROM_Read MIOS_EEPROM_ReadPage MIOS_EEPROM_Write MIOS_EEPROM_WritePage Für so ein Projekt wir es dir nicht erspart bleiben, dich mal intensiv mit MIOS und dem PIC-Assembler zu beschäftigen.Alternativ könntest Du es aber auch mit C probieren:http://www.ucapps.de/mios_c.htmlGruß,Raphael Quote Link to comment Share on other sites More sharing options...
Totengraeber Posted June 8, 2005 Author Report Share Posted June 8, 2005 Endlosdrehreglerna dass ist mir dann schon eher ein Begriff 8)z. B. hier: http://home.comcast.net/~sbernardi/elec/og2/og2_dual_linear_vca.htmlder CEM3330 ist auch ein Kandidat.schau ich mir dann jetzt gleich mal an. Danke :)Für so ein Projekt wir es dir nicht erspart bleiben, dich mal intensiv mit MIOS und dem PIC-Assembler zu beschäftigen.Alternativ könntest Du es aber auch mit C probieren:nunja. Dann hätte ich endlich mal nen guten Grund, mich gescheit in Assembler einzuarbeiten ;DAber trotzdem mal die Frage: ist C diesbezüglich nicht fast schon "zu langsam"? Quote Link to comment Share on other sites More sharing options...
TK. Posted June 8, 2005 Report Share Posted June 8, 2005 nunja. Dann hätte ich endlich mal nen guten Grund, mich gescheit in Assembler einzuarbeiten ;DAber trotzdem mal die Frage: ist C diesbezüglich nicht fast schon "zu langsam"?wenn das komplett in Assembler programmierte MIOS nicht die gesamte Verwaltung der MIDI streams und analog/digital IO uebernehmen wuerde, waere C mit Sicherheit zu langsam. Doch um diese Low-Level Driver musst Du Dich eigentlich nicht mehr kuemmern, im C Programm werden die einzelnen "Datenstroeme" nur noch umgesetzt (also bspw.: Endlosregler gedreht -> Absolutwert speichern -> MIDI Event senden), hierbei brauchst Du erstmal keine Performance-Schwierigkeiten zu befuerchten, solange sich die Datenmengen in Grenzen halten (und wenn es dann doch mal mehr zu verwalten gibt, kannst Du immer noch Inline Assembly Code in die C-Funktionen reinsetzen).Gruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
Totengraeber Posted June 8, 2005 Author Report Share Posted June 8, 2005 Achso... Klingt ja eigentlich dann relativ "einfach".Vom Prinzip her sollte das MIDI-Programm dann folgendes können:1.) beim Eingang eines ProgramChange (auf dem eingestellten MIDI-Channel) die Werte des entsprechenden Presets laden, 4 (evtl. 5) Potis(*) in der Schaltung einstellen, einen 8-Wege-Schalter in die richtige Position bewegen und den gespeicherten Preset-Namen im Display anzeigen.2.) über ein Optionen-Menü die aktuellen Werte der Endlosregler in ein Preset speichern3.) Änderungen der Endlosregler sofort in der Schaltung umsetzenSollte doch eigentlich kein größeres Problem sein, oder? MIDI-Befehle senden oder so muss ich ja nicht. Von MIDI-Seite her also ganz einfach. Im Prinzip jedes eingehende MIDI-Status-Byte auf den richtigen Kanal überprüfen. Trifft das Paket zu, schauen obs ein ProgrammChange ist. Und wenns immernoch zutrifft das entsprechende Daten-Byte auswerten und umsetzen...Die Schaltungen dazu bereiten mir nur noch etwas Magen-Schmerzen ;) Quote Link to comment Share on other sites More sharing options...
TK. Posted June 8, 2005 Report Share Posted June 8, 2005 Ja, das ist kein grosses Problem.MIOS bietet verschiedene Hooks, die aufgerufen werden, wenn bspw. ein Poti bewegt wurde, ein MIDI byte oder ein komplettes MIDI Event empfangen wurde, usw.Wenn Du bspw. ein Program Change Event auf Kanal 1 (-> C0 xx) erwartest, dann sieht der Code in main.c wie folgt aus://///////////////////////////////////////////////////////////////////////////// This function is called by MIOS when a complete MIDI event has been received/////////////////////////////////////////////////////////////////////////////void MPROC_NotifyReceivedEvnt(unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) __wparam{ if( evnt0 == 0xc0 ) { tue_was_mit_c0(evnt1); // evnt1 contains the program change value }}[/code] Wenn das Program auf Potis reagieren soll, erweiterst Du den AIN_NotifyChange hook: [code]/////////////////////////////////////////////////////////////////////////////// This function is called by MIOS when a pot has been moved/////////////////////////////////////////////////////////////////////////////void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) __wparam{ switch( pin ) { case 0: // tue dies break; case 1: // tue jenes break; default: // tue gar nichts }}(vorher muss natuerlich noch in Init() die Anzahl der Potis und die Aufloesung festgelegt werden...)am besten schaust Du Dir mal die C Beispiele an (viele gibt es noch nicht, aber das wird sich irgendwann aendern ;-) - vielleicht kannst Du ja irgendwann einmal Dein eigenes Programm als Beispiel bereitstellen?)Gruss, Thorsten. Quote Link to comment Share on other sites More sharing options...
raphael Posted June 8, 2005 Report Share Posted June 8, 2005 Die Schaltungen dazu bereiten mir nur noch etwas Magen-Schmerzen  Noch ein Tip zu VCAs. Das Datenblatt zum LM13700 benihaltet ca. 30 Beispielschaltungen... (Auch für Voltage Controled Resistor)http://cache.national.com/ds/LM/LM13700.pdfUnd den gibts bei Reichelt für unter einem Euro.Gruß,Raphael Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.