back to list

[tuning] Scala seq to Csound sco and polyphonic audio pitch and conversion to midi questions.

🔗Marcel de Velde <m.develde@...>

9/6/2009 4:51:07 AM

I've been searching but can't find a way to convert Scala sequence files to
Csound scores.Anybody knows if such a thing has ever been written?

I know one can convert Scala sequence files to midi files with pitch bend
tuning and then convert this midi file to Csound score, but this reduces the
pitch resolution to the resolution of pitch bend (I want better resolution)
+ I'd have to set up the Csound instrument to react to pitch bends.

Also I was wondering if there are any good programs out there that can look
into a polyphonic audio recording (for instance string quartet recording)
and tell me the exact pitch of all notes.
Anobody has a recomendation on how to do this?

Also looking for a polyphonic audio to midi converter.
I see celemony does this and a few other commercial software too. Anybody
knows which one is best?
And are there any free ones?

Many thanks for any help!

-Marcel

🔗Marcel de Velde <m.develde@...>

9/12/2009 5:31:26 PM

Never mind the polyphonic audio to midi converters.I've tried 2 and the
detection is too poor to be usefull for me.
Also no much hope for good pitch detection in trombones and violins, tried
melodyne but it doesn't give me a clear picture at all.

But still my first question.
Is there really no program to do an automated conversion of Scala sequence
file to Csound score?

Also one other question.
Does the Midi Tuning Standard real time retuning sysex messages give a more
accurate pitch resultion than Midi pitchbends?
Thinking about using Timidity.

-Marcel

2009/9/6 Marcel de Velde <m.develde@...>

> I've been searching but can't find a way to convert Scala sequence files to
> Csound scores.Anybody knows if such a thing has ever been written?
>
> I know one can convert Scala sequence files to midi files with pitch bend
> tuning and then convert this midi file to Csound score, but this reduces the
> pitch resolution to the resolution of pitch bend (I want better resolution)
> + I'd have to set up the Csound instrument to react to pitch bends.
>
>
> Also I was wondering if there are any good programs out there that can look
> into a polyphonic audio recording (for instance string quartet recording)
> and tell me the exact pitch of all notes.
> Anobody has a recomendation on how to do this?
>
> Also looking for a polyphonic audio to midi converter.
> I see celemony does this and a few other commercial software too. Anybody
> knows which one is best?
> And are there any free ones?
>
> Many thanks for any help!
>
> -Marcel
>

🔗joemonz <joemonz@...>

9/12/2009 9:55:13 PM

Hi Marcel,

This is a little off-topic, but i thought i'd mention it in case you find it useful: you can use Tonescape to compose a microtonal composition in any tuning that you can imagine, and then export it to a Csound .csd file (the unified format with .orc and .sco combined in one file).

Tonescape only has one functioning .orc sound, which is a not-really-great acoustic guitar sound ... but you can simply save the .sco part of the file separately and then use whatever .orc you want.

Tonescape only runs under Windows XP and Vista.

-monz
http://tonalsoft.com/tonescape.aspx
Tonescape microtonal music software

--- In tuning@yahoogroups.com, Marcel de Velde <m.develde@...> wrote:
>
> Is there really no program to do an automated conversion of Scala sequence file to Csound score?
>
> -Marcel

🔗Torsten Anders <torsten.anders@...>

9/13/2009 6:41:36 AM

On 13.09.2009, at 05:55, joemonz wrote:
> Tonescape only has one functioning .orc sound, which is a not-really-> great acoustic guitar sound ... but you can simply save the .sco > part of the file separately and then use whatever .orc you want.

In case you want to make it more flexible and convenient, it should be trivial to make the *.orc user definable (e.g., in some preferences).

Best,
Torsten

--
Torsten Anders
Interdisciplinary Centre for Computer Music Research
University of Plymouth
Office: +44-1752-586219
Private: +44-1752-558917
http://strasheela.sourceforge.net
http://www.torsten-anders.de

🔗joemonz <joemonz@...>

9/13/2009 7:35:37 AM

--- In tuning@yahoogroups.com, "joemonz" <joemonz@...> wrote:
>
> Hi Marcel,
>
> This is a little off-topic, but i thought
> i'd mention it in case you find it useful:
> you can use Tonescape to compose a microtonal composition
> in any tuning that you can imagine, and then export it
> to a Csound .csd file (the unified format with .orc and
> .sco combined in one file).

Since Csound .csd files are plain text, i wanted
to paste a simple example here to illustrate how
Tonescape creates the .csd export.

I created a Tonescape file of one octave of a C-major scale
in 1/6-comma meantone, using an acoustic Classical Guitar
as the instrument sound (because as i already said, this
is the only Csound instrument which Tonescape ever developed).

Unfortunately, the Yahoo web interface only allows a
maximum line-width of 70 characters (where did that come from?
-- why not at least the typical 80 characters of an
old-fashioned terminal screen?).

Naturally, the part of the .csd file which is of
primary interest -- the instrument commands of the "CsScore"
section (i.e., .sco file) -- are also the ones with the longest
line-length, at 116 characters. So they are all broken here.

Below the CsScore commands section, i give the complete .csd file
so that this section can be seen in context. I've also uploaded
it to the "Files" section of this group, under the "monz" folder,
at this URL (delete the line-break in the URL):

/tuning/files/monz/ c-major-scale_31-tone_1-6cmt_origin=c.csd

===================================================
Immediately below is the .sco section by itself.
Each of the first 7 lines is a comment
and begins with a semicolon;
all of the remaining lines are the actual commands
and each begins with an "i" (for "instrument").
====================================================

;------------------------------------------------------------------------------------
; COMPUTER-GENERATED INSTRUMENT COMMANDS IN THE REMAINING
; PARTS OF THIS FILE. ALL COMMANS IN CHRONOLOGICAL ORDER.
; THERE ARE NO SECTIONS OR OTHER HELPERS FOR HUMAN READERS.
;------------------------------------------------------------------------------------
; INSTR START DUR ZAK RELTIME CENTS CN TKS VOLUME VOL TKS TECHNIQUES -->
; ***** ***** ****** *** ******* ******** ****** ******* ******* **************
i 50.1 0.0000 -0.4210 0 0.0800 -2104.1445 2500 0.5525 2500 1 2 450
i 50.1 0.4210 0.0000 0 0.0800 -2104.1445 2500 0.5525 2500 1 2 450
i 50.2 0.5250 -0.3890 0 0.0800 -1907.4033 2500 0.4225 2500 1 2 450
i 50.2 0.9140 0.0000 0 0.0800 -1907.4033 2500 0.4225 2500 1 2 450
i 50.3 1.0000 -0.4210 0 0.0800 -1710.6621 2500 0.4550 2500 1 2 450
i 50.3 1.4210 0.0000 0 0.0800 -1710.6621 2500 0.4550 2500 1 2 450
i 50.4 1.5250 -0.3890 0 0.0800 -1602.5151 2500 0.4225 2500 1 2 450
i 50.4 1.9140 0.0000 0 0.0800 -1602.5151 2500 0.4225 2500 1 2 450
i 50.5 2.0000 -0.4210 0 0.0800 -1405.7739 2500 0.5525 2500 1 2 450
i 50.5 2.4210 0.0000 0 0.0800 -1405.7739 2500 0.5525 2500 1 2 450
i 50.6 2.5250 -0.3890 0 0.0800 -1209.0327 2500 0.4225 2500 1 2 450
i 50.6 2.9140 0.0000 0 0.0800 -1209.0327 2500 0.4225 2500 1 2 450
i 50.7 3.0000 -0.4210 0 0.0800 -1012.2915 2500 0.4550 2500 1 2 450
i 50.7 3.4210 0.0000 0 0.0800 -1012.2915 2500 0.4550 2500 1 2 450
i 50.8 3.5250 -0.3890 0 0.0800 -904.1445 2500 0.4225 2500 1 2 450
i 50.8 3.9140 0.0000 0 0.0800 -904.1445 2500 0.4225 2500 1 2 450

======================================
Below is the complete .csd file:
======================================

<CsoundSynthesizer>

<CsOptions>
-W -s -o c-major-scale_31-tone_1-6cmt_origin=c.wav
</CsOptions>

