Dividir una pista midi en varias,(la bateria) kick,snare,etc

Zack23
#1 por Zack23 el 08/03/2003
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:
Subir
Danisero Baneado
#2 por Danisero el 10/03/2003
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)
)
)
)
Subir
Jacq33
#3 por Jacq33 el 10/03/2003
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
Subir
Jacq33
#4 por Jacq33 el 10/03/2003
Lo siento, acabo de ver que este mensaje pertenece al foro de Cakewalk Sonar...

Saludos
Subir
pantulis
#5 por pantulis el 10/03/2003
Creo que venía con Sonar un .CAL que hace eso mismo llamado SplitNoteToTracks.cal
Subir
Rana_de_metal
#6 por Rana_de_metal el 11/03/2003
Danisero seria muy bueno que nos hables un poco mas abiertamente de los que es el Cal, como tu dices es una de esas funciones que pasan desapercibidas :D y habemos algunos que todavia no estamos al tanto.
Subir
pantulis
#7 por pantulis el 12/03/2003
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.
Subir
Zack23
#8 por Zack23 el 12/03/2003
Gracias a todos por sus valiosos consejos, en especial a ti Danisero, me has arreglado el problema :D
Subir
orkku
#9 por orkku el 10/10/2009
¿Esto sólo se puede hacer con midi? Es decir, ¿no lo puedo utilizar para separar las pistas de mi tajeta de sonido (focusrite saffire pro 40) a la hora de grabar la batería acustica directamente?

Un saludo
Subir
Rana_de_metal
#10 por Rana_de_metal el 10/10/2009
No, no lo puedes hacer con audio es solo para midi lo que tu deberias hacer es microfonear la bateria y mandar cada microfono a un track individual y entonces si podrias mezclarla como te de la gana =)
Subir
orkku
#11 por orkku el 10/10/2009
La cosa es que el controlador de la focusrite si me recoge cada micro de manera individual, pero el Sonar no :cry: y ya no se que hacer para configurarlo para que lo haga de esa manera.
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo