Jump to content

8x SID, 1X YM-262 OPL-3, Dual Synthsizer - %100 Finished ! (Awaiting V2 SID FW)


Artesia
 Share

Recommended Posts

  • Replies 59
  • Created
  • Last Reply

Top Posters In This Topic

  • 2 weeks later...

Verrrrry nice!

I especially like the illuminated buttons. Do they have their own LEDs, or are they just transparent and the whole inside of the case is lit up? Where did you get them from, if you don't mind me asking?

I've been thinking about having a transparent front-panel made up, then painting most of it, but leaving label text, and maybe a ring round all the encoders unpainted. I'd then light the inside of the box with some ultrabright LEDs (blue like yours would be cool).

It's all gonna have to wait until I get a few other things out of the way though, sadly :(

Really nice work!

Alex

http://www.toneburst.net

Link to comment
Share on other sites

  • 5 weeks later...

and now iv'e got the required number of microcontrollers here to get everything into action, i rand into an evening or two of headaches...

Fortunately got it all sorted, And resolved the issue of not having the extra sid select buttons by doing abit of Remapping of the duplicated root menu select buttons :)

-Surely- this makes more sense, in the case of a Step B interface ?

...heres my first venture into compiling MIOS...

Firstly the Sid Link needed to be enabled by default:

Edit:

setup_8580.asm (in my case..)

And changed:

#define CS_MENU_DEFAULT_LINK 0

to:

#define CS_MENU_DEFAULT_LINK 1

<note back on this one in a mo', as detailed below.. it didnt quite work right ... duh !>

Edit:

cs_menu_buttons.inc

Changed:

CS_MENU_BUTTON_Sel5

;; select button #5, set cursor to 5th position

movlw 0x04

rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel4

;; select button #4, set cursor to 4th position

movlw 0x03

rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel3

;; select button #3, set cursor to 3rd position

movlw 0x02

rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel2

;; select button #2, set cursor to 2nd position

movlw 0x01

rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel1

;; select button #1, set cursor to 1st position

movlw 0x00

;; rgoto CS_MENU_BUTTON_Select_Cont

To:

CS_MENU_BUTTON_Sel5

;; Remap duplicated button function to sid select #4

movlw 1 << 3

rgoto CS_MENU_BUTTON_SID_Cont

CS_MENU_BUTTON_Sel4

;; Remap duplicated button function to sid select #3

movlw 1 << 2

rgoto CS_MENU_BUTTON_SID_Cont

CS_MENU_BUTTON_Sel3

;; Remap duplicated button function to sid select #2

movlw 1 << 1

rgoto CS_MENU_BUTTON_SID_Cont

CS_MENU_BUTTON_Sel2

;; Remap duplicated button function to sid select #1

movlw 1 << 0

rgoto CS_MENU_BUTTON_SID_Cont

CS_MENU_BUTTON_Sel1

;; select button #1, set cursor to 1st position

movlw 0x00

;; rgoto CS_MENU_BUTTON_Select_Cont

Then Comple..

And just as i post that, i realise that i didnt do that quite right ..need to change it somewhere else. as it remaps the button functions for all instances ...Duh !

Right well i've got to do some other stuff ..so ill be back on this later, anyone whos less of a Code Tard than me knows the obvious answer ..please msg me / post it whist i'm away :)

hmm... been working on this for some time ...tho having great difficulty in understanding the overall structure and interaction of the different code chunks.. Inevitably being a mixture of c++ & ASM is giving me a big headache trying to understand and intereprit all of whats going on... hmm time to query in programming..

Link to comment
Share on other sites

OK, I cut-n-pasted some code that should work, but it's totally untested  ;D

In the handler for Select 2 through Select 5, if you're in the "main" menu (shows patch name, selected SIDs, etc.) then redirect to the SID 1 though SID 4 button handlers.

This might also allow you to hold down one or more of these "SID" buttons and then press the "menu" button (labeled "Esc" on your panel) to play the SIDs. NOTE: playing a note on one SID will play all SIDs using the same MIDI channel, even if the display doesn't show this.

And here's the code (I assume you know where it goes  ;) ):


CS_MENU_BUTTON_Sel5
  ;; if in main menu, select SID #4
  IFSET CS_MENU, 7, rgoto CS_MENU_BUTTON_SID4
  ;; select button #5, set cursor to 5th position
  movlw 0x04
  rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel4
  ;; if in main menu, select SID #3
  IFSET CS_MENU, 7, rgoto CS_MENU_BUTTON_SID3
  ;; select button #4, set cursor to 4th position
  movlw 0x03
  rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel3
  ;; if in main menu, select SID #2
  IFSET CS_MENU, 7, rgoto CS_MENU_BUTTON_SID2
  ;; select button #3, set cursor to 3rd position
  movlw 0x02
  rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel2
  ;; if in main menu, select SID #1
  IFSET CS_MENU, 7, rgoto CS_MENU_BUTTON_SID1
  ;; select button #2, set cursor to 2nd position
  movlw 0x01
  rgoto CS_MENU_BUTTON_Select_Cont

CS_MENU_BUTTON_Sel1
  ;; select button #1, set cursor to 1st position
  movlw 0x00
  ;;    rgoto CS_MENU_BUTTON_Select_Cont
[/code]

(minor edit, made it work like you were trying to make it work, with Select 2 to 5, nice idea...)

Link to comment
Share on other sites

yep that worked (except i changed it to place enter menu edit button on #1 rather than #5 :)

Ta for bypassing my code tardyness :)

Hmm... wonder if anyone will put togeather a simple program for assembling ASM structures for things like menus in a visual sort of way.. menu trees & property boxes to assign values, functions and so on... Kind of like Dreamweaver to HTML or ...er (cough) ..visual basic to code ? ....Mind isn't this 'sort' of where things are going with the mios dabblings with Code Blocks ?

Would be really cool if so :)

Hmm ..could save real coders a bunch of time doing that too ...laying out menus in ASM in particular must be really tedious ...i would assume ASM folks would be far more interested in spending their time making efficient chunks of code to interface to new hardware devices (such as the cem3396 synth chip.. etc, etc)

Link to comment
Share on other sites

Code Generators are very common in SW development today, but the typical problem is the resulting code size and the bad performance, as the implementation has to be "more generic".

Thats one of the reasons, why modern software is sometimes so slow

Sometimes it's also difficult for the designers to add special features, just because the GUI which they have used to generate the code doesn't support a certain function. Without a team of specialists which permanently works together, it's better not to start with such an approach for MIOS applications.

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi,

Fair comment, if anyone should know it'll be tk :)

..i could understand that; tho got half a feeling that with care.. good ASM code ...identical to manual coding could be auto-generated.. Mind ill not witter on about this anymore, until i have fully digested the Microchip ASM manual & understand whats happening a little better myself.

Btw the SIDFM project is now effectively finished ...all 4 currently useable sids (2x8580 & 2x6581) are running perfectly. and thus until V2 firmware - or another way of running them all (without building more cores) comes along ..i'll consider this done for now.

Thus i would like to request submission (somewhat late) to the midibox gallery.

Ta..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share


×
×
  • Create New...