<CsInstruments>
;------------------------------------------------------------------------------------
; COMPUTER-GENERATED CSOUND ORCHESTRAL FILE
;
; CREATED BY TONESCAPE: WWW.TONALSOFT.COM
;------------------------------------------------------------------------------------
sr = 44100 ;SAMPLE RATE
kr = 4410 ;CONTROL RATE
ksmps = 10 ;AUDIO-CONTROL RATIO
nchnls = 2 ;NUMBER OF OUTPUT CHANNELS
0dbfs = 1 ;CONFIGURE SCALING FACTORS

;------------------------------------------------------------------------------------
; INITIALIZE ZAK CHANNELS
;------------------------------------------------------------------------------------
zakinit 2, 2 ;INITIALIZE ZAK CHANNELS

;------------------------------------------------------------------------------------
; GUITAR CLASSICAL
;
; A STANDARD NYLON-STRING CLASSICAL GUITAR.
;------------------------------------------------------------------------------------
instr 50

inum = p1 ;INSTRUMENT NUMBER
itime = p2 ;START TIME, SECONDS
idur = -p3 ;NOTE DURATION
izak = p4 ;ZAK CHANNEL
irel = p5 ;RELEASE TIME IN SECONDS
icent = p6 ;PITCH IN ABSOLUTE CENTS
icentz = p7 ;PITCH TRANSITION TICKS
ivol = p8 ;VOLUME
ivolz = p9 ;VOLUME TRANSITION TICKS
ifngr = p10 ;TECHNIQUE: FINGERBOARD
imute = p11 ;TECHNIQUE: MUTE
imutez = p12 ;TECHNIQUE TICKS: MUTE

cigoto (idur == 0.0), bye ;IF TURNING NOTE OFF, JUST QUIT
kgoto kperf ;IF K-TIME, GOTO K-PERFORMANCE
tigoto tiinit ;IF TI-TIME, GOTO TI-INITIALIZE
; +++++++++++++++++++++++++++
; AUTO-GEN I-INIT
; +++++++++++++++++++++++++++
idvol = 0 ;VOLUME SETTINGS
iivol = ivol
kvol init ivol
kvoli init 0
idcent = 0 ;FREQUENCY SETTINGS IN CENTS
iicent = icent
kcent init icent
kcenti init 0
ihz = 2^(icent/1200)*440
khz init ihz
goto kperf
; +++++++++++++++++++++++++++
; AUTO-GEN TI-INITIALIZATION
; +++++++++++++++++++++++++++
tiinit:
cggoto (iivol == ivol), tiinit0
idvol = (ivol - iivol) / ivolz
iivol = ivol
kvoli init ivolz
tiinit0:
cggoto (iicent == icent), tiinit1
idcent = (icent - iicent) / icentz
iicent = icent
kcenti init icentz
ihz = 2^(icent/1200)*440
tiinit1:
goto techs
; +++++++++++++++++++++++++++
; AUTO-GEN K-PERFORMANCE
; +++++++++++++++++++++++++++
kperf:
krlenv linseg 1.0, idur - irel, 1.0, irel, 0.0
cggoto (kvoli == 0), kperf0
kvoli = kvoli - 1
kvol = kvol + idvol
kperf0:
cggoto (kcenti == 0), kperf1
kcenti = kcenti - 1
kcent = kcent + idcent
khz = 2^(kcent/1200)*440
kperf1:
techs:

; ********** TECHNIQUE START **********
kgoto techsk00 ;IF K-TIME, GOTO K-PERFORMANCE
tigoto ttinit00 ;IF TI-TIME, GOTO TI-INITIALIZE
; +++++++++++++++++++++++++++
; TECHNIQUE I-INITIALIZATION
; +++++++++++++++++++++++++++
idmute = 0
iimute = imute
kmute init imute
kmutei init 0
goto techsk00
; +++++++++++++++++++++++++++
; TECHNIQUE TI-INITIALIZATION
; +++++++++++++++++++++++++++
ttinit00:
cggoto (iimute == imute), techs01
idmute = (imute - iimute) / imute
iimute = imute
kmutei init imutez
goto techs01
; +++++++++++++++++++++++++++
; TECHNIQUE K-DELTA
; +++++++++++++++++++++++++++
techsk00:
cggoto (kmutei == 0), techs01
kmute = kmutei - 1
kmute = kmute + idmute
techs01:
; ********** TECHNIQUE END **********

