Jump to content

ris8_allo_zen0

Programmer
  • Posts

    173
  • Joined

  • Last visited

Everything posted by ris8_allo_zen0

  1. Ciao ganchan! In effetti sono qui da quasi due anni ma mi faccio vivo raramente in questo sottoforum. Dei pochi messaggi che arrivano qui, riguardano spesso progetti MB che non conosco :( Oh, dimenticavo di dare il benvenuto a theworm nella piccola grande community MIDIbox!! :) P. S. l'opl3 è nei miei progetti futuri...
  2. Ciao, mi sono accorto solo ora di questo thread! Provo a risponderti: quasi tutti i pin del microcontrollore sono già impegnati per qualche tipo di periferica, e in questo caso ne servono ben 8 (per realizzare appunto il collegamento in parallelo). Otto sono anche i pin dedicati all'LCD, ma bisogna notare che non sono sempre utilizzati in ogni momento, ma solo quando bisogna cambiare la schermata. In quel caso il microcontrollore attiva i pin giusti e poi manda un impulso attraverso un altro pin "enable" (altrimenti detto Chip Select). Solo durante quell'impulso l'LCD sta effettivamente leggendo lo stato degli otto pin. Non conosco l'OPL3 ma credo che il meccanismo sia molto simile: otto pin di dati più uno di enable. Quindi gli stessi otto pin possono essere usati per più dispositivi, basta che ciascuno abbia il suo filo di enable. Anche nel MIDIbox SEQ è necessario controllare due LCD, e anche lì si usano due enable: uno è quello incluso nel connettore e l'altro è fornito da uno dei pochi pin rimasti liberi del microcontrollore.
  3. Hello, I'd like to let you see my first MIDIbox creation, now finished. Once it was transparent, then it got too many scratches and I repainted gray. Now it looks like a Stealth, or some scientific instrumentation of the '40s. Greetings, Enrico
  4. Hello everybody, since I have some encoders (but not all) in my MBSEQ changing values in the opposite direction, I thought the best way is to tell somewhere in the software which encoder is reversed (has its pins swapped) and which is not. So I've made a little patch to the MIOS code making it able to read a flag in the encoder table and give a negated (2-complement) incrementer to the user application if that flag is set. Here's the patch against MIOS v1.9f: diff -Naur mios_v1_9f_src.orig/src/mios_enc.inc mios_v1_9f_src/src/mios_enc.inc --- mios_v1_9f_src.orig/src/mios_enc.inc 2008-01-20 23:39:02.000000000 +0100 +++ mios_v1_9f_src/src/mios_enc.inc 2008-02-22 19:43:43.000000000 +0100 @@ -16,6 +16,7 @@ MIOS_ENC_MODE_NON_DETENTED EQU 0x00 MIOS_ENC_MODE_DETENTED EQU 0x80 MIOS_ENC_MODE_DETENTED2 EQU 0x81 +MIOS_ENC_MODE_REVERSED EQU 0x40 ENC_STAT_ACT_A EQU 0 ; Current status of channel A ENC_STAT_ACT_B EQU 1 ; Current status of channel B @@ -801,6 +802,10 @@ addlw 1 addwf FSR0L, F + ;; now TABLAT contains encoder flags, so it's a dummy read + ;; if incrementer is zero or we can read "reverse" flag otherwise. + tblrd*+ + ;; temporary disable the IRQs IRQ_DISABLE @@ -814,6 +819,12 @@ ;; enable IRQs again IRQ_ENABLE + ;; makes incrementer negative if encoder is reversed mounted + BRA_IFCLR TABLAT, 6, ACCESS, MIOS_ENC_Dont_Negate + negf WREG +MIOS_ENC_Dont_Negate + + ;; save incrementer in MIOS_PARAMETER2 movwf MIOS_PARAMETER2 @@ -830,7 +841,6 @@ MIOS_ENC_Handler_Loop_Next IRQ_ENABLE - tblrd*+ ; dummy read incf MIOS_TMP_CTR, F, BANKED BRA_IFSET MIOS_TMP_CTR, 6, BANKED, MIOS_ENC_Handler_Loop_End rgoto MIOS_ENC_Handler_Loop That's the same content of the attached file. To use it on your application, just add this row in mios.h of the app's source: MIOS_ENC_MODE_REVERSED EQU 0x40 and set your reversed encoders this way: ENC_ENTRY 2, 6, MIOS_ENC_MODE_DETENTED2 | MIOS_ENC_MODE_REVERSED ; this is a reversed encoder ENC_ENTRY 2, 4, MIOS_ENC_MODE_DETENTED2 ; this is a normal encoder I hope it gets useful for somebody. Greetings, Enrico revenc.diff.txt revenc.diff.txt
  5. After some time, I decided to paint the keys. After some other time (now), I remembered to tell the community 8) I tried with the method I wrote here to have white letters on black keys, but the results were horrible. So I simply sprayed some white, then placed the letters one by one, then sprayed some coat. Here are the results (click to jump to Flickr page): And here's my SEQ, 90% finished (still trying to get rid of that shoebox paper without calling Schaeffer):
  6. Hi yatagarasu, maybe a silly question: are you already tried to test the SID in a good old C64 (yours or by a friend)? Greetings, RAZ
  7. "Never change the origin" is referred to the "org" number in that row. You just need to edit the SR and pin numbers. It doesn't matter the order of the DIN/DOUT_ENTRYes. For the encoders, instead, the order is important. But again, if you just edit the numbers you won't get troubles. Greetings, RAZ
  8. Somebody more experienced can have a better answer but... are 24 triangle oscillators good enough to make additive synthesis? Greetings, RAZ
  9. Hello folks, I have very little practice on such things, but this morning I had some kind of "illumination" for a device which I don't now if it was ever realized or not. It's a kind of a "smart" loop sampler which listens to MIDI notes and analyzes the root key or the current chord, as well as the timing scheme (it can also get this data from a running sequencer); then it selects, from an internal database, the sample waveforms which best match these musical data. Obviously each sample has some metadata that describe its harmonic/rhythmic structure (e.g. the notes sung by a singer and the start/stop points w.r.t. a measure). The DJ/composer chooses one or more of them and puts them in a little timeline, which runs synchronized with the incoming MIDI data. This would allow to make remixes and mashups nearly on-the-fly. Where and how such a thing is realized? Thanks, RAZ
  10. The 16F84 hasn't native IIC support, and I think it hasn't enough memory too. Greetings, RAZ
  11. Hi, I've got exactly the same LCD from eBay for my SEQ. I'm very satisfied, but please note it requires negative voltage. Greetings, RAZ
  12. Hi echo, If I'm not wrong you can attach up to 8 BankSticks and up to 4 IIC MIDI into the J4 bus. Just pay attention to the extra wire (RI) for the MIDI modules only. I'd recommend you Mike's PCB if you don't have enough patience with a protoboard. Greetings, RAZ
  13. I wrote a post about two hours ago but forgot to click "Post" :P Sorry, it was my fault. I'd say: it works, but pay attention that the wires are swapped in pairs. That's exactly what I did! See this picture: you see the middle IDC connector and the one for the Core, and the blue wire which is the second Enable line. (don't care about the heatshrink near the connector: it was a mistake) RAZ
  14. I also thought about this, but it wouldn't work because the pin mapping would be inverted (i.e. each pair swapped). To connect two LCDs, my solution is to crimp two IDC connectors to the same ribbon cable (just like the IDE or floppy ribbon cables), then cut the wire corresponding to "Enable" just after the first connector. In this picture you can see that connector. The blue wire is the second Enable. You also see the connector at CORE side with all the wires manually crimped... I'm not much proud of it, but at the end it works! Greetings, RAZ
  15. I noticed the bridge rectifier got very hot, but I didn't take much importance of this until now. Indeed it was the only component getting hot. I saw the voltage wasn't stabilized at all (4.8V dropping to 4.6V when some LEDs turned on). I replaced it with a pair of wires. (triple-checked the polarity) It works. YEAAAAAAAAAAAAAAAAAAAAAH!!! ;D Why didn't think about it before?... Thanks for all the help anyway RAZ
  16. The problem is still there, but now I have more hints. First, I can reproduce the problem by putting "high load": enabling gate on all steps of 3 or 4 tracks. In that condition it reboots very easily when I press a key. Second, it happens even without my mod. Since I don't have any "regular" buttons, I used the remote function to reproduce it. Third, I enabled the performance monitor (just to be curious). It shows values between 480 and 520 either at boot and at "high load", it falls down to 350 only when I use an encoder or button. Does it mean anything? Fourth, the Sysex at bootstrap says F0 00 00 7E 40 00 01 F7, like it was rebooted regularly. Fifth, doesn't matter if the IIC MIDI module is connected or not. Are these info useful? many thanks RAZ
  17. Here is another release, with Wilba's way to represent matrix mappings. From now you're free to use a DIN other than the first for the matrix. It works flawlessly with the new 3.2a firmware too. To use the patch, copy it in the firmware's sources folder and just use the following command in that folder: [PRE] patch -p1 < mbseq-c64k-0.2.diff.txt [/PRE] "patch" is a program already available in most Linux distros, there's a Windows version too. Greetings, RAZ mbseq-c64k-0.2.diff.txt mbseq-c64k-0.2.diff.txt
  18. With a SID and a SEQ my intent is to learn music in a non-conventional way (I already know about synth theory, scales...). I'd be happy to make some nice songs too, but there's no hurry :) RAZ
  19. Ops. I was wrong again :-[ Sometimes the system go on for hours, sometimes it crashes at any time but only when I press a button of the control surface - now a key of the C64C - so I'm quite sure it's NOT a dissipation issue. Probably this unstability is related to the keyboard patch I made. Why? I'll try to answer myself in the next days... Edit: now I see it happens even when moving an encoder.... until now, however, it happens only with user interaction. RAZ
  20. Hi bill, I know about the PCF8583 or the DS1307, a real-time clock and calendar with IIC interface. There are plenty of different chips and also relative code for PIC to use them. Just look for them! RAZ
  21. No more stability issues ;) (see attachment) Best regards, Enrico IMG_2492 (Small).JPG
  22. Molto interessante! Peccato che quel giorno sarò in viaggio verso Torino e anche volendo prendere il treno arriverei minimo alle 8 di sera :( Che ne dici della fiera Teleradio di Piacenza? Ci farei un pensierino per il giorno dopo...
×
×
  • Create New...