Nota08 Mar 2003 18:14

PUes eso, como puedo dividir un track midi de una bateria, a varios tracks midi, por ejemplo, un track para el bombo, otro para la tarola, otro para los hit hats, etc. Ya que tengo toda la bateria junta en el track 10.

Espero me puedan ayudar, gracias. :cry:
Avatar de Usuario
Zack23
 
Mensajes: 201
Registrado: 01 Ago 2002 06:00
Ubicación: Ciudad de México



Nota10 Mar 2003 02:31

Pues sí !!! SE PUEDE!!!!

aún que no directamente con alguna función al uso sinó utilizando una herramienta muy descocida del Cakawalk-Sonar que se llama CAL.

CAL es un lengage de progra,mación propio del Cakewalk, muy parecido al C, que nos permite hacer casi cualquier cosa que se nos haya podido pasar nunca por la cabeza y que logicamente los seqüenciadores todas, todas las funciones no pueden incorporar.

Éste que te paso a continuación es el códogo que hace exactamente lo que tu pides. Para ejecutarlo copia el código en un fichero de texto que de deberás poner la extensión *.cal y lo ejecutas desde el SONAR en Proces>Run CAL. La pista que tengas seleccionada te la habrá porcionado en pistas!!!!!!!!!!

Por cierto; éste código no es mío, se ecuentra el la red y es de dominio público. Sólo hay que buscar un poco....

Espero que te/os sirva.

Saludos. Danisero.






