marchingband / wvr

Home of WVR, an open source, Arduino compatible, ESP32-based Sample Player and Audio Framework.
GNU General Public License v3.0
65 stars 9 forks source link

Feature Request: Select midi channel or OMNI in UI #30

Closed TheBatmosphere closed 2 years ago

TheBatmosphere commented 2 years ago
  1. Load sounds into presets 1 and 2. (The numbers at the top of the screen.)
  2. Play notes on a MIDI controller on channel 1. Preset 1 sounds play.
  3. Change to any other channel. Preset 1 sounds still play.
  4. Send a MIDI Program Change command. Program 2 plays preset 2, program 3 plays 3, etc. Am I misunderstanding the 16 numbers at the top of the screen? I thought they were MIDI channels, but they behave like programs. And what does "voice" mean?
Program_Channel_Voice_Confusion
marchingband commented 2 years ago

because WVR is a sample player first, and a midi device second, it has a notion of voices. These are just the banks of sounds. It doesn't map clearly onto programs or channels in midi terms. Currently every midi channel defaults to pointing at voice 1. program changes on any channel change what voice is pointed to for that channel, but not for the others. If it makes more sense, I could change that to have each channel default to its respective voice, and change from there.

marchingband commented 2 years ago

Thanks for pointing out that the voice field in the menu needs to be updated to the 1-16 scheme :) I'll fix that!

TheBatmosphere commented 2 years ago

Thanks, Andrew. I had assumed the 16 buttons represented the 16 MIDI channels, so that was my misunderstanding. The concept of using programs to address sound sets is also the way the SparkFun Tsunami works. On that device, MIDI program 1 addresses sounds 1–128, program 2 addresses sounds 129–256, etc., up to sound 4,096.

However, the Tsunami also has a global option to set the MIDI channel to 1–16 or omni (all channels). That seems like a sensible approach to me. If you used 16 channels times 128 MIDI notes, you'd get 2,048 possible sounds instead of 16,384, right? (Not that anyone would use 16,000 sounds, but my point is that selecting sound sets via program changes rather than MIDI channels — which is what I assumed was intended due to the 16 slots — seems like the most musical approach.)

In short, I'd recommend

By the way, thank you for considering all our wild feature requests, explaining why they might not work, and implementing them so quickly!!

marchingband commented 2 years ago

Ok that helps me understand the situation a lot better. I do still like the idea of having multiple channels mapping to their own voice. I am imagining 2 keyboards plugged into WVR, one on USB, one on DIN, and both players able to move around between voices independently. This is how it's setup now. Each channel deafults to voice one, but can change that with program changes. I am also seeing the benefit of choosing one channel. Often in a larger midi setup you want some devices to be only listening to events on one channel, and ignoring all the others. Perhaps I will add a menu item to select channel 1-16 or omni. Omni would follow the current scheme, but selecting a single channel would listen only on that midi channel, and ignore the rest.

TheBatmosphere commented 2 years ago

Yeah, I’d think you’d want each controller to transmit on a different channel so one player wouldn’t be modulating the other’s sounds. (That’s after we get MIDI controls like pitch bend and CCs. ;-) I still need to write up that feature request.

I have a General MIDI module with simultaneous MIDI and USB host inputs, and it’s convenient. You can set both controllers to transmit on the same channel, but a more common application is to use unique channels to trigger different sounds. For example, a MIDI keyboard could play organ on channel 1 while a USB drum pad plays percussion on channel 10.

TheBatmosphere commented 2 years ago

I just noticed that MIDI CC 125 is defined as Omni On and 124 is Omni Off in the MIDI spec. I'd prefer to set omni mode and channel in the UI, but it's interesting that it's defined.

marchingband commented 2 years ago

Do you mean it's defined in the MIDI spec? I certainly didn't (intentionally) implement this in WVR code.

marchingband commented 2 years ago

What you are saying about not wanting controllers on different channels to modulate each others sounds makes a ton of sense. I will keep that in mind for sure.

TheBatmosphere commented 2 years ago

Do you mean it's defined in the MIDI spec?

Yes. I updated my comment above. Cheers!

stephenmaughan commented 2 years ago

did originally think that the 1 to 16 voices were midi channels so I loaded a set of samples into them , but when I tried to play them with different channels it obviously didn’t work.

This is just personal preference of how I would love it to work….. each voice could have a midi channel assigned to it and you could load different instruments to each voice/channel and play each voice channel from a sequencer or DAW. Would this be possible to implement?

I’m guessing not every one would want to work that way and I have no idea how much work that would be to get that to work with the web ui. It’s just a suggestion.

stephenmaughan commented 2 years ago

Just gave it a quick try with the basic wvr firmware and my din socket and it seems to work great so far. I’ll try later with the new usb backpack firmware.