; ***** START INSTRUMENT TIMBRE ****

; ...............................................
; I-TIME (PREMIERE) INITIALIZATION
; ...............................................
kgoto perform
tigoto tied
itable = 0 ;PLUCK OPCODE PARAMETERS
imethod = 1

cggoto (ifngr != 5), it00
iatthigh = 0.033
iattlow = 0.055
goto it01
it00:
iatthigh = 0.018
iattlow = 0.043

it01:
icnthigh = 221
icntlow = -4832
islope = (iatthigh - iattlow) / (icnthigh - icntlow)
iatttime = (icent - icntlow) * islope + iattlow
goto perform

; ...............................................
; TI-TIME (TIED-NOTE) INITIALIZATION
; ...............................................
tied:
cggoto (irel == 0), tied0
tied0:
goto bye

; ...............................................
; PERFORM INSTRUMENT
; ...............................................
perform:

; ...............................................
; FINGERED PLUCKED
; ...............................................
cggoto (ifngr != 5), fingered
kamp linseg 0.0, iatttime, ivol, idur-0.1, ivol, 0.05, 0.0
kgoto common

; ...............................................
; TAPPED
; ...............................................
fingered:
kamp linseg 0.0, iatttime, ivol, idur-0.065, ivol, 0.05, 0.0

; ...............................................
; COMMON TO FINGER-PLUCKED AND TAPPED.
; ...............................................
common:
asig pluck kamp, khz, ihz, itable, imethod
af1 reson asig, 110, 80
af2 reson asig, 220, 100
af3 reson asig, 250, 100
af4 reson asig, 440, 80
af5 reson asig, 750, 200
af6 reson asig, 1400, 700
af7 reson asig, 3400, 900
af8 reson asig, 5400, 800
af1a = af1*0.5
af2a = af2*0.4
af3a = af3*1.0
af4a = af4*0.4
af5a = af5*0.6
af6a = af6*1.6
af7a = af7*1.0
af8a = af8*0.7
amix = af1a+af2a+af3a+af4a+af5a+af6a+af7a+af8a
aout balance amix, asig

; ***** END INSTRUMENT TIMBRE ****
zakout:
zawm aout * krlenv, izak
bye:
endin

;------------------------------------------------------------------------------------
; GENERAL-PURPOSE PART-INSTANCE MIXER AND AUDIO-EFFECTS
; PROCESSOR. INCOMING SIGNALS ARE ALL MONO AND WILL BE
; EXPANDED AND MIXED TO MULTIPLE CHANNELS WITH THIS DEVICE.
;------------------------------------------------------------------------------------
instr 25000

inum = p1 ;INSTRUMENT NUMBER
itime = p2 ;START TIME, SECONDS
idur = -p3 ;NOTE DURATION
izak = p4 ;ZAK CHANNEL
ispacx = p5 ;SPATIALIZATION: LEFT-RIGHT
ispacz = p6 ;SPATIALIZATION: FORE-BACK
ispacy = p7 ;SPATIALIZATION: UP-DOWN
ispatz = p8 ;SPATIAL TRANSITION TICKS
ichor = p9 ;CHORUS = 1, OFF = 0
; ***** START INSTRUMENT TIMBRE ****

; ...............................................
; I-TIME (PREMIERE) INITIALIZATION
; ...............................................
kgoto zakin
tigoto tied
idx = 0 ;TRANSITION SETTINGS
kiters init 0 ;SPATIALIZATION CONTROL
iispacx = ispacx
kspacx init iispacx
iichor = ichor ;CHORUS CONTROL
kchor init ichor
irate = 0.5 ;CHORUS SETTINGS
idepth = 0.002
imix = 1
ideloff = 0.025
iphase = 0
igoto zakin

