Jump to content

ultra

Programmer
  • Posts

    832
  • Joined

  • Last visited

Everything posted by ultra

  1. I'm looking for a couple midiboxers who use Ableton Live and have an iPad. Currently, all my app does is trigger clips and do a few other functions (mute, solo, arm, loop clips) over network MIDI (using an excellent network MIDI library maintained by our own Kurt Arnlund). But I'm adding more features, such as automatic hardware remapping. It'll kind of work like the APC-40, except you could build your own midiboxes or controllers you've bought and automap them in a few ways using the app as an interface for it. You also won't be limited to a single controller, as any combination of controllers can be mapped to different functions and changed on the fly. For example: you could have a controller with 8 volume faders that remap with the clip grid to control volume for whatever group of 8 tracks are selected at the time. The knobs of that controller could remap to macros on each track. Then, another controller could become whatever device you have selected at the time, or be an aggregate of your favorite parameters from different tracks that you could "page" through to remap, or perhaps drag a parameter name from a list to a knob and remap it on the fly. The app isn't designed like LiveControl, where your main focus is on the app. Instead it's designed for people who are busy with their hardware. You can trigger clips without taking your eyes off of Live, because you can touch the iPad, drag to your clip (there's an on-screen preview showing which clip you'll trigger), and release to fire the clip. You can also navigate around the clip grid by dragging or swiping. Currently, it's not much different than other clip trigger apps on the app store, but i think the hardware integration might set it apart. I can't offer any kind of payment besides a free copy, but your ideas will definitely be heard and it's an opportunity to help make this app be something you'd enjoy using, especially if you're into building hardware and want a way to extend its uses. For anybody just interested in the existing version of the app, please find it through my website at http://www.sub-version.net (sorry for the shameless plug). For anybody interested in testing, please ask via private message. Any discussion of the app just post here. Thanks! ultra (a busy guy who can't wait to get back to midiboxing)
  2. I'll try it later tonight and let you know what happens. The .hex itself is what you upload to the core. ultra
  3. I'm kinda new to Mac and I haven't used xcode as anything but a basic editor. I have programmer's status, but my understanding of the toolchain isn't the greatest so I just follow the wiki instructions. ultra
  4. plz do! i'm using xcode and make -s from the terminal. i'd love to see my errors highlighted among all those warnings that i ignore for now and will get to fixing later. :P ultra
  5. still working on "midibox live" after 4 years. i'd have more done if i wasn't working so much. learning a lot more about c.

    1. ultra

      ultra

      i do, however, have quite a bit done. the pieces are in place. :)

  6. i've looked at their buttons before for one of my projects, but the button/spacer layouts aren't correct for me. it's an ableton live controller so i thought soft buttons would be cool, but i always return to the tact switch and led configuration. it's cheap and easy and works fine. i never noticed that the brain is $189. seems expensive compared the price of an LPC17.
  7. graduating college this week. my degree is 'electronics and computer engineering', and i wouldn't have taken interest in it if it wasn't for midibox.

    1. Show previous comments  4 more
    2. Hawkeye

      Hawkeye

      Congrats, man :) Sounds great!

    3. Lamouette

      Lamouette

      congrats ! really nice !

    4. albpower2seq4sid

      albpower2seq4sid

      Congratulations!! Good luck to find a great job!!

  8. ultra

    ENC CS8 Board

    let's see it lit up!
  9. ultra

    IMG 20120418 092459

    they seem to be. i havent done much with the full screen yet.
  10. that awkward moment when i realize I've coded a debug msg into something called by app_background

    1. jojjelito

      jojjelito

      Haha, that can get cute fast...

  11. the best way to figure out how to do something you don't know how to do is spend money on it.

    1. nILS

      nILS

      ...not true for women.

    2. Hawkeye

      Hawkeye

      but you may get a little bit further this way :)

  12. ultra

    IMG 20120418 092459

    check over at the forum for the post im about to write ;)
  13. ultra

    IMG 20120418 092459

    i should add that this driver is unfortunately not for general use. im having some trouble making it open and also making it serve my needs. i also think that with a glcd, its difficult to do anything thats general use because it could do so many things. theres definitely a general structure to it that can easily be reused. perhaps ill make some skeleton app.
  14. ultra

    MIDIbox Live

    my ableton live control surfaces.
  15. ultra

    IMG 20120418 092459

    From the album: MIDIbox Live

    the driver is not yet complete, but working well so far. i wrote a font generating program in python which outputs a header file that can plug right into existing code, making fonts easily selectable. it's not done yet because i want to add the ability to edit existing font files. lots of thanks to hawkeye and nils for helping me get this far!
  16. people i know personally always ask me "how do you know all this stuff about computers and electronics?" when i come to this forum, i ask myself the same thing about you guys.

    1. Show previous comments  3 more
    2. technobreath

      technobreath

      Yes, it's amazing. But there's a lot of shit out there too. Luckily this forum has about as close as u get to zero of that crap.

    3. Hawkeye

      Hawkeye

      could not agree more with all of you :)

    4. Shuriken
  17. i'm not positive, but your message might be an upload request. did you check your contrast?
  18. the wheels are turning!

    1. jojjelito

      jojjelito

      Don't make them stop while the going is good :D

    2. Hawkeye

      Hawkeye

      once its rolling, keep the speed, but brake ahead of the hard corners :D

    3. technobreath

      technobreath

      Hehe, you guys are full of words of wisdom :D

  19. so does gfx_1322 call into font.c to get the bitmap data? here's where i'm confused: i want to write the text "midibox" to the display, starting at x/y coordinates 16/32 with a shade of 8. i'd assume that the function would have to be specific to this display, since others might not have shades, or might even be rgb and then have a color argument. so would my function to write text actually call into gfx_1322, like this? print_text("midibox", 16, 32, 8); then gfx_1322 loops through the characters, passing each one into font.c and getting back the bitmap data on a character which will then generate the 1322 specific code to write pixel/shade data to the buffer? if this is correct, then font.c is doing nothing more than translating the hex codes into 1/0 data and returning it to gfx_1322.c for buffer and output.
  20. i have this working and i'm able to access .bitmap[x], .left_shift, and .width from my mios32 app. i'm assuming the next step is to make a font.c that handles drawing the font from the hex values? should this somehow implement the standard mios32 display functions? i'm not sure if that would work because we can add parameters such as shade, position, etc, for each character or whatever we want. also i plan on making some general use meters and perhaps some other graphics. so should the standard mios32 display functions be ignored and i write my own display printing code from scratch? ultra
  21. here's the output from two iterations of the main character input loop: #include font.h character superpoint_square[] = { { .bitmap = {0xc000, 0xc000, 0xc000, 0xf800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, .left_shift = 0, .width = 5 }, { .bitmap = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, .left_shift = 0, .width = 0 } }; now what? :P edit: nm, i think i got it.
  22. i'm a little confused. i don't see an 'extern' definition. does it go like this? extern character square_font[] = ... font.h shouldn't be generated, but maybe it'd be easiest for the programmer if i output that to its own file if it doesn't exist? you said the .c file should contain the font data, but isn't this the font data in the .h file? .bitmap = { 0x0... it's looking like i'm closer than i thought to having this completed. all the pieces are in place. ultra
  23. i've written most the font generating program and it's working very well. it's pretty user friendly. but i'm stuck trying to combine the information at the page you linked with how it should be in this context. should i end up with a .h file for the structs and a .c file for initialization? so far, this is my output. i only put in two characters b/c i could spend all day testing this with 96. the series of hexadecimal numbers include the left_lead (now called left_shift) and width. but i'm assuming i don't have to do that since i'll be generating the initialization code. anyway, here is what it looks like so far: struct character { u16 bitmap[16]; u16 left_shift; u16 width; }; struct font { struct character characters[96]; }; struct serialized_superpoint_square = {0x0, 0x0, 0x0, 0xfe00, 0x200, 0x200, 0xfe00, 0x8200, 0x8200, 0xfe00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x8000, 0x8000, 0x8000, 0xfe00, 0x8200, 0x8200, 0xfe00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}; this is of course not in the output. it's what you see as you build a character. 0/. is used for input to make it easier to see, and it's later translated into 1/0 for the hex output. ................ ................ ................ 0000000......... ......0......... ......0......... 0000000......... 0.....0......... 0.....0......... 0000000......... ................ ................ ................ ................ ................ ................ 0............... 0............... 0............... 0000000......... 0.....0......... 0.....0......... 0000000......... ................ ................ ................ ................ ................ ................ ................ ................ ................ sorry for my lack of understanding with what to do with this, but at least when this is done we will be able to do some really cool things with this display. :) ultra
  24. well that was easy user_input = "0000100110001110" total = 0 for bit in range(0, len(user_input)): total += int(user_input[bit]) << (15 - bit) total = hex(total) print(total) 0x98e now i just need a bunch of instructions and loops and formatting and whatnot. :)
  25. in my program to output the serialization, do i have to define each character like this? for instance, here's a lowercase 'a' in superpoint square: 0000000000000000 0000000000000000 0000000000000000 1111111000000000 0000001000000000 0000001000000000 1111111000000000 1000001000000000 1000001000000000 1111111000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 i left 3 px above it for uppercase letters extending upward, 3 px below for lowercase letters extending downward, and the unused 0's underneath. ignore what i said before about 11px fonts. this is 13 overall. this one is designed assuming the 0,0 coordinate is at the top-left, but it could be changed to the bottom-left. anyway, those specifics don't matter as much right now. what i'm wondering is how i feed this into a serialization program? do i 'draw' each character like this, then write the program to loop through the lines and output a hex value for each set of 16 bits? if that's the case, i get how this works. just loop through the data, making a string with the hex value and concatenating a ', ' to the end. copy, paste into my C program, and repeat. or write in all the chars and have it output the information once. also, does the serialized data contain left_lead and width information? 96*18=1728, so i'm assuming the two extra 16 bit words include the information. therefore, to retrieve the character's width, does it look like this? width = myFont->character[0].bitmap[17]); thanks for helping, i'm learning a lot about programming that i didn't know. i'm going to try to start working on a python program to output the serialized data.
×
×
  • Create New...