Tip jar

If you like CaB and wish to support it, you can use PayPal or KoFi. Thank you, and I hope you continue to enjoy the site - Neil.

Buy Me a Coffee at ko-fi.com

Support CaB

Recent

Welcome to Cook'd and Bomb'd. Please login or sign up.

April 19, 2024, 05:16:41 PM

Login with username, password and session length

Question(s) about making MIDI sounds

Started by peanutbutter, May 23, 2020, 08:42:10 PM

Previous topic - Next topic

peanutbutter

May as well ask here. So I need to make a collection of midi synth sounds, I want to make a varied selection of (10-20) bass and melody presets for a toy I'm making from this JavaScript library called Tone.js, ideally with a mix of pretty standard synthy sounds and some clear approximations of real instruments included. Don't want to use sound fonts where I can avoid it. Have minimal experience with any kind of music composition or anything like that either but I'm sure I can pick bits up easily enough.


Have access to the following selections but ideally I don't want to use sound fonts asides from well warranted exceptions
https://tonejs.github.io/docs/13.8.25/AMSynth
https://tonejs.github.io/docs/13.8.25/DuoSynth
https://tonejs.github.io/docs/13.8.25/FMSynth
https://tonejs.github.io/docs/13.8.25/MembraneSynth
https://tonejs.github.io/docs/13.8.25/MetalSynth
https://tonejs.github.io/docs/13.8.25/MonoSynth
https://tonejs.github.io/docs/13.8.25/NoiseSynth
https://tonejs.github.io/docs/13.8.25/PluckSynth
https://tonejs.github.io/docs/13.8.25/PolySynth
https://tonejs.github.io/docs/13.8.25/Sampler
https://tonejs.github.io/docs/13.8.25/Synth

Are there any good sources for getting a knack for building out midi sounds you can recommend? Or just links with a whole load of suggested configurations that explain the reasoning behind why various settings are set the way they are.

the

Your question is a little unclear. Are you asking for guidance on how certain synth parameters affect the sound of an instrument patch?

Dewt

Bear in mind there's no such thing as a "MIDI sound" really. You just mean sounds triggered by MIDI instructions, I think.

It's difficult to tell what your question is. Are you just trying to make a bank of sampled instruments that can be played back at different pitches? That's a very basic equivalent to a SoundFont.

peanutbutter

Quote from: the on May 23, 2020, 11:48:30 PM
Your question is a little unclear. Are you asking for guidance on how certain synth parameters affect the sound of an instrument patch?
Yeah, sorry, I basically know nothing about this side of things. And because I'm a disaster with terminology in general google isn't a lot of help

You got it down (I think), I need guidelines on how to give parameters which will produce something that's clearly a bass sound and clearly a melodic sound, and if there's certain configurations RE: envelope/etc that are just standard "this sounds roughly like a saxophone preset you'd get on a keyboard"?
Or maybe it varies hugely depending on the software/hardware on hand, or is it something in between where there's generic settings that roughly equate to, like, "string instrument", "organ", "brass", "bass sounds" and then you tinker from them until you get an approximation of the sound you're aiming for?

