ATTN Abes: Bad Skin Colors
It's all there to reverse engineer, just it will take a whole bunch of trial and
error opening and closing live and the like. Don't know where the color
codes start counting from and stuff like that, and don't want to destroy my
copy of live or break any terms.
Would be much easier if someone at Ableton just prettied up the code they
use to generate the skins.
-Ben
error opening and closing live and the like. Don't know where the color
codes start counting from and stuff like that, and don't want to destroy my
copy of live or break any terms.
Would be much easier if someone at Ableton just prettied up the code they
use to generate the skins.
-Ben
Machinate wrote:well isn't there enough interested heads with programming experience in here to make a joint effor and rev.eng. the damned thing? You can do it!
I think that unless this project is ableton "approved" (ie, they offer us some help in the skin format), the project is going to be an uphill battle. The application writing process is cake; it's the reverse engineering process that is both a general waste of time, and skins generated from this process risk being unstable to live itself.
I've seen user contributed skins on this forum, though. If someone wants to point me in the right direction, I might be willing to take a stab at it.
I've had a go in a hex editor, also had a quick look at it in a disasembler. I am useless at ASM though, so Ableton neednt f34r my l337 hacking prowess. I get a bit of a bad feeling opening wdasm on apps I bought, a feeling like "am I contravening some agreement or other here". Answer probably being YES!
See what you have driven us to! Ableton, give us some textual access to the variables and you will soon see skin editors galore. What have you got to lose and you might gain some better skins for your product.
Anyway...
My experiments in hex returned a few clues and a few even uglier skins than the ones we get with the app (most of which are just unusable IMO).
I managed to set my own new and hideous clip colours (the settable colours in the clip menu) alter the wave colour, etc. basically change all the colours. But without much sense. Well I have a few clues but they dont add up to much.
One thing - you dont need to restart live, just flip back and forth from your test skin to an official one. If you get a 'restart' error - ignore it and fix up your ask file it will be fine.
If anyone wants a lime green, shitty-brown and purple skin with and black text on a black background and all the menus unusable ... well I've got one for ya!
you can clearly see the variable declarations, but the value assignment doesnt translate so well (of course)
converted to ascii we get
See what you have driven us to! Ableton, give us some textual access to the variables and you will soon see skin editors galore. What have you got to lose and you might gain some better skins for your product.
Anyway...
My experiments in hex returned a few clues and a few even uglier skins than the ones we get with the app (most of which are just unusable IMO).
I managed to set my own new and hideous clip colours (the settable colours in the clip menu) alter the wave colour, etc. basically change all the colours. But without much sense. Well I have a few clues but they dont add up to much.
One thing - you dont need to restart live, just flip back and forth from your test skin to an official one. If you get a 'restart' error - ignore it and fix up your ask file it will be fine.
If anyone wants a lime green, shitty-brown and purple skin with and black text on a black background and all the menus unusable ... well I've got one for ya!
you can clearly see the variable declarations, but the value assignment doesnt translate so well (of course)
converted to ascii we get
Code: Select all
SkinManager RemoteableColor R UserFloat G UserFloat B UserFloat A l p h a UserFloat SkinManager G C o n t r o l F o r e g r o u n d RemoteableColor C o n t r o l D i s a b l e d RemoteableColor M e t e r B a c k g r o u n d RemoteableColor S u r f a c e H i g h l i g h t RemoteableColor S u r f a c e A r e a RemoteableColor D e s k t o p RemoteableColor D e s k t o p C h o o s e r S e l e c t e d RemoteableColor S e l e c t i o n F r a m e RemoteableColor C o n t r o l B a c k g r o u n d RemoteableColor C h o o s e n D e f a u l t RemoteableColor
C h o o s e n R e c o r d RemoteableColor C h o o s e n P r e L i s t e n RemoteableColor R a n g e D e f a u l t RemoteableColor
R a n g e D i s a b l e d RemoteableColor
R a n g e S e n d 1 RemoteableColor
R a n g e S e n d 2 RemoteableColor
R a n g e S e n d 3 RemoteableColor
R a n g e S e n d 4 RemoteableColor R a n g e L e f t RemoteableColor
R a n g e R i g h t RemoteableColor L e a r n M i d i RemoteableColor L e a r n K e y RemoteableColor C l i p 1 RemoteableColor C l i p 2 RemoteableColor C l i p 3 RemoteableColor C l i p 4 RemoteableColor C l i p 5 RemoteableColor C l i p 6 RemoteableColor C l i p 7 RemoteableColor C l i p 8 RemoteableColor C l i p 9 RemoteableColor C l i p 1 0 RemoteableColor C l i p 1 1 RemoteableColor C l i p 1 2 RemoteableColor C l i p 1 3 RemoteableColor C l i p 1 4 RemoteableColor C l i p 1 5 RemoteableColor C l i p 1 6 RemoteableColor S e l e c t i o n P a i n t RemoteableColor S e l e c t i o n P a i n t S t a n d b y RemoteableColor S u r f a c e B a c k g r o u n d RemoteableColor A u t o m a t i o n C o l o r RemoteableColor L o o p C o l o r RemoteableColor
S h a d o w D a r k RemoteableColor S h a d o w L i g h t RemoteableColor D i s p l a y B a c k g r o u n d RemoteableColor A b l e t o n C o l o r RemoteableColor
W a v e f o r m C o l o r RemoteableColor A l e r t RemoteableColor C o n t r o l O n F o r e g r o u n d RemoteableColor C o n t r o l O f f F o r e g r o u n d RemoteableColor C o n t r o l T e x t B a c k RemoteableColor C o n t r o l C o n t r a s t F r a m e RemoteableColor C o n t r o l C o n t r a s t T r a n s p o r t RemoteableColor A u t o m a t i o n D i s a b l e d RemoteableColor A u t o m a t i o n M o u s e O v e r RemoteableColor M i d i N o t e M i n V e l o c i t y RemoteableColor M i d i N o t e M a x V e l o c i t y RemoteableColor R e t r o D i s p l a y B a c k g r o u n d RemoteableColor R e t r o D i s p l a y F o r e g r o u n d RemoteableColor R e t r o D i s p l a y F o r e g r o u n d D i s a b l e d RemoteableColor R e t r o D i s p l a y G r e e n RemoteableColor R e t r o D i s p l a y R e d RemoteableColor O p e r a t o r 1 RemoteableColor O p e r a t o r 2 RemoteableColor O p e r a t o r 3 RemoteableColor O p e r a t o r 4 RemoteableColor R e t r o D i s p l a y B a c k g r o u n d L i n e RemoteableColor S u r f a c e A r e a F o c u s RemoteableColor F r e e z e L a y e r RemoteableColor G r i d L a b e l RemoteableColor UserFloat V a l u e ?€ ?RÒÓ?RÒÓ?JÊË?€ = ¡= o= o?€ ?p ?r ?z ?€ >ÒÒÓ>ääå>ààá?€ ="Š)= €Ok, you guys officially suckered me into reverse engineering this. I hasten to say this, but I think I understand at least part of the format now. I'm not going to post the output of this command here, because it's really friggin big, but any mac users out there might be interested to peruse the output of "hexdump -C" on one of the skins.....
you f)(&)*&king LEGEND!!!!sqook wrote:*bump*
After a long night of hacking, I think I have reverse-engineered the entire skin format. I will be releasing a skinning app sometime in the near future. Keep your eyes posted.
I HATE THE SKINS!!!! never found any I've liked, every songle one is NEARLY there but something about it shits me.
Even roberts home spun ones and the other contributions around arent quite right for me.
if anyone wants to have a go while they wait on Sqook's application, on PC I used ultra-edit and opened as hex, then simply do a binary file compare from the file menu which will show you the variations in the variable section between say Aubergine and calcium.
file compare will highlight the changes and you can make a copy of one, save it as "my skin" and then open Live.
change stuff in your hex editor in the appropriate places, save, then simple flick the skin menu back and forth in Live and it will re-load your skin.
as far as I could tell, within the variable value assigning section of the .ask - 3F 80, 3E 80 and 3D 80 are delineators between lines of float values, best keep them in place I found. The numbers in between those delineators relate to the assignments that are visible in the text and assignment portion toward the top of the file.
I had an idea that the numbers within the float declaration section are ASM JMP hex targets which target the lower variable values. I didnt try to narrow this down much. Although simple chopping and changing will get you some kind of results.
perhaps sqook could enlighten us further on this.
file compare will highlight the changes and you can make a copy of one, save it as "my skin" and then open Live.
change stuff in your hex editor in the appropriate places, save, then simple flick the skin menu back and forth in Live and it will re-load your skin.
as far as I could tell, within the variable value assigning section of the .ask - 3F 80, 3E 80 and 3D 80 are delineators between lines of float values, best keep them in place I found. The numbers in between those delineators relate to the assignments that are visible in the text and assignment portion toward the top of the file.
I had an idea that the numbers within the float declaration section are ASM JMP hex targets which target the lower variable values. I didnt try to narrow this down much. Although simple chopping and changing will get you some kind of results.
perhaps sqook could enlighten us further on this.
-
sweetjesus
- Posts: 8803
- Joined: Wed Mar 31, 2004 3:12 pm
- Location: www.fridge.net.au
- Contact:
Hi Angstrom,Angstrom wrote: Sweet jesus is the type of guy that might have some clues on this. I bet he has rummaged around in those files, you paying attention SJ ?
Been flying but now I'm back home I am paying close attention with frustration.
This is not the kind of shit we should have to resort to as a community. It's actually illegal to decompile any commercial app under the DMCA... thank god im in Australia.
I'll load the stuff up into UltraEdit and see what I can pick out.