Thanks very much for implementing it. I think my WVR is going to be turned into a drum sample machine.

On Thu, 17 Feb 2022 at 15:54, marchingband @.***> wrote:

Closed #30 https://github.com/marchingband/wvr/issues/30 via #36 https://github.com/marchingband/wvr/pull/36.

— Reply to this email directly, view it on GitHub https://github.com/marchingband/wvr/issues/30#event-6091421374, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXW42VYSLZ32DF4HUZBMOMTU3UK33ANCNFSM5H6LTWDQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

marchingband commented 2 years ago

@stephenmaughan that's awesome :) a drum sample machine was actually the exact reason I started creating WVR in the first place! FYI I just uploaded a collection of really nice drum samples to this repo : https://github.com/marchingband/wvr_thames with instructions at the bottom of the readme on how to upload to WVR as "racks". help yourself if you like!

stephenmaughan commented 2 years ago

Yeah I think it will make a perfect drum sample machine. So glad I didn’t sell it now. I’m hesitant to add jack inputs to the pins because I’d hate to fry it now it’s working just how I want it after you’ve added the midi channels .

Thanks for the link to the samples I’m going to check them out now. I’ll also have a read up on “racks” because I’m still not clear on how they work.

On Thu, 17 Feb 2022 at 21:58, marchingband @.***> wrote:

@stephenmaughan https://github.com/stephenmaughan that's awesome :) a drum sample machine was actually the exact reason I started creating WVR in the first place! FYI I just uploaded a collection of really nice drum samples to this repo : https://github.com/marchingband/wvr_thames with instructions at the bottom of the readme on how to upload to WVR as "racks". help yourself if you like!

— Reply to this email directly, view it on GitHub https://github.com/marchingband/wvr/issues/30#issuecomment-1043505816, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXW42V5QHQMT4VPCLDG74MLU3VVPZANCNFSM5H6LTWDQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

marchingband commented 2 years ago

@stephenmaughan racks are amazing for drum hits, a kit setup that way is unbelievably realistic. So incredibly fun :) I am down to nerd out about drum stuff anytime! Here are some pix of the kit I have been working on over the last few years. https://hohumdrums.netlify.app/ I may do a kickstarter for them at some point!

marchingband commented 2 years ago

(PS they are not actually for sale, so dont try to buy them haha, that website is just a prototype of an online store I was developing as a separate project)

stephenmaughan commented 2 years ago

They look really great. They remind me of something Kraftwerk might have used (my Kraftwerk drum samples were one of the first I put in my WVR) or maybe New Order.

Will you be making anymore WVR’s or will the next version be for eurorack?

On Fri, 18 Feb 2022 at 17:26, marchingband @.***> wrote:

(PS they are not actually for sale, so dont try to buy them haha, that website is just a prototype of an online store I was developing as a separate project)

— Reply to this email directly, view it on GitHub https://github.com/marchingband/wvr/issues/30#issuecomment-1044878582, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXW42V3ZKJNY3OWYHCBN6WDU3Z6NLANCNFSM5H6LTWDQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

stephenmaughan commented 2 years ago

I’ve got my WVR running off battery power 3 x AAA (4.5v total) that should ok shouldn’t it ?

On Sun, 20 Feb 2022 at 14:22, Stephen Maughan < @.***> wrote:

They look really great. They remind me of something Kraftwerk might have used (my Kraftwerk drum samples were one of the first I put in my WVR) or maybe New Order.

Will you be making anymore WVR’s or will the next version be for eurorack?

On Fri, 18 Feb 2022 at 17:26, marchingband @.***> wrote:

(PS they are not actually for sale, so dont try to buy them haha, that website is just a prototype of an online store I was developing as a separate project)

— Reply to this email directly, view it on GitHub https://github.com/marchingband/wvr/issues/30#issuecomment-1044878582, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXW42V3ZKJNY3OWYHCBN6WDU3Z6NLANCNFSM5H6LTWDQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

marchingband commented 2 years ago

Yes it's a 3.3v LDO, so that will work well. Glad you like them, they were super fun to make, I don't like the look of the Roland pads so I am happy they came out looking tight :)

stephenmaughan commented 2 years ago

The batteries seems to be working great , I’ll still keep the usb option though.

If you ever do start selling your drum pads I’m sure you’ll sell loads.

On Sun, 20 Feb 2022 at 19:52, marchingband @.***> wrote:

Yes it's a 3.3v LDO, so that will work well. Glad you like them, they were super fun to make, I don't like the look of the Roland pads so I am happy they came out looking tight :)

— Reply to this email directly, view it on GitHub https://github.com/marchingband/wvr/issues/30#issuecomment-1046308613, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXW42V6MBMDQXMOUPD5GJILU4FA7JANCNFSM5H6LTWDQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>