A nice variety of sounds that I'd be able to give descriptive names for without having to rely on sample, it's not actually essential to the thing I'm fiddling with at all but it'd be a nice bit of polish to add to a very rough experiment (plus I'd get to learn some synth shit along the way)

Quote from: Dewt on May 24, 2020, 12:00:16 AM
Bear in mind there's no such thing as a "MIDI sound" really. You just mean sounds triggered by MIDI instructions, I think.

It's difficult to tell what your question is. Are you just trying to make a bank of sampled instruments that can be played back at different pitches? That's a very basic equivalent to a SoundFont.
I want a selection of presets without relying on sound fonts that I can give brief descriptive names to where the name actually matches up with the sound to some extent.
So like how there'd be "Electric Guitar" on a cheap Casio, it'd sound absolutely nothing like an electric guitar but there was still close enough of a similarity that you'd remember the association with the description and the sound? I assume those devices didn't have actual instrument samples baked into them?




Dewt

Okay, so you're not sampling but hooking up the components from tone.js to create synth sounds.

It'll primarily be subtractive synthesis and FM synthesis then. You'll want to start off with subtractive synthesizers and learning the basics of oscillators + filters + envelopes to create sounds. The fastest way might be to watch examples on YouTube. You'll see the process and be able to tweak it: https://www.youtube.com/results?search_query=recreate++synth+sounds

Most of those will be using the same basic elements that tone.js provides.

the

Quote from: peanutbutter on May 24, 2020, 12:21:46 AMYeah, sorry, I basically know nothing about this side of things. And because I'm a disaster with terminology in general google isn't a lot of help

You got it down (I think), I need guidelines on how to give parameters which will produce something that's clearly a bass sound and clearly a melodic sound, and if there's certain configurations RE: envelope/etc that are just standard "this sounds roughly like a saxophone preset you'd get on a keyboard"?
Or maybe it varies hugely depending on the software/hardware on hand, or is it something in between where there's generic settings that roughly equate to, like, "string instrument", "organ", "brass", "bass sounds" and then you tinker from them until you get an approximation of the sound you're aiming for?

A nice variety of sounds that I'd be able to give descriptive names for without having to rely on sample, it's not actually essential to the thing I'm fiddling with at all but it'd be a nice bit of polish to add to a very rough experiment (plus I'd get to learn some synth shit along the way)

I want a selection of presets without relying on sound fonts that I can give brief descriptive names to where the name actually matches up with the sound to some extent.
So like how there'd be "Electric Guitar" on a cheap Casio, it'd sound absolutely nothing like an electric guitar but there was still close enough of a similarity that you'd remember the association with the description and the sound? I assume those devices didn't have actual instrument samples baked into them?

If you want to learn more about synthesis itself (in terms of what editing parameters do to the sound), yes, there will be plenty of tutorials around for that.

Obviously this is a big subject, and considering you are trying to use the specific interconnected components (oscillators etc) that make up the synth instruments available in Tone.js, this may not be a very direct route towards generating the sounds you're trying to achieve. (Though generally, it's certainly worth giving yourself a grounding in the concepts.)

The sorts of instrument sounds you're describing are mostly covered by the General MIDI instrument set. I found a page where someone was seeking to recreate the GM instrument set using Tone.js:

      https://groups.google.com/forum/#!topic/tonejs/W4IEXQTsEyI

I'm not a programmer and I can't really get involved but it might give you direction to move in.

When you recall the set of parameter settings for a synth so that it will generate a certain sound when played, this may be called a preset but it may also be called a patch. It's possible that someone has made a library of patches/presets for Tone.js that cover the instrument sounds you're looking for.

There's also this tool for coding parameter settings and playing the results back, though unfortunately it doesn't have that many predefined presets/patches included:

      http://tonejs.github.io/Presets/

BeardFaceMan

I don't want to hijack the thread but I have a question about MIDI files but bear with me as I'm crap at explaining myself. I'm trying to use some MIDI files for drums and depending on which drum rompler I use in my DAW, I get different results. Sometimes I get all the sounds (kick, snare, hats, toms etc) when I load the MIDI file in but some of the sounds are wrong, sometimes I only get to hear one or two elements like the kick and snare and no other sounds. Sometimes when I load the rompler into my DAW the notes in the MIDI files are labelled as snare 1, crash 2 etc, in other romplers I get nothing, just corresponding notes on my keyboard so I don't know what's being played. Sometimes the elements being played and displayed are clearly wrong, like the snare is playing where the kick should be. Ideally I'd like to use my own sounds from a drumkit I've made but to do that I'd need to know what sound the MIDI file is sending so I know what to replace it with.

So I guess what I'm asking is, is there a way to tell what individual bits of a drumkit are being used in a MIDI file? Is there some piece of software I can use that would tell me? Or a decent (preferably free) rompler I can use that will accurately interpret and display what the MIDI is sending?

Dewt

There are 16 channels in MIDI. They have a number and contain notes. They usually map directly to one instrument. Standards like General MIDI add the possibility to send an instruction to a channel that says "this should be played on a grand piano".

Assuming your MIDI file is General MIDI, channel 10 will be devoted to percussion and each note will be mapped to a specific part of the drumkit. You can find those mappings here: https://en.wikipedia.org/wiki/General_MIDI#Percussion

BeardFaceMan

Thanks for that. I think that must be what's wrong then, I just checked the MIDI files I'm trying to use, everything is programmed into channel 1. I've checked some other MIDI files I have and they're all channel 10 and the names of everything appear, but this particular batch of MIDIs I have, everything is channel 1. Bugger.

peanutbutter

Thanks guys, those are great responses! The General MIDI stuff especially, should've known there'd be something along these lines in the standards...

Think I'll dig a bit deeper into synthesis in general off what you guys are saying cos it seems like too good of an opportunity to not trick myself into learning some neat new shit. Will probably pop back in here with some more questions later (fuck knows how much later, mind)