; ...............................................
; TI-TIME (TIED-NOTE) INITIALIZATION
; ...............................................
tied:
cggoto (iispacx == ispacx), tied0 ;PREPARE K-RATE SPATIAL TRANSITION
idx = (iispacx - ispacx)/ispatz
iispacx = ispacx
kiters init ispatz
tied0:
cggoto (iichor == ichor), tied1 ;SET K-RATE CHROUS VALUE
iichor = ichor
kchor init ichor
tied1:
tigoto bye

; ...............................................
; READ INPUT SIGNAL FROM ZAK CHANNEL
; ...............................................
zakin:
ain zar izak
axt0 = ain
axt1 = ain

; ...............................................
; STEREO CHORUS
; ...............................................
chorus:
igoto chorus0
ckgoto (kchor == 0), mix
chorus0:
kamp linseg 0, .002, 1, 5000 - .004, 1, .002, 0

aosc1 oscil idepth, irate, 250001, iphase
aosc2 = aosc1 + ideloff
atemp delayr idepth + ideloff
adell deltapi aosc2
delayw ain
axt0 = (adell * imix + ain)/2 * kamp

iphase = .33
aosc3 oscil idepth, irate, 250001, iphase
aosc4 = aosc3 + ideloff
atemp2 delayr idepth + ideloff
adell2 deltapi aosc4
delayw ain
axt1 = (adell2 * imix + ain)/2 * kamp

; ...............................................
; OUTPUTS MIXED AND SAMPLES READIED. CLEAR
; ZAK CHANNELS BEFORE EXITING.
; ...............................................
mix:
ckgoto (kiters == 0), mix0
kiters = kiters - 1
kspacx = kspacx + idx
mix0:
outs (1 - kspacx) * axt0, kspacx * axt1
zacl izak, izak
bye:
endin

</CsInstruments>

<CsScore>
;------------------------------------------------------------------------------------
; COMPUTER-GENERATED CSOUND SCORE FILE
;
; CREATED BY TONESCAPE: WWW.TONALSOFT.COM
;------------------------------------------------------------------------------------

;------------------------------------------------------------------------------------
; F-TABLE GENERATORS REQUIRED BY DEFINED MUSICAL INSTRUMENTS
; INSTRUMENTS AND OTHER ORCHESTRAL-FILE DEVICES. EACH
; F-TABLE IS UNIQUELY IDENTIFIED BY ITS INSTRUMENT NUMBER
; PLUS ITS UNIQUE INSTRUMENT-RELATIVE NUMBER.
;------------------------------------------------------------------------------------
f 250001 0 8192 10 1

;------------------------------------------------------------------------------------
; COMPUTER-GENERATED INSTRUMENT COMMANDS IN THE REMAINING
; PARTS OF THIS FILE. ALL COMMANS IN CHRONOLOGICAL ORDER.
; THERE ARE NO SECTIONS OR OTHER HELPERS FOR HUMAN READERS.
;------------------------------------------------------------------------------------
; INSTR START DUR ZAK RELTIME CENTS CN TKS VOLUME VOL TKS TECHNIQUES -->
; ***** ***** ****** *** ******* ******** ****** ******* ******* **************
i 50.1 0.0000 -0.4210 0 0.0800 -2104.1445 2500 0.5525 2500 1 2 450
i 50.1 0.4210 0.0000 0 0.0800 -2104.1445 2500 0.5525 2500 1 2 450
i 50.2 0.5250 -0.3890 0 0.0800 -1907.4033 2500 0.4225 2500 1 2 450
i 50.2 0.9140 0.0000 0 0.0800 -1907.4033 2500 0.4225 2500 1 2 450
i 50.3 1.0000 -0.4210 0 0.0800 -1710.6621 2500 0.4550 2500 1 2 450
i 50.3 1.4210 0.0000 0 0.0800 -1710.6621 2500 0.4550 2500 1 2 450
i 50.4 1.5250 -0.3890 0 0.0800 -1602.5151 2500 0.4225 2500 1 2 450
i 50.4 1.9140 0.0000 0 0.0800 -1602.5151 2500 0.4225 2500 1 2 450
i 50.5 2.0000 -0.4210 0 0.0800 -1405.7739 2500 0.5525 2500 1 2 450
i 50.5 2.4210 0.0000 0 0.0800 -1405.7739 2500 0.5525 2500 1 2 450
i 50.6 2.5250 -0.3890 0 0.0800 -1209.0327 2500 0.4225 2500 1 2 450
i 50.6 2.9140 0.0000 0 0.0800 -1209.0327 2500 0.4225 2500 1 2 450
i 50.7 3.0000 -0.4210 0 0.0800 -1012.2915 2500 0.4550 2500 1 2 450
i 50.7 3.4210 0.0000 0 0.0800 -1012.2915 2500 0.4550 2500 1 2 450
i 50.8 3.5250 -0.3890 0 0.0800 -904.1445 2500 0.4225 2500 1 2 450
i 50.8 3.9140 0.0000 0 0.0800 -904.1445 2500 0.4225 2500 1 2 450

