probonopd / MiniDexed

Dexed FM synthesizer similar to 8x DX7 (TX816/TX802) running on a bare metal Raspberry Pi (without a Linux kernel or operating system)
https://github.com/probonopd/MiniDexed/wiki
1.11k stars 81 forks source link

Initial brass sound stays throughout all patches #384

Closed Slider2732-2 closed 1 year ago

Slider2732-2 commented 1 year ago

A perplexing situation. Build is a Pi 4, with a rotary encoder, latest MiniDexed but no screen or DAC yet. My Beatstep Pro didn't seem to fire notes, nor Roland JU-06A. Instead, am using a USB qwerty keyboard, due to no dedicated MIDI controller keyboard. Also, the sysex/voice folder is present and sounds are in there from Dexed cart. At boot, I can play a brass type of sound. On pressing the rotary switch twice (slowly) I can then dial in other sounds by moving the encoder anti-clockwise. However, the brass sound stays and can also be heard along with any new sound.

The brass sound can be lowered, by setting all 8 pan values to zero in performance.ini, but it's still present. I tried swapping out the sounds from sysex/voice to other ones and still the brass sound plays. Next thing, completely deleting the sysex/voice folder.. aha, the initial bank is within the main code!

Though, it can't be a bug if noone else has the problem? It must be because of having to use a USB qwerty keyboard?

Many thanks for any help :)

Banana71 commented 1 year ago

Hi Slider2732-2,

the default performance.ini is a layer of four Brasses TG1 to TG4. You can set in Performance.ini the MIDIChannel2, MIDIChannel3 and MIDIChannel4 to "0" than you hear only a single Sound from TG1.

performance TG1 only.zip

with pan you can set the left-right balance in the stereo-output.

diyelectromusic commented 1 year ago

I remember having the same issue when first trying MiniDexed. The default performance.ini might be interesting to show the potential, but it isn't very "beginner friendly". I do wonder that the default ought to be a lot simpler?

(I know there is work to allow several performances to be chosen)

Slider2732-2 commented 1 year ago

Thank you very much Banana for the alteration. Edit: It works perfectly with the qwerty keyboard and encoder!

After a bunch of thought, I had a workable idea. A MIDI controller will trigger whatever channel is selected, but a qwerty keyboard likely fires all 16. Therefore, the initial sound would be allocated to channel 1 and dialing up a new patch would be allocated to the next available. Both would sound. Perhaps a similar route to the one you followed, diyelectromusic.

It may well be rare for someone to use a qwerty keyboard, but I'd think plenty of non musicians would do so to test the rig. If it worked, then there'd be reason to invest in a known working MIDI controller, a DAC and screen. A line in the build instructions would be useful to that effect. That if using a qwerty to test, along with a common rotary or the 4 momentary buttons then 2 voices will be heard and you will post about it being an issue lol. It's half a build, so it should only half work - my other thought :)

probonopd commented 1 year ago

I remember having the same issue when first trying MiniDexed. The default performance.ini might be interesting to show the potential, but it isn't very "beginner friendly". I do wonder that the default ought to be a lot simpler?

Yes, the idea of the default performance is to show the potential of the device. For "real work", a different performance is preferable.

diyelectromusic commented 1 year ago

I remember having the same issue when first trying MiniDexed. The default performance.ini might be interesting to show the potential, but it isn't very "beginner friendly". I do wonder that the default ought to be a lot simpler?

Yes, the idea of the default performance is to show the potential of the device. For "real work", a different performance is preferable.

In that case, as someone has already got as far as installing MiniDexed at this point then I think the default performance.ini should be the simplest to allow them to explore it further. As pretty much the first thing people will do is try to change the voice I think that ought to work with no surprises "out of the box" :)

But maybe that is just me!

probonopd commented 1 year ago

Well, my thinking was that it needs to sound impressive out of the box. Once people start editing voices, they probably understand how to change/edit a file :)

diyelectromusic commented 1 year ago

Well, I'd like to think I had a pretty good handle on things like this, but when I installed MiniDexed for the first time it was pretty confusing for me to start with, trying to work out what I'd done wrong as patch changes didn't seem to be having much effect... I wasted a fair bit of time before realising that several channels were all sounding at once and it wasn't actually a problem with my build or (main) configuration.

The fact that it has been raised as an issue means I wasn't the only person perplexed as to what was going on. I guess it depends on the mental model you're bringing to MiniDexed. I'd started with seeing it as a TX816, so 8 independent "synths" i my mind, so I hadn't spotted that several were actually playing at the same time, hence the confusion.