;
; SPLITNOT.CAL
;
; This routine modifies a source track, splitting it by note# into
; separate destination tracks. Only notes are split ... all other
; track parameters (Controllers, Tempos, Meters and Markers),
; if any, remain in the source track.
;
; Use this routine for splitting up a drum machine or other type
; of instrument track where voices are assigned by note number.
;
; = Courtesy Red Nile Productions 1993 (714)498-7515 CIS:70044,2733
;
; = Modified 12/10/93 by Greg Hendershott at user's request to
; have this display notes as names (like C#5) rather than numbers
; in the track names. Caveat: The note names always use sharps
; and assume BaseOctave=0.

(do
(if (< VERSION 20)
(do
(pause "This CAL program requires CAL version 2.0 or higher")
(exit)
)
)
(include "need20.cal") ; Require version 2.0 or higher of CAL

(int nOctave)
(int nSrcTrk 1)
(int nDestTrk (+ nSrcTrk 1))
(int nDestChan 0)
(int nDestPort 1)
(int nNote 0)
(int bEvent FALSE)

(getInt nSrcTrk "Source Track?" 1 256)
(-- nSrcTrk) ; CAL uses 0..255

(getInt nDestTrk "First Destination Track?" 1 256)
(-- nDestTrk) ; CAL uses 0..255

(getInt nDestChan "Destination Channel?" 0 16)
(-- nDestChan) ; CAL uses -1..15

(getInt nDestPort "Destination Port?" 1 16)
(-- nDestPort) ; 0 .. 15

; If markers not set, select entire range
(if (== From Thru)
(do
(= From 0)
(= Thru End)
)
)

; Select only source track
(TrackSelect 0 -1)
(TrackSelect 1 nSrcTrk)

; Set filter params. Split notes only ..
; Controllers stay in source track.
(ResetFilter 0 TRUE)
(SetFilterKind 0 NOTE TRUE)
(SetFilterKind 0 KEYAFT FALSE)
(SetFilterKind 0 CONTROL FALSE)
(SetFilterKind 0 PATCH FALSE)
(SetFilterKind 0 CHANAFT FALSE)
(SetFilterKind 0 WHEEL FALSE)

(while (< nNote 127)
(do
; Check for note events at current note # ...
(forEachEvent
(if (&& (== Event.Kind NOTE) (== Note.Key nNote))
(= bEvent TRUE)
)
)

; If there are note events, paste them to the destination track
(if (== bEvent TRUE)
(do
; Status message
(message "Note # " nNote " --> Track " (+ 1 nDestTrk))

; Set up filter .. item 0, NOTE, in the range nNote..nNote
(SetFilterRange 0 0 TRUE nNote nNote)

; Cut/Paste the filtered events to the destintation track
(EditCut From Thru TRUE TRUE FALSE FALSE FALSE FALSE)
(EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE nDestTrk)

; Name dest track
(= nOctave (/ nNote 12))
(switch (% nNote 12)
0 (TrackName (format "Split Note C" nOctave) nDestTrk)
1 (TrackName (format "Split Note C#" nOctave) nDestTrk)
2 (TrackName (format "Split Note D" nOctave) nDestTrk)
3 (TrackName (format "Split Note D#" nOctave) nDestTrk)
4 (TrackName (format "Split Note E" nOctave) nDestTrk)
5 (TrackName (format "Split Note F" nOctave) nDestTrk)
6 (TrackName (format "Split Note F#" nOctave) nDestTrk)
7 (TrackName (format "Split Note G" nOctave) nDestTrk)
8 (TrackName (format "Split Note G#" nOctave) nDestTrk)
9 (TrackName (format "Split Note A" nOctave) nDestTrk)
10 (TrackName (format "Split Note A#" nOctave) nDestTrk)
11 (TrackName (format "Split Note B" nOctave) nDestTrk)
)

; Set forced channel & port, and unmute it
(TrackChannel nDestChan nDestTrk)
(TrackPort nDestPort nDestTrk)
(TrackActive TRUE nDestTrk)

(++ nDestTrk)
(= bEvent FALSE)
)
)
; Else
(++ nNote)
)
)
)
Danisero
 
Mensajes: 36
Registrado: 30 Dic 2002 12:25
Ubicación: Figueres - Girona


Nota10 Mar 2003 03:13

No sé que programa utilizas, pero si estás en Cubase VST seleccionas la pista de batería, pones los localizadores derecho e izquierdo al principio y final de la pista (respectivamente). Conviertes la pista midi de batería en una drum track (eso lo haces haciendo clic a la izquierda de la pista donde hay dibujada una corchea y seleccionas drum track). A continuación vas al menú de arriba y seleccionas Structure y después Explode by channel. Te apareceran nuevas pistas con los instrumentos de percusión separados en cada una. Recuerda cambiar el canal midi de las pistas resultantes al canal 10.

Si usas Cubase SX elijes la pista de batería, pones los localizadores derecho e izquierdo al principio y al final de la misma. Y en el menú de arriba vas a MIDI y Disolver Parte.

Espero haberte sido de ayuda.
Un saludo,

Jacq33
Jacq33
 
Mensajes: 21
Registrado: 18 Nov 2002 07:00


Nota10 Mar 2003 03:15

Lo siento, acabo de ver que este mensaje pertenece al foro de Cakewalk Sonar...

Saludos
Jacq33
 
Mensajes: 21
Registrado: 18 Nov 2002 07:00


Nota10 Mar 2003 17:59

Creo que venía con Sonar un .CAL que hace eso mismo llamado SplitNoteToTracks.cal
Avatar de Usuario
pantulis
 
Mensajes: 228
Registrado: 07 May 2002 06:00
Ubicación: Madrid


Nota11 Mar 2003 11:23

Danisero seria muy bueno ke nos hables un poco mas abiertamente de los ke es el Cal, como tu dices es una de esas funciones ke pasan desapercibidas :D y habemos algunos ke todavia no estamos al tanto.
Avatar de Usuario
Rana_de_metal
 
Mensajes: 350
Registrado: 20 Oct 2002 06:00
Ubicación: Mexico DF


Nota12 Mar 2003 13:12

CAL es probablemente la característica más desconocida de Cakewalk SONAR, presente desde las primeras versiones de Cakewalk para Windows. El CAL es un lenguaje de scripting que te permite hacer tus propias macros o rutinas en un lenguaje que es una mezcla de C y LISP. O lo que es lo mismo, te permite ampliar la funcionalidad de SONAR de la misma forma que las macros de Word permiten ampliar la funcionalidad de Word.

El uso habitual es para ejecutar unas acciones específicas en un conjunto de notas seleccionadas, pistas, etc. El ejemplo más bueno es el deSplitNoteToTracks. Igualmente podrías programar un CAL que cogiera varias pistas y las uniera en una sola.
Avatar de Usuario
pantulis
 
Mensajes: 228
Registrado: 07 May 2002 06:00
Ubicación: Madrid


Nota13 Mar 2003 00:28

Gracias a todos por sus valiosos consejos, en especial a ti Danisero, me has arreglado el problema :D
Avatar de Usuario
Zack23
 
Mensajes: 201
Registrado: 01 Ago 2002 06:00
Ubicación: Ciudad de México



Ir a Cakewalk SONAR