;------------------------------------------------------------------------------------
; I-STATEMENTS FOR STARTING THE MIXER INSTRUMENTS.
; EACH PART-INSTANCE HAS ITS OWN MIXER. ALL OTHER MIXER
;------------------------------------------------------------------------------------
; INSTR START DUR ZAK SPACEX SPACEZ SPACEY SPAT TKS CH
; ***** ***** *** *** ****** ****** ****** ******** **
i 25000.1 0.0000 -1 0 0.5000 0.5000 0.5000 1500 0

</CsScore>

</CsoundSynthesizer>

-monz
http://tonalsoft.com/tonescape.aspx
Tonescape microtonal music software

🔗joemonz <joemonz@...>

9/13/2009 7:52:41 AM

--- In tuning@yahoogroups.com, "joemonz" <joemonz@...> wrote:
>
> Since Csound .csd files are plain text, i wanted
> to paste a simple example here to illustrate how
> Tonescape creates the .csd export.
>
> <snip>
>
> /tuning/files/monz/ c-major-scale_31-tone_1-6cmt_origin=c.csd
>
>
> <snip>
>
;------------------------------------------------------------------------------------
> ; INSTR START DUR ZAK RELTIME CENTS CN TKS VOLUME VOL TKS TECHNIQUES -->
> ; ***** ***** ****** *** ******* ******** ****** ******* ******* **************
> i 50.1 0.0000 -0.4210 0 0.0800 -2104.1445 2500 0.5525 2500 1 2 450

Sorry, i forgot to add two things:

1)
Use "Option" | "Use Fixed Width Font" when viewing on the
stupid Yahoo web interface, to see the columns line up correctly.

2)
I wanted to note that Tonescape exports the pitch information
to Csound by using "CENTS", to an accuracy of 4 decimal places.

The absolute reference used by Tonescape is A-440 Hz = 0 cents.
In this particular file, since the "tonic" is C, i used
a reference frequency of middle-C = 261 Hz.

The first note of the score, quoted above, is bass-C (i.e.,
on the second space of the bass-clef), which would be written
as middle-C in an actual guitar score.

Thus, the ratio of that note to A-440 is 440/130.5, which
my calculator gives as 0.29659090909090909090909090909091,
and which translates to -2104.1444300377543678776763217102
cents below A-440.

So anyway, Tonescape creates Csound files with pitch accuracy
to within 1/10000 of a cent. That is probably sufficient for
most microtonalists's needs. ;-)

-monz
http://tonalsoft.com/tonescape.aspx
Tonescape microtonal music software

🔗Aaron Johnson <aaron@...>

9/13/2009 1:38:07 PM

On Sat, Sep 12, 2009 at 7:31 PM, Marcel de Velde <m.develde@...>wrote:

>
> But still my first question.
> Is there really no program to do an automated conversion of Scala sequence
> file to Csound score?
>

shouldn't be too complex for a scripting language to make the conversion, if
you are the type to hack a bit.....

if you don't already have the .seq files from scala, and you're writing new
music for Csound, there are easier ways....for one, the nice Csound
front-end, Blue, by Steven Yi, which includes nice features like a
microtonal piano roll--the drawback as far as I'm concerned is needing to
install an entire Java runtime environment--if you're big on reducing disk
bloat like I am, that's annoying.....also, in a shameless plug, there's my
program 'microcsound', which is a text-only interface (no fancy GUI, sorry)
but it works well, I think.

