Jump to content

mess

Programmer
  • Posts

    141
  • Joined

  • Last visited

Everything posted by mess

  1. Hi, it will take a while before I can finish this project, school is taking a lot of my time right now... if anyone is interested in the source PM me :) Michael
  2. Hi does anybody now of a free SVN server? for the moment I'm using http://opensvn.csie.org/ but the site is quite slow when comitting/updating maybe it would be possible to run a SVNserver on midibox.org? ::) ;D Michaël
  3. Thx for your reply, I'm not going to connect an lcd to that core but I was worried that the port state would be changed by the lcd driver My solution was to configure the core for a custom lcd driver while leaving this template empty.. It works great in the meantime but I would like to take a look at the SRAM code :-) Michaël
  4. There is a difference between the standard use for MBNET like in the sid application and the usage for my project I'm using MBNET to transfer all the parameters from the control chip to the soundchip so every parameter is buffered in the control chip, and every time the control routine is executed the parameters are updated via MBNET (RAM WRITE) to the sound engine so both chips need the CAN interface the standard mbsid v1 MBNET usage exchanges parameters between control engines for the control surface If the propellor doesn't support can you might indeed be better off with another communication method
  5. Strange, I did a LOT of uploads when working on projects and never had a failure maybe your code got too big so that a part of mios was overwritten (this has happened to me a few times before I used the 18f4620) in that you can upload MIOS as Stryd suggested this is only an issue for the can enabled pics ...
  6. Hi Freon, it just had a look at your site, I agree with Stryd, very nice interesting project... do you write your code in Spin or ASM? about the Sid Control Engine: in the current implementation CAN is only used for the CS and patch loading I don't think this will be very useful considering the different synth architecture... also the SID code has a lot of specific code to handle the low resolution sid registers Maybe a more generic control engine based on thr SID would be nice, as there is a lot of intrest for controlling all kinds of soundchips Right now I'm working on the MBNET code to copy the variables from the control chip to the sound engine. Hopefully I can show some results monday... If you want a very simple way to get rid of most of the attack click you could try smoothing the gate signal, I just used an averaging filter running at 1khz (control update freq) and it helped a lot... keep us informed about your project :) Michaël
  7. Hi I want to use RD 7:4 and RC5:4 for controlling a dac since RB is partially used for the CAN-interface are there any changes needed to MIOS for this? (since RD7:5 are normally used to control the LCD) thanks, Michaël
  8. That is exactly what I'm going to do next, TK suggested using the new MBNET (CAN network) so right now I'm adapting the MBNET driver for use with coresound... I've made a WIKI page so that all information can be added there: http://www.midibox.org/dokuwiki/doku.php?id=coresound there's not much info right now, I will update the page as the code progresses Michaël
  9. Feature update: I'm adapting parts of the MB_SID engine for modulation progress so far: *one envelope hardwired to volume (I threw out extra features like the envelope bend) *one lfo hardwired to envelope select, this signal is combined with a manual parameter *the cc input routines are modified for controlling the coresound parameters I first wanted to get this to work so there are some modulation sources for the dco... @Andrew First of all thank you for the wavetables, I forgot the PM you back I will try the 'alternate cycle' thing tomorrow... the interpolation will optional in case this doesn't sound good I already do this when playing with the formant bank, the 'speakjet wannabe' sounds :-) @Bill: I like the generator idea but I don't know if there will be enough ram available the wavetables I'm using right now have 16 waves of 256 bytes each this is not such a big problem in rom because the actual code is not so big... maybe this is possible with a pic18f4620 there are so many things I want to try but the resources of the pic are running out fast... maybe there should be a pic generating the sounds and another one for modulation/cs just like all of the other projects around here I would love to use the whole (modified) SID software for controlling this thing If someone wants the code to try out some ideas PM, I don't want to post the code until it is cleaned up a bit please note that you can also use the standard R2R resistor dac for a quick experiment ;-)
  10. mess

    Sin Fkt.

    no, it's called sid_sin_table.inc
  11. mess

    Sin Fkt.

    Yes he used the same method the only difference with between the sid and analog toolbox is that the sid table uses a table containing only one half of the sine and 'mirrors' this data to get the full wave to save memory..
  12. Hi if you want the timer to do this *first step is to initialise the timer, call MIOS_TIMER_Init (see http://www.ucapps.de/mios_fun.html for more info on how to use this function) *next put your blink code in USER_Timer do you have experience with assembler coding? otherwise it would be easier to do this in C let me know if you need more hints
  13. Hi Moxi another way to this is by multiplying the value with your scalar and keep the most significant byte as result this way: scaled_value = (scale*value)/256 _PRODL = scale; _PRODH = value; __asm movf _PRODL, w mulwf _PRODH __endasm; scaled_value = _PROD_H note: I didn't try the above code!
  14. Hi Rio this is normal behaviour, I think that TK recommended the use of an init function in another thread I think that MIOS clears all variables on startup so that the initialisations don't have effect not sure about this, otherwise it's an sdcc related issue the other C compiler I have used (from Keil) initialises global variables as expected I hope I did understand your question correctly, it would be easier if you would post your questions in English... Michaël
  15. mess

    Sin Fkt.

    Hi Rio depending on the resolution you need you could use a lookup table to get sine values take a look at the analog toolbox project (I think you can find the table in map.c) the only problem with is that you will have to scale the output to your needs right now 0 is 128 in the table, negative values are between 127 and 0 and so on if you need a custom lookup table (16bit, signed format) let me know
  16. *Update: I've been working on a simple wavetable dco, the biggest problem right now is finding (or generating) the actual wavetables... for the first test I'm using wavetable bank0 of the wiard wavetable rom, was has been converted to an asm include file using a perl script here's a first wave example: http://webs.hogent.be/~032573mh/midibox/coresound/crsnd_test1.mp3 *the modulation of the wavetable is done by incrementing/decrementing a counter on each note-on (no lfo's yet :() *since there are only 16 waveforms in a bank the dco interpolates between two waveforms to get 32 steps *the 'envelope' is generated by smoothing the gate signal, the disadvantage is that there are still some pops this will be solved once the EG works @Myco: How do the different dac's compare? do you use a lowpass after the dac? Michaël
  17. I haven't tried it yet, I've been rewriting the core sound stuff in asm because most of the code was inline asm anyway right now I'm studying for my exams so it will take some time before I can verify this code snippet maybe it's better to use the 16x16 signed multiplication from the datasheet and take out the stuff that you don't need (compensation for sign bit etc) an optimised version of the sdcc lib would be nice but there are too many things on my todo list already :)
  18. Thanks Thorsten, it worked, I only get an overflow when sending a lot of midi notes on startup so the problem has to be something else.. Michaël
  19. Hi Rio, the code keyword indicates that the pointer points to a code memory location if you look at the source below you can see that the table pointer is used this is the reason why no arrays (in data memory) can be used with this function... the functionality of MIOS_PrintCString depends on this code: .MIOS_LCD_PrintCString code _MIOS_LCD_PrintCString global _MIOS_LCD_PrintCString movwf TBLPTRL movff FSR0L, FSR2L movff PREINC2, TBLPTRH movff PREINC2, TBLPTRU _MIOS_LCD_PrintCStringLoop tblrd*+ movf TABLAT, W bz _MIOS_LCD_PrintCString_End call MIOS_LCD_PrintChar bra _MIOS_LCD_PrintCStringLoop _MIOS_LCD_PrintCString_End return END Michaël edit: here's the sourcecode from strlen: int strlen ( char * str ) { register int i = 0 ; while (*str++) i++ ; return i; } and the definition: extern int strlen (char * ) ; note that you've got to include the sdcc lib in your linker file it seems that TK selected the files included in the mios lib if you look in your sdcc directory under src you can see all of the other files I think it's possible to include other sources but they would have to be modified by the fixasm script to work with MIOS
  20. I have some trouble with missing notes in my application, is it possible to check for a full RX buffer and set J14 when this occurs? Michaël
  21. New version with 24 bit accumulator, the software dcf and dca are disabled as I'm improving the resolution (to 16bit signed) still struggling with the math :( right now you can play notes on channel one, the output signal is gated so no envelopes and no velocity when the dcf/dca works I will use the other dac outputs to bring out the modulation signal's to control analog filters/vca's. you can find the code here: http://webs.hogent.be/~032573mh/midibox/coresound/coresoundv0_5b.zip the first schematic with the 8 bit DAC: the dac is a MAX7228 connection to core: [table] [tr][td]coresound pin |[/td][td]core pin |[/td][td]pic pin nr[/td][/tr] [tr][td]1 [/td][td]ground[/td][td] [/td][/tr] [tr][td]2 [/td][td]J15:D7[/td][td]40[/td][/tr] [tr][td]3 [/td][td]J15:D6[/td][td]39[/td][/tr] [tr][td]4 [/td][td]J15:D5[/td][td]38[/td][/tr] [tr][td]5 [/td][td]J15:D4[/td][td]37[/td][/tr] [tr][td]6 [/td][td]J15:D3[/td][td]36[/td][/tr] [tr][td]7 [/td][td]J15:D2[/td][td]35[/td][/tr] [tr][td]8 [/td][td]J15:D1[/td][td]34[/td][/tr] [tr][td]9 [/td][td]J15:D0[/td][td]33[/td][/tr] [tr][td]10 [/td][td]J14[/td][td] [/td][/tr] [tr][td]11 [/td][td]+5v[/td][td] [/td][/tr] [/table] disconnect any lcd from the core also make sure that nothing is connected to J5 (I'm using those pins for debugging) Michaël
  22. I've changed the script for another colorscheme, here are some screens for my seq: the modified script: http://webs.hogent.be/~032573mh/midibox/dseq32/dseq32_screens/gen_dseq32_screens.pl
  23. Hi I've just tried one of the script on windows It can generate all of the screens in .xpm, if the gif convertion is disabled my $convert_gif = 0; if I understand correctly, the script needs a conversion program to convert the .xpm to gif: system("convert ${output_file}.xpm ${output_file}.gif") && die ("convert failed!\n"); system("rm ${output_file}.xpm"); *edit: you can find this program here: you can find this program here: http://www.imagemagick.org/script/convert.php
×
×
  • Create New...