Jump to content

TK.

Administrators
  • Posts

    15,254
  • Joined

Everything posted by TK.

  1. I don't want to demotivate you, in fact I also already thought about the use of an ARM based core for MIDIbox projects (see also http://www.midibox.org/forum/index.php?topic=3305.msg22398#msg22398). Based on the experiences I made with this processor so far (I attented a programming course some time ago, but I'm mainly working with TriCore), I can only say, that MIPS are not everything. If the PIC CPU (or AVR, this doesn't matter here) is clocked with the same frequency like a ARM core, you will notice, that PIC/AVR perform better on special tasks, especially on bit manipulations and IO transactions, because they provide special instructions for such operations. Also the interrupt handling of ARM is really ugly, the interrupt latency is higher, task switching is slow. Ok, this has been optimized with ARM 9 core... GCC compiler: nice solution, but not as good as the original ARM compiler (from ARM). Propably you have to write a lot of routines in assembler, in order to achive a performance to handle more than two SIDs. ARM assembler doesn't make fun (due to RISC architecture) Keep also in mind that the IO requires some additional hardware, since the chip is supplied with 1.8V and/or 3.3V - at least for the LCD an external IO tristate driver will be required, and for the SIDs of course So, I guess that you won't be happy with an ARM7 derivative, especially when you are planning to program in C, and if you want to use Linux as the operating system (or do you really favor unstable synth timings before an operating system, which loads a little ARM7 more than really required?) I guess that with an ARM9 based derivate, clocked with 150 MHz and higher, you will be able to do much more than with dedicated PIC cores for each SIDs Just my thoughts - I could be wrong, but I just want to express, that an ARM doesn't really satisfy me yet. It's not a real microcontroller, it's more a computing engine. Best Regards, Thorsten. P.S.: when I'm speaking of the handling of SIDs, I don't only mean to access them via MIDI, but also to provide the same software implemented sound engine capabilities like the real MBSID. Ok, so long you only forward incoming notes the SID registers, and access sound parameters via CC, and if you only provide some simple modulation capabilities, then you are propably able to handle 8 SIDs and more... but you just don't get enough out of the SIDs, just some cheap sounds Compare this with "HardSID" (the PC based solution), which provides a slower update cycle than MIDIbox SID, even it's running on pentium processors ;-)
  2. "wavetable sequencer" is a term of old C64 days - it's not a sampler, but a sequencer which can playback sequences of waveforms very fast. In old days this method was used to realize percussive sounds, I'm using the same method to modulate any CC, and also to trigger notes (like with a common step sequencer) -> see also http://www.midibox.org/forum/index.php?topic=3356.0 Best Regards, Thorsten.
  3. habe gestern das ESI M8U getestet - es verwendet den WinXP Legacy Treiber! Somit bietet es zwar die gleichen Latenz- und Jitterwerte wie das MBHP_USB, ist es aber nicht Multiclient faehig. Fuer mich persoenlich ist es somit nicht mehr interessant, und ich werde vielleicht doch mal wieder mein eigenes 8x8 Interface fokusieren, und zur Not die USB IN/Out Ports doppeln Gruss, Thorsten.
  4. Ich wuesste nicht, warum das mit dieser Konfiguration nicht funktionieren sollte (ich benutze ja die DEC/INC Buttons in meiner eigenen Konfiguration...) - welche SFB Codes verwendest Du genau? Gruss, Thorsten.
  5. Hi Kris, thanks for letting us know! Looking forward for the pictures! :) Best Regards, Thorsten.
  6. Hi Roger, yes, you can realize this with Meta events - there is also an example which demonstrates this: just open "mb64_meta.inc" (MIDIO128: midio_meta.inc), and search for "DoubleNote" Best Regards, Thorsten.
  7. Hallo, also bei mir funktioniert es... Hast Du vielleicht in main.asm eine illegale Einstellung gewaehlt? Fuer DEFAULT_ENCODER_GROUP_WIDTH sind nur folgende Werte gueltig: [tt] ; Width of a group - normaly matches with the number of connected encoders, but ; the MB64E_LCD_PrintGroupNumber function in mb64e_bank.inc only supports ; group widths which are a power of two (1, 2, 4, 8, 16, 32, 64) #define DEFAULT_ENCODER_GROUP_WIDTH 16 [/tt] somit muesstest Du in Deinem Fall DEFAULT_ENCODER_GROUP_WIDTH auf 16 einstellen Gruss, Thorsten.
  8. Cool! Werde ich mir vormerken :) Gruss, Thorsten.
  9. it's perfect, my boards looks uglier than yours ;-) Best Regards, Thorsten.
  10. The "clockbox" can now be found under: http://www.midibox.org/forum/index.php?topic=5691.0 Best Regards, Thorsten.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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 :)
  22. 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)
  23. known issue, just ignore this import problem
  24. 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.
  25. It could work Best Regards, Thorsten.
×
×
  • Create New...