Jump to content

Ledmeters in Mackie control emulation


SounDuke

Recommended Posts

Well, sorry for rebringing this topic, but:

I am testing a single ledmeter for track 8, I'm using Ableton Live 5 and set up everything to work as mackie control (ID 14).

The fact is, the ledmeter is working but since I never dealt with digital meters (analogish school :) )  I was wondering if it is REALLY working fine.

My doubt arouse from the fact that the led meter stops after audio making me think of loss of sync (I have a midex 8 never had MIDI latency problems) and they lit very fast (epilessy!)  Is it working normally?

another issue: is there a method to calibrate the ledmeters? It looks like at 1/3 of meter on Live the 9th led is yet lit

Thanks in advance ;)

Link to comment
Share on other sites

The LED meters are directly controlled from your host application, therefore "calibration" must be done there. Also the latency is an issue at the host side, MBLC controls the meters once the appr. MIDI events arive, normaly within less than 1 mS (especially USB interfaces have mostly a latency of more than 3..10 mS + an additional jitter)

The meter levels are decremented according to the Logic Control Spec (300 mS each LED). You can tune this value by changing the delay counter in lc_leds.inc, search for "15", replace it by a higher number (up to 255)

Best Regards, Thorsten.

Link to comment
Share on other sites

Sorry but it seems I have more problems about mackie ledmeters....

The overload led (the 12th) does not lit.

1) hardware connections are ok

2) I'm not sure wether Live 5 is sending the flag or not

3) The array is not fully connected as I'm testing track 8 to finish the rest of it, so I connected D0 of J4 to the anodes of the track leds (the overload meter at the end) and the cathodes to the respective ports of j5 and j6 (cathode of the overload led to J6 D4)

Possibly a code issue? Does anybody who uses MBLC/ Live5 has experienced that problem?

Link to comment
Share on other sites

Hi, I was looking to the pattern of meters, probably the cause resides in it.

LC_METERS_PatternSet

lfsr FSR1, METER_PATTERN_VPOT0_L ; calc pointer to pattern

clrc

rlf WREG, W ; add ringnumber * 2 (== ringnumber << 1) to pointer

addwf FSR1L, F ; (note: this function is not called by an interrupt routine,

; therefore we have to use FSR1)

;; calc pointer to table entry: LC_METER_PATTERNS + ((pattern index << 1)&0x1e)

TABLE_ADDR LC_METER_PATTERNS

rlf MIOS_PARAMETER1, W

andlw 0x1e

addwf TBLPTRL, F

movlw 0x00

addwfc TBLPTRH, F

;; pointer now in TBLPTR[LH], read first entry and increment pointer

tblrd*+

;; move table entry (TABLAT) to [iNDF0] and increment pointer by using POSTINC0

movff TABLAT, POSTINC1

;; read next table entry

tblrd*+

;; move table entry (TABLAT) to [iNDF0], don't increment here

movf TABLAT, W

IFSET MIOS_PARAMETER1, 7, iorlw 0x08 ; set 12th (overdrive) LED if bit 7 of pattern index is set

movwf INDF1

Since the data shown on the leds is not very coeherent with the meters in Ableton live (when Live displays one third of meter full the LC meter has 9 of the 11 leds lit) , I assume I have to change the pattern. Could anybody point out a direction for me to achieve this?

Link to comment
Share on other sites

Of course I noticed the pattern, but since the comment specifies "the 12th LED (overdrive) will be inserted automatically in LC_METERS_PatternSet" I was trying to understand if the overload meter led doesn't lit because of the pattern. I'll try to monitor with midiox if Live sends the overload flag, the pattern and Live responsibility are my only hope

anyway, I'm having some troubles deciphering the pattern: 1 stands for lit and 0 for not lit; but why 16 bits and 16 entries? Sorry if I ask I'm not a skilled programmer

Link to comment
Share on other sites

Of course I noticed the pattern, but since the comment specifies "the 12th LED (overdrive) will be inserted automatically in LC_METERS_PatternSet" I was trying to understand if the overload meter led doesn't lit because of the pattern. I'll try to monitor with midiox if Live sends the overload flag, the pattern and Live responsibility are my only hope

The overload flag is parsed in lc_mproc.inc, function LC_MPROC_Received_D0 (read the comments there)

This routine copies the flag to METER_LEVEL_BEGIN + (meter number), bit number 7

The LC_METERS_PatternSet routine in lc_meters.inc checks for this flag and copies it to the bit position of the 12th LED

anyway, I'm having some troubles deciphering the pattern: 1 stands for lit and 0 for not lit; but why 16 bits and 16 entries?

16 bits, because the application allows you to control up to 16 LEDs per meter. However, since the host application only transfers 13 levels, and since my own MBLC has only 11 meter leds + one overload LED (when the meter values are displayed with the V-Pot LED-Rings), the remaining bits are 0.

16 entries: this is directly related to the maximum number of LEDs and levels.

The intention was, that this allows other people to change the patterns easily without asking me, how do do this exactly. ;-)

Hint: change the pattern temporary and watch for the effect. I think that this explains more than 1000 words!

Best Regards, Thorsten.

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...
×
×
  • Create New...