Jump to content

Sauraen

Recommended Posts

Both Tom and Aly had been active over at Chipmusic.org in the past but for diffierent reasons both have been silient for a while. I'll help anyway I can and Aly is a good guy but busy, building a boutique pedal and VSTi shop.

I agree that emus are limited compared to actual HW, sometimes in major ways. Choices have to be made based on what is known and what can be done by softs. The GenMDM interface does kind of suffer from this in a reverse way, I think,  because of the limits of the YM info when Tom started the design. There were some updates based on Aly's suggestions as newer info came to light over at Spritesmind, but improvements slowed/stopped as outside issues clouded development. So with the GenMDM project being basically dead and limited by the 8 bit AVR, I tend to look at it as a starting point and not a definitive solution. 

As I understand, FMDrive supports flexible midi IO mapping, so midi output CCs can be reassigned as needed.  Of course this wouldn't help if there are errors with how the GUI handles a controller's value...

yogi    

You probably already have this but it's the last release changes from LS

http://little-scale.com/GENMDM/GENMDM_103/GENMDM_103.txt 

Edited by yogi
Link to comment
Share on other sites

It all depends on if people start using MIDIbox Genesis Tracker with FMDrive--if they do, I'm sure we'll get bug reports that things don't sound the same, and then go from there.

I do have that file, that's what I based the implementation on. It still has issues (CC 92+93 are assigned to two different things, not to mention the whole velocity problem), but there's also one major thing I couldn't figure out. For a parameter that's let's say 4 bits, does it use the lower 4 bits of the CC value or the upper 4 bits? If the lower ones, does the range clamp or repeat? I have it set up now with a macro that can be defined either way, but I will obviously need it to be the right way for a MIDI to work.

Link to comment
Share on other sites

 

3 hours ago, Sauraen said:

It all depends on if people start using MIDIbox Genesis Tracker with FMDrive--if they do, I'm sure we'll get bug reports that things don't sound the same, and then go from there.

I do have that file, that's what I based the implementation on. It still has issues (CC 92+93 are assigned to two different things, not to mention the whole velocity problem), but there's also one major thing I couldn't figure out. For a parameter that's let's say 4 bits, does it use the lower 4 bits of the CC value or the upper 4 bits? If the lower ones, does the range clamp or repeat? I have it set up now with a macro that can be defined either way, but I will obviously need it to be the right way for a MIDI to work.

I don't know if this will help, here is the Arduino code for another LS project, the Sega Master Sys Midi. Though it's apples to oranges, the void doCC() function does illustrate how LS handled the different bit ranges of CC values.

SMSM_100_Arduino_MIDI_IN.ino

SMSM_100_MIDI_Mapping.txt  

Here he is moving CC 23, modulator mul, into shadow[0x00]'s lower nibble from the CC's higher 4 bits (bit6- bit3)

case 23: // mul (m)
        shadow[0x00] = (shadow[0x00] & B11110000) | (ccvalue >> 3);
        writeYM2413(0x00, shadow[0x00]);
        break;

And here doing the same for CC 24, carrier mul into shadow[0x01]

    case 24: // mul (c)
        shadow[0x01] = (shadow[0x01] & B11110000) | (ccvalue >> 3);
        writeYM2413(0x01, shadow[0x01]);
        break;

So for both these, the 4bit values are scaled across the full 7bit CC value range. Again this doesn't mean that he followed the same style with the GenMDM code but...

yogi

Link to comment
Share on other sites

On 5/13/2016 at 9:10 AM, Sauraen said:

Okay, that answers that question, thanks! I don't know how you dug this up, but that's very helpful.

Cool, glad it helps. Yea lots of Little Scale's projects are buried on his lengthy blog. Most are open source except for the GenMDM.

yogi

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 3 weeks later...

New video, though I didn't take the time to record the sound the right way. It's showing the VU meter feature, which uses undocumented test modes of the OPN2 to read back operator states while the VGM file is playing. Also show off the fabled SSG-EG mode which turns the EG into a glitchy LFO, and proves that the VU meters are not being emulated.

 

Edited by Sauraen
  • Like 2
Link to comment
Share on other sites

  • 1 month later...
  • 3 months later...

Hi Sauren,
I have a simple feauture request.
I would love to be able to play my favourite VGM files live on keyboard, like a lead melody on one channel or whatever.

Would it be possible to be able to press a button that mutes the sequence data for a channel during VGM playback, but not muting the channel itself, thus allowing you to play it with a keyboard yourself?

I hope this is clear!
How is the development going on with this project? Do you have free time in the new year to work on it?
I'd love to see this get finished, its an awesome device. Was talking to Dya / Aaron about your device earlier and he would love to build one also!

