-
Posts
15,247 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
Cool! Werde ich mir vormerken :) Gruss, Thorsten.
-
it's perfect, my boards looks uglier than yours ;-) Best Regards, Thorsten.
-
The "clockbox" can now be found under: http://www.midibox.org/forum/index.php?topic=5691.0 Best Regards, Thorsten.
-
From the readme.txt: [tt] Clockbox V1.0 © 2005 Thorsten Klose (tk@midibox.org) =============================================================================== This application sends a MIDI clock and outputs a 24ppqn signal at CORE::J14 from 48 to 255 BPM It is also capable of sending the MIDI song position to sequencers which are able to parse this message (F2 pos_L pos_H) The user interface consists of an encoder for BPM selection, a Stop/Pause/Play/Rev and Fwd button, and a LCD, which displays the selected BPM and the current song position The hardware is the same like for MIDIbox SID CS Step A (without the SID module) =============================================================================== A precompiled binary is already part of this package: o project.hex (can be loaded into MIOS Studio) o project.syx (can be loaded into any SysEx upload tool) Following tools are required to recompile the code: o SDCC v2.5.0 o gputils o perl The details are described under http://www.ucapps.de/mios_c.html =============================================================================== Required hardware: o one MBHP_CORE module o one DINX1 module (or just a 74HC595 shift register + pull-up resistors) o one rotary encoder o 5 buttons o 2x16 LCD =============================================================================== Configuration steps: o check the "general application settings" in main.h if changes are required for your hardware setup (normaly not) o check the encoder type in mios_wrapper/mios_tables.inc By default, the DETENTED2 type is selected o the application can be rebuilt with the "make.bat" file (type "make" in a DOS command shell) =============================================================================== Description about the most important files: - mios_wrapper\mios_wrapper.asm and mios_wrapper\mios_tables.inc: The MIOS wrapper code and MIOS specific configuration tables - pic18f452.c: exports PIC18F452 specific SFRs - main.c: the main program with all MIOS hooks - mclock.c: the MIDI clock handler There are additional .h files for all .c files which contain general definitions and the declaration of global functions/variables These .h files must be included into the program parts which get use of these globals =============================================================================== [/tt] Download: http://www.ucapps.de/mios_download.html Interconnections: http://www.ucapps.de/mios/clockbox.pdf LCD view: Btw.: this application includes the basics to create a C based sequencer or arpeggiator! Have fun! :) Best Regards, Thorsten.
-
Ok, I found out the reason - the SDCC parser hasn't regognized, that in the program, I used to test the parameter passing, the first and second value was swapped (although one is a 8-bit, and the other is a 16-bit value) The updated wrapper v1.0c can now be downloaded from http://www.ucapps.de/mios_download.html In an existing project, just replace mios_wrapper/mios_wrapper.asm by the new one Best Regards, Thorsten.
-
Strange things happen - today I noticed, that parameter passing to MIOS_Timer_Init and MIOS_Timer_ReInit is wrong, even I'm sure that I tested it several times (therefore all those "PARAMETER_PASSING_TEST" branches in mios_wrapper.asm) Seems that I released the wrong file, because I found one with the right code. Once I sorted out the reason, I will release an update Best Regards, Thorsten.
-
Since such a tool is requested very often, I just have written a small C application which does the same. It consists of one rotary encoder for BPM, and 5 buttons for Stop/Pause/Play/Rew/Fwd and a 2x16 display Tomorrow I will add the possibility to send a song positon pointer (therefore the Rew/Fwd button), thereafter it will be released in the "MIOS Toy of the Week" section Best Regards, Thorsten.
-
Hi Sayonara, the SX64 PSU can drive pretty much current, I'm sure that you won't run into problems. And you don't need the AC output - just supply the SID directly with the DC12V line Best Regards, Thorsten.
-
I need one more stinking input pin on my bass pedal unit!
TK. replied to Axeslinger's topic in Design Concepts
I don't know why which shouldn't work - you could output the read value of PORTC on your LED digit, just to check if anything changes. Best Regards, Thorsten. -
Hi uclaros, It's worth a try. I don't see the point that the sound could be affected, because the output values are latched with the RCLK pin, which means: during the time the values are shifted through the chain, the output stage will stay stable. With the RCLK signal, all outputs will get their new value at the same moment Best Regards, Thorsten.
-
MIDI slave mode is still the best solution. MIDIbox SID provides an internal clock for wavetable sequences, but this is just a number of 0..127, and not a BPM scaled clock (there is no additional timer available for an independent BPM handler) Yes, no additional PSU, just 3 DIN and 3 DOUT shift registers will be required Best Regards, Thorsten.
-
I just had a look into the code, and noticed, that the buttons are free assignable (read the comments in cs_menu_io_tables.inc) This means, that you don't need to change the pinning, you only need to write the shift register and pin number of the 5 additional buttons into the cs_menu_io_tables.inc file (search for "CS_MENU_BUTTON_Sel") I hope that such modifications don't need additional schematics, when you think about how many configurations are possible, it should be clear that this could lead to endless effort at my side, just to save somebody from reading the given informations, which are available somewhere else Oh, btw the general tip to everybody, because it seems that (based on the questions of the last weeks) many people don't know, that configuration details of MIOS applications are either listed in main.asm (assembly based apps) or in readme.txt (C based apps) Also the changelog.txt file mostly contains interesting informations Best Regards, Thorsten.
-
Hi, it's documented in cs_menu_enc_table.inc Oscillator 1, 2, 3 you can remove this LED, the function can be controlled from the FIL menu anyhow oscillator 3 off (special SID feature, sometimes useful if Oscillator 3 is used for sync or ringmodulation) you would have to chain the Audio Outs through the Audio Ins - but it sounds crappy, I cannot recomment this. Especially the s/n ratio will be worst Press Env: LCD menu jumps to the ENV section, you can see the current envelope values, and you can change them with the encoders. Press Env in order to change to the second envelope, press Env again in order to change to the first envelope - the LCD will always display the selected values, thats very important when using rotary encoders. Because I found it more consistent at the time I created the control surface. There is a OSC button, a LFO button - why not a ENV button. However, you are right, I could save one button. On the other hand: from my personal oppinion this is more aesthetical It's not easy to change the CS program, so that Env and Ctrl are merged. The software isn't such flexible... (flexibility always consumes memory, and memory is always rare) Once the 18F4620 is available (with 64k internal flash), I'm planning to enhance the arpeggiator section by some internal sequences (Up/Down/Octave 1..2..3 and all this stuff) - then I could also take such features into account. Currently I cannot say, how to implement it in a way which makes it compatible with future features. Sidenote: as mentioned many times, I would never change my own control surface - therefore it could be, that arpeggiator functions are controlable with a key combination Best Regards, Thorsten.
-
Well, the dark foggy season begins, time to think about new tinkering projects ;-) Here me first ideas for a 303 control extension: >>> Edit 2006-01-31: the final panel will get more buttons!!! <<< Main intention is to have a supplement to the Control Surface Step C, which can be plugged into Joystick port of my C64 case. Since the CS already provides a lot of knobs for sound tweaking, only sequencer specific control elements are required, therefore you won't find a CutOff/Resonace/EnvMod/Decay/Accent knob here - they could be part of a ASSIGN layer (e.g. of the OSC section) Also an additional LCD is not required - informations will pop up on the CS LCD Center: 16 buttons for various functions + 16 LEDs LED show the function status + the current sequencer position if a pattern is running Left side: 4 LEDs for Pattern/Note/Accent/Slide and one selction button Pattern: in this mode the 16 center buttons can be used to change the pattern - one of 128 (A1..h8, handling like known from MBSEQ) Note: in this mode the 16 center buttons select a note of step 1..32. Note value can be changed with the datawheel at the right side Accent/Slide: activate/deactivates the appr. functions with the center buttons Right side: one step button, 2 step range LEDs: since MBSID provides up to 32 notes per pattern, this button is required to select the view 1-16 or 17-32 Play button with Beat indicator LED: combined Play/Stop Datawheel (rotary encoder), used to select the pattern, Note number, Accent intensity I'm sure that this is not the final version, therefore I would like to know if anybody has additional ideas? Best Regards, Thorsten. P.S.: maybe this box could also be useful to program MBFM sequences :)
-
This is a light installation made by Martin Froehlich and Friends. It "brain" consists of two MBHP_CORE modules and a PC. One core controls a SHX8 module, which drives 64 PWM circuits for light dimming In addition it transmits the values of 64 position sensors The second core controls digital signals The PC software communicates with the cores More details will be available on a special website from Martin Here some additional comments in german (use babelfish.altavista.com for translation)
-
known issue, just ignore this import problem
-
Hi, 2x40 will work in main.asm, you have to set "CS_MENU_DISPLAYED_ITEMS 10" The DIN wiring is different, since you need more buttons for 5 additional menu items: http://www.ucapps.de/midibox_sid_cs/2x40_enc.pdf If you are planning to build a Step C interface, all buttons behind the menu buttons are shifted by 5 DIN pins Best Regards, Thorsten.
-
It could work Best Regards, Thorsten.
-
The new library is available here: http://www.ucapps.de/midibox_sid/preset_patches_20051109.zip From the Change Log: [tt] o A018 (Arpeggio): changed Arp speed from 99 to 110 o A052 (Nice Lead): changed Portamento speed from 66 to 30 o A067 (SEQ TranceBass): optimized Attack/Decay/Curve of ENV1, activated HP filter in addition to LP o A074 (ARPSEQ Three): activated oscillator phase synchronization o A076 (SEQ Mighty Bass): changed ENV1 depth from 14 to 33 o A078 (Analog Dream 2): increased Release of VCA ENVs o A080 (Analog Dream 4): increased Release of VCA ENVs o A089-A091 (Miami *): set volume to 80 o A093/A094 (Monty Bass *): increased CutOff o A105 (Curve Filter D): increased CutOff o added Patch B006-B011 made by Sebastian (aka Rio) [/tt] Best Regards, Thorsten.
-
Can't say it better... Best Regards, Thorsten.
-
This question has to be answered by Smash himself Best Regards, Thorsten.
-
Druckfehler Gruss, Thorsten.
-
Why ripping the firmware of a controller, when MBLC offers much more features? ;-) Best Regards, Thorsten.
-
If your host program offers the possibility to "learn" MIDI events (this is mostly the case today), you could use the ain64_din128_dout128 application - it supports 64 pots, 128 buttons and 128 LEDs Best Regards, Thorsten.
-
Hi Robin, I wouldn't use the MIOS_DOUT_PinGet value to toggle the LED, but I would store the state in an array. This has the advantage, that the LEDs could temporary display different informations, and could be switched back to the old saved state. Maybe you don't see the need for such a feature yet, but sooner or later you will be happy that you took this into account from the beginning. There is a simple, and a clever way to realize toggle LEDs. The simple way is the use of an array, which contains one variable for each button/LED. Let's say, DIN 16..31 should be used. Then declare a global array at the top of your .c file: unsigned char toggle_state[16]; // 16 buttons should toggle and write your DIN_NotifyToggle like shown here: void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam { unsigned char array_index; // DIN 16..31 should toggle if( pin >= 16 && pin <= 31 ) { if( pin_value == 0 ) { // only react when button is pressed // determine the index of the array element (starts from 0) array_index = pin - 16; // toggle the flag which saves the current button state toggle_state[array_index] ^= 0x01; // '^' is a XOR operation // send MIDI Note event depending on toggle state MIOS_MIDI_TxBufferPut(0x90); MIOS_MIDI_TxBufferPut(0x30 + array_index); MIOS_MIDI_TxBufferPut(toggle_state[array_index] ? 0x7f : 0x00); // set LED (same pin number like button) MIOS_DOUT_PinSet(pin, toggle_state[array_index] ? 0x7f : 0x00); } } else { // this branch handles DIN 0..15 and DIN 32..127 } } [/code] The disadvantage of this method: it consumes one byte (8bit) per DIN, but only 1 bit is used to save the toggle state. In order to save memory, it's more clever to store 8 toggle states per byte. This can be done in the following way: global array: [code]unsigned char toggle_state[16 / 8]; // 16 buttons should toggle DIN hook: void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam { unsigned char array_index; unsigned char bit_index; // DIN 16..31 should toggle if( pin >= 16 && pin <= 31 ) { if( pin_value == 0 ) { // only react when button is pressed // determine the index of the array element (starts from 0) array_index = (pin - 16) >> 3; // fastest way to divide value / 8; // determine bit position bit_index = (pin - 16) & 0x07; // remainder of x/8 // toggle the flag which saves the current button state toggle_state[array_index] ^= (1 << bit_index); // '^' is a XOR operation // send MIDI Note event depending on toggle state MIOS_MIDI_TxBufferPut(0x90); MIOS_MIDI_TxBufferPut(0x30 + pin - 16); MIOS_MIDI_TxBufferPut((toggle_state[array_index] & (1 << bit_index)) ? 0x7f : 0x00); // set LED (same pin number like button) MIOS_DOUT_PinSet(pin, (toggle_state[array_index] & (1 << bit_index)) ? 0x7f : 0x00); } } else { // this branch handles DIN 0..15 and DIN 32..127 } } [/code] Best Regards, Thorsten.