Jump to content

talion

Members
  • Posts

    27
  • Joined

  • Last visited

    Never

About talion

  • Birthday 09/19/1980

Profile Information

  • Gender
    Male
  • Location
    ESSEN, GERMANY

talion's Achievements

MIDIbox Newbie

MIDIbox Newbie (1/4)

0

Reputation

  1. Hi Thorsten, tried this and it works.... I already startet to read the "acmididefines" in the wiki to understand what this really does. My wish is to fully understand the code one day, so i can write real modifications and get rid of such dirty hacks :) But I just startet to learn assembler so it will be a long way .... but the idea of inox (little surface, maximum controll) is so nice, that i wanted to use his idea for my own purposes and customize the firmware for my needs. The problem with this cc-sending-hack for the joystick (especially with two joysticks/4 pots) is, that if you change the value of one pot, the USER_AIN_NotifyChange funktion causes all values of all 4 pots to be sent as cc... that looks like chaos in a seqencer :) But this problem I'll try to solve by myself - I'm going to try to safe the value's of the pins in some var to compare them each time USER_AIN_NotifyChange is called, so i can send cc only if a valuechange for the specific pot is detected. Long way but it's nice to know what i am doing ;) Greets, Chris
  2. Hi, I used this patch to enable two joysticks in my sid: USER_AIN_NotifyChange ;; get 7-bit value of pot #00 movlw 0x00 call MIOS_AIN_Pin7bitGet ;; forward value to the CC handler ;; it expects: CC parameter number in WREG ;; CC parameter value in MIOS_PARAMETER1, so: movwf MIOS_PARAMETER1 ; save 7-bit value in MIOS_PARAMETER1 movlw 0x2F ; control CC #2Fh == Resonance call SID_CCIN_Set ; call function ;; get 7-bit value of pot #01 movlw 0x01 call MIOS_AIN_Pin7bitGet ;; forward value to the CC handler ;; it expects: CC parameter number in WREG ;; CC parameter value in MIOS_PARAMETER2, so: movwf MIOS_PARAMETER2 ; save 7-bit value in MIOS_PARAMETER2 movlw 0x2E ; control CC #2Eh == Cutoff call SID_CCIN_Set ; call function ;; get 7-bit value of pot #02 movlw 0x02 call MIOS_AIN_Pin7bitGet ;; forward value to the CC handler ;; it expects: CC parameter number in WREG ;; CC parameter value in MIOS_PARAMETER1, so: movwf MIOS_PARAMETER1 ; save 7-bit value in MIOS_PARAMETER1 movlw 0x48 ; control CC #48h == LFO1 Depth call SID_CCIN_Set ; call function ;; get 7-bit value of pot #03 movlw 0x03 call MIOS_AIN_Pin7bitGet ;; forward value to the CC handler ;; it expects: CC parameter number in WREG ;; CC parameter value in MIOS_PARAMETER2, so: movwf MIOS_PARAMETER2 ; save 7-bit value in MIOS_PARAMETER2 movlw 0x40 ; control CC #40h == LFO1 Rate call SID_CCIN_Set ; call function return ; and exit AIN handle and it works great.... i used this one and not the sid_ain.inc-thing because the display should not be touched at all.... but how can i make the joysticks make send CC's now? is there a way without changing or touching the cs? Chris
  3. No problem... but the control-surface needs some enhancements because in my version the encoders are splitted over the shift registers - this wont work so easy i found out... and also the pcb's need some documentation because bridges and so on are not documented... when i'm finished with this i'll do all this and put the pcb's in the wiki... Chris
  4. Ok, i found out, that in your post was something missing: CS_MENU_ButtonIncDec_End ;; force a display update and exit bsf CS_STAT, CS_STAT_DISPLAY_UPDATE_REQ return this is needed by CS_MENU_ButtonDec1 and has to be added to the code.... Greets Chris
  5. Hi Ixox, nice work so far!! I've nearly finished my sid exactly like you describted it here. I made my own pcb's and realized this thing on only 3 euro-pcbs including sid, core, 4x bankstick, dinx5, doutx3, optimized c64psu and on-pcb-control-surface.... here some (crapy) pictures: [edit] after all of your changes in sourcecode applied: Error[113] C:\DOWNLOADS\MIDIBOX_SID_V1_7303B\CS_MENU.INC 1666 : Symbol not previously defined (CS_MENU_ButtonIncDec_End) Error[126] C:\DOWNLOADS\MIDIBOX_SID_V1_7303B\CS_MENU.INC 1666 : Argument out of range (-8993 not between -128 and 127) Error[113] C:\DOWNLOADS\MIDIBOX_SID_V1_7303B\CS_MENU.INC 1671 : Symbol not previously defined (CS_MENU_ButtonIncDec_End) there must be something missing..... [edit off] Greets Chris
  6. Danke, werd mein Glück mal versuchen :) Gruß, Chris
  7. Hi, vieleicht ist ja jemand hier, der mit helfen kann :) Habe vor einiger Zeit eine Platine gekauft und will diese nun Bestücken, jetzt habe ich folgenden Konflikt: Die Trannis sind ja im Schaltplan einmal mit B-E-C und mit dem Dicken Strich, der laut Anleitung vorne sein soll, beschriftet - BEC und VORNE passen aber laut Datenblatt der Trannis nicht zusammen - was ist denn jetzt richtig? Der dicke Strich = vorne oder einlöten gemäß B-E-C Beschriftung? Danke und Grüße, Chris
  8. so - alles geht nun: USER_MPROC_NotifyReceivedEvent ;; BEGIN --- control DOUT pins via Note events at channel #1 movf MIOS_PARAMETER1, W ; Note Off -> Note On with velocity 0 andlw 0xf0 xorlw 0x80 bnz USER_MPROC_NRE_NoNoteOff USER_MPROC_NRE_NoteOff bsf MIOS_PARAMETER1, 4 clrf MIOS_PARAMETER3 USER_MPROC_NRE_NoNoteOff movlw 0x90 ; check for Note On at channel #1 IFNEQ MIOS_PARAMETER1, ACCESS, rgoto USER_MPROC_NRE_NoNoteChn1 USER_MPROC_NRE_NoteChn1 ;; MIOS_DOUT_PinSet expects pin number in WREG, value in MIOS_PARAMETER1 movf MIOS_PARAMETER3, W ; velocity == 0: off, velocity != 0: on skpz movlw 0x01 movwf MIOS_PARAMETER1 movf MIOS_PARAMETER2, W ; pin number: note number - 0x24, we start with C-2 addlw -0x24 andlw 0x7f call MIOS_DOUT_PinSet USER_MPROC_NRE_NoNoteChn1 ;; END --- control DOUT pins via Note events at channel #1 ;; process MIDI event call CV_MIDI_NotifyReceivedEvent ;; for best latency: branch to USER_Tick so that the new CV values ;; will be mapped immediately rgoto USER_Tick und: USER_SR_Service_Finish ;; ---[ handle with control surface variables (flashing cursor, etc) ]--- ;; Reset the first two shiftregisters of dout clrf MIOS_PARAMETER1 movlw 0x00 call MIOS_DOUT_SRSet movlw 0x01 call MIOS_DOUT_SRSet goto CS_MENU_TIMER so sehe die beiden modifizierten funktionen jetzt aus..... Wiki kommt - ich hoffe so klappt es jetzt. Grüße, Chris edit: allerdings kommt da gerade noch eine frage auf: wenn ich nun paare aus aout und dout haben möchte - sprich note c-2 über den ersten dout und dessen velocity über den ersten aout - wie funktioniert das ab dem zweiten paar? die douts hören ja nur auf die erste keyzone wenn ich das richtig verstehe - und die erste keyzone ist ja von c2 bis c2 weil der erste aout ja auch nur die velocity von c2 ausgeben soll - c#2 bis c#2 wäre dann die zweite keyzone für den zweiten aout - wenn ich jetzt nen c#2 spiele kommt das auch aus dem dout raus dann?
  9. ok... einige probleme später - gestern machte ich den fehler im laufenden betrieb den midi stecker reinzustecken - spannungswandler abgeraucht und pic im arsch - gut, keller - neuer pic - neuer spannungswandler - diesmal ne andere taktik beim netzteil: der core hat jetzt nen eigenes mit 9v dc - spart ne menge hitze und den kühlkörper. dann test des aout's: geht nicht - dann habe ich nochmal die versorgungsspannungen getestet - alles ok - dann in der midibox cv mal den ersten cv ausgang auf cc gelegt und nen bischen geschraubt - siehe da - die max teile arbeiten einwandfrei - wenn ich rumdrehe ändert sich die spannung an den eingängen der tl074 - bei nem cc wert von 90 messe ich irgendwas um die 1,4 volt - scheint also alles zu klappen jetzt bleiben 2 fehlerquellen: 1. die tl074 haben sich beide verabschieded beim crash gestern - der pic ist ja auch über den jordan, kann ich mir aber nicht vorstellen, denn sonst wären die max auch kaputt gegangen 2. die tl074 arbeiten nicht richtig bzw. sind kaputt weil ich die mit 15v betreibe - ist aber auch blödsinn denn in alten synthies werden die auch mit 15volt betrieben naja bin jetzt etwas ratlos - habe auch keine tl74 mehr hier zum testen - nur 72 und 71 - schätze conrad hat die wie immer nicht da :( was mir auch noch in den sinn kam: ich habe ja jetzt zwei getrennte netzteile - ob ich die masse des core-netzteiles und die masse des +15/-15 netzteiles verbinden muss? im moment ist von dem +15/-15 volt netzteil ja nur plus und minus verbunden... ??? vieleicht weiß jemand rat.... das doutx2 mach ich dir fertig und schick es dir per mail - dann vergisst du es auch nicht - sind im grunde 2 fehler - einmal nen kurzschluss und irgendwas war mit der seriellen verbindung der ic's falsch ... ja das wiki mach ich auch gerne - sobald der aout läuft teste ich noch die 1ms erweiterung und schreibe ne anleitung dafür - deutsch und englisch - so kann ich wenigstens was zur sache beitragen :-) allerdings sollte man sich dabei nicht so auf die 909 fixieren - ich denke das ist bei allen analogen drums so - denn hallocinogen brauchte das interface ja für seine 808 - und ich teste auch nur mit der 909 kick weil die in einem gehäuse ist und ich nicht noch mehr kabel/platinen-salat auf dem tisch brauche :) Grüße, Chris edit: ok problemlösung war: die beiden massen müssen verbunden sein - dann klappt es auch mit den tl074 :) - weiter gehts mit der 1ms erweiterung
  10. ok ich habs :) funktioniert - allerdings wurde ich etwa 2 stunden durch die fehlerhafte vorlage für das doutx2 aufgehalten - solltest du aus dem netz nehmen.... kein plan ob der rest nach meiner codeänderung noch geht - werde ich aber gleich noch testen und dann posten.... lustig ist auch, das ich zwar 5v habe wenn ich eine note spiele - aber aus irgendeinem grund kann ich damit nicht triggern *lol* - bedarf also noch ein wenig forschungsarbeit - hoffentlich hat es nichts mit der der dauer des triggern's zu tun, hallocinogen schrieb mir, das er einen impuls von 1ms benutzt - naja muss mal sehen, hab auch kein oszi hier im moment, sonst würde ich mal messen was aus der 606 kommt - damit klappt es nämlich wenn ich mit meinem finger den gate-in der 909-kick berühre kann ich sie damit triggern - nicht aber mit 5v aus dem dout - egal erstmal den rest bauen dann weiter testen.... Grüße- Chris
  11. ok klappt auch nicht - naja jetzt habe ich noch ein anderes prob - der 7805 wird wegen den 18volt vom rinkerntraffo etwas "warm" *g* man kennt das ja - irgendwann bricht die spannung ein, so kann man nicht ordentlich testen - werde mal eben nach conrad fahren und nen kühlkörper kaufen dann noch mal was: ich habe vorhin auch einfach mal die normale midibox-cv anwendung aufgespielt um mich mal ein wenig damit vertraut zu machen (so gut es ging, in 5 minuten intervallen weil der spannungsregler ja immer versagte) - eigentlich muss ich doch gar nix einstellen oder? der code den du gepostet hast bewirkt doch, das bei einem note event auf dem ersten channel, der entsprechende dout getriggert wird- richtig? wenn ich also bei keyboard-zone als erste note C-2 einstelle - sonst habe ich auch noch gar nix konfiguriert - und dann ein c-2 spiele müsste also der erste dout getriggert werden, ooooder? :-) Grüße, Chris
  12. so, der gesamte abschnitt bis zum nächsten kommentar sieht jetzt so aus: ;; -------------------------------------------------------------------------- ;; This function is called by MIOS when a complete MIDI event has been received ;; Input: ;; o first MIDI event byte in MIOS_PARAMETER1 ;; o second MIDI event byte in MIOS_PARAMETER2 ;; o third MIDI event byte in MIOS_PARAMETER3 ;; -------------------------------------------------------------------------- USER_MPROC_NotifyReceivedEvent ;; process MIDI event call CV_MIDI_NotifyReceivedEvent ;; for best latency: branch to USER_Tick so that the new CV values ;; will be mapped immediately rgoto USER_Tick USER_MPROC_NotifyReceivedEvent ;; BEGIN --- control DOUT pins via Note events at channel #1 movf MIOS_PARAMETER1, W ; Note Off -> Note On with velocity 0 andlw 0xf0 xorlw 0x80 bnz USER_MPROC_NRE_NoNoteOff USER_MPROC_NRE_NoteOff bsf MIOS_PARAMETER1, 4 clrf MIOS_PARAMETER3 USER_MPROC_NRE_NoNoteOff movlw 0x90 ; check for Note On at channel #1 IFNEQ MIOS_PARAMETER1, ACCESS, rgoto USER_MPROC_NRE_NoNoteChn1 USER_MPROC_NRE_NoteChn1 ;; MIOS_DOUT_PinSet expects pin number in WREG, value in MIOS_PARAMETER1 movf MIOS_PARAMETER3, W ; velocity == 0: off, velocity != 0: on skpz movlw 0x01 movwf MIOS_PARAMETER1 movf MIOS_PARAMETER2, W ; pin number: note number - 0x24, we start with C-2 addlw -0x24 andlw 0x7f call MIOS_DOUT_PinSet USER_MPROC_NRE_NoNoteChn1 ;; END --- control DOUT pins via Note events at channel #1 kompilieren ging mit f10 glaube ich - mal sehen ob's geht - bin auf der arbeit und kann erst heut abend testen.... Gruß, Chris
  13. ok die hardwaretestumgebung steht - jetzt das problem :) hab mir die sources von midibox cv geladen dann ein bischen gestöbert und mplab installiert (noch nie was mit assembler gemacht!) dann habe ich ein neues project erstellt und einfach alle dateien aus dem midibox_cv verzeichniss hinzugefügt dann ging es schon los: die original funktion die ich suchen sollte, habe ich auch gefunden - aber an welcher stelle muss ich den code da einfügen? einfuch in diesem label nach dem goto ... ?? ich habe keine ahnung.... zweite frage ist dann: ich kann die main.asm ja dann speichern - wie kann ich dann compilieren? einfach den wizard benutzen und immer ok drücken? Grüße, Chris
  14. Hi, ich eagle mir gerade ein netzteil für den 808 clonne. den gleichrichter und den 7805 vom core lasse ich natürlich wech und integriere das einfach in das hauptnetzteil, welches also +15/-15 und 5v für den core liefern soll. jetzt die frage: der tl074 vom aout arbeitet ja auch mit +15/-15 volt - MUSS ich den wie in der doku vom aout mit +12/-12 betreiben oder kann ich den auch mit +15/-15v betreiben ohne, dass der rest des aout's "leidet"? Grüße, Chris
  15. Hi Thorsten, sollte ja kein Vorwurf sein :) - verglichen mit komrz. MIDI-CV Adaptern ist das aout extrem leistungsstark und günstig. Hab auch einige günsdtigere dac's gefunden aber du hast schon recht, wenn man die auf 8 hochrechnet wirds auch schon teurer - und was auch stimmt ist das viele dac's sehr ungenau arbeiten, was vielen leuten aber auch egal ist da es "früher" ja auch ungenau war. nutzt man das aout aber für 1v/oktave sind gute dac's natürlich von vorteil. für meinen sid habe ich mir das lc halb (1channel) gebaut und steuere damit cutoff von einem externen filter - funzt auch zu 100% und das war extrem billig - hab noch nicht mal selected und es ist ok :) Gruß, Chris
×
×
  • Create New...