
audiocommander
Frequent Writer-
Posts
1,358 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by audiocommander
-
I just noticed that the second layer is not so good viewable on my second monitor than it is on my first. So I guess if you have a bad calibrated monitor, maybe too dark and too much red it may be hard indeed to see these. On the other hand, I also know people with a red/green disability... hmmm...
-
When I travelled last time to London, I had lots of electronics in my bag and I would have considered myself as really suspicious, but I had no problems at all (although that was before the incident with the ugly liquid stuff some months ago). I guess, that pure electronics without any explos!ve traces is not that dangerous. But remember that some lightbulbs like fluorescent tubes contain gases that are not allowed on planes... but as these bulbs disturb electric signals anyway, it's no good idea to use them for "cool" lighting fx ;D (had to learn that one by experience, too ::) ) But I also know, that a museum had troubles getting a rebuilt of Kempelens Chess-Playing Turk from the US to Hungary; it got hold 'cause they didn't know what it was and it must have been hard work getting them understanding... but I guess again, that besides the strange mechanics, the "turkish android" was the most suspicious thing :P ::) But I'd say that it's safe to inform the airline before boarding and explain what it's good for. I know that there should be special areas in the plane for sensitive goods (like computers or animals). Cheers, Michael
-
Too many switch cases crashes MIOS?
audiocommander replied to sneakthief's topic in MIOS programming (C)
sneakthief, if you look at your code, you can see that you might somehow do that in another way, 'cause every case results in a call to an array ("case# + 1"): this pattern changes for case 25 ? that may be an indicator why there's something going wrong. But honestly: I guess you should either change your concept radically or listen to stryd's tipps in the previous topic (using pointers, duplicating the whole array or changing the linker to support larger multi-dimensional arrays). A 50 time switch with 20 time for loops is not exactly what I would call an elegant and simple solution :-\ Sorry I can't get you more detailed thoughts, but it's a complicated thing and requires a lot of time to develop a concept for timed sequencing. Is there any reason why you cannot use TK's seq v2 or v3? What does your seq what the official one cannot? Cheers, Michael -
MIOS persistent memory management (flash/EEPROM)
audiocommander replied to canrull's topic in MIOS programming (C)
I'm not exactly sure, 'cause I never used the EEPROM so far, but the bootloader is definitely *not* stored in there ... and in SEQ v3, the starting address for the EPROM where 1 patch can be stored (as an alternative to a BS) is the same as the one I wrote above. Have you had another app stored on the PIC before? Maybe an MB64/e or a Seq? This way some data may have gotten in the EEPROM area. Anyway, as a programmer, you should have MIOS and your application by hand to update again by SysEx. And if you got a Burner Module, you can re-burn the bootloader any time. I doubt it's possible to damage the chip by writing some data in the EEPROM. So it should be relatively save to write data in there – If I were you, I'd try the EEPROM, but don't blame me if something goes wrong ;D Cheers, Michael -
MIOS persistent memory management (flash/EEPROM)
audiocommander replied to canrull's topic in MIOS programming (C)
right, if 256 bytes are enough for your purpose: (although it's just one 2 EUR IC and four wires for one BS, so it's not really making things more complicated and you get a lot more storage space that can be exchanged easily ;) ) The program code is stored in Flash Memory, so it's easier (and safer) to use the available 256 bytes in EEPROM: data EEPROM memory (PIC 18F452: 0xf00000-0xf000ff) to be found in hex2syx.pl: maybe you're interested in this posting' date=' too: finally, I guess you already know the relevant MIOS handlers: Hope this helps ;) Cheers! Michael -
MIOS persistent memory management (flash/EEPROM)
audiocommander replied to canrull's topic in MIOS programming (C)
Hi canrull, Without knowing the exact use of your application, normally it's the best option to use the third option: a bankstick. This way you don't come in conflict with address spaces and it's also possible to send/receive/convert bankstick contents via sysEx. See MIOS_BANKSTICK_ReadPage() and MIOS_BANKSTICK_WritePage() in the MIOS Function Reference and Bankstick on the uCapps page. Best regards, Michael -
hmm, :-\ maybe it would be easier to respect the 255 byte maximum and all that cryptic linker stuff and split everything into smaller chunks: wouldn't that be possible? just a guess, though... (glad I sticked to my 2.5.4 sdcc version, btw :) ) cheers, Michael
-
Hmmm Midibox stopped working Please Help.
audiocommander replied to sidetrack's topic in Testing/Troubleshooting
rofl. ouuups, I guess I should think about my "testing" methods, too ;D -
heya, if it's possible to replace the HD, I wouldn't try to put an MB inside, I'd just search for some alternatives. Last year I saw one (japanese?) artist who ran Linux on his iPod and programmed a Scratching Application. You want to search http://2006.cybersonica.org for this. Linux is OS, so there must be some sources available... Keep us updated! Cheers, Michael Edit: Here's the link ;) http://2006.cybersonica.org/artists/full.php?id=130
-
Hallo Herr Warst, There's an C-based example called ClockBox available from the download section. This should contain everything to get you started. You just have to connect that LED to some input pin of the PIC and find out how fast it's blinking (which may not be that trivial as it's sounding :) ) Although I'm pretty sure there is something like a tap for beat-detection is out there and I guess this is what you need. ClockBox has an internal Meter, is setable to BPM values and outputs a MIDI-Clock signal (which is nothing else than 96 ticks per beat, btw). Hope this info gets you started! Best Regards, AC
-
Hi David, I never did PCB exposures, but I'm working as Designer and therefore I know something about printings and films. Your issue (thinning at the edges) sounds like the light is "straying"; if your paths are getting thinner that means there must be some tiny light-particles entering the space between your sheet and the PCB. Sometimes the thickness of the transfer-medium is enough to be the reason for this, so normally the medium-print is mirrored to enable a tight connection without any gaps. Cheers, Michael
-
MIDIbox of the Week (MIDIbox Orb by Wisefire)
audiocommander replied to Wisefire's topic in MIDIbox of the Week
A user project is a new application that has some other purpose than one of the existing projects. Because a different application requires different controls' date=' it will be really different in the end. But anyhow, I belive this controller would fit perfectly in the midibox of the week section and I can't see no reason why it shouldn't be there: it's a very nice interface and I believe it's perfectly okay for TK if we move it [s']there here... it's really nice to see how everyone of us fresh moderators are freaking out once there's a real moderation job to do ;D Edit: hehe, stryd: you're a good moderator ;D -
MIDIbox of the Week (MIDIbox Orb by Wisefire)
audiocommander replied to Wisefire's topic in MIDIbox of the Week
hehehe... (too much subclocks running, eh?) ;D no worries, moderator mate :-* -
How to 'inverse sign' a float ?
audiocommander replied to Jakes Daddy's topic in MIOS programming (C)
As I already wrote, I believe it does not work, cause pitch is declared just as "float" and it should be "signed float". I'm using this and it works for me. @stryd: good to know. maybe I should give this one a try (although it was an unbelieveable hassle to get SDCC running last time)... Regards, Michael -
mmm, yeah, binary would indeed be a bit more practical than octal :-\ for lower numbers one can set up a bitfield, that may be a bit of a workaround, but with SDCC only 8bit-bitfields are allowed. so, I guess, you have to learn hex (I still can't think in hex... always using my calculator)... ;) Michael
-
How to 'inverse sign' a float ?
audiocommander replied to Jakes Daddy's topic in MIOS programming (C)
Hi JD, I'm always using triple subtraction to avoid multiplications and therefore the implementation of the SDCC lib which blows up the codesize (although in your case it wouldn't help, 'cause floats also need the lib): (+2) - (+2) - (+2) = (-2) (-5) - (-5) - (-5) = (+5) I quite sure it does not work for you, 'cause you'll need a [tt]signed[/tt] type somewhere. I think, SDCC interprets [tt]int[/tt] as [tt]unsigned int[/tt] by default. I haven't seen no [tt]signed float[/tt] in your code snippets. Then there are some helping functions for displaying numbers on the display. Not sure how/if it works with floats, but you can increase the float by multiplying it with ten and then display the result via (BCD = Binary Coded Digital with x chars): MIOS_LCD_PrintBCD1() MIOS_LCD_PrintBCD2() MIOS_LCD_PrintBCD3() 12 as BCD3 would be printed as '012'. 11 as BCD1 would be printed as '1'. see the function reference listing on ucApps. Hope this helps, best regards, Michael -
Hey Stryd, I'm not sure if one can write this way (0b00001) in C or if it's supported by SDCC. I have found no reference, except for a codesnippet of the MM application (v-pot) and there the ASM-style is out-commented: const unsigned int preset_patterns[32] = { 0x0001, // b'0000000000000001' 0x0001, // b'0000000000000001' 0x0003, // b'0000000000000011' 0x0003, // b'0000000000000011' 0x0003, // b'0000000000000011' 0x0007, // b'0000000000000111' 0x0007, // b'0000000000000111' 0x0007, // b'0000000000000111' 0x000f, // b'0000000000001111' 0x000f, // b'0000000000001111' 0x000f, // b'0000000000001111' 0x001f, // b'0000000000011111' 0x001f, // b'0000000000011111' 0x001f, // b'0000000000011111' 0x003f, // b'0000000000111111' 0x003f, // b'0000000000111111' 0x003f, // b'0000000000111111' 0x003f, // b'0000000000111111' 0x007f, // b'0000000001111111' 0x007f, // b'0000000001111111' 0x007f, // b'0000000001111111' 0x00ff, // b'0000000011111111' 0x00ff, // b'0000000011111111' 0x00ff, // b'0000000011111111' 0x01ff, // b'0000000111111111' 0x01ff, // b'0000000111111111' 0x01ff, // b'0000000111111111' 0x03ff, // b'0000001111111111' 0x03ff, // b'0000001111111111' 0x03ff, // b'0000001111111111' 0x07ff, // b'0000011111111111' 0x07ff, // b'0000011111111111' }; [/code] Or does it work with lower numbers like shorts and chars? If that's the case, you might add an 'int' after the long and give it a new try. I can vaguely remember I tried a binary notation, too, but failed. Then I expect you added the sdcc lib, right? (it needs _fs2ulong.c to deal with longs); Cheers, Michael
-
I'm not quite sure what you mean, kris. 3-axis require three dimensions :) Or it would mean you have an additional state for a 2D pad (something like a pressure pad below) to get 4 values. Maybe just a simple button would be okay, too. You know: without button -> CC#20/21, with button -> CC#22/23... Or you just have to do some math to get the values you'd like to have. Eg you could split up the pad in a diagonal (not really, just mathmatically ;D ), that would mean you have two more axis and could extract four values, but then again for the price of non-simultaneousity. You could take a look at my handTracker (in userprojects->speakJet thread), but it'll take some weeks until I cleaned up my sources and you still would have overwork it a lot, 'cause even if it looks 3D, it's still 2D :) Like cimo, I too thought about the airFX? Unfortunately it has no MIDI-connections. Cheers, Michael
-
Hi stryd, I'd use the MIOS_HLP_GetBitORMask(). Not sure though if there is a better solution and I guess you already know that function. :-\ Cheers, Michael
-
Speakjet - A PIC ready sound chip?
audiocommander replied to herr_prof's topic in MIDIbox User Projects
Hi friends :) sorry for the delay, just came back from Hungary... in the next days I will set up another working model to fix some bugs, add RIO's updates and implement one DIN for some basic hardware controls. So; to answer your questions: No' date=' you're indeed far off. There's nothing random except for the consonants. As the SpeakJet is in phoneme mode (serial transmission with an input buffer) and it's synchronized, it may seem a bit untight, but it's absolutely realtime and interactive. I just decoupled the consonants, 'cause the speech sounds more interesting with a larger variety of consonants. Thanks a lot for your kind words :) In this version, there are four distance sensors (4-30cm), two on top and two at the bottom -- in fact, the setup is a bit more complex like scribbled below, but the basic conecept is like this: [tt] = = |^ ^| || || || || v| |v = = [/tt] I'm calculating the following numbers: - opening state of the hands (top/bottom) => jaw state (from 'uh' to 'ah') - relative height (max top) => pitch - tilt (diff top) => tonge position (eg from 'err' to 'ih') - speed (diff between the last openings) => volume and bend I found a nice formula on the net to linearize the sensor's data. That way, the resolution decreases (from ~150..800 10bit => ~2..24 cm) but it makes sense to use that; as I am using kind of a phoneme map with 5*15 entries, it's quite sufficient and allows much better control. An optional output of midi control messages is already implemented. As you can see from the speed/opening calculations' date=' I think it's possible to implement quite advanced gesture controls. Maybe the sensor positioning can be improved for this purpose (in fact, I'm thinking about a real 3D-control with the sensors placed in a plane matrix and not a 2D space matrix like done in this project; but the opening of the hand as jaw-imitation was important to me this time). I'm still using the PIC18F452 and I guess the current size of 14kB still allows some code. By using a synchronized/timed event polling (and not the AIN-notifications), I guess the PIC's processing power should also have some additional resources. Anyway, I noticed that the Power Regulator does not get too hot, so this should also indicate that there's some space left for additional stuff... Yeah, that will definitely be the case. One of my wishlists contains a control for the SJ-synth. Though I have not thought over this enough ;) Best regards, Michael -
cool 8) I'm really looking forward to hear some sequenced polyrhythms :) Cheers, Michael
-
Speakjet - A PIC ready sound chip?
audiocommander replied to herr_prof's topic in MIDIbox User Projects
sure I will! thnx for the nice comments – when I'm back home (end of march), I'll add a small DIN control board with a basic menu for the most important settings, add RIO's synth add-ons/fixes; pack up everything and release the sources. all the best, Michael -
search the forum for midi-out from live. it's possible and it's kind of a (official?) hack. there should be at least two threads covering this question. and of course ableton live is sending a midi-clock when it's a master application and this option is enabled. you just have to read the sync-bytes and switch your leds. see mclock example and dout-module. regards Michael
-
SPlitting patches into 16 instead 64
audiocommander replied to dj3nk's topic in MIOS programming (Assembler)
so it looks like you now have three options: - learn how to program ASM and spend countless hours and weeks on adapting the sources for your needs - adapt your needs to the available options - or spend 2 more Euros in an additional bankstick I don't think anyone might do the job for you, 'cause it's not really worth the efford ;) Good luck! Michael -
Speakjet - A PIC ready sound chip?
audiocommander replied to herr_prof's topic in MIDIbox User Projects
Hi all speakjetters :) here is a demo video / teaser of the next application release featuring a hand-tracking sensor matrix: Cheers! Michael