I still believe that if someone is going to get to the point of putting together enough of a system to actually try MiniDexed for themselves, then they are probably already sold on the idea of having a DX7. I don't think they'll need convincing any further :)

As far as "editing a file" goes - actually no, that means taking your SD card to a PC and fiddling around with it, but the UI encourages changing "within" the system. In many cases I expect the first action for many is to set tone generators to independent MIDI channels and configure pan settings as something fairly generic so there is a "blank" baseline to start from, but happy to be told I'm wrong.

As we have the option of saving performance settings now, I think it makes more sense to start with a "blank slate" and let people fiddle via the UI than start with a complex setup that they have to "decode" (and undo) before doing their own thing?

But I'm only throwing my comment in as a "me too" having this issue, so I'd be interested in hearing others thoughts :)

Maybe start with a "simple" and a "showing off" performance.ini in the GitHub and make people choose one on installation so at least it is obvious this is something to consider?

I tend to work on the "principle of least surprise" for things. For a multi TG MiniDexed, least surprise for me says the first install out of the box should let you change the voices and hear them change :)

I understand how it all works now, so its not an issue for me, but I'm just adding my voice here it as I think there will be some new users getting caught out by this one.

Kevin

Banana71 commented 1 year ago

We have everything we need. :-)

In my opinion, the default performance should also be a simple single patch. In addition, the sysex/voices/... and the performance/.. structure should already be created, incl. some Performances.

In the download you will find my file structure and sounds for example

MiniDexed Sounds and Performances.zip

The DX7 factory sounds are available on Yamaha Black Boxes https://yamahablackboxes.com/collection/yamaha-dx7ii-fd-synthesizer/ https://yamahablackboxes.com/collection/yamaha-dx7-synthesizer/patches/

Is it possible to start the miniDexed directly in the "Performance - Load" menu?

A synthesizer lives from his sounds. Therefore there should be an area where everyone can easily share sounds or performances.

probonopd commented 1 year ago

Is it possible to start the miniDexed directly in the "Performance - Load" menu?

This is not yet implemented but should be doable.

diyelectromusic commented 1 year ago

Did we resolve this? I think the proposal is for a "simple" performance.ini to be the default to minimise surprises for new users?

I don't know how this relates to the new performance save/load options though.

Kevin

diyelectromusic commented 1 year ago

Bumping this. Can we change performance.ini to a single TG responding to MIDI OMNI for "getting started" reasons, especially now there are many performance files to choose from thanks to @Banana71 ?

Kevin

probonopd commented 1 year ago

@diyelectromusic my line of thinking is that the out of the box experience ("what I hear out of the box without any configuration") should show the capabilities of the device. More advanced users are more likely to know how to load a blank INIT as the default performance than new users trying to get a sound out of the device for the very first time. @Banana71 it is clear that someone like you wants to change the default, and that's easy to do, isn't it?

diyelectromusic commented 1 year ago

I know that is what you think, but I maintain that the most common thing for a new user to do when turning it on is to change the voice and see what they sound like, and having the thing respond as if it is ignoring them isn't very friendly, as evidenced by this issue, by this also being raised in discussions elsewhere, and it mirrors my own first experience with MiniDexed too - it took me quite a bit of "head scratching" to realise what was going on - remember at this stage I could have got so much wrong bulding it - missing ROMs, getting the audio output wrong, - it took a while to spot that all TGs were enabled in OMNI mode still playing the default sound, and I'd like to think I was pretty clued up on what it was doing :)

If they've already installed it to the point where they have it running, then they don't need convincing of its capabilities and at the end of the day there is so much out there about the DX7 already. But giving them a problem to solve right out of the box for something so basic as changing the voice feels like it can put people off really quickly.

Having changing the voice only working for "more advanced users ... who know how to load a blank INIT" kind of makes the point for me I'd say. And out of the box the thing will already make a sound as it even has a default full bank of voices to load if there are no ROMs. But when something as simple as changing the voice doesn't work out of the box, I think that is a mistake.

I suspect we won't see "eye to eye" on this one :)

But either way, regardless of what you decide, this issue should probably be closed!

Cheers! Kevin

Banana71 commented 1 year ago

As with everything, there are different approaches and that's a good thing. My thoughts on this: The manufacturers of the synthesizers that I know don't start their instruments with an INIT sound. Newcomers who start the miniDexed for the first time should be offered the best possible listening experience. After the system start, the miniDexed should start in the Performance Load menu, so that everyone can easily switch between the performances.

