I have a song with a pitch-bent snare drum. A normal pitch snare is assigned on one track, a crash cymbal on a second track, and the pitch bent snare on a third track. However, as all pitch bend is per-channel, once the pitch bend kicks in it is affecting all percussion for the remainder of the song. I'm attempting to work around it by resetting the pitch bend to 0 after the end of each bent note, but this will require adding a pitch bend command before and after every single pitch bent note, currently manually. 268 manual inserts (134 x 2 for bend and reset) in Sekaiju is not ideal.
I don't know enough about CAL scripting to write a script to do this in Cakewalk, and I haven't been able to find any decent documentation for it.
Not sure how else I could do it, aside from temporarily adding new code in to my MIDI-MIS instrument switcher :p I do not want to use a separate percussion channel if I can avoid it.
Help! 🙂
Well, my suggestion is sort of a variant of scripting.
You may have said you've got a prog that will convert a midi file to .TXT, and then back again. I've got one, although it's an old DOS one.
Use that prog to convert the midi file to .TXT, then write a little .BAS prog to process the file to add the extra lines in (PB ON at the required spot, PB OFF ditto) then use the prog to convert back to MIDI. You can make it clever so the prog works out where to add the extra lines, you can make it dumb so you manually run through first and add in a marker line which the full run processes fully so the prog is less complicated.
Geoff
To automate pitch bend resets in Cakewalk, consider using a MIDI plugin like "MIDI-OX" or "Bome MIDI Translator Pro" to create a custom script that adds the necessary pitch bend commands after each bent note. Amazon KPis. Manually inserting hundreds of pitch-bending commands can be avoided with this approach. 🙂
[quotePost id=19894]You may have said you've got a prog that will convert a midi file to .TXT, and then back again. I've got one, although it's an old DOS one.
[/quotePost]
I actually don't, but this would be perfect for me. Open to any suggestions. Does the one you have support... err... everything? I don't want to lose data from the translation process, like say by it not supporting pitch bend or something silly.
MIDI Messages
I think on most MIDI devices a Pitch Bend message has no effect on the percussion channel. If you do decide to use Pitch Bend messages on the percussion channel, be aware your MIDI file may only work as you intended on certain MIDI devices.
If you are willing to use a less exact simulation, you might perhaps try using the different pitched tom sounds on the percussion channel: pitch numbers 45 (A2) Low Tom, 47 (B2) Low Mid Tom, 48 (C3) High Mid Tom, and 50 (D3) High Tom.
If you have another channel available, you might try using one of the General MIDI pitched percussion instrument sounds on a non-percussion channel, such as Program Change 117 Taiko Drum, 118 Melodic Tom, or 119 Synth Drum.
On the other hand, if you are okay with your MIDI file only working correctly on Roland Sound Canvas (or GS?) devices, you might try sending an NRPN message to change the pitch of a percussion channel note in semitone steps.
CAL or SAL Scripting
If you want to learn about all the available Cakewalk Application Language (CAL) commands, take a look at the PDF file "The Cakewalk Application Language Programming Guide for SONAR" (Version 2.2. February, 24, 2010). You can download it from the link in the following post in the Cakewalk Discuss forum: Re: CAL manual or guide in PDF.
By the way, Sekaiju has a paid add-on language called Sekaiju Application Language (SAL), which is inspired by CAL, but is not exactly the same. It costs 500 yen (roughly 5 dollars), and it's free to try for 30 days. However, the sales page is currently closed and I don't know if it will open again in the future.
Converting to a text format
Sekaiju can save as and open the text-based MIDICSV file format. When I want to insert repetitive messages in to a MIDI file, I often use Sekaiju's MIDICSV export and import ability, ad-hoc spreadsheet work in a spreadsheet program (LibreOffice Calc), and Notepad++'s advanced find and replace commands to clean up certain things so the import works correctly. If you are familiar with using spreadsheets to solve similar kinds of data issues, you may find this style of workflow useful.
Not sure why this didn't post earlier, so take 2!
I found MIDI File Disassembler/Assembler and ran a quick test. The MIDI file output after mid -> txt -> mid is identical, so I'll try giving this one a shot.
I think on most MIDI devices a Pitch Bend message has no effect on the percussion channel. If you do decide to use Pitch Bend messages on the percussion channel, be aware your MIDI file may only work as you intended on certain MIDI devices.
It works on the software I am using (and I only found out completely by accident).
If you are willing to use a less exact simulation, you might perhaps try using the different pitched tom sounds on the percussion channel: pitch numbers 45 (A2) Low Tom, 47 (B2) Low Mid Tom, 48 (C3) High Mid Tom, and 50 (D3) High Tom.
I tried that earlier today, and it wasn't great. It's a high and low snare, so toms don't work well, nor do any of the other melodic percussion. My files end up as GS format when they are done, so there may be some other GS melodic percussion that would work "closer", but I prefer to use the actual snare. It's for a song from The Legend Of Zelda: A Link To The Past, and if I bung this one up, I will never hear the end of it :p
On the other hand, if you are okay with your MIDI file only working correctly on Roland Sound Canvas (or GS?) devices, you might try sending an NRPN message to change the pitch of a percussion channel note in semitone steps.
Ooh, I will definitely give this a shot!
If you want to learn about all the available Cakewalk Application Language (CAL) commands, take a look at the PDF file "The Cakewalk Application Language Programming Guide for SONAR" (Version 2.2. February, 24, 2010). You can download it from the link in the following post in the Cakewalk Discuss forum: Re: CAL manual or guide in PDF.
Thanks! I think I clicked every link in that thread earlier except for that one :p
So I have several different methods I can try tomorrow. I'll upload a sample of each so they can be tested on different devices.
I tested out the NPRN, and it seems to work so far, but then I almost immediately ran in to an issue. The value set for it does not change when I change instruments around with my editor, meaning that if I use the NPRN, I'll have to manually edit it if I ever need to change the instrument I'm using.
I also realized that if I use it to change the pitch of the snare, it'll still change the pitch of all snares to the end of the song, which is again problematic because the game plays both the normal and low snares at roughly the same times, so I'd be back to having to add a group of NPRN messages before and after every snare note.
One workaround that I will have to test out is using one snare (Snare 2) for the normal sound (I am using kit 21 / Studio for this soundtrack) and the other snare (Snare 1) for the lowered sound. At least with this, I would only need a single NPRN group, and I think it will still sound good, as both snare sounds are similar.
Well, after testing out both methods, I have preliminarily decided to go with NPRN. While I like the flexibility of the pitch bend, it requires too much extra tweaking (reset of pitch bend to 0 has to occur after the reverb of the note has finished, or I get phantom notes), and will never be able to completely separate the pitches as required if everything remains on a single percussion channel.
However, my final files are GS files, so I could put them on 2 different channels and use pitch bend, so normal notes would be on one channel and pitch bent would be on another, but I have not tried going that route yet.
I've attached the NPRN version if anyone wants to test it. The cymbal and snare1 are both lowered by 16 semitones.
* I messed up the merge, so the cymbal is offset from its correct position. Womp womp. Fixing that now...
I've made 3 versions of the track. Each has a normal-pitched snare, a low-pitched snare (-16) and a low-pitched splash cymbal (-16).
They are all GS files.
One file uses Ch 10 for drums plus NPRN settings to lower the splash and snare (low snare is a different snare from the normal snare).
One file has normal snare on Ch 10, uses GS SYSEX to add Ch 11 as additional drums, and uses a pitch bend to lower the snare (same snare as Ch 10) and splash on Ch 11.
One file has normal snare on Ch 10, uses GS SYSEX to add Ch 11 as additional drums, and uses NPRN settings to lower the snare (same snare as Ch 10) and splash on Ch 11.
Please test these out, and note if there is a version that works better/worse for your setup. I assume they should work on Yamaha devices as well if GS is supported.
I have only tested with my various Windows software. Depending on the placement of the NPRN data, I sometimes have an instrument that doesn't lower pitch, but hopefully I got that sorted out.