> Also one other question.
> Does the Midi Tuning Standard real time retuning sysex messages give a more
> accurate pitch resultion than Midi pitchbends?
> Thinking about using Timidity.
>
>
I think pitch bend and MTS are the same resolution of 14 bits. So a single
unit amounts to ~0.0061 cents

The advantage of MTS, of course, where available, is not having to worry
about the side effects of pitch bend---note decay issues and their
workarounds such as 'channel hocketing'. Plus, you can use SYSEX messages to
change tables, or brief ones to change notes on a more isolated basis.

TiMidity is ok, but beware of a few issues---clicking in certain Soundfonts,
for one....the workaround, as I discovered recently, is manually making a
long enough release time for your instruments that click, inside the
timidity.cfg configuration file. Another issue is that it's not so actively
devolped anymore, but that's also partly b/c it's pretty stable by now. It's
an awfull convenient program for a lot of uses.

AKJ

>
>
-Marcel
>
> 2009/9/6 Marcel de Velde <m.develde@...>
>
> I've been searching but can't find a way to convert Scala sequence files to
>> Csound scores.Anybody knows if such a thing has ever been written?
>>
>> I know one can convert Scala sequence files to midi files with pitch bend
>> tuning and then convert this midi file to Csound score, but this reduces the
>> pitch resolution to the resolution of pitch bend (I want better resolution)
>> + I'd have to set up the Csound instrument to react to pitch bends.
>>
>>
>> Also I was wondering if there are any good programs out there that can
>> look into a polyphonic audio recording (for instance string quartet
>> recording) and tell me the exact pitch of all notes.
>> Anobody has a recomendation on how to do this?
>>
>> Also looking for a polyphonic audio to midi converter.
>> I see celemony does this and a few other commercial software too. Anybody
>> knows which one is best?
>> And are there any free ones?
>>
>> Many thanks for any help!
>>
>> -Marcel
>>
>
>
>
>
>

--

Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org

🔗Marcel de Velde <m.develde@...>

9/13/2009 10:19:50 PM

Hi Aaron,

shouldn't be too complex for a scripting language to make the conversion, if
> you are the type to hack a bit.....
>
>
I come from a programming background but rusty by now and a hate
programming.
But if I end up converting manually from Scala seq to Csound score a lot
I'll program a script for it indeed if it saves me time in the end.

> if you don't already have the .seq files from scala, and you're writing new
> music for Csound, there are easier ways....for one, the nice Csound
> front-end, Blue, by Steven Yi, which includes nice features like a
> microtonal piano roll--the drawback as far as I'm concerned is needing to
> install an entire Java runtime environment--if you're big on reducing disk
> bloat like I am, that's annoying.....also, in a shameless plug, there's my
> program 'microcsound', which is a text-only interface (no fancy GUI, sorry)
> but it works well, I think.
>

I allready have Scala seq files. But there's another reason.
I really like the Scala seq file format.
I paste the different tracks next to eachother in an excell sheet and then I
can easily edit the ratios.
And later change just a few notes/ratios with ease.
I really really dislike working with fixed microtonal scales and fitting the
notes on the keyboard to hit the right ratios.
Because I often change tunings the work involved in retuning it once it's
written for a fixed scale is terrible.

>
>> Also one other question.
>> Does the Midi Tuning Standard real time retuning sysex messages give a
>> more accurate pitch resultion than Midi pitchbends?
>> Thinking about using Timidity.
>>
>>
> I think pitch bend and MTS are the same resolution of 14 bits. So a single
> unit amounts to ~0.0061 cents
>
>
Aah ok I didn't know pitch bend has such a fine resolution!
I thought it was in the about 1 cent range.

> The advantage of MTS, of course, where available, is not having to worry
> about the side effects of pitch bend---note decay issues and their
> workarounds such as 'channel hocketing'. Plus, you can use SYSEX messages to
> change tables, or brief ones to change notes on a more isolated basis.
>
>
Yes, MTS seems to be the perfect way to tune.
Haven't yet tried it but I allready greatly prefer pitch bend tuning over
fixed scales, so MTS will make the pitch bend side effects go away, even
better.

