That’s nice! What samples or VST do you use for the samples?
Why did you have to write software to convert the MIDI signals? In the FGDP-50 you can also define your own custom triggers, so they output the MIDI as your target instrument already needs it.
If you have a link to share, I’d be interested to look into it! Playing hang drum via pad controller is also something that I’ve been thinking about. But so far I did not find a library / synth patch that really convinced me (also Pianoteq steel drums do not sound as I would prefer)
The samples are just a bunch of .wav files on disk, so I made a simple Python script that reads the MIDI signals and plays a file on touch events, normalizing the velocity to know which file to play.
Don’t know how to do it better/simpler, not very well versed in the world of music software and digital instruments yet.
Yes, the MIDI output from the FGDP “just works” - I really like that there is no fuss setup, and that there is no separate MIDI adaptor needed. Plugged it in and it worked with the Python MIDI library first time with nog config or fiddling needed.
Here is a quick gist of the player script on Github:
Ok, that’s really interesting! You’ve basically implemented a very basic MIDI note mapper, a velocity sensitive sample player with audio output.
But since you’re using the standard audio out, I would assume that you’ll have some latency which isn’t so ideal for playing?
I played around with the samples a while. While some of them sound good, they’re strangely organized. The file-name does not reflect the actual note and the velocities between them are also a bit inconsistent. Some samples have a more or less late starting point and therefore add even more latency. Better check your end-result with a tuner
If you want to bring this to the next level, consider using a DAW and a (multi-) sampler plugin. Here is also a pan drum sample library for the free DecentSampler (which also runs standalone, without a DAW) - Pandrum – Pianobook.
If you use Windows, you also need to have a low latency driver, ideally ASIO. With a DAW and a sample player, you should be able to play hang drums without writing custom python code
I have not noticed any latency issues. For me, the note sounds directly when I touch the pads. But then, not a professional musician here.
My next goal is to (re-)map the notes per song for the FGDP - so that one can play melodies. Am also learning to play the concertina at the moment, and had a brainwave that for most simple melodies you only need a few notes. Per song it is often less than 20 different notes. So I would like to have something like a vibraphone or xylophone on my FGDP, and then be able to quickly change what notes are mapped - per song. This might be too confusing in the long run, but will be fun to try!
Thanks for the link to the other samples, will give it a whirl too. I still need to learn the vast world of VST and plugins and DAW etc. - Renoise has been on my learning wishlist for ever too.
Yes, that sounds like fun! Btw. it’s not unusual with pad controllers (e.g. hip-hop style) to just pick specific notes (or chords) per pad - specifically for one song. It takes some effort to prepare this for each song, but then you can very easily jam along and don’t have to worry about playing wrong notes and care mostly about timing. Very much like playing drums
With real instruments it works the other way around: They offer you always the same notes, ordered in a (usually fixed) layout and you have to learn how to play only those notes that really fit the song. That will be more difficult, but later it gives you the freedom to just play any song without having to prepare your instrument / layouts for it.
Renoise - that’s a challenging / nerdy DAW to learn for sure I wanted to look into this for a while, but never got to it. Renoise Redux is an example of such a multi-sample player and editor I mentioned previously, but there are many options out there. But don’t get my previous comment wrong: If you just want to play samples / instruments and map notes flexibly, maybe even a standalone sampler / instrument already works. If a very lightweight, simple DAW. A very lightweight one, that you can try out free and almost unlimited is REAPER | Audio Production Without Limits.
@Fannon do you have a tip on how to get the MIDI output from the FGDP to control an instrument in Kontakt Player from NI?
I installed the NI player with a purchased Pan drum instrument, but mashing the buttons on the FGDP does not make any sounds in the Kontakt player. I suspect that it has something to do with mapping which note gets sent by the FGDP in some MIDI channel, but am a bit lost.
Unfortunately the FGDP manual is not very easy to understand. But you should find the documentation here: FGDP-50 User Guide (yamaha.com)
You need to create a new custom “Trigger”. For each pad, you can define the MIDINote. In your NI Player (Kontakt?) you can now look up which notes your instrument plays and then you can adjust it. Tipp: You can also hit the pad while adjusting the MIDINote number, to get quick feedback.
Then you save the Trigger with a name, e.g. for this particular instrument.
Another way could be to use a plugin that does the mapping for you in software, e.g. NoteMapper (codefn42.com). But if you configure your FGDP-50, you won’t need such an intermediary.
Btw. here’s an idea (that I haven’t tried yet, though): You could define a custom Trigger layout for the FGDP that only uses the C-major (or A-Minor) scale, so all the white notes on the keyboard. Create a layout that makes some musical sense to you.
Then you can use a note transpose and a key transpose MIDI tool in your DAW to adjust the scale. This could be flexible enough to play all kinds of instruments with it and you’ll always have the same note layout (just transposed), for which you can build up muscle memory. It will limit you to play in-scale notes only, but for a beginner it also helps you to not accidentally play notes that don’t fit into the scale. A hang drum works like this anyway, they are tuned to one particular scale.