Closed dcarls7 closed 11 years ago
Hey,
That's cool you got it to work!
Well, if you tried the .hex from the alpha archive, you might want to try this one: http://sfx.gligli.free.fr/zik/p600/dev/p600firmware.hex It should fix the relatively slow attack rate minisystem scoped in his review, and also fixes tuning, even if this seems to work for you.
Hmm pitch bend works for me, but I had to add an hardcoded offset for pitch bend lowest position, and maybe I chose it wrong dunno... Still, maybe set pitch bend fully up, calibrate, and see if you can pitch down...
Hehe, not at home right now, but I'll try to post something about how to setup netbeans later!
GliGli
Re,
Here's how I configured netbeans, let me know if you need more help! http://sfx.gligli.free.fr/zik/p600/dev/nb1.png http://sfx.gligli.free.fr/zik/p600/dev/nb2.png
Thanks!
I tested the pitchbend with calibration when the wheel is fully up and still the pitch bend is not functioning correctly. In more detail, what is happening is as soon as I get slightly below center, the pitch just drops off to the lowest setting, so then the majority of the wheel moving downward has no effect. When bending the pitch up, it appears there is almost twice the range. I can make an audio clip (or video) if it helps.
I tried the new hex and for my Prophet 600 and tuning doesn't work correctly now. It takes a very long time to get through the tuning routine (probably at least twice as long) and then when complete, there are tuning issues. I rebooted a couple of times and got various tuning issues each time -- sometimes oscA and oscB were out of tune, sometimes the filter was creating a persistent tone, etc.
Regarding Netbeans -- thanks for screenshots. My setup matches yours. Here is a bit more detail as to what I'm seeing:
1) After doing a Git Clone, there is no project for p600firmware, only p600mockup.
2) I manually created the project.xml in the nbproject directory in order to load things in netbeans.
3) When I try and build the project, I receive the following errors:
If I comment these lines out in the makefile, I can get things to build, but my hex is about half the size that yours are. Thoughts?
Sorry for the long response -- would you prefer I log each of these as different issues moving forward?
Okay, it looks like a pot scanning problem, someone also reported that today. By the way was the bender working better with the new hex? (DAC timings are more relaxed now, it might help...)
Ha! indeed I forgot to commit the project file, that's fixed now!
It seems like you're using an older GCC to compile the code, one that doesn't support link-time optimisation (that's the -flto) that option is critical to get proper firmware speed.
Maybe you have eg an old WinAVR that's in the windows PATH, and it overrides MHV_AVR, dunno...
Hmm, it might be simpler to stay with long messages right now...
The bender was acting the same with the new hex.
Nice call on the PATH issues. I had to reinstall MHV AVR Tools and fool with some settings to finally get Netbeans to correctly point to MHV's executables. It was previously compiling with an old version of WinAVR's tools until I got the references fixed. I am able to compile the latest code from source now. Thanks!
Okay, I tested the new version that you posted on anafrog.
Here are my findings --
1) I am still having the same pitch bend wheel issue 2) The "tuning issue" I had on the previous version is still present. I tested more and have found that it may be an assigner problem as opposed to tuning. What happens is after tuning (and after pitch wheel calibration), when I press a key, there is one voice stuck at a fixed pitch (appears to be the 6th voice), and the rest of the voices are sounding correctly in pitch. If I hold down keys one by one, starting with only holding one key down and adding a key until I am holding 6 keys down, the note that is permanently present will change to whichever note is the 6th key that is held down. I hope this makes sense -- if it isn't clear, I can certainly make a video of this issue as well as the pitch bend issue.
Thanks for the amazing work, and please let me know if I can help you narrow down any of these problems.
-Derek
Hmmm, for your pitch bend issue, I'll wait til the guy with no working pot on his p600 tests that new version as I'm pretty sure this is the same problem, only worse for him...
Ok I see, I had that bug at some point, the fix I did only works for me apparently. Still, the stuck voice went back to ok for me after I played it once, dunno if it does the same for you...
Hey,
You might want tou check out this version: http://sfx.gligli.free.fr/zik/p600/dev/2013-03-09_2/p600firmware.hex It fixed the bad pot scan problem another tester had, so it should probably fix yours!
Also today I tried to get speed back to ok (I had to remove a lot of optimisations while searching for bugs), and made some other improvements: http://sfx.gligli.free.fr/zik/p600/dev/2013-03-10/ (same functionnality in those 2 .hex, but one should be faster, or buggier... that's the question ^^)
Thanks!
I will test as soon as a I have a minute. It might be a little slower than before as I now have a 3 day old infant to care for :)
I'll let you know how it goes when I test on my p600.
Hey GliGli,
Both of these work much better (the fix pot scan and the faster version). I was having trouble tuning (taking up to 40 minutes to tune or it might get stuck on A6 or B3 or another oscillator.) Now it tunes in about minute. It is also nice to hear the scan as it tunes and watch it on the scope.
I have noticed that there is some matrix scan sync issues. Once the tune is completed, I cannot get my scope to latch on the whole scan cycle and I hear this as noise, as far as I can tell, only on the PW for both OSC. This was not a problem in the previous builds. This means that the Pulse wave sounds like it is being modulated randomly and it is not possible to simply dial it out, i.e. take entirely to DC or say, a 50% duty cycle. Are you experiencing this?
Many thanks for these new builds.
Bulghur.
By the way, with the SQR wave off and other waveform selected, the machine sounds normal.
dcarls7: congrats! yeah a few things in life are more important than analog synths I guess ;)
bulghur: hmm, I wonder what was the version that brought this problem... I store them all here: http://sfx.gligli.free.fr/zik/p600/dev/ 2013-03-02 is the last one I'm sure works for you, and if I had to guess, i'd say 2013-03-07 brought the problem...
Hello GliGli,
I tried the 2013-03-02 -- both the tune and the no-tune. The no-tune tuned but did not play any sounds. The unit appeared to be cycling through all the parameters but I couldn't hear anything. The tune version never completed the tuning. The later version appear to be working well -- both the fast and the slow version and is very stable. I left it running all day and once the P600 was warmed up, it stayed in tune and played normally. Here are issues that I noted:
A bit of history. I was able to get the 20130302 to work on my P600 only once and it worked for 30 minutes and then it "fell apart". I was not able to clear the tune routine again.
I am now focusing on getting my dev environment sorted -- Git, Netbeans, WinGW and MHV AVR -- this part is proving to be a challenge... :-)
Bulghur
GliGli,
Just wanted to let you know, my testing will be on further delay. Seems my processor socket has some pins that are stretched out from the new thicker pins on the teensy (even though I wasn't putting the teensy all the way in the socket). So now looks like one (or a few) of the data bus lines aren't making contact causing some of the switch matrix to not work correctly no matter what firmware (and the left 7 seg display).
I am going to replace the socket, which will take me some time.
Hope all continues to go well. Thanks again for all of your fantastic work on this project.
-Derek
Hello Derek,
I was wondering if you could expand on your configuration of MVH_AVR and the NetBeans configuration. I tried to compile and got exactly what you listed above:
Compiling C: p600firmware.c avr-gcc -c -mmcu=at90usb1286 -I. -gdwarf-2 -DF_CPU=16000000UL -Ofast -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=C:/Users/pweber/Documents/NetBeansProjects/p600fw-master/p600firmware.lst -I../common -std=gnu99 -fno-unroll-loops -fno-inline-functions -flto -fuse-linker-plugin -MMD -MP -MF .dep/p600firmware.o.d p600firmware.c -o C:/Users/pweber/Documents/NetBeansProjects/p600fw-master/p600firmware.o cc1.exe: error: invalid option argument '-Ofast' cc1.exe: error: unrecognized command line option "-flto" cc1.exe: error: unrecognized command line option "-fuse-linker-plugin" make: *\ [C:/Users/pweber/Documents/NetBeansProjects/p600fw-master/p600firmware.o] Error 1
A quick history.
I installed NetBeans Installed MHV_AVR -- first I tried installing using the instructions here: http://www.makehackvoid.com/project/mhvavrtools I could fetch.sh but the build.sh failed. Then I found this and installed into MHV_AVR on my root directory. It installed properly, I cleaned out my path including the references to WINAVR and then went into NetBeans and updated the info per GliGli's info.
I must admit that I am a little out of my depth here as I have not had to set up an IDE for a project this complex before. But I am committed and will persevere.
Any direction, including web resources would be appreciated. I am not finding a lot on MVHV AVR.
Bulghur...
Bulghur,
Well, unfortunately, it wasn't a logical solution. It's on my list to fool with it and come up with a registry key to delete or global reference, but since my setup is working, I have been reluctant to change it. I had nothing but trouble trying to get NetBeans to correctly target avr-gcc.exe from MHV_AVR instead of WinAVR. Even when I uninstalled WinAVR and cleaned up PATH, Netbeans still tried to target the now non-existant version of gcc, resulting in a memory access error upon BUILD.
So, here was my basic process as I remember it that got to where I can clone the newest GIT and have it build right away:
1) Name your tool collection exactly as GliGli did -- MHV_AVR. This way you won't have to change any project references to point to your toolkit. 2) Install MHV_AVR into the same directory that GliGli did C:\MHV_AVR\ (in your screenshot, you made a typo and installed into C:\MVH_AVR) 3) Clear PATH references to WinAVR. (I also modified the WinAVR environ variable "AVR32_HOME" to point to C:\MHV_AVR -- probably not necessary). 4) At this point, without having WinAVR installed, I began to get the memory access errors upon build. So, I reinstalled WinAVR. This resulted in me getting the errors you showed above (-0fast, -flto, etc.) 5) Here's the weird one -- because we are only using the C compiler, I went and overwrote avr-gcc.exe in WinAVR-20100110\bin with the avr-gcc.exe from MHV_AVR_TOOLS. I then was able to get the project to build. 6) After a reboot, I now was able to delete avr-gcc from the WinAVR\bin directory and everything is referenced correctly in NetBeans.
I know this process makes little sense, and I imagine there is probably a registry key that needed to be deleted, but this is what I did to get things working. Clearly, there is an issue with the way that WinAVR sets up global references that confuses things when MHV_AVR tools is installed.
If I can help in any other way, please let me know.
-Derek
Hey, I was doing a bit of music for a few days, now I can resume on p600fw :)
Hmm, I think the problem Derek had is because windows needs to reboot to update the PATH variable for programs iirc. So basically, after deinstalling WinAVR and before rebooting, PATH hadn't changed for apps, hence why he had to overwrite avr-gcc.exe.
Thanks gentlemen,
I tried to get NetBeans to see it and it is still finding references to WinAVR and it does not want to recognise MHV_AVR tools. I decided to do a full reset and start again. I am deinstalling the apps, cleaning up the path and then I will try again. Thanks for all the info.
GliGli, music, yes! We mustn't loose sight of that. Personally, I have been having a great time exploring the new Prophet 600 sound. For kicks I decided to emulate a 909 bass drum using the resonance and filter and the short exponential ADSR and a little triangle for body. Same electronics in the P600/totally different sonic capabilities. I feel like already have a new instrument.
Bulghur
GliGli,
Well, it turns out that it wasn't the socket, which is good. It ended up being some bad solder joints on the TB301 ribbon cable going from the CPU board to PCB1. Seems I stressed the cable by opening and closing the cover too many times. It was causing the issues I was seeing with the switch matrix.
So, I did some further testing The 2013-03-10 builds you put together work nicely - noticeably resolving some minor performance issues (LFO bleeding thru even when mod wheel is all the way down, etc.). Tuning goes very fast and everything is nicely in tune after performing the pitch bend calibration.
My two issues do remain though -- the pitch bend issue where it doesn't do anything when I bend down and most noticeably, the same "stuck voice" issue remains. It may help in troubleshooting the "stuck voice" issue that the only build where this doesn't occur for me is the very first public build you made -- Feb 26 2013 (the one minisystem posted on his blog). All other builds up to the latest 2013-03-10 build have this bug for me. The pitch bend issue has occurred in all builds you have created thus far.
Let me know if you'd like me to perform any specific testing or make a video of the issue.
-Derek
Hello Derek and GliGli,
I find that the innards of the P600 are not particularly robust. P401 (feeding current to the control boards) came loose for me and I burned out the VDAC (LM356) buffer trying to read it with my scope. Luckily, it is not that hard to service. Seated the LM356 in an new DIP socket so future burnouts are chip swap away.
I have included a video to help compare what is working and what is not on the latest firmware- 20130310.
http://www.motisonic.com/sounds/Gentleman_Farmer/P600fw-20130310build.3gp
I have had the same build as you running in my P600 for about a week and here is what I notice. Summary:
BUT, I am going to start recording with it... It sounds great.
Netbeans and MHV_AVR -- tool chain issues. I will post separately...
Hope this helps you both... Sorry for the unstable video -- my bad production values. :-)
Bulghur...
Gentlemen,
So here is where I am at trying to get my IDE sorted.
I followed Derek's direction and tried the various permutations including dropping the MHV avr_gccc into the WINAVR directory. While I am now able to "clean" my project, it will not compile. The main problem I have is that when I try to add the new MHV_AVR to the Tool Collection I get the error: No compiler sets were found in the director C:\MHV_AVR. I know that the toolset and I have been looking for a way to trick Netbeans into seeing there including updating the path. I see all the other paths including MinGW, TDM and of course WinAVR.
What version of MHV_AVR are you using. I was not able to follow the git fetch and successfully download and build the latest so I used this one: http://www.makehackvoid.com/sites/default/files/MHV_AVR_Tools_20121007.exe
I think that if I can get the MHV Tool Collection properly added, I should be good.
Finally, interesting note. When I replaced the WinAVR avr-gcc.exe with the MHV_AVR avr-gcc.exe I found that I was unable to compile and build another project (the hex file for the Mutable Instruments Shruthi). Restoring the original WinAVR file fixed the problem.
Here is the failed build still pointing at WinARV instead of MHV_AVR:
-------- begin --------
Cleaning project: rm -f p600firmware.hex rm -f p600firmware.eep rm -f p600firmware.cof rm -f p600firmware.elf rm -f p600firmware.map rm -f p600firmware.sym rm -f p600firmware.lss rm -f C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/p600firmware.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/usb_debug_only.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/print.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\p600.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\display.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\scanner.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\dac.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\synth.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\adsr.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\lfo.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\tuner.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\potmux.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\assigner.o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\utils.o rm -f C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/p600firmware.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/usb_debug_only.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/print.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\p600.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\display.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\scanner.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\dac.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\synth.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\adsr.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\lfo.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\tuner.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\potmux.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\assigner.lst C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/..\common\utils.lst rm -f p600firmware.s usb_debug_only.s print.s ..\common\p600.s ..\common\display.s ..\common\scanner.s ..\common\dac.s ..\common\synth.s ..\common\adsr.s ..\common\lfo.s ..\common\tuner.s ..\common\potmux.s ..\common\assigner.s ..\common\utils.s rm -f p600firmware.d usb_debug_only.d print.d ..\common\p600.d ..\common\display.d ..\common\scanner.d ..\common\dac.d ..\common\synth.d ..\common\adsr.d ..\common\lfo.d ..\common\tuner.d ..\common\potmux.d ..\common\assigner.d ..\common\utils.d rm -f p600firmware.i usb_debug_only.i print.i ..\common\p600.i ..\common\display.i ..\common\scanner.i ..\common\dac.i ..\common\synth.i ..\common\adsr.i ..\common\lfo.i ..\common\tuner.i ..\common\potmux.i ..\common\assigner.i ..\common\utils.i rm -rf .dep -------- end --------
CLEAN SUCCESSFUL (total time: 546ms)
-------- begin -------- avr-gcc.exe (WinAVR 20100110) 4.3.3 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: p600firmware.c avr-gcc -c -mmcu=at90usb1286 -I. -gdwarf-2 -DF_CPU=16000000UL -Ofast -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/p600firmware.lst -I../common -std=gnu99 -fno-unroll-loops -fno-inline-functions -flto -fuse-linker-plugin -MMD -MP -MF .dep/p600firmware.o.d p600firmware.c -o C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/p600firmware.o cc1.exe: error: invalid option argument '-Ofast' cc1.exe: error: unrecognized command line option "-flto" cc1.exe: error: unrecognized command line option "-fuse-linker-plugin" make: *\ [C:/Users/pweber/Documents/pdwDevProject/Prophet-600/p600fw/common/p600firmware.o] Error 1
BUILD FAILED (exit value 2, total time: 250ms)
I will keep looking for a solution...
Bulghur
Bulghur,
I am using the same version of MHV_AVR tools as you. As you can see from your compile log, Netbeans is still pointed at the wrong avr-gcc.exe (WinAVR 20100110) 4.3.3). When you get things pointed correctly at MHV_AVR, you should see the following:
-------- begin -------- avr-gcc (GCC) 4.7.2
I wish I had more information as to how I got mine working, but like I said, the procedure I posted above is what I did and now everything works. I'm not sure where the reference is getting screwed up for you.
-Derek
GliGli,
Not to overwhelm you with too many posts, but I did a bit more detailed testing to see exactly when the "stuck voice" issue was introduced. I built each of your commits from March 02, 2013 and tested them on my P600.
Here's what I found:
"trying to make the tuner more robust / CYCLE_WAIT fix" -- WORKS CORRECTLY "adst: now using slightly mofified ENVGEN7B phase lookups" -- WORKS CORRECTLY "display: slightly slower scroller" -- WORKS CORRECTLY "DAC timing fixes (snappier VCA envelopes / trying to fix potential pr..." -- TUNING BROKEN - All keys play wrong freq "synth: adding per CV update" -- TUNING BROKEN - All keys play wrong freq "tuner: scale error estimation fix / tweaks" -- CONFIRMED TO INTRODUCE "Stuck Voice" issue
The stuck voice issue has persisted for me on all other builds you have made since.
Hope this helps.
-Derek
Hey,
That's interesting, even if I'm not sure what really brought that bug in that commit...
By the way, I still couldn't get back to p600fw, I was busy last weekend, and now I have too much work from my day job to do more coding when I'm home. hopefully I have a bit more time this weekend! (In the mean time, I'll still follow this thread tho)
Thanks Derek,
I give up on NB with MHV_AVR. I cannot figure out why NB will not recognise MHV_AVR the toolchain. I might have someone take a look at it over the weekend and help me get environment sorted. At this point, I can git clone, load the updated project into NB and look at the code.
I am now working on building the hex file from the command line and I am having a little more success using this route. I bung all the files from firmware into common and then make all. At this point I can see that MHV_AVR is compiling all 14 files (adsr through utils), linking them and then producing a 116KB hex file but I am getting a "mkdir.exe has stopped working" and I am trying to figure out what that means. I fake it and create a .dep folder but I don't know what else is missing. I load the completed hex file on the Teensy but it does not fire up the P600. By the way, it loads, i.e. it does not complain that it a build for another device.
GliGli, I understand your situation. I am fiddling with NBs, MHV_AVR and so on here and there and keeping notes but I am trying to get work stuff sorted before I go travelling again in April.
Cheers,
Bulghur
Bulghur,
Sorry to hear that you are still having issues with Netbeans.
Sounds like you got a good build by manually producing the hex. I think I know what you're doing wrong now though. You probably built the DEBUG version, which will wait indefinitely for a USB connection to a PC before proceeding to do anything on the hardware.
In order to remove DEBUG mode, you need to comment out the line #DEFINE DEBUG from /common/p600.h (line 8)
This will remove all of the debugging defines throughout the project. Try and recompile again through your manual method and you should see that the project will run on the hardware.
-Derek
Hey Derek,
BINGO! That worked!! It built successfully and I noticed the tuning is much faster. This version might be different from the one that I have that is super stable from 20130310 or thereabouts. I know that GliGli said that he had two different speeds. It plays but sputters sounds when the notes are idle -- some notes get stuck and slowly decay to lower notes over several minutes -- but no worries -- at least I am at a place were I can see what is going on. I am now off to find out why I get the mkdir.exe failure.
Many thanks Derek!
Bulghur
Hi GliGli,
First, once again -- amazing work! I cannot believe the progress you've made in such a short amount of time.
So, I just tested your latest commit from today (5/2) and have some more information to report regarding the two issues that seem to be occurring on just my P600.
First, regarding the "stuck voice". It turns out that it doesn't appear so much to be a stuck voice as a stuck filter. If the noise stuck on a certain tone comes up while playing, I noticed that I can clear it by doing the following:
1) Turn cutoff knob down to 0 2) Now all that is heard is noise at the same pitch 3) Press 6 keys simultaneously 4) Turn cutoff back up 5) "stuck voice" noise is gone 6) Press 6 keys consecutively 7) "stuck voice" reintroduced
I can reintroduce this problem over and over.
I made a crappy video of this that hopefully will help you understand what I'm explaining (my apologies in advance for the quality :)
Now, regarding the pitch bend issue - curiously, with your new display feature, you can see that my pitch wheel is showing values when bent below the middle position, but no matter where I calibrate the wheel, the bottom half doesn't do anything.
I added this in the video after the demo of the first problem, but unfortunately blocked most of the pitch bend wheel with my arm. What you will see though is that my pitch bend wheel changes values throughout the entire range. Throughout the demo, I show what happens as I bend from up to down and then I move the wheel around a bit in the middle to show when it begins to pick up and work again.
Since the video for this section is not very good, I will probably redo this if it doesn't show what's going on.
Please let me know if there is anything else I can do to help. I setup the USB debugging and can record some debugging if it will help you diagnose what's going on. Just let me know how I can help.
BTW, here's the video - http://www.youtube.com/watch?v=yqTzVyvK7rg
Thanks so much! -Derek
Hey derek,
I think I found why your pitch wheel is not working right, mine was misaligned, and I added a negative offset to its value instead of actually using a screwdriver to fix the misalignment, my bad ^^
GliGli,
Great, I will give it a try tonight or tomorrow and let you know if bending works now. Thanks.
-Derek
GliGli,
WOW! Just tried the latest commit (with the stuck voice attempt). You managed to resolve BOTH problems my Prophet was experiencing. Thanks so much and great work!
I will perform a longer term test sometime later to determine stability, but so far, looking good.
-Derek
Hi GliGli Thank you for your wonderful work.
and I m in trouble.... my P-600 is not work completely at your firmware.
Welcome message is seems good. Tune is seems good.
but 1.No responce for any MIDI message from MIDI IN. 2.And wrong sound (good sound at p-600 Original firmware)
I uploaded video of my test. please check it . and give me suggestion. http://www.youtube.com/watch?v=SH8jVw_j0Ao&feature=youtu.be ( text in video version 030507 is miss date. version 130507 firmware)
tohk
Hey tohk,
First of all, you need to add a wire going from pin C4 to pin E4 on the teensy, it's now required. You should have working MIDI with it, and it may fix other problems too!
Gli²
Edit: Just watched the vid, well it seems the basics are mostly OK (scanning the pots, driving the synth), it just seems like you need that additional wire (not having it usually causes display flickering, and I think you get that too).
Hi GliGli
Thanks! I added C4-E4 wire. I 've got MIDI responce , but only NOTE ON/OFF. No velocity,No Control change.
typedef enum { cpFreqA=0,cpVolA=1,cpAPW=2, cpFreqB=3,cpVolB=4,cpBPW=5,cpFreqBFine=6, cpCutoff=7,cpResonance=8,cpFilEnvAmt=9,..................
is this a list of MIDI Controle change number isn't it?
Display flickering is only video view. It will cause of difference of refresh rate between P600 to my VideoCam. When I see P600 display by my own eyes, there is no flickering.
I did warm up P600 for 6 hours and test again.but sound is still strange. for example Same pitch noice, as same as Dcarls7, ( when all OSC is off and Mixer A/B is zero) Strong beat at Octave note. Pitch move down like as [Pitch Env] or [glide](of couse modulation off , glide zero) and sometime, probrem situation is change after re-[TUNE]
Now my teensy has 4 wires. Need more wires? Send me more wire! :-)
tohk
Hello Tohk,
I had the same question for GliGli and he explained how it works.
Firstly, you must have your p600 in Preset mode.
Different types of CCs are offset from the ones in the enum:
You take the value, for example, cpVolB=4 and then add the appropriate control "focus" you require. For example, for course control of the VolB, it would be 64+4, and your course CC is 68. Set your CC controlling device to this number and tweaque away... Second example, Fine control of the Cutoff Frequency is 103, etc.
Hope this helps.
Hi bulghur! thanks!!
I tried now offset at preset mode. and Success!!
Thanks!!
tohk
I wonder why my P600 don't works well. My P600 is seems build or assembled in Japan. and serial number is 0106J, J is added. So Japanese version is not fit for this project? or Individual specificity probrem?
I upladed picture of circuit board,my P600. http://prophet-600.blogspot.jp/ Is it different form yours?
P600 Service manual discribed Modification for serial 0001-0113. my P600 is seems Modificated.
tohk
Hi tohk,
Hmm first, just to make sure, did you read that: https://github.com/gligli/p600fw/blob/master/README ? (it came with alpha1, I just added it to github)
I can see some problems your p600 might have, but nothing seems impossible to fix:
So, do you still have all those bugs? And, do you have more of them?
Still, I think they are all timing related, I'll try to build a version to test this.
edit: I built a few test versions, it would be interesting for me to know how they all behave, here they are: http://sfx.gligli.free.fr/zik/p600/dev/2013-05-10/for_tohk/
Hi GliGli,
Yes I read "README" . I test at most simple setting with consider difference of pot parameter .
few minutes ago Power OFF and Power ON..... It seems almost so good, but I tried again Power OFF....Power ON..... The situation returned.
just from now test version! thanks!
You mean all of them work ( 01 / 10 / 11 / 22)? or you got the old one to work?
I tested now! great!
11 and 22 is NO PROBREM!! works fine. THANKS!!
01: no ugly noise. but Scale pitch is little wrong (beat at octave note). OSC B FINE is 3 step only. 10: when Key on...NO pitch Sound
11: Scale pitch is good(no beat at octave note). OSC B FINE is work fine. 12: it seems same as 11
(I did not test all function.)
POWER OFF/ON test OK.
POWER OFF/ON test which wrote before is version 130507.
what did you modify?
Hehe cool,
Basically, I added some wait states in analog synth driver code.
Bad news is they will make pot refresh rate lower at full load (all voices playing), but well, compatibility first!
edit: 11 should be faster than 22 by the way, better use that one!
hmmm.... my P600 is stupid..
version 12 is most waited version?. I will continue test for more days.
Heheheh i'm happy :)
Adding those wait states caused the refresh rate of pots to become too low, this forced me to review some code for speed issues, and I found a big one in adsr and lfo!
Speed is now actually better than before I added those wait states, so thank you for having a lazy P600 ;D
I built a new one with the changes: http://sfx.gligli.free.fr/zik/p600/dev/2013-05-10/p600firmware.hex
GliGli
I'm happy for YOUR happy. I'm afraid your care for my trouble.
newest firmware is no problem, works fine at my stupid lazy6. sysex recieve is also no problem.
I think.... He is not wrong... he resembled me :-)
Bonjour GliGli
Lazy6 is works very fine.
[Unison] is implemented and works fine. and [Tracking Unison] is implement?
Hey,
Cool!
What is tracking unison? is it glide?
Do you have p600 operation manual? if you have,please see 2-2 and 3-5.
or..... [(normal)Unison] all six voices will be assigned to the one note.....this is implemented.
[Tracking Unison] Play and hold any chord ,then switch UNISON TRACK on, This "latches" the chord, so that any key we play becomes the root, while the upper intervals follow along.
ex) 1.play chord C - E - G - C and hold and UNISON TRACK on (latched chord).
I uploaded a video which sample of UNISON TRACK. http://youtu.be/WPw2DnrpXHQ
Ok, I can't view the video right now, but it looks like a chord mode, I don't have that yet tho.
Hi,
First off, I wanted to say that I am thoroughly impressed with the progress you have made so far. The current "alpha" build is playable and sounds great. I was directed to this project from Minisystem's blog -- I had been following his project and provided small bits of consulting from time to time during the development work he was doing.
Just wanted to provide a few bits of feedback / comments about the current build. I have a working Prophet 600 and am excited and happy to provide feedback and testing as you progress, so please let me know if there is anything specific you'd like tested.
The main synth engine is working quite nicely -- the only things I have noticed that are easily quantifiable at the moment are:
Also, I noticed that you use NetBeans as your IDE and MHV_AVR_TOOLS_20121007 for compiling / etc. I set this up and am having some difficulty getting your p600firmware project to compile.
When you get a moment, it would be very helpful if you posted some basic setup instructions on how the environment is configured.
Very excited about the project - thanks!
-Derek