> TiMidity is ok, but beware of a few issues---clicking in certain
> Soundfonts, for one....the workaround, as I discovered recently, is manually
> making a long enough release time for your instruments that click, inside
> the timidity.cfg configuration file. Another issue is that it's not so
> actively devolped anymore, but that's also partly b/c it's pretty stable by
> now. It's an awfull convenient program for a lot of uses.
>

Ok thanks for the tips!

-Marcel

🔗Daniel Forró <dan.for@...>

9/14/2009 1:51:49 AM

On 14 Sep 2009, at 2:19 PM, Marcel de Velde wrote:
>
> I think pitch bend and MTS are the same resolution of 14 bits. So a > single unit amounts to ~0.0061 cents
>
>
> Aah ok I didn't know pitch bend has such a fine resolution!
> I thought it was in the about 1 cent range.

- 14 bits resolution is defined in MIDI standard, but most of instruments work only with 7 or 8 bit resolution. Check MIDI implementation of your instrument, it should be written there.

- Pitch bend movement itself means nothing concrete, it's necessary to define a range, then you can talk about concrete frequency resolution in Cents. For this purpose RPN 00/00 was defined.

Daniel Forro

🔗Petr Parízek <p.parizek@...>

9/14/2009 3:03:31 AM

Daniel Forró wrote:

> For this purpose RPN 00/00 was defined.

In the best case, MIDI files should contain the information about the pitch-bend range even if you're using the default setting of your instrument (which is almost never done, unfortunately), since some instruments may use a different default pitch-bend range than others.

As to the resolution, pitch-bends can never get a resolution as fine as MTS because of one simple reason. MTS divides a single 100-cent interval into 16384 steps. The RPN #0 defines the pitch-bend range in 100-cent intervals to either side, which means that the smallest range you can get (if not 0 cents) is a total of 200 cents. Moreover, many instruments use a default setting of +/-200 cents, which in turn means that a total range of 400 cents is divided into 16384 steps, or that a 100-cent interval is divided into 4096 steps. And to add even more to the chaos, as Daniel has correctly pointed out, many instruments store the full information only for data transfer purposes and actually can't apply a resolution as fine as that internally.

Petr

🔗Aaron Johnson <aaron@...>

9/14/2009 6:51:01 AM

Yes, this is correct....default is usually +/- 400 cents....therefore a
single 'bit' of pitch bend amounts to .0244---if your MIDI player accepts
the fine resolution byte!

Best case scenario is a division of 200 cents into 16384, or .0122 cents per
bit.
(in my original post I forgot the fact that the smallest range pitch bend
can do is 200, not 100 cents)

Worst case scenario is a division of 400 cents into 128, or 3.125 cents per
bit.

The best one can do with the 7 bit, single byte scenario is 200 cents
divided into 128, or 1.5625 cents per bit.

Conclusion---dont' use pitch bend if you don't have 14 bit abilities, if you
can help it. And for many other reasons, use MTS if you can.

AKJ

On Mon, Sep 14, 2009 at 5:03 AM, Petr Parízek <p.parizek@...> wrote:

>
>
> Daniel Forró wrote:
>
> > For this purpose RPN 00/00 was defined.
>
> In the best case, MIDI files should contain the information about the
> pitch-bend range even if you’re using the default setting of your instrument
> (which is almost never done, unfortunately), since some instruments may use
> a different default pitch-bend range than others.
>
> As to the resolution, pitch-bends can never get a resolution as fine as MTS
> because of one simple reason. MTS divides a single 100-cent interval into
> 16384 steps. The RPN #0 defines the pitch-bend range in 100-cent intervals
> to either side, which means that the smallest range you can get (if not 0
> cents) is a total of 200 cents. Moreover, many instruments use a default
> setting of +/-200 cents, which in turn means that a total range of 400 cents
> is divided into 16384 steps, or that a 100-cent interval is divided into
> 4096 steps. And to add even more to the chaos, as Daniel has correctly
> pointed out, many instruments store the full information only for data
> transfer purposes and actually can’t apply a resolution as fine as that
> internally.
>
> Petr
>
>
>
>
>
>
>

--

Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org