MSX Synth - Status update

MSX Synth - Status update

by snout on 14-06-2012, 16:50
Обсуждение: Software
Теги: MSX Synth, Utilities
Языки:

Paxanga have updated their website with more information on MSX Synth, the utility that turns your MSX into a synthesizer. The synthesizer currently supports PSG and SID (through PlaySoniq. Changes that have been made so far:

  • Changed format from .ROM to .COM, so that the utility can be used directly from MSX-DOS
  • Presets (patches) and sequences of notes can now be loaded from (and saved to) disk
  • Added a 64-note step sequencer. Currently supports up to 100 different patterns in RAM
  • Added "hard restart' for the SID, which improves accuracy on attack after releasing a note
  • Added a live performance mode, which lets you play the clips in the memory on-the-fly

A new beta version has not been released yet, as Paxanga is currently restructuring and optimizing the source code. Amongst other things, experimental SCC support is to be expected!

Relevant link: MSX Synth - Status update

Media browser (3)

  • MSX Synth - Status update
  • MSX Synth - Status update
  • MSX Synth - Status update

Комментарии (43)

By Sander

Founder (1871)

Аватар пользователя Sander

14-06-2012, 18:01

Cool news!!

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

14-06-2012, 18:20

Thx Smile I should upload some sound demo, after the RU.

By Jorito

Mr. Ambassadors (1790)

Аватар пользователя Jorito

14-06-2012, 18:50

Yes, pleasse do! I'm curious what it sounds like Smile
Maybe you can even make a movie out of it?

By snout

Ascended (15187)

Аватар пользователя snout

14-06-2012, 19:14

The interface looks great! Looking forward to the sound demo/video!

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

14-06-2012, 20:56

Jorito wrote:

Yes, pleasse do! I'm curious what it sounds like Smile
Maybe you can even make a movie out of it?

Now it sounds better when playing a sequence. When notes are close, the hard restart makes the next note be played clear most of the cases. Without it, sometimes it's almost missing cause the attack doesn't behave ok. I read that newer SID's (8501??) didn't have this issue (or wasn't so noticeable...)
It is not much useful when using direct note play (as a synth) , as you can't predict when you gonna hit a key. So the only thing you could do is to delay the playing of the note, that would case some more "latency".

I wanted to make a video, but can't record with bluemsx (well, I can but without sound, of course ^^ ). So I tried my video capture card (in fact is USB TV card, hybrid, analog digital, with a S-Video input. And it doesn't work properly. The image scrolls down, slowly... so no way to take a proper video without making the viewers dizzy. Must be something about refresh... or sync, dunno. I even tried the analog TV tuner and conect throw RF. The same. You can tune the channel, but does the same bothering scroll. I think I used old analog tv channels with this TV card, to watch TV, and this didn't happen. Maybe cause I was using the original card tuning software. But this soft (Pinnacle) is crap and takes too much space on my system partition. So I think some day I'll try with my photocamera, that is not much anyway.

I also though about record video on bluemsx, while playing the same sequences on a real MSX and recording the real audio, and then mix them. But that needs some time LOL!

By Huey

Prophet (2694)

Аватар пользователя Huey

15-06-2012, 08:22

Or use openMSX. It's recording does work on that one. I had the same issues.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

15-06-2012, 09:20

Huey wrote:

Or use openMSX. It's recording does work on that one. I had the same issues.

Would be the same, as openMSX doesn't support SID. So NO sound.
BlueMSX recording works. Recording (with any software) from real MSX via USB tv card is the problem.

By sinus

Expert (85)

Аватар пользователя sinus

15-06-2012, 10:14

Nice to have fresh news about the project that will turn these old chips into live performance instruments since this is, at least, what these machines can be useful for in modern creation life Wink . It looks very promising, and now instruments can be saved! In first Beta, instruments were not always well tuned: frequencies were not accurate from an octave to another, making it tricky to be tested fully among other instruments. I hope an upcoming release will fix this little problem so that msxsynth will better find its place amongst others.
I don't know if a simplified/visual live performance mode is planed or even possible: ie a colorful screen that can be checked by the musicians who are a little bit far from the screen (using the MSX2/Playsoniq's mode 4 and VDP palette for highlighting areas instead of sprite arrows)? I think of live performers playing, for instance, the guitar, therefore standing at a certain distance to have a quick glance at times, with only one hand available to quickly change a parameter or launch a clip on-the-fly etc... In that respect, making use of the midi controler's buttons would be useful as well, but I don't know whether a 3.57 Mhz Z80 based machine is still able of doing so much.
Make it simple as it is now is nice anyway, it's already all good! Just asking.
sin

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

15-06-2012, 11:07

Thx sinus!
I took note frequencies from a SID web. Tho i think it said there was also an official note frequencies at the C64 user's manual (or something like that...) So there is more than 1 table. My idea was allow both (or them all) and make the user select his favourite table. But for myself, I can't see difference between a DO or a LA or whatever Big smile Any idea to get the right tuning is welcome!

About live perfomance mode, interesting ideas. MIDI control was planned and I think the Z80 will do enought (tho it never will be perfectly accurate, I'm afraid....) By now all the live perfomance stuff is at very early stage. In the future I want SID, PSG and SCC working together, in some way. So there's much to do yet. And there different ways to use the chips together, lot of combinations... Hard to choice.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

15-06-2012, 11:18

At this point you can imagine it's a lot of job, so it goes slow. I want to make it the more modular I can, in the future. So once you have the main control software, you can just add sound modules (PSG module, SCC module, SID module...) For that I still have to re-arrange and reorganize stuff. By now all is 1 big module with everything. Far from optimal Eek!

By sinus

Expert (85)

Аватар пользователя sinus

16-06-2012, 18:25

MsxKun wrote:

At this point you can imagine it's a lot of job, so it goes slow.

Sure, I perfectly understand, and it's already an achievement as you did something no one, to my knowledge, has ever done before. Take any time you need, I just keep on trying to provide you with my very humble help.

----- about frequency values -----
I've checked again the behavior of the 1st Betas: on PSG side there is no problem concerning tuning, but on SID side the problem is really clear. From an octave to another one, but also between two notes. It would be logical to look for wrong frequency tables, maybe also errors related to the internal clock, I don't know.

Example (with preset 2): let's check the highest MI-FA-SOL-LA sequence (or E-F-G-A if you prefer) on the right of the screen:
MI-FA (or E-F, normally a half-tone) sounds a little bit more than a 1/2 tone to me.
FA-SOL (or F-G, 1 tone), sounds ok (or almost)
SOL-LA (or G-A, 1 tone), sounds even more than one tone...
Altogether I can't imagine all these inaccurate values would lead to proper octave behaviors. I cannot figure out the possible reasons. Is there something special to know about SID in Playsoniq and frequencies? (Supersoniqs team, is there any secret you're still hiding? Smile )

Be careful: different presets seems to have different types of inaccuracy -> one of them (preset 03) is totally out of tune, almost playing RE-MI-FA-SOL instead of MI-FA-SOL-LA, so nearly one tone lower. Some reasons may be preset-related.

It seems to be easily fixed, isn't it? Despite that little drawback, the SID presets already sound really good, very powerful.

----- some more bugs in 1st Beta: ------
- Caps-lock must be on in order to use numbers keys to play half tones (# and b) on my Azerty keyboard -> Caps-lock also makes the hand sprite disappear from the piano roll.
- SIDsynth : when releasing a note, the sound doesn't totally stop, the note keeps on playing at a very low level (maybe you already fixed it with reseting the chip?).

----- one more suggested features -------
A metronome (when using clips in live mode):
simple but maybe essential tool: a metronome would let the live players know of the computer's tempo... this way, the whole band is able to get synchronized with any one-the-fly clip, otherwise I doubt it can even be possible.
- an audio metronome (whatever noise) is useful when practicing: eyes on the instruments or anywhere else, but hardly on the screen
- a visual one may be enough, especially during live performance (margin switching between 2 colors (ugly?) or whatever can be seen from a certain distance).

------------------------------
Configurations used for tests :
MSX2 Philips 8250 / 1024ko RAM internal / CF card reader (Dos 2)/ Playsoniq
previously: MSX1 Yamaha CX5MII / CF card reader (Dos 2)/ Playsoniq /SFG-O5
No MIDI in because both slots are already used by mass storage/playsoniq expansions (and SFG-05 MIDI in is currently not supported).
So: computer keyboard used instead of MIDI controler for the time being (what a shame Crying ...)
My keyboard layout is AZERTY (french one): therefore since the SIDSynth is obviously based on QWERTY layout, it's a little bit messed up for me but I can manage with it.

hope it helps Wink
Sin

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

16-06-2012, 22:52

@Sinus: I read all the text but I'll re-read it again tomorrow properly, cause I'm just back from the Barcelona MSX Ru and I'm kinda KO Big smile So I reply two quick things and tomorrow I'll reply properly, but thanks in advance for all the reports/suggest!

- Strange all the frequencies stuff... Specially preset 3 of old beta is (at least the copy I found.. all square wave, no detuning.. quite plain...) If I record a wav of the notes, is there any tool that can say "this is a DO, this is a MI", or so?
- AZERTY keyboard... shouldn't be too hard to fix (I hope!)
- Caps stops the hand. Yup, Caps stops all vram data dump. This way you get more cpu time and it minimizes the MIDI data loss. Without it, it's easier to find you press a key just when CPU is sending data to VRAM, so ... bye note.
- Releasing note... To be true, not sure if this is an issue of the SID envelope or mine. On the new step sequence playing, I had to add the Hard Restart cause without it, the Attack of some notes didn't go really well when notes are close. With Hard Restart it works better (that's a SID trademark, Hard Restart is well know on SID replayers). Maybe there is some in the release too, dunno, will have to look, cause could be easily some bug from me Big smile
- Metronome. Will have to think about it.
- SFG.05 MIDI is internal Yamaha MIDI or external cartridge?

Btw... did you use GoatTracker? A tracker for PC (dunno if there is version for Mac or Linux), that emulates SID. Of course it's emulation, but if you think their notes are more tuned, I could take a look to see if there is any info about the frequencies it's using (if that has any sense on a emulation.... probably not).

More about it tomorrow, need a rest! Big smile

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

16-06-2012, 22:54

Btw... showed a bit of the current version at the MSX RU. I was testing the filter. It seems the Cut Off effect in the SID was more noticeable than in my SID Crying

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

17-06-2012, 14:51

Found some more note tables. Also, a note table for 60hz. Will test them.
Would be easy to add an option to select the note table you wish.

As I have to reorganize code, I'll take a look at the preset and the playing routines, to be sure there is not wrong data read somewhere that can cause wrong tuning at some notes.

Metronome and other nice features will have to wait a bit until basic stuff works properly, but I'll think about it and will do my tests...

And, the sad thing. My filter Sad Been testing it again today, same way I did yesterday at MSX RU with another Playsoniq cartridge. There is almost no noticeable effect, whatever the cut off value you set. I play a note and change Cut Off value from minimum to maximim as I did. Yesterday I noticed the change (slowly). Today.. nothing. So.. to Supersoniqs people, would be safe to unsolder the SID (why didn't you put it on a socket Question ), put the proper socket and add a properly tested SID on it?

By sinus

Expert (85)

Аватар пользователя sinus

17-06-2012, 20:26

MsxKun wrote:

is there any tool that can say "this is a DO, this is a MI", or so?

Basically it's an electronic tuner: simple guitar tuners can be very cheap but generally restricted to the 6 guitar strings (Mi La Re Sol Si Mi / E A D G B E), most digital pedals (like Boss GT series...) would include an accurate one with the name of the notes.
As for PC software: I've never used it myself, I've just found a couple of freeware and had them tested a little for you:
- Wtune v2.3.2.0
easy to use right from the start, seems accurate and clear, BUT shows the identified note on a little score on the left (instead of writing the name)
- Audio Tunner v0.9. It uses wave graphs but does the trick. Best options for you would be:
Step 1 : "Piano" as "instrument to tune" (so that you'll have all the notes)
Step 2: check Auto note select -> if recognized through Mic in, the name of the note would appear in "Step 2" (and target will be heard).
(check Advanced/Show frequency range if you want a less messy graph)

To enable any tuner to properly analyze, a clear sound with no effect is generally way better.

Other tools are there (all freeware) but mostly aimed at guitar players.

MsxKun wrote:

- Caps stops the hand. Yup, Caps stops all vram data dump. This way you get more cpu time and it minimizes the MIDI data loss.

Very good idea, the sprite hand is useless when using a real Midi controller anyway.
Once Azerty keyboard layout will be implemented, everything should be fine (AZERTY keyboard expects Caps for numbers otherwise it returns special caracters and accents, QWERTY immediately returns numbers I think)

MsxKun wrote:

- SFG.05 MIDI is internal Yamaha MIDI or external cartridge?

Not really internal since the SFG.05 is connected to a special internal Slot, that is actually nearly a standard Slot except 10 more useless connectors. Hence, this module can be connected to any MSX via an adapter (just a PCB). Infos are here.

MsxKun wrote:

did you use GoatTracker?

SID in Playsoniq, along with SIDSynth, really is my first experience with this chip. But I will check GoatTracker (even if I'll miss the SCC waves ;) )

Hope your filters failure will not be a major problem in your developments, it seems to be a common problem with the Sid.

Sin ;)

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

18-06-2012, 11:39

Heyas.

Tested some different note table. Well... freqs are differente, so I guess the notes sounds different than the old one xD If you want, mail me and I can send you the new file so you can play and decide if the are in tune...
The code just dump the freq value to the proper SID registers, unless you set some detune. But without it should be in tune. Tho, it's better to test with saw wave, cause to my ear, the tone of square wave (that doesn't seem so square to me compared with PSG one) changes a bit when you change de Pulse Width...

Anyway I'll check that Audio Tunner, case I have some soft Wav2Midi that translates notes from a wav file, but it needs a note reference or so first. So probably if the reference note is not accurate, the conversion will be wrong.

About my SID filter... to be true what it doesn't seem to work is not the filter but the Cut Off. If you set up the filter you can notice it's filtering, but you can't change the cut off, it's always almost the same... Resonance works ok. Anyway, activating LP filter for the 3 OSC at once, most of the times causes the sound to be really relly low, almost muted.
Well, I can still developing the soft. When i'ts time to apply some modulation, I will notice if you route it to the Resonance, I won't notice if you route it to the Cut Off... I'll just have to imagine it's working Big smile

By hit9918

Prophet (2932)

Аватар пользователя hit9918

20-06-2012, 07:15

About note tables.
Find formula to translate Hz to SID register.
Start out with 443Hz.
For every halve tone multiply with 12th root of 2 = 1,0594630943592952645618252949463 .
Done that 12 times, you end up with double Hz which is an octave.

This is the general purpose table, others may do some nicer chords but are tied to some tonart. Can't blindly use them.

a PSG is in the same machine? Then do same Hz table for the PSG!
It is the PSG in MSX? Then start with that one, formula is clear.
Then gonna see whether it is a PAL or NTSC SID.

A PSG SCC track, will that work with an MSX getting plugged Nemesis 2?

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

21-06-2012, 13:09

Many people made the calculations before. I have 3 or 4 different note tables. The equal tempered note table should be OK. Its here (and sinus should be checking it... Hannibal ) http://www.waitingforfriday.com/index.php/Commodore_SID_6581...

At some point I'll let the user choice his favorite table.

For PSG, it's in any MSX machine. And PSG version it's done since long, and it's using the PT3 replayer note table (one of them...)
The SID is not PAL or NTSC, afaik, the machine is :D By now all my test are done using 50hz MSX.

About SCC, works with any SCC plugged.

By MäSäXi

Paragon (1884)

Аватар пользователя MäSäXi

21-06-2012, 15:01

...but there are two kinds of Playsoniqs because some Playsoniqs have older SID and some have newer version. How you hear SID tunes/sound effects depends on which SID is used to play it.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

21-06-2012, 16:15

Yep, mine is 6581.
As I read, mostly differences are that they fixed some bugs on the new SIDs and changed a bit the waves, and that the voltage of the filters is different. Can affect the sound (some people says it's clearly noticeable some people says is barely noticeable, and even on a same SID type, it can be different, depends of the filter state -cries again-), but shouldn't affect much to the tuning.
Anyway, again, I wouldn't notice any change Big smile I need somebody else's ears...

By sinus

Expert (85)

Аватар пользователя sinus

21-06-2012, 17:36

MsxKun wrote:

sinus should be checking it... Hannibal .

So does he... Wink but it's even more frustrating as I can't understand why it is still, here and then, untuned. It unfair to spoil so nice sounds that way...

--- test of real midi controler ---
-> sorry I took time because I had to gather my REAL MIDI CONTROLER / MUSIC MODULE and plug the whole thing while launching Sidsynth from a FLOPPY (CF CARD replaced with Music Module).
Now it's serious: a REAL pleasure to have real time Sid synth from an MSX with Midi controler.

The conclusion is clear: very nice! Much much better than using the computer keyboard. And for the first time (I think?) I am using the Music Module Midi In!!! (25 years later...)

It's really reactive:
- I can't feel any lag when playing (one of the most annoying things even with some modern PC plugged to Midi devices, not on MSX! Wink )
- till now I didn't experience any note loss: I just have to be sure one note/finger is released before playing the next one. It's totally usable without risks (it's a way of playing). Better would be to consider the next played note instead of keep playing the previous one: I don't know if it's possible since MSX is busy playing? Sometimes it seems it does... Have to try it more.
- Very nice sounds again, and now the whole octaves are accessible!
A pleasure!...
------------------------------------------------------------------------------------
...except: these very frustrating frequencies' mapping problems!

I have to come back more in detail with the lowest octave, which is the most problematic.

Can you please check the 2 values on octave nb 4: FA# (F#) and SOL (G), they ALMOST sound the same note, basically there is no SOL (G), but 2 FA# (F#). Frequencies are very very close.

Let's have a look at what the SID document shows around F3# and G3 (I hope I am dealing with the right octave):
40 E3 164.81 2765 0ACD
41 F3 174.61 2930 0B72
42 F3$ 185.00 3104 0C20
43 G3 196.00 3288 0C08
44 G3$ 207.65 3484 0D9C
45 A3 220.00 3691 0E6B
46 A3$ 233.08 3910 0F46
47 B3 246.94 4143 102F

I think there is a mistake: G3 should be $0CD8 and not $0C08... it looks like an OCR bad recognition...
(By the way, I guess values should always go up by steps of almost the same values, and there it goes down).
I don't know if you used this table, but it should explain a few wrong frequencies: a double-checking should be relevant.

The strange thing is that you said you replaced one table with another one... mm...

Anyway, I keep on testing, and hopefully will come back soon with new hints. Nishi

Sinus

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

21-06-2012, 20:30

Lol! Glad you finally used your MM's MIDI-IN! I'm happy you enjoyed the experience Big smile
There is some note loss if you play enought quick (or, instead of pluging a MIDI keyboard, you plug another MIDI device that generates notes -like my Arduino or a PC with a sequencer- does). That's why I made the CAPS trick, to assign more resources to note reading, with the loss of no screen dump Big smile

Not sure about this: "Better would be to consider the next played note instead of keep playing the previous one"

Theorically if you press a key and without releasing it, you press another key, there is no Gate Off, but the note changes (freq does) or it should!! Indeed, it could stop playing the first note and start playing the 2nd one as if the first key already was released... I like it the way it is now, cause you can do the Legato(?) effect. But it could be selecteable. Later Big smile

About the damn notes of hell... Evil gonna check that mistake. It could be that, as I found another value with a zero instead of a D. The table i'm using is the equal tempered (pasted the link before) Finally i'll have to calculate the freqs myself as hit9918 said Tongue Oh well.. MSX will do...
And yes, I replaced the tables and the values were clearly different. Anyway, shortly I'll record some sounds and I'll do a note scale and will upload it, so more people can check it easily.
By now I'm busy separating the Clip/Step Sequencer module and the Synth module. This way, the Clip/Step Sequencer (with all the midi framework and other stuff) will be the same for all the chips, and the Synth module has only the GUI, chip sound process and output and other specific routines. Now i'm adapting the PSG version to this, so soon (hopefully) you can use the same clips on the SID synth or the PSG synth.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

21-06-2012, 20:38

Aha! You were kinda right! The same value is in decimal, so when converting, you see the hex value is wrong and the value you said is correct Smile Thx!
And as I'm checking the table, I already found some more mistake: $016E,$0184,$018B,$01B3
This was a silly progresion... From $016E to $0184, ok, but then.. $018B?? Again, decimal value says it should be $019B Smile

Gonna keep checking.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

21-06-2012, 21:03

Woah, found some more... Exchanging 0<->D or 8<->B seems to be common there Big smile

By sinus

Expert (85)

Аватар пользователя sinus

21-06-2012, 22:18

hit9918 wrote:

For every halve tone multiply with 12th root of 2 = 1,0594630943592952645618252949463

F3$ 185.00 3104 0C20
G3 196.00 3288 0CD8

$0C20 (= 3104) x 1,0594630943592952645618252949463 = $0CD8 (=3288) correct Running Naked in a Field of Flowers

Hope this will solve the pb totally... but I doubt it. The lowest octaves really sound strange, I thought values in the table would certainly be totally wrong because of that... but no: calculation returns the same results.
Starting from A4 440.00 7382 1CD6 , then dividing by the coefficient given by hit9918, I quickly checked the values of the very first octave: almost same results in the table and through calculation.
Still, when playing, most of them really sound out of tune. So apart from mistaken printed hexa values, dark forces may still be at work...
I used the Windows calculator which accepts the full coefficient, except the very last "3"... I guess this cannot be the reason for significantly wrong results oO ...
Up the table it is said: values are given for 1Mhz clocked SID... what about Playsoniqs?
The Playsoniq doc will help in case I have to check values manually.
Let's wait first to check how it behaves with corrections.
Sin

By hit9918

Prophet (2932)

Аватар пользователя hit9918

21-06-2012, 23:24

There are endless SID manuals on the net.
A SID cartridge manual first and foremost should state in line 1:

How is a register written with OUT.
What is the input Mhz of that SID.

This reminds me to reading some GFX9000 pdf, and no mention to what port the 9990 is actually wired.
The figure that will be found in no chip manufactors docs... should be listed in line 1.

By hit9918

Prophet (2932)

Аватар пользователя hit9918

22-06-2012, 00:29

PAL vs NTSC, on C64 that means different Mhz. 1.023Mhz / 0.985Mhz = 1.038 . 4% is much in music.
And, who knows, maybe on a MSX cartridge the Mhz are again different, maybe 3.57Mhz derived?
Then all tables on the net are wrong Tongue

The problem is even bigger with the catridge than on C64:
When NTSC C64 pitches 4% higher, no problem if you dont have the absolute ear.
But when a PSG does add to the scene in different pitch, then everyone will say ouch ouch, something wrong here.

On google I read a story of an american 440hz based tuba having problems with the 443Hz euro tuba Big smile
What base does the typical electronic equippment use?

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

22-06-2012, 10:34

hit9918 wrote:

PAL vs NTSC, on C64 that means different Mhz. 1.023Mhz / 0.985Mhz = 1.038 . 4% is much in music.

http://codebase64.org/doku.php?id=base:how_to_calculate_your...

I think i'll finish making and option to make your own note table and using it :RNFF:

By sinus

Expert (85)

Аватар пользователя sinus

22-06-2012, 10:43

I'm a little bit short of time today, but a quick answer:
@msxkun:
- I've already tested the corrected tables, it seems I can't find any silly notes here and then, this is a good point.
- But wrong gaps between frequencies remain, my ears still tell me there is MORE than a half-tone between notes. Scaling from octave 0 to octave 3 reveals a lot of distortion. It really seems like a wrong formula/calculation, actually as hit9918 says certainly due to hardware specific clock. Let the MSX calculate frequencies would be a way to correct the whole just changing the formula. Otherwise I can try to find frequencies just with a couple of basic lines: a PSG-SID tuner (playing the same note on both hardware / PSG as reference & SID as target to be tunned) maybe enough to build a table specific to the system if needed.

And ok, I know what you mean about notes loss. I thought it was sometimes due to the fact my finger was still on the previous note when playing the next one. Now I understand better. On the whole it's quite satisfying anyway.

@hit9918: true, 4% is a lot in music, and it may be enough to explain what I hear, especially on several octaves since it cumulates errors. In the given table , values seem to have been calculated from a 440hz reference (I applied your coefficient from there, same results).
The Playsoniq is actually well documented and allows SID clock frenquency adjustment for compatibility with C64. As far as I understand, the 3.57Mhz system main clock is independent from the 1mhz (or so) SID clock.
In page 20 of the manual, register &h1F is described: SID clock can be switched between NTSC and PAL values through bit 4. So if it's only that, that's easy to just change this bit.
(I won't be able to test it today, but I'll do it asap)
Sin

EDIT: @msxkun we posted at the same time, good news! But maybe inquire on the &h1F register can be wise anyway since it's just one value to change.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

22-06-2012, 13:16

Never touched $1F register, so it should be set to PAL, but never knows... It worths to take a look, specially being so easy to change it.

Would be interesting to make a simple BASIC program that calculates the notes, shows value AND plays the note. Just that. And then see if it sounds ok. It's easy to do.

By hit9918

Prophet (2932)

Аватар пользователя hit9918

22-06-2012, 21:29

"Scaling from octave 0 to octave 3 reveals a lot of distortion."

If you are listening versus another sound device, then a clock error will spread the more you are in different octaves.
But with a clock error, just listening to SID alone, all its octaves should still sound same.
A wrong/unknown clock will pitch the whole chip different, BUT the relationship between all notes is still same, an octave is double frequency, and the other notes in the octave too sit in their right place.

By hit9918

Prophet (2932)

Аватар пользователя hit9918

22-06-2012, 22:00

From the BASIC manual:

" To create a frequency other than the ones listed in
the note table use "Fout" (frequency output) and the following formula to represent the frequency
(Fn) of the sound you want to create. Remember that each note requires both a high and a low
frequency number.
Fn = Fout/.06097 "

So maybe register = hertz * 16,401508938822371658192553714942 .

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

23-06-2012, 12:56

Heyas.

Recorded notes from Octave 1 to Octave 7 and uploaded here: http://soundcloud.com/destroythecore/sid-note-tests
Sorry for the bit of noise...
I'm checking now and Tuner software says Octve 4 to 7 are OK. But from 1 to 3 there is some trouble. I keep checking.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

23-06-2012, 13:48

Crying Notes that were OK before, tuner says they're not after my SID starts to get warm. It seems this chip it's not very stable.

By sinus

Expert (85)

Аватар пользователя sinus

23-06-2012, 13:59

MsxKun wrote:

Would be interesting to make a simple BASIC program that calculates the notes, shows value AND plays the note. Just that. And then see if it sounds ok. It's easy to do.

Right, I will, maybe not with calculation but just showing values to tune up SID vs PSG:
1 - choose PSG note
2 - tune Hi & Low frequencies SID values
3 - play SID vs PSG to check the tuning
Please don't expect anything more complex Eek! , just a simple tool using cursor/space

hit9918 wrote:

But with a clock error, just listening to SID alone, all its octaves should still sound same.

I think you're right, I had a doubt though, I also guess it should result in higher/lower frequencies on the whole, not untuning. So &h1F register may not be the solution (it's still easy to check anyway -> I've tried in Basic but it doesn't change anything once Sidsynth is launched: is &h1F initialised by SidSynth?).
So a mystery remains. We'll find a solution.

Sinus Tongue

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

23-06-2012, 14:43

@sinus: Tuning the SID comparing the tune with PSG can be ok, same as change values until the Tune It software says the note is correct. But... that would be if your SID and mine sounds the same! Big smile This damn chip is so silly that any SID revision or even the same model can sound different (tho it's shouldn't sound much much different) Anyway it worth the try.

I'm using the Tune IT VSTi plugin. It seems to work fine and it shows the note and the frequency and I can compare both with the nothe table. And, the more important, I tried with a c64 plugin so the fake SID shows always the right frequencies, so a C3 at the fake SID is always on tune. Not the same with real SID tho :S. By now Octaves 4 to 7 seems fine, except when the SID starts to get warm.... sighs..

I'm also gonna try the notes from BASIC, just to be sure there is no bug in the soft that I can't see...

I'm doing more tests right now. Trying the $1F register, that is NOT initialised by SidSynth at all...

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

23-06-2012, 14:59

Wait!!!!!!!! Stop everything! Tongue

I quote myself

Quote:

I'm also gonna try the notes from BASIC, just to be sure there is no bug in the soft that I can't see...

I didn't need to use BASIC, just to check the code with the right mood and without mental darkness.
I took a look at the Detuning routine and it's not OK. Well, routine could be... but DETUNE values aren't. If you take a look at the PSG version, default detune value it's $80, that means 0 detune, so less than $80 is negative detune and more than $80 positive detune... At SID version, default values are $00 so it's always detuning!! Sad So sorry a lot. Well, at least we corrected the note table for good and learnt some stuff...

Anyway I should put the detune value more clearly and specially I also noticed the detuning is absolute, while on lower octaves it should be less (i think). So, that's the 2nd thing learnt from this.

By sinus

Expert (85)

Аватар пользователя sinus

24-06-2012, 12:46

MsxKun wrote:

Wait!!!!!!!! Stop everything! Tongue

Too late, the process is on! Check your email, the poor little SID vs PSG tuner toy is in... Well, testing a chip vs another is never a bad thing, I think it's relevant anyway.

Really nice that you found the mistake, it had to be corrected. I've tried it and the result is clear: My ears don't go twisted anywore, I dare go to the realm of lower octaves again, every single wave sounds like a pretty bird! Running Naked in a Field of Flowers
So, the problem looks over, Sid is tuned![Well, I think so]

Now, I've just programmed the SIDvsPSG tunner in plain Basic lines (sorry, a language I hardly know, 25 years I didn't type in anything again...), and sorry it really is draft and slow, but I think it works. Eek!
I should actually add frequencies switches, for Pal & NTSC, every possible clocks, but I can't right now.

I don't know whether there is something specific to every individual machines/chips (like SID...), but the first result I found still raise a question. oO
I only tested the A (LA) on various octaves, only the Hi(left) is reliable, the Lo(right) is an -acceptable- approximation than can be tuned more (SID allows very accurate tuning).

Here are the results (the "table" here refers to the mistakous one on the SID website):

Note__Table__SIDvsPSG Tuner results
A1___039B___03B0
A2___0735___075C
A3___0E6B___0EC7
A4___1CD6___1DCC
A5___39AC___3B60

So, it's somehow regular, but the difference is clear enough. The table values DO NOT return same frequencies as PSG in plain Basic, difference is not acceptable, too obvious. In an orchestra, msx'PSG & SID would be a mess... Crying

What does that means? SID and (internal) PSG are fundamentally out of tune? My program is buggy? And what about that SID behaviour you noted when it gets warm? Shocked! ...

Using the SID vs PSG Tuner value for A4 (&h1DCC), starting calculation for A in other octaves: theoretical values (using hit9918's calculation) quite correspond to values found manually with the tuner.

Want to see?

Note_SIDvsPSG_Theoretically*
A1___03B0___03B9
A2___075C___0773
A3___0EC7___0EE6
A4___1DCC-> 1DCC (reference)
A5___3B60___3B98

(*so, every octave correspond to a note's frequency multiplied 12 times by 1,0594630943592952645618252949463 -> see hit9918)

The biggest mistake "my ears" made is on A5 (highest), and the error is only &h38 on the Lo value, which is hardly audible.
The least error is on A1 (lowest): a diffrence of only &h9 on Lo.
Test were fast, I could tune better, but results seem good enough to confirm the possibility to use hit9918 calculation.

Nishi Conclusion: I'm not sure but it would just mean that:
- SID & PSG in the system have to be tunned to determine THE REFERENCE value (ie: same A4 on each side -> consider the found SID value as reference)
- THAT REFERENCE VALUE would be enough to find other notes' values using hit9918's calculations.

So, before SID goes live, it would just have to be confirmed (or proved wrong), and have to see if different chips on different machines behave differently.

hope I'm clear enough and helpful... Wink
Sinus

By hit9918

Prophet (2932)

Аватар пользователя hit9918

24-06-2012, 20:54

"I should actually add frequencies switches, for Pal & NTSC, every possible clocks, but I can't right now."

Except for unexpected surprises,
the MSX cartridge needs no changes PAL vs NTSC like C64,
if you got it to run right, it will run right on all MSX.

It got nothing to do with the MSX VDP, actually the C64 is strange, the whole system got different Mhz on PAL vs NTSC.
e.g. different cpu speed.

By hit9918

Prophet (2932)

Аватар пользователя hit9918

24-06-2012, 22:17

It is not clear what is the problem, first you say it is all fine, then you say there is a problem versus "SID table"?

Do not compare your-table versus googled-table, the googled tables are all wrong.
I mean it seriously. A googled table is useless without these additional specs known:
Is the table C64 PAL MHz or C64 NTSC Mhz.
What is the MHz of the cartridge SID Tongue
Did the table maker use 440Hz as base.
Did the table maker use 12th root ratios.

So, not googled table is boss, but PSG is boss.
The reason is that the notes hz is boss, and PSG is the known chip on which you reliably make Hz.
Listen to PSG vs SID. Put SID in square wave mode so it is same.

Because of accuracy issues, both chips may still be off.

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

25-06-2012, 14:50

I think even SID square wave is not even similar to PSG square wave Tongue

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

01-07-2012, 19:47

I want to show the stuff at next chiptune stage from Club Sprite
Too bad i'm totally unuseful to play the stuff myself...

By MsxKun

Paragon (1124)

Аватар пользователя MsxKun

07-08-2012, 14:37

I was changing a bit the interface, making it more colorful...
Also, did a try with MSX Music batteries INSIDE the same MSX synth, loading this as a module.