Jump to content

sneakthief

Programmer
  • Posts

    374
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by sneakthief

  1. Also, Pendulum and PingPong directions modes don't work when a track has more than 16 steps.
  2. 1. Is the 17-32 button supposed to do anything? Selecting SHIFT+Song just does the same thing as pressing the Song button 2. As such, I believe this is wrong on the MB-808 instruction page: Shouldn't that be ALT+Song to save? 3. I think these only work on single tracks and not when ALL Tracks are selected:
  3. Hey Clem!, What I did here is definitely not new, but part of a long tradition of hand-oriented instruments. I researched various gestural interfaces and came up with something that fit the dexterity of my hand and felt as intuitive as possible for my purposes. It's also a lot smaller to bring to gigs than a keyboard or guitar ;) 4 fingers triggering 8 notes against an opposing feels very fluid, especially when you optimize the note-layout to thirds, fifths, etc. Complicated rhythms aren't so difficult. Whatever articulation that's lost from having to have all my fingers hit the thumb to trigger notes is fully offset by a myriad of interesting and more natural strumming possibilities that are otherwise impossible on a finger-drumpad. The original layout has changed and this has setup proven to be more efficient: Re. "Sneak-Thief" - I chose this artist name 15 years ago because my musical influences are subtly stolen from all over ;)
  4. 1KHz is more than enough for many cv operations! I turned my 8bit core running AC Sensorizer into an 8-channel midi to CV converter and am using it to quantize incoming voltages to various musical scales then spitting that data back out to my MIDIbox CV v1.
  5. Also, if you want to connect a modular synth gate-output to the DIN board to use as a trigger (or what AC calls "Pedal trigger" in this project), you need to rewire the DIN module and and a protection diode: 1. "you maybe want to drive the pins "high-active" (which means: +5V = on, 0V = off). In this case please solder the two red isolated cables not to 5V, but to 0V (Vss), so that the resistors act as pull-downs. 2. attach a 5.6v Zener diode to the gate input, with the anode going to ground... kind of like this: http://3.bp.blogspot.com/_ZRI7MKFc8do/SwqrIZlxTeI/AAAAAAAAAlk/NO1diakEINQ/s1600/Zener+Diode+Voltage+Regulator+Circuit.JPG Why a 5.6v Zener? Because with the diode voltage drop you're still within the voltage limits of what a pic can handle.
  6. Just wanted to mention that this circuit here works great when connecting the inputs of the AC Sensorizer to my modular synth: http://www.eevblog.com/forum/projects/pic-input-protection-using-a-zener-diode/msg21840/?PHPSESSID=33bbdf2e2a88957db87cce882680f1ca#msg21840 As the circuit emulation (and my experience) shows, this circuit takes +/-12v and limits it to -0.25v and 5.2v. This is a safe range for the AC Sensorizer's inputs and effectively gives you a CV to MIDI converter.
  7. Glad my environment worked for you! It took me a while to set it up and get it working. Re. EEPROM 1. First of all you have to successfully write a patch, otherwise you'll get a read error if you try to load that patch. So please make sure that you've tried to write a patch with the Save button. 2. I honestly don't know what happens when an EEPROM is formatted by one application (eg. MIDIbox CV) and then used in another application like this one. Maybe you should try a blank EEPROM instead? 3. Also, I set my EEPROMs to address A0.
  8. 1. First of all, make sure you're using the right toolchain to compile this: http://www.midibox.org/dokuwiki/doku.php?id=windows_toolchain_core 2. Here is my zipped folder of all the AC Sensorizer 0.50 files that compile perfectly. This has been tested on 3 different cores running MIOS 1.9g: http://sneak-thief.com/acsensorizer/AC_Sensorizer.zip 3. If you're still having problems, reflash MIOS 1.9g. If this doesn't work, I bet your wiring is wrong. Sorry to point out the obvious, but did you notice that the physical layout of the DIN board doesn't match the layout of AC's diagram? The actual DIN chip goes: 0 7 1 6 2 5 3 4 ( http://www.ucapps.de/mbhp/mbhp_dinx4.pdf ) ...whereas AC's diagram lists his connections like this: 6 7 4 5 2 3 0 1 ( http://www.midibox.org/dokuwiki/lib/exe/fetch.php?cache=&w=656&h=462&media=ac:sensorizer_din_01.png )
  9. Obviously if the PIC works in another core but not your mb808-sequencer core, then there's a problem with your wiring somewhere. Is your LCD is wired incorrectly? Is your PSU delivering enough voltage?
  10. To use the SVN AC Sensorizer v.50, rename Makefile to Makefile.orig Create a new file called Makefile and put this in it: MIOS_PATH = . MIOS_BIN_PATH = ./bin export MIOS_PATH export MIOS_BIN_PATH include Makefile.orig I also figured out how to port this code to the pic18f4620 if anybody's interested. I modified the memory addresses to support 64k and recompiled the linker using sdcc (p18f4620.lkr)
  11. 1. Your suggestion worked perfectly: if( value_7bit > 127 ) value_7bit = 127; 2. Re. "factor is too low": anything other than 1 made things worse and prevented the full midi CC range. If I use factor 2, then I can't access half of the cc range, regardless of what sMin or sMax are. I don't find that it gets saturated too quickly either. 3. Regardless of the factor, the resolution is bad over the whole range of the sensor. As I move the sensor over its 180 degrees of motion, I get midi CC jumps of 7 or 10 between values, even when moving it very slowly.
  12. Perfect - I'm going to experiment with this! My first experiments with the "factor" were probably negative because my sensor became a lot more sluggish when I used higher factors, but I'll see what happens when I stick with a higher factor and adjust the other parameters around it. Wie immer, vielen Dank - ich schaetze dieses ganzen MIDIbox Projekt sehr.
  13. sFrom: 0 sTo: 127 sFactor: 1 My accelerometer (ADXL335) puts out 0-3V. The closest I can get to midi CC's that don't always roll over is this: sMin: 3 sMax: 98 But this setting still gives occasional integer rollovers from 0 to 127. - If sMin > 4, the midi CC goes *always* rolls from 0 to 127, etc. as the accelerometer voltage approaches 0V. - If sMin < 3, I can't reach anything under a midi CC value of 10 It makes no difference if it's inverted or not - I get the same problem. Isn't there some way here to prevent an int from rolling over?
  14. I keep banging my head against Audiocommander's AC Sensorizer code. This part of the code reads the 8 analog-in pins and then converts them to 7-bit MIDI cc (0-127) commands, but the problem is that sensors can cause this value to roll-over, regardless of the sensor minimum and maximum settings (sMax & sMin). In other words, I keep getting MIDI cc's that roll-over and go 124, 125, 126, 127, 0, 1, 2, etc. - or 3, 2, 1, 0, 127, 126, 125, etc. How can I prevent this? // sense range volatile unsigned int sMin[SENSOR_NUM]; // 10-bit minimum sense (ignore below; => 7bit: 0) volatile unsigned int sMax[SENSOR_NUM]; // 10-bit maximum sense (ignore above; => 7bit: 127) // expand signal volatile unsigned char sFactor[SENSOR_NUM]; // calibrated sensor factor: (sMax - sMin) / 127 // if somehow possible use 1, 2, 4, 8 or 16 // to use fastest bit-shifting algorithm // otherwise a complex multi-cycle division occurs volatile unsigned char sFrom[SENSOR_NUM]; // scale to target min value (e.g. 0) volatile unsigned char sTo[SENSOR_NUM]; // scale to target max value (e.g. 127) ///////////////////////////////////////////////////////////////////////////// // This function reads the 10-bit value from <pin> and sends a 7-bit inter- // polated value. The sensors must be calibrated (with autoSensing) to // obtain good sensor measurements. ///////////////////////////////////////////////////////////////////////////// unsigned char ACSensorizer_Sensorize(unsigned char pin, unsigned int pin_value) __wparam { // temp values unsigned char value_7bit = 0; unsigned int value_10bit = 0; // abort if OFF (disabled) if(! sensor[pin].enabled) { return SRETURN_ABORT; } // abort if pedal enabled & pedal is not down (=1) if((sensor[pin].pedalMode >= PEDAL_FILTER) && (sensorizer.pedalUp)) { return SRETURN_ABORT; } // abort if below sMin or above sMax if(pin_value < sMin[pin]) { if((sensor[pin].releaseDetect) && (lastAIN_value[pin] != 0)) { lastAIN_value[pin] = 0; return 0; // send 0 to mute sound on release } else { return SRETURN_RELEASEDETECT; } } if(pin_value > sMax[pin]) { return SRETURN_ABORT; } // expand value_10bit = pin_value - sMin[pin]; switch(sFactor[pin]) { case 1: value_7bit = (unsigned char) value_10bit; break; case 2: value_7bit = (unsigned char)(value_10bit >> 1); break; case 4: value_7bit = (unsigned char)(value_10bit >> 2); break; case 8: value_7bit = (unsigned char)(value_10bit >> 3); break; case 16: value_7bit = (unsigned char)(value_10bit >> 4); break; default: value_7bit = (unsigned char)ACMath_Divide(value_10bit, (unsigned int)sFactor[pin]); break; } // scale value_7bit = ACMath_Scale(value_7bit, sFrom[pin], sTo[pin]); // restrict to 7 bit MIDI-values if(value_7bit < sFrom[pin]) { return SRETURN_ABORT; } if(value_7bit > sTo[pin]) { return SRETURN_ABORT; } // don't send unchanged values if(value_7bit == lastAIN_value[pin]) { return SRETURN_ABORT; } // store last 10bit value lastAIN_value[pin] = value_7bit; lastAIN_10bitValue[pin] = value_10bit; // return success // invert if(sensor[pin].invert) { inverted_value = value_7bit - value_7bit - value_7bit; value_7bit = inverted_value + 127; } return value_7bit; }
  15. The MB-808 schematics are simply not going to be released. I would start trying to lay them out yourself instead or make the microLARGE pcb's and connect them to the appropriate MIDIbox boards. http://xlargex.xl.funpic.de/
  16. OK, finally got to test this out for real. I was way outside of my comfort zone and completely overwhelmed by all the new things I had to keep track of and the musical decisions I needed to make. As such, I need to concentrate more on MEANINGFUL melodic improvisation as well as proper musical passages that I can easily recall... you know, like a traditional instrument ;) Technically everything went OK. Looking forward to implementing my body-tracking system so the images stay on me as I move and I'll be able to loosen up more.
  17. Testing switchable note "spreads", accelerometer-controlled filters and gestures which "throw" octaves up and down: I'm going to debut this whole setup in Berlin this Saturday (15.12.2012 - http://www.residentadvisor.net/event.aspx?429594 ) and will be touring in these cities starting in December... 15.12 berlin 19.12 ljubljana 22.12 belgrade 28.12 niš 29.12 sarajevo 4.1 zagreb 8.2 moscow
  18. LOL yeah, that's also why I use MIDIbox :P
  19. So here's a first test of my visuals setup. I whipped up something quick in Java using Processing.org. A pico-laser projector is mounted a couple of feet in front of me: This first set of image fragments is subtle... still experimenting with images and learning how to play this crazy instrument:
  20. Part 2 - building the MIDIbox core. I used a 40-pin tqfp surface mount PIC18F4620 and crammed everything inside this tiny case. I chose an HDMI connector from the glove to the MIDIbox because I have 10 DIN's, 6 AIN's plus power and a single LED DOUT (18 wires):
  21. @Taximan: Step 1 - define specific your needs and parameters. That will help you the most with this kind of project. UPDATE Prototype 2 is finished. This is the build process of the glove itself. I used headphone wire inside because each strand is coated with plastic and there's a strong nylon thread core. Hopefully it'll stand up to gigging!
  22. If anybody happens to already have a k150 and they want to program a PIC 18f4620 (or some others that weren't previously available), use this software and firmware: http://doveda.byl.cz/konstrukce/pgm_usb/diypack26b2.zip NOTE: You have to buy another 16f628A and burn the new burner firmware on it - then you can use that freshly burned pic in the k150.
  23. Danke Nils :) I tried searching the forum for a while but somehow didn't use the right keywords to catch your other post about this:
  24. What C code can you use to latch J6:SC and J6:RC from the PIC core? Or do I have to insert some assembly here? I want to use them LED DOUT's in my C app, similar to the way they're used as clock and start/stop in the MIDIbox CV.
×
×
  • Create New...