Hi,
[I don't know if I am using exactly the proper terms here, in my subject].
I'd like to render some recordings (16 bit 44.1 kHz wav files, probably mono) of Bach Chorales (and other compositions too) in e.g. Quarter-Comma Meantone for educational purposes. [I assure you, no actual music will be harmed in the making of these recordings]
I'm using ZynAddSubFx version 2.4.1.496beta via VSTHost.
I'm looking for a solution for situations where more than 12 separate pitch classes occur in the piece. I'll use as an example one with 7 natural notes, 3 sharps, and 3 flats, that is - both G# and Ab are needed. It certainly works to splice together sections where the appropriate scale is set for the recording. I've done this, but it is a bit tedious for lots of recordings - it takes time to find spots where near-zero crossings of the wave data occur at the junctures.
However, I can see another way to do this, but I don't know if it is possible to load an entire non-standard map of the MIDI notes into ZASF. When I read about KBM files, I thought "Aha, Keyboard Mapping" and hoped that might help; but then when I found examples, at least the ones I saw, they seem just to be a direction on how to propagate a scala file [i]in a regular manner [/i]throughout the range. In fact they seem quite useless. Is that all these .kbm files ever do?
===========================
! Template for a keyboard mapping
!
! Size of map. The pattern repeats every so many keys:
12
! First MIDI note number to retune:
0
! Last MIDI note number to retune:
127
! Middle note where the first entry of the mapping is mapped to:
69
! Reference note for which frequency is given:
69
! Frequency to tune the above note to
415
! Scale degree to consider as formal octave (determines difference in pitch
! between adjacent mapping patterns):
12
! Mapping.
! The numbers represent scale degrees mapped to keys. The first entry is for
! the given middle note, the next for subsequent higher keys.
! For an unmapped key, put in an "x". At the end, unmapped keys may be left out.
0
1
2
3
4
5
6
7
8
9
10
11
===============================
or was I unlucky in my kbm search, and there is something more sophisticated possible?
These compositions use a much smaller range than the entire MIDI compass of 127 notes, for example I will say they are limited to the 49-note range from CC to c''', standard MIDI note-numbers of 36 to 84 inclusive. What I envision is that I could define some MIDI notes [i]outside [/i]this range as the extra pitches needed. Say my scala file tunes G# correctly and I need both G# and Ab on note 44 for example.
If I can define say note 85, which otherwise would never appear in the play file, as the pitch of Ab, I could manually rewrite the MIDI performance file to read 85 instead of 44 for the instances where I need the Ab pitch, not the G#. So I could render the entire wav file by playing that altered MIDI file straight through.
Any synth must have an internal array that links the MIDI note number to the location in memory of the sound for that note. So is there a way I can define for ZASF the details of the pitches in the way I want, providing a full list of the pitches of each individual MIDI note?
Many thanks,
Michael
Can I have a non-repeating Keyboard Mapping in ZynAddSubFx?
Official support for: zynaddsubfx.sourceforge.net
Moderator: paulnasca
Can I have a non-repeating Keyboard Mapping in ZynAddSubFx?
2024-02-20T15:48:34+00:00
Hi,
[I don't know if I am using exactly the proper terms here, in my subject].
I'd like to render some recordings (16 bit 44.1 kHz wav files, probably mono) of Bach Chorales (and other compositions too) in e.g. Quarter-Comma Meantone for educational purposes. [I assure you, no actual music will be harmed in the making of these recordings]
I'm using ZynAddSubFx version 2.4.1.496beta via VSTHost.
I'm looking for a solution for situations where more than 12 separate pitch classes occur in the piece. I'll use as an example one with 7 natural notes, 3 sharps, and 3 flats, that is - both G# and Ab are needed. It certainly works to splice together sections where the appropriate scale is set for the recording. I've done this, but it is a bit tedious for lots of recordings - it takes time to find spots where near-zero crossings of the wave data occur at the junctures.
However, I can see another way to do this, but I don't know if it is possible to load an entire non-standard map of the MIDI notes into ZASF. When I read about KBM files, I thought "Aha, Keyboard Mapping" and hoped that might help; but then when I found examples, at least the ones I saw, they seem just to be a direction on how to propagate a scala file [i]in a regular manner [/i]throughout the range. In fact they seem quite useless. Is that all these .kbm files ever do?
===========================
! Template for a keyboard mapping
!
! Size of map. The pattern repeats every so many keys:
12
! First MIDI note number to retune:
0
! Last MIDI note number to retune:
127
! Middle note where the first entry of the mapping is mapped to:
69
! Reference note for which frequency is given:
69
! Frequency to tune the above note to
415
! Scale degree to consider as formal octave (determines difference in pitch
! between adjacent mapping patterns):
12
! Mapping.
! The numbers represent scale degrees mapped to keys. The first entry is for
! the given middle note, the next for subsequent higher keys.
! For an unmapped key, put in an "x". At the end, unmapped keys may be left out.
0
1
2
3
4
5
6
7
8
9
10
11
===============================
or was I unlucky in my kbm search, and there is something more sophisticated possible?
These compositions use a much smaller range than the entire MIDI compass of 127 notes, for example I will say they are limited to the 49-note range from CC to c''', standard MIDI note-numbers of 36 to 84 inclusive. What I envision is that I could define some MIDI notes [i]outside [/i]this range as the extra pitches needed. Say my scala file tunes G# correctly and I need both G# and Ab on note 44 for example.
If I can define say note 85, which otherwise would never appear in the play file, as the pitch of Ab, I could manually rewrite the MIDI performance file to read 85 instead of 44 for the instances where I need the Ab pitch, not the G#. So I could render the entire wav file by playing that altered MIDI file straight through.
Any synth must have an internal array that links the MIDI note number to the location in memory of the sound for that note. So is there a way I can define for ZASF the details of the pitches in the way I want, providing a full list of the pitches of each individual MIDI note?
Many thanks,
Michael
tuningmeister
https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=268796
-
- KVRer
- Topic Starter
- 9 posts since 16 Nov, 2011 from Moorpark, CA USA
Post by tuningmeister » Tue Feb 20, 2024 3:48 pm
Michael
Post Reply
1 post
• Page 1 of 1
Jump to
- The Main Forums
- ↳ KVR Studio Manager
- ↳ KVR Experts
- ↳ Getting Started (AKA What is the best...?)
- ↳ Instruments
- ↳ Effects
- ↳ Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)
- ↳ Guitars
- ↳ Mobile Apps and Hardware
- ↳ Soundware
- ↳ Samplers, Sampling & Sample Libraries
- ↳ Hardware (Instruments and Effects)
- ↳ Modular Synthesis
- ↳ Sound Design
- ↳ Production Techniques
- ↳ Music Theory
- ↳ Computer Setup and System Configuration
- ↳ DSP and Plugin Development
- ↳ DIY: Build it and they will come
- ↳ Music Cafe
- ↳ Sell & Buy (+Special Offers, Deals & Promos)
- ↳ KVR Developer Challenge 2023
- ↳ Everything Else (Music related)
- ↳ Off Topic
- ↳ Off Topic Classics
- Official Company Forums
- ↳ 2getheraudio
- ↳ accSone
- ↳ Acon Digital
- ↳ AcousticsampleS
- ↳ AcousModules
- ↳ Agitated State
- ↳ AIR Music Technology
- ↳ AMG
- ↳ Ample Sound
- ↳ Antares Audio Technologies
- ↳ Apisonic Labs
- ↳ apulSoft
- ↳ AriesCode
- ↳ Arts Acoustic
- ↳ Arturia
- ↳ Audjoo
- ↳ AudioSpillage
- ↳ Audiority
- ↳ Best Service
- ↳ Big Tick
- ↳ Bitwig
- ↳ Controller Scripting
- ↳ Blue Cat Audio
- ↳ Cherry Audio
- ↳ CWITEC
- ↳ Embertone
- ↳ energyXT
- ↳ Eventide
- ↳ Expert Sleepers
- ↳ forward audio
- ↳ Future Audio Workshop
- ↳ FXpansion
- ↳ g200kg
- ↳ Harrison Mixbus
- ↳ HG Fortune
- ↳ Homegrown Sounds
- ↳ HoRNet Plugins
- ↳ Ilya Efimov Production
- ↳ Image Line
- ↳ Impact Soundworks
- ↳ Indiginus
- ↳ Insert Piz Here
- ↳ Ju-X
- ↳ Kirk Hunter Studios
- ↳ Kirnu
- ↳ Kong Audio
- ↳ Krotos
- ↳ Kuassa
- ↳ KV331 Audio
- ↳ LennarDigital
- ↳ Les Productions Zvon
- ↳ Liqube Audio
- ↳ Loomer
- ↳ LVC-Audio
- ↳ Maizesoft
- ↳ Manytone Music
- ↳ MeldaProduction
- ↳ Mellowmuse
- ↳ MIDIMood
- ↳ moForte
- ↳ Mozaic Beats
- ↳ mucoder
- ↳ MusicDevelopments
- ↳ Tips & Tricks
- ↳ MusicLab
- ↳ MuTools
- ↳ New Sonic Arts
- ↳ NUSofting
- ↳ Oli Larkin Plugins
- ↳ Orange Tree Samples
- ↳ patchpool
- ↳ Photosounder
- ↳ PlugInGuru
- ↳ Polyverse Music
- ↳ Precisionsound
- ↳ Premier Sound Factory
- ↳ Psychic Modulation
- ↳ Realitone
- ↳ Resonance-Sound
- ↳ Reveal Sound
- ↳ Roger Linn Design
- ↳ rs-met
- ↳ S3A: Spatial Audio
- ↳ SaschArt
- ↳ Smart Electronix
- ↳ sonible
- ↳ SonicBirth
- ↳ Sonic Reality / eSoundz.com
- ↳ Soundiron
- ↳ SPC Plugins
- ↳ Sugar Bytes
- ↳ TAL Software
- ↳ Tokyo Dawn Labs
- ↳ Tracktion
- ↳ u-he
- ↳ u-he Linux support
- ↳ United Plugins
- ↳ VAZ Synths
- ↳ Virharmonic
- ↳ Wolfgang Palm
- ↳ xoxos
- ↳ XSRDO - SynthCraft
- ↳ ZynAddSubFX
- Site Stuff
- ↳ Site Stuff
- Archived Forums
- ↳ AlgoMusic
- ↳ easytoolz
- ↳ Elevayta
- ↳ Hollow Sun
- ↳ Kazrog
- ↳ LinPlug
- ↳ Muse Research and Development
- ↳ Shuriken
- ↳ SoHa Sound Design
- ↳ Soniccouture
- ↳ Topten Software
- ↳ Tweakbench
- ↳ Valhalla DSP
- ↳ CK Modules & VST
- ↳ Sennheiser AMBEO
- ↳ Muon Software
- ↳ Westgatesounds.net
- ↳ Squaredheads
- ↳ Sonigen
- ↳ CFA-Sound
- ↳ Back In Time Records
- ↳ Livelab.dk
- ↳ Skytopia
- ↳ audioD3CK
- ↳ Inspire Audio
- ↳ Krakli
- ↳ Drumdrops
- ↳ Futucraft
- ↳ OverTone DSP
- ↳ RaXnTraX
- ↳ solar3d-software
- ↳ Signaldust
- ↳ Soundemote
- KVR Forum index
- All times are UTC
- Delete cookies