A small QuickStart guide in the form of a video or a one-pager showing the first steps (Voice, Bank, MIDIChannel, Pan, Detune....) would be helpful. I've also been thinking about a FAQ page on Wiki.

@probonopd

@Banana71 it is clear that someone like you wants to change the default, and that's easy to do, isn't it?

I don't understand exactly what you mean now? Who wanted what?

probonopd commented 1 year ago

Sorry if I was not clear, @Banana71 I just used you as an example of a power user who wants to program his own voices and probably had no difficulty to change the default performance to something else.

diyelectromusic commented 1 year ago

The manufacturers of the synthesizers that I know don't start their instruments with an INIT sound.

They offer a bank of preset voices you can select between and hear working. MiniDexed can do that too, but the default performance setting means that selecting a new voice is still sounding Brass 1 on three TGs making it sound like voice selection isn't working. I know of no manufacturer that gives you an "out of the box" experience that looks like changing patches doesn't work :) If you push a button on a DX7 to select a different voice, it changes the voice, it doesn't keep sounding Brass 1.

We're not talking about a blank INIT voice or bank, we're talking about a simple performance configuration that allows the user to change voices and be able to hear those changes take effect.

Anyway, I'm repeating myself now :)

Kevin

probonopd commented 1 year ago

Yes, I can see both sides. I'd say, let's see how many complaints we get about the current default. And in general, let's MiniDexed behave by default like a "real instrument" bought in a store, because that is what users have come to expect.

Would it be preferable to have the performance selection (rather than the voice selection) more prominent in the menu?

diyelectromusic commented 1 year ago

Well three comments have surfaced on this issue that I'm aware of, and I only mentioned it as a "me too". It wasn't a complaint, it wasn't worth mentioning otherwise, but it did cost me quite a bit of wasted time when I got started trying to work out why it wasn't doing what seemed the most obvious way to work. I always work on the "principle of least surprise" on things like this. What person won't be surprised when they change a voice and it doesn't seem to work?

I think as most people will come at this as a "DX7 on a Pi" rather than a "TX816 on a Pi", and more people would be familiar with a single multi-timbral synth than layering synths (how many people had a TX816 back in the day compared to the DX7?) then I would say the performance side of things should remain in the "more advanced" category until people are familiar with how to drive a single TG. It is much simpler in my view to explain how the "single synth TG" works and then tell people they can have up to 8 than start with a multi-layered, multi-timbral, polyphonic, detuned setup and try to explain how all that works enough to allow them to wind it back.

A "real instrument bought in a store" will not ignore you when you change the voice ;)

Kevin

Slider2732-2 commented 1 year ago

Thanks very much for continuing the discussion, it is very much respected.

Perhaps the resolution really is just a simple note of explanation added to the install guide. Banana71's zip could be linked to for those with minimal experience or equipment? It should, in my opinion, be stressed that it's only an entry level introduction when configured in such a way.
The properly configured code stays as is, others with no skills can know that they are being catered for.

My own experience is thought to be in line with most 'casual' tinkerers and musicians, the use of a Pi being strongly linked by people to 'hacking' something to emulate something else. I've no doubt the USB keyboard being used to trigger notes would be viewed similarly. 'We' cludge when not owning the proper equipment for the job at hand. Personally, I don't like the idea that someone may try out MiniDexed with a USB keyboard, hit this newbie problem and go off to make a weather station with their Raspberry Pi!

probonopd commented 1 year ago

Perhaps the resolution really is just a simple note of explanation added to the install guide. Banana71's zip could be linked to for those with minimal experience or equipment?

Yes, in fact, we are shipping Banana71's performances with MiniDexed now...

Slider2732-2 commented 1 year ago

Ah, wonderful!

Issue resolved - thank you probonopd :)

diyelectromusic commented 1 year ago

Well three comments have surfaced on this issue that I'm aware of,

Make that four (probably): https://github.com/probonopd/MiniDexed/discussions/472

Kevin

diyelectromusic commented 1 year ago

(five https://github.com/probonopd/MiniDexed/discussions/472#discussioncomment-5547432)

diyelectromusic commented 1 year ago

(six https://github.com/probonopd/MiniDexed/pull/500#issuecomment-1576176557)

diyelectromusic commented 3 months ago

(seven https://github.com/probonopd/MiniDexed/issues/664)