This comment has a lengthy explanation of how this works.

you are viewing a single comment's thread
view the rest of the comments
[–] 1 point 1 day ago (2 children)

What, how'd they do the voice? (I can't read YT comments)

In any case, they've gotten so much better at this since last time I saw one of their videos.

  • source
  • hideshow 2 child comments
  • [–] [S] 1 point 5 hours ago* (last edited 4 hours ago)

    Regarding the comments, see if you can use any Invidious instance, e.g. Nadeko. The comment in question is a reply to the top-level comment “I still have no idea how this works” by ACh3rryOnTop.

    Here's the comment copy-pasted:

    ripped from the comments section of a different video of his
    spartan4562 weeks ago (edited)
    Good question. It's very technical but here's the watered down version. This entire thing runs off of software called Moppy created by Sammy1Am. It takes an input MIDI sequence and parses every note into serial data and separates them by channel. The notes themselves are broken down into μPeriods, and specific note frequencies in MIDI translate to higher or lower μPeriods.

    From there it's handed off to an Arduino which is programmed to interface with each floppy motor. One device is one MIDI channel. A single Arduino has the capacity to support up to 8 channel outputs. I have 16 so I have two Arduinos working together.

    The floppies receive the instructions to move from this serial data. The data itself is then broken into two important sections, step and direction. Step is the step frequency in μPeriods, and direction tells the floppy which way to move the motor. In the case of the hard drives and their coils, the programming already existed to support them. Basically the step signal outputs are paired with a tone generated in the same period frequency. This is what makes the high pitched beeping noises. I am currently investigating the possibility of including pure WAV or MP3 playback as well for future project ideas, but that might induce too much interference with everything else. Would be really damn cool though.

    In this context, any type of electrical stepper motor can be manipulated to play a series of musical notes. You may be able to make it work with traditional DC motors, but you would need an h-bridge to properly interface with it.

    Hope that answered your question.

    EDIT: Here's some additional stuff about it to anybody who is curious

    There are much more elegant solutions to achieving this however. You could use an Arduino or Pi and hook up a MIDI controller to it and send the MIDI outputs to stepper drivers. This would be a purely hardware solution and no programming would be necessary (not to this extent, all you'd really have to do is program in step limits so the floppies don't ram themselves to death). Doing it this way would also make it possible to use the full potential of MIDI, which is a max polyphony of 24 voices. With the way I'm doing it now I'm limited to 16. The downside to doing it this way is it would be very expensive for a silly hobby.

    As far as getting the timing, it's all handled by the MIDI. It would be theoretically possible to hook this up to a MIDI keyboard and play it in real time.

    There is actually a lot of work that goes into doing a recreation of a song for these. First and foremost, 99.7% of MIDIs won't work "out of box", and those that do will require much attention in transposing, rearranging, and rebuilding. There's a .1% that work just fine when you download them and only require a few minor tweaks, then there's another .1% that you'll spend a couple of weeks off/on changing and editing because whoever made them slapped every single voice on a single channel. Lastly, there's the remaining .1% where all you can find is sheet music for a single voice and it's a matter of rebuilding the rest of the song around that by ear.

    Floppies can really only handle about 4 octaves, C1 to C4. However there are exceptions to this, as some drives are naturally louder than others. Some drives can play into the C5 range and be perfectly audible. Some have a really nice rattle to them that works good for bass. Others sound like nothing, and may as well not even be in the arrangement. Because of this, it's better to say the range is around 2.5, as I mostly find myself working in the C2-C3 range, as without much duplication of channels, most notes in C4 are much too quiet to hear.

    That's why I started playing around with the idea of using hard drives and their coils. It fit with the old computer aesthetic and also meant I could feed them higher note ranges and not worry about whether or not it gets drowned out. The most recent addition, the HP Scanjet document scanner, works well for just about anything, but it's mainly for lengthy notes or heavy bass lines. Longer notes have a tendency to get seriously screwed by floppies as their max track length is around 80 sectors, while a scanner is about 180x that.

    Then there's the audio recording. Given how I have these arranged, there's a lot of care that goes into which floppies are handling what notes based on their arrangements. When I record them I have to consider what's going to be closer to the microphones and what isn't, what's going to have deeper notes than what's around it, what's going to violently rattle and what will be nice and soft. If I don't consider any of these variables then the audio recordings generally turn out like garbage.

    Pursuing this project has given me a lot of knowledge in terms of electronics, programming, acoustics, and general musical theory. It's actually a very fun project to first get into if you are curious about any or all of these subjects.

    Nothing specifically about the voice, but basically, as summarized in another comment, “You can run stepper motors at certain frequencies, which make noises at different pitches”. Same with the hdd's motor.

  • source
  • parent