Edited by Smithy
Link to comment
Share on other sites

Unfortunately I've been busy with grad school, so I haven't had much time to work on the software recently. I did do a bit during the fall though--editing VGM files from the interface, by command or state, is beginning to work.

As far as your request, with the current MBQG code, muting a voice doesn't release it into the pool of unallocated voices, it just sends a key-off to the sound chip and proceeds to ignore future key-on messages. However, the voice does NOT ignore other parameter changes, since when you unmute the voice, you want it to continue playing from where it is (in case parameters change), not continue playing using the old parameters. It would be relatively easy to change the code to have it release the voice and re-allocate it later, but then it would usually sound wrong when un-muted.

It might be possible to add a feature where, for a muted voice, you can play notes on it but it continues to obey all other parameter changes in the VGM file. This would solve your problem, though you would have to accept that parameters might change while you're playing. And also, there would have to be a menu option or something which would allow you to select what MIDI channel to use to play that voice, and that might not be convenient to set up while playing.

However, if you are using MBQG with two or more Genesises, you can simply mute a voice and play the same sound on some other voice (usually on the other sound chip). The operation of extracting the state of a voice while playing and assigning this to another MIDI channel is a core feature of this synth--it's not quite in place, but it's definitely planned, in fact there's a dedicated Capture button for this. You would select the voice, press Capture, and then press the button for the MIDI channel you wanted to assign that sound to, and it would do all the work of creating the three VGM files for that channel and setting everything up, so you could immediately play that sound on that MIDI channel.

Are you planning to build a MBQG with the full interface? I have front panel boards which I will be selling at some point--if you're interested we can work something out.

Link to comment
Share on other sites

Using a second chip sounds like the easiest solution, I dont want my request to distract from the important features you're working on.

I would definitely be interested in a front panel board! Thanks.

Really appreciate all the hard work youre putting into this!

Link to comment
Share on other sites

  • 3 weeks later...

This triggers my interest... Congratulations Sauraen (and Smithy) for being responsible for getting me at least temporary out of my cave for this :).

I have been considering building a MBFM, and I even have some of the key components laying around from bitd, but this is really more interesting.

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...
  • 4 weeks later...

New video: Capture feature (described above)!

The project is still in development, and will continue to be in development at least through this summer. I have been in contact with a couple people (above) who are interested in buying front panel boards from me, but shipping costs to Europe have been prohibitive so far. I've also been busy with grad school and other projects.

The next planned feature is saving edited VGM files and loading small VGM files directly to RAM. After this is complete, the synth will be a functional general-purpose synthesizer, even if it is still lacking some features. After that comes more development on the editing tools, support for importing samples from WAV files, and eventually a drums system.

Link to comment
Share on other sites

Holy crap, that is awesome work Saurean! 

How many europeans are interested so far in buying a front panel PCB?

it would be great to get s bulk order going, maybe when the project is near completion interest may gather by then.

I'll be away from the end of april to the end of may so wouldnt be able to help out organizing something in that time frame anyway. 

 

Link to comment
Share on other sites

11 hours ago, Smithy said:

How many europeans are interested so far in buying a front panel PCB?

You and one other person are definite "Yes", and there's another person who I think lives in Europe who is interested but not quite ready to invest in a new synth project.

The PCBs are already made, I got 10 made when I originally built the two synths. So the extras have been sitting on my shelf for a year. I really just want to make back what I invested in them--and of course help some other people get synths. :)

I will pester SmashTV about shipping to Europe again and see what happens.

Link to comment
Share on other sites

For the buttons on my old project MIDIbox ASIDITY and on MIDIbox FM V2.1, I had the buttons printed by someone from the RepRap forums (the particular individual is no longer doing printing for people online). In both cases the order was about $20-$30 plus shipping. As stated on the wiki, if someone is trying to charge you noticeably more than this (e.g. $1 per piece), either they have the scale of the STL files wrong and think the parts are gigantic, or they're ripping you off.

(For MIDIbox Quad Genesis itself, I had a friend do it, with the deal that I bought him a roll of the transparent plastic I wanted and he kept the extra, in exchange for free machine time.)

Edited by Sauraen
Link to comment
Share on other sites

  • 2 months later...

Summer break has begun and I have a little time to work on the project. I've been continuing some unfinished bits of the software, but it's relatively close to a complete, workable beta build.

I would like to check in with those who have bought front panel boards to find out how their assembly has been going. Ideally, I'd like someone to get the hardware done and then give me feedback on the software, so I know what is most important for me to spend time on.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...