Subtitles section Play video Print subtitles We couldn't really do a MIDI video without having An old keyboard from the 80s, and there's nothing more iconic. I think from the 80s than Yamaha dx7 it's Got those classic piano sounds and stuff. Let me find an organ. There was a hospice a classic I Mean that they're pretty awful sounds I'm not a keyboard player, but I think that was part of the advantage of MIDI is as someone that wasn't a great player and didn't know a lot about sounds you could just Worry about it later fix it change the sounds later on so the scope was much more than them with audio But yeah the sounds were bad, then the sounds are bad. What can you do? MIDI was something that was designed in the early eighties it came out in 1983, but there were earlier versions of it made by roland which kind of prototypes that became midi and I'd say it's kind of analogous in some ways to like a compression algorithm. It's very loosely analogous So instead of say having a bass drum That's recorded as an audio signal so you've got a microphone inside the bass drum, and you're playing the bass drum And it would take up a lot of back in those days I mean you weren't even really thinking about disk space because it wasn't being recorded digitally But if it had a being it would have taken up a lot of disk space more than was possible to do What you could do is you could get one of the bass drums and say well all the bass drum sounds are basically the same? thing What we do is We'll store that one sound and then play a note on a keyboard or Play a note from a trigger or from a computer or something like that And it would play that sound over and over again, and that was one of the many many uses of MIDI But it was the idea that you control your devices in the studio by little bits of Information rather than containing the whole wave or whatever do you wanna do? Middies an acronym isn't it is yeah it stands for musical instrument digital interface Midi obviously ended up being used with computers very very early on atari the st model and I think a lot of other models had MIDI ports directly in on the side and because they had a graphical environment Steinberg wrote Cubase I believe it was still it was Steinberg back then they wrote a piece of software called Cubase which was an early MIDI sequencer which is still going today today as a full-blown audio and MIDI package in fact we're probably end up using that a bit later, but back in those days you could effectively create a whole composition on a computer and trigger off the sounds from various of sound modules and samplers and whatever else and and It would produce these files that were maybe a captain of K in size But could have a whole arrangement which back in those days was was phenomenal So let's get into a bit more technical stuff in MIDI there's these things called channels, so there's 16 channels which are from the Users point of view numbered 1 to 16, but internally 0 to 15 for obvious reasons And they basically you could see a channel as as a way of addressing different pieces of equipment And there's also a mode called, Omni, which means it would listen to all channels So if you wanted to say have a piece of equipment that had that just did the piano Another piece of equipment that just did the drums another one that just did the bass you could Set them to different channel numbers internally you could go to their settings as I only want to listen to channel 3 on this particular piece of equipment and Then you could have different tracks within your MIDI sequencer That would only put that data to channel 3 and only put that data to channel 1. Let's say so you could have effectively One signal that would carry all the data for the entire song This is like one set of cabling that perhaps all connected to all of the equipment. Would yeah, I mean the way I mean, there's this all sorts of complicated ways of cabling up MIDI with distribution boxes But the the most simple way to do it would be to go out of your computer or your sequencer or whatever into your keyboard and then out of the keyboard out Of that one to the next one or should mention at this point the actual MIDI The look of MIDI cables so I mean this is the back of a focus right? stereo Sound card here, so as you can see the the standard MIDI in and out are the 5-pin din sockets similar to the socket that was used on a tape machine to put programs into an old computer like My old icon lecture on BBC, so we've linked all these machines together So so one let's let's strip it down because it's all very well to say there's 16 channels as with anything It's better to explain it simplified So let's forget the fact. There's 16 channels and just go with one channel, so let's say we've got a keyboard and a piano module and that's all we're dealing with and There are five types of messages that you get That MIDI can transmit and receive and the first of which which is probably the most used are what's called the channel voice signals and the channel voice signals are very similar to Cable signals from a computer keyboard or anything else, and if you've ever done any programming or sort of dealt with anything Events in JavaScript or something like that. You'd know that there's sort of Mouse down mouse up events keydown keyup events and you get the same thing with keyboards So the channel voice settings will say on channel 1. I'm going to send a note down, and then a note up So you can record the length of the time that the note was down you can also on some cables with aftertouch say how much pressure Yeah, how much pressure you're applying after the event you can say how much pressure you initially touched it with the volume of the note And a whole host of other things like the modulation wheel and you've then got after that channel mode signals Which I'm not going to go into But they're just basic satellite little reset signals and system signals and stuff like And then you've got what's called a system common messages, which are things that are sent to every device in the system So if you had a whole load of sound modules it send it to all of them And then you've got system real-time signals, which are things like your time code in your clock All that kind of stuff, and then you've got what's called system exclusive signals or see sex as they're called for short which is slightly a backup and restore can be used for backup and restore functionality, so let's say you've got a sound module and In that sound module you've got a load of different Piano sounds and you've tweaked these piano sounds to have a certain amount of sustain and whatever and you want to save those settings you can use your audio sequence or a piece of software to record the MIDI data out of that and then when you dump the system exclusive data It dumps that into your computer and then you can retrieve it back and restore the settings on your on your module so a nice easy way in the early eighties to Backup and restore things amongst other things each unit that's the whole point of system exclusive that the stuff that that can do is Exclusive to the individual unit MIDI sounds like it's a very useful and kind of specialist application in in studios And and is that was that? Is that what we're talking about MIDI has been used that long because that's what it found its you Well it started like that, but no I mean, it's it's used all over the place. It was this thing that came out some little bit of time after the MIDI spec came out called general MIDI which kind of standardized What you should find on each channel so for example channel one would be a piano channel 10 was for drums and in the 80s? And 90s people who were playing computer games particularly on early pcs They would have had maybe a Sound Blaster card, and then that meant that say computer game manufacturers could put music along with their game Where they were recording the note information? Again keeping the file sizes really small and then that would be fed into your sound card to create whatever fully sort of symphonic Piece of music you wanted in the background of the game, so if you had a really good sound card But really good sounds the music on that game might sound really good And if you had a really cheap sound card the music on that game could be really cheap but the fun was behind it was still MIDI and That was all over the place another thing that MIDI gets used for in this day and age And I use it myself live when I'm gigging is I have a foot controller which is MIDI and then it changes all the different sounds in my guitar rec So if I'm on sound one and it's nice and clean I hit and sound too And I can play a solo or whatever and it will change all the equipment and change which setting they're all on it And that's called a patch It's a very easy way to Just hit a pedal with your foot and have all your sounds change at the same time And that's also true for keyboard players You know they'd be playing on a piano sound and then get a patch too and it suddenly becomes an organ and it might fire off patch changes and other people in other pieces of equipment and That's a just a good example of a control signal. That's sent by MIDI He'll give you a demo of how a certain bit of MIDI works We're just going to record something into the computer, so this is Cubase this is Version 8. Which is far advanced to the version that would have been on the Atari ST back in the early 80s but? Fundamentally it does exactly the same thing rather than using the dx7 Sounds I'm going to use a very dated sail That's built into Cubase so this is controlling the computer So you can see if I play the notes on the keyboard they light up on the side here Let's say I'd played a note wrong heaven forbid I did that so Okay, so I've got the notes wrong there and I hit a little fumbled bit at the end and I could double click on this and go oh, there's a Fumbled note there, so I'm getting rid of that And I can move these notes to where they should be and then I could play that back, and it should be fixed Which still sounds bad, but is her infinitely better than it was before when it was on the wrong note, so You can see the data is getting in and the data is being stored in the computer as Messages of note on a note off and the color here and represented with these bars at the bottom as well represent the volume I played the note on the technical side so obviously we're seeing a bit of kind of user end data here What does a message look like right well we can get into that that's funny. You say that the reason I? When I first started using MIDI I was maybe about 13 or 14, it's gone I was entirely from the user end and then through my career working in the studio I was using entirely a user end and I didn't really think about how it works I just thought about the channels and the messages I kind of knew what they meant but I didn't really care about that too much, and then something came up where I was writing a video server application that needed to sync up with timecode so I had to write a timecode reader and in the process of doing that I actually had to start intercepting MIDI messages and Looking into what they actually contained So I've modified that time code reader program that I wrote So we can actually capture into a text file what's going on, so if I just play a note and then I let you go so we should now just have one note on one off so if I like this MIDI output dot txt and We can see I played note 72 with a volume of 91 they're not actually 72 or see one of that is in hexadecimal so Whatever they are in in decimal that's what I played and We got a note on signal there and another note on signal there 0 which is denoting that it's a note off Ignore the rest of it. This is actually what's called the midi clock, so it's telling me What the the number of the messages of C messages come in and you want to make sure that the message that comes in is? After the previous one and such so that's that's what that is there the zero is the channel That it's on which means it's actually on channel one Because I'll see 0 is channel 1 and 15 is channel 16 Just to confuse everyone so we can capture some other things as well, so if I play a note again and then do the modulation wheel and Then back down again, and then let go the note You can now see I've got a new note on message there, and then a load of control change information which is Increasing 1 2 3 4 5 6 7 9 it starts skipping it gets bigger and bigger and bigger until it reaches the top It goes back down the other side back down to 0 again So that is literally the recording of me pushing up the modulation wheel and bringing it back down again And that just makes it this is a technical term sound Wibbly Well the modulation wheel will do whatever the sound module is is set there's also a Pitch shift wheel which will make these you Know you go up and down in pitch or whatever so There's all these different controls There's panning so you can get things to go from left to right in the speakers and all of those things will be recorded by your MIDI sequencer and then reproduced ok And then you were mentioned before about kind of controlling and synchronizing things that to meet a really good example Of something that MIDI does well, but also shows off kind of how archaic it is Because you think with the technology in today's time You could send a full clock which will be hours minutes seconds frames all in one bit of data Not literally one bit of data in one chunk of data and It should be able to just pick up on it in real time, but back in the day That was too much data to send through in in one piece So it was broke into lots of individual pieces that were constantly sent And and this is the this is the way I discovered it by having to write a time code reader So let me first show you time code working with their so right yeah, I've just connected the MIDI out to this and This here is connected to my laptop, which is running Reaper, which is just an audio sequencer Audio MIDI sequencer same as key base But it's only about 16 pounds or so just getting it so just here you can see that the timecode is running if I stop that again, and I run my time code reader software So what I'm going to do now is I'm going to hit go on my laptop which will start sending Timecode via MIDI to my desktop computer which is going to be and the signals are going to be recorded into the text file So we can have a look at them so here we go play a few seconds of this and then what I'm going to do is jump this forward So it's a bit further in so I'll go to there and now we're at ten minutes And I'll record a bit of that, and I'm going to hit stop on there And we can have a look at the text file and see what it contains I'll give you a breakdown of what all of these things mean this here is the? Timestamp of the MIDI signal so this here is the actual signal that's coming in for lots of 8-bit Represented in hexadecimal that first one the f1 basically means that it's timecode That's what that means so we can ignore that we can also ignore the last two because that doesn't contain anything That's useful to timecode so it's this second number here Which I've actually split into its binary representation into two columns of four and the reason I've done that is Because the first column of four says what it is what it's representing so the zero zero zero zero represents the number of frames but because You've only got four zeros to represent the number of frames that can only be a value between naught and fifteen and We know that when you're dealing with frames or other in twenty four twenty five thirty 29.97 thirty Corley thirty C30 can't be represented in naught to 15 so the next signal there Which is not one gives you an offset so if that ends with? One which is just one so if that becomes a one then basically you can kind of put that on before there and that steps it up sixteen and the same is true for the Seconds because they're up to sixty same is true for the minutes and the same is also true for the hours So you've got eight bits That have to tell you what part of the the time it is on that time Yes So so basically you you you take the four of the first four of the ones and zeroes and say this is This is say hours, or minutes or the offset as I call it the offset of the hours or the offset of the minutes So the way a timecode signal would work is basically you have eight different Signals that come in and they all contain a little bit of the time, so let's start with the first signal come in that will be zero zero zero zero Which will be the number of frames and then? One which will be called the offset? For frames so the second bunch of four will be the frame number, so let's say it was frame number two That's going to be our one. Oh because of C. It's one two four eight in the columns then Your offset frames would be zero zero zero zero, but if you wanted it to be frame 18 you'd actually change that to a 1 so B zero zero zero one in the offset frames Which would say are your first signal isn't 2 because that effectively gets moved up to there and becomes, Oro? 100 108 eeen but that's sent in two separate messages the same is true for minutes Seconds hours, whatever so to send a whole time yet requires eight messages This is a good representation of something which is very very solid, but works really well and clearly it works Well because it is everywhere whether you or working with syncing up Sequences in audio or whether you're syncing up a video server to you know a band That's playing and you want the videos to appear exactly the same time the band might be playing to a click track and the lighting Desk might turn all the lights on at that exact moment in the show Sammy It's used to do like so and it's very solid and it works almost perfectly You know unless you get someone pulls a cable out which just happens, and then it will goes wrong But it's also very archaic. You can see with this sort of split message System that seems to be going on you Do have a MIDI you do have things that are long messages and short messages And it takes up eight short messages to produce a full piece of timecode When you hit go initially it actually sings a long message through which does contain the entire timecode? But I'd imagine you can't send as many of them And it's inefficient to send as many of them because you you don't need to know that once you've got a full time and you're going you can then update the Seconds and the frames you don't really need to update the whole time, so they sending it through in chunks So I'd imagine a lot of it was written with You know the computing power of the time in mind and obviously they wanted it to be compatible with most computers, which is why they? chose it to run at one megahertz as a musician and any other musician should know this D minor is of course the saddest of all keys And I thought what is sadder then Than the piece of software that the D minor chord is going to open now. This is a example of Application of MIDI for something it's totally useless, but when I apply a D minor Are these Internet Explorer Bing As this yours is keyboard no, it's This keyboard I borrowed from my old GCSE and a-level physics teacher Phil Cummings who was One of the cooler teachers at school cause he played keyboards in a band but there's something about a Yamaha dx7 which just conjures up a teaser yeah It's just got that sound of Oh Oh Internet Explorer's opened again I just I play field colleagues and internet explorer open
B1 midi keyboard sound signal channel data MIDI & Digital Music Making - Computerphile 6 0 林宜悉 posted on 2020/03/27 More Share Save Report Video vocabulary