| On 7/1/04 1:27 AM, jpff@codemist.co.uk etched in stone:
> Bitwise operation in the score have been around for a long time. The
> fact that I messed up the final version suggests that no one uses it!
Indeed ! ;)
On 7/1/04 1:57 AM, jpff@codemist.co.uk etched in stone:
> Fixed the @ problem -- it only allowed even powers as I
> got-it-wrong(tm)
>
> Probably time for bugfix 12
Thanks for the fixes John. While we are looking at score interpretation
issues, here are a few more to chew on. (Not to throw more work at you -- I
could try to fix these if you want me to do so).
1) ^+ and ^- don't work properly if the instrument number is carried.
i 1 0 1
i 1 4
i 1 5
i . ^+2
becomes
w 0 60
i 1 0.000000 0.000000 1.000000 1.000000
i 1 2.000000 2.000000 1.000000 1.000000
i 1 4.000000 4.000000 1.000000 1.000000
i 1 5.000000 5.000000 1.000000 1.000000
(I would note that the manual erroneously shows these operators with spaces
as ^ + x and ^ - x).
2) Multiple t-statements in the same section cause i-statements to be
misinterpreted.
Ex. ;;; tempobug2.sco ;;;
t 0.000 132.000
i 1 0.000 0.237 48 48
i 1 1.000 0.237 60 56
t 2.000 143.999
t 2.500 131.532
t 3.083 130.623
t 4.167 129.705
i 1 2.000 0.237 48 44
i 1 3.000 0.237 60 56
i 1 4.000 0.237 68 56
e
;;; score.srt ;;;
w 0.000 132.000
t 2.000 143.999
t 2.500 131.532
t 3.083 130.623
t 4.167 129.705
i 1 0.000000 0.000000 0.237000 0.107727 48 48
i 1 1.000000 0.454545 0.237000 0.107727 60 56
i 1 2.000000 0.909091 0.237000 0.107727 48 44
i 1 3.000000 1.363636 0.237000 0.107727 60 56
i 1 4.000000 1.818182 0.237000 0.107727 68 56
e
;;; tempobug2 output listing ;;;
Csound Version 4.23f11 (Apr 19 2004)
[...]
SECTION 1:
error in score. illegal opcode t (ASCII 116)
error in score. illegal opcode t (ASCII 116)
error in score. illegal opcode t (ASCII 116)
error in score. illegal opcode t (ASCII 116)
new alloc for instr 1:
WARNING: instr 1 uses 5 p-fields but is given 7
B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.0
WARNING: instr 1 uses 5 p-fields but is given 7
B 1.000 .. 1.455 T 1.455 TT 1.455 M: 21.0
B 1.455 .. 2.000 T 2.000 TT 2.000 M: 0.0
[etc.]
Now, I know that you aren't supposed to have multiple t-statements but this
is how the Mac Midi2Csound program outputs tempo changes. I still think
that it is a bug to not deal with them gracefully.
What seems to be happening is that sread() only changes the first t -> w and
then when the orchestra receives them, even though it prints a warning, it
seems to be interpreting the following i-statements as unwarped (??). So is
the correct fix here to have sread() remove the offending t's or to have the
performance not freak out about them (or both)?
3) While debugging m & n, I discovered that there appears to be some of
Gab's code for nested and overlapping repeats in canonical (is this
correct?). However, the {} score opcodes don't seem to be working either.
Ex.
{ 4 nn
i1 0 1
i1 + 0.5
i1 + .
}
only plays the three notes once, but produces these messages when running:
sorting score ...
External LOOP=4 Level:1
... done
The code for {} is present in the original 4.23 in which m and n work, but
this feature does not seem to do much except print out the above message.
Is this supposed to work?
(This feature is completely undocumented in the canonical manual AFAIK).
I will continue to look into these issues, but if someone else knows how to
easily solve them, be my guest.
Thanks!
Anthony Kozar
anthony.kozar@utoledo.edu
http://akozar.spymac.net/
|